diff --git a/README.md b/README.md index 41dd6850a..5101fc8ff 100644 --- a/README.md +++ b/README.md @@ -69,8 +69,139 @@ Votre mission (si vous l'acceptez) : Concevoir une architecture **API-driven** d Séquence 4 : Documentation Difficulté : Facile (~30 minutes) --------------------------------------------------- -**Complétez et documentez ce fichier README.md** pour nous expliquer comment utiliser votre solution. -Faites preuve de pédagogie et soyez clair dans vos expliquations et processus de travail. +Compte Rendu Technique : Orchestration Cloud avec LocalStack + +Objectif : Créer une interface API permettant de piloter (allumer/éteindre) un serveur virtuel EC2 via une fonction Lambda, le tout simulé localement. + +1. Préparation de l'Environnement + +La première étape a consisté à isoler notre projet pour éviter les conflits de versions et simuler un environnement AWS réel. + +Création d'une "bulle virtuelle" (venv) : Utilisation de python3 -m venv pour isoler les bibliothèques. + +Installation des outils : Installation de awscli (pour commander le cloud), localstack (le simulateur) et boto3 (la bibliothèque Python pour AWS). + +Configuration de l'identité : Paramétrage de clés d'accès fictives et d'une région par défaut (us-east-1) pour que l'outil AWS CLI accepte les commandes. + +Code bash : +# Création et activation de l'environnement virtuel +python3 -m venv ./rep_localstack +source ./rep_localstack/bin/activate + +# Installation des dépendances +pip install awscli localstack boto3 + +# Configuration des identifiants fictifs pour AWS CLI +aws configure set region us-east-1 +aws configure set aws_access_key_id test +aws configure set aws_secret_access_key test + +# Lancement du moteur LocalStack +export LOCALSTACK_AUTH_TOKEN="TON_TOKEN" +localstack start -d + +2. Déploiement de l'Infrastructure (EC2) + +Avant d'automatiser, nous avons dû créer la ressource à piloter. + +Sélection de l'image (AMI) : Recherche dans le catalogue LocalStack pour trouver un identifiant d'image valide. + +Lancement de l'instance : Exécution de la commande run-instances pour créer un serveur de type t2.micro. + +Identification : Récupération de l'Instance ID (ex: i-d159f4d44bc8c2f4a), qui sert de "plaque d'immatriculation" unique pour nos futures commandes. + +Code bash : +# Lister les images disponibles pour choisir une AMI +aws --endpoint-url=http://127.0.0.1:4566 ec2 describe-images --query "Images[*].{Name:Name,ID:ImageId}" --output table + +# Lancer l'instance EC2 (en utilisant l'AMI choisie) +aws --endpoint-url=http://127.0.0.1:4566 ec2 run-instances --image-id ami-d159f4d4 --count 1 --instance-type t2.micro + +# Récupérer l'ID de l'instance pour le script Python +aws --endpoint-url=http://127.0.0.1:4566 ec2 describe-instances --query "Reservations[*].Instances[*].InstanceId" --output text + +3. Développement et Déploiement de la Lambda + +La fonction Lambda agit comme le cerveau du projet. Nous avons rédigé un script Python nommé gestion_ec2.py. + +Code Python : Utilisation de la bibliothèque boto3 pour envoyer des ordres start_instances et stop_instances. + +Correction réseau : Pour que la Lambda puisse parler à LocalStack depuis son conteneur, nous avons utilisé l'URL spécifique http://localhost.localstack.cloud:4566. + +Déploiement : Compression du script en fonction.zip et création de la fonction sur LocalStack. + +Code bash : +# Compression du code source +zip fonction.zip gestion_ec2.py + +# Création de la fonction Lambda +aws --endpoint-url=http://127.0.0.1:4566 lambda create-function \ + --function-name PiloteEC2 \ + --zip-file fileb://fonction.zip \ + --handler gestion_ec2.lambda_handler \ + --runtime python3.9 \ + --role arn:aws:iam::000000000000:role/lambda-role + +# Optimisation du timeout (pour éviter les erreurs 500) +aws --endpoint-url=http://127.0.0.1:4566 lambda update-function-configuration \ + --function-name PiloteEC2 \ + --timeout 10 + +4. Configuration de l'API Gateway + +Pour rendre la Lambda accessible par une simple URL, nous avons configuré une passerelle API. + +Étapes // + +Création : Génération d'une API REST nommée "MonAPI-Pilote". +Ressource : Identification de la racine (/) de l'API. +Méthode : Configuration d'une méthode ANY pour accepter les requêtes +Intégration : Branchement de l'API sur la Lambda (Proxy). +Déploiement : Publication de l'API sur un environnement nommé test. + +Code bash : +# 1. Créer l'API et noter l'ID généré (ex: rz2n11qhty) +aws --endpoint-url=http://127.0.0.1:4566 apigateway create-rest-api --name 'MonAPI-Pilote' + +# 2. Récupérer l'ID de la ressource racine (/) +aws --endpoint-url=http://127.0.0.1:4566 apigateway get-resources --rest-api-id rz2n11qhty + +# 3. Créer la méthode ANY +aws --endpoint-url=http://127.0.0.1:4566 apigateway put-method \ + --rest-api-id rz2n11qhty --resource-id --http-method ANY --authorization-type "NONE" + +# 4. Intégrer la Lambda à l'API (Type Proxy) +aws --endpoint-url=http://127.0.0.1:4566 apigateway put-integration \ + --rest-api-id rz2n11qhty --resource-id --http-method ANY --type AWS_PROXY \ + --integration-http-method POST \ + --uri arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:000000000000:function:PiloteEC2/invocations + +# 5. Déployer l'API sur le stage 'test' +aws --endpoint-url=http://127.0.0.1:4566 apigateway create-deployment --rest-api-id rz2n11qhty --stage-name test + +5. Tests de Validation Final + +Le pilotage se fait désormais via des requêtes HTTP simples (utilisant curl ou un navigateur). + +Les commandes finales : +Démarrage : .../?action=start + +Arrêt : .../?action=stop + +Résultat final : L'envoi d'une requête URL retourne un message de succès JSON, et la vérification via describe-instances confirme que l'état de la machine passe de running à stopped en quelques secondes. + +Code bash : +# Commande pour ARRETER l'instance +curl "http://127.0.0.1:4566/restapis/rz2n11qhty/test/_user_request_/?action=stop" + +# Commande pour DEMARRER l'instance +curl "http://127.0.0.1:4566/restapis/rz2n11qhty/test/_user_request_/?action=start" + +# Commande de vérification de l'état EC2 +aws --endpoint-url=http://127.0.0.1:4566 ec2 describe-instances --query "Reservations[*].Instances[*].State.Name" --output text + +CONCLUSION : +Ce projet démontre la puissance du Serverless. En combinant une API et une fonction Lambda, nous avons créé un outil d'administration capable de gérer des ressources d'infrastructure sans jamais avoir à se connecter manuellement à une console de gestion. C'est la base de l'automatisation moderne du Cloud (DevOps). --------------------------------------------------- Evaluation @@ -80,4 +211,4 @@ Cet atelier, **noté sur 20 points**, est évalué sur la base du barème suivan - Fonctionnement conforme au scénario annoncé (4 points) - Degré d'automatisation du projet (utilisation de Makefile ? script ? ...) (4 points) - Qualité du Readme (lisibilité, erreur, ...) (4 points) -- Processus travail (quantité de commits, cohérence globale, interventions externes, ...) (4 points) +- Processus travail (quantité de commits, cohérence globale, interventions externes, ...) (4 points) diff --git a/erreur.json b/erreur.json new file mode 100644 index 000000000..215c389d3 --- /dev/null +++ b/erreur.json @@ -0,0 +1 @@ +{"errorMessage":"2026-04-22T10:53:32Z fd09bcc5-9380-4efa-a900-71ef3c270d86 Task timed out after 3.00 seconds"} \ No newline at end of file diff --git a/fonction.zip b/fonction.zip new file mode 100644 index 000000000..d59949399 Binary files /dev/null and b/fonction.zip differ diff --git a/gestion_ec2.py b/gestion_ec2.py new file mode 100644 index 000000000..ee1389a22 --- /dev/null +++ b/gestion_ec2.py @@ -0,0 +1,35 @@ +import boto3 +import json + +def lambda_handler(event, context): + # 1. Connexion au service EC2 de LocalStack + # On précise l'URL locale car la Lambda tourne "dans" LocalStack + ec2 = boto3.client('ec2', endpoint_url='http://localhost.localstack.cloud:4566', region_name='us-east-1') + + # 2. Identification de la cible + # REMPLACE CET ID PAR LE TIEN (celui qui commence par i-) + instance_id = "i-d159f4d44bc8c2f4a" + + # 3. Récupération de l'action demandée (?action=start ou ?action=stop) + # Si rien n'est précisé, on choisit 'start' par défaut + params = event.get('queryStringParameters') or {} + action = params.get('action', 'start') + + try: + if action == 'stop': + ec2.stop_instances(InstanceIds=[instance_id]) + message = f"Succès : Instance {instance_id} en cours d'arrêt." + else: + ec2.start_instances(InstanceIds=[instance_id]) + message = f"Succès : Instance {instance_id} en cours de démarrage." + + return { + 'statusCode': 200, + 'body': json.dumps({'message': message}) + } + + except Exception as e: + return { + 'statusCode': 500, + 'body': json.dumps({'error': str(e)}) + } diff --git a/rep_localstack/bin/Activate.ps1 b/rep_localstack/bin/Activate.ps1 new file mode 100644 index 000000000..b49d77ba4 --- /dev/null +++ b/rep_localstack/bin/Activate.ps1 @@ -0,0 +1,247 @@ +<# +.Synopsis +Activate a Python virtual environment for the current PowerShell session. + +.Description +Pushes the python executable for a virtual environment to the front of the +$Env:PATH environment variable and sets the prompt to signify that you are +in a Python virtual environment. Makes use of the command line switches as +well as the `pyvenv.cfg` file values present in the virtual environment. + +.Parameter VenvDir +Path to the directory that contains the virtual environment to activate. The +default value for this is the parent of the directory that the Activate.ps1 +script is located within. + +.Parameter Prompt +The prompt prefix to display when this virtual environment is activated. By +default, this prompt is the name of the virtual environment folder (VenvDir) +surrounded by parentheses and followed by a single space (ie. '(.venv) '). + +.Example +Activate.ps1 +Activates the Python virtual environment that contains the Activate.ps1 script. + +.Example +Activate.ps1 -Verbose +Activates the Python virtual environment that contains the Activate.ps1 script, +and shows extra information about the activation as it executes. + +.Example +Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv +Activates the Python virtual environment located in the specified location. + +.Example +Activate.ps1 -Prompt "MyPython" +Activates the Python virtual environment that contains the Activate.ps1 script, +and prefixes the current prompt with the specified string (surrounded in +parentheses) while the virtual environment is active. + +.Notes +On Windows, it may be required to enable this Activate.ps1 script by setting the +execution policy for the user. You can do this by issuing the following PowerShell +command: + +PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser + +For more information on Execution Policies: +https://go.microsoft.com/fwlink/?LinkID=135170 + +#> +Param( + [Parameter(Mandatory = $false)] + [String] + $VenvDir, + [Parameter(Mandatory = $false)] + [String] + $Prompt +) + +<# Function declarations --------------------------------------------------- #> + +<# +.Synopsis +Remove all shell session elements added by the Activate script, including the +addition of the virtual environment's Python executable from the beginning of +the PATH variable. + +.Parameter NonDestructive +If present, do not remove this function from the global namespace for the +session. + +#> +function global:deactivate ([switch]$NonDestructive) { + # Revert to original values + + # The prior prompt: + if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) { + Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt + Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT + } + + # The prior PYTHONHOME: + if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) { + Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME + Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME + } + + # The prior PATH: + if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) { + Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH + Remove-Item -Path Env:_OLD_VIRTUAL_PATH + } + + # Just remove the VIRTUAL_ENV altogether: + if (Test-Path -Path Env:VIRTUAL_ENV) { + Remove-Item -Path env:VIRTUAL_ENV + } + + # Just remove VIRTUAL_ENV_PROMPT altogether. + if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) { + Remove-Item -Path env:VIRTUAL_ENV_PROMPT + } + + # Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether: + if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) { + Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force + } + + # Leave deactivate function in the global namespace if requested: + if (-not $NonDestructive) { + Remove-Item -Path function:deactivate + } +} + +<# +.Description +Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the +given folder, and returns them in a map. + +For each line in the pyvenv.cfg file, if that line can be parsed into exactly +two strings separated by `=` (with any amount of whitespace surrounding the =) +then it is considered a `key = value` line. The left hand string is the key, +the right hand is the value. + +If the value starts with a `'` or a `"` then the first and last character is +stripped from the value before being captured. + +.Parameter ConfigDir +Path to the directory that contains the `pyvenv.cfg` file. +#> +function Get-PyVenvConfig( + [String] + $ConfigDir +) { + Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg" + + # Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue). + $pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue + + # An empty map will be returned if no config file is found. + $pyvenvConfig = @{ } + + if ($pyvenvConfigPath) { + + Write-Verbose "File exists, parse `key = value` lines" + $pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath + + $pyvenvConfigContent | ForEach-Object { + $keyval = $PSItem -split "\s*=\s*", 2 + if ($keyval[0] -and $keyval[1]) { + $val = $keyval[1] + + # Remove extraneous quotations around a string value. + if ("'""".Contains($val.Substring(0, 1))) { + $val = $val.Substring(1, $val.Length - 2) + } + + $pyvenvConfig[$keyval[0]] = $val + Write-Verbose "Adding Key: '$($keyval[0])'='$val'" + } + } + } + return $pyvenvConfig +} + + +<# Begin Activate script --------------------------------------------------- #> + +# Determine the containing directory of this script +$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition +$VenvExecDir = Get-Item -Path $VenvExecPath + +Write-Verbose "Activation script is located in path: '$VenvExecPath'" +Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)" +Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)" + +# Set values required in priority: CmdLine, ConfigFile, Default +# First, get the location of the virtual environment, it might not be +# VenvExecDir if specified on the command line. +if ($VenvDir) { + Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values" +} +else { + Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir." + $VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/") + Write-Verbose "VenvDir=$VenvDir" +} + +# Next, read the `pyvenv.cfg` file to determine any required value such +# as `prompt`. +$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir + +# Next, set the prompt from the command line, or the config file, or +# just use the name of the virtual environment folder. +if ($Prompt) { + Write-Verbose "Prompt specified as argument, using '$Prompt'" +} +else { + Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value" + if ($pyvenvCfg -and $pyvenvCfg['prompt']) { + Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'" + $Prompt = $pyvenvCfg['prompt']; + } + else { + Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)" + Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'" + $Prompt = Split-Path -Path $venvDir -Leaf + } +} + +Write-Verbose "Prompt = '$Prompt'" +Write-Verbose "VenvDir='$VenvDir'" + +# Deactivate any currently active virtual environment, but leave the +# deactivate function in place. +deactivate -nondestructive + +# Now set the environment variable VIRTUAL_ENV, used by many tools to determine +# that there is an activated venv. +$env:VIRTUAL_ENV = $VenvDir + +if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) { + + Write-Verbose "Setting prompt to '$Prompt'" + + # Set the prompt to include the env name + # Make sure _OLD_VIRTUAL_PROMPT is global + function global:_OLD_VIRTUAL_PROMPT { "" } + Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT + New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt + + function global:prompt { + Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) " + _OLD_VIRTUAL_PROMPT + } + $env:VIRTUAL_ENV_PROMPT = $Prompt +} + +# Clear PYTHONHOME +if (Test-Path -Path Env:PYTHONHOME) { + Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME + Remove-Item -Path Env:PYTHONHOME +} + +# Add the venv to the PATH +Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH +$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH" diff --git a/rep_localstack/bin/__pycache__/jp.cpython-312.pyc b/rep_localstack/bin/__pycache__/jp.cpython-312.pyc new file mode 100644 index 000000000..ff7f40675 Binary files /dev/null and b/rep_localstack/bin/__pycache__/jp.cpython-312.pyc differ diff --git a/rep_localstack/bin/__pycache__/rst2html.cpython-312.pyc b/rep_localstack/bin/__pycache__/rst2html.cpython-312.pyc new file mode 100644 index 000000000..20fd763e4 Binary files /dev/null and b/rep_localstack/bin/__pycache__/rst2html.cpython-312.pyc differ diff --git a/rep_localstack/bin/__pycache__/rst2html4.cpython-312.pyc b/rep_localstack/bin/__pycache__/rst2html4.cpython-312.pyc new file mode 100644 index 000000000..351ede87f Binary files /dev/null and b/rep_localstack/bin/__pycache__/rst2html4.cpython-312.pyc differ diff --git a/rep_localstack/bin/__pycache__/rst2html5.cpython-312.pyc b/rep_localstack/bin/__pycache__/rst2html5.cpython-312.pyc new file mode 100644 index 000000000..3961564ef Binary files /dev/null and b/rep_localstack/bin/__pycache__/rst2html5.cpython-312.pyc differ diff --git a/rep_localstack/bin/__pycache__/rst2latex.cpython-312.pyc b/rep_localstack/bin/__pycache__/rst2latex.cpython-312.pyc new file mode 100644 index 000000000..2cae7e415 Binary files /dev/null and b/rep_localstack/bin/__pycache__/rst2latex.cpython-312.pyc differ diff --git a/rep_localstack/bin/__pycache__/rst2man.cpython-312.pyc b/rep_localstack/bin/__pycache__/rst2man.cpython-312.pyc new file mode 100644 index 000000000..5d5ecdf5b Binary files /dev/null and b/rep_localstack/bin/__pycache__/rst2man.cpython-312.pyc differ diff --git a/rep_localstack/bin/__pycache__/rst2odt.cpython-312.pyc b/rep_localstack/bin/__pycache__/rst2odt.cpython-312.pyc new file mode 100644 index 000000000..784d63270 Binary files /dev/null and b/rep_localstack/bin/__pycache__/rst2odt.cpython-312.pyc differ diff --git a/rep_localstack/bin/__pycache__/rst2odt_prepstyles.cpython-312.pyc b/rep_localstack/bin/__pycache__/rst2odt_prepstyles.cpython-312.pyc new file mode 100644 index 000000000..c14206531 Binary files /dev/null and b/rep_localstack/bin/__pycache__/rst2odt_prepstyles.cpython-312.pyc differ diff --git a/rep_localstack/bin/__pycache__/rst2pseudoxml.cpython-312.pyc b/rep_localstack/bin/__pycache__/rst2pseudoxml.cpython-312.pyc new file mode 100644 index 000000000..3356f3324 Binary files /dev/null and b/rep_localstack/bin/__pycache__/rst2pseudoxml.cpython-312.pyc differ diff --git a/rep_localstack/bin/__pycache__/rst2s5.cpython-312.pyc b/rep_localstack/bin/__pycache__/rst2s5.cpython-312.pyc new file mode 100644 index 000000000..ed61c6a25 Binary files /dev/null and b/rep_localstack/bin/__pycache__/rst2s5.cpython-312.pyc differ diff --git a/rep_localstack/bin/__pycache__/rst2xetex.cpython-312.pyc b/rep_localstack/bin/__pycache__/rst2xetex.cpython-312.pyc new file mode 100644 index 000000000..afbb1b505 Binary files /dev/null and b/rep_localstack/bin/__pycache__/rst2xetex.cpython-312.pyc differ diff --git a/rep_localstack/bin/__pycache__/rst2xml.cpython-312.pyc b/rep_localstack/bin/__pycache__/rst2xml.cpython-312.pyc new file mode 100644 index 000000000..de3dcc129 Binary files /dev/null and b/rep_localstack/bin/__pycache__/rst2xml.cpython-312.pyc differ diff --git a/rep_localstack/bin/__pycache__/rstpep2html.cpython-312.pyc b/rep_localstack/bin/__pycache__/rstpep2html.cpython-312.pyc new file mode 100644 index 000000000..0014589b7 Binary files /dev/null and b/rep_localstack/bin/__pycache__/rstpep2html.cpython-312.pyc differ diff --git a/rep_localstack/bin/activate b/rep_localstack/bin/activate new file mode 100644 index 000000000..ea31e88a5 --- /dev/null +++ b/rep_localstack/bin/activate @@ -0,0 +1,70 @@ +# This file must be used with "source bin/activate" *from bash* +# You cannot run it directly + +deactivate () { + # reset old environment variables + if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then + PATH="${_OLD_VIRTUAL_PATH:-}" + export PATH + unset _OLD_VIRTUAL_PATH + fi + if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then + PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}" + export PYTHONHOME + unset _OLD_VIRTUAL_PYTHONHOME + fi + + # Call hash to forget past commands. Without forgetting + # past commands the $PATH changes we made may not be respected + hash -r 2> /dev/null + + if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then + PS1="${_OLD_VIRTUAL_PS1:-}" + export PS1 + unset _OLD_VIRTUAL_PS1 + fi + + unset VIRTUAL_ENV + unset VIRTUAL_ENV_PROMPT + if [ ! "${1:-}" = "nondestructive" ] ; then + # Self destruct! + unset -f deactivate + fi +} + +# unset irrelevant variables +deactivate nondestructive + +# on Windows, a path can contain colons and backslashes and has to be converted: +if [ "$OSTYPE" = "cygwin" ] || [ "$OSTYPE" = "msys" ] ; then + # transform D:\path\to\venv to /d/path/to/venv on MSYS + # and to /cygdrive/d/path/to/venv on Cygwin + export VIRTUAL_ENV=$(cygpath "/workspaces/API_Driven/rep_localstack") +else + # use the path as-is + export VIRTUAL_ENV="/workspaces/API_Driven/rep_localstack" +fi + +_OLD_VIRTUAL_PATH="$PATH" +PATH="$VIRTUAL_ENV/bin:$PATH" +export PATH + +# unset PYTHONHOME if set +# this will fail if PYTHONHOME is set to the empty string (which is bad anyway) +# could use `if (set -u; : $PYTHONHOME) ;` in bash +if [ -n "${PYTHONHOME:-}" ] ; then + _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}" + unset PYTHONHOME +fi + +if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then + _OLD_VIRTUAL_PS1="${PS1:-}" + PS1="(rep_localstack) ${PS1:-}" + export PS1 + VIRTUAL_ENV_PROMPT="(rep_localstack) " + export VIRTUAL_ENV_PROMPT +fi + +# Call hash to forget past commands. Without forgetting +# past commands the $PATH changes we made may not be respected +hash -r 2> /dev/null diff --git a/rep_localstack/bin/activate.csh b/rep_localstack/bin/activate.csh new file mode 100644 index 000000000..372d86ade --- /dev/null +++ b/rep_localstack/bin/activate.csh @@ -0,0 +1,27 @@ +# This file must be used with "source bin/activate.csh" *from csh*. +# You cannot run it directly. + +# Created by Davide Di Blasi . +# Ported to Python 3.3 venv by Andrew Svetlov + +alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate' + +# Unset irrelevant variables. +deactivate nondestructive + +setenv VIRTUAL_ENV "/workspaces/API_Driven/rep_localstack" + +set _OLD_VIRTUAL_PATH="$PATH" +setenv PATH "$VIRTUAL_ENV/bin:$PATH" + + +set _OLD_VIRTUAL_PROMPT="$prompt" + +if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then + set prompt = "(rep_localstack) $prompt" + setenv VIRTUAL_ENV_PROMPT "(rep_localstack) " +endif + +alias pydoc python -m pydoc + +rehash diff --git a/rep_localstack/bin/activate.fish b/rep_localstack/bin/activate.fish new file mode 100644 index 000000000..20c05d8f5 --- /dev/null +++ b/rep_localstack/bin/activate.fish @@ -0,0 +1,69 @@ +# This file must be used with "source /bin/activate.fish" *from fish* +# (https://fishshell.com/). You cannot run it directly. + +function deactivate -d "Exit virtual environment and return to normal shell environment" + # reset old environment variables + if test -n "$_OLD_VIRTUAL_PATH" + set -gx PATH $_OLD_VIRTUAL_PATH + set -e _OLD_VIRTUAL_PATH + end + if test -n "$_OLD_VIRTUAL_PYTHONHOME" + set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME + set -e _OLD_VIRTUAL_PYTHONHOME + end + + if test -n "$_OLD_FISH_PROMPT_OVERRIDE" + set -e _OLD_FISH_PROMPT_OVERRIDE + # prevents error when using nested fish instances (Issue #93858) + if functions -q _old_fish_prompt + functions -e fish_prompt + functions -c _old_fish_prompt fish_prompt + functions -e _old_fish_prompt + end + end + + set -e VIRTUAL_ENV + set -e VIRTUAL_ENV_PROMPT + if test "$argv[1]" != "nondestructive" + # Self-destruct! + functions -e deactivate + end +end + +# Unset irrelevant variables. +deactivate nondestructive + +set -gx VIRTUAL_ENV "/workspaces/API_Driven/rep_localstack" + +set -gx _OLD_VIRTUAL_PATH $PATH +set -gx PATH "$VIRTUAL_ENV/bin" $PATH + +# Unset PYTHONHOME if set. +if set -q PYTHONHOME + set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME + set -e PYTHONHOME +end + +if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" + # fish uses a function instead of an env var to generate the prompt. + + # Save the current fish_prompt function as the function _old_fish_prompt. + functions -c fish_prompt _old_fish_prompt + + # With the original prompt function renamed, we can override with our own. + function fish_prompt + # Save the return status of the last command. + set -l old_status $status + + # Output the venv prompt; color taken from the blue of the Python logo. + printf "%s%s%s" (set_color 4B8BBE) "(rep_localstack) " (set_color normal) + + # Restore the return status of the previous command. + echo "exit $old_status" | . + # Output the original/"old" prompt. + _old_fish_prompt + end + + set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" + set -gx VIRTUAL_ENV_PROMPT "(rep_localstack) " +end diff --git a/rep_localstack/bin/aws b/rep_localstack/bin/aws new file mode 100755 index 000000000..d5204ff5a --- /dev/null +++ b/rep_localstack/bin/aws @@ -0,0 +1,27 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 +# Copyright 2012 Amazon.com, Inc. or its affiliates. All Rights Reserved. + +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at + +# http://aws.amazon.com/apache2.0/ + +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import sys +import os + +if os.environ.get('LC_CTYPE', '') == 'UTF-8': + os.environ['LC_CTYPE'] = 'en_US.UTF-8' +import awscli.clidriver + + +def main(): + return awscli.clidriver.main() + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/rep_localstack/bin/aws.cmd b/rep_localstack/bin/aws.cmd new file mode 100755 index 000000000..3f8caa78a --- /dev/null +++ b/rep_localstack/bin/aws.cmd @@ -0,0 +1,59 @@ +@echo OFF +REM=""" +setlocal +set PythonExe="" +set PythonExeFlags= + +for %%i in (cmd bat exe) do ( + for %%j in (python.%%i) do ( + call :SetPythonExe "%%~$PATH:j" + ) +) +for /f "tokens=2 delims==" %%i in ('assoc .py') do ( + for /f "tokens=2 delims==" %%j in ('ftype %%i') do ( + for /f "tokens=1" %%k in ("%%j") do ( + call :SetPythonExe %%k + ) + ) +) +%PythonExe% -x %PythonExeFlags% "%~f0" %* +exit /B %ERRORLEVEL% +goto :EOF + +:SetPythonExe +if not ["%~1"]==[""] ( + if [%PythonExe%]==[""] ( + set PythonExe="%~1" + ) +) +goto :EOF +""" + +# =================================================== +# Python script starts here +# =================================================== + +#!/usr/bin/env python +# Copyright 2012 Amazon.com, Inc. or its affiliates. All Rights Reserved. + +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at + +# http://aws.amazon.com/apache2.0/ + +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import awscli.clidriver +import sys + + +def main(): + return awscli.clidriver.main() + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/rep_localstack/bin/aws_bash_completer b/rep_localstack/bin/aws_bash_completer new file mode 100755 index 000000000..32cd1dd8f --- /dev/null +++ b/rep_localstack/bin/aws_bash_completer @@ -0,0 +1,6 @@ +# Typically that would be added under one of the following paths: +# - /etc/bash_completion.d +# - /usr/local/etc/bash_completion.d +# - /usr/share/bash-completion/completions + +complete -C aws_completer aws diff --git a/rep_localstack/bin/aws_completer b/rep_localstack/bin/aws_completer new file mode 100755 index 000000000..d69b4406e --- /dev/null +++ b/rep_localstack/bin/aws_completer @@ -0,0 +1,29 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 +# Copyright 2012 Amazon.com, Inc. or its affiliates. All Rights Reserved. + +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at + +# http://aws.amazon.com/apache2.0/ + +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import os +if os.environ.get('LC_CTYPE', '') == 'UTF-8': + os.environ['LC_CTYPE'] = 'en_US.UTF-8' +import awscli.completer + +if __name__ == '__main__': + # bash exports COMP_LINE and COMP_POINT, tcsh COMMAND_LINE only + cline = os.environ.get('COMP_LINE') or os.environ.get('COMMAND_LINE') or '' + cpoint = int(os.environ.get('COMP_POINT') or len(cline)) + try: + awscli.completer.complete(cline, cpoint) + except KeyboardInterrupt: + # If the user hits Ctrl+C, we don't want to print + # a traceback to the user. + pass diff --git a/rep_localstack/bin/aws_zsh_completer.sh b/rep_localstack/bin/aws_zsh_completer.sh new file mode 100755 index 000000000..c1b2c1244 --- /dev/null +++ b/rep_localstack/bin/aws_zsh_completer.sh @@ -0,0 +1,60 @@ +# Source this file to activate auto completion for zsh using the bash +# compatibility helper. Make sure to run `compinit` before, which should be +# given usually. +# +# % source /path/to/zsh_complete.sh +# +# Typically that would be called somewhere in your .zshrc. +# +# Note, the overwrite of _bash_complete() is to export COMP_LINE and COMP_POINT +# That is only required for zsh <= edab1d3dbe61da7efe5f1ac0e40444b2ec9b9570 +# +# https://github.com/zsh-users/zsh/commit/edab1d3dbe61da7efe5f1ac0e40444b2ec9b9570 +# +# zsh releases prior to that version do not export the required env variables! + +autoload -Uz bashcompinit +bashcompinit -i + +_bash_complete() { + local ret=1 + local -a suf matches + local -x COMP_POINT COMP_CWORD + local -a COMP_WORDS COMPREPLY BASH_VERSINFO + local -x COMP_LINE="$words" + local -A savejobstates savejobtexts + + (( COMP_POINT = 1 + ${#${(j. .)words[1,CURRENT]}} + $#QIPREFIX + $#IPREFIX + $#PREFIX )) + (( COMP_CWORD = CURRENT - 1)) + COMP_WORDS=( $words ) + BASH_VERSINFO=( 2 05b 0 1 release ) + + savejobstates=( ${(kv)jobstates} ) + savejobtexts=( ${(kv)jobtexts} ) + + [[ ${argv[${argv[(I)nospace]:-0}-1]} = -o ]] && suf=( -S '' ) + + matches=( ${(f)"$(compgen $@ -- ${words[CURRENT]})"} ) + + if [[ -n $matches ]]; then + if [[ ${argv[${argv[(I)filenames]:-0}-1]} = -o ]]; then + compset -P '*/' && matches=( ${matches##*/} ) + compset -S '/*' && matches=( ${matches%%/*} ) + compadd -Q -f "${suf[@]}" -a matches && ret=0 + else + compadd -Q "${suf[@]}" -a matches && ret=0 + fi + fi + + if (( ret )); then + if [[ ${argv[${argv[(I)default]:-0}-1]} = -o ]]; then + _default "${suf[@]}" && ret=0 + elif [[ ${argv[${argv[(I)dirnames]:-0}-1]} = -o ]]; then + _directories "${suf[@]}" && ret=0 + fi + fi + + return ret +} + +complete -C aws_completer aws diff --git a/rep_localstack/bin/docutils b/rep_localstack/bin/docutils new file mode 100755 index 000000000..1790e4b05 --- /dev/null +++ b/rep_localstack/bin/docutils @@ -0,0 +1,8 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from docutils.__main__ import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/rep_localstack/bin/jp.py b/rep_localstack/bin/jp.py new file mode 100755 index 000000000..979183cf0 --- /dev/null +++ b/rep_localstack/bin/jp.py @@ -0,0 +1,54 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 + +import sys +import json +import argparse +from pprint import pformat + +import jmespath +from jmespath import exceptions + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('expression') + parser.add_argument('-f', '--filename', + help=('The filename containing the input data. ' + 'If a filename is not given then data is ' + 'read from stdin.')) + parser.add_argument('--ast', action='store_true', + help=('Pretty print the AST, do not search the data.')) + args = parser.parse_args() + expression = args.expression + if args.ast: + # Only print the AST + expression = jmespath.compile(args.expression) + sys.stdout.write(pformat(expression.parsed)) + sys.stdout.write('\n') + return 0 + if args.filename: + with open(args.filename, 'r') as f: + data = json.load(f) + else: + data = sys.stdin.read() + data = json.loads(data) + try: + sys.stdout.write(json.dumps( + jmespath.search(expression, data), indent=4, ensure_ascii=False)) + sys.stdout.write('\n') + except exceptions.ArityError as e: + sys.stderr.write("invalid-arity: %s\n" % e) + return 1 + except exceptions.JMESPathTypeError as e: + sys.stderr.write("invalid-type: %s\n" % e) + return 1 + except exceptions.UnknownFunctionError as e: + sys.stderr.write("unknown-function: %s\n" % e) + return 1 + except exceptions.ParseError as e: + sys.stderr.write("syntax-error: %s\n" % e) + return 1 + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/rep_localstack/bin/pip b/rep_localstack/bin/pip new file mode 100755 index 000000000..d4a5589ec --- /dev/null +++ b/rep_localstack/bin/pip @@ -0,0 +1,8 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/rep_localstack/bin/pip3 b/rep_localstack/bin/pip3 new file mode 100755 index 000000000..d4a5589ec --- /dev/null +++ b/rep_localstack/bin/pip3 @@ -0,0 +1,8 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/rep_localstack/bin/pip3.12 b/rep_localstack/bin/pip3.12 new file mode 100755 index 000000000..d4a5589ec --- /dev/null +++ b/rep_localstack/bin/pip3.12 @@ -0,0 +1,8 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/rep_localstack/bin/pyrsa-decrypt b/rep_localstack/bin/pyrsa-decrypt new file mode 100755 index 000000000..113ec4ec3 --- /dev/null +++ b/rep_localstack/bin/pyrsa-decrypt @@ -0,0 +1,8 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from rsa.cli import decrypt +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(decrypt()) diff --git a/rep_localstack/bin/pyrsa-encrypt b/rep_localstack/bin/pyrsa-encrypt new file mode 100755 index 000000000..196e6d838 --- /dev/null +++ b/rep_localstack/bin/pyrsa-encrypt @@ -0,0 +1,8 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from rsa.cli import encrypt +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(encrypt()) diff --git a/rep_localstack/bin/pyrsa-keygen b/rep_localstack/bin/pyrsa-keygen new file mode 100755 index 000000000..0235989e8 --- /dev/null +++ b/rep_localstack/bin/pyrsa-keygen @@ -0,0 +1,8 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from rsa.cli import keygen +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(keygen()) diff --git a/rep_localstack/bin/pyrsa-priv2pub b/rep_localstack/bin/pyrsa-priv2pub new file mode 100755 index 000000000..508f6c8c0 --- /dev/null +++ b/rep_localstack/bin/pyrsa-priv2pub @@ -0,0 +1,8 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from rsa.util import private_to_public +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(private_to_public()) diff --git a/rep_localstack/bin/pyrsa-sign b/rep_localstack/bin/pyrsa-sign new file mode 100755 index 000000000..2980be1fd --- /dev/null +++ b/rep_localstack/bin/pyrsa-sign @@ -0,0 +1,8 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from rsa.cli import sign +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(sign()) diff --git a/rep_localstack/bin/pyrsa-verify b/rep_localstack/bin/pyrsa-verify new file mode 100755 index 000000000..93376c1f9 --- /dev/null +++ b/rep_localstack/bin/pyrsa-verify @@ -0,0 +1,8 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from rsa.cli import verify +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(verify()) diff --git a/rep_localstack/bin/python b/rep_localstack/bin/python new file mode 120000 index 000000000..b8a0adbbb --- /dev/null +++ b/rep_localstack/bin/python @@ -0,0 +1 @@ +python3 \ No newline at end of file diff --git a/rep_localstack/bin/python3 b/rep_localstack/bin/python3 new file mode 120000 index 000000000..eba85511d --- /dev/null +++ b/rep_localstack/bin/python3 @@ -0,0 +1 @@ +/home/codespace/.python/current/bin/python3 \ No newline at end of file diff --git a/rep_localstack/bin/python3.12 b/rep_localstack/bin/python3.12 new file mode 120000 index 000000000..b8a0adbbb --- /dev/null +++ b/rep_localstack/bin/python3.12 @@ -0,0 +1 @@ +python3 \ No newline at end of file diff --git a/rep_localstack/bin/rst2html.py b/rep_localstack/bin/rst2html.py new file mode 100755 index 000000000..9f054e8df --- /dev/null +++ b/rep_localstack/bin/rst2html.py @@ -0,0 +1,23 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 + +# $Id: rst2html.py 8927 2022-01-03 23:50:05Z milde $ +# Author: David Goodger +# Copyright: This module has been placed in the public domain. + +""" +A minimal front end to the Docutils Publisher, producing HTML. +""" + +try: + import locale + locale.setlocale(locale.LC_ALL, '') +except: + pass + +from docutils.core import publish_cmdline, default_description + + +description = ('Generates (X)HTML documents from standalone reStructuredText ' + 'sources. ' + default_description) + +publish_cmdline(writer_name='html', description=description) diff --git a/rep_localstack/bin/rst2html4.py b/rep_localstack/bin/rst2html4.py new file mode 100755 index 000000000..354a2a1d0 --- /dev/null +++ b/rep_localstack/bin/rst2html4.py @@ -0,0 +1,26 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 + +# $Id: rst2html4.py 8927 2022-01-03 23:50:05Z milde $ +# Author: David Goodger +# Copyright: This module has been placed in the public domain. + +""" +A minimal front end to the Docutils Publisher, producing (X)HTML. + +The output conforms to XHTML 1.0 transitional +and almost to HTML 4.01 transitional (except for closing empty tags). +""" + +try: + import locale + locale.setlocale(locale.LC_ALL, '') +except: + pass + +from docutils.core import publish_cmdline, default_description + + +description = ('Generates (X)HTML documents from standalone reStructuredText ' + 'sources. ' + default_description) + +publish_cmdline(writer_name='html4', description=description) diff --git a/rep_localstack/bin/rst2html5.py b/rep_localstack/bin/rst2html5.py new file mode 100755 index 000000000..ada6b96ad --- /dev/null +++ b/rep_localstack/bin/rst2html5.py @@ -0,0 +1,33 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 +# :Copyright: © 2015 Günter Milde. +# :License: Released under the terms of the `2-Clause BSD license`_, in short: +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. +# This file is offered as-is, without any warranty. +# +# .. _2-Clause BSD license: https://opensource.org/licenses/BSD-2-Clause +# +# Revision: $Revision: 9021 $ +# Date: $Date: 2022-03-04 16:54:22 +0100 (Fr, 04. Mär 2022) $ + +""" +A minimal front end to the Docutils Publisher, producing HTML 5 documents. + +The output is also valid XML. +""" + +try: + import locale # module missing in Jython + locale.setlocale(locale.LC_ALL, '') +except locale.Error: + pass + +from docutils.core import publish_cmdline, default_description + +description = ('Generates HTML5 documents from standalone ' + 'reStructuredText sources.\n' + + default_description) + +publish_cmdline(writer_name='html5', description=description) diff --git a/rep_localstack/bin/rst2latex.py b/rep_localstack/bin/rst2latex.py new file mode 100755 index 000000000..3bac59d83 --- /dev/null +++ b/rep_localstack/bin/rst2latex.py @@ -0,0 +1,26 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 + +# $Id: rst2latex.py 8956 2022-01-20 10:11:44Z milde $ +# Author: David Goodger +# Copyright: This module has been placed in the public domain. + +""" +A minimal front end to the Docutils Publisher, producing LaTeX. +""" + +try: + import locale + locale.setlocale(locale.LC_ALL, '') +except: + pass + +from docutils.core import publish_cmdline + +description = ('Generates LaTeX documents from standalone reStructuredText ' + 'sources. ' + 'Reads from (default is stdin) and writes to ' + ' (default is stdout). See ' + ' for ' + 'the full reference.') + +publish_cmdline(writer_name='latex', description=description) diff --git a/rep_localstack/bin/rst2man.py b/rep_localstack/bin/rst2man.py new file mode 100755 index 000000000..f08adbd18 --- /dev/null +++ b/rep_localstack/bin/rst2man.py @@ -0,0 +1,27 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 + +# Author: +# Contact: grubert@users.sf.net +# Copyright: This module has been placed in the public domain. + +""" +man.py +====== + +This module provides a simple command line interface that uses the +man page writer to output from ReStructuredText source. +""" + +import locale +try: + locale.setlocale(locale.LC_ALL, '') +except: + pass + +from docutils.core import publish_cmdline, default_description +from docutils.writers import manpage + +description = ("Generates plain unix manual documents. " + + default_description) + +publish_cmdline(writer=manpage.Writer(), description=description) diff --git a/rep_localstack/bin/rst2odt.py b/rep_localstack/bin/rst2odt.py new file mode 100755 index 000000000..e6774299d --- /dev/null +++ b/rep_localstack/bin/rst2odt.py @@ -0,0 +1,28 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 + +# $Id: rst2odt.py 8994 2022-01-29 16:28:17Z milde $ +# Author: Dave Kuhlman +# Copyright: This module has been placed in the public domain. + +""" +A front end to the Docutils Publisher, producing OpenOffice documents. +""" + +try: + import locale + locale.setlocale(locale.LC_ALL, '') +except: + pass + +from docutils.core import publish_cmdline_to_binary, default_description +from docutils.writers.odf_odt import Writer, Reader + + +description = ('Generates OpenDocument/OpenOffice/ODF documents from ' + 'standalone reStructuredText sources. ' + default_description) + + +writer = Writer() +reader = Reader() +output = publish_cmdline_to_binary(reader=reader, writer=writer, + description=description) diff --git a/rep_localstack/bin/rst2odt_prepstyles.py b/rep_localstack/bin/rst2odt_prepstyles.py new file mode 100755 index 000000000..65499d150 --- /dev/null +++ b/rep_localstack/bin/rst2odt_prepstyles.py @@ -0,0 +1,65 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 + +# $Id: rst2odt_prepstyles.py 8932 2022-01-05 14:59:31Z milde $ +# Author: Dave Kuhlman +# Copyright: This module has been placed in the public domain. + +""" +Fix a word-processor-generated styles.odt for odtwriter use: Drop page size +specifications from styles.xml in STYLE_FILE.odt. +""" + +# Author: Michael Schutte + +from lxml import etree +import sys +import zipfile +from tempfile import mkstemp +import shutil +import os + +NAMESPACES = { + "style": "urn:oasis:names:tc:opendocument:xmlns:style:1.0", + "fo": "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" +} + + +def prepstyle(filename): + + zin = zipfile.ZipFile(filename) + styles = zin.read("styles.xml") + + root = etree.fromstring(styles) + for el in root.xpath("//style:page-layout-properties", + namespaces=NAMESPACES): + for attr in el.attrib: + if attr.startswith("{%s}" % NAMESPACES["fo"]): + del el.attrib[attr] + + tempname = mkstemp() + zout = zipfile.ZipFile(os.fdopen(tempname[0], "w"), "w", + zipfile.ZIP_DEFLATED) + + for item in zin.infolist(): + if item.filename == "styles.xml": + zout.writestr(item, etree.tostring(root)) + else: + zout.writestr(item, zin.read(item.filename)) + + zout.close() + zin.close() + shutil.move(tempname[1], filename) + + +def main(): + args = sys.argv[1:] + if len(args) != 1 or args[0] in ('-h', '--help'): + print(__doc__, file=sys.stderr) + print("Usage: %s STYLE_FILE.odt\n" % sys.argv[0], file=sys.stderr) + sys.exit(1) + filename = args[0] + prepstyle(filename) + + +if __name__ == '__main__': + main() diff --git a/rep_localstack/bin/rst2pseudoxml.py b/rep_localstack/bin/rst2pseudoxml.py new file mode 100755 index 000000000..c15ffc6a5 --- /dev/null +++ b/rep_localstack/bin/rst2pseudoxml.py @@ -0,0 +1,23 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 + +# $Id: rst2pseudoxml.py 8927 2022-01-03 23:50:05Z milde $ +# Author: David Goodger +# Copyright: This module has been placed in the public domain. + +""" +A minimal front end to the Docutils Publisher, producing pseudo-XML. +""" + +try: + import locale + locale.setlocale(locale.LC_ALL, '') +except: + pass + +from docutils.core import publish_cmdline, default_description + + +description = ('Generates pseudo-XML from standalone reStructuredText ' + 'sources (for testing purposes). ' + default_description) + +publish_cmdline(description=description) diff --git a/rep_localstack/bin/rst2s5.py b/rep_localstack/bin/rst2s5.py new file mode 100755 index 000000000..f571794ab --- /dev/null +++ b/rep_localstack/bin/rst2s5.py @@ -0,0 +1,24 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 + +# $Id: rst2s5.py 8927 2022-01-03 23:50:05Z milde $ +# Author: Chris Liechti +# Copyright: This module has been placed in the public domain. + +""" +A minimal front end to the Docutils Publisher, producing HTML slides using +the S5 template system. +""" + +try: + import locale + locale.setlocale(locale.LC_ALL, '') +except: + pass + +from docutils.core import publish_cmdline, default_description + + +description = ('Generates S5 (X)HTML slideshow documents from standalone ' + 'reStructuredText sources. ' + default_description) + +publish_cmdline(writer_name='s5', description=description) diff --git a/rep_localstack/bin/rst2xetex.py b/rep_localstack/bin/rst2xetex.py new file mode 100755 index 000000000..ea3e7bcd1 --- /dev/null +++ b/rep_localstack/bin/rst2xetex.py @@ -0,0 +1,27 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 + +# $Id: rst2xetex.py 8956 2022-01-20 10:11:44Z milde $ +# Author: Guenter Milde +# Copyright: This module has been placed in the public domain. + +""" +A minimal front end to the Docutils Publisher, producing Lua/XeLaTeX code. +""" + +try: + import locale + locale.setlocale(locale.LC_ALL, '') +except: + pass + +from docutils.core import publish_cmdline + +description = ('Generates LaTeX documents from standalone reStructuredText ' + 'sources for compilation with the Unicode-aware TeX variants ' + 'XeLaTeX or LuaLaTeX. ' + 'Reads from (default is stdin) and writes to ' + ' (default is stdout). See ' + ' for ' + 'the full reference.') + +publish_cmdline(writer_name='xetex', description=description) diff --git a/rep_localstack/bin/rst2xml.py b/rep_localstack/bin/rst2xml.py new file mode 100755 index 000000000..82123f43a --- /dev/null +++ b/rep_localstack/bin/rst2xml.py @@ -0,0 +1,23 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 + +# $Id: rst2xml.py 8927 2022-01-03 23:50:05Z milde $ +# Author: David Goodger +# Copyright: This module has been placed in the public domain. + +""" +A minimal front end to the Docutils Publisher, producing Docutils XML. +""" + +try: + import locale + locale.setlocale(locale.LC_ALL, '') +except: + pass + +from docutils.core import publish_cmdline, default_description + + +description = ('Generates Docutils-native XML from standalone ' + 'reStructuredText sources. ' + default_description) + +publish_cmdline(writer_name='xml', description=description) diff --git a/rep_localstack/bin/rstpep2html.py b/rep_localstack/bin/rstpep2html.py new file mode 100755 index 000000000..b97a959b0 --- /dev/null +++ b/rep_localstack/bin/rstpep2html.py @@ -0,0 +1,25 @@ +#!/workspaces/API_Driven/rep_localstack/bin/python3 + +# $Id: rstpep2html.py 8927 2022-01-03 23:50:05Z milde $ +# Author: David Goodger +# Copyright: This module has been placed in the public domain. + +""" +A minimal front end to the Docutils Publisher, producing HTML from PEP +(Python Enhancement Proposal) documents. +""" + +try: + import locale + locale.setlocale(locale.LC_ALL, '') +except: + pass + +from docutils.core import publish_cmdline, default_description + + +description = ('Generates (X)HTML from reStructuredText-format PEP files. ' + + default_description) + +publish_cmdline(reader_name='pep', writer_name='pep_html', + description=description) diff --git a/rep_localstack/lib/python3.12/site-packages/__pycache__/six.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/__pycache__/six.cpython-312.pyc new file mode 100644 index 000000000..4a5a37307 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/__pycache__/six.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/_yaml/__init__.py b/rep_localstack/lib/python3.12/site-packages/_yaml/__init__.py new file mode 100644 index 000000000..7baa8c4b6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/_yaml/__init__.py @@ -0,0 +1,33 @@ +# This is a stub package designed to roughly emulate the _yaml +# extension module, which previously existed as a standalone module +# and has been moved into the `yaml` package namespace. +# It does not perfectly mimic its old counterpart, but should get +# close enough for anyone who's relying on it even when they shouldn't. +import yaml + +# in some circumstances, the yaml module we imoprted may be from a different version, so we need +# to tread carefully when poking at it here (it may not have the attributes we expect) +if not getattr(yaml, '__with_libyaml__', False): + from sys import version_info + + exc = ModuleNotFoundError if version_info >= (3, 6) else ImportError + raise exc("No module named '_yaml'") +else: + from yaml._yaml import * + import warnings + warnings.warn( + 'The _yaml extension module is now located at yaml._yaml' + ' and its location is subject to change. To use the' + ' LibYAML-based parser and emitter, import from `yaml`:' + ' `from yaml import CLoader as Loader, CDumper as Dumper`.', + DeprecationWarning + ) + del warnings + # Don't `del yaml` here because yaml is actually an existing + # namespace member of _yaml. + +__name__ = '_yaml' +# If the module is top-level (i.e. not a part of any specific package) +# then the attribute should be set to ''. +# https://docs.python.org/3.8/library/types.html +__package__ = '' diff --git a/rep_localstack/lib/python3.12/site-packages/_yaml/__pycache__/__init__.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/_yaml/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 000000000..51470f43d Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/_yaml/__pycache__/__init__.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli-1.44.83.dist-info/INSTALLER b/rep_localstack/lib/python3.12/site-packages/awscli-1.44.83.dist-info/INSTALLER new file mode 100644 index 000000000..a1b589e38 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli-1.44.83.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/rep_localstack/lib/python3.12/site-packages/awscli-1.44.83.dist-info/LICENSE.txt b/rep_localstack/lib/python3.12/site-packages/awscli-1.44.83.dist-info/LICENSE.txt new file mode 100644 index 000000000..37014e831 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli-1.44.83.dist-info/LICENSE.txt @@ -0,0 +1,12 @@ +Copyright 2012-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"). You +may not use this file except in compliance with the License. A copy of +the License is located at + + http://aws.amazon.com/apache2.0/ + +or in the "license" file accompanying this file. This file is +distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +ANY KIND, either express or implied. See the License for the specific +language governing permissions and limitations under the License. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli-1.44.83.dist-info/METADATA b/rep_localstack/lib/python3.12/site-packages/awscli-1.44.83.dist-info/METADATA new file mode 100644 index 000000000..7262a1365 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli-1.44.83.dist-info/METADATA @@ -0,0 +1,359 @@ +Metadata-Version: 2.1 +Name: awscli +Version: 1.44.83 +Summary: Universal Command Line Environment for AWS. +Home-page: http://aws.amazon.com/cli/ +Author: Amazon Web Services +License: Apache License 2.0 +Project-URL: Source, https://github.com/aws/aws-cli +Project-URL: Reference, https://docs.aws.amazon.com/cli/latest/reference/ +Project-URL: Changelog, https://github.com/aws/aws-cli/blob/develop/CHANGELOG.rst +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: System Administrators +Classifier: Natural Language :: English +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Requires-Python: >= 3.9 +License-File: LICENSE.txt +Requires-Dist: botocore (==1.42.93) +Requires-Dist: docutils (<=0.19,>=0.18.1) +Requires-Dist: s3transfer (<0.17.0,>=0.16.0) +Requires-Dist: PyYAML (<6.1,>=3.10) +Requires-Dist: colorama (<0.4.7,>=0.2.5) +Requires-Dist: rsa (<4.8,>=3.1.2) + +aws-cli +======= + +.. image:: https://github.com/aws/aws-cli/actions/workflows/run-tests.yml/badge.svg + :target: https://github.com/aws/aws-cli/actions/workflows/run-tests.yml + :alt: Build Status + +This package provides a unified command line interface to Amazon Web +Services. + +Jump to: + +- `Getting Started <#getting-started>`__ +- `Getting Help <#getting-help>`__ +- `More Resources <#more-resources>`__ + + +Entering Maintenance Mode on July 15, 2026 +------------------------------------------ + +We `announced `__ +the upcoming **end-of-support for the AWS CLI v1**. We recommend +that you migrate to +`AWS CLI v2 `__. +For dates, additional details, and information on how to migrate, +please refer to the linked announcement. + +Getting Started +--------------- + +This README is for the AWS CLI version 1. If you are looking for +information about the AWS CLI version 2, please visit the `v2 +branch `__. + +Requirements +~~~~~~~~~~~~ + +The aws-cli package works on Python versions: + +- 3.9.x and greater +- 3.10.x and greater +- 3.11.x and greater +- 3.12.x and greater +- 3.13.x and greater +- 3.14.x and greater + +Notices +~~~~~~~ + +On 2025-04-22, support for Python 3.8 ended for the AWS CLI. This follows the +Python Software Foundation `end of support `__ +for the runtime which occurred on 2024-10-07. +For more information, see this `blog post `__. + +*Attention!* + +*We recommend that all customers regularly monitor the* `Amazon Web +Services Security Bulletins +website `__ *for +any important security bulletins related to aws-cli.* + +Maintenance and Support for CLI Major Versions +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The AWS CLI version 1 was made generally available on 09/02/2013 and is currently in the full support phase of the availability life cycle. + +For information about maintenance and support for SDK major versions and their underlying dependencies, see the `Maintenance Policy `__ section in the *AWS SDKs and Tools Shared Configuration and Credentials Reference Guide*. + +Installation +~~~~~~~~~~~~ + +Installation of the AWS CLI and its dependencies use a range of packaging +features provided by ``pip`` and ``setuptools``. To ensure smooth installation, +it's recommended to use: + +- ``pip``: 9.0.2 or greater +- ``setuptools``: 36.2.0 or greater + +The safest way to install the AWS CLI is to use +`pip `__ in a ``virtualenv``: + +:: + + $ python -m pip install awscli + +or, if you are not installing in a ``virtualenv``, to install globally: + +:: + + $ sudo python -m pip install awscli + +or for your user: + +:: + + $ python -m pip install --user awscli + +If you have the aws-cli package installed and want to upgrade to the +latest version, you can run: + +:: + + $ python -m pip install --upgrade awscli + +This will install the aws-cli package as well as all dependencies. + +.. note:: + On macOS, if you see an error regarding the version of ``six`` that + came with ``distutils`` in El Capitan, use the ``--ignore-installed`` + option: + +:: + + $ sudo python -m pip install awscli --ignore-installed six + +On Linux and Mac OS, the AWS CLI can be installed using a `bundled +installer `__. +The AWS CLI can also be installed on Windows via an `MSI +Installer `__. + +If you want to run the ``develop`` branch of the AWS CLI, see the +`Development Version `__ section of +the contributing guide. + +See the +`installation `__ +section of the AWS CLI User Guide for more information. + +Configuration +~~~~~~~~~~~~~ + +Before using the AWS CLI, you need to configure your AWS credentials. +You can do this in several ways: + +- Configuration command +- Environment variables +- Shared credentials file +- Config file +- IAM Role + +The quickest way to get started is to run the ``aws configure`` command: + +:: + + $ aws configure + AWS Access Key ID: MYACCESSKEY + AWS Secret Access Key: MYSECRETKEY + Default region name [us-west-2]: us-west-2 + Default output format [None]: json + +To use environment variables, do the following: + +:: + + $ export AWS_ACCESS_KEY_ID= + $ export AWS_SECRET_ACCESS_KEY= + +To use the shared credentials file, create an INI formatted file like +this: + +:: + + [default] + aws_access_key_id=MYACCESSKEY + aws_secret_access_key=MYSECRETKEY + + [testing] + aws_access_key_id=MYACCESSKEY + aws_secret_access_key=MYSECRETKEY + +and place it in ``~/.aws/credentials`` (or in +``%UserProfile%\.aws/credentials`` on Windows). If you wish to place the +shared credentials file in a different location than the one specified +above, you need to tell aws-cli where to find it. Do this by setting the +appropriate environment variable: + +:: + + $ export AWS_SHARED_CREDENTIALS_FILE=/path/to/shared_credentials_file + +To use a config file, create an INI formatted file like this: + +:: + + [default] + aws_access_key_id= + aws_secret_access_key= + # Optional, to define default region for this profile. + region=us-west-1 + + [profile testing] + aws_access_key_id= + aws_secret_access_key= + region=us-west-2 + +and place it in ``~/.aws/config`` (or in ``%UserProfile%\.aws\config`` +on Windows). If you wish to place the config file in a different +location than the one specified above, you need to tell the AWS CLI +where to find it. Do this by setting the appropriate environment +variable: + +:: + + $ export AWS_CONFIG_FILE=/path/to/config_file + +As you can see, you can have multiple ``profiles`` defined in both the +shared credentials file and the configuration file. You can then specify +which profile to use by using the ``--profile`` option. If no profile is +specified the ``default`` profile is used. + +In the config file, except for the default profile, you **must** prefix +each config section of a profile group with ``profile``. For example, if +you have a profile named "testing" the section header would be +``[profile testing]``. + +The final option for credentials is highly recommended if you are using +the AWS CLI on an EC2 instance. `IAM +Roles `__ +are a great way to have credentials installed automatically on your +instance. If you are using IAM Roles, the AWS CLI will find and use them +automatically. + +In addition to credentials, a number of other variables can be +configured either with environment variables, configuration file +entries, or both. See the `AWS Tools and SDKs Shared Configuration and +Credentials Reference +Guide `__ +for more information. + +For more information about configuration options, please refer to the +`AWS CLI Configuration Variables +topic `__. +You can access this topic from the AWS CLI as well by running +``aws help config-vars``. + +Basic Commands +~~~~~~~~~~~~~~ + +An AWS CLI command has the following structure: + +:: + + $ aws [options and parameters] + +For example, to list S3 buckets, the command would be: + +:: + + $ aws s3 ls + +To view help documentation, use one of the following: + +:: + + $ aws help + $ aws help + $ aws help + +To get the version of the AWS CLI: + +:: + + $ aws --version + +To turn on debugging output: + +:: + + $ aws --debug + +You can read more information on the `Using the AWS +CLI `__ +chapter of the AWS CLI User Guide. + +Command Completion +~~~~~~~~~~~~~~~~~~ + +The aws-cli package includes a command completion feature for Unix-like +systems. This feature is not automatically installed so you need to +configure it manually. To learn more, read the `AWS CLI Command +completion +topic `__. + +Getting Help +------------ + +The best way to interact with our team is through GitHub. You can `open +an issue `__ and +choose from one of our templates for guidance, bug reports, or feature +requests. + +You may find help from the community on `Stack +Overflow `__ with the tag +`aws-cli `__ or on +the `AWS Discussion Forum for +CLI `__. If you +have a support plan with `AWS Support +`__, you can also create +a new support case. + +Please check for open similar +`issues `__ before opening +another one. + +The AWS CLI implements AWS service APIs. For general issues regarding +the services or their limitations, you may find the `Amazon Web Services +Discussion Forums `__ helpful. + +More Resources +-------------- + +- `Changelog `__ +- `AWS CLI + Documentation `__ +- `AWS CLI User + Guide `__ +- `AWS CLI Command + Reference `__ +- `Amazon Web Services Discussion + Forums `__ +- `AWS Support `__ + +.. |Build Status| image:: https://travis-ci.org/aws/aws-cli.svg?branch=develop + :target: https://travis-ci.org/aws/aws-cli +.. |Gitter| image:: https://badges.gitter.im/aws/aws-cli.svg + :target: https://gitter.im/aws/aws-cli diff --git a/rep_localstack/lib/python3.12/site-packages/awscli-1.44.83.dist-info/RECORD b/rep_localstack/lib/python3.12/site-packages/awscli-1.44.83.dist-info/RECORD new file mode 100644 index 000000000..7e9e4b6c4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli-1.44.83.dist-info/RECORD @@ -0,0 +1,6259 @@ +../../../bin/aws,sha256=f9WDxwNuNYoLurh1TnAiCkizsz4ZLBh7ear6WRxJa1k,848 +../../../bin/aws.cmd,sha256=s46DkC6LNgX63CIkzxxbPnFMJ6DRDBkvc88GnWa8Pvg,1432 +../../../bin/aws_bash_completer,sha256=RRpoEGJRagRzyHZKZZOwpltuVYv2EoiZsdXhmyWPZ54,204 +../../../bin/aws_completer,sha256=uARk7MCS-6rehAhBTa14YkLFPXN6IO_kJR1a_yq1KXo,1169 +../../../bin/aws_zsh_completer.sh,sha256=Qm6Z8ejNAMzpJjaT0pzqxbSDT2zxdmzVe5haRA7qLoc,1808 +awscli-1.44.83.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +awscli-1.44.83.dist-info/LICENSE.txt,sha256=o5XhFlwu0OK_BBrijlKCRa7dQAm36UrUB3gCV_cEr8E,549 +awscli-1.44.83.dist-info/METADATA,sha256=wEb7SkSof2sv26hb_d502o5YCakdq7jsfpEbGLxIXdA,11666 +awscli-1.44.83.dist-info/RECORD,, +awscli-1.44.83.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +awscli-1.44.83.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91 +awscli-1.44.83.dist-info/top_level.txt,sha256=vt9wXFr1_nGYK6abhJgt6zY3fULe4JSZedm_5XOM9S0,7 +awscli/__init__.py,sha256=Y3t6x7ZHXF0ElswDq1qQ3QMOPWEmlJrNjOTkTF-7PGQ,1534 +awscli/__main__.py,sha256=iBjOg0tBxNlhzTi_tyc1G0SMGBvHMVvBJzX3JqYaooY,662 +awscli/__pycache__/__init__.cpython-312.pyc,, +awscli/__pycache__/__main__.cpython-312.pyc,, +awscli/__pycache__/alias.cpython-312.pyc,, +awscli/__pycache__/argparser.cpython-312.pyc,, +awscli/__pycache__/argprocess.cpython-312.pyc,, +awscli/__pycache__/arguments.cpython-312.pyc,, +awscli/__pycache__/clidocs.cpython-312.pyc,, +awscli/__pycache__/clidriver.cpython-312.pyc,, +awscli/__pycache__/commands.cpython-312.pyc,, +awscli/__pycache__/compat.cpython-312.pyc,, +awscli/__pycache__/completer.cpython-312.pyc,, +awscli/__pycache__/errorhandler.cpython-312.pyc,, +awscli/__pycache__/formatter.cpython-312.pyc,, +awscli/__pycache__/handlers.cpython-312.pyc,, +awscli/__pycache__/help.cpython-312.pyc,, +awscli/__pycache__/paramfile.cpython-312.pyc,, +awscli/__pycache__/plugin.cpython-312.pyc,, +awscli/__pycache__/schema.cpython-312.pyc,, +awscli/__pycache__/shorthand.cpython-312.pyc,, +awscli/__pycache__/table.cpython-312.pyc,, +awscli/__pycache__/testutils.cpython-312.pyc,, +awscli/__pycache__/text.cpython-312.pyc,, +awscli/__pycache__/topictags.cpython-312.pyc,, +awscli/__pycache__/utils.cpython-312.pyc,, +awscli/alias.py,sha256=Ur2CManyqL9CpBrO7XW7yz_vcJWb16dlbQIqX1pHt3k,11382 +awscli/argparser.py,sha256=3Pxx-vWytdV985Y6MIl9DeutUXyehIvACIs_PDby8GI,7650 +awscli/argprocess.py,sha256=zyAqfiDxKk36c9GWP82OO9HU7jNYLh4cWQdyKpq7j2s,21341 +awscli/arguments.py,sha256=xFKlgo038w8rv8LUnjJaxfxTRu-s3PiVijvU4P_Eolo,18846 +awscli/bcdoc/__init__.py,sha256=V2g87AefB2DOD9_3xIF5k9Nv5ttb4_gNJOVvSF0Mp3s,588 +awscli/bcdoc/__pycache__/__init__.cpython-312.pyc,, +awscli/bcdoc/__pycache__/docevents.cpython-312.pyc,, +awscli/bcdoc/__pycache__/docstringparser.cpython-312.pyc,, +awscli/bcdoc/__pycache__/restdoc.cpython-312.pyc,, +awscli/bcdoc/__pycache__/style.cpython-312.pyc,, +awscli/bcdoc/__pycache__/textwriter.cpython-312.pyc,, +awscli/bcdoc/docevents.py,sha256=RErca_G76a310UgXncghXcfoQ26ZNGzmqwJ-xgf8DWM,5027 +awscli/bcdoc/docstringparser.py,sha256=-QMoUsJrmnI-G46YbDm2UACU4jpHXonwouG9CFAlzNg,5679 +awscli/bcdoc/restdoc.py,sha256=Fe8LY0DrRkYbJqndN8P8Ma8n9_Ip8qUdDMU2H6lrOOg,7928 +awscli/bcdoc/style.py,sha256=Zf7DB_WSQgfseH3mnXMqKkE0Q8eC_iNYw3w_Pkx63os,11833 +awscli/bcdoc/textwriter.py,sha256=z6WyK2qm-f4xWFZhcAc_Dori_XrrSsIdkkITQ61De_w,20611 +awscli/clidocs.py,sha256=VWu0ECPAt1MZwdCTqdrrzrRDputralHKzyozt7LOOho,32615 +awscli/clidriver.py,sha256=REnBxLQWqPjxhkaNpSjCZuIOF0hxdkeBBMEWeMAMa_w,28578 +awscli/commands.py,sha256=fJVPJajqYCl9pieIphIVYYQvbwdCbufkDj87I7W0JwE,2097 +awscli/compat.py,sha256=muMu5rDIoIVSd1_UEqfKjB-KfFb8E3lLDUksdhtDUNU,18939 +awscli/completer.py,sha256=vNCS1kr1Q_JO8fLh5YGwfUK3sSaDp3k8rrpa_cCIgY4,5986 +awscli/customizations/__init__.py,sha256=enP4McjXiSlxQrYPyUcOvpUtzy5Q2p6o9M6ydJPkbD0,1484 +awscli/customizations/__pycache__/__init__.cpython-312.pyc,, +awscli/customizations/__pycache__/addexamples.cpython-312.pyc,, +awscli/customizations/__pycache__/argrename.cpython-312.pyc,, +awscli/customizations/__pycache__/arguments.cpython-312.pyc,, +awscli/customizations/__pycache__/assumerole.cpython-312.pyc,, +awscli/customizations/__pycache__/awslambda.cpython-312.pyc,, +awscli/customizations/__pycache__/binaryhoist.cpython-312.pyc,, +awscli/customizations/__pycache__/cliinputjson.cpython-312.pyc,, +awscli/customizations/__pycache__/cloudfront.cpython-312.pyc,, +awscli/customizations/__pycache__/cloudsearch.cpython-312.pyc,, +awscli/customizations/__pycache__/cloudsearchdomain.cpython-312.pyc,, +awscli/customizations/__pycache__/codecommit.cpython-312.pyc,, +awscli/customizations/__pycache__/commands.cpython-312.pyc,, +awscli/customizations/__pycache__/dynamodb.cpython-312.pyc,, +awscli/customizations/__pycache__/ecr.cpython-312.pyc,, +awscli/customizations/__pycache__/ecr_public.cpython-312.pyc,, +awscli/customizations/__pycache__/flatten.cpython-312.pyc,, +awscli/customizations/__pycache__/generatecliskeleton.cpython-312.pyc,, +awscli/customizations/__pycache__/globalargs.cpython-312.pyc,, +awscli/customizations/__pycache__/iamvirtmfa.cpython-312.pyc,, +awscli/customizations/__pycache__/iot.cpython-312.pyc,, +awscli/customizations/__pycache__/iot_data.cpython-312.pyc,, +awscli/customizations/__pycache__/kinesis.cpython-312.pyc,, +awscli/customizations/__pycache__/kms.cpython-312.pyc,, +awscli/customizations/__pycache__/mturk.cpython-312.pyc,, +awscli/customizations/__pycache__/overridesslcommonname.cpython-312.pyc,, +awscli/customizations/__pycache__/paginate.cpython-312.pyc,, +awscli/customizations/__pycache__/preview.cpython-312.pyc,, +awscli/customizations/__pycache__/putmetricdata.cpython-312.pyc,, +awscli/customizations/__pycache__/quicksight.cpython-312.pyc,, +awscli/customizations/__pycache__/rds.cpython-312.pyc,, +awscli/customizations/__pycache__/rekognition.cpython-312.pyc,, +awscli/customizations/__pycache__/removals.cpython-312.pyc,, +awscli/customizations/__pycache__/route53.cpython-312.pyc,, +awscli/customizations/__pycache__/s3errormsg.cpython-312.pyc,, +awscli/customizations/__pycache__/s3events.cpython-312.pyc,, +awscli/customizations/__pycache__/s3uploader.cpython-312.pyc,, +awscli/customizations/__pycache__/sagemaker.cpython-312.pyc,, +awscli/customizations/__pycache__/scalarparse.cpython-312.pyc,, +awscli/customizations/__pycache__/sessendemail.cpython-312.pyc,, +awscli/customizations/__pycache__/sessionmanager.cpython-312.pyc,, +awscli/customizations/__pycache__/sms_voice.cpython-312.pyc,, +awscli/customizations/__pycache__/socialmessaging.cpython-312.pyc,, +awscli/customizations/__pycache__/streamingoutputarg.cpython-312.pyc,, +awscli/customizations/__pycache__/toplevelbool.cpython-312.pyc,, +awscli/customizations/__pycache__/translate.cpython-312.pyc,, +awscli/customizations/__pycache__/utils.cpython-312.pyc,, +awscli/customizations/__pycache__/waiters.cpython-312.pyc,, +awscli/customizations/addexamples.py,sha256=uxW_EhG5eoMMVujdBiW_C7FWoMANW1Asgmb1iNredMc,2733 +awscli/customizations/argrename.py,sha256=tmTlMbzx6M13fpSCLIHdlos-d_SJgbpAxxGCoZwmsVw,9437 +awscli/customizations/arguments.py,sha256=-0uzhdTqrow2DxR_QH10hdthG7fkb5_IzlpYd49PMjI,8338 +awscli/customizations/assumerole.py,sha256=FUCgT_om8pao6QQyweTpI3sQ-5PPv4TvBUcPBebnAz4,1851 +awscli/customizations/awslambda.py,sha256=UHyshzdTTZ1dJNRhwisN_a6VkHNby2gbJq3gTjBgccY,5978 +awscli/customizations/binaryhoist.py,sha256=FAcYkwL7IAGAtwQF1ZjyEZE6iZQr0pPU8IiSFgbierI,3638 +awscli/customizations/cliinputjson.py,sha256=06QCMnvkVK2Yhm7jeteAQM6SY9HAZWOCmsglYwkYEmg,4043 +awscli/customizations/cloudformation/__init__.py,sha256=rcZDPPnatHSw8I0ogt3eHOL4HKIW3DbUFKEZdf76TEg,1281 +awscli/customizations/cloudformation/__pycache__/__init__.cpython-312.pyc,, +awscli/customizations/cloudformation/__pycache__/artifact_exporter.cpython-312.pyc,, +awscli/customizations/cloudformation/__pycache__/deploy.cpython-312.pyc,, +awscli/customizations/cloudformation/__pycache__/deployer.cpython-312.pyc,, +awscli/customizations/cloudformation/__pycache__/exceptions.cpython-312.pyc,, +awscli/customizations/cloudformation/__pycache__/package.cpython-312.pyc,, +awscli/customizations/cloudformation/__pycache__/yamlhelper.cpython-312.pyc,, +awscli/customizations/cloudformation/artifact_exporter.py,sha256=evvQTSzPkv4bUyYr318HqwQwfkxiz0cMCxfYr8x2R6o,23617 +awscli/customizations/cloudformation/deploy.py,sha256=nIBKr1YKlucNrohZqM-WANUQqGxylmG0APWQJfbrAkg,16553 +awscli/customizations/cloudformation/deployer.py,sha256=OVxj1Ai7FTNyuljxTFQU3vqKVy67FcpSnWZ95AI7bNA,9870 +awscli/customizations/cloudformation/exceptions.py,sha256=G5F8FB8lxSzKMHmDZPhl4UdbrjB87mUWaBzgY901JJA,2137 +awscli/customizations/cloudformation/package.py,sha256=cugfhLY2R8ZY97kOK_XLd9GfK8PxF0LVN1xe4mirEkU,6116 +awscli/customizations/cloudformation/yamlhelper.py,sha256=PwSRzdpL2lOhhwlnmtLCp3eJOxrYwWmvQ8bimpzQXks,3305 +awscli/customizations/cloudfront.py,sha256=bkMmqM2xJ14_6SeSCSglpbWLziMeGgGaPQM56zRwAYo,10648 +awscli/customizations/cloudsearch.py,sha256=0WKfcUTr2l2FhdeJ2FiX5XZXZb5EIIHAbS1d2tVPLko,4494 +awscli/customizations/cloudsearchdomain.py,sha256=_uQctHHxAqSt_d4snYIWS3bEDeordU0jpZLb5xtYjzM,1074 +awscli/customizations/cloudtrail/__init__.py,sha256=6IMtaLoCrMMf1LdsmLLp5Q-uLeH_hpyCHIH1o2boYPQ,1337 +awscli/customizations/cloudtrail/__pycache__/__init__.cpython-312.pyc,, +awscli/customizations/cloudtrail/__pycache__/subscribe.cpython-312.pyc,, +awscli/customizations/cloudtrail/__pycache__/utils.cpython-312.pyc,, +awscli/customizations/cloudtrail/__pycache__/validation.cpython-312.pyc,, +awscli/customizations/cloudtrail/subscribe.py,sha256=kvpviUZqm9E4x5RSSY2UVpM5UHStSA5cCjogF1ap1iA,13742 +awscli/customizations/cloudtrail/utils.py,sha256=dd-2CmiEbqXatOYOG5W7L-rpuxTatijdMJ-qmASrCwI,1224 +awscli/customizations/cloudtrail/validation.py,sha256=N8s0PhYtl7xV7ONtWx_Fkl9Nvw723WMqKqY9bG0KZ9g,48716 +awscli/customizations/codeartifact/__init__.py,sha256=dgIMOQhLehpxG8pAzs8XWB3J9HGD9ZxLYLJu-UVV0wo,334 +awscli/customizations/codeartifact/__pycache__/__init__.cpython-312.pyc,, +awscli/customizations/codeartifact/__pycache__/login.cpython-312.pyc,, +awscli/customizations/codeartifact/login.py,sha256=JL95jGmGxznCX8Fl7BW1sOvExejo6hTcf_OJ_zk0isw,28525 +awscli/customizations/codecommit.py,sha256=04LfxFa24whp4znSmhZ4ReZU66rH9gQUY2wKr_fxhZs,7489 +awscli/customizations/codedeploy/__init__.py,sha256=FT9vGCIrGANuGV5vZ8j_0DljBF6ocxqokqBGzPqFCio,565 +awscli/customizations/codedeploy/__pycache__/__init__.cpython-312.pyc,, +awscli/customizations/codedeploy/__pycache__/codedeploy.cpython-312.pyc,, +awscli/customizations/codedeploy/__pycache__/deregister.cpython-312.pyc,, +awscli/customizations/codedeploy/__pycache__/install.cpython-312.pyc,, +awscli/customizations/codedeploy/__pycache__/locationargs.cpython-312.pyc,, +awscli/customizations/codedeploy/__pycache__/push.cpython-312.pyc,, +awscli/customizations/codedeploy/__pycache__/register.cpython-312.pyc,, +awscli/customizations/codedeploy/__pycache__/systems.cpython-312.pyc,, +awscli/customizations/codedeploy/__pycache__/uninstall.cpython-312.pyc,, +awscli/customizations/codedeploy/__pycache__/utils.cpython-312.pyc,, +awscli/customizations/codedeploy/codedeploy.py,sha256=lQzSYdJK7Asz1EEspzRTmMVypnIRyOp27kIjHRobMQU,2212 +awscli/customizations/codedeploy/deregister.py,sha256=uW0NaP68MtjYA2gnIQXyQwiy_dkxUt4-wyN3tlRGSf4,6291 +awscli/customizations/codedeploy/install.py,sha256=LZ9yeZuPolQdJ3CjR7R07Uwh9WOlOX5WgBbdxVAbT4k,4205 +awscli/customizations/codedeploy/locationargs.py,sha256=JupUxddF8XDUe0mSs3JiYKp7esCo6RuWGjo5o6N8-vc,5910 +awscli/customizations/codedeploy/push.py,sha256=rm0z3GpF3rocARIhaFUdjXYpbJy3ZmgFSuMpbdzymxg,10729 +awscli/customizations/codedeploy/register.py,sha256=pkoCY0CGWvRW1JwrCla2RLXM_V9TvMb53QBUdMiEQv8,7281 +awscli/customizations/codedeploy/systems.py,sha256=caLyE4RS3OllcZ9bsmV__3uvKNLJEtUPiESPunDy0YM,7727 +awscli/customizations/codedeploy/uninstall.py,sha256=TwtuDoqBdxK95GGp3UxQa2KqMj7T9aikhAKPxhSqYJs,2202 +awscli/customizations/codedeploy/utils.py,sha256=EalPIWhadO7CWeIF16f5kc_GQaf0YhRohFsstD0HM5w,4640 +awscli/customizations/commands.py,sha256=R1lDaDg1VKjG3fkkurBTgiYILIT6Eak-hooJyY9Uhm4,17187 +awscli/customizations/configservice/__init__.py,sha256=_5TbmyGbXMuErfCQRk40A91pi_Z7qVDO-_4GVyOz41U,565 +awscli/customizations/configservice/__pycache__/__init__.cpython-312.pyc,, +awscli/customizations/configservice/__pycache__/getstatus.cpython-312.pyc,, +awscli/customizations/configservice/__pycache__/putconfigurationrecorder.cpython-312.pyc,, +awscli/customizations/configservice/__pycache__/rename_cmd.cpython-312.pyc,, +awscli/customizations/configservice/__pycache__/subscribe.cpython-312.pyc,, +awscli/customizations/configservice/getstatus.py,sha256=Zg98ig7WRAc5gnCunAnI_NFgvw21KKafhNMB-8wxQmU,4296 +awscli/customizations/configservice/putconfigurationrecorder.py,sha256=Y7LrVfv1_R_0CwrDXIidP25I7Jf0qhcdQ7_IkEayRa4,3154 +awscli/customizations/configservice/rename_cmd.py,sha256=RSAwnltldj7HC8Ex4OLcyUeff5JMvLE150m8RO66IXI,924 +awscli/customizations/configservice/subscribe.py,sha256=s2CL8-e1xiQi0zf66AZPYbaKPb6J8xSRqAaXcDT3g3k,6997 +awscli/customizations/configure/__init__.py,sha256=CR7BYdRZYt6-qlKX7Kd09DBnXn1MwhYe9cud7vWrsmA,1484 +awscli/customizations/configure/__pycache__/__init__.cpython-312.pyc,, +awscli/customizations/configure/__pycache__/addmodel.cpython-312.pyc,, +awscli/customizations/configure/__pycache__/configure.cpython-312.pyc,, +awscli/customizations/configure/__pycache__/get.cpython-312.pyc,, +awscli/customizations/configure/__pycache__/list.cpython-312.pyc,, +awscli/customizations/configure/__pycache__/set.cpython-312.pyc,, +awscli/customizations/configure/__pycache__/writer.cpython-312.pyc,, +awscli/customizations/configure/addmodel.py,sha256=NG5mlawdo5g4wSwOEwunBy8bAdiFYw_eyPsti4XMVZ4,4865 +awscli/customizations/configure/configure.py,sha256=xpNL4ZEhP25GTLvN8bgZxHgdSpLoafxBKUmLmY5u364,5959 +awscli/customizations/configure/get.py,sha256=T4ih2FpofIBz549pWkzf29IQ_F4I26F2D1-S6PPHLh0,4330 +awscli/customizations/configure/list.py,sha256=BEQ7WqpYOOInglQ_D1VDJrs-wd5-u9EC4ecW-A6AXYE,5766 +awscli/customizations/configure/set.py,sha256=h6Jhwzt6hrzjO7MP9sfweOmhNoGUkclgqzvIAIw5Hwo,4758 +awscli/customizations/configure/writer.py,sha256=wKlxcpKhNrozihZWEVTl6boztAl1iJoUPWTyI92Khuc,11204 +awscli/customizations/datapipeline/__init__.py,sha256=OH-wMuyb8UHhmlUmQL2vfjoyQbMKKjPS7EoWTKC6i7g,17109 +awscli/customizations/datapipeline/__pycache__/__init__.cpython-312.pyc,, +awscli/customizations/datapipeline/__pycache__/constants.cpython-312.pyc,, +awscli/customizations/datapipeline/__pycache__/createdefaultroles.cpython-312.pyc,, +awscli/customizations/datapipeline/__pycache__/listrunsformatter.cpython-312.pyc,, +awscli/customizations/datapipeline/__pycache__/translator.cpython-312.pyc,, +awscli/customizations/datapipeline/constants.py,sha256=8drCqQal41RKcW-MqLjFo_t1ta2WU18G76JP23yBefY,1895 +awscli/customizations/datapipeline/createdefaultroles.py,sha256=kSTNEn6_yCaczfiEFnPTv1vBj4H4Tnn6GUSoOJ4Vznk,9913 +awscli/customizations/datapipeline/listrunsformatter.py,sha256=4Gytk-ewHd22TZdc1Qoe19xyYJ1sJK97oo6m_q_9QVg,2131 +awscli/customizations/datapipeline/translator.py,sha256=5RFeT4yKaU5jvSsnodMPgfLgMbn_4Dt4Flk1oc0FiVI,7212 +awscli/customizations/dlm/__init__.py,sha256=fnY7NAZEHH-yfDk91prFN_0LTxutzUJQGf4L7Evm7Z0,565 +awscli/customizations/dlm/__pycache__/__init__.cpython-312.pyc,, +awscli/customizations/dlm/__pycache__/constants.cpython-312.pyc,, +awscli/customizations/dlm/__pycache__/createdefaultrole.cpython-312.pyc,, +awscli/customizations/dlm/__pycache__/dlm.cpython-312.pyc,, +awscli/customizations/dlm/__pycache__/iam.cpython-312.pyc,, +awscli/customizations/dlm/constants.py,sha256=g2sj_r3L-aMg-90EqQP5v9EWWilYuqIJ1r-jb6sbyvY,1811 +awscli/customizations/dlm/createdefaultrole.py,sha256=2jjHDNqoKXOviAWNgJOhhN2qN43ubKKtbRtzrKm0czU,6310 +awscli/customizations/dlm/dlm.py,sha256=NVAQOcoR8KSnCgCEX2D_mhSySMAIf32D6jeCJJCGbHo,1162 +awscli/customizations/dlm/iam.py,sha256=2EoD1tW_zN0BtGIM1sR--4bFq2TvbvDNu3dr3dWLBUg,1798 +awscli/customizations/dynamodb.py,sha256=WgVPRPHU3XXFeprsE8qJ9PC8tZpeZhtmnkWd5GD49iY,1920 +awscli/customizations/ec2/__init__.py,sha256=wnWE_0bn2m84p3EPxwqRBDw2M63Q8PmX4IKHTUxl1e4,565 +awscli/customizations/ec2/__pycache__/__init__.cpython-312.pyc,, +awscli/customizations/ec2/__pycache__/addcount.cpython-312.pyc,, +awscli/customizations/ec2/__pycache__/bundleinstance.cpython-312.pyc,, +awscli/customizations/ec2/__pycache__/decryptpassword.cpython-312.pyc,, +awscli/customizations/ec2/__pycache__/paginate.cpython-312.pyc,, +awscli/customizations/ec2/__pycache__/protocolarg.cpython-312.pyc,, +awscli/customizations/ec2/__pycache__/runinstances.cpython-312.pyc,, +awscli/customizations/ec2/__pycache__/secgroupsimplify.cpython-312.pyc,, +awscli/customizations/ec2/addcount.py,sha256=4WjyrcTVKdYXgFgslrAZX3V1svAaHpH7zJxlFSvDzYw,2992 +awscli/customizations/ec2/bundleinstance.py,sha256=7SG2kEUTMLtitkng9kmDjaBW8G7RDwQTS-RYZGekqjA,6779 +awscli/customizations/ec2/decryptpassword.py,sha256=7VIJFgic5Z5q84HPodA0q0UF6u81ioRVOVT-iRDVhig,4578 +awscli/customizations/ec2/paginate.py,sha256=IX4kdGkT1j5hElfxWPxFBwl9XL-HZmqGy2mkYBOrnxk,2304 +awscli/customizations/ec2/protocolarg.py,sha256=xcpJneFdg1JXXl3Ejp7B0Nl2mpJE4pDnlwZENhLobYw,1400 +awscli/customizations/ec2/runinstances.py,sha256=1UkjBC5FWrJvhP_I2eiUfz0DZHLMXp5fnrOIsytqD28,7924 +awscli/customizations/ec2/secgroupsimplify.py,sha256=GtNf0D6QOc5x3Y5mtoMvC4b0ZhMA6b2TG60svGW6NSs,8508 +awscli/customizations/ecr.py,sha256=Z-MIwu5Frkpt5_tADojmc1vxwdh8B_AnqVQ48drVgxM,4073 +awscli/customizations/ecr_public.py,sha256=g9HzYsNEqu8Ty0T38YrKtcu65L8nJTmS6DBVe437uVY,1753 +awscli/customizations/ecs/__init__.py,sha256=0kVfapbZ2jLaO9PIKMrtZuxT9OHZaetHy3p67RiN5nc,1473 +awscli/customizations/ecs/__pycache__/__init__.cpython-312.pyc,, +awscli/customizations/ecs/__pycache__/deploy.cpython-312.pyc,, +awscli/customizations/ecs/__pycache__/exceptions.cpython-312.pyc,, +awscli/customizations/ecs/__pycache__/executecommand.cpython-312.pyc,, +awscli/customizations/ecs/__pycache__/filehelpers.cpython-312.pyc,, +awscli/customizations/ecs/deploy.py,sha256=lf7zomMiMN7_HQnE-4hObh2Pq4y4ktu5jPEnIzJCehM,17583 +awscli/customizations/ecs/exceptions.py,sha256=GnLehf5rBYnMBCeFPQAKnv73AgEBZ4vchb9vkSGT1HA,1500 +awscli/customizations/ecs/executecommand.py,sha256=pMKzJ6UY4dgSKhd_LUkDaGiTklZXtlwDR8rZNMH6Eg8,4931 +awscli/customizations/ecs/filehelpers.py,sha256=jP_bFgEsL4BRuhemZDN3X6pSyYJG6RMBS0MdlSoWnmI,2131 +awscli/customizations/eks/__init__.py,sha256=kwQiY_JpftB9Cl6ES7OIWqIT2WGvue6VvUK75Xwj-o0,1183 +awscli/customizations/eks/__pycache__/__init__.cpython-312.pyc,, +awscli/customizations/eks/__pycache__/exceptions.cpython-312.pyc,, +awscli/customizations/eks/__pycache__/get_token.cpython-312.pyc,, +awscli/customizations/eks/__pycache__/kubeconfig.cpython-312.pyc,, +awscli/customizations/eks/__pycache__/ordered_yaml.cpython-312.pyc,, +awscli/customizations/eks/__pycache__/update_kubeconfig.cpython-312.pyc,, +awscli/customizations/eks/exceptions.py,sha256=5Z3HntwF4htYVLK7oMgyCGSyd6Tou1DQ2Jg7irMkgqo,728 +awscli/customizations/eks/get_token.py,sha256=-a4b6YZuc7lyYl9h8vpHkc4uQH48a-puw1cDRw-x4jw,10055 +awscli/customizations/eks/kubeconfig.py,sha256=hBJwzR0ajab3zBtd6xR7ObeOKKsfJi6qz9TN5ItMCC0,9730 +awscli/customizations/eks/ordered_yaml.py,sha256=81AoykbFpC6-k8m_3vyXRb3RM76mVtbzAI4PEPFKd4o,1864 +awscli/customizations/eks/update_kubeconfig.py,sha256=eUgO5PwNpNJidfoiPlBtxhYL1z5hNE70V8_50ldj-GA,14341 +awscli/customizations/emr/__init__.py,sha256=_5TbmyGbXMuErfCQRk40A91pi_Z7qVDO-_4GVyOz41U,565 +awscli/customizations/emr/__pycache__/__init__.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/addinstancegroups.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/addsteps.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/addtags.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/applicationutils.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/argumentschema.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/command.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/config.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/configutils.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/constants.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/createcluster.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/createdefaultroles.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/describecluster.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/emr.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/emrfsutils.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/emrutils.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/exceptions.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/hbase.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/hbaseutils.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/helptext.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/installapplications.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/instancefleetsutils.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/instancegroupsutils.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/listclusters.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/modifyclusterattributes.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/ssh.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/sshutils.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/steputils.cpython-312.pyc,, +awscli/customizations/emr/__pycache__/terminateclusters.cpython-312.pyc,, +awscli/customizations/emr/addinstancegroups.py,sha256=TFKsjwLo26TQR25IpCr8sMh58jEx4Gx4_tLUcF9bY_c,2647 +awscli/customizations/emr/addsteps.py,sha256=2OXYlJ-bm2BH3mNSnQjgwz6HoB0cnUR7s_Y5zI_WPP8,2208 +awscli/customizations/emr/addtags.py,sha256=IDWlPXXWdoVEVek7V-0SlZmOhJWxm-5HPCPmmUGHcPI,1089 +awscli/customizations/emr/applicationutils.py,sha256=-SQQSlS4P8U4LjSKL9Bc6K7JD3pOMUaO2ADisgcEHko,6550 +awscli/customizations/emr/argumentschema.py,sha256=PAeXTdiv95NkOucpRE8PVTD_LV22IAkDCYOUJZSW2WY,43408 +awscli/customizations/emr/command.py,sha256=pHxKJZR0FgGDopdmaxqpA1cZo1QogawHOxuu77vAV4U,5442 +awscli/customizations/emr/config.py,sha256=0MEd3p302iy3Iw6YTVARRwfflYHoXyV6BSlZbG0kCHg,4761 +awscli/customizations/emr/configutils.py,sha256=I7Hs_JFcrLUcXwVs4gHynaIZIk_oxBA7ADEYwkGAi60,2554 +awscli/customizations/emr/constants.py,sha256=8npPsin-FCoYjAMP2TvJC9zDgd47UkgV8B6RH6cJYS8,6802 +awscli/customizations/emr/createcluster.py,sha256=tMTMgVuQVwJQwrX0lKUlRytB_el2HWWHrl2bZz27gd4,31227 +awscli/customizations/emr/createdefaultroles.py,sha256=N8OQs_JydAs7Cnk-A_FJlhHMsSSkqYCeumOFTnR-jIw,14009 +awscli/customizations/emr/describecluster.py,sha256=TOphq9W3n50ps_u9lSYL8NXH8tLCotCvNn7Vqf_5hLI,4152 +awscli/customizations/emr/emr.py,sha256=6O8CzyB4NVFzeql4mARxQODgdbNOWlsXf874KPhO6EI,3257 +awscli/customizations/emr/emrfsutils.py,sha256=XyadeF_fVtW3IzgljHUGTGmrYPpAG2ytijzn7gC0JKI,9106 +awscli/customizations/emr/emrutils.py,sha256=8-BrayNg39LdWBAUvU2l4GSb1DPt35x8UMrkEWzm9z0,12207 +awscli/customizations/emr/exceptions.py,sha256=axoSkAO6EF85ap-cZFcy5843sGaAHo-xpUq0bNZ7sHM,11872 +awscli/customizations/emr/hbase.py,sha256=ubr1r5CQiYGVDbv6CuV4ZKGOzuz7GDTG5WTD_u87K8M,9454 +awscli/customizations/emr/hbaseutils.py,sha256=O-Dli_PHqv9_9JoKW-xKLcPN7h8y9-xdFsy51lS7gsg,953 +awscli/customizations/emr/helptext.py,sha256=kAveB5fIuOm1MlTlgQdHJi40JB8B3TipWAhjjPigITw,30203 +awscli/customizations/emr/installapplications.py,sha256=J6ff1k-KGX7pxLzrBhBdsfi_XU0D1bO_MUK8PzoCWOM,2879 +awscli/customizations/emr/instancefleetsutils.py,sha256=JQl1CXR7bbp72O6RAcuHsCGBX3J2f61FNDj3tOdjWIA,3361 +awscli/customizations/emr/instancegroupsutils.py,sha256=lO5pDKE1yY2NjCKsHGG1E479pP4b2YR8uvbAvJUizLg,3661 +awscli/customizations/emr/listclusters.py,sha256=8PNPyA5181P9QCRZhGoTB3zFbzENCj30dryrCa2dH90,3775 +awscli/customizations/emr/modifyclusterattributes.py,sha256=SUMNuCKQAtGPS0-yctq8NWbyh673skyjsZS7NriasNk,6193 +awscli/customizations/emr/ssh.py,sha256=Guuh7aQcj3AA3-tNA1OGn4UQPr2Rj1uhiOMX1LCEU_o,7731 +awscli/customizations/emr/sshutils.py,sha256=3P3C_vWaMytJFeQwde2ViF2Ixz_r_n5PoNL3YDI11u4,3354 +awscli/customizations/emr/steputils.py,sha256=PbScYroiv2GrFbarBQxhYvOS22kb0MTrI5CrMz0045Q,9244 +awscli/customizations/emr/terminateclusters.py,sha256=O_-bz3kGpAa66FHhpI7IXTQ053iUrGVW1QBxC16MErU,1382 +awscli/customizations/emrcontainers/__init__.py,sha256=jobGqgtZe4LWw36MGm1oNwFwFDYrM6vNvA15J447ozs,1143 +awscli/customizations/emrcontainers/__pycache__/__init__.cpython-312.pyc,, +awscli/customizations/emrcontainers/__pycache__/base36.cpython-312.pyc,, +awscli/customizations/emrcontainers/__pycache__/constants.cpython-312.pyc,, +awscli/customizations/emrcontainers/__pycache__/eks.cpython-312.pyc,, +awscli/customizations/emrcontainers/__pycache__/iam.cpython-312.pyc,, +awscli/customizations/emrcontainers/__pycache__/update_role_trust_policy.cpython-312.pyc,, +awscli/customizations/emrcontainers/base36.py,sha256=lS2UTlN4zQYDavvISDttlD6JalCbJ_Qr0LYVQdb40D4,1210 +awscli/customizations/emrcontainers/constants.py,sha256=oqgYPw2aXEZ7Mi2eo0yK5YC540BlE3Y0we4aQQOVyMo,1508 +awscli/customizations/emrcontainers/eks.py,sha256=VPWd95ZPi5LQAFOAF-Lbk57h2IvUB0PGqHzXP6EnDqo,1604 +awscli/customizations/emrcontainers/iam.py,sha256=u2m8sJvbhuQC54_pyhMbTWq9GbCT4cejLjx5fgHnqBI,1201 +awscli/customizations/emrcontainers/update_role_trust_policy.py,sha256=2IM6Y9yJsqy45TIwyeJy5s5lCNR-viDH2YPWbbwNHyU,6884 +awscli/customizations/flatten.py,sha256=Yl9hPS2k87YqyAVXhaLFSA0KhluhZYTKKLXsM-nsfco,9505 +awscli/customizations/gamelift/__init__.py,sha256=ReYcvAyUC5GLjv6Yx-PR3jO3ZsZiqGo9WdueWI-gtuc,1037 +awscli/customizations/gamelift/__pycache__/__init__.cpython-312.pyc,, +awscli/customizations/gamelift/__pycache__/getlog.cpython-312.pyc,, +awscli/customizations/gamelift/__pycache__/uploadbuild.cpython-312.pyc,, +awscli/customizations/gamelift/getlog.py,sha256=28zSZmJdApDx9x4Wk5iybhfw16cGkg9UlYCK_VVmo8s,2147 +awscli/customizations/gamelift/uploadbuild.py,sha256=kK8z8PzA9kXmaAeaE_QCbHRKWd4nV7fYtEMeJXKeGE8,7000 +awscli/customizations/generatecliskeleton.py,sha256=G5j4NRqZxkjgZzWCDyd3W64nQZTBxz7Rd0sZIKMC_M4,5803 +awscli/customizations/globalargs.py,sha256=LwrVYrMYuZQqVSfQUOOI7or9H_bc7GoL8FFzLDJRISY,12798 +awscli/customizations/history/__init__.py,sha256=CrSyZNS126GYSo2-0PO7fHf8eoIOZXPZHIbGpNUjZOg,4307 +awscli/customizations/history/__pycache__/__init__.cpython-312.pyc,, +awscli/customizations/history/__pycache__/commands.cpython-312.pyc,, +awscli/customizations/history/__pycache__/constants.cpython-312.pyc,, +awscli/customizations/history/__pycache__/db.cpython-312.pyc,, +awscli/customizations/history/__pycache__/filters.cpython-312.pyc,, +awscli/customizations/history/__pycache__/list.cpython-312.pyc,, +awscli/customizations/history/__pycache__/show.cpython-312.pyc,, +awscli/customizations/history/commands.py,sha256=sGjvLLCONdq92Kz8KI5jsodTUKIz8FoZ1SJkX0diT3k,2541 +awscli/customizations/history/constants.py,sha256=tQvNo0q1VtMKrYsbNqJZ9GM6VWi1KnmQz_rUvOJwXdA,737 +awscli/customizations/history/db.py,sha256=ykro0VKS6v25pHG92_Rrrk4dQ_Qw_TUQqAgjSjZ5CHI,9655 +awscli/customizations/history/filters.py,sha256=jKXspaeZ1NamcBQ11RaH7Pz6HMCdzkLCMKkxtaiwz-E,482 +awscli/customizations/history/list.py,sha256=VEqrF1OdSRQTpWTxhOexH4X1H3K8AmeeCIQT8cW21MQ,4161 +awscli/customizations/history/show.py,sha256=e4_0AvkbucGtaJONJ_mLXehCdlTKgiq4PJdfTFaYB7c,15427 +awscli/customizations/iamvirtmfa.py,sha256=s7PpiDDL3oWgUl3_hIphXKbrL1PUbAVMTv8sQH1D77c,3421 +awscli/customizations/iot.py,sha256=GvkgUZKcDYjqfWOz160wUS7LVE_YhQ8NDZGzBHqsWc8,2399 +awscli/customizations/iot_data.py,sha256=xswSsC1a049sw_VfG75F8l4GyI1GqrE-ux86U2xGH_8,1303 +awscli/customizations/kinesis.py,sha256=1s76FC9Kp5vw-2DJKVlkiO50n8NGcLI-Itdrl7dxi6o,2195 +awscli/customizations/kms.py,sha256=MG52QeazTZ3xokURUqLK4asagZCThssaXv0Dg1JIOhc,909 +awscli/customizations/logs/__init__.py,sha256=2qoJgaclRoCjzFft94SlHBPUTXBWXBc5WeqvrcnF8fU,329 +awscli/customizations/logs/__pycache__/__init__.cpython-312.pyc,, +awscli/customizations/logs/__pycache__/startlivetail.cpython-312.pyc,, +awscli/customizations/logs/startlivetail.py,sha256=NwN5wp8DKKgRfoAtZySlLxgHHuSMz1d_TP3wUvXt2CE,9991 +awscli/customizations/mturk.py,sha256=4n0c14Ah9ey11uiuW5n4gMlcMq7PQNuapeGSoOEh2lE,1010 +awscli/customizations/overridesslcommonname.py,sha256=VBxkWk2GJr-Zg3SGUTDUTa0uOsxiC7ErkdTMAKiIonI,6444 +awscli/customizations/paginate.py,sha256=NsAhxbBf9dkYdhVffRJ4-hHD1U_cipLRmLT5o_gGPXc,14914 +awscli/customizations/preview.py,sha256=5r4RHFS19pxZ79cimbPgL1YOstOjK9OvgUeaZAP0YA8,5189 +awscli/customizations/putmetricdata.py,sha256=FczJBZUGb4mXtSalD1ihwDSjMSDlxZ5V1jm3KpCi-ps,6914 +awscli/customizations/quicksight.py,sha256=r5XrHPIofOfKVZrE6JGUjDKovkgOf19nrsVVzWOHGDY,1457 +awscli/customizations/rds.py,sha256=PO3MgVQl1rw2EVIO89y46SQTFXk_zjP2vKFWqYmTLRU,4339 +awscli/customizations/rekognition.py,sha256=NHajCaaLkSC5YDmtJe-EdLdgmObrQetj6as0Diu_d3o,1813 +awscli/customizations/removals.py,sha256=ZuYpKVnnRFJGD4EWxotP64UTZ0mOLAPUNkCfwFIVCS4,5053 +awscli/customizations/route53.py,sha256=TyEnjZz7bPegLQ23X5r1tNUJ1gSAmGeQBaF98t5PLmU,1187 +awscli/customizations/s3/__init__.py,sha256=BFJ0dbdWkUBgJ2qav1Jhz06SddTMIeahxSaW_H0vop0,565 +awscli/customizations/s3/__pycache__/__init__.cpython-312.pyc,, +awscli/customizations/s3/__pycache__/comparator.cpython-312.pyc,, +awscli/customizations/s3/__pycache__/fileformat.cpython-312.pyc,, +awscli/customizations/s3/__pycache__/filegenerator.cpython-312.pyc,, +awscli/customizations/s3/__pycache__/fileinfo.cpython-312.pyc,, +awscli/customizations/s3/__pycache__/fileinfobuilder.cpython-312.pyc,, +awscli/customizations/s3/__pycache__/filters.cpython-312.pyc,, +awscli/customizations/s3/__pycache__/results.cpython-312.pyc,, +awscli/customizations/s3/__pycache__/s3.cpython-312.pyc,, +awscli/customizations/s3/__pycache__/s3handler.cpython-312.pyc,, +awscli/customizations/s3/__pycache__/subcommands.cpython-312.pyc,, +awscli/customizations/s3/__pycache__/transferconfig.cpython-312.pyc,, +awscli/customizations/s3/__pycache__/utils.cpython-312.pyc,, +awscli/customizations/s3/comparator.py,sha256=JyKuPkNcxoW_-sFw72HpQtS-Vsw55EI1iVZetjSZ8uY,6146 +awscli/customizations/s3/fileformat.py,sha256=1TA6vohXQW-ikGLWHy4GhEVXy7RQWLhnjJ3kIndLacY,6027 +awscli/customizations/s3/filegenerator.py,sha256=nJRVmCz7wyPkUAdCZ5xGUSrbTVdjQSv1pH59Dzwpyrg,16373 +awscli/customizations/s3/fileinfo.py,sha256=yT_aeDGVAFdO8sZU2r9TDMG7Vu9sXCEJC9VUG-2yoy8,4481 +awscli/customizations/s3/fileinfobuilder.py,sha256=66XiO305bYwnikq9PN9OAJIvw42vqO-xGlkRyX12viw,3470 +awscli/customizations/s3/filters.py,sha256=OuQUr6XAMkS1i6GO65_L7NbL7kwgmKT2ghWhv1YdkXo,6489 +awscli/customizations/s3/results.py,sha256=L19gi3CtJYeHqWIWuIVcbj82Dshw2g5jNX8PFidcC2U,26625 +awscli/customizations/s3/s3.py,sha256=Igwsn89G7i9M4nShjzcFmwlCVXvpfgmoyEf9wpNLXdk,2739 +awscli/customizations/s3/s3handler.py,sha256=YIpuqDMMjL5fhxemF-hx4wUDJg4EAgcHV92dr6j6a5k,23949 +awscli/customizations/s3/subcommands.py,sha256=qKplJRMSdvDCan9if_shRp-mzCsuj0vKliem7lFAjuo,70811 +awscli/customizations/s3/syncstrategy/__init__.py,sha256=BFJ0dbdWkUBgJ2qav1Jhz06SddTMIeahxSaW_H0vop0,565 +awscli/customizations/s3/syncstrategy/__pycache__/__init__.cpython-312.pyc,, +awscli/customizations/s3/syncstrategy/__pycache__/base.cpython-312.pyc,, +awscli/customizations/s3/syncstrategy/__pycache__/caseconflict.cpython-312.pyc,, +awscli/customizations/s3/syncstrategy/__pycache__/delete.cpython-312.pyc,, +awscli/customizations/s3/syncstrategy/__pycache__/exacttimestamps.cpython-312.pyc,, +awscli/customizations/s3/syncstrategy/__pycache__/register.cpython-312.pyc,, +awscli/customizations/s3/syncstrategy/__pycache__/sizeonly.cpython-312.pyc,, +awscli/customizations/s3/syncstrategy/base.py,sha256=HqJSzTgOX88YhJb-_UJOmSzfk6wAcctsgO59s7rsX88,10397 +awscli/customizations/s3/syncstrategy/caseconflict.py,sha256=SQ0r97zstOsFrcUKSYN4X1gNUOmY-uEI-sKnkEMrbpo,3383 +awscli/customizations/s3/syncstrategy/delete.py,sha256=y-KSRQE14bZY9jQfJJx0WbZ8UyX6juKkDhS8lwC9ed8,1313 +awscli/customizations/s3/syncstrategy/exacttimestamps.py,sha256=Bi_t4pbVfYbxKt4sKe3XJVYSbocfMTgg-HAx903Ts2o,1686 +awscli/customizations/s3/syncstrategy/register.py,sha256=2jsuidA4sxf3v1_9rpmp3tJRa2pGX35zYxzRluAmggs,2001 +awscli/customizations/s3/syncstrategy/sizeonly.py,sha256=UWNZK1Iv_byeNe_wps4ApKQJ7NnRTfgS5f5b27ewYMI,1300 +awscli/customizations/s3/transferconfig.py,sha256=7MW4hi90N5mLeQBlmVxs9J5ixRjejp1F4uPmGGF3TME,4472 +awscli/customizations/s3/utils.py,sha256=NM4msPG66D9zKl_y5jzkDi7TjV0vy9E8TyyXz7I4dyQ,35797 +awscli/customizations/s3errormsg.py,sha256=STKQ3714dnXOzPSPszCikhv5hoRBUJnk-u0kFp7FaEU,2480 +awscli/customizations/s3events.py,sha256=ZcNmDN26dXxLrLawawl9jRFWqK1lMEQpty0YRNjBQws,4795 +awscli/customizations/s3uploader.py,sha256=vRz9bBLPby5ZZzBZpkI_SeWezoOmLkmOPeQ9jHemVpU,8133 +awscli/customizations/sagemaker.py,sha256=mlYPscN-aQgV6L8dRK62QolmY7_iDmtHLe6DyGjayD8,1014 +awscli/customizations/scalarparse.py,sha256=Bgs1HKPMrip79iJZnGWasYHOjre1T4NU6TLo7rVK9NE,5001 +awscli/customizations/servicecatalog/__init__.py,sha256=y0BZXUIC-qc7rSrbfxH-drO5_kEwBzs6F3T10IQHhjA,928 +awscli/customizations/servicecatalog/__pycache__/__init__.cpython-312.pyc,, +awscli/customizations/servicecatalog/__pycache__/exceptions.cpython-312.pyc,, +awscli/customizations/servicecatalog/__pycache__/generate.cpython-312.pyc,, +awscli/customizations/servicecatalog/__pycache__/generatebase.cpython-312.pyc,, +awscli/customizations/servicecatalog/__pycache__/generateproduct.cpython-312.pyc,, +awscli/customizations/servicecatalog/__pycache__/generateprovisioningartifact.cpython-312.pyc,, +awscli/customizations/servicecatalog/__pycache__/helptext.cpython-312.pyc,, +awscli/customizations/servicecatalog/__pycache__/utils.cpython-312.pyc,, +awscli/customizations/servicecatalog/exceptions.py,sha256=y224fRHZBgTcx86PGxU0DBA9ntCxEjpiQH_TsqPyZf4,932 +awscli/customizations/servicecatalog/generate.py,sha256=p_Efa8vtWvvKGQOGt6IZJTWMhfRBTy6sbk0-S3ztrV0,1460 +awscli/customizations/servicecatalog/generatebase.py,sha256=I7vl26-40u0TWfjI0bFuZRtep0U8ErAtnwX5_mKAXH4,2254 +awscli/customizations/servicecatalog/generateproduct.py,sha256=k9iKmrZxi3_iD8JmU_FKt0SpqwRIsyxf1AwlymxuTbE,5609 +awscli/customizations/servicecatalog/generateprovisioningartifact.py,sha256=hgkvZ8ktGW9hoFQuR58MQKo-dWNOiKgDBIfShE8pFtw,3367 +awscli/customizations/servicecatalog/helptext.py,sha256=jwtDliDWnv8UeijDKGMEmRvwWpLmEUi02hxvE_ijmek,1945 +awscli/customizations/servicecatalog/utils.py,sha256=8J4K6z2IVsxiD9Eathl7XvBcIJjo2U7ZVABhvSrKAz8,1173 +awscli/customizations/sessendemail.py,sha256=uWgx-f0ILiTGKyjoQcJWx8XoG-BIWUkWNBy-yXvYpTU,4459 +awscli/customizations/sessionmanager.py,sha256=751EorlValgvZJi56kuWs54huzWAhw5SZNc3m20Vds8,7047 +awscli/customizations/sms_voice.py,sha256=ZBbvUspzdn7maGzk4tnERA3zMTR3cSbTL0Son6L9Apc,816 +awscli/customizations/socialmessaging.py,sha256=kTD-t7bILCqOMNW3orhxkYHgZwWK-ZF4aRXgI6ixlW8,1043 +awscli/customizations/streamingoutputarg.py,sha256=l_najvumCkwFy40GfKSRyhf3xzjkaYwuPiDZ2RwWNtk,3900 +awscli/customizations/toplevelbool.py,sha256=3ssyh2UCwR0qM-HQH0xpBgXjVSSPzYw5II4E_wSjj3A,5902 +awscli/customizations/translate.py,sha256=rqDoDtCHjv_yYqXoR2OIOSws1txtTVTeddLWAVZ6GjE,2458 +awscli/customizations/utils.py,sha256=ynbF4xQhY8X5U1SA69V-Ro_-7pSLYZceQ9c0XoGwFd0,8515 +awscli/customizations/waiters.py,sha256=e0cHfnaOhR0Zz7DCTj3McP_TPfKHEc_JlHyy3uP2CIQ,9860 +awscli/data/cli.json,sha256=om2SM7gOHt1JL4UWd1rBeJbJPOYWZDENKfpz0dj6VkU,3499 +awscli/errorhandler.py,sha256=2bIBZrKvFICKAhoD180Cx7rRX608pG9RHsmlAcRb0wc,3139 +awscli/examples/accessanalyzer/apply-archive-rule.rst,sha256=vqUyx0wCfzJBLqXxA7S93LhM6pJlTqbnj5IN4y3oq64,623 +awscli/examples/accessanalyzer/cancel-policy-generation.rst,sha256=AD3DbJjtAHLhg6AB015mdnBzluUXVqIDa7t-HxvqN0w,484 +awscli/examples/accessanalyzer/check-access-not-granted.rst,sha256=odK2SA7pUxlhkkQUrkC4z9sKQIkQsCqdvfSYvATFhu4,1235 +awscli/examples/accessanalyzer/check-no-new-access.rst,sha256=UmJrt21ILpQqkarU6C3zeb-f-dXAYXb8GKCvSf_Ibhw,1990 +awscli/examples/accessanalyzer/check-no-public-access.rst,sha256=ZKzZhzxn2tpm-AfBJ59Ij1hqYHGLiwHWM8Po6OiIre8,1157 +awscli/examples/accessanalyzer/create-access-preview.rst,sha256=8vjXQ45SZl4-W7YWNQt21hujfhw95-K8OZ3gAMMHCCA,1738 +awscli/examples/accessanalyzer/create-analyzer.rst,sha256=emhy3rCGF1w9TNWloYzg_bCOOd3rkvd0uVv2vICyrI4,558 +awscli/examples/accessanalyzer/create-archive-rule.rst,sha256=58iAklaXCczHHGT8WuoHVMoXNq8AyI-Lu5wlM7nQ8zM,629 +awscli/examples/accessanalyzer/delete-analyzer.rst,sha256=EDje0j82TX9Ob-6rIlobtuuuaBWOF7cVY7DePoaF9LQ,411 +awscli/examples/accessanalyzer/delete-archive-rule.rst,sha256=bMmH7w_uOLXr2DE5PoiASihBzBGtQiSMab-AqLMCKRA,491 +awscli/examples/accessanalyzer/get-access-preview.rst,sha256=MftTeFFgmAdliCvLcrjdukmOf1WpsQw8X3vM_YhHF6w,2006 +awscli/examples/accessanalyzer/get-analyzed-resource.rst,sha256=DZIrgfotcl6SNtFUgHTljZHBv9PD3a-XLZBXMK1QGfg,927 +awscli/examples/accessanalyzer/get-analyzer.rst,sha256=cIIr3XXsbfM-I0ejsMfhGDH_McUTFroW1-LBbKhhGZA,1033 +awscli/examples/accessanalyzer/get-archive-rule.rst,sha256=A6cGH02aQwhmqFArc_TPb-GmRW44v9CscZVRpt5F9Y8,1023 +awscli/examples/accessanalyzer/get-finding-v2.rst,sha256=SARHj_9PL84LnNquAoIH6g-rfxlTYUYlwC7HEzfgVkc,1659 +awscli/examples/accessanalyzer/get-finding.rst,sha256=YsLza4HJScet8DFOTSalQML6OrNZjwKA6eHoCqpHOvQ,1439 +awscli/examples/accessanalyzer/get-generated-policy.rst,sha256=fXIeg3qqvjdzeBQwpciDQeRWlJxYfQfqJO7bdKjQ1Xc,2500 +awscli/examples/accessanalyzer/list-access-preview-findings.rst,sha256=QXA59u62bkQNRN2Lwv7ke2_f29omCO5hJTzIMDcZ-6c,1580 +awscli/examples/accessanalyzer/list-access-previews.rst,sha256=Xu7ownoeMMDsO9gr90itytQYt8ql6ip4enXH37C3JAY,934 +awscli/examples/accessanalyzer/list-analyzed-resources.rst,sha256=ViHKrcNgvdtNtAnLp_y-GLRjZEG0XIPrSWld1VxaD88,1500 +awscli/examples/accessanalyzer/list-analyzers.rst,sha256=QTqaYppu2FVpCfdlRxlsU9xrCS_ZFRQ3K-4EsVOL9zA,2059 +awscli/examples/accessanalyzer/list-archive-rules.rst,sha256=s2vIqxMbjOuUmlX_1d_eEX_6WK71Q47sL-j2MEfo3OM,1621 +awscli/examples/accessanalyzer/list-findings-v2.rst,sha256=X8SLl6q4DpQpTpAis80W1tEfXyOxsjmolCmaZKvV6UY,1966 +awscli/examples/accessanalyzer/list-findings.rst,sha256=PWUBUUyjW2ujyZDkXhvpM6hYE3mhWfUKp-eYcjAHmB0,2694 +awscli/examples/accessanalyzer/list-policy-generations.rst,sha256=1Uomkykk3P46k4tZRpZ9JnzF2uahbGzG-blENY2U7ZA,1187 +awscli/examples/accessanalyzer/list-tags-for-resource.rst,sha256=1TnYp_ny9El56JzxVjP5kdBUaTrNUaDgwnyPdfnCfxk,682 +awscli/examples/accessanalyzer/start-policy-generation.rst,sha256=I4yTEudO6r9W4m25uSZ5I8s8Cm6F1hn36v4psVirz6U,1016 +awscli/examples/accessanalyzer/start-resource-scan.rst,sha256=6VM2ebvC4s-0upVbjPfDtK-9pkipITsfCjrDIfjA68M,690 +awscli/examples/accessanalyzer/tag-resource.rst,sha256=JxGFMVV1I8UllCX5-RiLVOhdd45kqCrP7Lp8V1Y-8uk,575 +awscli/examples/accessanalyzer/untag-resource.rst,sha256=eZ-K1jzKjl6OTdc_faSOcfSBAjl7dTmHLdgUNaJs-pg,580 +awscli/examples/accessanalyzer/update-archive-rule.rst,sha256=_NUFEbtU138QijC8R5E-UyTsjUw7ru54z5G_nD1Nz-w,660 +awscli/examples/accessanalyzer/update-findings.rst,sha256=cFvrblaH9AW-7AEo-GskHcwBzfP2Kt8G2ab55p4pca8,687 +awscli/examples/accessanalyzer/validate-policy.rst,sha256=NmYg4qM94fwFHkVP8YDuEXmOSa7Sn4YxayMiZ8ZOd50,8776 +awscli/examples/acm-pca/create-certificate-authority-audit-report.rst,sha256=9WA1HBFL3wyXwAlO7JBXXxR93R4DtPnbFU-akUB2710,438 +awscli/examples/acm-pca/create-certificate-authority.rst,sha256=d1R58j5scr73jsMThecbYXlIuZ0RPqg0hYfuN2Vl34M,398 +awscli/examples/acm-pca/delete-certificate-authority.rst,sha256=qVSof1hvcVe9GkubGPLi5Sj4GQQUnXHbIuabzotkkgs,331 +awscli/examples/acm-pca/describe-certificate-authority-audit-report.rst,sha256=OelWgqJX5Dp9H2wSEFWz7sL6d3rbdcnlTPIVzQQ6vLE,458 +awscli/examples/acm-pca/describe-certificate-authority.rst,sha256=Upxw7-Hmo74dJ5XL-rsjwA0eM_sWAMWzglRIjVpJfYM,342 +awscli/examples/acm-pca/get-certificate-authority-certificate.rst,sha256=sUSQtd9Nq2t2Xrk31fQ_3XLf-4KNQsq79Z25V_mHDck,406 +awscli/examples/acm-pca/get-certificate-authority-csr.rst,sha256=rkjAh54NT-nRq1qMstAWjXs6bZRx_FYIhmvQW2xwzz4,379 +awscli/examples/acm-pca/get-certificate.rst,sha256=EjK8XWfNWAZ9c-tDg1R02pRj6VcV9Bt-tF61ojZJNZE,1717 +awscli/examples/acm-pca/import-certificate-authority-certificate.rst,sha256=9D_e5uyVm5xddf1G_UU4F5_BkNoIkbGxALs4BG4JYiM,490 +awscli/examples/acm-pca/issue-certificate.rst,sha256=xJgtdXKk0f8VHmS9jhNzLg6wAqe03VEbhgmXV7H3w-k,435 +awscli/examples/acm-pca/list-certificate-authorities.rst,sha256=nZ0MA0OBk-euhsORWVlWKfWjNAe2xRV3Io35KopnXeo,232 +awscli/examples/acm-pca/list-tags.rst,sha256=DEznYC--4r3qUaxJ71dQNgJj_fPunlJ-Gz8XWJY8Ed8,328 +awscli/examples/acm-pca/revoke-certificate.rst,sha256=rRYr-NGr6caJHxp6o8yz2heDE8JBkLGLVluezY4ZHoM,413 +awscli/examples/acm-pca/tag-certificate-authority.rst,sha256=6FDg6I81l9kEPdjoIePBNV8bPOvxm6jpTK5ve-4AgBo,351 +awscli/examples/acm-pca/untag-certificate-authority.rst,sha256=pYV90R83yGf2xN5cWrXeezKBm5x5fQnfwg9iv3TuCoM,386 +awscli/examples/acm-pca/update-certificate-authority.rst,sha256=T0Uxc-FWgel1M_ZedVu4jX7U_Tyv0fhaZi_w6a1rsjQ,452 +awscli/examples/acm/add-tags-to-certificate.rst,sha256=BhIMW2bVpYVxbNMaTpXEnGkPVMCOSwXbsglVt4rPJwc,368 +awscli/examples/acm/delete-certificate.rst,sha256=5qrT6ETHzJyzhaapc_kr4sqnQB_ouHOVR1OcilljThc,269 +awscli/examples/acm/describe-certificate.rst,sha256=JjA46Gxmg3Vrs1PmMPNLNkw5jARCAq5QwMmWO2k-Yt4,2120 +awscli/examples/acm/export-certificate.rst,sha256=Nsk0ck2XZ-PGBU_yS9a64y76SAEtOB3wDCSecVuUdbE,643 +awscli/examples/acm/get-certificate.rst,sha256=DE48FNh3b1GvRlJS9bZYd0ZzQKCGDN2WyrI8xaginsY,4274 +awscli/examples/acm/import-certificate.rst,sha256=e6RleNNW2jYBClZ306pQae7OXBRGmzUDdxOYZyjpwpc,306 +awscli/examples/acm/list-certificates.rst,sha256=no7uCRjbat5iSLglaKYg2Z5fwjAcQbHjaPfyMuQkTSM,2535 +awscli/examples/acm/list-tags-for-certificate.rst,sha256=_UCl_rA5BSxw-JXc1Up_KQTljWYLCl8JnyDrdb1-2OE,547 +awscli/examples/acm/remove-tags-from-certificate.rst,sha256=OeUP5w95fIrlAyHVYQsJdesr1Ni6yhRnoFBwDVI64fM,380 +awscli/examples/acm/request-certificate.rst,sha256=qziyKnOYp0yy6Qhxhz2F94JJ1z5rwuC48wg2hUXn_0k,2076 +awscli/examples/acm/resend-validation-email.rst,sha256=7aHliuKQZjZ7jjQ7zbGS2yyvOtKRt8DbTXsF9eRVF4Q,396 +awscli/examples/acm/update-certificate-options.rst,sha256=17SLZZ_VGuT-rnnl0Z9gX3v1nFHdCUN4Qq1JteCtOAM,332 +awscli/examples/apigateway/create-api-key.rst,sha256=631sPtUi7lgga18sFdvoUk-f6dSYhhO_KROtDUQnCM8,235 +awscli/examples/apigateway/create-authorizer.rst,sha256=VfiVCYl9nHM3XK1LCXMv_7Pd8XKyV0wN7qXQoFbBnnM,2961 +awscli/examples/apigateway/create-base-path-mapping.rst,sha256=-kIRisT9ZpLGq3uDVcA4gFJ1_inCsLt2RygiGz6vVE4,203 +awscli/examples/apigateway/create-deployment.rst,sha256=dBI2w2yTB4xvnnNMCPFBIgk_uPj2SEwElgeSTsAp1Vk,724 +awscli/examples/apigateway/create-domain-name-access-association.rst,sha256=PzMiD8RhHRabPihOgbefpcPOrM8MIBGe78IfY_0U4s0,1129 +awscli/examples/apigateway/create-domain-name.rst,sha256=umiIlXFXZdHID2cbTq_q5vtKrnnMBFLb-gyteez0rYc,3758 +awscli/examples/apigateway/create-model.rst,sha256=YdySmCiq4jBTLTQn40GfttR10RXNb0IOpTUXv_Vy7uI,804 +awscli/examples/apigateway/create-resource.rst,sha256=PqxSPtwKQjp2UeKl-7Tuide8HSoaVKMdByaeyw-vZVo,151 +awscli/examples/apigateway/create-rest-api.rst,sha256=nmzAIZWf0h9pYpTYTkpMO9fxOB50WSfQp5FPSD90Guo,323 +awscli/examples/apigateway/create-stage.rst,sha256=hGuEZT8mPPv53COh53ocCPG0_p7QaxAiFrmOXBupKAo,508 +awscli/examples/apigateway/create-usage-plan-key.rst,sha256=TSIMqsMcVfoX2CHDtaHoMMPCBnIFphCcNjXKkH_GKA8,167 +awscli/examples/apigateway/create-usage-plan.rst,sha256=625rg6750Q5xttJ84O6mtzgeIAasVtq0JulqolsoWK4,281 +awscli/examples/apigateway/delete-api-key.rst,sha256=_dz6OS0bJeU1wGzfKtBmetwX1k4ybxFM1xgWaoXFqz4,120 +awscli/examples/apigateway/delete-authorizer.rst,sha256=rRnhQpPcBFRQquYh3veihLnkUJCemjxW1wdxlQtdrig,139 +awscli/examples/apigateway/delete-base-path-mapping.rst,sha256=BwX-C_3gicZswKc_iL2mXiF86Xe_BFaEkvSR1SIfkVQ,162 +awscli/examples/apigateway/delete-client-certificate.rst,sha256=xaqSCQAgV_LkVOHD2PxoKp_0BOl99HMjvLtyh3RQItI,121 +awscli/examples/apigateway/delete-deployment.rst,sha256=p18PJ5pGWkFYeOjlwfLZ2KTNuAIB9xKjZPsaWZYiYrc,132 +awscli/examples/apigateway/delete-domain-name-access-association.rst,sha256=YpKKKRAYSu2VmJIJbMSCzzVTnUoCJSoVd56feSaCRzQ,713 +awscli/examples/apigateway/delete-domain-name.rst,sha256=zsSM-UwTbN_cbpxNo1aJb9S3o6RdkzT-FZvxx31vXH0,114 +awscli/examples/apigateway/delete-integration-response.rst,sha256=nq71k0va3X0OMHZKejXoMzBerfWx_waqOYQY2P3YiEE,233 +awscli/examples/apigateway/delete-integration.rst,sha256=d7jjFudpuWKiobH-o3jO-4RqvVEj3-uZ6-1vZC0t7fk,183 +awscli/examples/apigateway/delete-method-response.rst,sha256=YnGlWK-X1ri-dhn5pBql0-QB9NXPSiT7HHqytz5WF2U,224 +awscli/examples/apigateway/delete-method.rst,sha256=LxYVw1-Nd5VC1g_u1ZCyg9GQueO8JQSImvrg8GeLBqU,163 +awscli/examples/apigateway/delete-model.rst,sha256=pMlQtCQa7thRV0KuGuq1n-vjFT4ll49tsQR2cO_jGsU,133 +awscli/examples/apigateway/delete-resource.rst,sha256=AenfFGM0aM8HMMjBuefY3h16sJiys9cOuCpobLJLrLs,126 +awscli/examples/apigateway/delete-rest-api.rst,sha256=XtNu9ItEcHp_VG9rhMka_VOIhkcMHTny3y8tzWOSkBM,91 +awscli/examples/apigateway/delete-stage.rst,sha256=W8-ygGT2gLp_65vsXD8ufK7cnX9S_3-7xvVD2roEnoI,118 +awscli/examples/apigateway/delete-usage-plan-key.rst,sha256=s5dwTgfpZlzYKgIUNiBvcwPC6Q2l_YNwlniXf_xzg44,167 +awscli/examples/apigateway/delete-usage-plan.rst,sha256=BJokdNDCmJSzap414eGEbKSBkhb_XkIMnzLe0blHw_w,97 +awscli/examples/apigateway/flush-stage-authorizers-cache.rst,sha256=x2geDlHXHBllGSEU9AHiRReV62Yh1DMgEXqYnfPIuKQ,154 +awscli/examples/apigateway/flush-stage-cache.rst,sha256=0Jc7Ue8oPeO9FS73MphLL_IrcUjquVy8QsbfSD18Ko4,476 +awscli/examples/apigateway/generate-client-certificate.rst,sha256=uilz_xs0R3wTitY0zwPrhGBnXuTIrvDrQAn8YpnnVNU,145 +awscli/examples/apigateway/get-account.rst,sha256=crfNjpzAlHzPFOyEvlLgo5qZk02iJoJTgLyNW4Chtng,289 +awscli/examples/apigateway/get-api-key.rst,sha256=tFCIrH1DtTLfzUk1cHuQ9s4mE78esyMThqR5UuZR_U0,464 +awscli/examples/apigateway/get-api-keys.rst,sha256=rKkKJLcuu6RWsAzwYA2lVTkv8zzTp6xe9JJHMcrPKq4,523 +awscli/examples/apigateway/get-authorizer.rst,sha256=p3rQE7KT3A7TcS6UAZcffhEqM5ySvuP-Oywy3fjml5E,518 +awscli/examples/apigateway/get-authorizers.rst,sha256=rI0GLfS1j8xJRRNWh6W3zHsvsSIIEAWabL0FSVjSy34,591 +awscli/examples/apigateway/get-base-path-mapping.rst,sha256=96hWpBz0JygCXkurjLrAM8WFFeK99R1EDgzU_iF_wRc,258 +awscli/examples/apigateway/get-base-path-mappings.rst,sha256=ktV0hDpF2ZN1c6lVuEdWPyW4Vlg_kIVNAV79-Yul0Pk,452 +awscli/examples/apigateway/get-client-certificate.rst,sha256=vDTA_vsIDDXDz4ZhQKK7geOTnGGXML1I3od4-v8l2Ck,115 +awscli/examples/apigateway/get-client-certificates.rst,sha256=tXvCkw9U0vojVgicn37IfTIK4wxPtFIpf3casFjd6J0,470 +awscli/examples/apigateway/get-deployment.rst,sha256=V7p0C7wGkLe3zOvgOWcfGbHYwbeYXwime6a94-9NECQ,244 +awscli/examples/apigateway/get-deployments.rst,sha256=613M91R_Q-Pq9hkhpmAiZ3eesGpYdnRKDm7KHZzEgrY,326 +awscli/examples/apigateway/get-domain-name-access-associations.rst,sha256=L6lEzlEdQW2hyBFn3RZa0F7tIqjydKzr-eJINY_56HQ,1976 +awscli/examples/apigateway/get-domain-name.rst,sha256=1N2xJbtpx-kAMm3lY8lbk1gxHaJIdkWsMss-gsF_SC0,2277 +awscli/examples/apigateway/get-domain-names.rst,sha256=313XPVJslT-NdC4IWZGkGgT-HN2Ll_b1VbwJxd1h8O8,3623 +awscli/examples/apigateway/get-export.rst,sha256=3uhyNn-NtJrfcnYw1Z6e6EviEyAh8BdXBYO2wPg137c,650 +awscli/examples/apigateway/get-integration-response.rst,sha256=1nwegleU3yXr3F0gjESHTV8SwxAPD5ZEL5TITcViPGc,360 +awscli/examples/apigateway/get-integration.rst,sha256=4Y2-VXhWCAJHBia-FSKdFyYHu2ahRAoX7fel6O5Ozqg,696 +awscli/examples/apigateway/get-method-response.rst,sha256=_nITZb-ebXR2X84-Ms_u83H1TFEj8dqx_WCgJfHCqNk,359 +awscli/examples/apigateway/get-method.rst,sha256=F90q7uGHTzo3cK4DsgOFTUznb73iYP8ejZ3OGN0G6E8,1112 +awscli/examples/apigateway/get-model-template.rst,sha256=v3ysi8gZSUlcXQl43AgqHPY4wWqPLRo4VExjIrQ68CY,239 +awscli/examples/apigateway/get-model.rst,sha256=L3zLc1unE6GvJATii_FbeG8ubngrYQ-GimPY-kOIbBk,462 +awscli/examples/apigateway/get-models.rst,sha256=MgqOgW6kwf0SnttXR0e1kiRFeCSUpX_euZQJOhZh3yg,942 +awscli/examples/apigateway/get-resource.rst,sha256=cL-wqy0onOnG1lA7PcKlYnwhcLz5V1pBbK6K4uEWh2s,252 +awscli/examples/apigateway/get-resources.rst,sha256=0tmfEkrtFfXDSysKkrzVTGD32ap9CjS091zkZUGB6uw,420 +awscli/examples/apigateway/get-rest-api.rst,sha256=lrxLyLiCRUURkExeOSd4p4WmLjsw0LCr3fqVX1OVcZE,205 +awscli/examples/apigateway/get-rest-apis.rst,sha256=I3EAQuSRG9A4vSsCJ89LG6NZPxEPrVb1CPmjGk4Zqf4,256 +awscli/examples/apigateway/get-sdk.rst,sha256=eikTrolR5kTQwAMb29BUIPOWBL-xr9NpzuMmMknJTIM,1156 +awscli/examples/apigateway/get-stage.rst,sha256=P8tIcDmhcT7aa0Dn4U9y3SjZ1_2NpG3_jBVr1mqx7l4,1466 +awscli/examples/apigateway/get-stages.rst,sha256=-zqrTMHluYHSx6_eYWsnsfjvRnZH_P_MlV_TUGXIXb0,995 +awscli/examples/apigateway/get-usage-plan-key.rst,sha256=t2HABv-P3f_O2ii8jyYwSuj9uRQYvX0k3g-8vZCLweo,187 +awscli/examples/apigateway/get-usage-plan-keys.rst,sha256=uflr1n7ovvP1aBb5aKfGGbRu8OwYrY_oneAxZHAjZWo,133 +awscli/examples/apigateway/get-usage-plan.rst,sha256=PC51MB7lxh7g6YrQqi8SDLxnHjgzF_Mf1dAv6U8aAU4,106 +awscli/examples/apigateway/get-usage-plans.rst,sha256=yetUBDq-iyYNOUl8K_3yuI0CaWmcnTu_ijr32vDuQvk,87 +awscli/examples/apigateway/get-usage.rst,sha256=sly9in4bJXFSfWYkzhjWIIuR2gy09Mqu-GwaUoPJOgE,158 +awscli/examples/apigateway/import-rest-api.rst,sha256=-PdFJpWRIoHcTbgZEz__kJ-vuCmdkSdwzHF1CmNYSqA,147 +awscli/examples/apigateway/put-integration-response.rst,sha256=iQ-QIcziAwq6FUnIVibNCBMsoMiQICgcZt2kpNzuwdw,673 +awscli/examples/apigateway/put-integration.rst,sha256=XDuryx2rir4gSQAtp6m1lfdzBEbT3BTj8Qyhy18F1Xk,825 +awscli/examples/apigateway/put-method-response.rst,sha256=G9ABN6h89ARvT3mnfXTmTQijgMOM7NQrpfQbt3qBee0,299 +awscli/examples/apigateway/put-method.rst,sha256=RFhgMBN0u5_hZy069HXeQUkASdDNJ0V8iOfoQnNQ29M,337 +awscli/examples/apigateway/put-rest-api.rst,sha256=2XsaktctKvjdMu9FJan6UI5WASpvYRC0YgD6RW-t8dU,380 +awscli/examples/apigateway/reject-domain-name-access-association.rst,sha256=_gv-oxPGHqZtQuEhJTR-rFfUhw44JnpHnHO2GtrjKNE,827 +awscli/examples/apigateway/test-invoke-authorizer.rst,sha256=ZzPohdJUR0yHs7QaMyChSZXBKxYDRiWcXV28hZRPfe0,224 +awscli/examples/apigateway/test-invoke-method.rst,sha256=WPS8b6WN9mLJMrAZxfBJFwmJLZDY3EV9I278gNSY3fU,470 +awscli/examples/apigateway/update-account.rst,sha256=Lq8ycj0aOfPAN0nH6T1EK44LMaxtz2j4dKrlD7NIjys,435 +awscli/examples/apigateway/update-api-key.rst,sha256=GuBtaYbm0Q93TYSTbqPCBXdEGsDH901TjjoWhSMv2zU,976 +awscli/examples/apigateway/update-authorizer.rst,sha256=_busqG4-P3arZvf9gPhVUxtGQ-p_Qf26gBjQfkK3VHc,1382 +awscli/examples/apigateway/update-base-path-mapping.rst,sha256=tlYXrUMMD1SzG88RySyR6W4ipUmxum-1IIPUPkzDB7A,312 +awscli/examples/apigateway/update-client-certificate.rst,sha256=WrQL3nePmhHdmDIsdiGYIha0eC3Al9TL4PN1fM9Kssg,219 +awscli/examples/apigateway/update-deployment.rst,sha256=F0QGM0_Q9NdxAsNIsS8SU6AigvjiW6tj8VhqLZ19n6A,331 +awscli/examples/apigateway/update-domain-name.rst,sha256=8rAG2cI2E59gWkJIDfOETeKrqqpCby2qN7DJO4ctzpM,867 +awscli/examples/apigateway/update-integration-response.rst,sha256=V8ckCAyWu194DKVy-3I5Qa7UACBtqmS4_PcvQgOjKjk,794 +awscli/examples/apigateway/update-integration.rst,sha256=ZTiDhUt28ZK6FeVymZb4t9zIvVPJwcDxVyXO-tkRIVA,1346 +awscli/examples/apigateway/update-method-response.rst,sha256=ainS2VHZx9Y3u9hs1VFO1ksiGpY3mKOptWMaEQ6oZmA,627 +awscli/examples/apigateway/update-method.rst,sha256=8r_HTTWaQGWfQtSMWJkvrz9H6wrUZQOV6zIF7qcqSx0,4394 +awscli/examples/apigateway/update-model.rst,sha256=gpgEEAxuba4Nz5zeobfHbyUIDsj5H4zBgOaIKoPG6ng,513 +awscli/examples/apigateway/update-resource.rst,sha256=uPwdlNH_f2vgaSLwjzLPtRy5YfIf5RBibFYRzH0Qn2c,706 +awscli/examples/apigateway/update-rest-api.rst,sha256=Di1enXd0UIj9R28LTMrAk4avpLLVpv0q1OebmU8H-qA,344 +awscli/examples/apigateway/update-stage.rst,sha256=UoY0ZjPTi9__BNDQgivXV2FQjz798lq-FOv9xXsi35Q,2891 +awscli/examples/apigateway/update-usage-plan.rst,sha256=cijkXpPINYBupBWlC5WCsqM2HbZSkcq0IKiEwOEA0HM,783 +awscli/examples/apigateway/update-usage.rst,sha256=s1MKpgCtjGT1xM95xvmxrl4lcFbTzr8JXp-0R7nLxM0,275 +awscli/examples/apigateway/update-vpc-link.rst,sha256=Ejn_K78zxpGL2mB7hsmTUVp1y1pKXVBdmx6_P3ygDXE,1689 +awscli/examples/apigatewaymanagementapi/delete-connection.rst,sha256=vNq7NKW4RDjYP7O4MgXgSBz9agndJLXwq0e_vCT23xU,596 +awscli/examples/apigatewaymanagementapi/get-connection.rst,sha256=y5QgiVvZS6_7U2Jfee0mDQS9NIOYxSshp2WI5s07Hww,765 +awscli/examples/apigatewaymanagementapi/post-to-connection.rst,sha256=NvAHnU3U2wTlY-z8xZqvy06S_DbfTmPJ8zgImkaKlDk,669 +awscli/examples/apigatewayv2/create-api-mapping.rst,sha256=GCZWoVUdXAdgvfYjXRAWtm_8yq7ZdJOmxUGAfXgdibE,781 +awscli/examples/apigatewayv2/create-api.rst,sha256=-ZaI7zXHNu1fpnnPjdiy5JSvjQTzDin6rfDTHW3auUc,2004 +awscli/examples/apigatewayv2/create-authorizer.rst,sha256=yQnML1AuAWqBoQIufLSAUmLikjFuRSp9ZKub_9YbQj0,1136 +awscli/examples/apigatewayv2/create-deployment.rst,sha256=Ty7y8gnir0UrH3qTcWVVa31YYtTdZsqncg4RwDb_dGc,693 +awscli/examples/apigatewayv2/create-domain-name.rst,sha256=-y4ODXntc3zhezJMHH7qJToyyq12XeBHJF6PgT8_96g,1226 +awscli/examples/apigatewayv2/create-integration.rst,sha256=GtW4bGr4KuNy7JlDlSyelqNk0bUMVqI0aMYomLbmTB4,1920 +awscli/examples/apigatewayv2/create-route.rst,sha256=wIqXX2lcfdevxDAPAXQedR8ZMiO-sWHqXdSN_ofYQI4,1270 +awscli/examples/apigatewayv2/create-routing-rule.rst,sha256=aXaDSWkgDt358oVyzK7rG9RCilseGf2vQWpygARF-QQ,1563 +awscli/examples/apigatewayv2/create-stage.rst,sha256=PwjvxU0gRn4XF3iZO0914e7b0gxZtpoi-MFub3GGi6s,728 +awscli/examples/apigatewayv2/create-vpc-link.rst,sha256=krpJZz4LnqPGCcsre8-J87PNjh1juxCserK5Ko52F4o,962 +awscli/examples/apigatewayv2/delete-access-log-settings.rst,sha256=Xhm6dbHDoXDmrgjHRMI2NsuYpq71l7cvRuO2753yVkE,580 +awscli/examples/apigatewayv2/delete-api-mapping.rst,sha256=ZSBqiLroS2QB_c5Niwibtg7_nU3FFnJd261-yJAhDRI,554 +awscli/examples/apigatewayv2/delete-api.rst,sha256=x5J0mAGR6LWZSlRmtdE-6ZfeXvHf6hnlOhQu08CEZdY,488 +awscli/examples/apigatewayv2/delete-authorizer.rst,sha256=dqcKxWX-eHEefLBQWZFroBI-CPeb0nclNTz80JVgiIc,466 +awscli/examples/apigatewayv2/delete-cors-configuration.rst,sha256=6VzwrtSbtQszADAnp_Eg7n1Rr3L-_MJnYtjXYSI7Br4,486 +awscli/examples/apigatewayv2/delete-deployment.rst,sha256=OQgOSI5e5QE0liSYXdVU8rXcWappaeq4bsVRh_2qaIA,475 +awscli/examples/apigatewayv2/delete-domain-name.rst,sha256=7DCNlbRvPe0nZlPdl6j4krHefez9Fho9yNlA6Ic2P8Y,484 +awscli/examples/apigatewayv2/delete-integration.rst,sha256=RMt2mcWfQ6RGF8ZMdeTFboe0LsvDzIPu7J76Py8lP4c,619 +awscli/examples/apigatewayv2/delete-route-settings.rst,sha256=joS24UYhuOFsk1ooVloLep_MqYiXVbZIWubbDW_KsGU,514 +awscli/examples/apigatewayv2/delete-route.rst,sha256=F8vP4aBVc46YrcJUKWzsfZQyYXyda3CIxZCiEdWWH8M,425 +awscli/examples/apigatewayv2/delete-routing-rule.rst,sha256=g8j2pdrdcSO-leDZCvT-ZkJ1FBSM7Flxp8vwk7ppMwo,526 +awscli/examples/apigatewayv2/delete-stage.rst,sha256=Jp0gVYVBP8SVte4dtszklcySJfczJCXirir7-9sXYDI,433 +awscli/examples/apigatewayv2/delete-vpc-link.rst,sha256=XK27YJ-KzOH4wESHL7rFEDFI__7h1yI-K_5977Jv7GM,421 +awscli/examples/apigatewayv2/export-api.rst,sha256=bqrbcI674X9_lYE4qqZj9Oa9wTl4rWM6_1d61ivRI2w,693 +awscli/examples/apigatewayv2/get-api-mapping.rst,sha256=ZJiKzi3KUcn2DKhN2ONIIfTR2lvSmS2ijwQAgThHSwo,729 +awscli/examples/apigatewayv2/get-api-mappings.rst,sha256=5xCBkU-EQEDC2XDl14I1Qn8Z0e3Y-h_gV8NhE5iQpz8,962 +awscli/examples/apigatewayv2/get-api.rst,sha256=FFInGAzjRvBTIn6kF0Vy-WR2mVG3Ld8owjWiZfMV4o0,628 +awscli/examples/apigatewayv2/get-apis.rst,sha256=zB2S2lRf5HTO2b4QevK2BerZR42aid9ESiBj7vkJHBM,1465 +awscli/examples/apigatewayv2/get-authorizer.rst,sha256=3uMjt_fklEzdEr7Ze_wOusZDglLLFRLjjswvwppasvE,884 +awscli/examples/apigatewayv2/get-authorizers.rst,sha256=S0RnwAOpjAnYlyI2qGcfFIy1QlxYrWS5M9hCwxICye0,1543 +awscli/examples/apigatewayv2/get-deployment.rst,sha256=yKDvbCqTyEDol0OmJ17Uc1FETnjyaEwxxtYQGJwORS8,738 +awscli/examples/apigatewayv2/get-deployments.rst,sha256=rq0RB_NSvALLLr8Zgi5rvHs5qCvPhwTyQJzlJaYCnmY,1124 +awscli/examples/apigatewayv2/get-domain-name.rst,sha256=C1BZacLlhbqfv29h07cgvdi_kXZ7J9V9suxIXJAJLQc,1113 +awscli/examples/apigatewayv2/get-domain-names.rst,sha256=Vuxww7hg_o79_N6dww0p5c2n0xy9xhZyBhk8F_IKsJ0,1937 +awscli/examples/apigatewayv2/get-integration.rst,sha256=f3D0cgRXdxUqekZS1ycRs6YVGCEeCri6q1bBq-tsk8A,988 +awscli/examples/apigatewayv2/get-integrations.rst,sha256=0inAwd-xeSN10KbMWQw07Kjyj2GlAkYKxrZOPYeXOSU,1450 +awscli/examples/apigatewayv2/get-route.rst,sha256=NzZGA9JxeWk-rWvfU2xLkjq0Ctlv5wxmtvzducfCCUI,623 +awscli/examples/apigatewayv2/get-routes.rst,sha256=QBV1C84FziJjrIOGWOU7v7NjCsWzkEvLrSpTBMJbWMo,987 +awscli/examples/apigatewayv2/get-routing-rule.rst,sha256=DeByQP3SZhRQ1dGTsVHgDAx8MDZaJzGYqPlf5h4zUVQ,1121 +awscli/examples/apigatewayv2/get-stage.rst,sha256=ed4Uo5JyIRqJrH2ytvlLczhKr1RytESwWHZaI4XBIIg,850 +awscli/examples/apigatewayv2/get-stages.rst,sha256=BQie7caUn5w3X-gI_rVnWD2D3PhYx0WtfZWUycq0tYw,2096 +awscli/examples/apigatewayv2/get-tags.rst,sha256=X6cLh_ojvqzKt400cWbHpf2ZiysDPYlsCowri6i29fA,547 +awscli/examples/apigatewayv2/get-vpc-link.rst,sha256=haEyorOhqTvhXPUFYIJLSxvKA-dhg9AkJbMI98NeV8M,883 +awscli/examples/apigatewayv2/get-vpc-links.rst,sha256=t3eUanadCc5PpOFvbMazaAZv7i5A-e6Jrqgg55GxaYs,1655 +awscli/examples/apigatewayv2/import-api.rst,sha256=lspvWwnaiYaLdcyI-hkh7z-YbB378bGcnB9KZ5U-cgw,1463 +awscli/examples/apigatewayv2/list-routing-rules.rst,sha256=aidAx1I5QUs2h2ZIRAOZ4UD2D_AiSmY0f4nk-e4xK2M,1327 +awscli/examples/apigatewayv2/put-routing-rule.rst,sha256=GOI0peEz7bOBdpcH4LEEaGdTSpbRss_H6tfQ1EcOIyE,1549 +awscli/examples/apigatewayv2/reimport-api.rst,sha256=hakj1l-9F8Sag8r7_0F-Y6WNwZEGb3u0WswZQdnNyyY,1511 +awscli/examples/apigatewayv2/tag-resource.rst,sha256=-hHf33H5EVn8g9RmwrdUPSEZjm8kzXBJmHhlPfItTS4,548 +awscli/examples/apigatewayv2/untag-resource.rst,sha256=sc3uMYOaW7h-jZE9KMIt-UIYXCV2gAqsdSVCBHQnem4,547 +awscli/examples/apigatewayv2/update-api-mapping.rst,sha256=Fl3XDnJgmxx-x_oStipgckbptlKwm3KQkb8WqPoRQx8,866 +awscli/examples/apigatewayv2/update-api.rst,sha256=k1SnOokX7dbw3rek3Cbo0k_xuPpO063VAH27Cn6somY,1326 +awscli/examples/apigatewayv2/update-authorizer.rst,sha256=6kMESo7C1-4BxxPbqUBwJFPES8soSculKuhRRHXMoMs,969 +awscli/examples/apigatewayv2/update-deployment.rst,sha256=d0pdXCtJ7qK61EnsYgn6gevy1FyvI4R6Z4kKfR61tXk,780 +awscli/examples/apigatewayv2/update-domain-name.rst,sha256=OdRdGh9AdBPzfU1uZ59NA5zu6XRrD-d0HK2I1W61e44,1251 +awscli/examples/apigatewayv2/update-integration.rst,sha256=pvrlbKFWM8DxTuINjlZb7PprB5c3eLji8RkRlzkpmzY,1230 +awscli/examples/apigatewayv2/update-route.rst,sha256=mL-YKBDG2PqDBW-ozOC-_4KfhxOpAOmtW6vgByMmSmQ,1437 +awscli/examples/apigatewayv2/update-stage.rst,sha256=CK6KbuUx5RHRLAFsR_rJ9IUqCxn8CAb7a1H2Q3sEMs4,1066 +awscli/examples/apigatewayv2/update-vpc-link.rst,sha256=w1tha6GrHj8m3C08zHA4Q99nj5UmrOmW2Obp5kTlYgk,986 +awscli/examples/appconfig/create-application.rst,sha256=w21EXBIVwLeJKmrMYJ6QhMamBTqx2gq9J_PTZcrqdlQ,628 +awscli/examples/appconfig/create-configuration-profile.rst,sha256=hIHtrkDf-qI5rSm24PUAM82S3WM39n3Cm8YpFpWkdKs,1085 +awscli/examples/appconfig/create-environment.rst,sha256=rnUkTQGeoJ8G0HCr2QxZHhdF-sj836dKAxEQ-qkYdHE,721 +awscli/examples/appconfig/create-extension-association.rst,sha256=Fxnv73-G4hysnBn4WWl3A-OPUpsU-JpPF-11drUvZgM,1003 +awscli/examples/appconfig/create-extension.rst,sha256=zXiourbQEoEhmVk85WS-66Jtz-QXZb9czBKhe1GXSZU,1371 +awscli/examples/appconfig/create-hosted-configuration-version.rst,sha256=_6g8wYreeyUh4ABtJLS5H9Q4LpzPzh-9XoVcWw31PuQ,1160 +awscli/examples/appconfig/delete-application.rst,sha256=3121e2hvd_Ig-rXMAO-wV9kArD5FEzP9hwPCFsnmnNk,420 +awscli/examples/appconfig/delete-configuration-profile.rst,sha256=GEbLSA3qCRonY4HBSDmQPkKwrrtqnFRQt6rdtO-8vaQ,537 +awscli/examples/appconfig/delete-deployment-strategy.rst,sha256=qgNFqMu8km2nGq1oz0soFUX58rcxkkjaPkPEB6bUDMg,465 +awscli/examples/appconfig/delete-environment.rst,sha256=EKBeGNtOqAzKSEuovI8IBbb92D2U9Np-GtrmcJVbQ1g,457 +awscli/examples/appconfig/delete-extension-association.rst,sha256=YpgZjIgcSOWTmGoGxlEALP9xdGE1Ze5UhExmXRyrb9Y,519 +awscli/examples/appconfig/delete-extension.rst,sha256=if8kihsXaiISXcNnyHMol040snoAuQN107LqRZRaL5k,476 +awscli/examples/appconfig/delete-hosted-configuration-version.rst,sha256=Wtl61MWDOFem56StoDv-vcW-ZNNnZB9xledQF4IFI3I,639 +awscli/examples/appconfig/get-application.rst,sha256=_R58D20kGL86Xy0gcRYyoW5EdCmlB9FeHfPIYNMZEvs,563 +awscli/examples/appconfig/get-configuration-profile.rst,sha256=0FJ1PNszzGMShVR2heS9EPST3tcMolvR7mvJohk4iOc,798 +awscli/examples/appconfig/get-configuration.rst,sha256=rfUoaZYTDV3QR8anbZ-VgrCTk3bTLGvA_KDf89RQQ9Q,1113 +awscli/examples/appconfig/get-deployment-strategy.rst,sha256=wELd8KwMRa-hVlxdm1Tml3iWx5b04NDdbNgAYJDUpig,716 +awscli/examples/appconfig/get-deployment.rst,sha256=lh65gRaVdM2EMs0QRwbODWUucOHVD5GgQzi325YRGTg,3041 +awscli/examples/appconfig/get-environment.rst,sha256=xMAVWklTl1HDa2MoErGmhkNGyBTcRgl_-LaeNzOuSms,598 +awscli/examples/appconfig/get-extension-association.rst,sha256=PlOMZNsoreWz0Q-WLPLYgIzciAlbouWoBzVZMdS6e4c,851 +awscli/examples/appconfig/get-extension.rst,sha256=KpMDYvOoY44eQ_Oo8BxZ6yElBdITBsLQCMRFpWUQXQo,1135 +awscli/examples/appconfig/get-hosted-configuration-version.rst,sha256=qFbQBUs9iWGcQRZ2K13C2JapIn_XCR3uw8fRyKgGMoQ,978 +awscli/examples/appconfig/list-applications.rst,sha256=Nqs3DkjqlHPTd5Q2OhxgHXvvKiH9LSj4qS4-NPIESag,722 +awscli/examples/appconfig/list-configuration-profiles.rst,sha256=AwM8ssqcfwn5YhtacjbpC703bgwcAoZhIYjbvPge7zY,778 +awscli/examples/appconfig/list-deployment-strategies.rst,sha256=rkjm7aubnc3Eahbc4Jgq8wbiXM_LWtifCjQYE_AvhuQ,2007 +awscli/examples/appconfig/list-deployments.rst,sha256=eCdfd5qBaXbfe5vn9TJLW2pjd0r5WYCMO6hw0HOF5QM,1092 +awscli/examples/appconfig/list-environments.rst,sha256=1xAJTBlwluG0fYtaGbC4DmMaz-5JUFLwPQdq8Fw0-UE,683 +awscli/examples/appconfig/list-extension-associations.rst,sha256=9YZsGwlvDy_Lu1ukYF266yENRdDNHHZj6J96n_CEzK4,863 +awscli/examples/appconfig/list-extensions.rst,sha256=QVRb1JH-eN4f1DnuzzNjPsJcpre1CdFvK3vi68eIyS8,3843 +awscli/examples/appconfig/list-hosted-configuration-versions.rst,sha256=0wQrmrw0saLTDPi-iGsVhZDFt0GzvmvT5P3rB3PXfng,951 +awscli/examples/appconfig/list-tags-for-resource.rst,sha256=sTGmhR6LoQ1hemNYcKKzXikb598HRuV5RLb9NhpCkK4,544 +awscli/examples/appconfig/start-deployment.rst,sha256=bvYhB-_0CJDNdrAapKvmb5DAYgvlA9-Xdg4fPcG4G7g,1536 +awscli/examples/appconfig/stop-deployment.rst,sha256=nhwT4DqeJPlzbFxOluZBNf9YqGRI-TntriALAK9tOOk,680 +awscli/examples/appconfig/tag-resource.rst,sha256=xjXGIL8-uO2xlYqEluYj572J9GLRSisal8LjjsHmVBc,491 +awscli/examples/appconfig/untag-resource.rst,sha256=ZVD_JzIdGoqs4XtSBAp9LYj31FGkdCip-V7rF_Px9Bo,532 +awscli/examples/appconfig/update-application.rst,sha256=vhdf8vUJOzT3C04a1k7UjEpubxfXsSF7oeiJPeu_s04,598 +awscli/examples/appconfig/update-configuration-profile.rst,sha256=uRfxSBhogVtUfd0zBHu0JO3JSBntDwYwq2irMrI_BgI,935 +awscli/examples/appconfig/update-deployment-strategy.rst,sha256=SLYUMk549qZYAC52N4aKmdEIZ1ie2cF5BvDht2BEnOM,773 +awscli/examples/appconfig/update-environment.rst,sha256=Em4Z3hw3B0_gRGrNVjxPIKG42RokEjWvSprsUFgMQ3Q,677 +awscli/examples/appconfig/update-extension-association.rst,sha256=MO7O8IBqsaK_FKUxHxq3BCX_N_GEkUN-Ydc7lVyPHhQ,929 +awscli/examples/appconfig/update-extension.rst,sha256=lLmvr4kpzv_h8oArrrHD5bwVC-k-4Qwr0-kaoa3fC8E,1325 +awscli/examples/appconfig/validate-configuration.rst,sha256=21_2iSltfwimLnhAbfCfDrLRpHJOPWFrI5Di5WfSR6Y,585 +awscli/examples/application-autoscaling/delete-scaling-policy.rst,sha256=8heHjDwl-82E0APTXspj0uNrinREjGkadE1xy7aU7E0,345 +awscli/examples/application-autoscaling/delete-scheduled-action.rst,sha256=DxMhmkF33B5T383H5AdDkm7PeNM9aBiUXScqp484v-M,670 +awscli/examples/application-autoscaling/deregister-scalable-target.rst,sha256=34VBxupe0fANf9sXuByOoGCVdqs2IDZCulwMJ1AQpJw,950 +awscli/examples/application-autoscaling/describe-scalable-targets.rst,sha256=nBcLHPhxoXhhg8_K0KhSGy_ZtqvlIzWpR45NbATlTpo,1420 +awscli/examples/application-autoscaling/describe-scaling-activities.rst,sha256=QlRf--50sIUPi1dFkfBPAcK5GMSPNydXZ5CvemvJddM,4837 +awscli/examples/application-autoscaling/describe-scaling-policies.rst,sha256=iIqgR-JowrzndbenpbR26Ii38tjO2Eh8T4jMrwk_g2M,2528 +awscli/examples/application-autoscaling/describe-scheduled-actions.rst,sha256=XEc4aK4vIwOEMNCxhgkq9GKjB9Esh8W25XyKoOAp6Ko,1984 +awscli/examples/application-autoscaling/list-tags-for-resource.rst,sha256=nAgi-pj-hDDjH9jUZiYqVHfHEWzUHhqaZpvQlZ4VoWc,708 +awscli/examples/application-autoscaling/put-scaling-policy.rst,sha256=iD-_s7zz9FqSp_OHh2EAvMB7nKsK-0iJjxdy3noNkdU,6524 +awscli/examples/application-autoscaling/put-scheduled-action.rst,sha256=ImlqDbzGm3ydiTy96MEgiuUQ7B8ZPx4eAlK_8WOzeOc,889 +awscli/examples/application-autoscaling/register-scalable-target.rst,sha256=xeWqK4AR-iym6eNOkHuramlfqaVleN1kCIl6OmtV0nI,2912 +awscli/examples/application-autoscaling/tag-resource.rst,sha256=Lii7Koli3KfOpUwtHVXRknpUcNRONAh6IDz0F6VHMIA,680 +awscli/examples/application-autoscaling/untag-resource.rst,sha256=yGH_YlRYJoGPmIn-1b_ypWOnOk0xpn4uXhWhW5JFpnc,667 +awscli/examples/application-signals/batch-get-service-level-objective-budget-report.rst,sha256=2febmRceQDUwY-q5nG_NU4WvnhlTJvvg-4A745b-j-E,4192 +awscli/examples/application-signals/create-service-level-objective.rst,sha256=zljWqKBeszov7EXGHXtz64xmm1HYpfMKBYV2PqV8Uu4,3166 +awscli/examples/application-signals/delete-service-level-objective.rst,sha256=KYOSkRXeIdvAqVHCa9UGhzjjfa9Wo_I0AB4ZPxKUmGQ,537 +awscli/examples/application-signals/get-service-level-objective.rst,sha256=tIYUKXgClprK35tcilhX_E1tWB_r1aKu7UfH0eyOp7w,2113 +awscli/examples/application-signals/get-service.rst,sha256=kKVLxJ6rUlGLkW5Y1jT9VdTbpsDlkIZXRho5rZx4I1Y,2704 +awscli/examples/application-signals/list-service-dependencies.rst,sha256=BHBbqzoEs9s9I1P2LhlSs38K50BSLN2VjZRzJkoDId4,3625 +awscli/examples/application-signals/list-service-dependents.rst,sha256=irgNLC9bEViKognuOa-JFFl-aE8tc8VmelSdgJ2OLuU,1455 +awscli/examples/application-signals/list-service-level-objectives.rst,sha256=T447b1n6WFaHOUTkR2kiN1KBrazPr1kWz4W63XvpZfY,656 +awscli/examples/application-signals/list-service-operations.rst,sha256=Cthff0GZ6wgJBlqchnhPyXoHXSpE1TI9aMhV6NR-Rio,2391 +awscli/examples/application-signals/list-services.rst,sha256=x3hsoUNnCVHLpR9ucn5LDRoD9e2df3GfQpjfdv3_mBU,2236 +awscli/examples/application-signals/list-tags-for-resource.rst,sha256=N-7JMm_TYsSXI6mCcm8epN0Klbn3gGmBQxTss2Rlqro,625 +awscli/examples/application-signals/start-discovery.rst,sha256=-yPqKsGXOXGY9nzw5Nx3f75aoz5AXVUyNIDZlbM77Ts,598 +awscli/examples/application-signals/tag-resource.rst,sha256=xKZ1nBOdHbCt58v-8mmznEA8bb_IJYLzx2VBWiUfRsQ,699 +awscli/examples/application-signals/untag-resource.rst,sha256=HrDTjrkYat281fbLJqTAuePEgv29Pi14jYTUuV2G3Lg,556 +awscli/examples/application-signals/update-service-level-objective.rst,sha256=c5S05Sx4BjrwujSYXT1Z97uP3q_mdKDgZduII8q5d1Q,2471 +awscli/examples/appmesh/create-mesh.rst,sha256=wlEbmTxawAFzMbtaPCJwNr5TeUp6Cm4jME-CxoPAM_Q,1598 +awscli/examples/appmesh/create-route.rst,sha256=Uzl7Sv1-5EOejK9DliYFEWzMvo5bHHEiOqqQt-UAaEU,10824 +awscli/examples/appmesh/create-virtual-gateway.rst,sha256=yl37k084LfFCJBQrE2EALRMPy0CKNNwFN8INTb_y4eo,1777 +awscli/examples/appmesh/create-virtual-node.rst,sha256=thzR5JUJmimjhE8aZ4EDEix-QOqqKVTw3Ezd8jDrHUc,4986 +awscli/examples/appmesh/create-virtual-router.rst,sha256=yW8pe4Z8lVPM75g2kQDLoCjFsrIIi26Tu2qpZsh9iwk,1629 +awscli/examples/appmesh/create-virtual-service.rst,sha256=TK5TmzNF_A-V309rVMu9xub0eVaTr8nhH3QIU2xy-Vo,3155 +awscli/examples/appmesh/delete-mesh.rst,sha256=k2JPQKskCBDWPdHzdrw4Hy0iYe5iePauDC9oZRRKLWo,907 +awscli/examples/appmesh/delete-route.rst,sha256=tfvA_9apz8I8bwtiygocUFsRpbD2c7otcKoZOJEv27w,1629 +awscli/examples/appmesh/delete-virtual-node.rst,sha256=kS1h5F6X2qahigRLnlzBUPMPb-rk_F_rXvPfQVkX8Dc,1405 +awscli/examples/appmesh/delete-virtual-router.rst,sha256=TIBGnUxTpN28wslN5bld0Ai3I9BHPAO7rArDKfUFE0Q,1211 +awscli/examples/appmesh/delete-virtual-service.rst,sha256=jgWVVX4-oy8KWEHQ_06G7U-2u37DBtsOamMih-Q1zc0,1009 +awscli/examples/appmesh/describe-mesh.rst,sha256=KK0zvNCII2BVbde12Pd7IP7OSYBdLmUWIGI24ZL_6ng,821 +awscli/examples/appmesh/describe-route.rst,sha256=2kKx2DJZzeYhPXJv8BQUEQZ7IZbO9gzJzFPNa-gRJXI,1648 +awscli/examples/appmesh/describe-virtual-node.rst,sha256=SDYTwT4LjY8E6TO2crvk0-AeT_yeMF8krw2bbRrh2HE,1424 +awscli/examples/appmesh/describe-virtual-router.rst,sha256=fFchJiwIrAi4xtbtc5aZcjw12gdAC10LmAj26O7PqSQ,1229 +awscli/examples/appmesh/describe-virtual-service.rst,sha256=3lIy-EgCTDCOQjjLN_VA4KhMARqElkCF1fRb0GEaezk,1209 +awscli/examples/appmesh/list-meshes.rst,sha256=iB1dyU2x8_O8URxotBjs12EZRU9O2tV6aPVgV03hjpg,500 +awscli/examples/appmesh/list-routes.rst,sha256=TXi1Dkk0z_P9aDHoOr0ZwfMaft1I5l7YpFAjgkhl1pQ,698 +awscli/examples/appmesh/list-tags-for-resource.rst,sha256=Mw_ff3xoEm7Kfv9_ymZOdzy6HnarTOCpPlaLazy76_c,589 +awscli/examples/appmesh/list-virtual-nodes.rst,sha256=QC_FRWqpDyVakquQTCmpZm6AebOIZl40LEK5CKCmkEs,842 +awscli/examples/appmesh/list-virtual-routers.rst,sha256=yJ8n1BK5EShMWsTK85J_TbZG6RsasObrmZZLtW7zL3Y,641 +awscli/examples/appmesh/list-virtual-services.rst,sha256=z5sx-ag_ULtuO7fzoymEeL_qakSUg37rSVkHhIkrnzw,931 +awscli/examples/appmesh/tag-resource.rst,sha256=1u02fW_kVy3Mg4lgSKj5DWVcpVyriaciFUjG0_3wJY4,317 +awscli/examples/appmesh/untag-resource.rst,sha256=HaE02c7fJhCT1XjPaTpOJNH1i5bjhB0cdEewCqYFx6I,299 +awscli/examples/appmesh/update-mesh.rst,sha256=X3ycPxtD1d1iFu84zieDHbnSfK84DF2ToaUoaP-Wpj0,1207 +awscli/examples/appmesh/update-route.rst,sha256=JYSTT9MSIbXBJxy02jXEvjnFH1hot60mXVJ2FaOfY4w,2342 +awscli/examples/appmesh/update-virtual-node.rst,sha256=4USXBmPGnQe_OUgwEAwIWKsVF8DedeNUV40CeyEOiBw,2717 +awscli/examples/appmesh/update-virtual-router.rst,sha256=7_2s6C8CAzxU6hblIMxPDRz4OHlHi2pso8cAcw7qlYY,1605 +awscli/examples/appmesh/update-virtual-service.rst,sha256=CEV2mPNvKv9kIitqEEvAVTbetFhxpG1hnW6IKuIw8dc,1533 +awscli/examples/apprunner/associate-custom-domain.rst,sha256=2ZhlewXzcK4lDQLLgosoIsoj4ZnaMQ9D_qggQBi64HA,1688 +awscli/examples/apprunner/create-auto-scaling-configuration.rst,sha256=X3sSf70FtzOpyYD1QdrfpmoMFOyS79jrS6dSUpviS2c,1445 +awscli/examples/apprunner/create-connection.rst,sha256=YuPbrnCvbtnOHQoDMFieWTN7el-qO2uMqeMAJ-4L7r0,1106 +awscli/examples/apprunner/create-service.rst,sha256=6ICAdbgi4s5biB4i6wqyprmCtw4nzTb9iZqu04QeQRM,9831 +awscli/examples/apprunner/delete-auto-scaling-configuration.rst,sha256=900MZHBsl-YNnCNF48sjeLa3FjqhzCn8LkmNmiVSsVg,2790 +awscli/examples/apprunner/delete-connection.rst,sha256=HG_FPb6LQZFvlvxBKB69zfgnAmcopGVFkAvGgjbkYd0,812 +awscli/examples/apprunner/delete-service.rst,sha256=qzz00bswREGZtMY5JoLBacUvTr6oMfcogYiCNBuxszE,2313 +awscli/examples/apprunner/describe-auto-scaling-configuration.rst,sha256=wbhqge6BDDZHt1y2gFm2iqCzwlhjdsCnUCRXa9dyb5o,2642 +awscli/examples/apprunner/describe-custom-domains.rst,sha256=O6OW59ao8GOIsi-iBrYvOVedKvqMqc3gsE9UEDDgW1o,2284 +awscli/examples/apprunner/describe-service.rst,sha256=ebswVRvz-LF2wjygy5zBMTt3USawp6Y4IW635ax4wVw,2255 +awscli/examples/apprunner/disassociate-custom-domain.rst,sha256=nwKsucJohiEsJL_c_oNUkHxDh38DUi2IZWrEdFtf6Ro,1633 +awscli/examples/apprunner/list-auto-scaling-configurations.rst,sha256=gBPTmqMwFPXlLKmTqpS4gm6CsJzCMKSPCQ3qEPfCzzQ,1449 +awscli/examples/apprunner/list-connections.rst,sha256=i0CTHKlpjGpLE-BrYNzgOEpc11muegd0WskbCXTdCg8,1666 +awscli/examples/apprunner/list-operations.rst,sha256=Ygz8BAZdO1jfPVxGa9iXyrdwLlifB0g87ZlQHwFsNQI,1025 +awscli/examples/apprunner/list-services.rst,sha256=KKKEOTVYcD2oOvQZ9iLoyTrqH0fskcZmN7wbybrKDc8,1823 +awscli/examples/apprunner/list-tags-for-resource.rst,sha256=UviDHuBZsRtEOJ6Ic4Z5qsGiDtU6vibGrNSDW86NaTk,710 +awscli/examples/apprunner/pause-service.rst,sha256=R2c73tlRFVvOwl9tZYengv3sabsIebXgrPgLDkbCwiU,2309 +awscli/examples/apprunner/resume-service.rst,sha256=-vrGFkDNpszcZW2tnW6X-kwJsQZwUdrcved-UH4hr7Y,2311 +awscli/examples/apprunner/start-deployment.rst,sha256=qIEBqp_whIaMVCnCV1TpjG8eb8evFFkpKXrU8RfE31M,480 +awscli/examples/apprunner/tag-resource.rst,sha256=ydjiRzE37wLAXe_5FSIJ-IWXGEAHzjFuWu0EMx2aJqQ,656 +awscli/examples/apprunner/untag-resource.rst,sha256=LmgvMWNQFiTxty8hWTWgReOYxs1QsRdfp41zIuXanUc,510 +awscli/examples/apprunner/update-service.rst,sha256=O-yPp8HCKZGpnnCQN_QJPBFlIpbxEYzKkoskHt0Pclk,2651 +awscli/examples/athena/batch-get-named-query.rst,sha256=JctBJR8wCmbLC_wm5qgyVuFvSAPRYodxAh56l863n1U,2123 +awscli/examples/athena/batch-get-query-execution.rst,sha256=4C_BNDTxENfk-rlgx1zRXWylnMwGVO-asKwplmqjZ04,2928 +awscli/examples/athena/create-data-catalog.rst,sha256=dzMXBXPwD4PfFojklgoqkKLIqJvepLFf3KSY8B2oidY,710 +awscli/examples/athena/create-named-query.rst,sha256=IC1b-DuAx4mfxfBDH2UEBgU1Zs5z6xDwEd6tcdyYr7w,1260 +awscli/examples/athena/create-work-group.rst,sha256=HNoc3mtSy_CGuQRf2xfdEHTdn0zDGwCAcm5LESu3oFE,1252 +awscli/examples/athena/delete-data-catalog.rst,sha256=3UcTcG2b89j77eJVd-jNu-gO-FDw0BoDu8TuYntpDkw,457 +awscli/examples/athena/delete-named-query.rst,sha256=fSf2i0ufjnGf37eUZWTAxH9MRCjdS8lZxfnM548LSkI,450 +awscli/examples/athena/delete-work-group.rst,sha256=blkwY9n7lJOzNJ2nJi5VLhmbbKRi2earEimU4AHna9A,444 +awscli/examples/athena/get-data-catalog.rst,sha256=uBqC6NGZtKwjedUVX4FiTIKboCCx_TiZ7Db8vZ6WWrE,949 +awscli/examples/athena/get-database.rst,sha256=jIPvuTWMp6ql2xSjE3CTM0QajMSvDzZMG7VGhG1LNbE,796 +awscli/examples/athena/get-named-query.rst,sha256=2UBlkCZ_Uw9rHKE7wddCetmO3Sy9_6_WzixLW_8t3cU,916 +awscli/examples/athena/get-query-execution.rst,sha256=9Vy7O3we-F6SV_5eYye-eMG221VfhJkhKyzWXtWyYNo,1635 +awscli/examples/athena/get-query-results.rst,sha256=xBeyVr1i0Ny2LInp1Lxg6X6-_ZK3ueSLJIU7xYMA0C8,10261 +awscli/examples/athena/get-table-metadata.rst,sha256=T3uA1aUGKBK_02Cft366ojGMKkXxzc2HBw1Nfw2gdqs,2153 +awscli/examples/athena/get-work-group.rst,sha256=rAdYO7HKZ6zoe9i-UL8FfGeteW-7WDZNdvAEXnL4lvc,972 +awscli/examples/athena/list-data-catalogs.rst,sha256=AehYhffib268WMTNnmNXX44uo_m5-r4w8kuur0Fv7SY,844 +awscli/examples/athena/list-databases.rst,sha256=f4A8Fe1__46fyDeYP0fepTORDGBeD42lhuewyJEcBek,1045 +awscli/examples/athena/list-named-queries.rst,sha256=AitbHIsY1jXUdWjdI9DHjQ-1YhltPL7kxppHtGHJDaI,636 +awscli/examples/athena/list-query-executions.rst,sha256=671M7bt48sBjAkvRhJj7eoGe6VmdR-opafiOjO6NaSc,1174 +awscli/examples/athena/list-table-metadata.rst,sha256=dHHhE1yO-R7SVe3kspGTaiCP8sIpE1jiu2SJJ2nrpwI,4908 +awscli/examples/athena/list-tags-for-resource.rst,sha256=L66piwtTPB19tLLcM_piOdwgcSDC7IuBwYkDfPg93K0,1678 +awscli/examples/athena/list-work-groups.rst,sha256=qgMHoJjuwPZbdExk95SaEPuIAvxq20ZeCugCLyPZ438,965 +awscli/examples/athena/start-query-execution.rst,sha256=HRktUGJ_kDAMr5pM71PTP61OOKTf6913nfRRoIMY1Fo,2374 +awscli/examples/athena/stop-query-execution.rst,sha256=z3cN4jpp7TUQH94PRJxzR1DArrYC7DP0NAUiN4QG6uo,456 +awscli/examples/athena/tag-resource.rst,sha256=Pyxcco1_o4DUY5M8hAO0pGceRcVU-sVKdfCJR0YRee8,790 +awscli/examples/athena/untag-resource.rst,sha256=7msGjPmfs9rA7Vfvjk1oFe2dx7sr1N3eUjBqalQr9Ic,710 +awscli/examples/athena/update-data-catalog.rst,sha256=VL06lw6EmcgA31QSrY7__LqjUKR8_brZTQgSndZGpAs,739 +awscli/examples/athena/update-work-group.rst,sha256=MiWxE-pvRgzY1DEZqzJ7xJ0XLEgLjDclrbwnpWjiT9k,753 +awscli/examples/autoscaling-plans/create-scaling-plan.rst,sha256=wRh1eUkbw9Wgr_nmzhFQg_sU8Bw5XKvA5ES_jhma5A8,2147 +awscli/examples/autoscaling-plans/delete-scaling-plan.rst,sha256=-i1D2D7henXEt2DxgcOyLvDm2TLp4nCKQLBNAF91ODM,429 +awscli/examples/autoscaling-plans/describe-scaling-plan-resources.rst,sha256=yG-ZssIksv0DYrUKTXN3cOTqv4elqYnKbhNSa0IxuBU,1827 +awscli/examples/autoscaling-plans/describe-scaling-plans.rst,sha256=XxYkk79cDexrqtCbSOAThj6abj4izOez_1arIKbB7eQ,4401 +awscli/examples/autoscaling-plans/get-scaling-plan-resource-forecast-data.rst,sha256=rNInp98Mv8xaKeCSr2KlR7X8nyoB7khI2caYQkY6Qow,869 +awscli/examples/autoscaling-plans/update-scaling-plan.rst,sha256=LL4FurwiwxGn5E1TUNnXiZped1_AjwCv0l8d0aS-0WA,964 +awscli/examples/autoscaling/attach-instances.rst,sha256=LThYXxaoX6CVecas8MTZeFIspecBtRM82SfFspCRvkQ,306 +awscli/examples/autoscaling/attach-load-balancer-target-groups.rst,sha256=67Y8XfW5Z92VqI81uHyCGAV4szuxSnDYUC1vfy53L_8,622 +awscli/examples/autoscaling/attach-load-balancers.rst,sha256=SR4I8iEKOMZ1wNdh6L97cLosT6KPzavgIZw7ju1jrjQ,554 +awscli/examples/autoscaling/cancel-instance-refresh.rst,sha256=DLcQlb-Bl-gLCIY9Bt6lyquJAenHpfBhNsXZIY6bV6A,545 +awscli/examples/autoscaling/complete-lifecycle-action.rst,sha256=mdyXLcx6T_sNuClZFCPiCShJnvg0TKYD7owoHOz6s5w,690 +awscli/examples/autoscaling/create-auto-scaling-group.rst,sha256=3KYiyTVrxINAFm4l-iNrq7SS4oajjQpbbqfe_jvm6K8,8917 +awscli/examples/autoscaling/create-launch-configuration.rst,sha256=XoUFS7hhACeqUyGTRFVGtMyC3bEhdr5SnyzeVaLxrSk,7198 +awscli/examples/autoscaling/create-or-update-tags.rst,sha256=z_pg2BM25Om_I5Pl57FwuR3U4Tee92XS8-YqQEDZbTE,619 +awscli/examples/autoscaling/delete-auto-scaling-group.rst,sha256=AFsQc-v0yFTzKwKNMPNHFB9CpRl1en77Czyvg2SDHfw,1006 +awscli/examples/autoscaling/delete-launch-configuration.rst,sha256=BtnCKE151DaVNIDADBRDKP3nZas678tj_ZS6R1MjV2g,445 +awscli/examples/autoscaling/delete-lifecycle-hook.rst,sha256=Tbn__7u0ATcWoN0PdVTUExIJ8DU5c8QU4LPYkksxoPE,263 +awscli/examples/autoscaling/delete-notification-configuration.rst,sha256=LJsX_m-ikr12hh4GmO2CZocsVNHx64hFwrZ6FiR3jXM,573 +awscli/examples/autoscaling/delete-policy.rst,sha256=AA6zn_sXXhRPfRksANG3lne9Fraqb9iIyYZzlPgYCEA,270 +awscli/examples/autoscaling/delete-scheduled-action.rst,sha256=dt_TQJleYVhCr5Ji_ldgFWaCAlqV0dMnR_rPZ5ys5Rc,338 +awscli/examples/autoscaling/delete-tags.rst,sha256=nOC4feO5fBa5Vkh9FXLQrEVNYCn0r2uGjJkGv3WlN0E,496 +awscli/examples/autoscaling/delete-warm-pool.rst,sha256=XQkh2wOeHIadkvEOLNcG3-B9WAeEfHHyDm8CrXH54J4,961 +awscli/examples/autoscaling/describe-account-limits.rst,sha256=NhwL3_JdAO41PZoclKEqiKvCWgMRKgkjoMTAojMtc-w,596 +awscli/examples/autoscaling/describe-adjustment-types.rst,sha256=bmQ_jmY2FOaa2_28TbAKc-PIuRWtsIs7ez-oWlQNT4g,700 +awscli/examples/autoscaling/describe-auto-scaling-groups.rst,sha256=K2FVYlnBsDtqDXATjweYXhO8sLsmTCDLALB3HbDf1RM,5881 +awscli/examples/autoscaling/describe-auto-scaling-instances.rst,sha256=bb_4a5fEz_HZQKoyc5A7V8ECqH3E_ONp3uRRMLy9OHM,2341 +awscli/examples/autoscaling/describe-auto-scaling-notification-types.rst,sha256=eKTm7TgNPowyBTGaGhWUws_gqkzcMCP-THxImlsSeE0,745 +awscli/examples/autoscaling/describe-instance-refreshes.rst,sha256=3VMlO0yeuC8xAgOKCYMKXxMaryfUxQLkZQTyPaLNDeU,2259 +awscli/examples/autoscaling/describe-launch-configurations.rst,sha256=kRLvqHBuUYPgCMjBxO-NsmdC8ZaDAr5vxX5kmjRRCls,2516 +awscli/examples/autoscaling/describe-lifecycle-hook-types.rst,sha256=-BnP6ySYn2NLhQAiJPH1YsdIoAXEHjwGaxwEXx1DhAo,345 +awscli/examples/autoscaling/describe-lifecycle-hooks.rst,sha256=KwJTI8OCYvCiw_YAdrHo8vw4-j3CbIR0LTcmOBovqM8,972 +awscli/examples/autoscaling/describe-load-balancer-target-groups.rst,sha256=D2tER-WOHU-sHYB9qQdGyYiHO6i6BaO3AZt-u5QNeXM,570 +awscli/examples/autoscaling/describe-load-balancers.rst,sha256=wzQskB4JPM4C6xvp28ZrYRARaMl_Z_Ki4cptXjCJhqI,443 +awscli/examples/autoscaling/describe-metric-collection-types.rst,sha256=G8XZ4zrkql0SB4R5PlqyNv_3PahgteicFT2zXL-6xIg,1605 +awscli/examples/autoscaling/describe-notification-configurations.rst,sha256=S65ejflsaE75zbor5If9H_OPSo_OeCw211JHZ7b2-_8,2546 +awscli/examples/autoscaling/describe-policies.rst,sha256=d0TEjEppp-D-isT1XPKq8x4sME7NNV_CFbvFt8fkx-U,4812 +awscli/examples/autoscaling/describe-scaling-activities.rst,sha256=wguowP-fP2UNwsYMwFh0OYJlyea6OYoAg_v_LhXvGZ8,5065 +awscli/examples/autoscaling/describe-scaling-process-types.rst,sha256=oc5o_jKslwlmHxXNb3JwqBOeS2Rgg25HDpOvJhkY--Q,1138 +awscli/examples/autoscaling/describe-scheduled-actions.rst,sha256=W2g1hSfU4tVhbloaCYxywjMF87-xqDbtWe2s426UpvI,7505 +awscli/examples/autoscaling/describe-tags.rst,sha256=Inkdj4UygYCPPyKlwWZ7yMpqARjDnZ1kckNMhtQfBVQ,2010 +awscli/examples/autoscaling/describe-termination-policy-types.rst,sha256=7HbgqIK2IOxfotRihlz96M8XdwyPHL78CdFqK8YgZVE,727 +awscli/examples/autoscaling/describe-warm-pool.rst,sha256=g4rxeprCqCjkladhyDQ0AJdYIgnBUYYJO7TETNM3Cxs,1593 +awscli/examples/autoscaling/detach-instances.rst,sha256=FXWW8G20doFMeKqzW7J0DuwGW1VUz6KCH1TL-WJdYc8,1015 +awscli/examples/autoscaling/detach-load-balancer-target-groups.rst,sha256=BCh7w1pVVlLvXJiVBOEuUrHzhJdzOaizl1-tZxzKnEI,654 +awscli/examples/autoscaling/detach-load-balancers.rst,sha256=b9aSqwmFR1g0-4IUAfjoOdu9FrQ8XkPjIe00frcD9sc,559 +awscli/examples/autoscaling/disable-metrics-collection.rst,sha256=fd81cbvso3NLcTfx4UuEb9Okh5GDH9H5q4ooZj_qhzU,581 +awscli/examples/autoscaling/enable-metrics-collection.rst,sha256=OKUMIUc5H-dSXNHJ_l15cPQmFCMLs_3lX9LBasUVCBQ,1139 +awscli/examples/autoscaling/enter-standby.rst,sha256=gCxg-rPd4MejfCs41I8ikqTBEPFH8IIl3V88T4bJX_8,1282 +awscli/examples/autoscaling/execute-policy.rst,sha256=PZRazOdZkT_z8Lq3f3rUegeCVsESC7AQZyCXYgLHmns,578 +awscli/examples/autoscaling/exit-standby.rst,sha256=NhUXXystLETWgxNk40e90z1ujPbGa061lGKKJXu34v4,1180 +awscli/examples/autoscaling/put-lifecycle-hook.rst,sha256=YnResGQiyQ7LEyADrQZJblwdCu8v-GaHBVmmu8xhJ1E,2557 +awscli/examples/autoscaling/put-notification-configuration.rst,sha256=ieNF7c4RCjmSVuPsyJYJqQypZBWEK-GqXOPKNcj3Y6E,637 +awscli/examples/autoscaling/put-scaling-policy.rst,sha256=OkMPMHJ_Uby9lnm8eTAcCFYM7KQaSZho4cp_X2f2UDs,1985 +awscli/examples/autoscaling/put-scheduled-update-group-action.rst,sha256=0dDR8k1zHMT1yvPHgLH1cVYvJKUj_M5sOsnKx_W64Os,1615 +awscli/examples/autoscaling/put-warm-pool.rst,sha256=bDHXm9tb5XCZRMv3a3TIokbftX5sbAPzR90epgjSdZ4,509 +awscli/examples/autoscaling/record-lifecycle-action-heartbeat.rst,sha256=5I3mVB6BPJWRiWrZWLLDM8VEIgTvyBw7_rPHSE0nqqo,596 +awscli/examples/autoscaling/resume-processes.rst,sha256=q2dm5Z46H0tLr-ZNk6tfipytIFWv6OoEEJ72ENVL7fY,518 +awscli/examples/autoscaling/rollback-instance-refresh.rst,sha256=DyKlcdMjP9ytkYkUv_I4b5GSYKzMFZ71HasYMJyimlA,559 +awscli/examples/autoscaling/set-desired-capacity.rst,sha256=Dtexq-kXn-EUP0TwXjmK15i3YE2DPWq1E37qk7a3ygk,341 +awscli/examples/autoscaling/set-instance-health.rst,sha256=HzByudVJiXEnYlktXc1WX6wztDpcj79RHxjT3GPV4T0,290 +awscli/examples/autoscaling/set-instance-protection.rst,sha256=Lv7btcd1QFA8hQFkMP_spn3nBTR2Zg4J6VEEi_60L58,714 +awscli/examples/autoscaling/start-instance-refresh.rst,sha256=XIQUK0EWBHKIv90DIckyOPO1XoN8Yr5aN2HrwMt0fIk,2005 +awscli/examples/autoscaling/suspend-processes.rst,sha256=YyQIVNk9XAz90xP9_svWu4QQdWkISmhb9BVv8nGgxLo,514 +awscli/examples/autoscaling/terminate-instance-in-auto-scaling-group.rst,sha256=pgJJJEMTXMkmnVF9GihGUgWS2xsVvsoC5h_I9PI-DNA,1005 +awscli/examples/autoscaling/update-auto-scaling-group.rst,sha256=8SOhD76BeRGIN-f1gK1_JFw34I4cIXpA0WBMU32dYWE,5017 +awscli/examples/backup/create-backup-plan.rst,sha256=JcoPRQU5gRUaEkfxbQQOPvNfecfHf-sxsXF9wpSx6zk,921 +awscli/examples/backup/create-backup-vault.rst,sha256=CMeo1Mw6nzdQN_cMe98RlElJXMUHsTxLysmPFVYbzNs,607 +awscli/examples/backup/get-backup-plan-from-template.rst,sha256=xPsiNMgI5Pii14P8JKoozrPhB0a32Jd5f4gbBlOdrhU,907 +awscli/examples/backup/get-backup-plan.rst,sha256=ftwP2Vjz9HSCUjurGTL1Yb0Fi34gJV9dEXAM4eoDJeY,1326 +awscli/examples/backup/list-backup-jobs.rst,sha256=GaOAupPTjiWEq9BuQt5hNtZxzAMtzKu4MkUSKYD1s9Q,3345 +awscli/examples/batch/cancel-job.rst,sha256=Y597wZZ9YeDiMbbf1mMaeSbbSbWcXbN-nKCgG7KW2oY,183 +awscli/examples/batch/create-compute-environment.rst,sha256=EGbprlaj8zHS4B7i3uV4gugDJVaiSbXlfTiDmvIAP9U,2607 +awscli/examples/batch/create-job-queue.rst,sha256=Lt80RzWbOnNGTZ_ErGcnMZpd3YU5IifwlTann8cVcGc,1521 +awscli/examples/batch/delete-compute-environment.rst,sha256=u-DyGTp3Tq3RtAbUNCxeNOQBvzfFisfYHok8MvifJu0,180 +awscli/examples/batch/delete-job-queue.rst,sha256=FE0oNe2sujadyXRmn4G189SekTx8qZxAJ4B5Gi3aiJo,128 +awscli/examples/batch/deregister-job-definition.rst,sha256=Hcy4HFeCUOpw3oh9ds408B0L1C8dHxCf-TjiLJ_P0hU,170 +awscli/examples/batch/describe-compute-environments.rst,sha256=ei1cS5eJhw_wbtrBJb8VaGX7lUfKnCLbfiPdTrKZr8g,1522 +awscli/examples/batch/describe-job-definitions.rst,sha256=y-bt7jot-XYjAzt2qxNm_9wdtc8AT0H5rFiB37QuO-E,925 +awscli/examples/batch/describe-job-queues.rst,sha256=O7uzJ4uqUwTdCvb3t66Sst9z9VZohxnsRIB4xOwVncE,737 +awscli/examples/batch/describe-jobs.rst,sha256=JCegz-fj1AF3ML7tZdhaMMrFO2ASsQPeJc30T9ciEhc,1168 +awscli/examples/batch/list-jobs.rst,sha256=zHubpZyKI4j1lNQb7blXW-J-W55HhpC2e2n2fD8vNuQ,714 +awscli/examples/batch/register-job-definition.rst,sha256=CGlUXd-4VPFOxp1GAz9gqLFg7uIOxcLLK4BYGiZKb-Y,468 +awscli/examples/batch/submit-job.rst,sha256=H7-sFhoAalC_oLi5lwR0gNtSbC6p_hL-Q3e6LmQe2-U,321 +awscli/examples/batch/terminate-job.rst,sha256=EsfE1ZcllyiNj1IgDku8ban3btq8Lwv8MMssSl-qp5I,193 +awscli/examples/batch/update-compute-environment.rst,sha256=viftGlfUbxzE2S5tmmVqYZr4ncdN1uS6BYJzn33DDak,381 +awscli/examples/batch/update-job-queue.rst,sha256=6V90Y27NS6zVyHVKQnW1SkAgOtV0qK-4uqCO5tKFO-A,286 +awscli/examples/budgets/create-budget.rst,sha256=dKCP7wqchy5jLuqZBEM_k_FDuDThCwWHRPx2lIFOe08,1755 +awscli/examples/budgets/create-notification.rst,sha256=MpJypOZpZaitQaGPipUR2lCClvHxPTdJlg0pIu3lXig,424 +awscli/examples/budgets/create-subscriber.rst,sha256=tw6_WLqjMa8_tKLwpYf6o_w_3iP-C3RZYmcJKjx7Uso,428 +awscli/examples/budgets/delete-budget.rst,sha256=8maOtOoLFPaYA5H4K3UNnx_eWRqT3vXYK4-vb5qFz3g,195 +awscli/examples/budgets/delete-notification.rst,sha256=F44jWTzAIv3MvpfM7oW09JbeYpYtHO8U1aGP7EvqXts,335 +awscli/examples/budgets/delete-subscriber.rst,sha256=7LIulx7LZyTUFzIh7NPLdoOo4XYoY8NI2r-2Dx_U1yc,404 +awscli/examples/budgets/describe-budget.rst,sha256=8-z5qBqCtIGUB3UjMgMXQSRYrtvb8eyXkc0L-qgRO5s,1426 +awscli/examples/budgets/describe-budgets.rst,sha256=KRrNDVvUCfAYNEkrmUKMw3xWFk86lPO8qk8pYA9I3Lg,1598 +awscli/examples/budgets/describe-notifications-for-budget.rst,sha256=yplhWtYQA6xwbrPecVTEzMwBgLe2b82SowwOwDs9k-0,440 +awscli/examples/budgets/describe-subscribers-for-notification.rst,sha256=hQkvXR5XLZZG2vtJAtW5nwHlt7WJGN2NBzK4ajlMeDk,645 +awscli/examples/budgets/update-budget.rst,sha256=If5dvAM1lxtfE9I3uWhETeiqZJluxHwWsunE4NJW2DA,977 +awscli/examples/budgets/update-notification.rst,sha256=e6wiTUB82awHYdIRxLrQI2HDGi-3T24AI40L2Og5Kpw,486 +awscli/examples/budgets/update-subscriber.rst,sha256=9AIzBSWWdu3dTcRUOMMzCrB-nOzM23PTuQABFrBbldw,470 +awscli/examples/ce/get-cost-and-usage.rst,sha256=JEve-GVGs-qVQz-PFrnFnIwuVEZ6xKZXxo-tWPsJ7_o,2900 +awscli/examples/ce/get-dimension-values.rst,sha256=aEEwlFYTMNjtIs-u-1GiKvvw-lBCS5L0sD72v_JoiEY,1025 +awscli/examples/ce/get-reservation-coverage.rst,sha256=xUK2Vej9zlcCSOtHdMZo2YciikkJl5VyC3eArQy-s0U,1369 +awscli/examples/ce/get-reservation-purchase-recommendation.rst,sha256=95tXko8oaZdrCcSbASYhqn26yBBfa4mOztB4XaHLNA4,728 +awscli/examples/ce/get-reservation-utilization.rst,sha256=2MAHKSoUg07C1BmD3RysxGrAP9AyjRU4AnB3JDPeJ0E,1014 +awscli/examples/ce/get-tags.rst,sha256=yk1hVDS_oZGE7DtAgXEJ_capnMmP2phbwEXZMaNYogs,428 +awscli/examples/chime/associate-phone-number-with-user.rst,sha256=qsPHmcg_QTFMKz31ZJp-4mCppPsZi2KANjklasswgrw,567 +awscli/examples/chime/associate-signin-delegate-groups-with-account.rst,sha256=c4s0eyyHSSwfTouOmSQcD3G_x616X7H6rHLaHZLhTUM,592 +awscli/examples/chime/batch-create-room-membership.rst,sha256=Grxc7zGgCul71_S09t7NVOlBpZbSWGZ9sIkHo6MlDwA,1218 +awscli/examples/chime/batch-delete-phone-number.rst,sha256=MddXg2GspzslpjS8pmNaPD9UaHlDDXSkQqS3y--3fVk,496 +awscli/examples/chime/batch-suspend-user.rst,sha256=b9pcLBO5zagrJy2wSQE8rs1kKp5fmwDsaMf6TWjG3v8,430 +awscli/examples/chime/batch-unsuspend-user.rst,sha256=iG0xKXB59laHKMqe4BjcrF3MoYAOtI6dZCWc0P8UwGc,462 +awscli/examples/chime/batch-update-phone-number.rst,sha256=q-FtfAvTE_mCkpr6ExP0u_TwoY93QsRdAI_VEMIrUZo,1051 +awscli/examples/chime/batch-update-user.rst,sha256=IOI-Fk3RaUD_9ILNuPGthxZ08D-bBv_gRC56_ELeHNc,498 +awscli/examples/chime/create-account.rst,sha256=XwyS12QJwQmkq_ACgCzl70nrVzMjKIRgS2yGA2oVvxU,950 +awscli/examples/chime/create-bot.rst,sha256=kmkXM_vMmjAchCmA9wLeJzCUs5TPq7zvdIZ-LE2lUbA,993 +awscli/examples/chime/create-phone-number-order.rst,sha256=zai9ksGt0FaWadro2bgQmzhFzZwgm6s_Ng0YDozPHtI,1266 +awscli/examples/chime/create-room-membership.rst,sha256=D2VADrjR4nt6hHNjwr60vQkFhHoAxvxxio5rHI-TU9I,1095 +awscli/examples/chime/create-room.rst,sha256=6Ehxp2Z0ziIMHGUIeP4L3DXd-iHd7SXN16VDOX1IIqM,793 +awscli/examples/chime/create-user.rst,sha256=JfdckzznVhVep5ce9539LjuRSi5jWWi2NOFEgsOzsQk,1042 +awscli/examples/chime/delete-account.rst,sha256=jJeR_r9TRcPTWUW3n9UyBCKg3zPIZ0vKg61YekhbJEU,381 +awscli/examples/chime/delete-phone-number.rst,sha256=FmGtc5fAVBKMwTzX8RXwBKbr5Zoi-LDeUd2wzR0NkgE,416 +awscli/examples/chime/delete-room-membership.rst,sha256=Kt8Ae_mxcyE_UCJLraUTSuRCYpTT5IidPHr_jVQdlvc,560 +awscli/examples/chime/delete-room.rst,sha256=oGXAbAHnliOtfZRO6_BK4ltPIX_P7bqslj_qYlAAff0,469 +awscli/examples/chime/disassociate-phone-number-from-user.rst,sha256=IHxBPY2ZkvR1fiy3JPt-HWHWzSyV110SAK83V3xRSFE,534 +awscli/examples/chime/disassociate-signin-delegate-groups-from-account.rst,sha256=5dlfyO8hW9reCUlBWTuy3DVr-ite13JlqpVNNKVC84I,585 +awscli/examples/chime/get-account-settings.rst,sha256=SNmCu4yPskGIMVjRDxe5bY1IfW-qUJOQvSe68zxww_M,557 +awscli/examples/chime/get-account.rst,sha256=MhHqIVZxwGPLdFwDPY-2BIkgvART0HiqDV_CcVOduI4,1026 +awscli/examples/chime/get-bot.rst,sha256=p1SvAH_4TVDFR9n-55P_wl8DRgzlUC6tGU-HIZ_RMMk,933 +awscli/examples/chime/get-global-settings.rst,sha256=3eYCu-DWDYz1tgslIILiOXUr9oifZbxiSEAMaN2VR0k,631 +awscli/examples/chime/get-phone-number-order.rst,sha256=edPuxV8TsnD69ebWkXKiPSsKCTGSq-mq0s69aKeKkx8,1209 +awscli/examples/chime/get-phone-number-settings.rst,sha256=JdGF7fxIo3lm6KHlFykzc82GuuElK2JyKbzKdl9fwFA,541 +awscli/examples/chime/get-phone-number.rst,sha256=b9Y9pspMhCaJO-JdKL_C1xYxG1YLA9y5VPFQ4fk4V4Y,1323 +awscli/examples/chime/get-room.rst,sha256=EmrysjOkOA1jQsprsT6efnS04PHw6_wj7JjL3Jj4Ap8,820 +awscli/examples/chime/get-user-settings.rst,sha256=t_O-WATsuNZ7BUzlDKR-cmUZoPBd26oEmaE0PAODGxc,640 +awscli/examples/chime/get-user.rst,sha256=aJj268Y08SNaBL5s_cwW8EkezgfzcFZKnPO7gBn5QJE,1107 +awscli/examples/chime/invite-users.rst,sha256=bHohkhhmRZDvAR18kKIHp9o9fcPAdliANNnx1lLr5xU,1010 +awscli/examples/chime/list-accounts.rst,sha256=_EJ-PbVOOMY-HBzIVzt50NjFnEs0Hzs1ckBWjdTZVCY,1689 +awscli/examples/chime/list-bots.rst,sha256=a0GBePK-ydVcN2Sfn6VB1Z4kIEe2k-vuC0FsxX0HEOw,922 +awscli/examples/chime/list-phone-number-orders.rst,sha256=_uBvVL1M64xWZ-OsbQomnqKh9LnePP7pl0urJXQ7f14,2093 +awscli/examples/chime/list-phone-numbers.rst,sha256=vRgnIEaPqSDQBvdWyKiF5MZ0zyf4mtIDu_gvGnkQ17g,2505 +awscli/examples/chime/list-room-memberships.rst,sha256=DQLCzOCIa5jPjv2Pe4BXVfZNik3OQ1Y-fowaVO9HMnA,1712 +awscli/examples/chime/list-rooms.rst,sha256=ctMEjxiBKyQC7k0wee9DLcIKzX7LHw-IK0nMIW9kWyM,899 +awscli/examples/chime/list-users.rst,sha256=Q7mnSD-AJlCbVR4lrHlsQNDCj93j9uNIXispzFyfqcg,2806 +awscli/examples/chime/logout-user.rst,sha256=vpt9SIUzpqKO8-sERCK1i1Lsinq3dJW4MqWNyMhFY18,271 +awscli/examples/chime/regenerate-security-token.rst,sha256=G803gUASkqcfiGljwZVBPsbUx1pBqzK2rj_Arg1nN2g,991 +awscli/examples/chime/reset-personal-pin.rst,sha256=V_sVcDT0LoSQxRJ8NCN_rkMo8oAK-QSL548F04iGucg,1140 +awscli/examples/chime/restore-phone-number.rst,sha256=87GvvutKbyUuzmJq27eIQjGy9Aesir4HznQ34aZ-E5Y,1067 +awscli/examples/chime/search-available-phone-numbers.rst,sha256=gcrHkuhUapN0aWuIpKKksp1C3LsIJyGIAx4WGioYcPM,730 +awscli/examples/chime/update-account-settings.rst,sha256=AcuMeFXh88wUtejAFRI6XtbT6ACiyKkJmMoIlRZOXeY,371 +awscli/examples/chime/update-account.rst,sha256=892UxzwMpKt_RweQ-ovOuSsBPJHWY9sRuNXIfzCIEFk,982 +awscli/examples/chime/update-bot.rst,sha256=MWCb-CWwF7AIgW_GAm1zjWKqo3-3A2NfUPiePPVxVoE,964 +awscli/examples/chime/update-global-settings.rst,sha256=WhXU4nBWznu1FARQa7TjjQzReCtc3qWZJ91z7NDhcqU,592 +awscli/examples/chime/update-phone-number-settings.rst,sha256=XjzLLWbNkqTfhBiWyZ69fZMVGzWrn87dXgd06C-FyeY,456 +awscli/examples/chime/update-phone-number.rst,sha256=TMzRSI88KZzmrbFFeX714ZHJe14gk_IWf9iI12QGkUE,2196 +awscli/examples/chime/update-room-membership.rst,sha256=ovrOiJoGwkcLa5MaYh3VG8hBVYyjKPUJb47hIHaBiZE,1153 +awscli/examples/chime/update-room.rst,sha256=jRPtQ2cRIAS-70KKXxZroeCYw3p8yEa3vspqSFCVUnQ,835 +awscli/examples/chime/update-user-settings.rst,sha256=XlLM2o7v2wnRge5EskeH4hQ0thh8P35qsbgqP3U0cqE,618 +awscli/examples/chime/update-user.rst,sha256=qPuOoid0A5nE0TpSkK5H5FmTDT24ORPg9ixfGa6oBvs,395 +awscli/examples/cloud9/create-environment-ec2.rst,sha256=nrZcKlgF7_yxs0CLsm__F1xIblL0OjyJ53nP8rosgw0,913 +awscli/examples/cloud9/create-environment-membership.rst,sha256=WA0mkqXvuzVjm_UHbxzTCpXjM6_jqjn4gFtrLwKOjxg,612 +awscli/examples/cloud9/delete-environment-membership.rst,sha256=IZ3IorsWXJK0LDUKeiv0i2d8OwRzMjCoX19OFrABORM,370 +awscli/examples/cloud9/delete-environment.rst,sha256=Nen6FEnX1CbIfTCw24dJ-dn6D3mAjm16V9T_vgRPEvc,325 +awscli/examples/cloud9/describe-environment-memberships.rst,sha256=Q8m5czDqEw8K19U7LiycnqkQZ1OR4FF2kX-f4ikAJmE,2248 +awscli/examples/cloud9/describe-environment-status.rst,sha256=sXTYH-RD8vENT4qGQVs_yPrYKVE5WOHdSV96ml4-RuM,353 +awscli/examples/cloud9/describe-environments.rst,sha256=FeXTBAiPgjVKIzJ4FwpnphqkdjJb3-WSxI5ZWOpORpA,1112 +awscli/examples/cloud9/list-environments.rst,sha256=GzpGzdgSaVhPaHMEi0Itt7WiWHYe5ZNZRvgBaPQi-UI,339 +awscli/examples/cloud9/update-environment-membership.rst,sha256=X0BS5QruU1ecBUNGFvlHSZYHZLMHSLWet1XUqQv9lP0,668 +awscli/examples/cloud9/update-environment.rst,sha256=IYyC84MTJsdIMCVovI9tfuIOxPpwk_eya_hkTTamVt0,389 +awscli/examples/cloudcontrol/create-resource.rst,sha256=9CA1WcGE_ZVsMGd9bxhjgRBK9O1RVCraVBPUbli9xjE,933 +awscli/examples/cloudcontrol/delete-resource.rst,sha256=ciZ0SDPXBugW-eGNl9GTVZjmBbtD-3wt_1O8rsn8_lc,827 +awscli/examples/cloudcontrol/get-resource-request-status.rst,sha256=1PZo9_HA0bpFI4HNe_dw3OGTojhbSjJw_oLBTBpCZEI,995 +awscli/examples/cloudcontrol/get-resource.rst,sha256=5BMpzg5-yNx6DdSfCWP27rHNtM4Ru3ym6MDuG3vq8r8,834 +awscli/examples/cloudcontrol/list-resource-requests.rst,sha256=4RDKnlLXblL7ZnzYSrDfXwwekSqdJ8EJBvG_pGU5Hh8,1111 +awscli/examples/cloudcontrol/list-resources.rst,sha256=hOfny2L4EshkHMILYO9RFNZaL9c1-M82MWV_P0kNVB8,829 +awscli/examples/cloudcontrol/update-resource.rst,sha256=xK_BwVa_HJmLFRiiC3n-4B-ATKQIcBMHg3KSgmi-Mso,966 +awscli/examples/cloudformation/_deploy_description.rst,sha256=tKFsU-kBgkYWmZhsyD8dqzdI15X_NGcVkp8h5V_odZ0,392 +awscli/examples/cloudformation/_package_description.rst,sha256=jhuwmVLF27KDHkr5IbCUhSZ9-OLBjKI7zb2nFY5Vlmg,3640 +awscli/examples/cloudformation/activate-type.rst,sha256=lK7ABVXq9IjRunlNx6VhWDIJp53XiZSadgfbzuu6w08,676 +awscli/examples/cloudformation/batch-describe-type-configurations.rst,sha256=ZL59dBVV7gFBhVWcwWAt0lFnvyimZljfoN1BJKpoRCk,1304 +awscli/examples/cloudformation/cancel-update-stack.rst,sha256=iXh30epVbKsksPDXoHLeoFQ5JMksU12FH48oflQ3BYU,217 +awscli/examples/cloudformation/continue-update-rollback.rst,sha256=ZMhu63rYhTlTMBjLu7DuKEMh1MzzF_9t_sKn51BQt1o,276 +awscli/examples/cloudformation/create-change-set.rst,sha256=s1MSdjdw4YCeBQCvhFY1eyG9tqCLbyuZ3m23G_Qp9aY,766 +awscli/examples/cloudformation/create-generated-template.rst,sha256=2jhaIb4QyRzM21BdZXKFZRYRcFIhOBXJOCcHZyX1E98,1722 +awscli/examples/cloudformation/create-stack-instances.rst,sha256=gKIqXy8ulNPwAOeNENLXe1F3O85VNIwFSu5z5NBnbW8,700 +awscli/examples/cloudformation/create-stack-refactor.rst,sha256=3PGDpJ6s78kMrE5cyw_nX_LgZ3-GRJo260rimpX5fVk,658 +awscli/examples/cloudformation/create-stack-set.rst,sha256=82JxJAgETgM66X3ooHugVMZAnwrCn_kH2KwIiPzJZZ4,591 +awscli/examples/cloudformation/create-stack.rst,sha256=humDEb33XPY_9TU6Geu-WOCHZ5Rk9ZZSP0Zj0kkVujA,710 +awscli/examples/cloudformation/deactivate-type.rst,sha256=9k99N_Wv6gah62NGdu0gUoxQT0TLBomSOahneSi-sYw,535 +awscli/examples/cloudformation/delete-change-set.rst,sha256=_m2-Hk5Ut2LcuGucGZyLz-4j_k4rln9jI4Mki4C5_9c,638 +awscli/examples/cloudformation/delete-generated-template.rst,sha256=IqwgnZOJbY-vD5D235t1JRWS4091rs0xNFO2TpNZymU,453 +awscli/examples/cloudformation/delete-stack-instances.rst,sha256=jReVOjh3C2ASdJ_o26uyEwLoBFDDeEbeYIQjHn4dQWQ,548 +awscli/examples/cloudformation/delete-stack-set.rst,sha256=FzjvhUbleFfrfwE0nhvGuLvt7nUFJFBeb2bb6oj0vps,328 +awscli/examples/cloudformation/delete-stack.rst,sha256=eCeyw4KK2kd6KeBnaHuMbFKnv1Ro4MmWfRR1xP_ucuY,203 +awscli/examples/cloudformation/deploy.rst,sha256=ScCk6_Zlkz9zeJYj-eN14Wt0HX_TfpW52mAd32ccYL0,279 +awscli/examples/cloudformation/deregister-type.rst,sha256=7vxUxiDu10RZAB1fLPiBN9a9H4hAZUWwyhap3ExIdjs,583 +awscli/examples/cloudformation/describe-account-limits.rst,sha256=Ok-FBdlfdrjzhRATgKILu6UPY3sgVSCIsChkGZfDR5o,576 +awscli/examples/cloudformation/describe-change-set.rst,sha256=kMIigrByCeO8q1jWMnChs3gB_Kwci2j1ToutRt0YTaA,2363 +awscli/examples/cloudformation/describe-generated-template.rst,sha256=eEk_OEDu-LCVGu2AydCRsaU7S4luwvowmvHnrp6tPck,2391 +awscli/examples/cloudformation/describe-publisher.rst,sha256=N9haVyCFJZeAKjz_SGMe8jrmrjT5qeghzk5OtkF-_b0,751 +awscli/examples/cloudformation/describe-resource-scan.rst,sha256=uYKT2wYhoKuvoyTEnCvBmC0gRSa8d8eRWx2nTl8j7xs,1587 +awscli/examples/cloudformation/describe-stack-drift-detection-status.rst,sha256=_htysZzfqc3UScZfdNeTxIF9uLOsLNzwTib-8m33Pxs,773 +awscli/examples/cloudformation/describe-stack-events.rst,sha256=R653lU52444tdrSqBoIerZWkfnQnmoaCGA2xZzOlb64,1679 +awscli/examples/cloudformation/describe-stack-instance.rst,sha256=qlBqxl0jNTVV7GP4oPt7o1K370tCUHobQCgFt2l4RT4,1304 +awscli/examples/cloudformation/describe-stack-refactor.rst,sha256=mb12wcEF7wGsfJRZT9coa-CU4yZnYAJQ3CFuLW2C67o,886 +awscli/examples/cloudformation/describe-stack-resource-drifts.rst,sha256=3JMANAk8SSixakVzs4ze3pXSV43Uq9F0OK2UCagt_yc,2337 +awscli/examples/cloudformation/describe-stack-resource.rst,sha256=4BKJOYcb5RGzVE6f-_UdsZTc0feheQ3mdFORRGiVtm0,958 +awscli/examples/cloudformation/describe-stack-resources.rst,sha256=KOzwcdupPsXqgTBGwD0x5NrNZXjTVQ7FKmwBTr4nXJw,2130 +awscli/examples/cloudformation/describe-stack-set-operation.rst,sha256=zYhC_MQR-QlxfhpiwtTi7OGxUI9WUtTNBsMtno24eHo,1270 +awscli/examples/cloudformation/describe-stack-set.rst,sha256=EWYL8pZnxPNJ_gRgQt2UT8HJ9Bl-KAmPSv7NRyZu_sM,1072 +awscli/examples/cloudformation/describe-stacks.rst,sha256=DI08BbGC3dW5iNevl840wiB0t5ceUCm7HLIpGYDqaUA,1439 +awscli/examples/cloudformation/describe-type-registration.rst,sha256=G7lE4ek1-sfjgJ2ZOTNPhPMD_KZGzsEdww3rblaB_nA,878 +awscli/examples/cloudformation/describe-type.rst,sha256=wZkG-pitlpsB9o4mB_gN-nlVLUpboZ56HHh9pahmDyA,1050 +awscli/examples/cloudformation/detect-stack-drift.rst,sha256=Hy953Fw3lNlI1O6U--jDuHjtGPk-FIPsJDLPXIKnZVc,425 +awscli/examples/cloudformation/detect-stack-resource-drift.rst,sha256=Bzs362f8L_96D_A83gSqW6NTR7yhQb5GsJC-Vv2hE8M,2185 +awscli/examples/cloudformation/detect-stack-set-drift.rst,sha256=PhmaeHlQ0VL5MIS4wX9N7Tud3TjtUmi02xBeZkb9xTk,740 +awscli/examples/cloudformation/estimate-template-cost.rst,sha256=jARDzPPwifNOvsqZ5WrIijfl-b9u0-7D0CHglK_ed3Q,419 +awscli/examples/cloudformation/execute-change-set.rst,sha256=Z4hjJef5D-36Y-WX-EGuHCTo3gCr4QbXNT65tOgot3c,567 +awscli/examples/cloudformation/execute-stack-refactor.rst,sha256=YecjIPujSMknQrqXvBUweN92mPJAZuCMPxL7NFCaZvM,498 +awscli/examples/cloudformation/get-stack-policy.rst,sha256=VNHvUj5ZYLkimkjGd1AJpnfbGCtiVtBDhYRf3eGJ3kg,659 +awscli/examples/cloudformation/get-template-summary.rst,sha256=Bob7igmjmuEE7n9EzIARCIyR-2G65PYjc65bCLBnKzY,736 +awscli/examples/cloudformation/get-template.rst,sha256=yN14tJuVP4GVwvo1F29rEgxXDPVe-cqT_V4LXbstlME,1077 +awscli/examples/cloudformation/list-change-sets.rst,sha256=-QK9cyRZwmPq3qo-k5QxdIPDxEQHEfXCGxAaETdDbVg,823 +awscli/examples/cloudformation/list-exports.rst,sha256=liuNfh-_IVfXeT4G-YIaGarC-oMSqaRWyRi8CWmPRlc,1047 +awscli/examples/cloudformation/list-generated-templates.rst,sha256=AJw8hwDMHeHrYCVJeJwl1OqyLZt8eabfJXyH-9cMHO4,1947 +awscli/examples/cloudformation/list-imports.rst,sha256=HhCSy9GjPeO6F5zDAH97HVRxR_8fjx-6jjeAVFzjTpM,365 +awscli/examples/cloudformation/list-resource-scan-related-resources.rst,sha256=DU7kgvahWzrmvNlO1jGUNet26_yVi-KsFuKy5QMlujs,1685 +awscli/examples/cloudformation/list-resource-scan-resources.rst,sha256=e26-wLPHQPU2heMWajhuthFqRSLupWcoOwtpIuqk1Ro,1217 +awscli/examples/cloudformation/list-stack-instances.rst,sha256=2QfOOh9Isc3WBNt-3_5eJ1HQEbExqnv1j29cDnyk0OE,1702 +awscli/examples/cloudformation/list-stack-refactor-actions.rst,sha256=smMezURjUt3T_EFM17ynJbugwJjH73E4yGKKxcrxQ3E,3125 +awscli/examples/cloudformation/list-stack-resources.rst,sha256=489xPd5WXyscePkZBWE_N4B04EeIXgwIrqGJzAfgs5s,1608 +awscli/examples/cloudformation/list-stack-set-operation-results.rst,sha256=sHuGXGjR5fFUCW8GAbaQwfMNjw6-CnooTf1BrULAYA8,1161 +awscli/examples/cloudformation/list-stack-set-operations.rst,sha256=dz-VMVJAcODj7mOfSKLtWCvCGQw_4nLZhPKbxmaYLiE,932 +awscli/examples/cloudformation/list-stack-sets.rst,sha256=mb-8YEimIQgPI8uO2JP86kgChHXwW0Wj4PM0yli8DPI,498 +awscli/examples/cloudformation/list-stacks.rst,sha256=zNU6DBt4c3kXn-PrVDSHLH7TaNoWEVDBv53czxNhThM,843 +awscli/examples/cloudformation/list-type-registrations.rst,sha256=43JSUcXQKO-R0sAVF9mz95zKZS1P_hVpT1Zp5Vfe3bs,751 +awscli/examples/cloudformation/list-type-versions.rst,sha256=BdmOX51DiGSJJmJClzyXOzxNX0mqEO0cbTvdM02ibEQ,593 +awscli/examples/cloudformation/list-types.rst,sha256=i3Xbi8nH6K78poJ_jKXu-D70xt8E0IWbWuftNOm5qZc,1302 +awscli/examples/cloudformation/package.rst,sha256=jn6n7YYWRA_mj1K2u7jFw8bjlgTipXla0dti3HboucA,346 +awscli/examples/cloudformation/publish-type.rst,sha256=9i_4WJZko9xdMeTChCb9ZWyN2fstZeaQIuVWzy-aMRI,692 +awscli/examples/cloudformation/register-publisher.rst,sha256=LarwcBHB_kNIFSjUQeYnpNawr1UzSo_Lg6uqnARG3QA,544 +awscli/examples/cloudformation/register-type.rst,sha256=Jl_qae-LPkZxrwCq1AS8VdL9s0_N97PuAov7kSv3fBg,710 +awscli/examples/cloudformation/set-stack-policy.rst,sha256=qg2j_Thy8QBPZF5cwg7eVsZG1r0sZnNkbeYQVEBMDEs,753 +awscli/examples/cloudformation/set-type-configuration.rst,sha256=0Dsr6B95UggDk-RELazxXLKjn32ahIAohf_mATwUIFg,797 +awscli/examples/cloudformation/set-type-default-version.rst,sha256=bGKsBSd_4e-AwV0KrjxbZoQ89LVoisdkI-uvUwhi0Vw,531 +awscli/examples/cloudformation/signal-resource.rst,sha256=aVK_Su_K4a2FGiWF7p8c5xgQhdgJrGheuUT3HC1313U,397 +awscli/examples/cloudformation/start-resource-scan.rst,sha256=MqkhcR_FR0IBL-er-TCbPbS61DgdchW1GStlJ16z0UY,603 +awscli/examples/cloudformation/stop-stack-set-operation.rst,sha256=OFpCH7qMSCp12B8ubpN-Uydct3eBt4ATYX7B2a7wMPc,346 +awscli/examples/cloudformation/test-type.rst,sha256=KOX0QfTdHi7BIgM1F5fiOLwfruIw5HAJ9aL6U1EhS9g,682 +awscli/examples/cloudformation/update-stack-instances.rst,sha256=1EHdFpVH41a0Bgr5fzMRFMQe0UZOZQwbxN-shHQ2rtM,657 +awscli/examples/cloudformation/update-stack-set.rst,sha256=j0b6Q2kGaE4EXFvRbtExKMA-g6IX6fV_0g045KyhMJM,435 +awscli/examples/cloudformation/update-stack.rst,sha256=NI823hXxLc5glXh8h-aoC5zverg_3MGqerw_gSsREIM,1379 +awscli/examples/cloudformation/update-termination-protection.rst,sha256=GvfCHrYIiLTNJBK2G2jyxjknvvPyKaZsdhrXp60on0I,435 +awscli/examples/cloudformation/validate-template.rst,sha256=-ofrJZ6TQ6dEnuuPoC6Y5oOp-u6bqMMrJ2ab0gnrSIk,813 +awscli/examples/cloudformation/wait/change-set-create-complete.rst,sha256=bAJc4AzjXmSqZZkd522Jg6VQwCqoOId5NkYotYhWRsA,396 +awscli/examples/cloudformation/wait/stack-create-complete.rst,sha256=npkz74txpJ9oR4n70R4ySrGL446WbesnUDJDNOkVZ2w,445 +awscli/examples/cloudformation/wait/stack-delete-complete.rst,sha256=YLiJM9AOfX4RvCC9qTcOUU81itGwJ0Ao5f7iHnX0qDo,432 +awscli/examples/cloudformation/wait/stack-exists.rst,sha256=yr_9G0r_It5_0qnPTap8wsyPmcLmwZZztoyaUTGZnFw,394 +awscli/examples/cloudformation/wait/stack-import-complete.rst,sha256=dbuv-ySCy5E6LVAUWyjG6kQfpgLnSzrmL5LXoDR-zaM,507 +awscli/examples/cloudformation/wait/stack-rollback-complete.rst,sha256=-vUdi_01Ue8V3BTeLFeJLNwNfnbd-74b5qicKrmNQ7E,466 +awscli/examples/cloudformation/wait/stack-update-complete.rst,sha256=9trZ3GNvEcaSOmJFHpn2-bWRHxJ8z8sOLFtNezsxnjw,432 +awscli/examples/cloudformation/wait/type-registration-complete.rst,sha256=neyXSKJ9rxmte2xQIODDJbN95_IVuT2p7NjRGU0uP3M,396 +awscli/examples/cloudfront/associate-distribution-tenant-web-acl.rst,sha256=wAHULuofsUI7je7rtHTdfnVeUHGLiXLH9I1W3qgV5_Q,928 +awscli/examples/cloudfront/associate-distribution-web-acl.rst,sha256=BUwB7HfxLhpAq2B4tsV9vOqepaZ_bgQJcTyBBCEEMns,836 +awscli/examples/cloudfront/create-cloud-front-origin-access-identity.rst,sha256=xXR3yMitEp1A8cDJKnzUEppzKFjsvMUTuLJrz2GCJdk,1450 +awscli/examples/cloudfront/create-connection-group.rst,sha256=Io_9TXItxaIV-b5EmlwDGQWiqYd42Gl1xWOeKNxXUzs,1570 +awscli/examples/cloudfront/create-distribution-tenant.rst,sha256=z61cAIJiq4wjRmRRImOMZP1lUmhAcQgMUPXwK_z9CRo,9567 +awscli/examples/cloudfront/create-distribution-with-tags.rst,sha256=plp3UVf9COjVHRDiZ7nMfmG5vduhk4OXcYe61dYW_qk,8537 +awscli/examples/cloudfront/create-distribution.rst,sha256=1Lqbdf-1akNc2bZTwvJCDgrh6R2yUfgtUwRIXetC4Hg,23508 +awscli/examples/cloudfront/create-field-level-encryption-config.rst,sha256=3VjfGgPdM2ulTUobAi3qT3ICEL2-swYcRta415QUfHA,2970 +awscli/examples/cloudfront/create-field-level-encryption-profile.rst,sha256=XLGMPFo2mXsf-mP9YPkAxuG6zj0Tty4FIkK7-rOTapQ,2647 +awscli/examples/cloudfront/create-invalidation-for-distribution-tenant.rst,sha256=C3FhxAB9iPfPH0AjUO_WBwIxSsqanr7-E0QtT5G03Q4,1302 +awscli/examples/cloudfront/create-invalidation.rst,sha256=5KhlJv6IGCVL1B4-HYbEPHO4lMOFFJ5EmFqn9Qq0Pqk,2487 +awscli/examples/cloudfront/create-public-key.rst,sha256=YYXELqy7QS2qg4qVdbEH8ZelUM5-m0X9hl1UTNrARkY,2291 +awscli/examples/cloudfront/delete-cloud-front-origin-access-identity.rst,sha256=9RitPGYY-3oJ-4p50yrkfgdGCgGKQeln3J1NMtcYj1Y,923 +awscli/examples/cloudfront/delete-connection-group.rst,sha256=X8l7pfn0Ll_8S0liO-35Fc7RW3iiib93h7B6_enwItQ,635 +awscli/examples/cloudfront/delete-distribution-tenant.rst,sha256=suiEdVoXhquF0qN06Bdu6KA0XLmzb7EvxmrtTDE5qlA,618 +awscli/examples/cloudfront/delete-distribution.rst,sha256=blxn_6JlXvcs4jyUQTeKMx6G0Uu-eGRPeK2mhED3QUc,842 +awscli/examples/cloudfront/delete-field-level-encryption-config.rst,sha256=-xYeQIdy2znvHjCiUpMicJ01yPYJXO3QAxWq99TrTro,911 +awscli/examples/cloudfront/delete-field-level-encryption-profile.rst,sha256=p3SCKqDOH5RWmrAFYwcFTYbar0IU3seh2HMIkDIVM6k,921 +awscli/examples/cloudfront/delete-public-key.rst,sha256=_eLupAqfecf8sj8JVg_-6c8crwNIDkJfvfKCtwxG6dg,685 +awscli/examples/cloudfront/disassociate-distribution-tenant-web-acl.rst,sha256=kWTTm-rs9gu-Us6qnk8Q9pF0K_r3LE0kCUEq3A7i5go,668 +awscli/examples/cloudfront/disassociate-distribution-web-acl.rst,sha256=L1w7-wfTDEzPtgjk0iiCRJq6HbrGS4sA83LWLQKkAvU,647 +awscli/examples/cloudfront/get-cloud-front-origin-access-identity-config.rst,sha256=PkHzPFcehOdVY1t4UWejot_5A9icT38vG1kUxOCCnv4,742 +awscli/examples/cloudfront/get-cloud-front-origin-access-identity.rst,sha256=LKts8sKCtINCaLYKL60ngXvqQV7tUGhAeZCVcOq-Itg,949 +awscli/examples/cloudfront/get-connection-group-by-routing-endpoint.rst,sha256=YiIjqsdM1UY5s-7r_Sx4VUISCUP4qfcSFHKlvxbYWXQ,1166 +awscli/examples/cloudfront/get-connection-group.rst,sha256=Qjl2dqWbAFbJ6gywvSkW2Hwk7GMrbLBfO-X3BdR9iYg,1097 +awscli/examples/cloudfront/get-distribution-config.rst,sha256=yikeHqoDT_WpgFwMrWkIXO2jrLqiGKgOjCpRHa5Ctfw,3740 +awscli/examples/cloudfront/get-distribution-tenant-by-domain.rst,sha256=PNOYmejVCBzmmweTxXa3PKB-0ejSpLb-xfQzS91vVCg,1470 +awscli/examples/cloudfront/get-distribution-tenant.rst,sha256=6Rj_dGqsscyDFmFDeREXKJh0inDaCPo7Cx-fOqJCpyo,1285 +awscli/examples/cloudfront/get-distribution.rst,sha256=GWTcGqcqeqzxbMqTLyh92VF1h0GrOCzMsWrZ7FdPF8s,4592 +awscli/examples/cloudfront/get-field-level-encryption-config.rst,sha256=d57gCCRUTiaWcKfbN7XmSxQduo1iSp_adHrJLLkstio,1247 +awscli/examples/cloudfront/get-field-level-encryption-profile-config.rst,sha256=sk2vb55mvompgpNbkE2KOzEBDsBK5PskVeMy8HCmmlo,1075 +awscli/examples/cloudfront/get-field-level-encryption-profile.rst,sha256=_WUzOSdxtuCFu-vBUD2IxTDRGHV9KCcC1ALczpso3dM,1265 +awscli/examples/cloudfront/get-field-level-encryption.rst,sha256=dVgFI7YJfCGh7WejGLkcb_94l1jTG958wkEvrWq7pzw,1446 +awscli/examples/cloudfront/get-invalidation-for-distribution-tenant.rst,sha256=yKeYZGIWCAniOPiYWi2SI8FJ8s8ulm1f4Ghm45AhbjU,1141 +awscli/examples/cloudfront/get-invalidation.rst,sha256=JuRTzp8_ymkGely7bJxFDx6z4oqjmX0MaCNelj0bhXk,803 +awscli/examples/cloudfront/get-managed-certificate-details.rst,sha256=x1NatXCbikggS564yTuUSnMnzNZso1qV4K81j6TLiZs,1235 +awscli/examples/cloudfront/get-public-key-config.rst,sha256=ImyRk5F_GnlsceBlFqLM2splAoeoU0xPuLnyctLAIJc,1089 +awscli/examples/cloudfront/get-public-key.rst,sha256=q_IpEyGc3Sa9bJBjt-8wmjej_0dwZ9ow10K1AeC_Zac,1200 +awscli/examples/cloudfront/list-cloud-front-origin-access-identities.rst,sha256=P-B3-568n7uZ7RsuEFRu117VXUAtw3HnbpAmmMtKSXI,1052 +awscli/examples/cloudfront/list-connection-groups.rst,sha256=RF_Nih05JkFbBXRyhYwZDOh21D7558Tpz_8QpSG7m40,1710 +awscli/examples/cloudfront/list-distribution-tenants-by-customization.rst,sha256=ui9VwBFtwevZMaa_auJsVKxcI_wLkM28JyJ8eiX19-I,2025 +awscli/examples/cloudfront/list-distribution-tenants.rst,sha256=lRZZMewidwvntdwNnr3TFUjwL3pac7pNisTVtGVBbXI,3847 +awscli/examples/cloudfront/list-distributions-by-connection-mode.rst,sha256=M_UkYpzW1SH0c5tt4K1g9xcWQmQR9OjCZZpIRIpGoI4,5193 +awscli/examples/cloudfront/list-distributions.rst,sha256=_S2l1k6a0eyWWmIgzQ_UHW3Yh1msBCqa6_JhcARc8oY,4453 +awscli/examples/cloudfront/list-domain-conflicts.rst,sha256=1vZIC2p_h3742snD4L6fbhhUNbVKSoRGH1i4LIkHk_4,890 +awscli/examples/cloudfront/list-field-level-encryption-configs.rst,sha256=iGoBehGRLlJHj7yHsqhHaAG3rZiNIVrv3jw1eb0WiY4,1502 +awscli/examples/cloudfront/list-field-level-encryption-profiles.rst,sha256=SP4nxMUoymUbjby4avulFRl36-TmWsb2Sh00Tw2IY7k,2210 +awscli/examples/cloudfront/list-invalidations-for-distribution-tenant.rst,sha256=t-Ua7b9FFYC2pILNc3fyL_LATwKC4SaWGW0SUYS5I8s,828 +awscli/examples/cloudfront/list-invalidations.rst,sha256=KZEXoEZASJIQwVwN4u0eoOX1fB5lytQcbhQFrUIRbLQ,632 +awscli/examples/cloudfront/list-public-keys.rst,sha256=SMpJZWL04NcGeQJ8jcGTDtB5zj1tyTjkRzmTi2Hzizk,1785 +awscli/examples/cloudfront/list-tags-for-resource.rst,sha256=Z8OejOAHaZ2waXCJvDRnkZN5Q4uZjngIHbapd8Jvl-I,698 +awscli/examples/cloudfront/sign.rst,sha256=Cm89W61XMR4oZw86bt3k_TB5hVa-8ntgC-EYlfNGm8k,1230 +awscli/examples/cloudfront/tag-resource.rst,sha256=8XOFh0wXIfEg6bQa6Qvp3I5ViyOmAhZlRZs_s9AJi50,928 +awscli/examples/cloudfront/untag-resource.rst,sha256=q1vB4EAu2vEvburER-cfZD5tuXInxPsuIDMQ8JdfWeA,825 +awscli/examples/cloudfront/update-cloud-front-origin-access-identity.rst,sha256=De6drOcx16NZNJm1e26cwpDYT9v-XJ8AclaNOPXVdwI,2112 +awscli/examples/cloudfront/update-connection-group.rst,sha256=eDvljL54IzCCigu3p36va3matasbrsnvaiwbbR3CX-4,1183 +awscli/examples/cloudfront/update-distribution-tenant.rst,sha256=vfuwdeJGM5MMJr0w7p47mEjGZ5i7VvKEyOZcRSWRBwE,2542 +awscli/examples/cloudfront/update-distribution.rst,sha256=Ptl7AkEM6MBAIfBh5RskUv_Y_R4OpXkPPQD_eLs9mp0,13161 +awscli/examples/cloudfront/update-domain-association.rst,sha256=15HJ0I96Eq3HcMN0gXWjOdEt9QjOO7aVyZStJbNYBMU,766 +awscli/examples/cloudfront/update-field-level-encryption-config.rst,sha256=7_4Pg2gCpQYk1aVwKKTNx5loTaeus7GtWPZWegXQe2o,3039 +awscli/examples/cloudfront/update-field-level-encryption-profile.rst,sha256=1vjIWsxyNZECRHGzaoqzyckLRERyoGsLxsse8aUqX0E,2990 +awscli/examples/cloudfront/verify-dns-configuration.rst,sha256=vumlMFF872ZhdxhLb-LYiFdM801hm6MDOSe7iRLuPds,694 +awscli/examples/cloudsearchdomain/upload-documents.rst,sha256=SD6lp4cgtsvBZnVYqHbLT9_2UpQnkb3Wwrq6OPbsfmg,375 +awscli/examples/cloudtrail/add-tags.rst,sha256=uEjK6YbIm0TmVEemUy7nJ15XcoFMU4ATLVaP7hdE-OA,244 +awscli/examples/cloudtrail/create-subscription.rst,sha256=X7O_PwCOqKfaa8mAq7uIie9HbMpNtIrAz7yP8g6F5vA,1257 +awscli/examples/cloudtrail/create-trail.rst,sha256=ZPFG3vSyOMCF9a6TPe6TIeQ_zinATBwM0YiypLCdWYE,578 +awscli/examples/cloudtrail/delete-trail.rst,sha256=U-PSaOr6D1Ykk6QkNxwsbbKPmSepnZMJW3mi6JdJM3s,149 +awscli/examples/cloudtrail/describe-trails.rst,sha256=_vQUgDovnieVkLP6iHlu-E9qfyP031_t7IWUowDi36o,1470 +awscli/examples/cloudtrail/get-event-selectors.rst,sha256=TlPmSt40_7NLMyXZkxjBV84_MxjVPk2E61LL43Vp8lY,451 +awscli/examples/cloudtrail/get-trail-status.rst,sha256=emOlulnkOV-uDbxD8ZaWGuTjkoVQgT5b031F8APtgz8,825 +awscli/examples/cloudtrail/list-public-keys.rst,sha256=6dFGbLyqIc6bWkjBEF2KppCHSz6RpKM3mDJOgKVWptI,890 +awscli/examples/cloudtrail/list-tags.rst,sha256=G_FuTlHq5X79IHMAIUdN4uJJu29xM1zwErnYU1bi9k0,953 +awscli/examples/cloudtrail/lookup-events.rst,sha256=kD7xPeoOn2R0EgZ-SFKT_GYlB0lMrkimSNIay1JxQbA,1705 +awscli/examples/cloudtrail/put-event-selectors.rst,sha256=MMFtFA_g7sJ5PSBa_yr5wB4yULeA1vm_mzwf4zUkstk,9622 +awscli/examples/cloudtrail/remove-tags.rst,sha256=baDXOQKHf9H0x0YxDR_EdrcIEU5HTVDUxQkd75LNVyA,252 +awscli/examples/cloudtrail/start-logging.rst,sha256=aRx6ewSe_X3fFkBFKb8ilyjBclJd4fjhlkjGS4LiKDE,159 +awscli/examples/cloudtrail/stop-logging.rst,sha256=5X4FWOdeN6pg7yN4pHw4R3oZngLs2QuML3Aq7Du4idY,153 +awscli/examples/cloudtrail/update-subscription.rst,sha256=7drl57WjTkR4fNXTNka9dfWOifyGzQl_Tzx5V3DigXE,1135 +awscli/examples/cloudtrail/update-trail.rst,sha256=Yg8f44lFqPaUqQC6cu_t8TilmX4Ut99F_KwWWWHhlU4,529 +awscli/examples/cloudtrail/validate-logs.rst,sha256=s-FpQPivasuD8oXopgbDcMXErMBoT6VVaqYTRBBPVQw,583 +awscli/examples/cloudwatch/delete-alarms.rst,sha256=BKs1LQkjwJ5NsXMvyKqLSwmewY4PPu8XkEWHxOgAskY,254 +awscli/examples/cloudwatch/delete-anomaly-detector.rst,sha256=WlTXIEpQdhKJFkA3HyDT9kP9eM0WOw7SycACDQvHaOw,578 +awscli/examples/cloudwatch/delete-dashboards.rst,sha256=DDw207V0PODPBp-I3DdoGhE2HEpHu4xYg7-MAb7Bz60,488 +awscli/examples/cloudwatch/delete-insight-rules.rst,sha256=7G1GekO4s0ZuC7J6uWVR5wMw8rnXjrBJ2g2X5FEp5kM,541 +awscli/examples/cloudwatch/delete-metric-stream.rst,sha256=0Ip3Re-Ize3iH1oy4ML15NOB4t3OWqjmvGO6CGgl71k,470 +awscli/examples/cloudwatch/describe-alarm-history.rst,sha256=nDAXGrqpi628a9-qkeNejUARZzP5hQWY60hCt1pHpds,1898 +awscli/examples/cloudwatch/describe-alarms-for-metric.rst,sha256=p-2dFjgRRhI2UaxuL5jyPM5tmq186SWRPRm3DvaHT8I,3562 +awscli/examples/cloudwatch/describe-alarms.rst,sha256=Xx62GZDNqLCWMqmwpfcoyFN384sD9D_TVxGtoD9s0u8,1751 +awscli/examples/cloudwatch/describe-anomaly-detectors.rst,sha256=Mb7qInil-SxlxqyKrzchaw52XOgBgn6A0yq29oNqWjk,2143 +awscli/examples/cloudwatch/describe-insight-rules.rst,sha256=-Ek0n68WWSBeQqX4irGx26B8xCMcp4XqYCngKaC3Qww,1591 +awscli/examples/cloudwatch/disable-alarm-actions.rst,sha256=zKpiELbmWk7HBvpusZYj1Hltzrl3N-0U0DhPWnS3eVE,270 +awscli/examples/cloudwatch/disable-insight-rules.rst,sha256=6f-NLto_A5-MX9sieCJLdyPyebgGPALAtsCy-w0uOCo,543 +awscli/examples/cloudwatch/enable-alarm-actions.rst,sha256=xcyA_t0kcw-eVVkLpdZiuicKwqW84sw4NTrN5sJIl8M,270 +awscli/examples/cloudwatch/enable-insight-rules.rst,sha256=CSgO6kZ18Q1LEaMmunfNHLPZ-g0UWEEAsf6psUAp-dQ,539 +awscli/examples/cloudwatch/get-dashboard.rst,sha256=UOdhUB0-39Y5bb90PuqGNTQifqjZLFsx7dTLD-CRlYw,894 +awscli/examples/cloudwatch/get-insight-rule-report.rst,sha256=JIFp8P5fQeSFwaBI-JJ_g5zHUxNkUcIr9Dy4X_LFdmk,1222 +awscli/examples/cloudwatch/get-metric-data.rst,sha256=VNu4aMEQ_HB6PF5EubzOCD8phN3xtNiSFD_PVywQpPE,3349 +awscli/examples/cloudwatch/get-metric-statistics.rst,sha256=2eW5dmXky_oYy7bgJKFyjfZ0_wDhvOsAmA3D1igPteg,4916 +awscli/examples/cloudwatch/get-metric-stream.rst,sha256=si8zJ0jnNcnu3xl8oaxbsVEeBOZC5-uWTvJGJ1ixIII,1059 +awscli/examples/cloudwatch/get-metric-widget-image.rst,sha256=PEC0-bkqlir2L8ilPLrTExKOklsv9NVtLWrBAGB9Tjc,545 +awscli/examples/cloudwatch/list-dashboards.rst,sha256=3GsC1-KNyZQkGgPP9y7JAznidHMj8p3v3XBblCb0T9w,939 +awscli/examples/cloudwatch/list-metric-streams.rst,sha256=oX4-OwQ8Gy5b_35DUPMGW3kaLKnYSBE-GkiUONuVWrA,938 +awscli/examples/cloudwatch/list-metrics.rst,sha256=OEtHygb7cFJKBa9B73FKLTM6Bwi7VSzt9tmJIdIJOds,2692 +awscli/examples/cloudwatch/list-tags-for-resource.rst,sha256=oIoy7Nq7Bu0NsVrwldhANOpNQkT1P1LT0ZBNYnopIYk,750 +awscli/examples/cloudwatch/put-anomaly-detector.rst,sha256=-1yQn3VKximNkbIwpp5A6oPn1h0LsT7e8tBF8FI1bts,528 +awscli/examples/cloudwatch/put-composite-alarm.rst,sha256=bfwlpImHP_SS1gCIeaW-GN2xJ6JEnwX9GLI0WPXo9jM,642 +awscli/examples/cloudwatch/put-dashboard.rst,sha256=SQHxZQiRb_2UjoLa1fKTKFWox1uXAqoyTMxlEebgK1o,711 +awscli/examples/cloudwatch/put-insight-rule.rst,sha256=eYjGZ9NH3gkkPUow_w-BqI2nA43YaxQTfVeN-ug0mDc,1080 +awscli/examples/cloudwatch/put-metric-alarm.rst,sha256=6VnpT0S0xIxdEO59HB4kPqXYUmmheOkWjWrrzQktjPQ,1412 +awscli/examples/cloudwatch/put-metric-data.rst,sha256=bLFC5gwHvntIXiGv0LFhRaEd7jC27sHqeWzl3cVtMgA,1126 +awscli/examples/cloudwatch/put-metric-stream.rst,sha256=DLQNw04DyuQxAwIcsYwP0O6QlHq1xGorGmXKZWlBxYw,842 +awscli/examples/cloudwatch/set-alarm-state.rst,sha256=rDkHfPCup5cx4j37z-Y2dF4xSl8jsbS07EYo0WdP5mY,401 +awscli/examples/cloudwatch/start-metric-streams.rst,sha256=F9ViY2cx46Y0KDSTO84q-LrL3A4uakis3b0IxICCPw8,462 +awscli/examples/cloudwatch/stop-metric-streams.rst,sha256=No0y7QeLnuKv9fT976kDgL-aLE01mNAevVxi2wjOwXE,458 +awscli/examples/cloudwatch/tag-resource.rst,sha256=Zwv6LHMNEcoU1c3cs-mw1aJzWvm8yNDiejr6r8sM7rI,584 +awscli/examples/cloudwatch/untag-resource.rst,sha256=m6mYf5jiqnnZSnmx5Ak3Mb0nTgzcO0fhpuw9baeC2A4,564 +awscli/examples/cloudwatch/wait/alarm-exists.rst,sha256=LaDbfk6p3-Dt-ZR1RXC1liMmHOiPD8Q77au_4OBsJfY,277 +awscli/examples/cloudwatch/wait/composite-alarm-exists.rst,sha256=_u-DynBA2deK8AA7yUMxex1Qvpik1BPSBLfy_wfVBDM,345 +awscli/examples/codeartifact/associate-external-connection.rst,sha256=X3ZzxvsXOBiBOF3ltcu730BCU3o7TplaAf8NZriuEbg,1107 +awscli/examples/codeartifact/copy-package-versions.rst,sha256=FJJIGEg8BsrtZTvofwzC_xVVcsIh_4YITw449mDsBq0,1053 +awscli/examples/codeartifact/create-domain.rst,sha256=9WQbaFrHUF-W4900jdgDZ3slNDZsSQkTe4H4FKuodsI,805 +awscli/examples/codeartifact/create-repository.rst,sha256=7NQ4hAga0KX_w2PL6NdhQzH5RtC9NAMl7qdO_PXONdE,946 +awscli/examples/codeartifact/delete-domain-permissions-policy.rst,sha256=y5pxjQeEQowlADNN2VrDAOEN8DAaWKMtO73FVSKzDuE,1081 +awscli/examples/codeartifact/delete-domain.rst,sha256=1oftUqZU-kKQXdE7-DyuxNyY1Yb1oRDuE4rYpRj0Hf4,810 +awscli/examples/codeartifact/delete-package-versions.rst,sha256=Rec6Mj8tDv_ovqUQYLrl5wli8LMHQ4jd3DBwuaB-HCw,738 +awscli/examples/codeartifact/delete-repository-permissions-policy.rst,sha256=CpS9TEUDPyJxcV_RMHa7k-Z3o2cpQOyf8n85GxiZV0k,1342 +awscli/examples/codeartifact/delete-repository.rst,sha256=ahxVpZPMmCSj7Pflvt-h6TSJ6AFPtuZUdORK2Lltuu0,861 +awscli/examples/codeartifact/describe-domain.rst,sha256=KRp_sNNC4U969EzoDyNND22wRxGXiVeDj6Yiz9gEgpQ,930 +awscli/examples/codeartifact/describe-repository.rst,sha256=NUNYj2heacaHI70mWMA7b6pNoYN38TfM33cxe_HdZQY,874 +awscli/examples/codeartifact/disassociate-external-connection.rst,sha256=SMmSnGFB2R7BAqiDW3tA45pzhiYNgJf8RVXO_cNtc3A,961 +awscli/examples/codeartifact/dispose-package-versions.rst,sha256=rhWfPOMdSUQa_ROqUjH3URRD4YvF8tRTX6LTyqLX0aY,817 +awscli/examples/codeartifact/get-authorization-token.rst,sha256=XPTuLwmMNAnuzC-cAAzUO6JE9MIsMzdHbp6CwjgnAQA,611 +awscli/examples/codeartifact/get-domain-permissions-policy.rst,sha256=MpUitgWZShT5V38KhTnbGVAIJ037yUBPFYdRnWQLYYw,1072 +awscli/examples/codeartifact/get-package-version-asset.rst,sha256=6k_HeTEI6YBC_4e6zTlV-5dnZ-dIJyXGDl4RXJtewRA,897 +awscli/examples/codeartifact/get-package-version-readme.rst,sha256=f6OsjsLBMu1wTaHwbNjJqvJvUrDDRB4jYVXgC43kOR4,893 +awscli/examples/codeartifact/get-repository-endpoint.rst,sha256=om0qqlC4WKwhHEwjEGSn1jL6Vk_03ByVyw12DcPuk2w,586 +awscli/examples/codeartifact/get-repository-permissions-policy.rst,sha256=pISgfVwjCR7wwfPbrFZZg__9BtBD6t-9o7k58_7PnaM,1344 +awscli/examples/codeartifact/list-domains.rst,sha256=4mPi9xABJOg6kmv9eWbxPw2b9SzJA9ikCg9UKLW39w4,911 +awscli/examples/codeartifact/list-package-version-assets.rst,sha256=-yASnhrK9nd06QtmPg6K-5FSdTj7YCS3CzZbktHFgQY,1296 +awscli/examples/codeartifact/list-package-version-dependencies.rst,sha256=F_v4TGauKKFEUWgpZKHLexWanH7sV_zzYDv3S6sdk_k,1221 +awscli/examples/codeartifact/list-package-versions.rst,sha256=ELf5ScT1iVnzBcEpaEzWXoLaR3tD5jBbANAcV0EWFdI,1488 +awscli/examples/codeartifact/list-packages.rst,sha256=_pg1P9X7ZbvbQLPNcJ13lyWn6KOIGyItfuYgU0L3Ln4,683 +awscli/examples/codeartifact/list-repositories-in-domain.rst,sha256=vN6dO0lhDhIvfQnrXAmC-4z0HQQOfgx-0vV_LqWJ9rI,1210 +awscli/examples/codeartifact/list-repositories.rst,sha256=AdXRQ-dcqBRWFJs8KYBlyTOenAGD0TrSajcRHQ7rr1c,1550 +awscli/examples/codeartifact/login.rst,sha256=o9TV0iGRbN7iZPqZGgVUB15oSYliZvDMrIgbZkWvhQQ,727 +awscli/examples/codeartifact/put-domain-permissions-policy.rst,sha256=R8s1fu9lPO9VWNrNGx7T9PDNQCV_FNDD5nKiKOYoqC0,796 +awscli/examples/codeartifact/put-repository-permissions-policy.rst,sha256=TlK3YzKX3XQNZebE7sgkExZXtYep6Jj6iAdV5e_YadU,847 +awscli/examples/codeartifact/update-package-versions-status.rst,sha256=TCpIR5LZtTEO0KxNXCmrQsJqrHLXdgYvZg3PCob2qek,860 +awscli/examples/codeartifact/update-repository.rst,sha256=G-2uCyEcxabePzVqk7rJ9osFko780qEGX4sxXrNjo6s,987 +awscli/examples/codebuild/batch-delete-builds.rst,sha256=B19uAUnVXyYibVhVCE_sfUmTZAzh3FMggzDtMIM4jMI,917 +awscli/examples/codebuild/batch-get-build-batches.rst,sha256=15nPISGaqMZTVv51icDTOOpogEnhinqa7TvSkCgi5-U,8104 +awscli/examples/codebuild/batch-get-builds.rst,sha256=cPly-daoNvwh0gjjn00dytKf6ouq8Ah-zEMLcsHuP44,15882 +awscli/examples/codebuild/batch-get-projects.rst,sha256=aXLtevm_-A4kWDcjUyMGHrq2KGVsvGP4vJO139HOvwc,4380 +awscli/examples/codebuild/batch-get-report-groups.rst,sha256=MvNpM_PBcRAAai7j_Gz2BMfCqwH5eBySMsE1yNFjnik,1078 +awscli/examples/codebuild/batch-get-reports.rst,sha256=J124yzci4tFt01iI4eC2r8wy_Odr3kJ-xLdgGjOALBU,2863 +awscli/examples/codebuild/create-project.rst,sha256=gdcgNMusuXqG-1xhi7j9rfLzQqE4n8Qh8urf_ZuVwwY,4564 +awscli/examples/codebuild/create-report-group.rst,sha256=XRlMZ9gmG9UxFfkNv3vVy-NZhMrLZ0kZfaS_hyY1U-M,1434 +awscli/examples/codebuild/create-webhook.rst,sha256=XKkmAyoQjQZVQG25o3YHjLlo4VaeDttLkbMbfhGs2iI,3016 +awscli/examples/codebuild/delete-build-batch.rst,sha256=XkpYXCSyaX4TXuKTKV6whtck4s6d0YGRDKMjVEBL6jA,870 +awscli/examples/codebuild/delete-project.rst,sha256=S1rd5r-fTfoefsBj8Qn7wESVrX2JhnieubZ4emG3YRI,402 +awscli/examples/codebuild/delete-report-group.rst,sha256=C0oC1kd_qvQ4kBcNsHRtirckzZF1BX9Vz2WEWMLvNQs,483 +awscli/examples/codebuild/delete-report.rst,sha256=pHPnBZC-KsmiCuG-xo_h_wCp3Xqtu9-uRM673WVLu9g,441 +awscli/examples/codebuild/delete-source-credentials.rst,sha256=eMv7LtusM3CyRiukw6AXjtGQ7eF4lCWcXHOw1BMjFcM,699 +awscli/examples/codebuild/delete-webhook.rst,sha256=dMcVcoL29vAIz3IOrPltD7dghH1LIAe5ef7XIOqNy80,465 +awscli/examples/codebuild/describe-code-coverages.rst,sha256=lUq-oLBbGo44lgIKX2XGMocNGMyM2Sf0ep_-aC8yP_I,1703 +awscli/examples/codebuild/describe-test-cases.rst,sha256=WBSYrXcOyO1u498BOE-PgpD-nJ9CoTEoROglHnwfYl4,1811 +awscli/examples/codebuild/import-source-credentials.rst,sha256=p8DjnM-DBzmGIA1Nsd24AVEVJFQO-y-86hm1UD14SY0,729 +awscli/examples/codebuild/invalidate-project-cache.rst,sha256=F41I9a79ZF-h4CzAplu-4kU9vVgJr65MYUOfigulJl4,440 +awscli/examples/codebuild/list-build-batches-for-project.rst,sha256=JyNhRHyUGyDTDLx9FuvBHTsFsgxUeA7isu3IMoX0-b8,587 +awscli/examples/codebuild/list-build-batches.rst,sha256=tbD-6EMXfA33tHFwJTTolAezNcXgfI9twAweJKXy-b4,491 +awscli/examples/codebuild/list-builds-for-project.rst,sha256=ye5niHxU7ZpX9lDe-FT8z9VbzZfMAyGi6sqowIrbyGQ,964 +awscli/examples/codebuild/list-builds.rst,sha256=ItsQ7Qr0x4521RrXevIPNXVsOtulVLK_UoAJYSzFnJc,1628 +awscli/examples/codebuild/list-curated-environment-images.rst,sha256=YtBwWFZWhf2ywQTTD0s2gewA96K9pareaQq-sN75nI4,1731 +awscli/examples/codebuild/list-projects.rst,sha256=beQ9fJfmfj0-5ZoMrNjGxOgT9BX_dDQDqpeXL3BoA3s,1519 +awscli/examples/codebuild/list-report-groups.rst,sha256=EwmJPwuPShZZlgbcJ81ZvsabdIuVBImoVLJId--81qw,692 +awscli/examples/codebuild/list-reports-for-report-group.rst,sha256=pC4FFT6oZvG9TltIhAw96RudmTp_XkNojkqO96tSKeI,803 +awscli/examples/codebuild/list-reports.rst,sha256=kZfsaQZYOWG9BA1rIL3K6vwfdJUrXU0gZLnBKWc9LUU,705 +awscli/examples/codebuild/list-shared-projects.rst,sha256=I8jbe7Qo_CsghAVyIwCZxlRUzdqE6gs55f5Tp7ea4BA,627 +awscli/examples/codebuild/list-shared-report-groups.rst,sha256=z9ac6DwcPeVPHCe4k2dl7kYH3pbU5CuWJci7SxOVNbE,713 +awscli/examples/codebuild/list-source-credentials.rst,sha256=h4gXISOgv6oBzlCaUPmFrNgl6NZS2CyTWvlM8WBa_bA,1017 +awscli/examples/codebuild/retry-build-batch.rst,sha256=KZenGekzoZ0iFpFNfvXeb9VdMAOmiB6iDofY1hfgQyc,6592 +awscli/examples/codebuild/retry-build.rst,sha256=PL2hbtVOi-rZUQeQNO-m0nGWNWfWiIK3RPq9cPig9oI,3069 +awscli/examples/codebuild/start-build-batch.rst,sha256=66hS_VJMVgRrLDugoYzcBc7jDaGd7mAPrDliVlVjmJM,2582 +awscli/examples/codebuild/start-build.rst,sha256=jjTzgw66TnA2tGfbTWglvKEb8SABTsiLQaZ5o7QosZo,2926 +awscli/examples/codebuild/stop-build-batch.rst,sha256=dQQNJxWMEf9wWr49Mzl2uPvMk-S8rwwLpZ5AHg61VVk,6069 +awscli/examples/codebuild/stop-build.rst,sha256=OpzR43HyAffzgeUhPK7Nzwd_YK-Ur9M3nLZu3VwFBro,5211 +awscli/examples/codebuild/update-project.rst,sha256=SxAOcQz-4Ve7subezAyolbcxpPYxkS_BszmC-NCi6t4,2609 +awscli/examples/codebuild/update-report-group.rst,sha256=7oc_4MlgdIFEX35iyis0lwwky5n3xmW5d-BBjDH8h-k,952 +awscli/examples/codebuild/update-webhook.rst,sha256=3f9u-z5SfVNKDkRKBRK7-PG-kSLn_s1dAcsk7o5Gtu0,2596 +awscli/examples/codecommit/associate-approval-rule-template-with-repository.rst,sha256=KS2rY9k2GfYdlys-D4eD-nb5r4YZraN8iogUzlINcjw,687 +awscli/examples/codecommit/batch-associate-approval-rule-template-with-repositories.rst,sha256=6Ocm8ts-mTtrm1Yia_kmNhL3rRJiZKqpsEOk1psvw7I,1064 +awscli/examples/codecommit/batch-describe-merge-conflicts.rst,sha256=7xtV3EGW-b9u1m4XmwfVvHUvhXat1iGfnjS1ymQDgD8,2855 +awscli/examples/codecommit/batch-disassociate-approval-rule-template-from-repositories.rst,sha256=mC7_sr_P8Tr4m8y3r83Z_IMDD0BPk1OcuwpptI9FZMA,914 +awscli/examples/codecommit/batch-get-commits.rst,sha256=36MCKz_kytoZN6QxcTRgSZWlQ3XRDLsRaxnhwJOTIzE,1770 +awscli/examples/codecommit/batch-get-repositories.rst,sha256=6I0eytVidSTXhMErnB7ExflL53IQAlKkfG_TXl1ZnuY,1748 +awscli/examples/codecommit/create-approval-rule-template.rst,sha256=ecocPYnPdFxkNKvB1xngn9GCTQJuz_gBR7y3DfOmUac,1957 +awscli/examples/codecommit/create-branch.rst,sha256=jJt4qBywnXG5EtT5htSbn2JIAjlTg7XCjmFcy2fjrQ0,287 +awscli/examples/codecommit/create-commit.rst,sha256=KUQImx20kNaUiynKXqOxx25-FwJoYq8Gs1mEKsa9tIM,968 +awscli/examples/codecommit/create-pull-request-approval-rule.rst,sha256=ct5CUzGVo9iChqolgH6uFxs2bC9Z0rY5UladE5TC1EA,1885 +awscli/examples/codecommit/create-pull-request.rst,sha256=_bnlAJN5Eii06OJFa-sYjnEJwo_0XhtEtxU94ybVubA,2538 +awscli/examples/codecommit/create-repository.rst,sha256=8I8Wq25ylA0ut5Fc6L8p3mfXlV8NrB-3KkSWsYM0Nfw,799 +awscli/examples/codecommit/create-unreferenced-merge-commit.rst,sha256=FUttkhD2Pya3htgYOJPIa4dwWDu_XZ-Wbth8OmttmZk,1076 +awscli/examples/codecommit/credential-helper.rst,sha256=ZNBjj3ISW5AnW-umZ9xuqjwGDv2hRCxbBoT6KWnrT_M,1508 +awscli/examples/codecommit/delete-approval-rule-template.rst,sha256=ufx6FdfbHmwWZn1SwKEkU7ru8eNwvm-4_oSYFUt6MNo,564 +awscli/examples/codecommit/delete-branch.rst,sha256=Ch-StW1LsrXbnUOgxY4rBKOu-wxy0odDRp_ctLlKKd0,312 +awscli/examples/codecommit/delete-comment-content.rst,sha256=aPdlfX3HkcFJTyWmz5sLshGOicBuRIc3xQN50lgSfa4,798 +awscli/examples/codecommit/delete-file.rst,sha256=KCbzLBfVgD94YSVj3oCxMcltYGu1FjeO7runKTSJX9I,808 +awscli/examples/codecommit/delete-pull-request-approval-rule.rst,sha256=wP-dB7XrlHywZXJuuAJ_LsgxlEnoIsKD1DvP8_9cJQg,664 +awscli/examples/codecommit/delete-repository.rst,sha256=TP3IeckGau_bj99sS4Vx1qeJUpdsJt-kFotuGJJWBec,244 +awscli/examples/codecommit/describe-merge-conflicts.rst,sha256=MdaI3oMnHVmMZfrSn4hLu2krMcbzc52Va0h5eRtzUy0,2289 +awscli/examples/codecommit/describe-pull-request-events.rst,sha256=1WRDpROMtfI-yaq84_60HRwmIyBpv_aM2ucGPY4IJJ4,908 +awscli/examples/codecommit/disassociate-approval-rule-template-from-repository.rst,sha256=6Ht3tTIERzHtbA6HrIsWwoFK2az18xFAvDJRKsa7-oo,692 +awscli/examples/codecommit/evaluate-pull-request-approval-rules.rst,sha256=YV9jaqMh3maHN0n1YH3Y5hqmRA0md0KEJNNcJuORJe0,1003 +awscli/examples/codecommit/get-approval-rule-template.rst,sha256=UEETX5gDYBSZ80XJJ07JMYiICRfLUC8pf9WSJWdpeMM,1331 +awscli/examples/codecommit/get-blob.rst,sha256=4MFbvfaB-8xZZ19A1NcVp898PE2IBD0xSd20gvGIEI0,368 +awscli/examples/codecommit/get-branch.rst,sha256=z87wYf0s4ywFvvh9VIe8JdKpMCZNNZyw8xXWIZOLZGg,330 +awscli/examples/codecommit/get-comment-reactions.rst,sha256=PnoQpM-UdqX8rsNRHWb1eBXfJM-7FCdDlVKmcH-der8,1955 +awscli/examples/codecommit/get-comment.rst,sha256=GMDRJU-C6ieFiFkzVeYpi_JPH3mKF9nSuBlMxt2AWKA,880 +awscli/examples/codecommit/get-comments-for-compared-commit.rst,sha256=cv-XyPl0888u2srTWgAUp8RJ8l5gKXia6mWBwn-QTGM,2528 +awscli/examples/codecommit/get-comments-for-pull-request.rst,sha256=rbh46yrwHyZdUQf6zNUjUfMWZr4gWtkq1UliauA0CgU,2385 +awscli/examples/codecommit/get-commit.rst,sha256=IsMPr6t37XYBMfWz3-AraVtdVk1hxBvNCW2onDagWxI,917 +awscli/examples/codecommit/get-differences.rst,sha256=SoXGSdH_XQyBg_M7-peNkYkgHmG9T6EJSdieI2xp7Yk,1302 +awscli/examples/codecommit/get-file.rst,sha256=Nom3He4JRZtX3GAb4QmO9SaJCxDBnsZfcvQDkDTaylQ,789 +awscli/examples/codecommit/get-folder.rst,sha256=54LzwDMnCdqdhVZT1V03-EidxDsgUTNEldIV1PCiNZU,1997 +awscli/examples/codecommit/get-merge-commit.rst,sha256=mUmZGMuhmqQRWBWeICNcSCCZd1kLPQQQgdO4mXd9WYs,865 +awscli/examples/codecommit/get-merge-conflicts.rst,sha256=IynnDZDlDIoaPveCgVWgfhScxb00tkelsjxidJwkwxg,1809 +awscli/examples/codecommit/get-merge-options.rst,sha256=MCrI8uUodp09YGTp2Ado5Lw1gTh330ZxptYnoXBrOVg,996 +awscli/examples/codecommit/get-pull-request-approval-states.rst,sha256=gekGPeMqQNrjuNlkTKUCkQ0ffiOF10fIhea5N3qRtvc,702 +awscli/examples/codecommit/get-pull-request-override-state.rst,sha256=vYo-jvoQnbmmdNcDPAdfaPdY0jYL3pN2_HQx6qW7tgk,811 +awscli/examples/codecommit/get-pull-request.rst,sha256=gIN_sC_PI0ouPT5qgPmi7CQyHT9iyXiyg8kYV8AOZg8,1888 +awscli/examples/codecommit/get-repository-triggers.rst,sha256=tRHrH_L0SiQLtQUuWOyuO9IE91esftIo3dv4fAaNgUY,1071 +awscli/examples/codecommit/get-repository.rst,sha256=SlX9DxB7n58Ba1Whd9ip13APwTPq8tmzkQY6aBYqX5o,872 +awscli/examples/codecommit/list-approval-rule-templates.rst,sha256=RPBxUZwwFRHa-bsAq7vVDWTtWpCobL2addlNF2uLGRs,795 +awscli/examples/codecommit/list-associated-approval-rule-templates-for-repository.rst,sha256=6KfOPd-2ytI495Odyc6FJD6L45GHXsRgEG_o4YuTSa4,717 +awscli/examples/codecommit/list-branches.rst,sha256=1VuxLpwhFw-fToW95uyklPJzzTbhqLpS45HLlkiIDZ8,282 +awscli/examples/codecommit/list-pull-requests.rst,sha256=AkSFYmOqRbXEsl8bxsdrNrOcb5nSWspzHZBr8bJiFJc,515 +awscli/examples/codecommit/list-repositories-for-approval-rule-template.rst,sha256=ZiP0yqR0oX6IiyKNwvi_NpCXBCv4MqjiTLrwr05zWSU,684 +awscli/examples/codecommit/list-repositories.rst,sha256=WAQoJJQVrH9FcpbfVKmFKAJA7d3NORZkpzyQmk2Xoao,483 +awscli/examples/codecommit/list-tags-for-resource.rst,sha256=yat-rNucMkLATzUrdWPdlNetJaZC8dsJGzvnZQk8WzM,604 +awscli/examples/codecommit/merge-branches-by-fast-forward.rst,sha256=z0OdsVcIcWnFI1N3W9RESLmi9U-daYrfqxapdFnN3Mc,743 +awscli/examples/codecommit/merge-branches-by-squash.rst,sha256=bOq1RhWM9ckSxlFDhECEY5MdvVZ-UG59jwySrLbWFY0,890 +awscli/examples/codecommit/merge-branches-by-three-way.rst,sha256=Ta-MgwelDW9HpAsKEathy-PfWsH53uP21evSWvGYwSg,892 +awscli/examples/codecommit/merge-pull-request-by-fast-forward.rst,sha256=7-MZ-AbzGo7VhHADKKiim6LFMdlQFixHgMfgvZsVkNc,2358 +awscli/examples/codecommit/merge-pull-request-by-squash.rst,sha256=SnZwXT0j3_ugnUs52-1hwtorOJfaMj2D1mWDxciUsxo,2920 +awscli/examples/codecommit/merge-pull-request-by-three-way.rst,sha256=7yErWr6RzMlGV0-hgQ4bPgX9obAwIfq9UMT53YNDEXw,2851 +awscli/examples/codecommit/override-pull-request-approval-rules.rst,sha256=-dXJJKAj5amHg2CnviArdUhSSpq6TLr_l5-SC1qoubI,715 +awscli/examples/codecommit/post-comment-for-compared-commit.rst,sha256=GR7jO309zIu5lQnpdOXzb2Th5eVeemveBuDBuEGygEs,1493 +awscli/examples/codecommit/post-comment-for-pull-request.rst,sha256=8E3ZJnazdVX7dbWkNpVvN_fncH5ZUD5mi6j4a6EnGV0,1722 +awscli/examples/codecommit/post-comment-reply.rst,sha256=R0e1NAOYIJXNbJQjJpxoMOkzh-jAvTljQCfRXp4QOmY,924 +awscli/examples/codecommit/put-comment-reaction.rst,sha256=RwMw9pftkHtLBpO7lYSU6dXSQuoTp_gZoXz4ObkOvT0,623 +awscli/examples/codecommit/put-file.rst,sha256=Br_H_fTi7iZKoUaeH5qYCDPKT56L0uH-oWb-Pv8RbOY,814 +awscli/examples/codecommit/put-repository-triggers.rst,sha256=mvGmcv_FgK6Tl1ZtysmKKzkOovWJg914fufIdByqdj8,1396 +awscli/examples/codecommit/tag-resource.rst,sha256=tIYOthnKdAM6Qgcjg8KvU-S_OE-Osf9cqoBSsiXr47M,535 +awscli/examples/codecommit/test-repository-triggers.rst,sha256=JaAu5SkmwOeKVHXKVeCRpe4pAMKfV7zD6XjY7He_ZbM,613 +awscli/examples/codecommit/untag-resource.rst,sha256=15h4BqDGNxb2KUPi-6OLxwi-btYnEbWSJ2mzol8lySI,565 +awscli/examples/codecommit/update-approval-rule-template-content.rst,sha256=7VPdys4_l3ddFLw_IxOrxHtJdPOP04P0KVsM1ETA8rw,1674 +awscli/examples/codecommit/update-approval-rule-template-description.rst,sha256=3fMt4IggwQX9rjN4BzeAZLjZ1xsP7XgbZgDIQSt2u3U,1524 +awscli/examples/codecommit/update-approval-rule-template-name.rst,sha256=HcX69pT-doqNS6ox9jBbaDaMGcMU1twFTBOWb9Jl6BY,1415 +awscli/examples/codecommit/update-comment.rst,sha256=dobIVUkCSNm7o7uAZsDCmxNvVhCFiEeWTGG40XzBXSo,897 +awscli/examples/codecommit/update-default-branch.rst,sha256=AKaCa6AMDedMWXHH-aOKhXDwMDaZU4O710nP6D4eTd4,312 +awscli/examples/codecommit/update-pull-request-approval-rule-content.rst,sha256=M1iNU4pvvBez6mVWYVH_mh5qYZCd1PfQVe9LskV_uOM,1528 +awscli/examples/codecommit/update-pull-request-approval-state.rst,sha256=guNIMK6M6F7ncVRPn0vMBQ4PBIXLWUNJ6KcJ8lzN7OM,740 +awscli/examples/codecommit/update-pull-request-description.rst,sha256=n3ruOnf8bkfcB2J9lxhbB0Auhz7JI1KuwT6fYGOUSR8,1289 +awscli/examples/codecommit/update-pull-request-status.rst,sha256=rjURIXDgAmAiSrPgTkTLIBWLZ4vv494JZpZ3cnrTMB0,2016 +awscli/examples/codecommit/update-pull-request-title.rst,sha256=u_I5s7U8V4F84Wm0PJUYCk89tlA_IkedACDkNV8XNeI,2334 +awscli/examples/codecommit/update-repository-description.rst,sha256=Gc-jat1k_1QHySOMboIfvIi8vZaPalm1H76nHOFjvgQ,336 +awscli/examples/codecommit/update-repository-name.rst,sha256=L1JrJuaZ5JYlREZlT2GEOgeXrXE0Zs63hPUjlRIGZDk,660 +awscli/examples/codeguru-reviewer/associate-repository.rst,sha256=4aGjqKgutiTnkwMK4jBD2JiAL2n1TJzZYnXn8nqrV3s,4035 +awscli/examples/codeguru-reviewer/create-code-review.rst,sha256=HdpyXTzC12nM3x25-dvlZM3eJzCI_M0SudyQxCMmhLM,1663 +awscli/examples/codeguru-reviewer/describe-code-review.rst,sha256=ModQ8I5YH9kWFL0hblzDWWcLbK1xg_ZBMWU48Gl0n24,1811 +awscli/examples/codeguru-reviewer/describe-recommendation-feedback.rst,sha256=YtXbDShaPMFNsLbQ9AZ7bTjB1CbLD2F-12pzGxHwiFM,1488 +awscli/examples/codeguru-reviewer/describe-repository-association.rst,sha256=XYXFarBXEl1aOj9ChZoQdc2EYg9XrAPU58Ly8B7vlbI,4259 +awscli/examples/codeguru-reviewer/disassociate-repository.rst,sha256=Ysuow-2EW7Y_vI9VQtPsZ4xF8ve6bF5YnLg8LzWelLU,1185 +awscli/examples/codeguru-reviewer/list-code-reviews.rst,sha256=WiI1P9mVKNuxu7GWn2hHleozzbAv9O2i2UKWJ7yPbgU,4938 +awscli/examples/codeguru-reviewer/list-recommendation-feedback.rst,sha256=zOJ8mdtgm_ZPg2-4BcnJDJxqye1hrMVfTq_eEQFsaaI,1053 +awscli/examples/codeguru-reviewer/list-recommendations.rst,sha256=1_yYl8yQlNpO3mEEfrt2Si97SQNcAFxYeyA3rOm6z1U,1665 +awscli/examples/codeguru-reviewer/list-repository-associations.rst,sha256=mroSGaR1PaMCS8NZf74xnzhQvfmdxilcWf4CO9g-w_c,3445 +awscli/examples/codeguru-reviewer/list-tags-for-resource.rst,sha256=GhT4-_3tl5-QKihZhsrnuaTQdjzfV2l_mzlaZT6yDzc,711 +awscli/examples/codeguru-reviewer/put-recommendation-feedback.rst,sha256=tHvREV4XM8qhLPXgL6D0alj6Q5kSvdaQorDV3CJ7ZKw,746 +awscli/examples/codeguru-reviewer/tag-resource.rst,sha256=hIXkdp1hTwBcMJPgYMUBFDvegIl-MQsz6ZjHp2vk6E4,797 +awscli/examples/codeguru-reviewer/untag-resource.rst,sha256=UquaYH7HUmkkx_Tm0mq_yHk9-ytuJpdPOI-t7ApRvZ8,637 +awscli/examples/codepipeline/acknowledge-job.rst,sha256=moDs7HSWzEf8PWCtsL66Fvq_nsEflhgaeYdNfv-6OKs,425 +awscli/examples/codepipeline/create-custom-action-type.rst,sha256=7A6xMZVLlHOhfpAwCZb9EvWFiuSJJcSeJyfLLHJpYVo,1540 +awscli/examples/codepipeline/create-pipeline.rst,sha256=-x5IrSudCG3c347YSlv8tEIIuitgeQ_cUq7WWs7ZBG4,2122 +awscli/examples/codepipeline/delete-custom-action-type.rst,sha256=c4LY6G06uNbNvJcrV9Sz0utRmoY9_MC8gxdKqFjOnFE,609 +awscli/examples/codepipeline/delete-pipeline.rst,sha256=1eoGCo67Cg0n1XHOV5JhNfgsNmSRa_6_agT1Dn37GOU,287 +awscli/examples/codepipeline/delete-webhook.rst,sha256=Jg9h5qbO68vOY0cjM8TQ20uWPf7-WtkR_32sZ7nSsVI,569 +awscli/examples/codepipeline/deregister-webhook-with-third-party.rst,sha256=XZa-4neE6Sbr_A7_CJ0xstTgefUGijYJ24RlaC0rqUU,564 +awscli/examples/codepipeline/disable-stage-transition.rst,sha256=1gk37KMx8ABwOZt44Ork-JECHM04vBY4rCcf-ifr5_g,314 +awscli/examples/codepipeline/enable-stage-transition.rst,sha256=g6aU5XeswimSz9zLHdDqxvh2Qs5Wf4IwNZkPLXIOiWE,311 +awscli/examples/codepipeline/get-job-details.rst,sha256=xxxcuT4KVKkSTAKtBtsxbrgzMVOeyU8zqAyd6NVYGzo,2730 +awscli/examples/codepipeline/get-pipeline-state.rst,sha256=8_TsYPUmNhUWZB6G86S_grKKf1ztVMuSwQtrB2j8ChY,1391 +awscli/examples/codepipeline/get-pipeline.rst,sha256=ABW7_zbJuTfHW1V6ZOzoS8BXwdCGc9u45cVnoys3ufM,2415 +awscli/examples/codepipeline/list-action-executions.rst,sha256=biwkHODC89337MyUNXtP8FqliXF6IBfcMyoicX_trWg,5033 +awscli/examples/codepipeline/list-action-types.rst,sha256=TpU1I_naPosJvb20aGFIiOFheDvK0uJ1m0dO_BnSZQU,2364 +awscli/examples/codepipeline/list-pipeline-executions.rst,sha256=z31BNY7ztJEgWhd604Vl-TjLZ-pZH2lh7c1-Ppk04RE,1252 +awscli/examples/codepipeline/list-pipelines.rst,sha256=d0eSxYeUSk6Mep5Lwxf15jNJcbR-u23ul-bhA1GjHA0,536 +awscli/examples/codepipeline/list-tags-for-resource.rst,sha256=8Qmj9DBdRn0enguNzWXnl0vL93_cQsK8oHx6rF73Rqo,611 +awscli/examples/codepipeline/list-webhooks.rst,sha256=ltHm9nRxRT-wSEa_v4Cq9WBiIGyFWX0KaRzDKfGIqD0,1355 +awscli/examples/codepipeline/poll-for-jobs.rst,sha256=UEm5_AMWIRZBYnORDmSXA_gUV5qFAGJVSs2sS8gYc20,3246 +awscli/examples/codepipeline/put-webhook.rst,sha256=kLLdRL6nplgv119_mJeRjSQpxV1_-UL_8atZlrHngcc,2044 +awscli/examples/codepipeline/retry-stage-execution.rst,sha256=9qLvgw-5M6BMhpSonoArU-aC5bUXCLvU0cS8OFba7KA,614 +awscli/examples/codepipeline/start-pipeline-execution.rst,sha256=o8IGS9hmvdKxKgs4-U52cD6_hGxlryrlFjAmlIG4-VU,326 +awscli/examples/codepipeline/stop-pipeline-execution.rst,sha256=pylWcdoKPFZSk-aP2NtyEtVCxVrwTuq1fFSSEA8myjs,786 +awscli/examples/codepipeline/tag-resource.rst,sha256=6FBn0emh9zvC7uPePg34c9c1le7TCg29Pdzqr-hVrFA,587 +awscli/examples/codepipeline/untag-resource.rst,sha256=1cq03sV2Z_43SgkQyDq-XsecOYsScRvUZyimCJMgdD0,552 +awscli/examples/codepipeline/update-pipeline.rst,sha256=kWhVLEwawtX4VJmU3XKAIRIvXq6HlLb4UNBiVVJ0BvQ,4184 +awscli/examples/codestar-connections/create-connection.rst,sha256=kQiplxPAa8P_ioXDF4Xc_gNBjyqIFsjJqKQuTNfHZsg,917 +awscli/examples/codestar-connections/create-host.rst,sha256=_mJ4nJN2Melhjlc1gndpE1-UPlGv3nyt2BxQj-gij7s,956 +awscli/examples/codestar-connections/delete-connection.rst,sha256=OkXQezeRLJb5u2OkmAr-F56A_VubXfSbG3f7jTR09qQ,532 +awscli/examples/codestar-connections/delete-host.rst,sha256=f2JUNDWd7q7QGykwqp2zppXv3NP1vj2iK6MIzJbZKSo,571 +awscli/examples/codestar-connections/get-connection.rst,sha256=PthhC3oq3XLJgROf7C2EbKNHlGAW1zYEKzp7Uc4ih3Q,864 +awscli/examples/codestar-connections/get-host.rst,sha256=SJWQLsiomPxg1X_T8BNMPn9_SBGtI3_2M3Es_UL9OzY,648 +awscli/examples/codestar-connections/list-connections.rst,sha256=IbFouUJ4Ylu8ttkOo3V8vCbGo75nEVAairbyvq6e8J0,1291 +awscli/examples/codestar-connections/list-hosts.rst,sha256=RN_QPX9uJoXPfD-wSTi0ecA3oGVg1bW2RwRGBwC-fxc,726 +awscli/examples/codestar-connections/list-tags-for-resource.rst,sha256=3FCjLDpNwp1fmSyquMS7hluFJVcKHy7Ph1frpZBc30M,803 +awscli/examples/codestar-connections/tag-resource.rst,sha256=uXhQABqQj6HmEjKU0TD4-95TQb96VOUcEhUl11qkW34,652 +awscli/examples/codestar-connections/untag-resource.rst,sha256=GLEqzOlp2IwOMby_6YtYPAne8YBbWjab5y9NroV5Z9Y,611 +awscli/examples/codestar-notifications/create-notification-rule.rst,sha256=Clbss9aho15eUw3Cp3zFA0m07Xq7i3Imj_qeR5eYPF0,1319 +awscli/examples/codestar-notifications/delete-notification-rule.rst,sha256=FhJTbAD4Bm7osM7gKPkfKz-LT0bvE2sdZoUp7Dw7-jk,626 +awscli/examples/codestar-notifications/delete-target.rst,sha256=WcCo8R7YWYiv-fyKjF8yD3Te7NOQ5wCwhS5Xsy5PE-o,618 +awscli/examples/codestar-notifications/describe-notification-rule.rst,sha256=2MVsydh3scUiXCyAfiLCwp5uP4GTlbzF-pZNpeJXzJQ,1514 +awscli/examples/codestar-notifications/list-event-types.rst,sha256=waMN1dNJKSbO2W6fsLHOsPFWBXCSnw0w1Cgr4Hk4XpA,1429 +awscli/examples/codestar-notifications/list-notification-rules.rst,sha256=rB7Fw51Ytu9D_RjOu8XonXYFjfKJi8MTp7sBfPSK5FI,879 +awscli/examples/codestar-notifications/list-tags-for-resource.rst,sha256=4Dvrfec_RpFWTQUr_-cMI4c_oGDCiAGN-zpdTlBhwew,674 +awscli/examples/codestar-notifications/list-targets.rst,sha256=wmltZDUj_8BrrbM2xQiLZzW011ieUHzXPG0tuRE0c5I,941 +awscli/examples/codestar-notifications/subscribe.rst,sha256=7IkkLDK6Kc4F9wlN6fDvj9BHAh0A6NO6zCUlj_-Y6L8,791 +awscli/examples/codestar-notifications/tag-resource.rst,sha256=ZK4Hp2X441KEacDHC1eTTI667P9mpbNvPyWOugOWqjE,656 +awscli/examples/codestar-notifications/unsubscribe.rst,sha256=dlUEEHGxLk2tshxU5sr9WSxFgRwEZZ6AohLGW3HYT3s,886 +awscli/examples/codestar-notifications/untag-resource.rst,sha256=K2po3K0I9WLa6WkvW6FXLvgHRJRHGND_oY0R2cX43wk,585 +awscli/examples/codestar-notifications/update-notification-rule.rst,sha256=nfLX_I82OliUkjUfvei__Ul6N08xXoJUkWczwd3JW1Q,1188 +awscli/examples/cognito-identity/create-identity-pool.rst,sha256=wkrmrFn3sbOq4LXHcJpOYz-ordTgVZ_CIYb26s-2Mko,931 +awscli/examples/cognito-identity/delete-identities.rst,sha256=56SCmnbpl6C7rG_aofFdWTCQKUQbmCCssIHmqTiRNVc,250 +awscli/examples/cognito-identity/delete-identity-pool.rst,sha256=V8qwFt-MVGS8cpKGfG7mHHaMm-LZdhn_WJWNSke_9O8,283 +awscli/examples/cognito-identity/describe-identity-pool.rst,sha256=pK-hq-uwRKJnXntVaHxyHXth1jcSicsb5U7YqonoFqM,622 +awscli/examples/cognito-identity/get-identity-pool-roles.rst,sha256=39N19j51ZgODWKRIpQ_vY2wWMyoSw99uM7cp3fgTD3I,495 +awscli/examples/cognito-identity/list-identity-pools.rst,sha256=oiIliKuwCTX1mluF6cKYqnwjzRULY4i8Rrjzx7Z34wc,685 +awscli/examples/cognito-identity/set-identity-pool-roles.rst,sha256=ywfTYmwOex9lvdS2G-i6t7Rzr9TAh8b3BlJyuZCWBwg,339 +awscli/examples/cognito-identity/update-identity-pool.rst,sha256=nL4jPHG2XKefRe-_gMFyVtBoMS6euBKVxWzR2ijKres,975 +awscli/examples/cognito-idp/add-custom-attributes.rst,sha256=GNWEZwNKL3vj-kZ8_ha2hs4B0_Af98RZipkNkuW0Ujo,449 +awscli/examples/cognito-idp/admin-add-user-to-group.rst,sha256=mpJTAbUdZMMqqVCT216T1_5yaIybL3-2eYsK_nkLDy4,206 +awscli/examples/cognito-idp/admin-confirm-sign-up.rst,sha256=n0brjGD3csp_MPKXYUmgZciZoXT6sJVMnvVnHgnigxs,198 +awscli/examples/cognito-idp/admin-create-user.rst,sha256=7NDAiN7DE39cLiipAGyd4q4b18AOFnJaAgoGkpPrtsE,1083 +awscli/examples/cognito-idp/admin-delete-user-attributes.rst,sha256=bSI-XrwiHTiL__mt98Og8x_rAQOR_I_wIV-P5n031Y4,281 +awscli/examples/cognito-idp/admin-delete-user.rst,sha256=y8974MFXOBltwaO4hH4suNXcTMYxdULCpZ_y5Rk98dc,168 +awscli/examples/cognito-idp/admin-disable-provider-for-user.rst,sha256=j9q1loFxk2aUMCBpkQqKrG51pOQJvogZUJzevkSgBJo,644 +awscli/examples/cognito-idp/admin-disable-user.rst,sha256=0VvLGp59BdUb32gsT1IF_bZUoIgWrSSm0Y7S7lGEd4U,432 +awscli/examples/cognito-idp/admin-enable-user.rst,sha256=v-Ia1OBj7ZI0ctid9xqGC4R8bnJqy0cQroxW4urn6v4,424 +awscli/examples/cognito-idp/admin-forget-device.rst,sha256=V_2zOZe4l1nJJFXW3XJFhlcke9bvd9S5d_DbM6FDxQs,234 +awscli/examples/cognito-idp/admin-get-device.rst,sha256=983G0w0msNI5Y62JZkOlkS_6Y4nQC6nGo-gVki72GuE,1900 +awscli/examples/cognito-idp/admin-get-user.rst,sha256=caD9LJD38bEjjtBQ27BeUmRYqO9zqju4HIZUoKJT8cQ,912 +awscli/examples/cognito-idp/admin-initiate-auth.rst,sha256=BodPLn31e5qGXZALwGJWtY9tirKO1VXNj9Tb3yzXHeM,1588 +awscli/examples/cognito-idp/admin-link-provider-for-user.rst,sha256=DihURqYuf9V2T5aXGzcKwmVl2gJVihU9T1yziidSZC0,734 +awscli/examples/cognito-idp/admin-list-devices.rst,sha256=1Qa3SEd7g-v5u1OlQiIU4INmMYOvXh7fXO2nKNLOL0I,2022 +awscli/examples/cognito-idp/admin-list-groups-for-user.rst,sha256=P12HSKo3cxAl6E40vZ4NnEM2oSO8WZuG5BdzRTctp54,592 +awscli/examples/cognito-idp/admin-list-user-auth-events.rst,sha256=5Gd9s82XiypenvLkRabcOeS9nazfkixeb2koDwivglE,1635 +awscli/examples/cognito-idp/admin-remove-user-from-group.rst,sha256=X2z_M0LbSauUmA4Cm5g_ubE3AKwlg0Z6QAYaj08TrlA,239 +awscli/examples/cognito-idp/admin-reset-user-password.rst,sha256=_fC2plvIM3xFOe979joXMjZaDiLyJc0BGrDbOh17NZs,208 +awscli/examples/cognito-idp/admin-respond-to-auth-challenge.rst,sha256=v0cCjO7aSL2wDeE7R9tTNDtNFvUD7-9wevT4PWlg4lU,1524 +awscli/examples/cognito-idp/admin-set-user-mfa-preference.rst,sha256=JGlG2DecoWnFQTXrDIgI-dqcPhwJV6j8PgPwSsjN1Uo,289 +awscli/examples/cognito-idp/admin-set-user-password.rst,sha256=ZcDc3tMaeVXuJu-SgTRCnwWIkJ6wThfUdQ8UE_00SZM,597 +awscli/examples/cognito-idp/admin-set-user-settings.rst,sha256=BGtHzSsvqHdjU_714yFHC96CT--x86EQ-WGu_kw2Cd8,270 +awscli/examples/cognito-idp/admin-update-auth-event-feedback.rst,sha256=7W8Mm7c5MnN08pCwp2cTyisxcd4W06TBEwAd6AjOf1k,350 +awscli/examples/cognito-idp/admin-update-device-status.rst,sha256=52Js5sdQe58vs_8F7owey5RXBBrV_7iRjWroSgNJloE,320 +awscli/examples/cognito-idp/admin-update-user-attributes.rst,sha256=wRfhInsmRlkWafs6jjcGu8_pida0Hbjhg3HfukHsUiU,299 +awscli/examples/cognito-idp/admin-user-global-sign-out.rst,sha256=yDLkHes_YkJitNkpgUrRIGxXK3hZvNmdFwLXc9QL4LU,453 +awscli/examples/cognito-idp/associate-software-token.rst,sha256=Zx-CG0ZvRbKqOdjA-M1Vfi2yTwPdsStk9XLsw1ry6qA,709 +awscli/examples/cognito-idp/change-password.rst,sha256=i1ZCUujqhfS-uGsCPcK3GNNarzqcSpf9_oreqUtFVYA,198 +awscli/examples/cognito-idp/confirm-device.rst,sha256=deotbaJTBz9LKU5oSVRBCwW4jDQUtYAbEkRJ0ivfz1g,666 +awscli/examples/cognito-idp/confirm-forgot-password.rst,sha256=ojfETF1IbaNJ6423tfCYQTUtwA9lWy63hIWsoLPfVb8,288 +awscli/examples/cognito-idp/confirm-sign-up.rst,sha256=xxpYxPe7ihwYffGZSPf6xZTjW6V15VOKNEfai5p8IYU,232 +awscli/examples/cognito-idp/create-group.rst,sha256=ZXfu4t5VxdJKSnenrr9wdd4ssTapsOFTz0G9u2FkInw,1158 +awscli/examples/cognito-idp/create-identity-provider.rst,sha256=kykxdjQ8P3z8oXBeN-3Bp3bNXXV9ccmCudbFTzrXUNc,6680 +awscli/examples/cognito-idp/create-resource-server.rst,sha256=YcCzCRkr1UupCTKG40syLUoqkbwdgRjh4pLBSCHd8Os,1239 +awscli/examples/cognito-idp/create-user-import-job.rst,sha256=fiB0KKavzTVdHRIotZHbDD8LjrmXOm62zNYleE9tNv0,1158 +awscli/examples/cognito-idp/create-user-pool-client.rst,sha256=DAuy30hZJxZj_mUt3BlQppPS405YBPeCiBDeczM3Q6g,4228 +awscli/examples/cognito-idp/create-user-pool-domain.rst,sha256=BND3QH6_gZK28xcz5Q1NP4usUpVm3ZDA6Gt1dUO8Wm8,1140 +awscli/examples/cognito-idp/create-user-pool.rst,sha256=UNOxjyPmD-CFV3n7BOZnYpmhy8_0tifZgmNoe9FPSmQ,16870 +awscli/examples/cognito-idp/delete-group.rst,sha256=NaosrRkUlBBfbGPLrfYT880CZ0SpGiAnoV62oISTiYw,160 +awscli/examples/cognito-idp/delete-identity-provider.rst,sha256=Mb5THGeTJFrZQTdoeiGrZ29mZkh2oF2TT3mNvqiYRag,197 +awscli/examples/cognito-idp/delete-resource-server.rst,sha256=vLS-o7S-O-pcvZR-npnjMb1czxea3jluwg5XVQ7okYQ,223 +awscli/examples/cognito-idp/delete-user-attributes.rst,sha256=zADGf2cL2yPcl_jbsjTCXkx77PRR4n_WjtOISZ_7_uE,532 +awscli/examples/cognito-idp/delete-user-pool-client.rst,sha256=sWZFv3US_e6-vn51NMG5-YyxQIjeUAhQiAaqBBog7cs,204 +awscli/examples/cognito-idp/delete-user-pool-domain.rst,sha256=HTsNs2XQFC5Tnm8vWcv7t31SHnC1JtIDIxBewnlzQMY,253 +awscli/examples/cognito-idp/delete-user-pool.rst,sha256=Tz0r5ukD4_Rqx3WU2T3tWAPI5KsYxzdcmo1814TZi4E,188 +awscli/examples/cognito-idp/delete-user.rst,sha256=gNW1veGCUUUA31oxUGsXS7z5kNLn4TjflVnD4Di0oe4,124 +awscli/examples/cognito-idp/describe-identity-provider.rst,sha256=NNcPhZofsYVxiuVueG9yxobAcD-9HlYPTK_atFJnZYE,1039 +awscli/examples/cognito-idp/describe-resource-server.rst,sha256=k_zaBo4a1-5T0_rR9pMLO5gxYEy-ZcUFSjRzkgYm_gU,834 +awscli/examples/cognito-idp/describe-risk-configuration.rst,sha256=k2jUzMhx6yx1PQu_15lLw3O8iEDylUNlLm5wg7zqXv8,4660 +awscli/examples/cognito-idp/describe-user-import-job.rst,sha256=aTgYrnJl8JXuTBi-BMGzcRQeIRt1AKyx3yB9i_bCze4,902 +awscli/examples/cognito-idp/describe-user-pool-client.rst,sha256=z7WHsouSj9btvND7Z8wM08LhDlgK6jrfnx6M-IiLHBw,1818 +awscli/examples/cognito-idp/describe-user-pool-domain.rst,sha256=UbuEV8A9Y8NCRZxLLEjeHfHtILptFEy810oXI8xFdto,553 +awscli/examples/cognito-idp/describe-user-pool.rst,sha256=RjDY7XHLj_7yvy__3qSlLhAX6D4OqueqU-ujm1bhtdY,15744 +awscli/examples/cognito-idp/forget-device.rst,sha256=PTS8kygtRaAEp11W_NigSq3QnsNYHCxgcFBFzvfmiXg,145 +awscli/examples/cognito-idp/forgot-password.rst,sha256=OJZlGHqma2qGojj6SmTygaraB9LXJfvCvouvvEQ2uqA,429 +awscli/examples/cognito-idp/get-csv-header.rst,sha256=HG8kpX8nToXOl5eH10uaB_dqiakg5-764Gz5LkW3vhA,953 +awscli/examples/cognito-idp/get-device.rst,sha256=hsxBZc--YayQOsph08YUkHUNBSt2Nd5P2CWp6pnuEFQ,1867 +awscli/examples/cognito-idp/get-group.rst,sha256=tCXasYDzyvLR9RL3Rb8DZg0aTe0m_1glen5UjTlNH4w,834 +awscli/examples/cognito-idp/get-identity-provider-by-identifier.rst,sha256=3xbHq9NKmCEA3jmxGzO9j-DKwt4IYT68H_CHTKumjK4,1450 +awscli/examples/cognito-idp/get-log-delivery-configuration.rst,sha256=J1YaY9eLK-jIPJO34JVgMWkhU-NneT5oHu-WPVCZiEM,1286 +awscli/examples/cognito-idp/get-signing-certificate.rst,sha256=w2ag_WBVdMTi_XhvNlOrZ78uZD6WOgsmzvNN5d1ks7Y,547 +awscli/examples/cognito-idp/get-ui-customization.rst,sha256=9svlfmPMpi22mFY2XDWcaoelvOJmwk0k5Vq-gCnGCf8,2794 +awscli/examples/cognito-idp/get-user-attribute-verification-code.rst,sha256=86MIDuU08-dki4Q6X-P4oslotMlYLt_iavd1qEOmdOc,758 +awscli/examples/cognito-idp/get-user-auth-factors.rst,sha256=hMeRbK0X_4KjW3REEHbvQN70UZg_Hti16_ffsnIfpVI,672 +awscli/examples/cognito-idp/get-user-pool-mfa-config.rst,sha256=VQbOIymEc2pG8JYYL3U9PGI4zhhj6KwbiF_dwRTLIP4,1312 +awscli/examples/cognito-idp/get-user.rst,sha256=2-pUNeUt-pd2pIuXBN5WpsH-l3XLgi9okkQZL1QSeQ4,1773 +awscli/examples/cognito-idp/global-sign-out.rst,sha256=QElgHzMwHxV7hrPZ7l8pun-8dShG0U-2ClskUMVKY8I,399 +awscli/examples/cognito-idp/initiate-auth.rst,sha256=K0hHFrENDHDlxjRoQGtJXNSUcbZb__BcZhRGR24sjbc,1146 +awscli/examples/cognito-idp/list-devices.rst,sha256=S_ZGYpqfsJhhKLatHN6BXwbBbPzVwSWUPHqfxXJSYSU,1863 +awscli/examples/cognito-idp/list-groups.rst,sha256=GcMSgNwczTeuq7KDQ-D_1fKj4iR5o6piFr_UTRPQ1po,1190 +awscli/examples/cognito-idp/list-identity-providers.rst,sha256=XB-xcv8-IVWW7x4Z3aLYDnv404zsaFJXq1zNafnKHJc,1030 +awscli/examples/cognito-idp/list-resource-servers.rst,sha256=-RKeOQTr-vPT8HF1pr31-5zK8FyLIgQk8T8RpaBU-Ak,1606 +awscli/examples/cognito-idp/list-tags-for-resource.rst,sha256=-REaxk2gPbpjB_BLsn2iOtRNsJpUQcheDgf1TMDSFeY,602 +awscli/examples/cognito-idp/list-user-import-jobs.rst,sha256=EM2nMe3Evkfr5z_XWgKFF258ysJjaubp84BEI353cyw,3727 +awscli/examples/cognito-idp/list-user-pool-clients.rst,sha256=dSPNHXmLxJfhtUJgoAyc7go21RkARBr99JMoo-T4-0E,1087 +awscli/examples/cognito-idp/list-user-pools.rst,sha256=sKjrohAHwNr0OPGjMVXRczB3k97o326wFXoDQ5udWfQ,1949 +awscli/examples/cognito-idp/list-users-in-group.rst,sha256=iPYJRJZcaysUqThBAVhgZgBBrSipHsBqECjfd_LEPYI,1594 +awscli/examples/cognito-idp/list-users.rst,sha256=zqmeWaw-dI27WNwjVmuajGk5eV_qJx6QDs5OV8NVFGU,3644 +awscli/examples/cognito-idp/list-web-authn-credentials.rst,sha256=6riokI2IJTqK1PLWMUN_XViVYbzJhaWewJ4DdXQFuWg,971 +awscli/examples/cognito-idp/resend-confirmation-code.rst,sha256=P7I8jeMD8eaXhJvd0LuIhQ20SXFaDTAicNW6WpuA5uM,667 +awscli/examples/cognito-idp/respond-to-auth-challenge.rst,sha256=ZMpvV1Tja3mohOMX9oK6-eAPINCQkpYrR8qNbUGjgrw,3138 +awscli/examples/cognito-idp/revoke-token.rst,sha256=HBZQKkXrk-9opYHuDIVwP0yBaaylyz9Nah80jEMyf9k,456 +awscli/examples/cognito-idp/set-log-delivery-configuration.rst,sha256=KBdF5NonVH47LgCqYEUyplsVXMi8RrvOaJVDEL-2dmQ,1586 +awscli/examples/cognito-idp/set-risk-configuration.rst,sha256=l7YHhuaNL6sMupuNfvZYpyULXK9zkAptkxgF9UQHkdI,10549 +awscli/examples/cognito-idp/set-ui-customization.rst,sha256=i7_DPD2YP7fz33Ia8gpOYxaE10cWw3imOtP1uBe8aoo,11534 +awscli/examples/cognito-idp/set-user-mfa-preference.rst,sha256=B8wsFPFcUtbBAvUQzvZWgst2KmjJ41VfL6z9h28emu0,673 +awscli/examples/cognito-idp/set-user-pool-mfa-config.rst,sha256=nyZIuKje71lD3zyNnpRMniArSzsXNLcrtD6rr7Qzgbk,2101 +awscli/examples/cognito-idp/set-user-settings.rst,sha256=bEPDVPxjkF-HMjT0tf8FZBs6SWhrZWKpZIG_LYuc8Ks,195 +awscli/examples/cognito-idp/sign-up.rst,sha256=NVkIeh4xRJbOHvGRilzUPUnHRcMieRUDtNkfByW_u8k,370 +awscli/examples/cognito-idp/start-user-import-job.rst,sha256=r4PuTs3XKRyLrB5AHqF9Rjv7EiIfG-_DAgQ5tKk89zE,1364 +awscli/examples/cognito-idp/start-web-authn-registration.rst,sha256=hPGuU6dIyzW9ACQkifIVXf-LepXCkTt9abMwnKVR1gc,1734 +awscli/examples/cognito-idp/stop-user-import-job.rst,sha256=fu_b84faku2vJLq1jsCsjb9kMT4ZZHXFnkrDvEGZ7JU,1504 +awscli/examples/cognito-idp/tag-resource.rst,sha256=4q6YajhPqQaggcu92gfd6EzJp0OE0eGZSQyOFRqBdcs,550 +awscli/examples/cognito-idp/untag-resource.rst,sha256=wQex8m_nJBhzoRezbJqmAj_hKwjT4O81OBpNLVURxJc,559 +awscli/examples/cognito-idp/update-auth-event-feedback.rst,sha256=JanhUZ1_jszlnyLCL5nRtIeczZLTZG8YJFBbEWKE6Mk,312 +awscli/examples/cognito-idp/update-device-status.rst,sha256=F_1gNCSc7wlqSB49jhkTQ9V-IWq2CQqw0Jk0WYvsNI4,242 +awscli/examples/cognito-idp/update-group.rst,sha256=idEtTNhunMtEZvfgGck2531u8e4C5wmbBstTr_5tp28,560 +awscli/examples/cognito-idp/update-identity-provider.rst,sha256=DvDN8Ggkrp4n8YoBCFAY5rghYvoiQzwigWq9_U94xlU,2783 +awscli/examples/cognito-idp/update-managed-login-branding.rst,sha256=J7eqgvHFFjbDDqinOu6ziLoRPc7CqxRzGKbLcWnhH8g,40493 +awscli/examples/cognito-idp/update-resource-server.rst,sha256=Mz5H8UFnFJ3PG4P3keExlHnoVE0zwGoCFC8VNjb-8cA,635 +awscli/examples/cognito-idp/update-user-attributes.rst,sha256=XurBIvy_FWG3t9M3ZHFLIMhlv6JuNdETiJ3YgzbCCNo,210 +awscli/examples/cognito-idp/update-user-pool-client.rst,sha256=P_LMWC-t4rFmqVsqRhY4-XHGNZemuItzhXBcKtMdH9g,5217 +awscli/examples/cognito-idp/update-user-pool-domain.rst,sha256=_7u_rxMqK6aIHRd5nQ6PaHcrrHJ23zQSMdif2-U_Lww,913 +awscli/examples/cognito-idp/update-user-pool.rst,sha256=8HyD82jp-Q4NqpK5HMRqj62SAIG1y92jR01zPFbIDOc,2978 +awscli/examples/cognito-idp/verify-software-token.rst,sha256=_5q0rdbMvXgI3yykzsFx7dL0Xgjf-WYDX_Vg1uuMQI4,520 +awscli/examples/cognito-idp/verify-user-attribute.rst,sha256=ySHKxlB-hvwnmj4oNuo3Y-GlTjR3ITLY3BqCLd_uw14,518 +awscli/examples/comprehend/batch-detect-dominant-language.rst,sha256=V0WMgG61LrYbbf5g1C0zOqH04sIbwu8BoaCSQvrfHE8,1008 +awscli/examples/comprehend/batch-detect-entities.rst,sha256=vfUgl1JhTMvnqIyZP8S5x0JgWfDyOvwStoPWY_fhSEM,3770 +awscli/examples/comprehend/batch-detect-key-phrases.rst,sha256=pNAMKjGZ-CVCuIpaPP6j8Hkl7rkFYJkolA0N1y0zEJo,4708 +awscli/examples/comprehend/batch-detect-sentiment.rst,sha256=pzraEdGMjEjxIt7unQoa0dHnLg4WG-E7tIneavP2-FA,1848 +awscli/examples/comprehend/batch-detect-syntax.rst,sha256=pbxIKtqe3jkKhw_agv39Q02gfmM8OVKQiMVualESe68,8864 +awscli/examples/comprehend/batch-detect-targeted-sentiment.rst,sha256=X5DKXWkXJ0SZHWdUS91f12IowVFPvgRjnYWbe9dLi0g,7688 +awscli/examples/comprehend/classify-document.rst,sha256=03Y3zO5NENnUDpY1eiecqfvSiHkzDm4_CmA-5LXjYQI,948 +awscli/examples/comprehend/contains-pii-entities.rst,sha256=sAiI3-Zdik0KSDcWd_DgS3VawUfL1xNXklrAd2KzF90,1607 +awscli/examples/comprehend/create-dataset.rst,sha256=5VJKd5oark0vEgc30ft1xPgJAGU3vfjEQ3FCnLP6oew,984 +awscli/examples/comprehend/create-document-classifier.rst,sha256=e7GJZOzNGHDl8gjv3cn3X97SGjzUvHEH8wK7lM9_68w,1084 +awscli/examples/comprehend/create-endpoint.rst,sha256=Yoq9UU4PfZAE1KJ-kngaEJhARGzu7zkSFnxt0YdwKsU,742 +awscli/examples/comprehend/create-entity-recognizer.rst,sha256=0ueTqsaaYToTjaATAAo5tDtE8RoH3vWWRibawyj-wN0,1139 +awscli/examples/comprehend/create-flywheel.rst,sha256=b0zsIHAmNDgxR8gYD7kyyNxtvlB_IJ4GeoK5QaeBd1k,1043 +awscli/examples/comprehend/delete-document-classifier.rst,sha256=FkcCOxKCSwTIiPFxBLJPJSQulI13PVbzV8w4bJu8kkk,528 +awscli/examples/comprehend/delete-endpoint.rst,sha256=C90mByBesxDCTVeHRQYVaWeQh7iXrAARM6YtW6U_QLU,574 +awscli/examples/comprehend/delete-entity-recognizer.rst,sha256=Ey9R25Hlv6b7cJbrsPhRxDRPJo_0A2Gm8ipIVHKh8Lw,529 +awscli/examples/comprehend/delete-flywheel.rst,sha256=VBw4k8htXA00lynl2dufaElgiBpQGg1REkblsRRAsDY,493 +awscli/examples/comprehend/delete-resource-policy.rst,sha256=NKqveyOYAtIH676a0C3MGX3fgY9edv-JttLLg6DzoNc,539 +awscli/examples/comprehend/describe-dataset.rst,sha256=GBnMb27F4cwmL4JD75StHHVp4VAaQBio1VSriFv38qM,948 +awscli/examples/comprehend/describe-document-classification-job.rst,sha256=_bl0oC2H8mw_NHm98u_rsjpTngLizQcy8a42yCLcBDg,1542 +awscli/examples/comprehend/describe-document-classifier.rst,sha256=KezyeZkyK4m64w2oviDqfJWW-vRbiBVcIhj4mc1DbCU,1953 +awscli/examples/comprehend/describe-dominant-language-detection-job.rst,sha256=Dzo--v9jRq9g4jNDn7P39z2hx9CUbfWfpBv82-g_4P8,1404 +awscli/examples/comprehend/describe-endpoint.rst,sha256=nOfQAy3a57eAuvi9ZfKlpxlWEWA6YZhXJ4X1G3ls6MU,1143 +awscli/examples/comprehend/describe-entities-detection-job.rst,sha256=befVlHrzkGGlXW74ocyW1xbAVc5kXrwYbA6wuI-HZ00,1434 +awscli/examples/comprehend/describe-entity-recognizer.rst,sha256=9syCWh2aMlQUKsIe3p4YInNWb04etTJWWoiI5stv-VM,2456 +awscli/examples/comprehend/describe-events-detection-job.rst,sha256=avpKQ-nNjAGESLcYfdyQ8aBIWuRafey96HX73toY62E,1577 +awscli/examples/comprehend/describe-flywheel-iteration.rst,sha256=Q8cfpz_ijQwjMWG6-nzMrPguJigloVjD2qhhWmMWWIw,1963 +awscli/examples/comprehend/describe-flywheel.rst,sha256=YQy1-1seG6d2UfHQtz3kI0eZELyNCVsprdNKovEEQZk,1630 +awscli/examples/comprehend/describe-key-phrases-detection-job.rst,sha256=S48O_iWbB7vfPwZgShXjWy-RzeXScecCHbxtgTFZ4oI,1407 +awscli/examples/comprehend/describe-pii-entities-detection-job.rst,sha256=R6fZAnwFy6HogisR0UjtC1RoDiI0mzwuUCTjqr_qezc,1460 +awscli/examples/comprehend/describe-resource-policy.rst,sha256=vW1rggUqdN0RPa57N_m_hprdLiLjdiwFrIZHYYv11u0,946 +awscli/examples/comprehend/describe-sentiment-detection-job.rst,sha256=55p-fr2hFm0VXZ_bf4bqfc8KzqFMqA0QXr4ecNGBtj8,1386 +awscli/examples/comprehend/describe-targeted-sentiment-detection-job.rst,sha256=592lqBUB_C4Z5ujXNNYwkHEYPSgJNk51oQoHKG5mYsU,1439 +awscli/examples/comprehend/describe-topics-detection-job.rst,sha256=4-sG68aMncghqNJoqxBjdfK4kreOOfJYoEepp6Oqhd4,1365 +awscli/examples/comprehend/detect-dominant-language.rst,sha256=k96b-qh7RqHA3StGGg3V8qtP_8O0MbinvRiznO7lD70,644 +awscli/examples/comprehend/detect-entities.rst,sha256=0Yk0ZqYnL04JU1QW3DTQLZO56nOESLYv4P2naH1iv4I,3571 +awscli/examples/comprehend/detect-key-phrases.rst,sha256=TzvttgCQOE6gsgJtLfocScywPsc9Xl2Ay5vo3usElQc,4193 +awscli/examples/comprehend/detect-pii-entities.rst,sha256=r1xk33ndF6IbwiXnybO7h4IbtZSS-_xWHA5dp1BbCnc,2674 +awscli/examples/comprehend/detect-sentiment.rst,sha256=k27pKHd0WstZ4iLWLN2DSvOPOns9FYSebXBzvtJxepM,772 +awscli/examples/comprehend/detect-syntax.rst,sha256=JDI_JCHh_CJI4tUt4go5xvWvNDwBUx0k8-IgeBbp48o,2630 +awscli/examples/comprehend/detect-targeted-sentiment.rst,sha256=jhBsBA1p8u50XsKe72oMrwHLxOGjUI05PSFVSMA10mU,4333 +awscli/examples/comprehend/import-model.rst,sha256=UinVIjG_nIyplVjDiQPhoN1_Brol5SCYzD-hhrXVcw0,707 +awscli/examples/comprehend/list-datasets.rst,sha256=QAaBmpKrCdIRKzcY35nHjP5CADrzoRRANqCOF-P6yEE,1613 +awscli/examples/comprehend/list-document-classification-jobs.rst,sha256=DyWCBqBBnQD427Ggg4QKcc385fGAX9N5-z-llDr8Udc,2638 +awscli/examples/comprehend/list-document-classifier-summaries.rst,sha256=0l33UGLpBZIkX2mHcQ1DB77OSTRLO1ws5UO7QDhcoMY,1094 +awscli/examples/comprehend/list-document-classifiers.rst,sha256=IoqItsQcRAYRD7LBdo4zhfeKNt7yNK08p5-5DLFDsXA,2646 +awscli/examples/comprehend/list-dominant-language-detection-jobs.rst,sha256=uJY0QCG5m87xePwAvI3GUG5Kf6ja6ggMrDa6a1bASGo,2435 +awscli/examples/comprehend/list-endpoints.rst,sha256=O5zWCGS3I-3Fqv0BknbsmmLS707DMGkvVvSmle0A3II,1721 +awscli/examples/comprehend/list-entities-detection-jobs.rst,sha256=f1YBHdQrTnowph3s7FyKyXJLgf09KvDixa_nb0HXOao,3418 +awscli/examples/comprehend/list-entity-recognizer-summaries.rst,sha256=35e59gI0h5ovLPbE6enhp8Z-5WRXC9Nl9ld1omvkoKQ,1360 +awscli/examples/comprehend/list-entity-recognizers.rst,sha256=oNEoN-yHpvrBUrpqloMq6kxHJeRKcQFPskBw7ye3Pho,4608 +awscli/examples/comprehend/list-events-detection-jobs.rst,sha256=zjAhZjp5lpIMATyyvj4DVsvkWn7ovt49BLKcT143daE,2917 +awscli/examples/comprehend/list-flywheel-iteration-history.rst,sha256=c4LFSac919uCaozsJbY-B5sTHof_FgEK3rGJLF2ssOY,2727 +awscli/examples/comprehend/list-flywheels.rst,sha256=1UylPprQLfZQijeGvrGKWbCHIwRDggPINubDyRA1SiE,1694 +awscli/examples/comprehend/list-key-phrases-detection-jobs.rst,sha256=tNsUKLYM-luYtyApgRjpIfwDcVoVhc-c159U_b2fy_c,3605 +awscli/examples/comprehend/list-pii-entities-detection-jobs.rst,sha256=JYL6cJ8mr5pBXr7AVn-SI3hvQ1KegWQh1CFxe-VQs10,2546 +awscli/examples/comprehend/list-sentiment-detection-jobs.rst,sha256=gux9ggZpYp2K0ESf562lx2HoXzlvvle6yJZR96_F2y8,2499 +awscli/examples/comprehend/list-tags-for-resource.rst,sha256=mpc_JESR_HP9MxDa0hiBF_6Ivp7FWZrfsoz6m8TSW-k,820 +awscli/examples/comprehend/list-targeted-sentiment-detection-jobs.rst,sha256=iZDkZU0BfkGfCY4-IU0VZ45hC0xV-hZBLeox3vPb2h4,2571 +awscli/examples/comprehend/list-topics-detection-jobs.rst,sha256=GtvX9pg113pW2aqUEm3glBj6GIkZOO3Sxcf4BGwNqNk,3338 +awscli/examples/comprehend/put-resource-policy.rst,sha256=6O52vQFDh5s0o6DyeRk247ec7w8KNMAvCNNGyD8iElI,917 +awscli/examples/comprehend/start-document-classification-job.rst,sha256=8phlBmO0rRdyjIcePRmltzbnleeTvCq1NWjYPfG4LiM,2407 +awscli/examples/comprehend/start-dominant-language-detection-job.rst,sha256=K37OLhRGsY0cKWgTlRfGpL7yGqCIrOTaz_GTdiNMMzs,1833 +awscli/examples/comprehend/start-entities-detection-job.rst,sha256=36nboujS-eDg-35_cI4FbJ_ie7NYqYKBgpnsDr4eQes,8370 +awscli/examples/comprehend/start-events-detection-job.rst,sha256=rDqJYnh_oRxfyJYRdFPcI-cemQjPZUETCJMzVt6xey4,9895 +awscli/examples/comprehend/start-flywheel-iteration.rst,sha256=f7X3fjv_jSWe8UwWJnU6DD3N47x3LYkB_IxDqwNWJZA,671 +awscli/examples/comprehend/start-key-phrases-detection-job.rst,sha256=qwkr2t6GWIbhPZreeUvcCpVH_cEBB1i0m8fyDJm7bjY,6350 +awscli/examples/comprehend/start-pii-entities-detection-job.rst,sha256=U4KusFODIFQZUgmhgQ_4w8xJTeCB6WgUThDJ-wi1Or0,4722 +awscli/examples/comprehend/start-sentiment-detection-job.rst,sha256=2KxWJ5rBULgTf2XNgTryypYNjImoxX_evHHULjmpxCk,3210 +awscli/examples/comprehend/start-targeted-sentiment-detection-job.rst,sha256=4_BwZhek2KVsc4E0YPgU9f_BqdublI0nlc6P4RC2pQ0,10935 +awscli/examples/comprehend/start-topics-detection-job.rst,sha256=ywcICux7aTFffcmh4gyIVs68wI1Fl1JrH0NJwpwLEpA,1556 +awscli/examples/comprehend/stop-dominant-language-detection-job.rst,sha256=yhr0pcjXxHE-Cl7twh6IC-S1tXuieooBYKw-EusoWg8,821 +awscli/examples/comprehend/stop-entities-detection-job.rst,sha256=u9DGx8VjX6aKOLs-BoH4yMM5z0ks5Su48FxmKajhCVg,785 +awscli/examples/comprehend/stop-events-detection-job.rst,sha256=IFBpImx2lJwNEmhX4VDbqsamJNrAPgglunQo1UXv5_w,777 +awscli/examples/comprehend/stop-key-phrases-detection-job.rst,sha256=A51ZKpujANFsl4EysODX0MSVQqg8I3S1yskOMxdZ0Bg,797 +awscli/examples/comprehend/stop-pii-entities-detection-job.rst,sha256=8_ScCK2EEriU_QSw2o6GlsyTwCed1VWkRhHBIT1RTeM,802 +awscli/examples/comprehend/stop-sentiment-detection-job.rst,sha256=b8j-6fBDY--5kACo6ZuyoCBro99Lxz4jOLW4B3yDekA,789 +awscli/examples/comprehend/stop-targeted-sentiment-detection-job.rst,sha256=izj7Y9IB6a_LUQHtI0wbNcGSVvup3hIFphZhPP7XS3k,825 +awscli/examples/comprehend/stop-training-document-classifier.rst,sha256=kIFliR9A3ViUYUUtIpvum7YeI52ci8UOLtxwocix8OA,572 +awscli/examples/comprehend/stop-training-entity-recognizer.rst,sha256=8UFETr2Hqjj52BC6GeIC6z4hkLXnb0hSQM29SU7XIY8,564 +awscli/examples/comprehend/tag-resource.rst,sha256=EQWlmziM0lG4fzmEJRxn8vWNbgcWcqb2Tpcalx21a1Q,1073 +awscli/examples/comprehend/untag-resource.rst,sha256=T1CDnjcYuF1DdZp6N34bWD--hQ2qNRI__IC6s77k0u4,1076 +awscli/examples/comprehend/update-endpoint.rst,sha256=96j0T4qShhgMHi8FjVVB_8USooAfivlBVLcv5lckOPk,1289 +awscli/examples/comprehend/update-flywheel.rst,sha256=P-guQFVpxxi0GZfGD2DQWSJBkWJ1kle1rlHkv1k7uEM,1665 +awscli/examples/comprehendmedical/describe-entities-detection-v2-job.rst,sha256=m9GkukF0WfRV9fZx9e8xPNcCq03fN3IrO3llWJ__6OE,1375 +awscli/examples/comprehendmedical/describe-icd10-cm-inference-job.rst,sha256=I_6reDk3FRBK08Pe6CPkCYpCzbznTKumCXlAGfTJTb0,1348 +awscli/examples/comprehendmedical/describe-phi-detection-job.rst,sha256=ESS_5bKNTML_33gKitExhzL6RYsOsU_iGZxmhTw20E0,1365 +awscli/examples/comprehendmedical/describe-rx-norm-inference-job.rst,sha256=_slent37g4ammXVad4x3xsG8MS8TDrlBao6OmS-pwYw,1341 +awscli/examples/comprehendmedical/describe-snomedct-inference-job.rst,sha256=sKIlhbrPJ-R14L5LAhCF3UfJ_3GxNa6q84kpmF-Ngdg,1348 +awscli/examples/comprehendmedical/detect-entities-v2.rst,sha256=IfO1Bkq2Kh29OYrD3Difhc6FukyuTv724Tt1FpUE6D0,1702 +awscli/examples/comprehendmedical/detect-phi.rst,sha256=h2caEMUQHT2ZPNSvZwc7k-KkmpRxWIBDUkVc-L1w6LU,3556 +awscli/examples/comprehendmedical/infer-icd10-cm.rst,sha256=xuO0pzKXT-7NZTYVR8DOCdoJuh9XlTZkL3XVKaMq7A4,8478 +awscli/examples/comprehendmedical/infer-rx-norm.rst,sha256=CX4ntz5VuXYq_V0UywNcBVvgCdsuG_A7djJnZEfnYx4,10633 +awscli/examples/comprehendmedical/infer-snomedct.rst,sha256=TmmsDIDcJ6BpL_2sWJxVoFDzNuxeVD9RT6B0piByJjI,2599 +awscli/examples/comprehendmedical/list-entities-detection-v2-jobs.rst,sha256=SRbZKXGfPFJJdznUNwtQCL2rbx7o2LNyO7csfr00oYE,1371 +awscli/examples/comprehendmedical/list-icd10-cm-inference-jobs.rst,sha256=UVlm3dl1XBlysirkLBVodx0TxPvI3P5IjEz_c72Yq2M,1403 +awscli/examples/comprehendmedical/list-phi-detection-jobs.rst,sha256=k4mdou3hclC5RlUzMG9vkBhv-F-hddeE8zaxUP4MXRw,1386 +awscli/examples/comprehendmedical/list-rx-norm-inference-jobs.rst,sha256=AOmRUTmrN4sRzeNa-wggmp6IuoUcuzahDsa7L0K_19g,1383 +awscli/examples/comprehendmedical/list-snomedct-inference-jobs.rst,sha256=ZahtK6Liny63lt_6KyIuW_qb7AW6ukbAurWnyIoPKXo,1397 +awscli/examples/comprehendmedical/start-entities-detection-v2-job.rst,sha256=4fbHvOuKzhP8sDo6XMNGxTc6H81J3KDTkMVY_mHDyp0,720 +awscli/examples/comprehendmedical/start-icd10-cm-inference-job.rst,sha256=CML-HGYZpjnxUly5lbHlT8FoSL8XDQw8EfmmKLuGjrc,739 +awscli/examples/comprehendmedical/start-phi-detection-job.rst,sha256=Ck4HAcpa8hz5-yTr8fRnd9SSWj0tyeakJJY-HvjI_C4,702 +awscli/examples/comprehendmedical/start-rx-norm-inference-job.rst,sha256=NJ1MrPXdGE3oD8BCReaUEYNh5g-BPfgoyWw3PSr-iFo,731 +awscli/examples/comprehendmedical/start-snomedct-inference-job.rst,sha256=gVnzi-azaBs8HUa5X2QfD9W-UqyOAN3bkGlA2nM_NkI,740 +awscli/examples/comprehendmedical/stop-entities-detection-v2-job.rst,sha256=3jdESt1wQzKPufzSxaUfrNugyEi5HfdLjCd_ExFahIE,521 +awscli/examples/comprehendmedical/stop-icd10-cm-inference-job.rst,sha256=mSS_HGwjMGGmFe7axloftsVDz0OYVCWsIBHYsBR_CTk,543 +awscli/examples/comprehendmedical/stop-phi-detection-job.rst,sha256=YvHIwXxdHG5Y-RXyxsgjP6CM9laMEDS89bES8xIwaMc,560 +awscli/examples/comprehendmedical/stop-rx-norm-inference-job.rst,sha256=q3IThQjvnK8SY5H3Lj_JLJQ92-AHFEUJ7EcxeUiRTFU,538 +awscli/examples/comprehendmedical/stop-snomedct-inference-job.rst,sha256=ukD1IipxjHcqsg8XoTJBnC-A3_H522Fzz2V2xQEBMHk,541 +awscli/examples/configservice/delete-config-rule.rst,sha256=L7glYoPaXWXngMGul73An01T9umiqHaNL2dgQYLAlLs,181 +awscli/examples/configservice/delete-delivery-channel.rst,sha256=FSSHMkYxzMSkN1AIGkDy3bKSj_BLVg6j9XNbpajE-04,173 +awscli/examples/configservice/delete-evaluation-results.rst,sha256=Kd1P712qYg3rXgbY6ZQkJJN3eINflj93oZpRYlIyEVY,256 +awscli/examples/configservice/deliver-config-snapshot.rst,sha256=RaDJ_nP9GCIRwcsDdNkmwafuK_JjQKp7UNkWMyxR7GM,336 +awscli/examples/configservice/describe-compliance-by-config-rule.rst,sha256=wxJgtePxq-0kxsjpAMqiFRJArha9NUjxdgkV9mox5hw,1309 +awscli/examples/configservice/describe-compliance-by-resource.rst,sha256=iomh4HcLHmj2JnRjNeiywwCXXL_T3_2srE1YoiR1-Fo,1378 +awscli/examples/configservice/describe-config-rule-evaluation-status.rst,sha256=O4oQDXvHrXN5CeaWIoJMjxI11-5nhkM_3Hg0if5VG5M,677 +awscli/examples/configservice/describe-config-rules.rst,sha256=BZTeKDVJdTg4AT-ZsVed5cuxrGfdo4Qzhb1CBV0Ge-0,1358 +awscli/examples/configservice/describe-configuration-recorder-status.rst,sha256=hi-IBNdLcJFlzsqohZgcCEr8QRC21cjxVzD7z8Ipznc,570 +awscli/examples/configservice/describe-configuration-recorders.rst,sha256=bFPT1A0nVcFWR5JtK4LQRpBaKVoJYH4omvIYuukC5CA,605 +awscli/examples/configservice/describe-delivery-channel-status.rst,sha256=FvBKreZEZ6HHucwi59l4wlcSNxNQWvhxj2OCYXg4TOA,925 +awscli/examples/configservice/describe-delivery-channels.rst,sha256=SBqQJGKWvXfxx_yDM1nd4M3_hSZrbzQw2e9wgsTN0pU,432 +awscli/examples/configservice/get-compliance-details-by-config-rule.rst,sha256=ps-pbKJUACMcAt0NvcxahDI9nNhufATmiBl4Bk15k-k,2119 +awscli/examples/configservice/get-compliance-details-by-resource.rst,sha256=0ZbD1Zl7UFo4SY0eOH68Gkl1EvnVrW0G01D93knndQQ,1537 +awscli/examples/configservice/get-compliance-summary-by-config-rule.rst,sha256=7_FCAGKZe6CO1rJGPyp4WvqrdjOxnl_Wr8dIgAUNF08,722 +awscli/examples/configservice/get-compliance-summary-by-resource-type.rst,sha256=T_hX5TqiX80c7Y6MCphL7HFoYEZ527EQaONXA44LXGE,1912 +awscli/examples/configservice/get-resource-config-history.rst,sha256=EWbN_V-41jV8Akv8v-5lNmefQ5uDnJ4Vwjf0x_r6BaI,278 +awscli/examples/configservice/get-status.rst,sha256=2L6w-ji0UI4xH7spxkgC8GsZPoPjUyMfM97IXfI10vU,435 +awscli/examples/configservice/list-discovered-resources.rst,sha256=foyBBxDyMl4jBiOLcOGIN0GSCtIyGMfCpV016KLA6MU,659 +awscli/examples/configservice/put-config-rule.rst,sha256=SW0w6YjyhcaLFuIl1S5BtwriRaqswQAdG4jp38_dGbY,3279 +awscli/examples/configservice/put-configuration-recorder.rst,sha256=8H0O6YYewr82CZhFofAtyx60HnzF-qpe5YprKcvZVek,3684 +awscli/examples/configservice/put-delivery-channel.rst,sha256=aKr_84oFCO1h5CkzXk4yU2dU1b0xsZj0nAgx87zQm9w,2320 +awscli/examples/configservice/start-config-rules-evaluation.rst,sha256=ODwcxST8jXGbpzeG16cSXfpbOqS1CLHY8gqqCwX3YlM,248 +awscli/examples/configservice/start-configuration-recorder.rst,sha256=hzG6hwTqUUczIoyPyYwtPufCVUQFmrLHcoqP2sCtT_A,426 +awscli/examples/configservice/stop-configuration-recorder.rst,sha256=hEu8n61mmFYzqUhoL-O5aOCRMzEu2UqDXZRqNGKpI8k,426 +awscli/examples/configservice/subscribe.rst,sha256=Safrx1Xi_KqaX9IO0xM9Zrz2rnyJ2sv5RXguOh__Hr4,1178 +awscli/examples/configure/_description.rst,sha256=z42FKfOwoqzd5tNaIkZn2UkGndOcgJQdVuJWCJ4s1_M,2030 +awscli/examples/configure/add-model.rst,sha256=XqFvpf7laooxcYSPiXwCzf6PRmj4CghqWrHUygjv_fc,434 +awscli/examples/configure/get/_description.rst,sha256=WusU6bxBIBpsCGocAC7umNm-u2zPtv0keXmNJVLhIVw,1936 +awscli/examples/configure/get/_examples.rst,sha256=lVOwgQm7VtcfOnl8GRaFtBfQ6wZ0P7XHkA9F5nzL1Rk,807 +awscli/examples/configure/set/_description.rst,sha256=ApK8TUtZAOzK83azrlIToAM918FBssf6TQ1S8NKY61w,897 +awscli/examples/configure/set/_examples.rst,sha256=-5sUHq5TNne2XwxQfrgF3iHI51ZUkJult0Tn5C75mWE,864 +awscli/examples/connect/create-user.rst,sha256=CnsgEKeaw46n6ke8nZ2IQe4z5xZiTCe5KyS8EEKz8fc,1023 +awscli/examples/connect/delete-user.rst,sha256=tZRQlUlUEJcgxWyCc7mk674kYxUut5SGenMT_UQD-TI,489 +awscli/examples/connect/describe-user-hierarchy-group.rst,sha256=-1IDf4TAaIw_R2_YTC9yEOUm_pziZ6ZsjPDtB6j9Yoc,1282 +awscli/examples/connect/describe-user-hierarchy-structure.rst,sha256=kEwziq_-b0g0D2z6-2ODckp1lnNg680jxHcJkyW1aZc,1415 +awscli/examples/connect/describe-user.rst,sha256=US6-X-2BUcVjke-Yjawr5eF2YC-Kbzx86C5KejyzTHc,1417 +awscli/examples/connect/get-contact-attributes.rst,sha256=MsdATPNmTgWidqeyDFYlyJzFUdZPmAR9pv4Tp-6nJyM,661 +awscli/examples/connect/list-contact-flows.rst,sha256=mUAoYnJ4Es6bkSkD0C84Dx9yyEuzoa4oEHFsmDQN2ks,1610 +awscli/examples/connect/list-hours-of-operations.rst,sha256=sxWTYjYiBJSM6S85kJ7DXRL1EyS-IM16fdkW0--G1W0,864 +awscli/examples/connect/list-phone-numbers.rst,sha256=YWk4EBASAIDjyKtOMDvIoJXIms863f9AwFOo2C3Rrzk,1363 +awscli/examples/connect/list-queues.rst,sha256=WOqGq_PeJVjtOc1auC2gZp2RlwAeIvQd6M7uIK3UmQg,1681 +awscli/examples/connect/list-routing-profiles.rst,sha256=BjF7OPoMlq0JP5O6Ydz2-NanJQ3FKqcvlZ_EZUuOCds,844 +awscli/examples/connect/list-security-profiles.rst,sha256=qkfY6LoB0KFhBD8DUvpdYSziSqmx_vGQNAvfio4rq7U,1757 +awscli/examples/connect/list-user-hierarchy-groups.rst,sha256=rbkfE730LeMGndjF2-4aVYvp7dDR2oHm7vp_5vz6Co4,861 +awscli/examples/connect/list-users.rst,sha256=4MjzTmqEfkjA6vOrTd7cawb6WFEWcWwgW1G81Bri9Eo,1624 +awscli/examples/connect/update-contact-attributes.rst,sha256=Ch8C0MBsKuy7Aw4h0tj4v1AfprGzFGpW3TZYSxONw-k,643 +awscli/examples/connect/update-user-hierarchy.rst,sha256=tAbGqPTWX8ZBZz3gkSRvR86QKZOa9r_HGpn2x_ojZXw,603 +awscli/examples/connect/update-user-identity-info.rst,sha256=icsH1_ys02EYAmiaH41IpmQ5t6ERErVryEbdEAlguj8,639 +awscli/examples/connect/update-user-phone-config.rst,sha256=3Ik9UVgCe0akzK8f8httG61-79Uwh9sYUKU5oBCqzUc,661 +awscli/examples/connect/update-user-routing-profile.rst,sha256=YGHo3AGqDcEHFM0i3LGcdrVGa1fgiEEh_CLSojdLoog,632 +awscli/examples/connect/update-user-security-profiles.rst,sha256=TokCZ9iCmWtPZkuFPs_qavKblR9zmFP3bxwapjbT1ZI,657 +awscli/examples/cur/delete-report-definition.rst,sha256=C5IUjZBPrkqOHpThsVys0VdlcHPhQXJKNc7q8fV3ZX8,191 +awscli/examples/cur/describe-report-definitions.rst,sha256=aYMJHNRebeGGVbUEyz8gNr2FNo96ypdjsnZjeDCFuCY,754 +awscli/examples/cur/put-report-definition.rst,sha256=RAyS1T-vvVetIpqUUGd2h3csMylZlnG4XnFzJ3xF63c,749 +awscli/examples/datapipeline/activate-pipeline.rst,sha256=aQE1IJw83KxodcjOnkGnU_S1dWdNqbAYbE_8auTItNc,352 +awscli/examples/datapipeline/add-tags.rst,sha256=n8HgfxSCI2lcYRgUFEYDPJyYegR9sUPAFBwxf8a1D_4,667 +awscli/examples/datapipeline/create-pipeline.rst,sha256=WQex-CNgmp47gb9aaVsRPJW8UWRz91Uk-Hc1c0md8Ik,239 +awscli/examples/datapipeline/deactivate-pipeline.rst,sha256=tFfzqUOj4PuoS3aO60Cxv6Ztmik4_BJoczmqMGQt6hw,358 +awscli/examples/datapipeline/delete-pipeline.rst,sha256=nWdLh0jX1Z7CAs5wjmPrjCcmZzIove8jAM9rITk3k0Q,147 +awscli/examples/datapipeline/describe-pipelines.rst,sha256=IZtIjjhih4HZ0C_fTS2iVy7HwvJim_531374hEvYodc,1570 +awscli/examples/datapipeline/get-pipeline-definition.rst,sha256=YEk4EPTml1q3b-QVIBa7jt8J85AbsBDQHztiCnGo5xw,2852 +awscli/examples/datapipeline/list-pipelines.rst,sha256=IcNaXdISjmhUqHe_WSRLx6sIAX7vcRey205hx8ZzaUI,578 +awscli/examples/datapipeline/list-runs.rst,sha256=4gX8CUAC4cy08OdmwlSlINrDft0Zz6mdzLmlq2eQ4gA,1499 +awscli/examples/datapipeline/put-pipeline-definition.rst,sha256=atfjJdiXMyjvftR-fCcrot4z1BfM23_lSZ6CdC-c2TI,386 +awscli/examples/datapipeline/remove-tags.rst,sha256=HSsiNzpEE69_fh52NzeKWL7tnWNmqRO6qK3dVubgFOw,200 +awscli/examples/datasync/update-location-azure-blob.rst,sha256=YOVn84lZOwUTQkWbGJh8mfF2mJvzkc7OF-vYzc0B-jk,751 +awscli/examples/datasync/update-location-hdfs.rst,sha256=5sdDVlwE_lqVtEa46oxg2TBPrlV7LVBi40WQydN3KSk,1921 +awscli/examples/datasync/update-location-nfs.rst,sha256=oOpOFLeor_vZrXiRIQF_GSmwfLluRpUHkpZPfXPOOwo,604 +awscli/examples/datasync/update-location-object-storage.rst,sha256=IlSfYKQIp2CJtXzwvnGLQVDBZHu3_0JJqKDODbXSD1Q,677 +awscli/examples/datasync/update-location-smb.rst,sha256=7oEPcXM32FycUeoeTSds5ty2ywbE2gLqaQKrnFUsw-8,637 +awscli/examples/dax/create-cluster.rst,sha256=l5wgX29XraHbQoJTPnevUCjHCaqrtdBGrcEBehtIDMg,1594 +awscli/examples/dax/create-parameter-group.rst,sha256=U31mUPazHs033O1WG9EfoisrHjnk6y-cz73pZnfRnDQ,676 +awscli/examples/dax/create-subnet-group.rst,sha256=-DB0neFWnjH4RWx0UTEYCqDkQnEUsJ3GclLV9zLkB7A,987 +awscli/examples/dax/decrease-replication-factor.rst,sha256=LE4J0YzHqAP5YVWxhU0y7kpZXrX9NPL60QT4L3nF15k,3125 +awscli/examples/dax/delete-cluster.rst,sha256=xGmOOgZI2gJGnKybWYLDmvLaKSiQDy9hWyJ29rMUevI,1522 +awscli/examples/dax/delete-parameter-group.rst,sha256=Ca-NLaJ2QIpDXpqPJOsiR_BeR8yTnk4yzZjGB8rnRko,510 +awscli/examples/dax/delete-subnet-group.rst,sha256=rE5zI8Td-PgjKAflt2GOzBlhEpBK9tx9bIjcwEYlJKs,485 +awscli/examples/dax/describe-clusters.rst,sha256=zlCCvEhh0w2IwPCeLt_S4h406A1ydkZopjFlMWZ59Nc,2224 +awscli/examples/dax/describe-default-parameters.rst,sha256=RvoZXBfdXsaJqbENgnmobkQCoazPI0aDtot1CdAR-y8,1496 +awscli/examples/dax/describe-events.rst,sha256=fheZj7CCTiC-Po02FpAq3q4cVjLbEvU0ZsQDcV8KM4g,1499 +awscli/examples/dax/describe-parameter-groups.rst,sha256=EFTtL6WIOTg3VSAGLmUugFZ_VaMjtxyrSaHkhbjbL_8,621 +awscli/examples/dax/describe-parameters.rst,sha256=85uB9ytgwhxBs9qi14gVIsMm5La1M_Wof8wKUq9RA2Y,1564 +awscli/examples/dax/describe-subnet-groups.rst,sha256=zl2BXqd9nqEtTJoIWAWHCGdqw6uQenW85C2hGf0xhC4,1371 +awscli/examples/dax/increase-replication-factor.rst,sha256=Gsm-8-02kJYa1u8j_vuEPh3Ok4nRfRrmZG7lTCdzf6c,2429 +awscli/examples/dax/list-tags.rst,sha256=EuoYJO1MykHQwrz5lXxJ6R34kTgCBXW4le9LTfiLOqQ,609 +awscli/examples/dax/tag-resource.rst,sha256=DKuJV8Uu1Y32JxtuWQWtIfWy3Wg1QTQsrccUAJ8yWag,700 +awscli/examples/dax/untag-resource.rst,sha256=1clGAdvs_chM6qq_1lPjuo8a3uiwhekQ32WojJE-oKs,546 +awscli/examples/deploy/add-tags-to-on-premises-instances.rst,sha256=LPKbTBYME9jcALxHljR_TfI-W9scbzapf6ZhVBcWfHg,469 +awscli/examples/deploy/batch-get-application-revisions.rst,sha256=DtwiY1Js8qy6asNGp0HIOE-rMt9b9mX8ANGmbU5-1VQ,1530 +awscli/examples/deploy/batch-get-applications.rst,sha256=pYGSm7e5ZTK0hH57KE8i2PAhO1SH_ZDXOFARu_wxRJ4,826 +awscli/examples/deploy/batch-get-deployment-groups.rst,sha256=LPaRdHOmd5SPN_h0JdjorITe4bqtfu0fW2VUIj4WSyc,3554 +awscli/examples/deploy/batch-get-deployment-targets.rst,sha256=llbF4XAB-oFpYsNyHzyiApU4i8aFsyBcFSrHBNQ-s4Q,2793 +awscli/examples/deploy/batch-get-deployments.rst,sha256=cm5atsbF-C-Z1Axj0uBXOjCAvc4BaUTLG8SvWeXFvok,2558 +awscli/examples/deploy/batch-get-on-premises-instances.rst,sha256=6voW2TbuLTxGkh84IEyMGMYcprSWhgiWeJeTl_wlkkA,1393 +awscli/examples/deploy/continue-deployment.rst,sha256=vxZIE_wO3R3u2OLkYB0lNJe8-zNwFNKnZofkhrpgG0o,621 +awscli/examples/deploy/create-application.rst,sha256=D9vFgRIFKMq1khKy0LBqnOF-BwD9mHrT3NMCpFRtmBw,301 +awscli/examples/deploy/create-deployment-config.rst,sha256=AF_ED3XkQSB8-wOpvdLj1xonSerT88Z-ABju40wgKzM,442 +awscli/examples/deploy/create-deployment-group.rst,sha256=olz-hzQnE8W3DGp4O6tRX1EW6sOTdXByfjwgVoSbSOw,683 +awscli/examples/deploy/create-deployment.rst,sha256=WUOFccviNPW0oJwPJs9CXAo9573phdGOIk9iNg4u-ws,2049 +awscli/examples/deploy/delete-application.rst,sha256=ti94Myfdssny-G3wKSWygMqIXBBTLKn0PYlgSbQ_i_I,261 +awscli/examples/deploy/delete-deployment-config.rst,sha256=Ye2UaPNVrDSlQYrQLVpx024RRw89HjT4cPyUUqncDWs,307 +awscli/examples/deploy/delete-deployment-group.rst,sha256=FqzKAwQWBUny2w-7SGhz4m2sA56X-xFrlb0J54MQ7N4,350 +awscli/examples/deploy/delete-git-hub-account-token.rst,sha256=XXX-RnZzjfvIxfPfs_W_mOa-APDOCqDmh1qB43JLKCE,491 +awscli/examples/deploy/deregister-on-premises-instance.rst,sha256=Vwcy2LxYb5acQZqUfQSVI4M752D9nY1gd7PYvX1A2Zc,571 +awscli/examples/deploy/deregister.rst,sha256=QlERuK_NAn_B86wU62Meu6nVk7Pc84eXSo8XrU3pCDc,967 +awscli/examples/deploy/get-application-revision.rst,sha256=-30nc8btRw1Vkb_MUVVzG9OCFc0lBQHrNpZ_37yO058,1091 +awscli/examples/deploy/get-application.rst,sha256=mVvAQbKxdf_ecKus8E83vn0ML4vQSss5M4wBTa54iQo,498 +awscli/examples/deploy/get-deployment-config.rst,sha256=qfMG11klwXUM0dma5Ps_BW9qlUGZN0oacYRj-U4riZY,657 +awscli/examples/deploy/get-deployment-group.rst,sha256=fMNrksAXC-nqOsKisGDGAg6Kc22MdWWJuytVJAJAlfY,1007 +awscli/examples/deploy/get-deployment-instance.rst,sha256=Dj6-n9jAInLXFEyCQypSao3jWM0LGvux7F8v7TqbDhs,2141 +awscli/examples/deploy/get-deployment-target.rst,sha256=doPzEN9gbWSWwSDftQnVXVEpyiO-VkF0ABtjPvK2y1E,4626 +awscli/examples/deploy/get-deployment.rst,sha256=ybz3hThyPtvMoeyH0vArysU0jTGtg207wXi_9NhU-H0,1296 +awscli/examples/deploy/get-on-premises-instance.rst,sha256=wqdxIJqnKo729Lr_S4vkZXmGgNMSRXxS06LTf30JTz4,745 +awscli/examples/deploy/install.rst,sha256=6CPxpO2BKLiksCQmAkHHffGsXb5-FdhwXI3EbO1ljiU,825 +awscli/examples/deploy/list-application-revisions.rst,sha256=3oOWhQQrCOArhkYCBnIJvR0cNAgHhmkwzxfYMppDD0w,1185 +awscli/examples/deploy/list-applications.rst,sha256=CFUzoz4PG_ch5X1uQS-RnuJ6bHtsDXqMeaST-EWtDYI,331 +awscli/examples/deploy/list-deployment-configs.rst,sha256=vbwYYr4unjSyJCfU0wDuTkxVCPS9DP4w7NJXJjRVJO4,490 +awscli/examples/deploy/list-deployment-groups.rst,sha256=3YeApOvAVy1qp79DPJO6NRqe_oN-Wi5TzuSO51Fmroc,440 +awscli/examples/deploy/list-deployment-instances.rst,sha256=nUlqqvVnkP66FxDOFo-5dYXigbEtcyMmENo5-NrS5mc,447 +awscli/examples/deploy/list-deployment-targets.rst,sha256=PGpBBjLcmw6-6OTw5WAGX8mAS8E3UZcw924ptbKauw4,665 +awscli/examples/deploy/list-deployments.rst,sha256=blM_-SubEZt-Hy86fwAPsRNJiFfRw-pwz0rF65Ahuoc,585 +awscli/examples/deploy/list-git-hub-account-token-names.rst,sha256=IHs16Ci7eeKNHEZAp5f1-XwA5XioSDIhq3hs_BF_vHQ,608 +awscli/examples/deploy/list-on-premises-instances.rst,sha256=4QT9DngcCFHh610QpP-lsWvJdyC-aiPTAouh6Lh4nxM,589 +awscli/examples/deploy/list-tags-for-resource.rst,sha256=6dp8sB5ql-jWmk_nqD1-_SbfN1Hd26DlIaXQ3mgwI1w,738 +awscli/examples/deploy/push.rst,sha256=qgV1GjD3A2VKaGJ8v4AHHadNhqZOJNXtHLMvD_U98ZU,1016 +awscli/examples/deploy/register-application-revision.rst,sha256=I7B4oMCEn7mCnRnRREcbAT3YLYeavodk1QNkN4OiPLU,557 +awscli/examples/deploy/register-on-premises-instance.rst,sha256=VLFlgqYf_J8fGjvvXDVp5oKSTx5XobjCYFwpP2nsXe4,506 +awscli/examples/deploy/register.rst,sha256=IppG8bOYcrklgl0hBMOESzKWVqdScVpTsa2mq68QpZQ,1029 +awscli/examples/deploy/remove-tags-from-on-premises-instances.rst,sha256=Yp-skgVwltouDTAXrw3BBGaKuR9Yc1PCm8hvVwygiWI,683 +awscli/examples/deploy/stop-deployment.rst,sha256=m-AOPeTAMj2PI3C4QQABktmkpkBExz23HoakHIRp-hA,389 +awscli/examples/deploy/tag-resource.rst,sha256=efrD930r0ppTOjEBKWFa4OzqEQmCXtHQc0S7DpJ9Zf8,629 +awscli/examples/deploy/uninstall.rst,sha256=XcdV8VwC_G6YMZXxV4VUhpR28IyqVhSfYwnCcDsQ_9s,473 +awscli/examples/deploy/untag-resource.rst,sha256=XpET9nbmU_qHTHHWHI_gbLTIUphzGzdHD3rjNh165kw,585 +awscli/examples/deploy/update-application.rst,sha256=kaVR8hB64uanM46DLOgrKYSRBY5fEEr7BDz8CruwXlE,334 +awscli/examples/deploy/update-deployment-group.rst,sha256=ZhCu6IMQtp3DmQfhcqIppnBEt5jsXajs74ksgPEzpjQ,705 +awscli/examples/deploy/wait/deployment-successful.rst,sha256=SNsxZqp5-6RRVDuH0SOy8JeEGGRat6cfcy8hyrNqjyI,442 +awscli/examples/detective/accept-invitation.rst,sha256=MjVAOci6XiSXqPuGcFBx5vPvKWdmEyWCn19vZhxk9ac,614 +awscli/examples/detective/create-graph.rst,sha256=cqGF4DHv6UzZuE94L-wMG11OQJ_uPuUz7KDQp2k0hZ4,745 +awscli/examples/detective/create-members.rst,sha256=cE8Et7gH5FBq4KnHO-cO4Xssa7TfuMEibs6UBsYfYZs,3795 +awscli/examples/detective/delete-graph.rst,sha256=Q1DK95uTkB7btpX-hlzf8diP83_2fXoTRMVfF6hJcz0,496 +awscli/examples/detective/delete-members.rst,sha256=ih3dWSLzGerQYvnAF86glOLGI1jMz0joX48YJnrL67A,779 +awscli/examples/detective/disassociate-membership.rst,sha256=9PLHnkvDdDlAEXHygk5KhyMKocjR0YOK7kbTwQrk9BU,570 +awscli/examples/detective/get-members.rst,sha256=aXxURFFIVGyQoeC14CCC1aQRhfdyFw8pzhFhW8-DClA,1587 +awscli/examples/detective/list-graphs.rst,sha256=_KDgA61vbLdMXvsmUEEgsKPFQSbQC1Vgp1mm8dQUlY0,478 +awscli/examples/detective/list-invitations.rst,sha256=OUI62-Sk3pFQfIMlb5TdlDWOiRkNO3CLwdyY081Cuho,1041 +awscli/examples/detective/list-members.rst,sha256=4lbPSnBNB2FJDe-qMwOpzyQ-rJw3e_YmgD4CcBdKnk8,1783 +awscli/examples/detective/list-tags-for-resource.rst,sha256=oURJm5Ml6iB86ILUlJk6Nmdrd-rQ76970FheM4Xgj4o,583 +awscli/examples/detective/reject-invitation.rst,sha256=vkHOnQHgXWS39DIXZA-6Wk94rUWB7BdmSJnthjiH9ZQ,617 +awscli/examples/detective/tag-resource.rst,sha256=-tO-pCXXGKKTZVWTtXAR1UB-3wGk9cTS1unUyEzelVc,540 +awscli/examples/detective/untag-resource.rst,sha256=d_MphHzlY409FqVa5aojdC1frad2pSAX43dDh4BePSY,526 +awscli/examples/devicefarm/create-device-pool.rst,sha256=L0IkzoPClTfu8sgt1MPXT6ROhoMeeqcJ-MXXFfJ8x8o,1058 +awscli/examples/devicefarm/create-project.rst,sha256=pCZvVlvKadouYnzP3luDATjTRj1HjUXxrsflgE0mVCI,363 +awscli/examples/devicefarm/create-upload.rst,sha256=2jIGfzRH9p1FKzeMO49BXARLZ1MTY-e0VZB4QA-FdEQ,1922 +awscli/examples/devicefarm/get-upload.rst,sha256=CV-ALnMGe3PnTxqfwRlwv93SEBsY-fS822A_qpOoOmU,1000 +awscli/examples/devicefarm/list-projects.rst,sha256=Rd8MTjQ1SdCRf9vsx_LN6NlQxGM-oxdX5qaZGIVPOC4,570 +awscli/examples/directconnect/accept-direct-connect-gateway-association-proposal.rst,sha256=BQoffhGXlA5gZ1KxhHTWoKFUg-OHs1ZAy_dMqT_CAKc,1388 +awscli/examples/directconnect/allocate-connection-on-interconnect.rst,sha256=lnng4LV7AwU5P2cBHqhN3tnRQBf0KhEOWYsHa_tw1oY,687 +awscli/examples/directconnect/allocate-hosted-connection.rst,sha256=Z4t7zJgvwZYI4JNaK0YuI7c53Z9xmf6aTHgZZDT4SwU,733 +awscli/examples/directconnect/allocate-private-virtual-interface.rst,sha256=a_oEHZGuQOa49Kehk4hlMn5LRpCYYRU10Z350oaZNcY,1465 +awscli/examples/directconnect/allocate-public-virtual-interface.rst,sha256=4m7Ip_D93LkKpbGJ43gbT7qoZjVybU6CamclkReXRq8,1660 +awscli/examples/directconnect/allocate-transit-virtual-interface.rst,sha256=Gkv6utMfmhkwZau86n2JAe_VIuYq7mM6s9oTdjmxf5c,2931 +awscli/examples/directconnect/associate-connection-with-lag.rst,sha256=46qC6A2KNPwYubJP6oTanOcEaqjMMA88mAdRvU-RqQ8,539 +awscli/examples/directconnect/associate-hosted-connection.rst,sha256=Y4nlXbY7GSNA9tA9McR1IBpQ84UeJbM-1EQHnaEknvI,621 +awscli/examples/directconnect/associate-virtual-interface.rst,sha256=1x74VLr66Udhvky_zutnQrjFMlnb9PkvtsV3g9dssnI,2150 +awscli/examples/directconnect/confirm-connection.rst,sha256=QpvNphGMssJXgszTlpUj1Yf9sla284IxleMIBoAkZoA,318 +awscli/examples/directconnect/confirm-private-virtual-interface.rst,sha256=sFGTLCdYSRW4ZSxHcdeUSRM7jS1dea50zELBreJFgQk,391 +awscli/examples/directconnect/confirm-public-virtual-interface.rst,sha256=M6fVCeroKb7xSs3VAh1IQNkq0-psHqTsG6ylCgfmEkU,355 +awscli/examples/directconnect/confirm-transit-virtual-interface.rst,sha256=x6MYbWvFVFL4aqve2QOJpl0IglVmz92DgxSMSX2h0cU,638 +awscli/examples/directconnect/create-bgp-peer.rst,sha256=NH0dFu4mW4Mlkw_y04JaPteensj-Oq3izX2rJzZmcaA,2529 +awscli/examples/directconnect/create-connection.rst,sha256=1copju4pfV3GNmuutUAUJvhpp0qYxQT2jfWPopQw668,595 +awscli/examples/directconnect/create-direct-connect-gateway-association-proposal.rst,sha256=HNbwl60Wtmha1eLIUXpYNuf5ZuZtMwoakwCV6ZGPWpo,1601 +awscli/examples/directconnect/create-direct-connect-gateway-association.rst,sha256=vc6b5oPk2DJVwRN_IgfMkXbGhKLcnTdzUbcAvFHVeNk,822 +awscli/examples/directconnect/create-direct-connect-gateway.rst,sha256=29cct0eWlsJCw74-MF2IbjoRjvpvRMZMAzL1YxphugQ,552 +awscli/examples/directconnect/create-interconnect.rst,sha256=eE0O4IJZfeDmKzJctf4jHq8GhAWOlswpVFzjUhaLyoY,606 +awscli/examples/directconnect/create-lag.rst,sha256=GcDbyPYSrMy75bHxCLzQKrDBrBl2_aPih67dZh_Bd3o,3001 +awscli/examples/directconnect/create-private-virtual-interface.rst,sha256=xbXugtf-1eZw0F5X_GcSDNJZ0d7diFO6L9xLSAtZSJc,1443 +awscli/examples/directconnect/create-public-virtual-interface.rst,sha256=hXlgVTiHlC6SQBjSXtr1bFDifcKS7LES9mmWupD4khY,1573 +awscli/examples/directconnect/create-transit-virtual-interface.rst,sha256=Xw2mt10lzxuAGIf7zCL6HeUrC1xT9hIW_mrDeSZhA2M,2993 +awscli/examples/directconnect/delete-bgp-peer.rst,sha256=YG4Q-8tvJZhNQnSFEJYR1cK4q7jkKClox5sP9VTCYjs,2209 +awscli/examples/directconnect/delete-connection.rst,sha256=_tXt3oTBgfDOOdXkxbEYdroK2tLmEMhTseGmHnrB0DE,459 +awscli/examples/directconnect/delete-direct-connect-gateway-association.rst,sha256=XqHQm-0ROUQIJcPYlcf_zsz99K6vTj2PDl10VKFtw-M,1330 +awscli/examples/directconnect/delete-direct-connect-gateway.rst,sha256=fnWIcJ4UFG-zzAuTI6yzsLZr7uX5P2MxFiCHSh17-TE,579 +awscli/examples/directconnect/delete-interconnect.rst,sha256=CXOl19pUKMkrvyzgEpfgvEp5bMDJWZw9ATnO2BlzJNk,253 +awscli/examples/directconnect/delete-lag.rst,sha256=Y_d3R1jwO8gka9s-aAMq0Y-3y9ioiE79az9Z1AT2mkc,510 +awscli/examples/directconnect/delete-virtual-interface.rst,sha256=NGPMpd4zEHcwQ5ZCcB4yat8ryBIFKnwzL6am-eVE14o,282 +awscli/examples/directconnect/describe-connection-loa.rst,sha256=xow_m7RGSDkSB_YIQl8l8n114MyXdQwaPv8JKXzVkiQ,1664 +awscli/examples/directconnect/describe-connections-on-interconnect.rst,sha256=lKcWAtqJdQokia4XhToklnEgDbL2PPgYkL5Fx6rgv1A,739 +awscli/examples/directconnect/describe-connections.rst,sha256=wBIlsvg8nUeAZXaVeH55n-EjWpmuYMFeXV8p7x24Apk,691 +awscli/examples/directconnect/describe-direct-connect-gateway-association-proposals.rst,sha256=RQTikC3fRtPZzlheep3x73saVgZ21vS-Yce9gJJ4lO8,2637 +awscli/examples/directconnect/describe-direct-connect-gateway-associations.rst,sha256=rOEBPNsQzN_17Q-JLHLwIPJ8fH7TXPRC9SXn0gmJKxc,1253 +awscli/examples/directconnect/describe-direct-connect-gateway-attachments.rst,sha256=HDOKz0aj8N9FZu-BrbrQ9oUf9tsUWrKhSVGZXnPngfs,959 +awscli/examples/directconnect/describe-direct-connect-gateways.rst,sha256=8C5QHyX-DykpM9KpOz7xAyf44kyExPGEla1gZcQDa8c,842 +awscli/examples/directconnect/describe-hosted-connections.rst,sha256=Mxl0cErHQ79BfZWGfmz9qwfmryxX3_WHkkmPtesF9xM,699 +awscli/examples/directconnect/describe-interconnect-loa.rst,sha256=BfHgeSrDUEmvYLBzlV0a-S3wmSYlbxD7zWaA_yILvRs,1682 +awscli/examples/directconnect/describe-interconnects.rst,sha256=02esJq5B1Mu65txM5_PUbnLlzMuILu2F-OlhZ3cA4rc,531 +awscli/examples/directconnect/describe-lags.rst,sha256=yimikVLjoCV1CeYER1ZkMIotonsZyu98TbIBPhqTvpA,1607 +awscli/examples/directconnect/describe-loa.rst,sha256=B7u4IwBjhNMeobZnLTKtqePiDc-5zbEqRzy0yIAw1RM,1642 +awscli/examples/directconnect/describe-locations.rst,sha256=LGDOhY_V-HNZBlBS-du_D-pTgTdnboL-BbnBG7Eg8p0,543 +awscli/examples/directconnect/describe-tags.rst,sha256=KFXQt47SpUawoyc15mfVa7wuzpq0c1_Hzic3dUYBbDk,605 +awscli/examples/directconnect/describe-virtual-gateways.rst,sha256=25uPpUxlfu3iWmZs2REP6-FaqtleawgtrJsZxRv1jno,388 +awscli/examples/directconnect/describe-virtual-interfaces.rst,sha256=gZoxAHutvJ8oqp_AVTWyAMNtX4LcCemK0D4fG5dnozY,2766 +awscli/examples/directconnect/disassociate-connection-from-lag.rst,sha256=CCzS7KUow95pgQ4P_tMALhJDRaf56yNTVfShruVoDQU,518 +awscli/examples/directconnect/tag-resource.rst,sha256=Fl9wjEDapBoZemJVYAJeGAV8wjgergThKN4yqQzE4Dk,398 +awscli/examples/directconnect/untag-resource.rst,sha256=WPZsBWbmoy-ozhm-E1YtNjqoUWsVK9pWhgUVNJ43IQY,354 +awscli/examples/directconnect/update-direct-connect-gateway-association.rst,sha256=0szVWNA9N8dFfUKESSzimyNYurpztcdoxok_QlJgUsA,1420 +awscli/examples/directconnect/update-lag.rst,sha256=Wp9A_B1KEmeDcUbJPruJQi9iErOMPn6ZVwKW9G57NLw,1331 +awscli/examples/directconnect/update-virtual-interface-attributes.rst,sha256=Ec26-A1PSh690PQYGVZb4_dHxaSpIEnx8qcrAYkj8d0,2353 +awscli/examples/discovery/describe-agents.rst,sha256=0pfaXNT2BxsaQGjV1WSkhj5pYoV1keqoUqnOPuG7Oe4,1521 +awscli/examples/discovery/describe-configurations.rst,sha256=YK9xTcbri1FtaNq3Sb751EneNKqkYs6cM-9Mp9FDMoQ,6785 +awscli/examples/discovery/list-configurations.rst,sha256=x1ge-dcFwX4S3XYsqlRxq8zwLfNOurIv8LvRANL_lu4,1322 +awscli/examples/dlm/create-default-role.rst,sha256=oOwESdVX1-AXXOGbkqpaCkYNUP2uc1_QGhN52LcpWQk,521 +awscli/examples/dlm/create-lifecycle-policy.rst,sha256=uWUcP-wGueXcpIsf8_fMClkYMTAEkQP53nLwFSXp3OA,1575 +awscli/examples/dlm/delete-lifecycle-policy.rst,sha256=tEY9IcT2CGb9YIYIQqlmv5GEHuRH43wig4E2jsK_t1Q,170 +awscli/examples/dlm/get-lifecycle-policies.rst,sha256=fNGmM6xhJLocdVXVkt7Y3Kc_8_3fmlwz2GO5BUHRtdY,399 +awscli/examples/dlm/get-lifecycle-policy.rst,sha256=ISCUINFAJ7AYWpcZxLgjRo6fkNyl0V5palxc11WFv1M,1692 +awscli/examples/dlm/update-lifecycle-policy.rst,sha256=9T3dH1XD_OmCYUAPCTfxVCYDU_9InqaycUdA-au3z2Q,1164 +awscli/examples/dms/add-tags-to-resource.rst,sha256=u_AKKIEFGVkbBsvml-O-9hoOeG0-FC3dIMjt4aA8x4A,532 +awscli/examples/dms/create-endpoint.rst,sha256=paabsxgvYBdQWv647GOO8Ycpu7GOEWpOXtzvViRnrbo,1746 +awscli/examples/dms/create-event-subscription.rst,sha256=HYJwdMbuzrdezsfWAyQeyRvHLh3f3ERyaSMg2nXCw-g,892 +awscli/examples/dms/create-replication-instance.rst,sha256=Nz6b_C1BSgALLQ2FwepPNP2VLu-FVjR4YZNbLmMduAw,3560 +awscli/examples/dms/create-replication-subnet-group.rst,sha256=sM9eDmDAXmxgly0WN93PMphgG8B0Eh0rq2dG_B26lNY,1750 +awscli/examples/dms/create-replication-task.rst,sha256=_WYfEmU1i1Nzu5OqxQNVwX0KECStrsccWnO0JTyrZyc,1984 +awscli/examples/dms/delete-connection.rst,sha256=jKxCs8p9WBKzYowmOLUQOD_pYaLfqFnF8IotdooKVhk,1037 +awscli/examples/dms/delete-endpoint.rst,sha256=TEm5JBx076Sthp4QuenEFDufCTZERQ5IUHL2H2MaZ2A,1449 +awscli/examples/dms/delete-event-subscription.rst,sha256=bVn1I9XfTGr_yLSB2UkcprkWyXj3kncMfLExP3-MMF0,801 +awscli/examples/dms/delete-replication-instance.rst,sha256=NyI4qrOaxAYZEXbmV75w5n8ljpG3jEcC3O92BqvKHRw,4081 +awscli/examples/dms/delete-replication-subnet-group.rst,sha256=EZ8DmHQVtObHcCMtyL3lM69dfKUu5NljVxd0X5pAG6U,470 +awscli/examples/dms/delete-replication-task.rst,sha256=4PL256qbKL2jAA8yVodlT82_4dYf0Oaz6p2aWOboiGE,1362 +awscli/examples/dms/describe-account-attributes.rst,sha256=eq_1e_viyUnD9aT0XO3msdReUnDJSIAkcmoZkdIaHSo,646 +awscli/examples/dms/describe-certificates.rst,sha256=shDqZlVnq2aYy7OWevEpdH08Qs8hxAtk8mN_a9CCRIw,742 +awscli/examples/dms/describe-connections.rst,sha256=eeV0FuofRp6tBAy4X_kZSCnhN4isTaT8aDSZfV3H-P8,873 +awscli/examples/dms/describe-endpoint-types.rst,sha256=klC9y6KvED_6q7n-uWjckgW07UgoXGoLvQDkQj7JZH8,900 +awscli/examples/dms/describe-endpoints.rst,sha256=K24HcA0-v_Ffa0Oiwqbqnm88mgvxQFnzH7CuYzvyIXk,1541 +awscli/examples/dms/describe-event-categories.rst,sha256=xzyCHoFF3BvXGHOBRH5-tms30n9DoFBC4Ybqy2IF2FQ,1145 +awscli/examples/dms/describe-event-subscriptions.rst,sha256=CnCj_8iyChfmdMX9yFRBDiP9cKFxp6vNgu4paLpp4Zg,826 +awscli/examples/dms/describe-events.rst,sha256=me1pjGjwu1Pn7rAg_yR6tsDiHR0ortd8motGWNT8bXw,750 +awscli/examples/dms/describe-orderable-replication-instances.rst,sha256=j3Ei8vc--kHGyClrwifduNu4mfNY_Hx_seX31DLpYx4,1830 +awscli/examples/dms/describe-refresh-schemas-status.rst,sha256=i79O_WsYQVx53oM_bHiq12pYMarH7sn5K-0p-qLWnQI,676 +awscli/examples/dms/describe-replication-instances.rst,sha256=nQfL9ubdcJc20OlHGCfBwtM5VtwsoO8fDgvMC7POlZw,4325 +awscli/examples/dms/describe-replication-subnet-groups.rst,sha256=ZXxnpwCdHjtesapF7tXzZjpG8IlXl3Dbw_IKnosdt-0,1760 +awscli/examples/dms/describe-replication-task-assessment-results.rst,sha256=sojkzS_lmtk1pT_qGSaQ8hu0Rd6KRbjtgmkCRuohv7Q,922 +awscli/examples/dms/describe-replication-tasks.rst,sha256=G2MTzn8h7Re7PQbyT1pmnDy9px33wRmXu6txlqzpml0,1835 +awscli/examples/dms/describe-schemas.rst,sha256=VBdNI41aUErQu6M0QYFeJ00UARV62HnMyjfOqmwfsIo,485 +awscli/examples/dms/list-tags-for-resource.rst,sha256=_wrOCCYYpVEKaLmmbmOtOXftZiHgBE3mgdusr_NUZ3c,708 +awscli/examples/dms/modify-endpoint.rst,sha256=CmVLsax88msAvj6NhYRtvBh30AbWqpjV6e0sqw8Fw7s,1477 +awscli/examples/dms/modify-event-subscription.rst,sha256=7iH0YL96GfYBobEMoexz5jfWiHhqykTso3aAfSoV1So,894 +awscli/examples/dms/modify-replication-instance.rst,sha256=RI3XdkLppMFQniyxgQ1lAxC1hkBLdc7WjrG-rINmQEY,1274 +awscli/examples/dms/modify-replication-subnet-group.rst,sha256=zNVjnriXD8helmTg1u7SxrIMlDgvnbTCerHig4J6qNg,1408 +awscli/examples/dms/modify-replication-task.rst,sha256=iL5JklltURCyctTruZcM-qnn_9HU1QuhPCpIKnU7nqM,1884 +awscli/examples/dms/reboot-replication-instance.rst,sha256=tW0bRD-tu021UQTk4Kxk12Hi5u1QeArZmAHuemB9bHY,858 +awscli/examples/dms/refresh-schemas.rst,sha256=izawaMnxqAiwrEFdnxD6EM4Oki9Kg2tcku7tgwRo2bE,749 +awscli/examples/dms/reload-tables.rst,sha256=GSkXdhwSfTdrSWnm72ud0TB9_hEdindpaSIxLiiqp0w,489 +awscli/examples/dms/remove-tags-from-resource.rst,sha256=ZVEfUxM6BfJ8emlCJ1Z7tck1ItCLcN_-atk3sdvMj0c,531 +awscli/examples/dms/start-replication-task-assessment.rst,sha256=t3mtd3Q8VaCA3uRGlFBeE70zqL97xmmMl7ZT8bhxpbg,1417 +awscli/examples/dms/start-replication-task.rst,sha256=fuO973CV8dLAw7PlZ5emkH0ZgmwS-LfFA7ypGXwo6qc,1361 +awscli/examples/dms/stop-replication-task.rst,sha256=A7mwksmOksUK49hnI20PfdjUA5CpG2LUqbOFyQxnhGQ,1273 +awscli/examples/dms/test-connection.rst,sha256=5Ou7Jwg_9M-FBj00rhjPe97NLGxALNQrxqi-tvWSZ00,1020 +awscli/examples/docdb/add-tags-to-resource.rst,sha256=lynRQmjUMaAsvMDdeGQgL4iMBQxcFwlZ9gUsRxfpL9c,612 +awscli/examples/docdb/apply-pending-maintenance-action.rst,sha256=csq0ruHoIj46G7Qz7OBLVrYFTyLRW_bHE0TvBus-Tfw,709 +awscli/examples/docdb/copy-db-cluster-parameter-group.rst,sha256=-9yBhOF30Kh9kUKoCDDzHOjI0RhUmknDTsA9GiBS1l4,1202 +awscli/examples/docdb/copy-db-cluster-snapshot.rst,sha256=5HoDctHxH9GQ3WJZbT4npbcicT-i3oT_PAMp9SDZL5g,768 +awscli/examples/docdb/create-db-cluster-parameter-group.rst,sha256=cEkcmETX4_TktsC7wyNxWcLbRVgNa8Ained-v2Bcumc,1054 +awscli/examples/docdb/create-db-cluster-snapshot.rst,sha256=v55B8e1hi3B5YezhhXDd4873vA_K-RmYr6ZNs5ULbmQ,1532 +awscli/examples/docdb/create-db-cluster.rst,sha256=5_MrE8EEM_kJj0ZQJ_ItpweU2vOgn_dLQswhIwmon4c,2140 +awscli/examples/docdb/create-db-instance.rst,sha256=_CWXduehpJmAO02s5bpUoAL6KnQ0O0n-KgBy0NN_qJE,3216 +awscli/examples/docdb/create-db-subnet-group.rst,sha256=Je5-ZnDwNMWJcovaqZepc_buM1STQoEYLcf3qQ5ENPE,1820 +awscli/examples/docdb/delete-db-cluster-parameter-group.rst,sha256=wsygOzl_VZtIM-INjQk0NfVrYI0oUbI5tePiN6K4K3I,579 +awscli/examples/docdb/delete-db-cluster-snapshot.rst,sha256=ug6pk4GzxYsrP7jIQ3zNmSQ2eP3E0q_ApVEISKk01DU,1423 +awscli/examples/docdb/delete-db-cluster.rst,sha256=ytcX2HwHvPnFWDd_LpFK2iu3qKCxn5nlWUdvAlbVrTQ,2202 +awscli/examples/docdb/delete-db-instance.rst,sha256=K_q8VHQt1CicPTBL_iWutRMN5sc5RGEQVrrarRvqJJ8,3325 +awscli/examples/docdb/delete-db-subnet-group.rst,sha256=vNaRv2D0KpsA1bJ7-Ac-st1GS9oUNPF1-FCtsmhtZgo,538 +awscli/examples/docdb/describe-db-cluster-parameter-groups.rst,sha256=O0r8fIVJVjNmzMEEIF1hEyv0PLQHcV1TYFFkpB41VYc,989 +awscli/examples/docdb/describe-db-cluster-parameters.rst,sha256=92XXfWgiUPsm4u88kiUHYIRySrkKYWZdEa2j-2mdgFE,1918 +awscli/examples/docdb/describe-db-cluster-snapshot-attributes.rst,sha256=9AgcSjh770VKRCRttiHxlIspWh5AQ57YX10iptJ_rC0,916 +awscli/examples/docdb/describe-db-cluster-snapshots.rst,sha256=G8d_IK8YM3riF99Zkm8z3aU74UzWfZSqnU_-KPLQeC8,1522 +awscli/examples/docdb/describe-db-clusters.rst,sha256=HLmHuv6hK60JrAVgvO0hR25LhkkDADbPnx0W5CIwUXA,3005 +awscli/examples/docdb/describe-db-engine-versions.rst,sha256=qQvhsoKP3pG1D0VZudkmqKDS6PRh_gEBAdSWQbgb6Hw,1008 +awscli/examples/docdb/describe-db-instances.rst,sha256=Ru4UXj_M3Je0wb-K1q6L4h8LS1oNzZMRJzuNWCmyfGE,3772 +awscli/examples/docdb/describe-db-subnet-groups.rst,sha256=7gRlqwAAhZADdEPqd1E0w9mwb-NufKppGxLeE9PcCkg,2060 +awscli/examples/docdb/describe-engine-default-cluster-parameters.rst,sha256=_iZHB6edmGlrHrWU_dWinknoFTaUuvn5P2663YslzjQ,2205 +awscli/examples/docdb/describe-event-categories.rst,sha256=wS9qrGlpfrY8ImBilF6ojDMNmuJeye0EPT_BnqdAmWY,795 +awscli/examples/docdb/describe-events.rst,sha256=PUr1fQk8gBdLc551pLZmnjaTL9wZRqPDwvXQ0IuWPJo,6293 +awscli/examples/docdb/describe-orderable-db-instance-options.rst,sha256=Q00jykfdNMOvs8cUyS5glJsVnWCUsiunnUlIZam0mKs,4453 +awscli/examples/docdb/describe-pending-maintenance-actions.rst,sha256=BMKf0HY5sY5KDgleVWWegVPzfGFz2avkE_Z0Y2VTdf8,498 +awscli/examples/docdb/failover-db-cluster.rst,sha256=RSP2nTffcYXcqEfTzaTKvp9oJ2sy81LQFz7fpdMi8bw,2668 +awscli/examples/docdb/list-tags-for-resource.rst,sha256=Ps1TRDWX37bX6vrZtGCA2a9fT4Qbx22m38nR9dS9iic,831 +awscli/examples/docdb/modify-db-cluster-parameter-group.rst,sha256=lzMOH_8sDYBdqunPmetRZ2PAiAhVr91uA0-sTkq_0Lk,952 +awscli/examples/docdb/modify-db-cluster-snapshot-attribute.rst,sha256=_KGAcmfak_dQZtLltUPq8dJAKhvvdecLbN6nw7m_0cI,1954 +awscli/examples/docdb/modify-db-cluster.rst,sha256=0H9ArKz1NjSBBVvgsX9tvzPwvHRdWhngq0i5DFUz_Zc,2983 +awscli/examples/docdb/modify-db-instance.rst,sha256=NP9yhuftp6qQqNnFGzUnr6fiedWDqDfK5cMV6HVOOLg,3626 +awscli/examples/docdb/modify-db-subnet-group.rst,sha256=zFygG1RjNs7wZgdJWWnRmdwObsKdGTnFxeZ0A10sLnQ,1848 +awscli/examples/docdb/reboot-db-instance.rst,sha256=JXPrujyzmuz_lToT9oI7u6zpE3qvWIZyLTypsN6CRKk,3313 +awscli/examples/docdb/remove-tags-from-resource.rst,sha256=BOcFZ-cgm_OKvKvlwnSNnrem3nbA361l-_-mIVmdQw8,602 +awscli/examples/docdb/reset-db-cluster-parameter-group.rst,sha256=abcvFUj1rDk_RGybDEiWOZfdZdMfl7_LaZ3lC4PtFHY,1381 +awscli/examples/docdb/restore-db-cluster-from-snapshot.rst,sha256=t83M8L5FX1DOCYJ9jeSm2v1eiu5w--dOb5VrtX5dBiI,2292 +awscli/examples/docdb/restore-db-cluster-to-point-in-time.rst,sha256=7aGzwM356o6uUm59AGlAlDyuTjEFh6VLun0U-7gcaBA,2232 +awscli/examples/docdb/start-db-cluster.rst,sha256=sm5ESyTlWc4a4AomHqPD2eUen29BwnvZRMvMuDPw0iM,2008 +awscli/examples/docdb/stop-db-cluster.rst,sha256=QPWJFrbuwuy-I2XqghE7GvGpm0JfQYGSRIrhalxXdJ8,2004 +awscli/examples/docdb/wait/db-instance-available.rst,sha256=me-f81tyQJfpj78AXNZ9wyMRr7Y4S_9gRdiPMXy-cHs,339 +awscli/examples/docdb/wait/db-instance-deleted.rst,sha256=F_dWNNA6z3xO762T51U4rZvcv8QAMP96u-bqEg2gfT0,355 +awscli/examples/ds-data/add-group-member.rst,sha256=Ue4uCWqh5sw2GmBeREE0muujjiyh_DVyZvfe1h37nDo,613 +awscli/examples/ds-data/create-group.rst,sha256=IxKL3qKt2w_iwhQfC-4yIyhzSpaBcfp-b7sOHQoiUhM,621 +awscli/examples/ds-data/create-user.rst,sha256=ByBr0CupAp9hjB6Cpa4OtoRuL1eKqMv9y6xRd53Shis,610 +awscli/examples/ds-data/delete-group.rst,sha256=JvPsvYEHYlEbi7XMczKKzFTk-1Au6ey06zP1khBa7H0,490 +awscli/examples/ds-data/delete-user.rst,sha256=xsXzmsMlA39ZpEbx0zEemZQW4_74CACvrmYvyGtbH3o,487 +awscli/examples/ds-data/describe-group.rst,sha256=WuB95ANHWDavekOfsSY-Nhy2W5KfhbChdQm19uvonk4,865 +awscli/examples/ds-data/describe-user.rst,sha256=ZChVP-7lAz9l-WOHZNA7HocxkoSOWWz1CccaYH56-Ds,894 +awscli/examples/ds-data/disable-directory-data-access.rst,sha256=dZmz6mJltZ7q_fSaUHZtLEhgv7RgOPEZiFn4M5bEccQ,583 +awscli/examples/ds-data/disable-user.rst,sha256=nNKucRz1Nz35HnQXodch6wlIZO13V7K6odNhZ4X12GA,491 +awscli/examples/ds-data/enable-directory-data-access.rst,sha256=HpYXvjC42WzKnA6X5Jok0kVmcJIdw3BDo1BWLyRHtsU,579 +awscli/examples/ds-data/list-group-members.rst,sha256=XYfgZ94JkFUhRaQb6trnKjImfmde101wm1Z2dNO4nTA,1091 +awscli/examples/ds-data/list-groups-for-member.rst,sha256=uJZGBVrpNjHFqwxHUNIfqMbkBoVdnP_VBm6cBeQL9hU,948 +awscli/examples/ds-data/list-groups.rst,sha256=Gh6S6wqNZY0eyIOi3Y8yX3JG5MeurpjnJj8hoy19IRw,20681 +awscli/examples/ds-data/list-users.rst,sha256=VEhyCVMIR6qk_Z_hW327dhViFAHAgiblWHBTKqdVRo8,2038 +awscli/examples/ds-data/remove-group-member.rst,sha256=m8oCsLVwJnPtqaalHkUYPO_AkbsmP0hx0Uov_LJVc-U,638 +awscli/examples/ds-data/reset-user-password.rst,sha256=jez5IaQUrVtezHEy12FxbUVCINIWIDzJ56bZrLsSZfo,589 +awscli/examples/ds-data/search-groups.rst,sha256=NaxPfc-CDzukpIYI1_1EOcwWwtclvC8CK9I45aYbrME,922 +awscli/examples/ds-data/search-users.rst,sha256=n2idzVZWPlL1RS5QMz3qcceHfJYIF72rbDRKzxAEhQI,858 +awscli/examples/ds-data/update-group.rst,sha256=4elJWEyi34rRWJYqewh1ad8MvKQWe4NwW3NPUXFC1-Y,644 +awscli/examples/ds-data/update-user.rst,sha256=Igitnjw5JVVX6F1rUBMPT4QXElb1cZzUlejC3vrKiZI,634 +awscli/examples/ds/describe-directories.rst,sha256=mHzOUTY4H_8tqnNEZE8ePfwUEP7KRSgHeH--DlOE80k,1858 +awscli/examples/ds/describe-trusts.rst,sha256=TDLNUaIR4lU947Gra6wufreoywV7ZRSyLRcMqqbmpo4,888 +awscli/examples/dynamodb/batch-get-item.rst,sha256=8UgZcFW1-D4vfUzmcs64LgKqQAd65VwnUYniZIFYVj4,1993 +awscli/examples/dynamodb/batch-write-item.rst,sha256=lLhSR5YbnzY7vDqzvbsslQgKCToqNwr1yFnLnSBxL1Q,2985 +awscli/examples/dynamodb/create-backup.rst,sha256=fzg8tBGyFUQOs6Mqp5vZ18hJJIPcGWjEAOTZ7DFRjcM,860 +awscli/examples/dynamodb/create-global-table.rst,sha256=mVzqiEFUlcVWDnh7MtPCmOtbeml22BrpDenhB26nzps,1052 +awscli/examples/dynamodb/create-table.rst,sha256=4veWibr6I9miaXJ3VtlZul6GPh5FMuueLdaV8ln9qpM,29206 +awscli/examples/dynamodb/delete-backup.rst,sha256=KllIcqoO9T_aO7lIK-N_CiYNcuggHVoaBgR5b5sJpp4,1893 +awscli/examples/dynamodb/delete-item.rst,sha256=sPkSIxcJMUtcVmtnRa1S3hPCkq1x20FImh_pYlkSPFM,2866 +awscli/examples/dynamodb/delete-table.rst,sha256=y7AdqebkBFMp7Q9GrFX4kp6E317xlajC3b-KNqE6USA,789 +awscli/examples/dynamodb/describe-backup.rst,sha256=lkHBqWuZ4P1hd5TIyEkhLQ6ZzU5Ddp1ehOEuSzt6kLs,1935 +awscli/examples/dynamodb/describe-continuous-backups.rst,sha256=gyV11T0W3K4FyI9JvospVw973-7h2wCjVz1CIZypi3U,745 +awscli/examples/dynamodb/describe-contributor-insights.rst,sha256=GIY4UEpDK5zj2A08xKxN7hhKzV1nO4Ux4id4GvWwr0A,1172 +awscli/examples/dynamodb/describe-endpoints.rst,sha256=LILFFwnuDOL4Wmy5IW_UdFtVfHBRcd5Onf4gHfKVbys,542 +awscli/examples/dynamodb/describe-global-table-settings.rst,sha256=ZYVHi6qhmr18RTDXK-bZ21Z1bKkV1oFlHsvFrhuIDCQ,1590 +awscli/examples/dynamodb/describe-global-table.rst,sha256=9JdgyzIQ2PTIUpmp6EQLbPFq-QrQlGPwQZQVa1bOZj0,952 +awscli/examples/dynamodb/describe-limits.rst,sha256=bkS-HVV2wTpOEfSdlzKtBzk27WEz1F_SqQBC5TJIBHc,576 +awscli/examples/dynamodb/describe-table-replica-auto-scaling.rst,sha256=9LQibzJ6iBA6Epu_Yo-Vt9DEDpPPJKMSvk6_B2wOGo8,4206 +awscli/examples/dynamodb/describe-table.rst,sha256=9_v_qxKYY9Ggr9lUZ_6C5Nn_l5qePOq8VgAcATk8vEM,1439 +awscli/examples/dynamodb/describe-time-to-live.rst,sha256=Yd7ee298Tvdm0ezPL9lmd2QkMgg51dr6t_2SlW3zzgU,551 +awscli/examples/dynamodb/get-item.rst,sha256=rohpPtGD8znaq7AfdOnOr9o5ou_Ze6uffChOwOprxic,3245 +awscli/examples/dynamodb/list-backups.rst,sha256=arf696f2oYWbAxqHbWxaQr4z_Yrb4BJKsyRlJUizhYY,7556 +awscli/examples/dynamodb/list-contributor-insights.rst,sha256=K-5RyERhKtyQdgSmyHnJcuQHBMyq85FYpngMr_kcSBM,3414 +awscli/examples/dynamodb/list-global-tables.rst,sha256=KFTiz6yXFs6CbXvXEGdqGHnEk_zyhHfr2kYgtKJN0Kk,739 +awscli/examples/dynamodb/list-tables.rst,sha256=U4SjUrWN6GEPSDncAaGlsl13TiZBBwz79RC6kQbRw2U,2860 +awscli/examples/dynamodb/list-tags-of-resource.rst,sha256=-3YX_3ze1WlJVDQdxl3aN_ZvPyrFq4aEn03y26iX3Bs,2396 +awscli/examples/dynamodb/put-item.rst,sha256=xGxdjjfxqSP62dhkiCH2dGuxueTAi_f2lCbu9MF8q_o,2747 +awscli/examples/dynamodb/query.rst,sha256=rFzyEHYlqzSinm5f1Itj2-2oDd8BFhpoXhY2u3btPeY,7047 +awscli/examples/dynamodb/restore-table-from-backup.rst,sha256=_2H_p0R7zNMz9M04YNBNPl-Gd8LgMjCykYi_dqjJWs0,2219 +awscli/examples/dynamodb/restore-table-to-point-in-time.rst,sha256=GhMzCVr4Q6L54vpja-vK1SeGkD0F7JvyFaZAQS6Nqjo,2100 +awscli/examples/dynamodb/scan.rst,sha256=5d2gn6KKdlah8qA8bCHMzELF0KY93_he8Q4U0lyHb4k,1518 +awscli/examples/dynamodb/tag-resource.rst,sha256=mglF4JKQmsfshhaGpitrRyDgwLj9mC7DSLkAS9eXK_I,510 +awscli/examples/dynamodb/transact-get-items.rst,sha256=R82Hs94k9z5DaL8mvA5emp1gISx2nA41ozbiNxkBNLw,2064 +awscli/examples/dynamodb/transact-write-items.rst,sha256=AQ_6WrrjfzTqIyYqHUvAnqfCNSB_WdLaTxgJ7uPVAMk,4074 +awscli/examples/dynamodb/untag-resource.rst,sha256=wR_JiYefNnplTBZVsJOg9Bo5MoSEHG42e5YNjmvcI24,521 +awscli/examples/dynamodb/update-continuous-backups.rst,sha256=i_i5yTXs6moh3SJAnrh8Vhh8q_V_PYInia4-Vv2McYM,908 +awscli/examples/dynamodb/update-contributor-insights.rst,sha256=_-9mhQaGPG1VL8fXOHsUJp3tonPSTabotCPRgdLeG3I,780 +awscli/examples/dynamodb/update-global-table-settings.rst,sha256=8jXr66vTcdhbP1EVdALRyJ7MmQQm3pZmlXlga_eIMmE,2197 +awscli/examples/dynamodb/update-global-table.rst,sha256=Ij_DEhWJ3QCa6kARpWO-tAmpZbbK3cr0sibBmUxM8PE,1090 +awscli/examples/dynamodb/update-item.rst,sha256=Xx_TCRiVZ-ZGilO4U32Lx1-hbWUleMPfKy-sE46IRGM,3475 +awscli/examples/dynamodb/update-table-replica-auto-scaling.rst,sha256=VBBSy0zkNf_KZCsoCpWwOop-gVjVabSgHG84Mt0gsu4,6442 +awscli/examples/dynamodb/update-table.rst,sha256=dOotnizW12t3TpbSXagbYy2oTV6_LXhHAZUwvXScGF4,14613 +awscli/examples/dynamodb/update-time-to-live.rst,sha256=0Zp_tSQeQOpeNfLXCrM6l5sa2k0ZaTjlJW9J2x71GO8,585 +awscli/examples/dynamodb/wait/table-exists.rst,sha256=TvaaiP2a8seijk6iSGHnf037_RSOrv1IDCz_6Z9KtP0,462 +awscli/examples/dynamodbstreams/describe-stream.rst,sha256=qJXS79wdPanAYPrqrv3EQUvjfMh_MMSKYgEjZCqAo60,1935 +awscli/examples/dynamodbstreams/get-records.rst,sha256=kb4ZPA2nglGqE3WrdetwH-GIvLrLMdMo3vmYKqykZIE,6488 +awscli/examples/dynamodbstreams/get-shard-iterator.rst,sha256=ayqUFi-TcanD4LDMeVfYtIZFl48VmStYEJuwCqDI6L4,1344 +awscli/examples/dynamodbstreams/list-streams.rst,sha256=e59ZAoMZ3cqaa9deME-EFnhGIv-6zIK-H3A_fhPwwk0,695 +awscli/examples/ec2-instance-connect/send-ssh-public-key.rst,sha256=aFwRIlfojqyPnyHVgxuIZ0AI_lp6oCucQxaIM_jxUH8,472 +awscli/examples/ec2/accept-address-transfer.rst,sha256=Bjxb_3Ch0gmmYIPS-cX9CuEl1FF2rSKBj8hE8vyszBU,874 +awscli/examples/ec2/accept-reserved-instances-exchange-quote.rst,sha256=jQeLEd2qwmoO48yIuYVnCHMmkMD-a-OGmnAk4P2VcqQ,416 +awscli/examples/ec2/accept-transit-gateway-peering-attachment.rst,sha256=-nfVy91OBpqwWgAIZofbsjry5uvNbzjaBNfy2qTjJs0,1215 +awscli/examples/ec2/accept-transit-gateway-vpc-attachment.rst,sha256=jpJbXapJovrH81EaddYsu1Wyd1O8EVBozUyFg_ne788,1083 +awscli/examples/ec2/accept-vpc-endpoint-connections.rst,sha256=WfmQJblgsn21J_XdCYN0s1cp6XQ_77AIJKUWGAvRVIM,334 +awscli/examples/ec2/accept-vpc-peering-connection.rst,sha256=xxOVMKH4TepZErom1jluhbPLew2OQM56VxRlBOpCo14,691 +awscli/examples/ec2/advertise-byoip-cidr.rst,sha256=guFQVkTgtB0yCSU5EohTSxveSn2zYFobkIYvk2Vw0AE,397 +awscli/examples/ec2/allocate-address.rst,sha256=ERnxi_mg4t194nwjIV-AtusFxS0uN8jb69Lv0aIkQpA,3230 +awscli/examples/ec2/allocate-hosts.rst,sha256=b6KMbykdMO7PPCKotirMr7r8ScLVGTDZ0IVI0SPJBaQ,1816 +awscli/examples/ec2/allocate-ipam-pool-cidr.rst,sha256=K8K_huAqsv4q6EvJr0ZHd1kMdvFJ57tBWEXJ63BcphY,896 +awscli/examples/ec2/apply-security-groups-to-client-vpn-target-network.rst,sha256=eVJEjIayPxFAC9hlrZQgtNMMegUjQD2SUK1dr1ll6Fc,781 +awscli/examples/ec2/assign-ipv6-addresses.rst,sha256=xf-dNqwP2dm6pBngss7Tt6FuvmnLIEplWIR0-nyVNa0,1102 +awscli/examples/ec2/assign-private-ip-addresses.rst,sha256=ZXWQesow8d9-JtA6PqxHjcth6jOwdDlnHaX3QyqeVSI,866 +awscli/examples/ec2/assign-private-nat-gateway-address.rst,sha256=q1Fq_hgy1DMJIEig9L1S0b6d1-2_yo37HFk1u2Sk9nI,954 +awscli/examples/ec2/associate-address.rst,sha256=SBZ1ZiICZbz9IT6RJuTsPHKBj961Nj_KmvO3hXOb5IM,1447 +awscli/examples/ec2/associate-client-vpn-target-network.rst,sha256=U1Q9DjHDQCqVMHRSDFQWCGlUYAMSvNCo9w8MPzg_zGQ,668 +awscli/examples/ec2/associate-dhcp-options.rst,sha256=PEbGfnPIaQCJ2a8CSqakqdaaMDTXmOjd838mnSzNB_w,557 +awscli/examples/ec2/associate-iam-instance-profile.rst,sha256=Gt5GgQkzluUn3CIW80Dh0T_9IoEQaYo7mr4vIvD8zqA,650 +awscli/examples/ec2/associate-instance-event-window.rst,sha256=YdN-IXxLpg741B7mNaBjh_HS_JaozKO4bnRaVR__338,3985 +awscli/examples/ec2/associate-ipam-resource-discovery.rst,sha256=sFkNRJnKMSR3dviksPsMUrZuuPu93W8zjawOOfbIzKU,2463 +awscli/examples/ec2/associate-nat-gateway-address.rst,sha256=1Q7Tov_3qlbtE7Z9Ay6cYxmTq5kv3IuUv5HQMOsU60Q,927 +awscli/examples/ec2/associate-route-table.rst,sha256=_22MuIifivsDbqBFUoX6_W_X4yKfmR1yJ4V0Ytuym3E,286 +awscli/examples/ec2/associate-security-group-vpc.rst,sha256=UO3mkvF7cc6NlTokm2USI-Rs70FK8V70jutVNFdEdhE,553 +awscli/examples/ec2/associate-subnet-cidr-block.rst,sha256=poJlw3xwU6-djpycsoFoZQ4Z5XOGhmmnDJL8aXEWYzM,521 +awscli/examples/ec2/associate-transit-gateway-multicast-domain.rst,sha256=uJL5yGsDopwRrLQDlEekipfMrPIksBRWaN8L1oVpEGw,1223 +awscli/examples/ec2/associate-transit-gateway-route-table.rst,sha256=NhrjQY6QVN1IkyORhuD_rugFbAMlAS0tqqoDiCEsrMM,912 +awscli/examples/ec2/associate-vpc-cidr-block.rst,sha256=W8chPFmtB_qQiIagaJPXgET_EYqXu-P73cZWePTkHPQ,1257 +awscli/examples/ec2/attach-classic-link-vpc.rst,sha256=E_IcPkLGpxMyoxgb6KUI9JUuf3tYaolBcdBIlvx2z3w,328 +awscli/examples/ec2/attach-internet-gateway.rst,sha256=5ulRNI0lgzy_SvH430hMJyd5WVGjxsLh6FWMhtb2n6Y,495 +awscli/examples/ec2/attach-network-interface.rst,sha256=0w6XINgPcyedTp1qBEeYODhrQAUXCM5NtKl9R1on_Ao,1285 +awscli/examples/ec2/attach-verified-access-trust-provider.rst,sha256=zDEAakHUkrw3KE3f1DbQhTNINTYYPKLjCJ1LxWKzT4E,1576 +awscli/examples/ec2/attach-volume.rst,sha256=UXe9OqCeAdsE63jhprEnUAdjzEYNSz5vhitzgVeYMXc,498 +awscli/examples/ec2/attach-vpn-gateway.rst,sha256=Nt9nD2GljfM_f_mveXwUZMUTFGT7uCfHMxooE2qAqHA,422 +awscli/examples/ec2/authorize-client-vpn-ingress.rst,sha256=04mpx0tSibIWKIap58J1B5thqscII01pCzOAZWt0_W4,666 +awscli/examples/ec2/authorize-security-group-egress.rst,sha256=9GB52PkLo5St2zt4Xag9wZ8zOgpT5HBtccj_kgYmunY,2082 +awscli/examples/ec2/authorize-security-group-ingress.rst,sha256=m7h72ZX4WRCohTXBv--C_rY3bh7ZhjlJaxoJh4CKMNs,8499 +awscli/examples/ec2/bundle-instance.rst,sha256=tOaXA4H6nENOgvdM5azHE3P6yXuTLrgYdOCLkusWY1k,914 +awscli/examples/ec2/cancel-bundle-task.rst,sha256=QvvN395ijIqWb-lS_i3BbXutcq7v6FzdUikNGaChLIw,514 +awscli/examples/ec2/cancel-capacity-reservation-fleets.rst,sha256=AyRNakwOiltaxC1dWO60TRzVuaCnSG95ehDOi9qJ_P8,1148 +awscli/examples/ec2/cancel-capacity-reservation.rst,sha256=ynLBdf4_CEU0vwNSYTqvY51LP-DOMDIptQipJzSf0pQ,479 +awscli/examples/ec2/cancel-conversion-task.rst,sha256=hB-UlstSTIAHbWGPk1dmWQzhkk2zu80rfPJytPae9Gk,274 +awscli/examples/ec2/cancel-export-task.rst,sha256=GfbCGO2928mGOVOa0YC1Qg7PekuFa_HRfiYG3x1mS5g,240 +awscli/examples/ec2/cancel-image-launch-permission.rst,sha256=F1tgivpWLw4eqIZXqOhGMCjuUh0f0Nvk7WrZgrfvnsk,618 +awscli/examples/ec2/cancel-import-task.rst,sha256=Nlmrjm4TOcUmoUcMJTIOWrd-U5B44iYs99MDCpi8B-E,363 +awscli/examples/ec2/cancel-reserved-instances-listing.rst,sha256=p3bd3u2DeHQAgQbpZfMgNBxxITGjrSwJrkKUF8m2vXU,281 +awscli/examples/ec2/cancel-spot-fleet-requests.rst,sha256=E-aCQs4ukPnqnaczvNiXiJYicZ5ejcggdsGlkFowOjE,1704 +awscli/examples/ec2/cancel-spot-instance-requests.rst,sha256=W0bot8zzxHeC6GXa5AG1CWOeRDqMm4szAHWpL6uhtFo,368 +awscli/examples/ec2/confirm-product-instance.rst,sha256=c8rWGguZrdYdrXMBDVeLQA7Fn0dwTLwKyTGELNwZy2o,292 +awscli/examples/ec2/copy-fpga-image.rst,sha256=6VWbztfLo76g5ueRc84Fc0KvFRM15N-m7SRJMMCGeKQ,347 +awscli/examples/ec2/copy-image.rst,sha256=i6P7bUUgwi0Eaimn2CEW0NpVO92umS0CnCbyFbL6Yko,2035 +awscli/examples/ec2/copy-snapshot.rst,sha256=3ZRJvlxUZVo8Ix_1JmZW4kQgzs0WjGPY8H1VrGY9fzc,1211 +awscli/examples/ec2/create-capacity-reservation-fleet.rst,sha256=QwUNM7quxLhJ_-Zg40Mmf4W7tuS3qMD6fXoADq8doao,2244 +awscli/examples/ec2/create-capacity-reservation.rst,sha256=Fz72h9EnbmW1sQo2ilLp371vdWwm30vSuvbrMjvEll0,3928 +awscli/examples/ec2/create-carrier-gateway.rst,sha256=NncRElyBoUbHgInWP2bB6LNTltGU5jwKeLzFLocM6ro,632 +awscli/examples/ec2/create-client-vpn-endpoint.rst,sha256=vwc6rmQWtlbQpH0e0YgoazBcrrtJ5U43m04CvFzGc0M,1099 +awscli/examples/ec2/create-client-vpn-route.rst,sha256=f9F_Ntauj591Gmwe33q8jzQYYbxoyW776OnrgLtJfTU,657 +awscli/examples/ec2/create-coip-cidr.rst,sha256=P8KXNdilBO_TbIozOwcKwlYEDyspXHDBpxocGhlfSUQ,710 +awscli/examples/ec2/create-coip-pool.rst,sha256=tSjTbIlfmgVxc4t-7v7m2i5HIY2wK0MUEwH-qP2ceBc,744 +awscli/examples/ec2/create-customer-gateway.rst,sha256=zrVVFueM5PBjW8vJRdHH7PeN1YuqpJHIskANI5Rrf_I,455 +awscli/examples/ec2/create-default-subnet.rst,sha256=9ebTG1N0KHqGmHnmHtricib416iHANclxTn-V1C1IwM,620 +awscli/examples/ec2/create-default-vpc.rst,sha256=ijgtT8tHf2YtjBc9QcAH3GPbJ9r2sg_9CqXIY0gSxiw,417 +awscli/examples/ec2/create-dhcp-options.rst,sha256=be4-oTM04vbaQ75W3ZlJr87QYQ_5Pb2Sivww1Bk0VHU,1399 +awscli/examples/ec2/create-egress-only-internet-gateway.rst,sha256=dXSONRSikexgWKJHsDfcvYdI9j6jJpuIMB-r9eIPAl8,469 +awscli/examples/ec2/create-fleet.rst,sha256=CKOqjVIVPWffYTnKXTHyMGTZSffStgWOufm3N9NH5D4,5583 +awscli/examples/ec2/create-flow-logs.rst,sha256=64p5X4o_0rB9RYgYc7vRm1SLgiU1kuJor0GFO4qvp8g,2702 +awscli/examples/ec2/create-fpga-image.rst,sha256=uEQjFlNi33RlbVUiqYhpQbsHS91NbUmWehwft3E6y74,451 +awscli/examples/ec2/create-image.rst,sha256=ca_CJXxF5PuQheqnUVjRyvzplEHgQdY66_FtX3hoOXM,2110 +awscli/examples/ec2/create-instance-connect-endpoint.rst,sha256=Uca4nXtGxZ8jNW8kS-kIuGgJAZ2tQq1TRGvX98uLsj0,1420 +awscli/examples/ec2/create-instance-event-window.rst,sha256=nKP5xiNmqnS_fc67dRp7MaiRDntv-VKC_Jb0voTIJ48,2449 +awscli/examples/ec2/create-instance-export-task.rst,sha256=CBIVQL-kJPdhGfwjTs1VthHLrUoVm31_WKtZrrY8r9s,921 +awscli/examples/ec2/create-internet-gateway.rst,sha256=Kf1p3ayv6xbeqLxev3Plr8lmetC3ya1vdaig5tqmdBY,790 +awscli/examples/ec2/create-ipam-pool.rst,sha256=aquM5RsrXFqtvPyTzZ2eH4Ft3Uw7YNbCPb-UWZEArps,2371 +awscli/examples/ec2/create-ipam-resource-discovery.rst,sha256=Cz4cWC7taN9bc8iGD99J_MJ3JumsIfnXnqRai6NmwNU,3315 +awscli/examples/ec2/create-ipam-scope.rst,sha256=SwlR6f1Fc9Lc18nU6A9b7viqJiJZ_EyL0nnxiqRF0To,1482 +awscli/examples/ec2/create-ipam.rst,sha256=LXui8QGNRALd_2AM-dHBecNK2b36NMbDAbwCo8-km3Y,1677 +awscli/examples/ec2/create-key-pair.rst,sha256=FBy6rOueSKi0LMmGjMjz37lx1adVquR0pcRxNG6ptCA,435 +awscli/examples/ec2/create-launch-template-version.rst,sha256=PNd1z4kVrjNcSom-cbDX_X_HcoyAyHWvVjHSqSeTFIc,1273 +awscli/examples/ec2/create-launch-template.rst,sha256=ycqInP0XT8hU38JLfiF6MraMht9aaFiTZJEFKuXUIyY,5957 +awscli/examples/ec2/create-local-gateway-route-table-virtual-interface-group-association.rst,sha256=avHmUX0lvV9hg4rlVJfCloE83hAJdx7E37-WaD2q5lI,1325 +awscli/examples/ec2/create-local-gateway-route-table-vpc-association.rst,sha256=55SPF3b72hfOYoepQ7c-KNCdAt8uyCHU2J3waRwIGuE,742 +awscli/examples/ec2/create-local-gateway-route-table.rst,sha256=pp3Jp2IyItj9vv-u-NkT3dY11F4kDZIrgOeFGeINjx0,1026 +awscli/examples/ec2/create-local-gateway-route.rst,sha256=4D5mxFiPGu0V5OXSpPigofJ8mRKcbhEfzJyv0X_3KYU,657 +awscli/examples/ec2/create-managed-prefix-list.rst,sha256=6vsGSBPamXUsqfs_w4ZT2A2VjNpuCSxWPPQRdssl3f8,1024 +awscli/examples/ec2/create-nat-gateway.rst,sha256=UplCZm_BbGFePm8ED_myLqtWfwTAOk3fVlumcJguU5I,2017 +awscli/examples/ec2/create-network-acl-entry.rst,sha256=V3YSdAoKdRAJUG2yZWGC1ou3c266WO2xaDjbgwfsI2Y,778 +awscli/examples/ec2/create-network-acl.rst,sha256=h-Dve97tMezSR7uzy10z6YlOUbudheHS8WG5xT4L4zo,844 +awscli/examples/ec2/create-network-insights-access-scope.rst,sha256=aNYf00PxNDPZopotKbbJjOPuJ2-bQ6cXYp7CBqwk2D4,2373 +awscli/examples/ec2/create-network-insights-path.rst,sha256=Qnlg_kfGp9ymSM3BwOQXmuOUt4Vu5c3E9Qaw62P97Dg,1174 +awscli/examples/ec2/create-network-interface-permission.rst,sha256=-FuTJc8CMY-Xeukw-jKHP1uOFu3OxolVS_b2qX5IkMY,643 +awscli/examples/ec2/create-network-interface.rst,sha256=j5tOwavm-qgu3oVFkiom9uZq5X5Sj-CFZryOxWXfPDw,7259 +awscli/examples/ec2/create-placement-group.rst,sha256=P6rdnd2XDuGcH1kOfXBsKbAQDSX6ghskwQdGqBrJZZE,452 +awscli/examples/ec2/create-replace-root-volume-task.rst,sha256=9BI3bab-IJU4zGQhdb05Xa0PqyOA4LKTZ11yNAYMBao,1492 +awscli/examples/ec2/create-reserved-instances-listing.rst,sha256=zjc_DYKC3icKenPXUW_Xwl1Ff6fhiqctTmQqOCb0S1c,491 +awscli/examples/ec2/create-restore-image-task.rst,sha256=0j4qJzH8rGsYRR8WMQVSW3MD3XRhwQixYL5q_7y7uIU,884 +awscli/examples/ec2/create-route-table.rst,sha256=fpq_DD4aVF8xCAzo2xfvw-wL7L26WGPvQ2hNxIGXojc,561 +awscli/examples/ec2/create-route.rst,sha256=-tJeeI5YPJWHZyKbCuRzUF5_texY9TUzlWlv-nNkCko,1142 +awscli/examples/ec2/create-security-group.rst,sha256=qyfXr5MxM1JS9vo8S6qFVAoDiL6TMtuq97-kFwTdaK4,775 +awscli/examples/ec2/create-snapshot.rst,sha256=KSeCenj99t-Jvo1XfJag_RSC8-MOjXa_tVFBGNmAz4o,1532 +awscli/examples/ec2/create-snapshots.rst,sha256=5ggqNqk3ecUkUf30DKmnqs5U4JeZ2YNiwYfIRLOz0dM,3385 +awscli/examples/ec2/create-spot-datafeed-subscription.rst,sha256=OfKBRGyDNXg7LyeANewncCwJIlj3lhmON3nhlPrJF98,877 +awscli/examples/ec2/create-store-image-task.rst,sha256=rkoeLQ_xMIpmXIgNCz38rFEPcLPw3O4Qiytr3DEIcMI,576 +awscli/examples/ec2/create-subnet-cidr-reservation.rst,sha256=86S7n0IcNts-59xo1Ugk5W0_0LrNKFoTa0l0nRWH9dw,818 +awscli/examples/ec2/create-subnet.rst,sha256=BV3yRw2N-NWM9WkOYQ1UQPrIAMo4jXBzwZjkxWYtGXY,4560 +awscli/examples/ec2/create-tags.rst,sha256=yKtRgPiB9kSIuzoQIcH6fmILyoDtrDld5QwDqnTEQV4,2354 +awscli/examples/ec2/create-traffic-mirror-filter-rule.rst,sha256=DhboeJ3MLHkD2P_cybeF_nW24BA61aiTKGSo-NVvgww,1381 +awscli/examples/ec2/create-traffic-mirror-filter.rst,sha256=7-CidcB2bGpO0sbHkUUy9qN-fXJ2bMSD2LMzY-_Fi8g,863 +awscli/examples/ec2/create-traffic-mirror-session.rst,sha256=K4MhNO7N2M7A9Y0OxF3V96hxUetBbqMVHsWAYL5Xf1k,1317 +awscli/examples/ec2/create-traffic-mirror-target.rst,sha256=Y6fOIVRD__I_dZf7_GxHbYt2lzcHFJz9hgLUPHs339M,1850 +awscli/examples/ec2/create-transit-gateway-connect-peer.rst,sha256=aTjJexT4YXKXpbaQeC5BwENrXTII4ku9TKVtn_y4tXE,1836 +awscli/examples/ec2/create-transit-gateway-connect.rst,sha256=HTu3RJjmQ0Y7rFfS-ddVZjHCzD2dD7sA8laI7JAm4uI,1019 +awscli/examples/ec2/create-transit-gateway-multicast-domain.rst,sha256=z-pj-DqAOcsK-tn9Piil95-tByQcKcmcmJ1bYIdDrCA,2565 +awscli/examples/ec2/create-transit-gateway-peering-attachment.rst,sha256=_knqgllRkiTLTz6eIYmc1y1mF3BPi-mb8cjiuBVxeA0,1237 +awscli/examples/ec2/create-transit-gateway-policy-table.rst,sha256=Xf8khCqNFg_-eh2quPBXz9BJGqeNk0X8gVfM2f5_r7c,761 +awscli/examples/ec2/create-transit-gateway-prefix-list-reference.rst,sha256=pQUtPopDI43ko7VRqGbg4CiQiX9OX8UEiRzlaG7hCj0,1201 +awscli/examples/ec2/create-transit-gateway-route-table.rst,sha256=bH4JijCiYPDWDwkemyorFxvOU-HqVd5tNK0EdODoE-E,865 +awscli/examples/ec2/create-transit-gateway-route.rst,sha256=vyphI6e3z_t2kyLucSacCpIK-uMFFogYvBZNi78hthk,1031 +awscli/examples/ec2/create-transit-gateway-vpc-attachment.rst,sha256=PEJjwv86LqArQnSYBxjHF_kviHrtoDGCqIeWEja4DKc,2441 +awscli/examples/ec2/create-transit-gateway.rst,sha256=zreUnNGQYQNjaOC4JosOposYFtyjHq93mc1NQVAwlpU,1449 +awscli/examples/ec2/create-verified-access-endpoint.rst,sha256=kijWgEbtWcZSVu8HP4N0eEuh5ZrKfgeusnA_OBVVe3w,2432 +awscli/examples/ec2/create-verified-access-group.rst,sha256=9qYIEvMcXtu0dEoLn5PF3b2B4zcPbwFcFEW2AUl5g68,1227 +awscli/examples/ec2/create-verified-access-instance.rst,sha256=INuRjVl4SXe8S_EkEJZnXyl2uxDDgRcvQPfk-Erbqtc,990 +awscli/examples/ec2/create-verified-access-trust-provider.rst,sha256=1pJLR41vWcAnJx5Vuuf8_8W1WC-OKVvr8UEy3zUMdPA,1285 +awscli/examples/ec2/create-volume.rst,sha256=31PqwEYeG0c-eulwcGyOAHY_AOOaHWfCASyjnNmHkC4,3377 +awscli/examples/ec2/create-vpc-endpoint-connection-notification.rst,sha256=OZAwrdjIgZYZlEHT29EJu9zD6w6UsVim7R79aIcbys8,921 +awscli/examples/ec2/create-vpc-endpoint-service-configuration.rst,sha256=rm7Ut4vkdg9yI-_ff911xf48LklGqVz-wiciigAmA1s,3130 +awscli/examples/ec2/create-vpc-endpoint.rst,sha256=yd9JA8ahl294hHAO9cfNBtdTc7aliaN9Z6Du85njA4I,7898 +awscli/examples/ec2/create-vpc-peering-connection.rst,sha256=zmnY1K9psrow60xl_3JwhSVQVk4iKRo5HwyNdeb98b0,1971 +awscli/examples/ec2/create-vpc.rst,sha256=GcXDL_fMzGxKEgoTMPtg611-D6nhD2iAiHoVB2eMTmk,5309 +awscli/examples/ec2/create-vpn-connection-route.rst,sha256=pXLb7g0PmxlKkH5qM2PdTqoVhp0OJnLfCquP58__Yts,290 +awscli/examples/ec2/create-vpn-connection.rst,sha256=vR0PNYey6i82pvKgbyngILt4XX-6Q955ElaSvtw4COk,7154 +awscli/examples/ec2/create-vpn-gateway.rst,sha256=dprktkRmpQmK_2kzYglVtm16VSvZOSnlAsSx2ZIa8bw,868 +awscli/examples/ec2/delete-carrier-gateway.rst,sha256=Lq3MFNGyS1FcZlsCo9r4WoY0k8v0SFTbQ38b4X6S810,622 +awscli/examples/ec2/delete-client-vpn-endpoint.rst,sha256=V_kdCq1pYsbwQWv7jf3rj9xN5kiIk5tHS-fwJ6KsDTQ,509 +awscli/examples/ec2/delete-client-vpn-route.rst,sha256=pabHwoy-buA79PoPOrz3o3SZxSFkVdtaBWKEVKIQCPE,641 +awscli/examples/ec2/delete-coip-cidr.rst,sha256=qGpCU2tFDrpMu175UBaTJIL_TCi4034XZGwj8eclyeE,710 +awscli/examples/ec2/delete-coip-pool.rst,sha256=IdYe0gR29pXNRorRk5adO-KKln6YBaS4-6HyTm4pgH4,690 +awscli/examples/ec2/delete-customer-gateway.rst,sha256=1XjNv86xBWT4QyQFitsO4a5rl5o0V1BxZKM0pcg-g4M,216 +awscli/examples/ec2/delete-dhcp-options.rst,sha256=0emiTfT9kZFQS_OjXzmuI1gJK0b-Iv5X_8w9SGGK42c,209 +awscli/examples/ec2/delete-egress-only-internet-gateway.rst,sha256=_275zLi_8DMY5dKRoB_aAzpFqDSQXS8nK3FZCM8lqrY,268 +awscli/examples/ec2/delete-fleets.rst,sha256=PSg0wfTBf3ziqT_q1O7v8OvMg4qvvVSHBJp433VnuLg,1810 +awscli/examples/ec2/delete-flow-logs.rst,sha256=CFMiUZ5VQl4ERwKyZigu9-ty4qGczu89it3y_W2uicY,219 +awscli/examples/ec2/delete-fpga-image.rst,sha256=vHez2jE3614rK3lFTOsG3fZ_GpWWBu0JmeN7gyQ2Lq8,192 +awscli/examples/ec2/delete-instance-connect-endpoint.rst,sha256=paF-XiUe6TvMM3VxiLWvzQGDw6W45pllmSu2aDK8QFI,1092 +awscli/examples/ec2/delete-instance-event-window.rst,sha256=GNjRGqZLjRbsvw5oVXvcjTihA80V0UHS4Yys0FR6g4M,1411 +awscli/examples/ec2/delete-internet-gateway.rst,sha256=enHhdTkIsTXXpzZ_2ewMBHCR44RKqTidx2GyMU4WzXg,420 +awscli/examples/ec2/delete-ipam-pool.rst,sha256=_nfugfACVOPZjDf5kpfbquEnkaQgKfLTcqb01nYtDrU,1750 +awscli/examples/ec2/delete-ipam-resource-discovery.rst,sha256=MFBRDt0qwrlJxa_VaKKKeh6wEPeuLrq3b6kpa5YwpFA,1659 +awscli/examples/ec2/delete-ipam-scope.rst,sha256=ufzln3VmRqJcI3V4_IJLAtUD_7ScF0XrnvKOuDwmKJs,917 +awscli/examples/ec2/delete-ipam.rst,sha256=nppIB9VN6n0hpRrCjLCEksd0BVebsyyeoZencX8ITdY,1091 +awscli/examples/ec2/delete-key-pair.rst,sha256=Gc8rHvQ1MaHjuF1vFVkpg0WH_4ElXT7q0bge7DyJsZ8,451 +awscli/examples/ec2/delete-launch-template-versions.rst,sha256=v4yMv7OPVvxG3yPtEEmiHCgx_kDaN6zkn92MpdwGXj0,499 +awscli/examples/ec2/delete-launch-template.rst,sha256=es8FVBCFY9mQtXCkOT-ylkIN_u4-CVY12u8G1q34CGM,496 +awscli/examples/ec2/delete-local-gateway-route-table-virtual-interface-group-association.rst,sha256=DyHHQjNHR5PnWCbmZlwUFKB5zPQkPh-SsKVN4-HmJsg,1299 +awscli/examples/ec2/delete-local-gateway-route-table-vpc-association.rst,sha256=qWk3HzPERauL79x84AIcFiSixegC3jvxrEkrFjgaOlk,1077 +awscli/examples/ec2/delete-local-gateway-route-table.rst,sha256=mj1OaAmrUPlK7wF6gkICOO81YpGU4rr2666y0cGPf5g,1007 +awscli/examples/ec2/delete-local-gateway-route.rst,sha256=GSermky1JcV18xnMKbhKqVa3KjUYuq0vvKsiRSDLIWw,652 +awscli/examples/ec2/delete-managed-prefix-list.rst,sha256=jEUroFymmZoimFd0LtRnXUfRynEXlSNgNIh1GVzsi3A,790 +awscli/examples/ec2/delete-nat-gateway.rst,sha256=bpVFPf7FA085SLA0hDkBwQywTActlvVxt-faCw8bhgw,231 +awscli/examples/ec2/delete-network-acl-entry.rst,sha256=45PQI6DOKymu6SmfBz1HtfHmIdZVCNV6tc4atcbocCo,265 +awscli/examples/ec2/delete-network-acl.rst,sha256=xKli2R8P8c1xIXpo8WRQYaI0GmzcdrjN8igAdFY8TZs,196 +awscli/examples/ec2/delete-network-insights-access-scope-analysis.rst,sha256=N1lGbdz-PJxEYMaTFhHOVpSsPSGRkc-K_Ds7TrXpSKY,642 +awscli/examples/ec2/delete-network-insights-access-scope.rst,sha256=4k2VcAb2cc-bNIXof4ZWuftRkMMRIVonvb-468hWKCs,588 +awscli/examples/ec2/delete-network-insights-analysis.rst,sha256=8yQKZxFSi82dlKEKH7IiII6hSn1U2GiX0jH4jflhIGw,516 +awscli/examples/ec2/delete-network-insights-path.rst,sha256=YGLxYwb_z7oPVqfOukF44P5EErZ06Z_RbaCrxMyr8Aw,602 +awscli/examples/ec2/delete-network-interface-permission.rst,sha256=XKDm5nriWvJqSmjl8v2-mMHYRnQ6-98YiR4cwTBPtzw,267 +awscli/examples/ec2/delete-network-interface.rst,sha256=84ZVo2Ct6jdMcOSEo12inf51rYqDsdgvUVf2GXzautk,220 +awscli/examples/ec2/delete-placement-group.rst,sha256=KoaIBaRNvu5jNtH5Hx5cfKTOIM_Srbjg8lhTPHAmw4o,162 +awscli/examples/ec2/delete-queued-reserved-instances.rst,sha256=RlF3JyLwNR98EAuTNX-AjMhNcdUvfZVngJcAm9hT_Lw,516 +awscli/examples/ec2/delete-route-table.rst,sha256=wvBeCZoJmbcFYWC-76wdAuo-f28Di0CQG-6sFAwEKu0,196 +awscli/examples/ec2/delete-route.rst,sha256=AN6jjPR36nC19CbdHyDggPL7v-CCGGi8pXgFYuvQFfc,244 +awscli/examples/ec2/delete-security-group.rst,sha256=JNRKxy5JLphdpa6c5p7OhAj1mk1S2Z1MCSXYEar9vIU,723 +awscli/examples/ec2/delete-snapshot.rst,sha256=qTVFQxO9aOSwtm5hyWqsNv4oIT_BG7EHwx66iwG0Jy0,241 +awscli/examples/ec2/delete-spot-datafeed-subscription.rst,sha256=eVQmS9S4BsNzszCZm5e33grVUsr_4Dn4TQKOPIaNTfo,234 +awscli/examples/ec2/delete-subnet-cidr-reservation.rst,sha256=tDcKc5hHjWXPdRRdjgVXtFVB8GTJNflBHhXzQL8SCqw,745 +awscli/examples/ec2/delete-subnet.rst,sha256=jHmFc6IYVp8zSSU7PfOyAk-8PB6a-ccjRfko9Q8vEE0,179 +awscli/examples/ec2/delete-tags.rst,sha256=2Y2bja1IPuKKYwDYZfy5_f7wQRo7YKBp8lVxH4JIOM4,1359 +awscli/examples/ec2/delete-traffic-mirror-filter-rule.rst,sha256=HZ65_8S9tjERGTs8rrShA_tKPOhsIJShzx361TcR3rI,582 +awscli/examples/ec2/delete-traffic-mirror-filter.rst,sha256=HJrMvbM1bL-5MbUmbCLJUcbY7Yj7UaHWz-AnO55ttJU,536 +awscli/examples/ec2/delete-traffic-mirror-session.rst,sha256=DNmaQPDGfZE4DwmXhM9uqPKEQ1nGs4NM1qsgEu_oogM,545 +awscli/examples/ec2/delete-traffic-mirror-target.rst,sha256=5YzzivS5BiDjeKSZie-5OOQtO5q5tEHCS8rCy6EJM2k,542 +awscli/examples/ec2/delete-transit-gateway-connect-peer.rst,sha256=t_OgpPgw8ePC_C8YrQV03YHuPYUAPu7h1Ex2pMrJo4c,1772 +awscli/examples/ec2/delete-transit-gateway-connect.rst,sha256=NYsky_IvHj8xpSdlOMNe0uwhreBBu0SUZhdpnyc2obA,931 +awscli/examples/ec2/delete-transit-gateway-multicast-domain.rst,sha256=usp-q45Dm5OY0pmuHsV3EEZ9Or2lWaIN05-FXyH8DTU,773 +awscli/examples/ec2/delete-transit-gateway-peering-attachment.rst,sha256=iEjlWvql2CqNPSJyS8ddZmraDcTTMc_JtxA_gbDH1_o,1090 +awscli/examples/ec2/delete-transit-gateway-policy-table.rst,sha256=2e2SWkUpvaeR4kkWWTD5vzBZFYmvGE0dAtYvxawHujw,833 +awscli/examples/ec2/delete-transit-gateway-prefix-list-reference.rst,sha256=4WKUNoLkHrFNmEVp9EZKBKnde4pCIgb2hKcRlJiU7zo,1031 +awscli/examples/ec2/delete-transit-gateway-route-table.rst,sha256=Rk-8nMPirX9M0_VE2v5OZUGQ5KIGs5KCIk_4nK4cstQ,877 +awscli/examples/ec2/delete-transit-gateway-route.rst,sha256=DE2ZNrhzzdoGSO9nqSbz6AovAcvyFBITxWUpFunasvE,976 +awscli/examples/ec2/delete-transit-gateway-vpc-attachment.rst,sha256=4SNW8P59yn4Rs7vQpAQIO6M-OvCy0ZLlbPI9UwxVxKM,854 +awscli/examples/ec2/delete-transit-gateway.rst,sha256=_X1SQSRaaDnc6kImtmxuSytk9oh8WbQI-_1RZyAIuRg,1207 +awscli/examples/ec2/delete-verified-access-endpoint.rst,sha256=0tnF7qavhbqDX4zAY6KaFhGe88trkSujjss8tlKQHO4,1637 +awscli/examples/ec2/delete-verified-access-group.rst,sha256=frR7yz6g8ghKmBbtxBYYpQv4b43KDpIJDrI-wP0R3ys,1007 +awscli/examples/ec2/delete-verified-access-instance.rst,sha256=A4AqHy7pr8B21SP_I_hibt-6bSf4mngUaXIrzMMQuqM,803 +awscli/examples/ec2/delete-verified-access-trust-provider.rst,sha256=87CpV-dqfml3UgBPVwndN4uYeqo9aJD3pKgjCJ3jPIw,942 +awscli/examples/ec2/delete-volume.rst,sha256=K7fS3x6YWOwxis2EDVZ4Sk7FJaC6eBS4j11KQ_OE8lo,240 +awscli/examples/ec2/delete-vpc-endpoint-connection-notifications.rst,sha256=Z7DF1wf-ysibep7qKd2BijlYL_4bysD1TrqDWh2fZFg,285 +awscli/examples/ec2/delete-vpc-endpoint-service-configurations.rst,sha256=r5q-0Ufr9LedNJx_vR4jzQdjGsp4P-dvJfowMHYfolY,261 +awscli/examples/ec2/delete-vpc-endpoints.rst,sha256=KTrqO3t2HxRPr65MmyDKGgAs3_qshdYMviEdKnUY4gw,373 +awscli/examples/ec2/delete-vpc-peering-connection.rst,sha256=1zEmNXkvxe5OYsjOV5GtMwpxdPp4o34cQ8Byjh-2rRs,232 +awscli/examples/ec2/delete-vpc.rst,sha256=8yXUF3iDD6rp2ZuGlPwpM-WIfUvDZKDNswwaVyWLzZE,164 +awscli/examples/ec2/delete-vpn-connection-route.rst,sha256=caHZRkfAiOgiNuEd9X5coIn1_3lKvOozcAup0OXVHY8,304 +awscli/examples/ec2/delete-vpn-connection.rst,sha256=RoVxpq9y4eyUEP45sLmcLDrAhKFlB7MDxyaMiR06nGU,208 +awscli/examples/ec2/delete-vpn-gateway.rst,sha256=5wchv0mIfzFATToGwBFEqmCzrz7JDRNnjZzirmRlTFU,220 +awscli/examples/ec2/deprovision-byoip-cidr.rst,sha256=nRvs2hSd4FHxuisIdjHnhTGPI8RZsmU6H8NkP7e12jo,331 +awscli/examples/ec2/deprovision-ipam-pool-cidr.rst,sha256=UqfnhbvXu19NxaWfw43iS_AFQOE1uYAMWjOvZ07Jgq0,735 +awscli/examples/ec2/deregister-image.rst,sha256=4hCEoJ7PKxmpTUyvcgVXPG8tHH9p-of_CmSa4GUzP2s,181 +awscli/examples/ec2/deregister-instance-event-notification-attributes.rst,sha256=W5r_TtI4aOO_VWJYfkOAtgmD53-61dPWNpz3s993FG4,1691 +awscli/examples/ec2/deregister-transit-gateway-multicast-group-members.rst,sha256=rMpNzDnSBGoSpbWY5kdlJA1l4NGWdhGFzo4Mmxxiojc,941 +awscli/examples/ec2/deregister-transit-gateway-multicast-group-source.rst,sha256=zJ6nION1LtOudzSfHLLEksbDmtaI4nKxeGuseFBEHmc,938 +awscli/examples/ec2/describe-account-attributes.rst,sha256=FLUxOsd0neh7HuoED_EMxwW_D7KRkSlXAwPENooeP3Q,2187 +awscli/examples/ec2/describe-address-transfers.rst,sha256=zvSosqO2HAd_M0JqFgkliSdQ6XnbvvT7jN2V5A5LVLc,861 +awscli/examples/ec2/describe-addresses-attribute.rst,sha256=Ll7PECbrbooH1ldv1Dt8Xbq1ya4U-sr7EF0T5NwDzmQ,1276 +awscli/examples/ec2/describe-addresses.rst,sha256=NH5wTQL2zhNx1KX3DYon8INpjIsG8Op1gGiJmWiUv5U,4144 +awscli/examples/ec2/describe-aggregate-id-format.rst,sha256=aV1AUltYLkn4wB68GIxlOvv6ewpbFbDuCBZ_iW28ES8,1161 +awscli/examples/ec2/describe-availability-zones.rst,sha256=apNuCT2oQhwxfExB9Lu-xqYITxz9oN2y8aze-rO4zvs,2272 +awscli/examples/ec2/describe-aws-network-performance-metric-subscription.rst,sha256=-hdU7SSCOqxnJjemTqZnVwmKmSt7CWonYRIhm2ap9Tk,753 +awscli/examples/ec2/describe-aws-network-performance-metric-subscriptions.rst,sha256=_eO8s82li7sc6q_lE2BDgKDYeMtKd_qTqadNrqi1HYw,751 +awscli/examples/ec2/describe-bundle-tasks.rst,sha256=mzu5XjGZLUwU7yCLRruxyQqnWAry2kOygaMBsF2jj7s,564 +awscli/examples/ec2/describe-byoip-cidrs.rst,sha256=DDjb6DtorBwYPcsiKiVGPepIKsHfuRYu_8ZiPXMoLMI,458 +awscli/examples/ec2/describe-capacity-reservation-fleets.rst,sha256=MbvG6ent0932Nbrs8raQ4flg32L8QJNdWJFCpxu3-yM,1876 +awscli/examples/ec2/describe-capacity-reservations.rst,sha256=D37je0w95WaM2MD0eFnHBEA1PKKfXxdCv8O5UORNb9U,3944 +awscli/examples/ec2/describe-carrier-gateways.rst,sha256=VZAR53o3OB3vvSJm6bTbECpdLxfm3NiQZocRTp5k-j4,806 +awscli/examples/ec2/describe-classic-link-instances.rst,sha256=IJh5-bLWJaCAbIDMxm8ZhPyIvMSamZNctjY4TIpZ82c,1248 +awscli/examples/ec2/describe-client-vpn-authorization-rules.rst,sha256=kxOGJuzHm-C9kQoklKLCkl7YSw8NZ8Nnr1Go-4Mse-E,883 +awscli/examples/ec2/describe-client-vpn-connections.rst,sha256=2qADPfz2gcU5qfi-tf18YysywiRVo1fWihNUeUwID40,1918 +awscli/examples/ec2/describe-client-vpn-endpoints.rst,sha256=xw1GNfuQv9mCmQxKRyhGhBP1H0WXi6j0mHPaPzpJJ0U,2488 +awscli/examples/ec2/describe-client-vpn-routes.rst,sha256=Ar4Suq2Pc5hBozi6Qwh7av0gwRbw9_WccjSHjjNzW80,1285 +awscli/examples/ec2/describe-client-vpn-target-networks.rst,sha256=HdL4CvMg3jkLoyNDPwmjYOmhlnxbdEJAdDJ4MsU9gfE,1036 +awscli/examples/ec2/describe-coip-pools.rst,sha256=L5PRI-GGxMBZfTHAdgAq5HMraiSGap_NtD3u-lCiyus,825 +awscli/examples/ec2/describe-conversion-tasks.rst,sha256=Yfi5u99RRAF6rg0eKhmWrsasIYQElXxGz7d_wxIvmPk,1394 +awscli/examples/ec2/describe-customer-gateways.rst,sha256=ZcQEG2DM-jJi_HEr0hMSI5Kfi9XT1ZKLClz3WaxnLuo,1090 +awscli/examples/ec2/describe-dhcp-options.rst,sha256=2xm0w74PnwPIPcrSZ-oyFgnUIJ_TZ5EkVGKLsIjuS0I,3213 +awscli/examples/ec2/describe-egress-only-internet-gateways.rst,sha256=Cd_krARHgrdQ0ZECv9o4ZZOH4VzsM43a_bu9_IoiIFQ,487 +awscli/examples/ec2/describe-elastic-gpus.rst,sha256=cB4V_jDr2f2PaNsoLtMOHTeQdeq7w7zwQNEsYyW4lLI,130 +awscli/examples/ec2/describe-export-image-tasks.rst,sha256=d7QMNQfPdlA2lEWDJ68QTOWfQtJd2trabBx2gTbiOs4,1433 +awscli/examples/ec2/describe-export-tasks.rst,sha256=U43PdOMBbA32nXIf10ex5bkili8yRDJ03cswap3Qlog,807 +awscli/examples/ec2/describe-fast-launch-images.rst,sha256=KRq3YDiybjAexgdPgEFLhlpKRW5VxY9ab_dGtWsNNIo,1620 +awscli/examples/ec2/describe-fast-snapshot-restores.rst,sha256=uYrucmz7du1dKSje7R00dVtkEgrsBPYPkLZTzrQI9ok,1089 +awscli/examples/ec2/describe-fleet-history.rst,sha256=OxEx2DF8UfesXRorgH4CHYq34am_JTTbSNk-Xe-4Wkw,2402 +awscli/examples/ec2/describe-fleet-instances.rst,sha256=ff3Zj15MLjv5HIUB0shRHuRsnxAN9lTXRa6a6qmZ9y4,1072 +awscli/examples/ec2/describe-fleets.rst,sha256=dVcx1WPK2adiFxA6kGHgMPaCGGdEMEarMN92hv_HajA,1966 +awscli/examples/ec2/describe-flow-logs.rst,sha256=3QWtu9gFNSiNBy9Bc_ZpaprUncd-RFnkme74_pCJYYo,2079 +awscli/examples/ec2/describe-fpga-image-attribute.rst,sha256=mLEb1pKUwUv1GbXLhs4KcCieVikc4ks6ZQU3JoRxqbc,450 +awscli/examples/ec2/describe-fpga-images.rst,sha256=iDrtuUNAlR3VBkCKD6iHhZ-Q3FjOlWHextlGs5IfohA,942 +awscli/examples/ec2/describe-host-reservation-offerings.rst,sha256=CNgKJElbijOiUSPYUkaFqb-90jNtpNpdzRA6xU0ghm0,1908 +awscli/examples/ec2/describe-host-reservations.rst,sha256=itZWs8bclwrIBHsa-Wty-_Iejz79xkiIo_steZ_xDdw,780 +awscli/examples/ec2/describe-hosts.rst,sha256=U0-8cJoibMurG-63OvlAS5RVNXDs0uEKz0miNB-V7uw,1619 +awscli/examples/ec2/describe-iam-instance-profile-associations.rst,sha256=hOnxUMNkHjUXZ77DxD3DluAPWMO9vBAVabFL6tJ0GRE,934 +awscli/examples/ec2/describe-id-format.rst,sha256=SxaW-syXocTqBxP66FFoenuy-8S3ZBJu9rpK0Pt_rdI,932 +awscli/examples/ec2/describe-identity-id-format.rst,sha256=0aAKvvosuzlKJMpDyOTLIKMFnvkAIIQSHWZfR9QrSho,1288 +awscli/examples/ec2/describe-image-attribute.rst,sha256=bAoti_hIXe48z_CUSGEDVnk14mrIaKI4k89KuGQufjk,699 +awscli/examples/ec2/describe-images.rst,sha256=fwmdA_siWZJ5OYIULH_WB3Qi4FWdXWCp6Q3aYavYDfs,3160 +awscli/examples/ec2/describe-import-image-tasks.rst,sha256=ef4TtEPTeH_NHGYui6v8TekZ7I2whqg7hLhMul3uixM,1883 +awscli/examples/ec2/describe-import-snapshot-tasks.rst,sha256=RHgr_BrLEXuiA30JdP3ByUU60VR2AhIOVZKl1Nf9vfQ,1873 +awscli/examples/ec2/describe-instance-attribute.rst,sha256=W5qVSFaWjSvV-ZvbCq2kkIR5lpocaWlDaDSf7dxPRCE,1695 +awscli/examples/ec2/describe-instance-connect-endpoints.rst,sha256=xP6NIw9fgW7K0Qn9EFAZ-2_J4GZV4h8ifAUoaFoO2Lc,1414 +awscli/examples/ec2/describe-instance-credit-specifications.rst,sha256=4bgNGbJuuZo7xPBoDRRVF_gTGAqOAKjbqDlGmNgh-i8,719 +awscli/examples/ec2/describe-instance-event-notification-attributes.rst,sha256=foVuJds01KudwqtjP5UNuT2NKM6FyvKLbrPesOoYPTI,659 +awscli/examples/ec2/describe-instance-event-windows.rst,sha256=-iwrsNMCX-bbJE6cJjSdnHiK-a-mlujE-C_zc33lTxM,3934 +awscli/examples/ec2/describe-instance-image-metadata.rst,sha256=ds1DINZkQKuZW_s7MpnyHtjBYmJfXtlAMAp5oEQoL28,7208 +awscli/examples/ec2/describe-instance-status.rst,sha256=nbF3Dp7C6K4uNWwchYCmtV5PwW-bdyriV9eFoHwqeCU,1379 +awscli/examples/ec2/describe-instance-topology.rst,sha256=e4UCkfilVDNSmnxnqWp5-JNKwYZxq0RRnItNotWbMp4,2312 +awscli/examples/ec2/describe-instance-type-offerings.rst,sha256=Y3NOCoJxdqG65AdlNyYzYsieBWLS2zUxrdQ-7mnBEYk,2459 +awscli/examples/ec2/describe-instance-types.rst,sha256=Zs1CkZelsI7wfq9oqT_3K3C3pO3dRDg90X3B02a-Dkw,3481 +awscli/examples/ec2/describe-instances.rst,sha256=WfCPWuVERwJ8u1nFFK7r7o6GVJ65SieUdVheyg9rAB0,17048 +awscli/examples/ec2/describe-internet-gateways.rst,sha256=ryOv098ce8r_RYUq_7IlRT1r0tLL8sMQ6k21lgzdlMw,981 +awscli/examples/ec2/describe-ipam-pools.rst,sha256=d3eBAo-7IaJI6qLgC5LGPIUsqfBnzasqqnX3QHp4V2M,1742 +awscli/examples/ec2/describe-ipam-resource-discoveries.rst,sha256=WfMAN1YYbbQ04vBUs1UEtTGBGpTBi01D18GF66lXnIM,2604 +awscli/examples/ec2/describe-ipam-resource-discovery-associations.rst,sha256=DMhXis2vhsNEMcwuOXEj_-A2ECj-Z179ocSulrryKGI,3207 +awscli/examples/ec2/describe-ipam-scopes.rst,sha256=ZrQ1qUKk4Z6lEaUNdv1fucmoBaE1pZwvFa5b1Bgehl4,2206 +awscli/examples/ec2/describe-ipams.rst,sha256=FxUkhkKFnpjuS1rbvAayOY4cpb8mf4lEA-X9wHr3fzs,1270 +awscli/examples/ec2/describe-ipv6-pools.rst,sha256=aqZTLWac4ocQSqFzCmyGS44kEVO5TKaWK-tkI4bI2QE,642 +awscli/examples/ec2/describe-key-pairs.rst,sha256=Rb1W-Oicka-Rnq7XaLyFy9Ojdxx6nTD_Ud3nfwzl1-c,767 +awscli/examples/ec2/describe-launch-template-versions.rst,sha256=hwqba9Ri6BVt6SK7kyOoG7QV2w6umM1LawB9a9_fCGY,2809 +awscli/examples/ec2/describe-launch-templates.rst,sha256=N56scrFTXF7S-ZkiHqHKj4pkYVI4q4qboNKaO0hhZdY,1524 +awscli/examples/ec2/describe-local-gateway-route-table-virtual-interface-group-associations.rst,sha256=8zP4VRiBRhRfrU9gMGc3H4iBLolvq0BC6pmgVAXNRxE,1303 +awscli/examples/ec2/describe-local-gateway-route-table-vpc-associations.rst,sha256=pY7F9Ju1k-D3ueNybOe_2Xpv7vHIBCzEobjgg7uyZn8,964 +awscli/examples/ec2/describe-local-gateway-route-tables.rst,sha256=DoLTfc8_SCTjqnoGln751rGwfvSdd8t1-d5VVBJ6I-c,588 +awscli/examples/ec2/describe-local-gateway-virtual-interface-groups.rst,sha256=1ZzwMnQSDx7QVB1YKahPZvwhMQ2yy7MMRdBw3dW_YWU,965 +awscli/examples/ec2/describe-local-gateway-virtual-interfaces.rst,sha256=w-CRVSGSoklkPcqsepj8YmKV2MTEFq8gfmlPwING0HA,1395 +awscli/examples/ec2/describe-local-gateways.rst,sha256=gUkUw0ZogA-z3OltJlncwp9nWf0LCGYcha0tICmxzWQ,523 +awscli/examples/ec2/describe-locked-snapshots.rst,sha256=zNuJn9hMZ6Nhj-v1Fy-CxcoV3oGhAdlVsRfwK7hYhEM,892 +awscli/examples/ec2/describe-managed-prefix-lists.rst,sha256=nMcSy-9vQtovMA4VEMubdcHTsdMnCTdNrLz1mPMYtrg,1380 +awscli/examples/ec2/describe-moving-addresses.rst,sha256=wOS9llcj-ocuBpA3KbQkhFSnIUMsLB6gGasELtUxn0g,469 +awscli/examples/ec2/describe-nat-gateways.rst,sha256=fV5NTcMEfZ0af__5ZnwBmYoa3ChZhG4RvQVHipWgRX8,3624 +awscli/examples/ec2/describe-network-acls.rst,sha256=837Hi2Sf4SSa6Fm15XbVjmDB8PtT3WTPfaATXNH4B_A,4504 +awscli/examples/ec2/describe-network-insights-access-scope-analyses.rst,sha256=0XaLujrHcpoHFG3nwp-YYuaX30IsNSiGrw24rC6pzLE,1085 +awscli/examples/ec2/describe-network-insights-access-scopes.rst,sha256=RXRFxTc6irDY4m1-bbZ8Gjceqrp36T5_R45ulN56elM,948 +awscli/examples/ec2/describe-network-insights-analyses.rst,sha256=ozZj5JhLhzp7l5fUyQ9m3HTOjFmpRg88JwLxqIRDOzM,2623 +awscli/examples/ec2/describe-network-insights-paths.rst,sha256=TccMCDOSt0tu3WLW2WIPE1NCHB7Is2Gtye3BZ-bZ1Ho,908 +awscli/examples/ec2/describe-network-interface-attribute.rst,sha256=fpRuxLZfDXWIyjZ1_s43N7yWnU4Oz44uSpRX-6L0Rv4,1926 +awscli/examples/ec2/describe-network-interface-permissions.rst,sha256=cF_aWhNpfcq9F3EkmnyfpwNa3VYQGV9Mg1f2tQ5kQpY,559 +awscli/examples/ec2/describe-network-interfaces.rst,sha256=WN3J3I6t_kcTmlDQV6kCUkMnoMsZhB9_Pk-wn-6SA4I,5295 +awscli/examples/ec2/describe-placement-groups.rst,sha256=TDhh4TRCZPiSY_Y1IUVyUE7z1rpwT6NhbelybGMVUYk,354 +awscli/examples/ec2/describe-prefix-lists.rst,sha256=bu5EHyX9JePqXQHlWEMSxtAYM0VwVOItA0ugJJTUgiA,350 +awscli/examples/ec2/describe-principal-id-format.rst,sha256=SFfQURL7Ljc3KRbcmgZHDvIs6U6ZaDcOieP_gyUExx0,1126 +awscli/examples/ec2/describe-public-ipv4-pools.rst,sha256=oPhSvfTeaCsBJDIEiXFFTYAjdwWMFwQr91NeeqSLZiM,847 +awscli/examples/ec2/describe-regions.rst,sha256=GtpuDy1Vtm2caizWLLrzy6y2bO1C4BsSCl8a64YPzw4,9740 +awscli/examples/ec2/describe-replace-root-volume-tasks.rst,sha256=uaAg0xCxnHfqr1ZfmAU63p0LXd0W0AvPAN7e3ZyA_ko,2299 +awscli/examples/ec2/describe-reserved-instances-listings.rst,sha256=qB0-tnI1H4_nz0-FQYcDiHJS0424ZAnqEqZp87VBwB4,343 +awscli/examples/ec2/describe-reserved-instances-modifications.rst,sha256=4DE8yUrHWXFTY55vTupjFH-TvSWKicPIpoF4DlNWYUI,1658 +awscli/examples/ec2/describe-reserved-instances-offerings.rst,sha256=e8cmOZ1ViJLMH9EjTgyBBVYX6DfwRwNpLMbJuOxGsAE,3560 +awscli/examples/ec2/describe-reserved-instances.rst,sha256=KKT0yB5MF2foYqEmFeCX7ioTXUTNEdanzccGBgg1jpM,2320 +awscli/examples/ec2/describe-route-tables.rst,sha256=iKv8on3EFrErRV_RHnOUmoGm4FyRQacUBCLDrUOk8Ms,3671 +awscli/examples/ec2/describe-scheduled-instance-availability.rst,sha256=IG_fo6b1XNoF141Fu7rPfKhbiucDG_Wycddekt9cVmw,1422 +awscli/examples/ec2/describe-scheduled-instances.rst,sha256=nlb9pjmm_jZvHfv7LaMHr35j11YxvBR_82zHR0Q8tms,1282 +awscli/examples/ec2/describe-security-group-references.rst,sha256=JG7wqFgvRJ9Qsr5coc8Laa3ebM2h79KmN7y1Q_aXJHk,543 +awscli/examples/ec2/describe-security-group-rules.rst,sha256=ME0oHe1-sLVlB3gEQF0KAn0inOyCsm2j_dh0mxgpO7g,2690 +awscli/examples/ec2/describe-security-group-vpc-associations.rst,sha256=vEtWa0y9BqLfjWlMLEIQfiozHBffoobsT3LxQj3lNRQ,779 +awscli/examples/ec2/describe-security-groups.rst,sha256=u_-Pdv42SGmgXzi4ckGBKJDQ9ZJwqRqf6jn25uSkOA8,4183 +awscli/examples/ec2/describe-snapshot-attribute.rst,sha256=rfHg4AvrG8aDOx09_pGlN9JQgMNyNFy2q1p9qd5s0gQ,734 +awscli/examples/ec2/describe-snapshot-tier-status.rst,sha256=V6ObqdCWyquOuFdyomRNJXn0iM7b_rJRNkvcckzX1EM,1137 +awscli/examples/ec2/describe-snapshots.rst,sha256=s6GYZS-g0Yq6i0YeD-ZI3O4FhjyfBmPYVMcsfC7ofRg,4677 +awscli/examples/ec2/describe-spot-datafeed-subscription.rst,sha256=rpsp_MfYbPPDCaUHRsLaJR61wmCXEtIoMdxBsllx4-I,392 +awscli/examples/ec2/describe-spot-fleet-instances.rst,sha256=NrJhurW17PYaKPlCOHhLtyQ1rLag8KVrbEn37qTrJcs,565 +awscli/examples/ec2/describe-spot-fleet-request-history.rst,sha256=AuVnB7axgnOnVdA_rHsyRWKpQYIFNVGRuPjO2TOc44w,1698 +awscli/examples/ec2/describe-spot-fleet-requests.rst,sha256=zwF5gXLTnP62E1SgSRodtanmU7E0NghdjF9m85Z81Jo,4931 +awscli/examples/ec2/describe-spot-instance-requests.rst,sha256=f89IhB4Uv9bQ_HK0n-oatu3cePw8_UU7F8Nm3yPCDjY,4154 +awscli/examples/ec2/describe-spot-price-history.rst,sha256=WJrjr0KNxDHoNzVGOwuvzV5ccpjDhGv5e-dcwkwrCjE,2121 +awscli/examples/ec2/describe-stale-security-groups.rst,sha256=VFwTx8rd-6nxBQde2sWw9nfPWwzGd_Y0UstP6jE-lS0,2089 +awscli/examples/ec2/describe-store-image-tasks.rst,sha256=-xlRWrFgdrbFoET8Eq44Wi_hL0ItIoiev2lmnVGvI8E,876 +awscli/examples/ec2/describe-subnets.rst,sha256=L1jvDv83I_Yh1MF80gRE7QICxnX4l-7CakW1tiYILPE,5225 +awscli/examples/ec2/describe-tags.rst,sha256=i0Mh-e_Ve5pBrQNP1OfiWCpP29puSMydFsKVB2eaZig,3575 +awscli/examples/ec2/describe-traffic-mirror-filters.rst,sha256=itV6pqUzt0Nw8qjpDuUuezvGA4JI8x3OmOnYQFvU26k,1374 +awscli/examples/ec2/describe-traffic-mirror-sessions.rst,sha256=dzSeoNzT6kK0kkopnV8VjhuIBreVodKi61kRJ0RqidU,1640 +awscli/examples/ec2/describe-traffic-mirror-targets.rst,sha256=FbUFmRFPdPMkRA3D2HAmAk9ORKd6MzZ-EPqWlc7_t00,958 +awscli/examples/ec2/describe-transit-gateway-attachments.rst,sha256=Ml0oiR_vLFTtIKWNhXYf3ttZ55OChh2Vw77B9f4T1Uw,3411 +awscli/examples/ec2/describe-transit-gateway-connect-peers.rst,sha256=L0-z-hnpSKxdV5_ytI2E_0GZ_GVXchKq_9qlhfUIcPE,1956 +awscli/examples/ec2/describe-transit-gateway-connects.rst,sha256=WdIPPswsYv7PdYjkj9clFgdiWlci1fz04k_71klVbeI,1035 +awscli/examples/ec2/describe-transit-gateway-multicast-domains.rst,sha256=OQV3F0I53zl0wgbWjPX2D6Fx9mGcJCa16tdYLlqCsaI,1343 +awscli/examples/ec2/describe-transit-gateway-peering-attachments.rst,sha256=TyCGw3ONWbncMMa6a4wZse4v4aAFJFc7AYIDeF57R6Q,1121 +awscli/examples/ec2/describe-transit-gateway-policy-tables.rst,sha256=0kq1tffRGcC2SlaIaRefHSGrFSqHAT1tM9dF0Ko3gbM,845 +awscli/examples/ec2/describe-transit-gateway-route-tables.rst,sha256=XUWCd6ySZPcwtyJJ2gbudw1VnXnZQK2mfPkyziyqa5g,1308 +awscli/examples/ec2/describe-transit-gateway-vpc-attachments.rst,sha256=5GpYddKq-Xyw6As8mWpQiDRC7fm3lbOsGtFuiMV_nVg,1347 +awscli/examples/ec2/describe-transit-gateways.rst,sha256=344iv8FvoTMgo0kPXofkTrJuPhudRlvK6F7S6qHLJn4,2236 +awscli/examples/ec2/describe-verified-access-endpoints.rst,sha256=GwfTu-zfpbI3Z73ar_650lqvR1Gl6YGmCH2qcO9EfwA,1926 +awscli/examples/ec2/describe-verified-access-groups.rst,sha256=xYrWQVE6STTAX7wubItwqCtPTo-t8b6yf0DQ1WESMLA,1206 +awscli/examples/ec2/describe-verified-access-instance-logging-configurations.rst,sha256=w4ZaeP3CJXMG6zWvLwXKnHCYL0dREQnssxK3Xy9zObo,1364 +awscli/examples/ec2/describe-verified-access-instances.rst,sha256=efSHvdqVeEYu69qXhCBr6JtovTB1JrDFiaF03Ltwb6I,1324 +awscli/examples/ec2/describe-verified-access-trust-providers.rst,sha256=e3gKV3-q6Yotk2JVzx9_UNfubzMb7eOVlLBwI82PE0Q,1202 +awscli/examples/ec2/describe-volume-attribute.rst,sha256=kGOIOw7SKa0NAJr3eORfZLgsRXcxXlkNWW6GZj0_1N4,383 +awscli/examples/ec2/describe-volume-status.rst,sha256=mU78m5FYab0a-g04LypGQHIftER0ASDSRt4ZQC13D94,1507 +awscli/examples/ec2/describe-volumes-modifications.rst,sha256=VD86qHkgYhPvuAjRG55A0Q1zwmLACI-d3olcANvbqpA,719 +awscli/examples/ec2/describe-volumes.rst,sha256=SMXzsyMee9kRM_hcz8pxVotVUz8BT46GmCLdn6RkMyE,3698 +awscli/examples/ec2/describe-vpc-attribute.rst,sha256=vovvcrL97xU2B-HbuxB5E8R9aLVCqlnSOzwUTUkFWGI,1045 +awscli/examples/ec2/describe-vpc-classic-link-dns-support.rst,sha256=65FNoIerJVGC9hlw-7u_Iltb1PTEUCnt_L9ZHGih9TM,416 +awscli/examples/ec2/describe-vpc-classic-link.rst,sha256=jasVu1ItTEKW28mFDp1meDZP7ax-W1EriAvvWHWPxvE,659 +awscli/examples/ec2/describe-vpc-endpoint-associations.rst,sha256=f3XHdHN604kC7t2GXI9rsk9Dq6tYN6gbdvDEG3Ar1sU,1093 +awscli/examples/ec2/describe-vpc-endpoint-connection-notifications.rst,sha256=oTpatewoq4Tj7m-k0L_hXcNPTKT6W8ubcq2PWkcQJ_k,807 +awscli/examples/ec2/describe-vpc-endpoint-connections.rst,sha256=8xFQG0f06M7AQ1Zd7hIGsj_Kv47WHmo0Rdqrb8Kjkd0,670 +awscli/examples/ec2/describe-vpc-endpoint-service-configurations.rst,sha256=NFEjH3OL3tQwwxe5x44ASAQOagJJDR79F-7lQMS3Tr4,2476 +awscli/examples/ec2/describe-vpc-endpoint-service-permissions.rst,sha256=_LHvJ-usfylcmxlyTyLREIBomh6N-LZt3_rfHJnuF54,393 +awscli/examples/ec2/describe-vpc-endpoint-services.rst,sha256=H4-9DJ2e9lwPThzog97ZKe3DUMLC2NpVWrxjvu1DAfo,4734 +awscli/examples/ec2/describe-vpc-endpoints.rst,sha256=H3jdyzDQQstfoeqxN10KrJdwxYGQj5hAWrTnrlzFTGA,3832 +awscli/examples/ec2/describe-vpc-peering-connections.rst,sha256=-Unevuq6PNBdSeh3C6k6Sz3GOhkpCTAGf0M3yoCr4hA,2802 +awscli/examples/ec2/describe-vpcs.rst,sha256=rLRwRR8tNVZPQ6obKmOfgWjMvsdgg4EvCBRABZcLfXk,3048 +awscli/examples/ec2/describe-vpn-connections.rst,sha256=E1TaH_R3PH-h5_E0jdEqZER_R9LZN-PqsCd4FVsoQRY,2457 +awscli/examples/ec2/describe-vpn-gateways.rst,sha256=VAgjYy7cE2rduig3fWFs8neFLTsjcVldmSANJXOmQg8,834 +awscli/examples/ec2/detach-classic-link-vpc.rst,sha256=NWI4bA-pKbmgwF0HdsOC-Yw_oKtMRlpitP2Z7WUqZnA,271 +awscli/examples/ec2/detach-internet-gateway.rst,sha256=sXrNA4S65GOmcBF9tSkqcdL4844zFCO5rkZW7D2dSPk,498 +awscli/examples/ec2/detach-network-interface.rst,sha256=lIECBgQE36NmZKhNAmEvsxpC3-kJKDnCigKXanSlFg8,268 +awscli/examples/ec2/detach-verified-access-trust-provider.rst,sha256=kwBCYfjfkmFFfbWfVRSWC8EKlz9qex9_3n32qX5nFs4,1376 +awscli/examples/ec2/detach-volume.rst,sha256=SZsfhXFvWUEY_jywWZgC3Pv6lxpfr0BtBGFrmK5xMI8,431 +awscli/examples/ec2/detach-vpn-gateway.rst,sha256=ZCH4s9yQqqXuENjaznDQDLtZMj21jMk-YQPjygQ9RTw,280 +awscli/examples/ec2/disable-address-transfer.rst,sha256=MRZD9SRtqGS1782bKB-V_sTI6BHyHPotzouNb1vo0qQ,677 +awscli/examples/ec2/disable-aws-network-performance-metric-subscription.rst,sha256=RzaQN8pE3D1ajDbORui3Au35uSV67fSMNPjconjKcUA,715 +awscli/examples/ec2/disable-ebs-encryption-by-default.rst,sha256=VjneUFYXVuP9lvRDWiU2EgIkTHOM2wPapThRyE61_3c,292 +awscli/examples/ec2/disable-fast-launch.rst,sha256=PwYtfXj69y_fLWJCweVrQrpRDc1H1oQ75L-OqtRgOo4,1097 +awscli/examples/ec2/disable-fast-snapshot-restores.rst,sha256=95X11mvYcgF1ArT3We-dEN9sxeFF9YYjo12QS_buOEA,750 +awscli/examples/ec2/disable-image-block-public-access.rst,sha256=3O5J2LdmQ3aXCnnaYf_mjbKnWwW6dFB8e4iJF5p68p4,563 +awscli/examples/ec2/disable-image-deprecation.rst,sha256=StRlXDgetBByytGyVBIP-klUU-Hh8zW5lPopJNFGqgI,625 +awscli/examples/ec2/disable-image-deregistration-protection.rst,sha256=8uUPpGM67wKjGyjC6m_B66gd3rVTQh-FbgXbNz_A5jQ,520 +awscli/examples/ec2/disable-image.rst,sha256=7lpHj8NaCKxeOQAvRzkHio0icz4DW52M-0DZzln-PrU,378 +awscli/examples/ec2/disable-ipam-organization-admin-account.rst,sha256=BzYrG000EcgGL6UdujQNw1LhpLLKvSeyOp9IR6GetCs,1238 +awscli/examples/ec2/disable-serial-console-access.rst,sha256=BVcibM-YetSnnxpXdk7W9fOLuJv8FoxdWxEV8oJRRuw,453 +awscli/examples/ec2/disable-snapshot-block-public-access.rst,sha256=6DlRu_tKCVUHlvHd-u-YYjsH1MPfldko9kkvDYSQs-A,500 +awscli/examples/ec2/disable-transit-gateway-route-table-propagation.rst,sha256=WfhYxJ6kX3nktx-T_y9FqM3CBJIRttoLOk9Dpp9P9uE,971 +awscli/examples/ec2/disable-vgw-route-propagation.rst,sha256=rRlVd84tTWvwrfUvviH-RpJeY75B-mUdD2yR2kZb1go,311 +awscli/examples/ec2/disable-vpc-classic-link-dns-support.rst,sha256=luJKQuZhrE32wQWQG7I3JUbDKZeSF2EbKxIXF7Bm8AE,236 +awscli/examples/ec2/disable-vpc-classic-link.rst,sha256=t0H7-vL8zt8-ygmJZlHLwS90D95VMlRLZAuc3RVLSOk,195 +awscli/examples/ec2/disassociate-address.rst,sha256=rVd_zoqZzbms01Lc0Dzbbye22sVkMs9etb9AndF0iNE,515 +awscli/examples/ec2/disassociate-client-vpn-target-network.rst,sha256=a29h-QROVlIQmDxSaXSRS9SMCaNffseUyZKPjJvppF8,769 +awscli/examples/ec2/disassociate-iam-instance-profile.rst,sha256=MM7VPeHMfdwl2_v-q115FE89B1hr_fvfA7-SMqZkDKc,614 +awscli/examples/ec2/disassociate-instance-event-window.rst,sha256=AIZydHNcXy-lT6miFRrCQmc508FxkskN0gcsnzCcG-I,3816 +awscli/examples/ec2/disassociate-ipam-resource-discovery.rst,sha256=by3ACkWALtHL7W1wW_-Rtm03z-kW6oJ3Ld_rWP0fc3A,1643 +awscli/examples/ec2/disassociate-nat-gateway-address.rst,sha256=RVYMmAo2fwjujyjEipk71Hop2e_My9PGmepn6tpbCFk,1036 +awscli/examples/ec2/disassociate-route-table.rst,sha256=lcdP2ipfhV6iXtHRaSv5IkDKzl6y8T30Lo40n3P47TM,245 +awscli/examples/ec2/disassociate-security-group-vpc.rst,sha256=mtfZWMvpgpheFLc-ycgPcrzKN-20TyJI4kJv5GjShr4,562 +awscli/examples/ec2/disassociate-subnet-cidr-block.rst,sha256=nzJV_o3x8HePpo47hOu9w51zbls8SJZ7iNs6t0i-l1I,539 +awscli/examples/ec2/disassociate-transit-gateway-multicast-domain.rst,sha256=6KQ8ZgDuR67Ccfiud9hYc8a66_ZVNr279_hMBqchzIs,1108 +awscli/examples/ec2/disassociate-transit-gateway-route-table.rst,sha256=cvehCahhKL3ijm_5kddMyUd3G20c3Ohhp4Se7HTgpBA,960 +awscli/examples/ec2/disassociate-vpc-cidr-block.rst,sha256=qLOXUlHVf0ctx8R9LDCvkFySPyNYdv_MA1rZ1fUwakk,972 +awscli/examples/ec2/enable-address-transfer.rst,sha256=TooN9ZDaXNU35mv9k0VykRCS0sN07UAW_efwebYFoJU,871 +awscli/examples/ec2/enable-aws-network-performance-metric-subscription.rst,sha256=puUyZF2irYDAEwGNIbBV84E_sZB37-JKraDsysJYsQo,681 +awscli/examples/ec2/enable-ebs-encryption-by-default.rst,sha256=N9pOpv3IOaESZfmN88WoDSWbQogsasMeNS-vdDaRDxs,289 +awscli/examples/ec2/enable-fast-launch.rst,sha256=Dj3G77cJCBI3TvicjUPbsmxlZxXIleSG3sQYI4l7IUs,1126 +awscli/examples/ec2/enable-fast-snapshot-restores.rst,sha256=krq_qC78_pk04W3gH_sjmh6z1gwo2ueihEJeDxNazWc,1095 +awscli/examples/ec2/enable-image-block-public-access.rst,sha256=i9QxwjFtr9SMe8Mcs2gAYO44bB2L7vw-M-EsPtHuI4I,648 +awscli/examples/ec2/enable-image-deprecation.rst,sha256=wmhmwhCqUZzlpCAtkZfYNzxSjgwc4MewSxZLDw-bU3Y,693 +awscli/examples/ec2/enable-image-deregistration-protection.rst,sha256=uuDRdSYevETmtUphhJZV7RBA8erHQBc3sOtQ8U935U8,536 +awscli/examples/ec2/enable-image.rst,sha256=bep1PIJ5fzwDHpicg2vNDtmu0R2Mw0ErBx2Ob_3S4CI,374 +awscli/examples/ec2/enable-ipam-organization-admin-account.rst,sha256=eY3ct3_OSC1IUH972xcxIY_oxbJHFfDsb7AXCvF1CRU,589 +awscli/examples/ec2/enable-reachability-analyzer-organization-sharing.rst,sha256=NQ06FEgFu3N4yMrLv5mI3oKolWgVJ5j2-vNSelsfQh0,461 +awscli/examples/ec2/enable-serial-console-access.rst,sha256=fpnHbHP8AQmFznP9Qf4_H0oFVdH1Zs_jzb9J002amnM,444 +awscli/examples/ec2/enable-snapshot-block-public-access.rst,sha256=SW5MvGwjdkDDwDWs_BZCmORZV1gpijlYJuH7sODoG0Q,499 +awscli/examples/ec2/enable-transit-gateway-route-table-propagation.rst,sha256=Ns4Mr9kUykFFnGndapA3RjSjFHfrs2FXl1iYeQoctYo,967 +awscli/examples/ec2/enable-vgw-route-propagation.rst,sha256=LriqYxP59fHYzgAH7zEFo0ian2mO627681NcOTva1cU,304 +awscli/examples/ec2/enable-volume-io.rst,sha256=v_jnTTryedmHVu29iHB3FERKekPfskgfr_Y2EBx8ssg,206 +awscli/examples/ec2/enable-vpc-classic-link-dns-support.rst,sha256=ae2EdkjPaIquCtTVMY8VHbuUvQXZLCUcQywX8RLNlsU,233 +awscli/examples/ec2/enable-vpc-classic-link.rst,sha256=Mks7NgPK9F_PiwouIIglHe7V-OZbUVprG43sH8AjmlY,192 +awscli/examples/ec2/export-client-vpn-client-certificate-revocation-list.rst,sha256=hYk9Xo4ZcD-5v8bOqE33I9sTsrgjapzapKHDZm-bqqA,1687 +awscli/examples/ec2/export-client-vpn-client-configuration.rst,sha256=Z2wGdSqEl9GFox3zl6cANcV4mB4rIEciB9pV5VCidrc,1992 +awscli/examples/ec2/export-image.rst,sha256=h2KUJyY1cLVT3tSdCIS1_ldaC2DIA25bdRHlJOA_5Zw,757 +awscli/examples/ec2/get-associated-ipv6-pool-cidrs.rst,sha256=0p9rtk3Kmk1hVl1SLXlJNFoFia6eDJPP6o0d--c2WZA,480 +awscli/examples/ec2/get-aws-network-performance-data.rst,sha256=bUonE2VfLyaJzVTDlfbgPErhzpdG-1MCyLnOL_bh8GE,2946 +awscli/examples/ec2/get-capacity-reservation-usage.rst,sha256=n36QbW3jsAgj5YFild4Rr5ocb7kPzq4mPOfUupI6hnQ,857 +awscli/examples/ec2/get-coip-pool-usage.rst,sha256=LOLxSgdJsUOi13ZcbrwTiiaKrO_UGdKVIYcyp33zxNo,1075 +awscli/examples/ec2/get-console-output.rst,sha256=4yo3My22H2fMoNI5Txv6u7neVpvPSU1v4_1BGPFUBdw,1657 +awscli/examples/ec2/get-console-screenshot.rst,sha256=_U2OfwgbUpOql9QWBXnkdRJKbklITj-BAcoWi4sVYKw,446 +awscli/examples/ec2/get-default-credit-specification.rst,sha256=qmqwym1Pb8l6UIj50TbTmVrkVqayWarVHuyS-MknDe8,385 +awscli/examples/ec2/get-ebs-default-kms-key-id.rst,sha256=YOOoLLdmY-OwNL-MATHJww-xOKdS2ZK7VV3-Io27Uu4,559 +awscli/examples/ec2/get-ebs-encryption-by-default.rst,sha256=V3m1smnrn78UVr9mjKTOIFHAjMO-_LAIxPLNcYXTU4A,527 +awscli/examples/ec2/get-flow-logs-integration-template.rst,sha256=XHjpqBl37qnzdM-vdfvGldDtX52mQ_oHfH56Jz_cYWk,2102 +awscli/examples/ec2/get-groups-for-capacity-reservation.rst,sha256=RwUuEGiU5s0UyY8ARj_JNbU8o-QtvRJi26rR000bCAw,742 +awscli/examples/ec2/get-host-reservation-purchase-preview.rst,sha256=4-7ZuU9wLQ-S6oHXqnA203WkVIt9d-D4nSSkhG59JZ4,732 +awscli/examples/ec2/get-image-block-public-access-state.rst,sha256=h-_NgiyzLAqkMvutwZ6SlvNF4DwPdldrs51vayxeYwo,605 +awscli/examples/ec2/get-instance-types-from-instance-requirements.rst,sha256=37nfqMjAYO8njPEpPXQAiVcw507qMU1FlYPeb_7GYHs,4951 +awscli/examples/ec2/get-instance-uefi-data.rst,sha256=ezK8BLR5uV8WIW_CN1FssqVeImSfKwYEdhvFNDlOWmY,680 +awscli/examples/ec2/get-ipam-address-history.rst,sha256=7j7mhanjU4A7MlBSLS4Vpgfnqz2dXLHKahRczLoFqFM,2497 +awscli/examples/ec2/get-ipam-discovered-accounts.rst,sha256=oN08zP-7I7VMRM-PJDKGbBOlGTqGkQo38nOJVelozWc,1342 +awscli/examples/ec2/get-ipam-discovered-public-addresses.rst,sha256=h3Cp9lA13MXVM6xJ_3UjtbBacL6vVZHfoGSDc42xzto,2905 +awscli/examples/ec2/get-ipam-discovered-resource-cidrs.rst,sha256=P1YVs485Su5WODHr5N1pZVmROs6R_LbyAW7GyxZa-BA,2609 +awscli/examples/ec2/get-ipam-pool-allocations.rst,sha256=q-lWN2gMcE44mDQazIavKJGYFbG9gCMEGi9hn0AfagI,908 +awscli/examples/ec2/get-ipam-pool-cidrs.rst,sha256=9-pITn5MevbeX6As2ZIbcPBbo8VpUgPMlgvNT-0jUUk,573 +awscli/examples/ec2/get-ipam-resource-cidrs.rst,sha256=5FQVy2ZSdhGjZL8S27wrcSENxrAqHXZ1xousGQRA5CU,1720 +awscli/examples/ec2/get-launch-template-data.rst,sha256=LMGxTzF5NTC029mBduTzBI7dsRqDbysPtKE4hHE7I6Q,1592 +awscli/examples/ec2/get-managed-prefix-list-associations.rst,sha256=5QMhIZd_NI0XT1kIY01b6henQgYeprMSbD2LWX40do8,633 +awscli/examples/ec2/get-managed-prefix-list-entries.rst,sha256=40aeYSbKQvlK6LawHIrFX8_YPYj6XjMm9Bcpf2FVFFA,664 +awscli/examples/ec2/get-network-insights-access-scope-analysis-findings.rst,sha256=8tpuvoWNs61KadaGjjz9QY6S5GtkC-I7EK8YCDqLYYY,2607 +awscli/examples/ec2/get-network-insights-access-scope-content.rst,sha256=DzuO4b-NI5neAM-QO67obdcurg07Q4Mmm12lXoUS4BM,1356 +awscli/examples/ec2/get-password-data.rst,sha256=xSZRwl32mknTv0vXMXn2jPwlcagW0NHNSJNyJ7z2Eq8,979 +awscli/examples/ec2/get-reserved-instances-exchange-quote.rst,sha256=y5yWKp-LZTZ8yNvEmnLgqWtMx8bB5ULI7Gcita65GVY,1633 +awscli/examples/ec2/get-security-groups-for-vpc.rst,sha256=MzwN3--oJtPDYHO9M7wzs3Gt6aiMO1Pt7GJwcKra1X4,1085 +awscli/examples/ec2/get-serial-console-access-status.rst,sha256=0PI6O2f7A_nLitZ1zNERVTv9INlxxB3aUqH4K3pQovI,479 +awscli/examples/ec2/get-snapshot-block-public-access-state.rst,sha256=QyCGB3FDWqfXr2ZpJ6IaxBLF93v8F-w6ZvB_T4zRuy4,502 +awscli/examples/ec2/get-spot-placement-scores.rst,sha256=rwmJaCP2Bh1dy95G07lVJTvk-pCzbH1C5AjJX6kCtFI,4885 +awscli/examples/ec2/get-subnet-cidr-reservations.rst,sha256=29gTTuvPKjMoCZCb2xJli9KyXNrTHhIeywJBjs8KI5I,852 +awscli/examples/ec2/get-transit-gateway-attachment-propagations.rst,sha256=_jW4obvokZCCxLTKqRWlqfL-ta9tJSOm7PtooCUuPjM,774 +awscli/examples/ec2/get-transit-gateway-multicast-domain-associations.rst,sha256=KlRir6EwAHjSOB8mk8E6vTzhy2-pvnqfc0kN2FL9MGE,2333 +awscli/examples/ec2/get-transit-gateway-prefix-list-references.rst,sha256=i-PBBNz9-POFdEmVsIv3wH7x_3gKzcrzIu-jzywMUkA,1269 +awscli/examples/ec2/get-transit-gateway-route-table-associations.rst,sha256=qXbCV-8_EZZIE-3ivg7gfhSQCiL7kTsny4LvloQDzec,879 +awscli/examples/ec2/get-transit-gateway-route-table-propagations.rst,sha256=CFYC25_5xqMxaN6syiApSn9TGMK_-WbR_zZYe2ZfIMo,1418 +awscli/examples/ec2/get-verified-access-endpoint-policy.rst,sha256=BN2c0V9aKWzQmSp3LUG7rLWrgoEaAKNIBts88Pwp6v4,703 +awscli/examples/ec2/get-verified-access-group-policy.rst,sha256=KQBrYesVZC9Jbz4cEJF3MFfaEp3u9d0kH1f-jLwYWNk,695 +awscli/examples/ec2/get-vpn-connection-device-sample-configuration.rst,sha256=5h5mzlh60hXsNbHhszNss9V6kEyCUjElpks1Uuwfxfw,781 +awscli/examples/ec2/get-vpn-connection-device-types.rst,sha256=b7NWzwIta9k_n0b1iu82z_9aPjabbAKAgxYKL_3RdNk,1169 +awscli/examples/ec2/import-client-vpn-client-certificate-revocation-list.rst,sha256=_-2p1mo0fT-NcOYYdGbfkG97xYk76CHeYaSLliNL4jk,711 +awscli/examples/ec2/import-image.rst,sha256=SDU0Yx3nJHITS3LCgNCEZ17riatfQrecYd1HtTq-8Gw,722 +awscli/examples/ec2/import-key-pair.rst,sha256=szPmPWi1pCx2RppAkdw-HxxpEFITYNHRc_5FT7_1QYo,740 +awscli/examples/ec2/import-snapshot.rst,sha256=dToCsr2pceR8_6b-mXiHASqn7svHjVXehzNQTDzEsqk,830 +awscli/examples/ec2/list-images-in-recycle-bin.rst,sha256=GPu6nIVT7Mf3a70OKDlghO1JoJMda3n7zURoDuBoUME,776 +awscli/examples/ec2/list-snapshots-in-recycle-bin.rst,sha256=5VD6UekdCLeR7inDrQ9fKoxYtRLb15tuFRzZ9knLx-0,1136 +awscli/examples/ec2/lock-snapshot.rst,sha256=bpgraGbO82r7cgoUeJIib4iZIIFrNiwT2BYqaQSaWCc,1700 +awscli/examples/ec2/modify-address-attribute.rst,sha256=46ZGnaQn5q6XNaxHQiCzcCQ0NNlE-m8BDNicjhqAgy8,1102 +awscli/examples/ec2/modify-availability-zone-group.rst,sha256=BidIHkG5gjjjW7-tFbAJcBnCARz6VoelQtx565MIa20,474 +awscli/examples/ec2/modify-capacity-reservation-fleet.rst,sha256=HlHDrOzTfnTbgEZeSFvbpXxNZcvMFCrBuEkWL5AjTns,1609 +awscli/examples/ec2/modify-capacity-reservation.rst,sha256=lY7-r5ZGf74R7wM0w5-2v2Fkf8u57yFJX2CHSucDUAI,1197 +awscli/examples/ec2/modify-client-vpn-endpoint.rst,sha256=ymoC_-rIhezJlXeRwMRpY0j8DjBBF6kd59hpVA3yYjg,582 +awscli/examples/ec2/modify-default-credit-specification.rst,sha256=NJIaDweDG7iJPRbq1gons7gKzkU95C1cMDprUup7xIU,421 +awscli/examples/ec2/modify-ebs-default-kms-key-id.rst,sha256=FnaN7GzgYtgAo4pCuYbcL4SeUAPuYm4uA4ZNXCZTFl4,414 +awscli/examples/ec2/modify-fleet.rst,sha256=LxdTHxfP1Xx0PgZfOKncOe4tIcxOX71qWq6zqMTnsv0,829 +awscli/examples/ec2/modify-fpga-image-attribute.rst,sha256=C2WLGD2Ynt9nfd69NheoAg7tJ4rlOs1gFoghk72HTX0,515 +awscli/examples/ec2/modify-hosts.rst,sha256=ul7wBlW1rE8LIf2WKPbiUQcYRy5MhdoyxAQ1FUpJYgM,1278 +awscli/examples/ec2/modify-id-format.rst,sha256=R1isNS2TBAPgEChuImihVUt5UyINYI4bdZA4RIifqpc,734 +awscli/examples/ec2/modify-identity-id-format.rst,sha256=PWgV-1pHZIe3ubTj9-3f4mEvjna-D6iqXJbWtS9OHtY,1150 +awscli/examples/ec2/modify-image-attribute.rst,sha256=-4R4F6SqeIehndMywkwyuK68EeGH4U3n1hKlbb7ywEs,1214 +awscli/examples/ec2/modify-instance-attribute.rst,sha256=BTcC7zvQZ6ulB_V9sKzVUSrratPr_W0IgOzLJI_Pn3s,2897 +awscli/examples/ec2/modify-instance-capacity-reservation-attributes.rst,sha256=JZK_FRv-JyCuIwXCKFnxzhZegfWZw_sFSTa8L2bRTP4,1595 +awscli/examples/ec2/modify-instance-credit-specification.rst,sha256=kufWVR0ByjQZf1FK7IR602OHnNZG-zakwGDYpkYlng0,566 +awscli/examples/ec2/modify-instance-event-start-time.rst,sha256=eVPHliXwpaGrbVvkpo-bsQWwj0kN3VCRrcFBGyq65_o,1116 +awscli/examples/ec2/modify-instance-event-window.rst,sha256=LlbzpRFKS3fa1AMnQn7dVcZDMD_fb0DqjGHOw4lzM1Q,4901 +awscli/examples/ec2/modify-instance-maintenance-options.rst,sha256=Zq7zcp7sSvJ4eQ2W6Zy8W7o6Ab7c0ARmqgg_GTgLjA8,1345 +awscli/examples/ec2/modify-instance-metadata-options.rst,sha256=-1NPtf2Srz92en7rgaPmrs0lig44nSTGQGDLu01VMl8,2601 +awscli/examples/ec2/modify-instance-placement.rst,sha256=2eupiaaYlUHB1f0r_VGKNpPDpfghYweNht8rjvU5vyQ,2676 +awscli/examples/ec2/modify-ipam-pool.rst,sha256=2RS1FrvcNjvhcErkZvHS5AFImhrEieDTsitKZV-CFuQ,1861 +awscli/examples/ec2/modify-ipam-resource-cidr.rst,sha256=aKIAgYbeVexKp7BsYdN9pj6NzRFKQElPTWohJEwHQGU,2180 +awscli/examples/ec2/modify-ipam-resource-discovery.rst,sha256=ivJmzmDr_Nr04-7QqWhiRN_vcBZAK9kfGU5KM2PHYDI,1785 +awscli/examples/ec2/modify-ipam-scope.rst,sha256=Zj1zeLdT_FIG_ea4mPapEc3HRKhFRhyVu33KM4O5jnI,1302 +awscli/examples/ec2/modify-ipam.rst,sha256=IweQuXxIZ-YQ2ogyziwPThqdY7Zl7Au_yS4s79bmtj0,1266 +awscli/examples/ec2/modify-launch-template.rst,sha256=AXynLuzV6YQvDAVGx9Vii6FjlH9VYgffdz4qy15bzE4,570 +awscli/examples/ec2/modify-managed-prefix-list.rst,sha256=0OiG8CTDs7HfyNR2MoLsxRT38C5XOVeeNGCFT-7JmXQ,893 +awscli/examples/ec2/modify-network-interface-attribute.rst,sha256=cuAJrJbSXksXISHWL85GZ4hfM8CrrxHhJ51Px8iReuk,1181 +awscli/examples/ec2/modify-private-dns-name-options.rst,sha256=nRuBUGX85VjfcEIX6fmAMCcmDKji_Kx1BXFf_nYdZtI,577 +awscli/examples/ec2/modify-reserved-instances.rst,sha256=KcmvFeolYkojTArA0XS1CY6CbHPM8Ynpa-zj9aR3KsU,2046 +awscli/examples/ec2/modify-security-group-rules.rst,sha256=2JMljw4zTPRgBBN1i_FZ5DAQXgZM3655YGkO8AW4i-A,893 +awscli/examples/ec2/modify-snapshot-attribute.rst,sha256=8afBVQzKiU5Nnfk27VwIReIxyT_iEHlQRuFTUIZemto,755 +awscli/examples/ec2/modify-snapshot-tier.rst,sha256=V4IUhvfkzYyZNfpkgbMxW2FIPV4rUaX_HnBT3npwNFk,713 +awscli/examples/ec2/modify-spot-fleet-request.rst,sha256=cVf5fcmsRCVnfImiOd83gorNb5eCIxz17LS1bl5taDI,663 +awscli/examples/ec2/modify-subnet-attribute.rst,sha256=Df6tjMRicTFe8xWyhj7e_-VHWv4B9j-jfXwuDC1wTX0,862 +awscli/examples/ec2/modify-traffic-mirror-filter-network-services.rst,sha256=M0HJ3nnTZ3PTmT4MTilZmaR9_cnJ5e_aEKkaoZwmL8s,1543 +awscli/examples/ec2/modify-traffic-mirror-filter-rule.rst,sha256=56TGovJ4DiCYUXk3opgfmBcJ9XFHhVWrMHdpVH9fygY,1034 +awscli/examples/ec2/modify-traffic-mirror-session.rst,sha256=V063zrYaom_eNGiptAlkArKi1pUcNhMBPf4JWnHmY-c,1113 +awscli/examples/ec2/modify-transit-gateway-prefix-list-reference.rst,sha256=DVrtORpq7x62ls37XHk_lKb6REGH6eP_5Sfdprb8lTM,1221 +awscli/examples/ec2/modify-transit-gateway-vpc-attachment.rst,sha256=39AqKBnT7ZgG6khLe2ot96H0yAXi-1mNpwU1Pu7BM90,1166 +awscli/examples/ec2/modify-transit-gateway.rst,sha256=iFMdD79FqMaGKiKtqsSk4IBjKbTu5GaNG_oaKapQ_eY,1236 +awscli/examples/ec2/modify-verified-access-endpoint-policy.rst,sha256=O6ceYfXWFw2pYKYO341UUIl7QleaPnMsp_hKRG6S0L0,1015 +awscli/examples/ec2/modify-verified-access-endpoint.rst,sha256=DojvJEDVVZdWQYXGp2cYuNGDXL25qM8mrwSTct6XDWw,1735 +awscli/examples/ec2/modify-verified-access-group-policy.rst,sha256=W7N4ooszgtIDsME4sA497v6y-DQ8sQMwLbHb6_4l1HY,1005 +awscli/examples/ec2/modify-verified-access-group.rst,sha256=4FxYl9oiOQdZucHzxnAwx4XXnXn9xk4lJToVliZLRXg,1053 +awscli/examples/ec2/modify-verified-access-instance-logging-configuration.rst,sha256=0yl00B5lQ9B_Hr0dUAtKUTav8DLJD92B4fLlB5-2fwA,1369 +awscli/examples/ec2/modify-verified-access-instance.rst,sha256=yIpiySKt5UNORv8H9oj7JjN3zV8I4_MdE37tnaxuBuc,1151 +awscli/examples/ec2/modify-verified-access-trust-provider.rst,sha256=FODYa-389fXMF1eVSGkdYtysjPAeoewIBIWzyWlYZ7s,1040 +awscli/examples/ec2/modify-volume-attribute.rst,sha256=k8WGx_Xxwjw1AfRYYc-kdzNYddz-lMUjkAC7wQSw7Bk,293 +awscli/examples/ec2/modify-volume.rst,sha256=Sr-2mCHXLRPG9LQYUHYOzeAdzvsGSuT6zekJBtLZpHE,1512 +awscli/examples/ec2/modify-vpc-attribute.rst,sha256=_UB1hwJy9jpdtSF4xiQeMv3pBABnlxcH1oWfz-oRN88,930 +awscli/examples/ec2/modify-vpc-endpoint-connection-notification.rst,sha256=4krwxgmitml7uARdLN9hlVbFy0Jtcs9r5tT8s7Ifrt4,407 +awscli/examples/ec2/modify-vpc-endpoint-service-configuration.rst,sha256=ROzeShTIsVg_UqgQhtI2eNsRNZGYMo3JFzAikc3msK4,302 +awscli/examples/ec2/modify-vpc-endpoint-service-payer-responsibility.rst,sha256=4NrXr_8lrjE_PodEFMlMF6d_0Bm7OjSLS9ONgew-Dag,386 +awscli/examples/ec2/modify-vpc-endpoint-service-permissions.rst,sha256=lIA-w93BY_bDgd4QPQFRNvaKLqfiiDhuLU8fqRmHzyw,625 +awscli/examples/ec2/modify-vpc-endpoint.rst,sha256=rCKmephPWndudQLHk4rpVoX-JWmZvMMip1_CGbb6FNo,664 +awscli/examples/ec2/modify-vpc-peering-connection-options.rst,sha256=4kidEKaus7MxuVMvazRoM6mBuqL_vVNLxNpwhhHTMLc,1830 +awscli/examples/ec2/modify-vpc-tenancy.rst,sha256=DdS9HOMff_38cbV69Dh4b07jrirpRZdO2Op2nUI172I,237 +awscli/examples/ec2/modify-vpn-connection-options.rst,sha256=RsQNcIWpo_vOklrVbE0pvjcPZReSYVj_AYBBSHMQq4k,2187 +awscli/examples/ec2/modify-vpn-connection.rst,sha256=Fn6zMyEIt5auiYJRyTxnE-JkXdQi6yVygCZvingccUQ,1465 +awscli/examples/ec2/modify-vpn-tunnel-certificate.rst,sha256=87A5jlXjAVmk-lREfBb7gfdV6LCmdBEkspLKXWO_YxY,1678 +awscli/examples/ec2/modify-vpn-tunnel-options.rst,sha256=4z0PSN37tiy9jzPPDZc4KeRAixwxBZ32qbDJVMS9drg,3204 +awscli/examples/ec2/monitor-instances.rst,sha256=kkCmECudndm98dBE0ul4Un2ozE1rMKjJJ8iHr14GhG8,403 +awscli/examples/ec2/move-address-to-vpc.rst,sha256=Tod51vcaNKM29SZHWfbSATb5wswRMhxATaui1TMXkBE,225 +awscli/examples/ec2/move-byoip-cidr-to-ipam.rst,sha256=PjwCFDbLNLr0kKYDjR1ezrBGwQxy6EVH5XQPNcvYXAE,907 +awscli/examples/ec2/network-insights-access-scope.rst,sha256=akt-xtxGRorlzQdIVIByRfMisN-SJe3geCAhn3oUC8I,2521 +awscli/examples/ec2/provision-byoip-cidr.rst,sha256=dZF3VyKYDjNZmST_F931VKfSL1U15mLi2XnkMWCZMuo,660 +awscli/examples/ec2/provision-ipam-pool-cidr.rst,sha256=rsa8MmeAxdo6IPN3JCFvWyldY9b7LLBVQXLr3p-DpQU,711 +awscli/examples/ec2/purchase-host-reservation.rst,sha256=7RonPkldMb-_qEVPJkx6WDSsvBUc3w_rYFP7AHZ1XDQ,745 +awscli/examples/ec2/purchase-reserved-instances-offering.rst,sha256=I6JA1jLBuSHJ_GfTLGIxf6TbNTbJdPKPXcdZSWdRnts,426 +awscli/examples/ec2/purchase-scheduled-instances.rst,sha256=6NomZ6oUgREOx4Y-YWcAzrJP1VN8tpfST8Jp9JbywRc,1289 +awscli/examples/ec2/reboot-instances.rst,sha256=Pbc59vmCwuLihIhESXpdNPyUkXaCUhVU3q8Uc-uc4Sc,412 +awscli/examples/ec2/register-image.rst,sha256=miQt7OjrWWbq_Y2_aeSI3P6P8Zm0KOxLmATGQfOS_9Q,1265 +awscli/examples/ec2/register-instance-event-notification-attributes.rst,sha256=ifCGgOnF69BKZMB5PHJsMPa1bNWHF8hmz3_7lsc1QSo,1498 +awscli/examples/ec2/register-transit-gateway-multicase-group-sources.rst,sha256=dEnh-q0bhxnKqH05CNO_fh_9Me1717wbLB8qYF52GM8,1006 +awscli/examples/ec2/register-transit-gateway-multicast-group-members.rst,sha256=YD8EEPnYEr90H1LbLP96k_QFKAIfdDN96PWsFkHKayI,954 +awscli/examples/ec2/register-transit-gateway-multicast-group-sources.rst,sha256=KiuxZxJHDvV-6ShleuZkwDxBvK3i3G3kM5eAzyTSx6w,949 +awscli/examples/ec2/reject-transit-gateway-peering-attachment.rst,sha256=gEE7uax_PrAtX3iTXKmbuyrbOVjhvGi6xeV0_yULOjo,1225 +awscli/examples/ec2/reject-transit-gateway-vpc-attachment.rst,sha256=957nvntggtruNKgVVTIDvJh0CCOXw_fwLfLqxvMXyl4,1074 +awscli/examples/ec2/reject-transit-gateway-vpc-attachments.rst,sha256=957nvntggtruNKgVVTIDvJh0CCOXw_fwLfLqxvMXyl4,1074 +awscli/examples/ec2/reject-vpc-endpoint-connections.rst,sha256=DbjfMeYIeizS86ZpzqpXMkrF0ETQTVyZDjBMZmHq0fA,334 +awscli/examples/ec2/reject-vpc-peering-connection.rst,sha256=JQFVvpwvGkSQDeW-DXafkKqgs9-MXgXVZQ9CcKoyOAI,239 +awscli/examples/ec2/release-address.rst,sha256=tvdX28LtoL6lgr-rij_2pIC9RZ3NZ8WqcUYI4nGNBcE,498 +awscli/examples/ec2/release-hosts.rst,sha256=ryUv_FQrZ1cS8t_iuAEBdiyclNd3HhiLhIji1UqTFLE,376 +awscli/examples/ec2/release-ipam-pool-allocation.rst,sha256=j3nKsrUj2dqc_VA6tB4_UJgJDEGKOBIjNIFMvZo2JGo,2017 +awscli/examples/ec2/replace-iam-instance-profile-association.rst,sha256=LFYr1LK8q2SL2-rmV2ib_cVMz5vi7YVveARxPe-7N4M,777 +awscli/examples/ec2/replace-network-acl-association.rst,sha256=qhoKdDDMbVkrkbXqMnsKRGMD3BXBxFPCYunBK_u14nE,349 +awscli/examples/ec2/replace-network-acl-entry.rst,sha256=3VTR4xlVJeUO4XXMMSldoe446QLWhVeWPltJzs2oM5w,405 +awscli/examples/ec2/replace-route-table-association.rst,sha256=J2yP1Foeak8CIq3nlniIVbl0Gxu64buLtOG_GVrEYcQ,349 +awscli/examples/ec2/replace-route.rst,sha256=zLojlhga9XC_azv7HpBSkV5aqYlGKbxzR164Ny-f5R4,377 +awscli/examples/ec2/replace-transit-gateway-route.rst,sha256=JyAibi-31NdfB53sq1h7OmFG1CawzGCOYgZj5ysLEw0,1051 +awscli/examples/ec2/report-instance-status.rst,sha256=LEVptv5-OZBwZwUt9VDeVF-UexDNNynm2qygpUwbn8g,243 +awscli/examples/ec2/request-spot-fleet.rst,sha256=qdTPI5-ZuMq7LeRfCCX4NfEE1xdm7452o6JWmNXRUFQ,5123 +awscli/examples/ec2/request-spot-instances.rst,sha256=vaeuamSE_vPF4lslzIgMkVPGTMgAOa7gFQ83-NY4dBA,4991 +awscli/examples/ec2/reset-address-attribute.rst,sha256=Pmk3Sv0DJwkD6sX2gkJBYzJdMWKJJiSK5BAvk7MPOoU,1032 +awscli/examples/ec2/reset-ebs-default-kms-key-id.rst,sha256=WlkqXeH2E1vXgbe3eKZRJxYxPNPkv_CeoDosNpxSLvE,355 +awscli/examples/ec2/reset-fpga-image-attribute.rst,sha256=IqNNnIiG0o5slFxiZ9JEr1nKBz9oniWIrwetGAJ7s2c,269 +awscli/examples/ec2/reset-image-attribute.rst,sha256=BtZMdZEkYSfPi2rSfxm31HIfRJpfjYa39OFERrsdCP4,319 +awscli/examples/ec2/reset-instance-attribute.rst,sha256=vmmxenRPlWIpxrHvsuRJDHp88K9YDlJTj46URLQGxhA,922 +awscli/examples/ec2/reset-network-interface-attribute.rst,sha256=jLJWw4TEM5eH2ttNlw75Dw4V6TELiVpm3Xtr47BTF6w,339 +awscli/examples/ec2/reset-snapshot-attribute.rst,sha256=0sxK3kVDU_sMrYBJqXpLHbV-fOn3wSb8oQiOQddlyhA,294 +awscli/examples/ec2/restore-address-to-classic.rst,sha256=blW1Pl18eUJShug_0xEkjkhIW3739qq7kZ0Kzc3aduM,282 +awscli/examples/ec2/restore-image-from-recycle-bin.rst,sha256=Qtxl2VYUyEX912jv5c9Fv_1Lddd8SU4sjV6dG7saqGI,501 +awscli/examples/ec2/restore-managed-prefix-list-version.rst,sha256=shLHekT4us062EyBqV9PDQAE5DoO4WEwQmwqvw2KThA,916 +awscli/examples/ec2/restore-snapshot-from-recycle-bin.rst,sha256=PFYHJDvf-iShZEYoLsfPhOzswQn7Sgv6P0LDYT-H9JE,739 +awscli/examples/ec2/restore-snapshot-tier.rst,sha256=5pCYZFkgjKFzmm2wWEbbYNdoPFEP6SbqlZeScqYTifk,2829 +awscli/examples/ec2/revoke-client-vpn-ingress.rst,sha256=bpk5IYhMxW466mAxBPgY9GnJfl7Z2AiEpHQHFimk7Og,614 +awscli/examples/ec2/revoke-security-group-egress.rst,sha256=Of05TtQehdJ8QsjJ-PU8o5BSR3CC98jPSd18oArR4mA,1300 +awscli/examples/ec2/revoke-security-group-ingress.rst,sha256=UssYAmAA5hjSH0LMIFx945szupqqvm_PiHphYqvpS1I,1321 +awscli/examples/ec2/run-instances.rst,sha256=qfgie04hZ6cpIVzTXpya79uB5wGHhWbaalkP0zUuX24,9485 +awscli/examples/ec2/run-scheduled-instances.rst,sha256=yJs3HHpLhGnrmJma74ArQD1DBwpBjdFo15D4PH-7SIE,1387 +awscli/examples/ec2/search-local-gateway-routes.rst,sha256=MS2Uq0RFZLS3Cc7aqHF6VwGo2tjj79ucqjrGS1fuV-8,670 +awscli/examples/ec2/search-transit-gateway-multicast-groups.rst,sha256=6zhOzQVJffcMZvZQyT5COsB7WbDfRLgQP0pMvo2e69E,1107 +awscli/examples/ec2/search-transit-gateway-routes.rst,sha256=aCFT3Q6aqXcKPT-UnMi7aXUrLSJeJjSYLkhpU9LNngY,1560 +awscli/examples/ec2/send-diagnostic-interrupt.rst,sha256=XE4wEVXqHlPwB5P7nXns1k8QswEPzLg5BurVGiLtz2k,264 +awscli/examples/ec2/start-instances.rst,sha256=JF9ORHlvG3KCtQlJZ7ogeaEa4Ulpak2w5VG4JvjC1hk,776 +awscli/examples/ec2/start-network-insights-access-scope-analysis.rst,sha256=Mm_kGfdYIF6ClWteW7E8XP4NuKc5YcXPlNv2hOeKb-o,1030 +awscli/examples/ec2/start-network-insights-analysis.rst,sha256=aoIuZhArxfb3vTYizL0c8c3x9NJjxn1wZPK_QRQxYWU,953 +awscli/examples/ec2/start-vpc-endpoint-service-private-dns-verification.rst,sha256=XRN1MHTZmNBZokytCxWGNhyxfrX3orah1fWD8v-q3Ug,521 +awscli/examples/ec2/stop-instances.rst,sha256=U7tN6_LQn0LHqTC3iU8r49NV9uu0cVdtqCANgdpavf8,1750 +awscli/examples/ec2/terminate-client-vpn-connections.rst,sha256=RJaxGjQ_pOIuR8HoRfE2wtoEmmtSWdh9nM3cnQUCYnY,950 +awscli/examples/ec2/terminate-instances.rst,sha256=jwETBBXPTez7jRGxCRQPQ27UmVLT1k8y91F8_QbDVx4,745 +awscli/examples/ec2/unassign-ipv6-addresses.rst,sha256=IuTZDvm_wi73kJZxPFKoMPM5ecXHk5Vne3P6WUojWbU,434 +awscli/examples/ec2/unassign-private-ip-addresses.rst,sha256=fR90dDPeAH-LsVtGIy5SxchuRD2GI9i52nplVOQzYXw,336 +awscli/examples/ec2/unassign-private-nat-gateway-address.rst,sha256=Qx9W_2WiA7kPzsGBfBR038KBKYjAQxDpJoQxP7-EvKM,848 +awscli/examples/ec2/unlock-snapshot.rst,sha256=HUVXj7XPYhToARcBqblWtmiPsjZ_lPMkKjf1H_r4XKY,414 +awscli/examples/ec2/unmonitor-instances.rst,sha256=bmQC6LCVJiMDfkN7EBmZao0EPPO5RmyZxwAPmXheMek,409 +awscli/examples/ec2/update-security-group-rule-descriptions-egress.rst,sha256=8e0IH4xPUVXW93Y74Y_2E-eqqghOnGPj1yiTK5-t6a8,837 +awscli/examples/ec2/update-security-group-rule-descriptions-ingress.rst,sha256=x4F3tAbMQT5a_RZBFFOaduVCaQxqO2u7g0pswKIB8cg,1720 +awscli/examples/ec2/wait/bundle-task-complete.rst,sha256=_vJg0mP6wmAkhLqbWfSyOT-mxofnLV4sCU5T4s4LsH4,312 +awscli/examples/ec2/wait/conversion-task-cancelled.rst,sha256=2qwW1yA8aksouelzdAza08bg1_H1_F-rQKw-JR3YWN8,340 +awscli/examples/ec2/wait/conversion-task-completed.rst,sha256=yFPEdbrCju3EuJ9iaGVL9g4r3bvPYouhjyFJxVfqT4U,340 +awscli/examples/ec2/wait/conversion-task-deleted.rst,sha256=yqs4wTDrmivqkn4Ru0S7_Ke739w6pftpkQaxjI7sDOA,331 +awscli/examples/ec2/wait/customer-gateway-available.rst,sha256=FkuhLG8FjPEQHY8xPZbGpoqaxYVfrm7oSaQxppsBtdM,341 +awscli/examples/ec2/wait/export-task-cancelled.rst,sha256=lzdH4NQ9JXLxPDf3Ywnr_nr9eh71rceejO2x_hTooVY,320 +awscli/examples/ec2/wait/export-task-completed.rst,sha256=4kbAl544TpUNMHgSLPH1EOMSe1iXro95uAeZXk_cBjY,320 +awscli/examples/ec2/wait/image-available.rst,sha256=0huK6cAcx2Bvem5lKYLO0aIUB7YJ522mu-kCDUV28I4,302 +awscli/examples/ec2/wait/image-exists.rst,sha256=HnuxFqxVFOBIsZA0nkJE7SGBvRfPqWzbLOyfrL9WG7E,284 +awscli/examples/ec2/wait/instance-exists.rst,sha256=0vHmYxncfJXudUNIYk4tZ3CK_KpQWg1BHbsbPAIhS10,276 +awscli/examples/ec2/wait/instance-running.rst,sha256=17_OTcoRweo6t_tGnUuopB-C5gK7vQcN1cABm-J03V8,292 +awscli/examples/ec2/wait/instance-status-ok.rst,sha256=sXFMJ4-wy1E2bFNuzZKVPWs-LJaps9MPqIVF2m0ZYRg,314 +awscli/examples/ec2/wait/instance-stopped.rst,sha256=7mB5dY5lVCcbaJSCS3B4eQHLKHuFJUvwGB1IJsGRyEQ,292 +awscli/examples/ec2/wait/instance-terminated.rst,sha256=MTtgAUmvnqpRL6xxz1Sf5wXprpvB9rxy7TMBnFAyuFU,301 +awscli/examples/ec2/wait/internet-gateway-exists.rst,sha256=wM1xxUORtpTArSkEathOagE6jEcupi6-IyEV0nznwhI,495 +awscli/examples/ec2/wait/key-pair-exists.rst,sha256=LEcmBD2bzT-OczVls-WZdUKp1lJ74dAcqhoofRQAqqE,270 +awscli/examples/ec2/wait/nat-gateway-available.rst,sha256=6f2sS3kB9VPy8vPY67Wi6FoTvlW5aZf61RiImGgEMgI,316 +awscli/examples/ec2/wait/nat-gateway-deleted.rst,sha256=FtlHw2ECE3aqwKGTSkqeFi22bveeRglQbX6gRwJQcmE,469 +awscli/examples/ec2/wait/network-interface-available.rst,sha256=HmNGMOdDYViYjaCIS882_gnE0fAtUZHmS4tUgplxr8I,346 +awscli/examples/ec2/wait/password-data-available.rst,sha256=6on9XWgrNi-i0qUJVG3O8XYFq7W9rlw-blhk-nee_tw,368 +awscli/examples/ec2/wait/security-group-exists.rst,sha256=btr2udz9UO8a8g6KloqI3xXKpKstmvjhj2nzoWafqRg,314 +awscli/examples/ec2/wait/snapshot-completed.rst,sha256=BsuTu_39jqfm4U5ct22AOfrtRskq9W79vrSPqtgVyVU,302 +awscli/examples/ec2/wait/snapshot-imported.rst,sha256=u9wk3kEs5AckpExHMaqs9hQFRH_mWWJfL_-1pqDSKB4,494 +awscli/examples/ec2/wait/spot-instance-request-fulfilled.rst,sha256=St5S75iSmqP61GKf6JQH-bR6ka0kYQD860i_lUSwYc4,399 +awscli/examples/ec2/wait/store-image-task-complete.rst,sha256=3ih7XcfGv-m8NCucesRRfZK-3BxfyZoqm_R1UnpV8LE,490 +awscli/examples/ec2/wait/subnet-available.rst,sha256=YJbAVxoJiCbt2Y3Le1-19v2SKAOzyldahukZSDF5cRw,294 +awscli/examples/ec2/wait/system-status-ok.rst,sha256=KYfVXKFRwb9gy_NdedsgdsVTr6ecbD3leu81mbrgWyc,317 +awscli/examples/ec2/wait/volume-available.rst,sha256=OVH_Fos2RTrcVKS7TRkW7Tho7GbnAaVAdgPz0AP7wz8,299 +awscli/examples/ec2/wait/volume-deleted.rst,sha256=NK-jYwyHyUJfUbgkfDlgEqrGKMVij9W8y6_20UkLVfo,291 +awscli/examples/ec2/wait/volume-in-use.rst,sha256=jIegS9Ugfvz9Yo_K5JFJy5iW7aMxmOE8WSsYM0rR-2Q,279 +awscli/examples/ec2/wait/vpc-available.rst,sha256=tsYMh1H0EAXon7cg0oDS3uNqgQ0kJO3TRE3aoI0YkWM,300 +awscli/examples/ec2/wait/vpc-exists.rst,sha256=46jW5g9rjPQJ_RWmRIo2xvUJ7hJSr--omCbaClbOvfk,267 +awscli/examples/ec2/wait/vpc-peering-connection-deleted.rst,sha256=EaGkcDFJwM7Ph6XiQCzCLJ9fS_IzFnVPGgEErhUw6To,363 +awscli/examples/ec2/wait/vpc-peering-connection-exists.rst,sha256=AyyLbZjWBMvG7-27CDEbVxSCIyWBBTw9zm3izMl5Vro,326 +awscli/examples/ec2/wait/vpn-connection-available.rst,sha256=qwpUq1POpnSFv4Ur0fmc_kM4tg9BwwNd5xmLrJYy9qE,326 +awscli/examples/ec2/wait/vpn-connection-deleted.rst,sha256=7GDutTZNTYojJdgWf3IXUq-r9uWHsWEvpN9ZvMpi7LY,322 +awscli/examples/ec2/withdraw-byoip-cidr.rst,sha256=3zZui9R3Gg5XhzMHGPQFdimxYK3YClPf-SWmPcs3r5M,395 +awscli/examples/ecr-public/batch-delete-image.rst,sha256=F7CvOwZ6x12JnZ_vxXShD573Fzie8gx4dNaOw5hrfik,4065 +awscli/examples/ecr-public/create-repository.rst,sha256=DD8qT3zhwgAfZz8QpVPAjJnmfVdMGEzG8E9cGCh-WWY,15173 +awscli/examples/ecr-public/delete-repository-policy.rst,sha256=4cH-uSZx9n4nWEjvMbeJNXrV8P2DvntJ3wyko7iRHc0,1120 +awscli/examples/ecr-public/delete-repository.rst,sha256=D6ZtCNfaO_MdtgTkM9HXtgKkLsUwn2OZNTXYzOeGM0A,856 +awscli/examples/ecr-public/describe-image-tags.rst,sha256=zggkg2UdpR0r-gDZ_eIVrgLZdDrx3XH_PrzUDXzaQ8I,966 +awscli/examples/ecr-public/describe-images.rst,sha256=E5JLU-4rd6-Vjz2SBkm66c_QwwgWZQjGgoCHzWxikI8,3474 +awscli/examples/ecr-public/describe-registries.rst,sha256=IKafkhdx0vXLncykt2iyvxj5gYqqdjwzp5K8tEbnYiw,755 +awscli/examples/ecr-public/describe-repository.rst,sha256=vu8t6qL2msYLYbAncjMjNfYzf7DEdtBYJBlGLHuV-og,1519 +awscli/examples/ecr-public/get-authorization-token.rst,sha256=2vpTlgs_tka4rr0ZJbpAVk9W2T24q6PAHj1ZJmImzzU,8730 +awscli/examples/ecr-public/get-login-password.rst,sha256=CUWwThTkphSeW64TK3lIoMxXVA7JPX5e2wTJjwMAqm4,1486 +awscli/examples/ecr-public/get-login-password_description.rst,sha256=22fIJRMLiTAkFjv1y8jRPpof7gDQhDZxoR8DoLnD8I0,698 +awscli/examples/ecr-public/get-registry-catalog-data.rst,sha256=1ddybcBsmGPLiDqfp_bE02p6qePVxcm6htvmiPbWDwE,364 +awscli/examples/ecr-public/get-repository-catalog-data.rst,sha256=tl68j7mJOCTDBoVpzhZo27WRQQTlYq04xAWG47mpQWc,1175 +awscli/examples/ecr-public/get-repository-policy.rst,sha256=S_H2oUXSN2e2JhE9EDE9A67b1WwhFpNUi8wcB4XeA_c,1109 +awscli/examples/ecr-public/list-tags-for-resource.rst,sha256=-beKmws5aEZkmuPF-ABNqEftFOukQLXYSA03QNe9Ils,893 +awscli/examples/ecr-public/put-registry-catalog-data.rst,sha256=FlAWO_8-U4LSwB5rduzcAOgcP6DmHeh1ROAL-zefUyY,525 +awscli/examples/ecr-public/put-repository-catalog-data.rst,sha256=bL_ZL56OuqgV93gt6bwK5QfxkeH65d1gW1al2IKAjjs,1909 +awscli/examples/ecr-public/set-repository-policy.rst,sha256=qCOL-GUbjQKTveFIyCSrIKKV53Ka5D1dubmem8KCdik,5358 +awscli/examples/ecr-public/tag-resource.rst,sha256=d7W4OnGTLOo523sRZnnXYXXesccqGIBQo6_qhJcX63Q,1157 +awscli/examples/ecr-public/untag-resource.rst,sha256=NQLXIGg7zIGaOn6GfiIyNyie3IRxbuSQg4l-B-Hls7w,588 +awscli/examples/ecr/batch-check-layer-availability.rst,sha256=ss7kvk4Nf4WmOMMCpAMXfeqPoJCRphLqgP8X9xvO3ko,836 +awscli/examples/ecr/batch-delete-image.rst,sha256=i48oUItNjC9snc6GkMr9m5rZyx1kemQnCEj5P1DtU1I,1318 +awscli/examples/ecr/batch-get-image.rst,sha256=a_DQEjvA3wev89n7js2lHgiVB2_inr0m06lqEUpNY9c,3171 +awscli/examples/ecr/complete-layer-upload.rst,sha256=vv35XHn4nI3Zl5yyZ9Pv0C0tDiN3De6hwmopKvrI1qk,664 +awscli/examples/ecr/create-repository.rst,sha256=ETXxrvFSvcvYAzq3p7CJEmG2tYg7OUDYBnlj2KphZlw,2372 +awscli/examples/ecr/delete-lifecycle-policy.rst,sha256=cGqzrHhrQMtP7Omlpf0h5bAIdk9-qfn5wG8Rmv9ylyY,647 +awscli/examples/ecr/delete-repository-policy.rst,sha256=s_m3RTRdx7qSz6-KKu9a-UQwpUO7KH0U03PE-EBawPg,675 +awscli/examples/ecr/delete-repository.rst,sha256=PNgUQE_kSa-cdzUdaG3Sl65k7UnqspYq2qgfNL_Zu3Y,702 +awscli/examples/ecr/describe-image-scan-findings.rst,sha256=e55aAydtbNJ_A5ysGndQ5r04qzwcplY7iwaYGzTltmY,2374 +awscli/examples/ecr/describe-images.rst,sha256=_xuIKbGyYkOnr1F1d1RmE0msENmdbuf8Q1Cv0fNALJ4,768 +awscli/examples/ecr/describe-repositories.rst,sha256=ejcWjSkqvMIpMBnMM6IvlKXLR1uwGzulWZnpi13h1mA,612 +awscli/examples/ecr/get-authorization-token.rst,sha256=Zef8V9mZwzwcj6JRX5SnvHdgtpjYvezAs5q_vAPhxzc,491 +awscli/examples/ecr/get-download-url-for-layer.rst,sha256=MWH1ww-SP8RDqVFtfRt9_ottpsbFjIujK7Vt-A2sgn4,1029 +awscli/examples/ecr/get-lifecycle-policy-preview.rst,sha256=qIW7AIMDe2ItgQp-UjDZOPu9JpwFGbLALhH6r3jyn3w,1249 +awscli/examples/ecr/get-lifecycle-policy.rst,sha256=xI4kceMDmyhYKmFt3kK0YKrD7zEcX6lnBTkpYXIMlBs,888 +awscli/examples/ecr/get-login-password.rst,sha256=0FrzoXUvnLKKKHzAQDWvuFwMqiVAWkunG1miO7opxdg,894 +awscli/examples/ecr/get-login-password_description.rst,sha256=9XS9oCerehFfIMkEhVF8YEHKoJN3iMHAMfft_UDwRdU,914 +awscli/examples/ecr/get-login.rst,sha256=AbGVaTXaQuFlBL0djW4nTF9oV-uMBZEJ_Hx-ZPb8n1M,683 +awscli/examples/ecr/get-login_description.rst,sha256=ksmnpcVNo0cIK0r1oel9BDpVKfEKLXfJBG9EnE2j3l8,1086 +awscli/examples/ecr/get-repository-policy.rst,sha256=7KC_ZCfKX9SdfHQrwWijiLqVt_L4ujs2G5KrlvzBv5k,686 +awscli/examples/ecr/initiate-layer-upload.rst,sha256=yj8Jyde8vs6fcocSAvZ_GHOmtgrT1X0ajku9UN6ifvU,344 +awscli/examples/ecr/list-images.rst,sha256=mTmZu-tglLlY5b1cLl1zvSZhHeCpV7Cew7Ub6dNsdDk,798 +awscli/examples/ecr/list-tags-for-resource.rst,sha256=PA8GHXdc-qGLu-5i0xDe5wG1PWTBHno3WKTelAq-Z4U,433 +awscli/examples/ecr/put-image-scanning-configuration.rst,sha256=5vlGq5b8rQ0pmh_EegqCRoBUK96BJ5MTF2fQcTD51sM,672 +awscli/examples/ecr/put-image-tag-mutability.rst,sha256=BnjqH66ddDSjDrLuxktpAKXyANmrKoAuXEgcE3bWuxQ,686 +awscli/examples/ecr/put-image.rst,sha256=Fr1GxIl-dewGRdsoTqzjLBDCtJRZUxghCuC96VDqzdc,6415 +awscli/examples/ecr/put-lifecycle-policy.rst,sha256=GxMKCMJpAN2R2R8sPxqeGqGb-8yLc2MmLkaMD91FAvY,1380 +awscli/examples/ecr/set-repository-policy.rst,sha256=R9wn5058Lt-lLjYyU-pqJoSKJ6WK9GMmji6rdp7pz74,1187 +awscli/examples/ecr/start-image-scan.rst,sha256=8mY75g08loA5xN1mSmgjHMubKpbQK37tklgV2MLeLAY,810 +awscli/examples/ecr/start-lifecycle-policy-preview.rst,sha256=clG1yBJyetgXOyAaKp3FmZwD4ALz7dg187XYMaERmCQ,1486 +awscli/examples/ecr/tag-resource.rst,sha256=KEJ2ATci1tZDMt3jbuptg24Tw8WZsmqpUu9BeT929cw,334 +awscli/examples/ecr/untag-resource.rst,sha256=RNR8QgUpJgsHNkl5TL2yAfRPmvG6T5XVXEAeUoSfOyE,319 +awscli/examples/ecr/upload-layer-part.rst,sha256=GRacPKGCYA8H9Ir4uu8C4-99q173NyLGXZolMXhekys,679 +awscli/examples/ecs/capacity-provider-update.rst,sha256=-ynz-2m3NxfyFNF2xCEBdcuQPx83b1JOs2836XDQcJo,1950 +awscli/examples/ecs/create-capacity-provider.rst,sha256=RmdbP8SVIXFUGPKpdSKkqsTnzAzN6LwkmCMYZd-WC0g,1623 +awscli/examples/ecs/create-cluster.rst,sha256=K9Y_pNu8hFagKPJgfKFuSXGs_xmkFsmmOlfofewpetE,5860 +awscli/examples/ecs/create-service.rst,sha256=PF2Y88r0D615nLyN1dsUgyTwO92dGypmsWsMbOjRgAw,15748 +awscli/examples/ecs/create-task-set.rst,sha256=QFLHfhvU3C1CK_HiFcb5d3T6I0QG8JfsSOQssSY-pDs,1598 +awscli/examples/ecs/delete-account-setting.rst,sha256=ZsljBcOiVagRW32A0BesG4Tq1qrQwqlnDUQG7dIXj4M,715 +awscli/examples/ecs/delete-attributes.rst,sha256=_tiE_6I38WJwBEbqtRAnw_ffVYhJfRMlimUCPrq4CNo,627 +awscli/examples/ecs/delete-capacity-provider.rst,sha256=6OlZlfxOf6GrDN2k8D7R5xpo4INmo0vVLtdJ-7cv1Qw,3070 +awscli/examples/ecs/delete-cluster.rst,sha256=qZpoypuGa9A4n9VHjktoqKzNHnH0Cv45dVZJsm5bGRA,752 +awscli/examples/ecs/delete-service.rst,sha256=84mCTPwVaTkdO2Rc0nAXX81AKDV7Sfw2aA7OAnayn_g,471 +awscli/examples/ecs/delete-task-definitions.rst,sha256=Yfut3GrEcoRwlqsfd0AYRjnE9z1rDlsNEG0GiAlcCL0,2424 +awscli/examples/ecs/delete-task-set.rst,sha256=sJYVJ297S98CCD76fQsCTIjhNKnVQTl2WKRkTos4WPI,1627 +awscli/examples/ecs/deregister-container-instance.rst,sha256=kmP7fRk44_qymr_1VE84Q7-nqLBPujjQdB_93ksOHUk,9553 +awscli/examples/ecs/deregister-task-definition.rst,sha256=mYM8i6fNBqKZw5ZLs4F9q5jAc55GPrq7MWJ5iQQ29Sg,1357 +awscli/examples/ecs/describe-capacity-providers.rst,sha256=2QyypzeIqOBZlK2GfNhHFUpv428q606p5GKr4YgjrhM,3390 +awscli/examples/ecs/describe-clusters.rst,sha256=e_svubjLn4OMxrRWd0O4rSEzSfnU77x_goLQGtpsaoE,3009 +awscli/examples/ecs/describe-container-instances.rst,sha256=P-FT0f1c1SHWJg5PHOx7oBJKg63yPRqcPj6DBafTp4w,3274 +awscli/examples/ecs/describe-service-deployments.rst,sha256=wH23NJVQ1GyemXAZEu7GO5qw8dRW8JZRbHxb8rB89lA,2600 +awscli/examples/ecs/describe-service-revisions.rst,sha256=sZiVFivQrhhcCXjrdOSRzg8_9fV90zv7rAUX83JkXqc,2831 +awscli/examples/ecs/describe-services.rst,sha256=e8YRA9elB5aPLyq-B_utLpRzTkujKD65684LaYcoiFY,1889 +awscli/examples/ecs/describe-task-definition.rst,sha256=cIND7fLg-rmy9SxJvXnHPh2qRMv8kmoDvSHFzpxvaKY,2180 +awscli/examples/ecs/describe-task-sets.rst,sha256=8zZAjQrMTgFE3rzeroX1ZyGdMQnceQBJaHjONHFUR-c,1717 +awscli/examples/ecs/describe-tasks.rst,sha256=mahWjugN5eU17MlZZZxBDl3_nj3G4UivBqOZD3rxa68,12904 +awscli/examples/ecs/execute-command.rst,sha256=-zYMMhHK3wjIfGObn0pknTSGZy92MtCA0TdPcihBz7M,750 +awscli/examples/ecs/get-task-protection.rst,sha256=Z2R-4PieLRzAiaehZPAyurwRJLDt6HocqPDcQOMaLSE,817 +awscli/examples/ecs/list-account-settings.rst,sha256=U_Tm82zhMyrD6u75xgn01k-c5K8gGd194DQvENjSsyk,1536 +awscli/examples/ecs/list-attributes.rst,sha256=I5HGg3TJRxIiUD1JEOLO98fqR7_s64GcJIbfgFIiBV4,853 +awscli/examples/ecs/list-clusters.rst,sha256=X1K0IwK7lRKBx7SL6nTzK5XINDtzrsx1VCcUTUcI0zE,516 +awscli/examples/ecs/list-container-instances.rst,sha256=uxCqOxsdMVp2BJeC0hkmy0-j4VBUBBqJ7ez-LC2J_UQ,701 +awscli/examples/ecs/list-service-deployments.rst,sha256=Ct1fmkS16M1DY3C22JVGxPrsKb0A_k7etbgTfA-HneY,1338 +awscli/examples/ecs/list-services-by-namespace.rst,sha256=60vHrHuIhmsxbslTxxWwqAw6x1kGAsfstxsFlYRAbL0,680 +awscli/examples/ecs/list-services.rst,sha256=e9Cp6BagGwLmm_zDYjg6UUPftMZC0X4DDw1c6hQBpuU,474 +awscli/examples/ecs/list-tags-for-resource.rst,sha256=kzBuFFuVEX9Wz1LSAV5B4JcTRzuebVVYCVX8d5DZ5R8,574 +awscli/examples/ecs/list-task-definition-families.rst,sha256=drHAF31G1b-0UpvLMB-P7CI_zj_rSEqesXdK5VKny-M,927 +awscli/examples/ecs/list-task-definitions.rst,sha256=lCJ6YxfJm_z9_HeWz5OFua1ns-wvHtQGwxKZCk5XiYo,1511 +awscli/examples/ecs/list-tasks.rst,sha256=Z77I44mxZnKySRv2lSgE6kAawn79PwFhnHg21Qd1_ik,1027 +awscli/examples/ecs/put-account-setting-default.rst,sha256=KY_vSLhiIuNGon1DqsQT2loPT7_nHE8DcI0Dmg2cIko,770 +awscli/examples/ecs/put-account-setting.rst,sha256=evk80P4UZpDzmyL1t7dICKoMNb2jjWV8TJm6Cq37Yh4,777 +awscli/examples/ecs/put-account-settings.rst,sha256=ZUzQlbUBOLdO414Pvy6TszaqC9UGdsswjrpXuQ4psro,543 +awscli/examples/ecs/put-attributes.rst,sha256=S2mwDAQUAWJJtUS8HywHT9MVN8DnxgxjfMShU4r8n9Y,665 +awscli/examples/ecs/put-cluster-capacity-providers.rst,sha256=FvzCz0vkOUVFW9TWevQGe-WN8XTPignyZpZ8tqs98kE,9906 +awscli/examples/ecs/register-task-definition.rst,sha256=dyebPl2I708q1cS2CJSxYSBbu7unaMJGTHXHv-uMtfU,2687 +awscli/examples/ecs/run-task.rst,sha256=NjKFdxMHHO_mR2o-QFYAZYqZHRb1JRW0SxmMEqLruOQ,7893 +awscli/examples/ecs/start-task.rst,sha256=v1LImdqgvMTGsigAM0vcKMY80djZK61FDKD-yFQgOAk,7319 +awscli/examples/ecs/stop-task.rst,sha256=R0gpzlxaQtQIahTzzAwvZAKCJ8aLR_C-AnWmeUEf_jo,1496 +awscli/examples/ecs/tag-resource.rst,sha256=wwHgJOlBWNy6d2ZetCQ0Pm32N5DucknQHi-pVMD-KZM,627 +awscli/examples/ecs/untag-resource.rst,sha256=Ip6Ym3OJUB0K8w5qCVcJD5JV92b4rshwdm6Rb21_NRk,306 +awscli/examples/ecs/update-cluster-settings.rst,sha256=TqiHBdFK3S4PMLNUuVCmr-d8zXKSh7WwoaQxoo7UDyQ,1103 +awscli/examples/ecs/update-cluster.rst,sha256=lc5c3EdH3cOtY3s_wFjUJ6fA5KNZrJaWHX1xuCoOh_w,6862 +awscli/examples/ecs/update-container-agent.rst,sha256=nt5BBtWbdqJY3coD_7G3LMMtuDIzKaDln_6F8J8tus4,842 +awscli/examples/ecs/update-container-instances-state.rst,sha256=4dSKofws7Y1kSmhow-TfESecyG9tlzVjSlYVMevBE5I,10437 +awscli/examples/ecs/update-service-primary-task-set.rst,sha256=M9ZKYEjcl2lkDom45XJtP2Tu0O5kBQuk9erw6Y5UZmw,1594 +awscli/examples/ecs/update-service.rst,sha256=QXuv4V1ascSkk8FbLKr-UBIJdjB3BN_zp_DsYl6zu5Y,32680 +awscli/examples/ecs/update-task-protection.rst,sha256=Ltv-BQHFUkVQKMflK2wBPZhC-fri4djDptnCejUvEVw,1740 +awscli/examples/ecs/update-task-set.rst,sha256=NimKKM9kaehqwRdzETkLMQASvzcJCMHAhO-g88BmcQ0,1553 +awscli/examples/ecs/wait/services-inactive.rst,sha256=X6nH3H6E-wmR63IsQJs0AtlPtOJ4ehxcvTv9Dh1j8AY,284 +awscli/examples/ecs/wait/services-stable.rst,sha256=FTnYJoGvRQZnlALT4xbwPd4oFmZ3RKWtjpk67YtNdDQ,341 +awscli/examples/ecs/wait/task-stopped.rst,sha256=oyCiOkTVIuioc2V_lDMuv2LO-d-6ZtLiOJ7M0maxumE,860 +awscli/examples/ecs/wait/tasks-running.rst,sha256=MuQoAR8mD40WWKNksGwLaGS2jGoEyfe5VSEeo2i3NTQ,342 +awscli/examples/efs/create-file-system.rst,sha256=9Vtnp748EfXEBkW_KiVyVdLbS_VLVfiBEvf_9vgrbuI,1472 +awscli/examples/efs/create-mount-target.rst,sha256=Azc9bazS28TtznFQYiOc9bbiS9dwnIksa0wxlGasuaM,931 +awscli/examples/efs/delete-file-system.rst,sha256=PTN6jvlZolDEo0L57UinOTG-bvatQ2Lkl1z22Ea2f8M,404 +awscli/examples/efs/delete-mount-target.rst,sha256=R9A2TNoZpA3prcYE0k88lLeuMkhgRac-29bfxhLMheM,398 +awscli/examples/efs/describe-file-systems.rst,sha256=Xd8COyKMgz01Sidh6RwCTgZf4l82a3kLxyXi6HbR7-A,1580 +awscli/examples/efs/describe-mount-targets.rst,sha256=znTptK_D3JM41bMjw32ITpVmPI1D7Noic8ar28_YZCs,978 +awscli/examples/efs/describe-tags.rst,sha256=bpmDRNsiswisOq_WsUv_TFhN-b4i7-broDF43NxK0P4,674 +awscli/examples/efs/list-tags-for-resource.rst,sha256=XT4O-pAZ2yXx-yU53wLDv3nSPPEGj8mNQvTT1-S0N3g,698 +awscli/examples/efs/tag-resource.rst,sha256=LzchMBnIsdTEv_6oCuvrFMiO33o6kK5MPCybso7xRvE,484 +awscli/examples/efs/untag-resource.rst,sha256=l9P6rhgjDg66s5Ha_GW-wso2ruqlmcxv_KSyBQp8jf8,471 +awscli/examples/eks/associate-access-policy.rst,sha256=RVTTf9N2lcaMidHaBZajYEf8RYvF7fETn7ckTryt5LE,1221 +awscli/examples/eks/associate-encryption-config.rst,sha256=tv5_wkDATLpG6QfZVlhTBNi7apVVIbhNY4pnkNCiNoM,1170 +awscli/examples/eks/associate-identity-provider-config.rst,sha256=Ngps5URSDpGtrRESAfEqgAyMQrrAtxB7N-nDasvi5GA,1513 +awscli/examples/eks/create-access-entry.rst,sha256=x1oOGVVv4rp6K9PM1_J6Fy87cRUJUTXCRivCOn3kuuw,2481 +awscli/examples/eks/create-addon.rst,sha256=ZlWlkRacfZar1XTg-xGxXQTPTPW94CtDA8kiA_vvUUo,8039 +awscli/examples/eks/create-cluster.rst,sha256=BoqkO9Ska7Guzqu1QNVFo2h-QitSR9xlWO2CUrZJFdc,3343 +awscli/examples/eks/create-fargate-profile.rst,sha256=EuZxSovZBCWgQfnLG77FIZCvJypCuFouLwMmfdMDbBg,9950 +awscli/examples/eks/create-nodegroup.rst,sha256=GyvTVQTAo5Ur8Xw472y8857gMhxfEkSTli2LIt3yubI,7366 +awscli/examples/eks/create-pod-identity-association.rst,sha256=RwfLb3NbUTcN135MxQ9rptljpeWyy-Qib6D1L1hRbRY,2545 +awscli/examples/eks/delete-access-entry.rst,sha256=eP332dawJLOwYmLHTe_X05_G7weFmDwjLPMMyk313eo,512 +awscli/examples/eks/delete-addon.rst,sha256=7TqWeKAu6gQ26JOIapPSAdu5wRvmdxszHBUBdxLU1ec,2304 +awscli/examples/eks/delete-cluster.rst,sha256=CeBmNmNXeyF0yS3Xo84GeZ4EHIKLSMaHnXQsYvQvwkk,3647 +awscli/examples/eks/delete-fargate-profile.rst,sha256=BZdTSGMa59Q7KmG-5Qlk4Bu9ebUv9Puqaf6LC7EUsek,1454 +awscli/examples/eks/delete-nodegroup.rst,sha256=H0gSAWirNX8kVJJa9yqmpi_K-o4AxCZ0rBljlErQGss,2075 +awscli/examples/eks/delete-pod-identity-association.rst,sha256=w8OftQ3m-S8AEDUHOSpty_7UQsgDsEl8SOTdot3TeT4,1209 +awscli/examples/eks/deregister-cluster.rst,sha256=0EaIG9t0nsyght_CUe9b55z1ohwy2SYrt9x_jqhmhDI,1118 +awscli/examples/eks/describe-access-entry.rst,sha256=KV-jUujbG1FlHPFBMrovxwzcNiQUdaQ-TuqefEBUpNs,1116 +awscli/examples/eks/describe-addon-configuration.rst,sha256=VRZyZpqiRyeBRlMfRkiJ_JrW54zuRw7D00N_juxS3gk,7232 +awscli/examples/eks/describe-addon-versions.rst,sha256=FBMf7XHGch2RanAMNrj35gkbt3T0i6Q-_oL9P54rS9s,11950 +awscli/examples/eks/describe-addon.rst,sha256=o3g3OWkJcDHqrcsWzpP8Dia5FmTn1dtLv4u206kH4_A,1211 +awscli/examples/eks/describe-cluster.rst,sha256=2tHAIWQ7J6gk-kmqKUauJX8RwVmF-xArHD-a0pcbbdU,3585 +awscli/examples/eks/describe-fargate-profile.rst,sha256=RRuGqjcDo7A45ugnfJHg-QL3nWFVnQqNd4DWeVJF-L0,1557 +awscli/examples/eks/describe-identity-provider-config.rst,sha256=MkEnu603qrscluYq_I5UGZzAVu8pOwCK3IyEzDFhDPY,1660 +awscli/examples/eks/describe-insight.rst,sha256=n7GuV7h50uzU4jyMi1zXPsx8V8TNV2gdWyvy4Xhwias,1747 +awscli/examples/eks/describe-nodegroup.rst,sha256=GV8qJDSg0050jJSKlQxK3ORG6DB1z4SSIfYvL60mi0o,1859 +awscli/examples/eks/describe-pod-identity-association.rst,sha256=LYkoJ9el0_Xm5WIL9z7O2FJcO-u-5GlYBFjOJ6g4ThU,1151 +awscli/examples/eks/describe-update.rst,sha256=SvQOIUw-IbSZW6z2He6ChrXd75-drw-_3tUw_-acxCU,2974 +awscli/examples/eks/disassociate-access-policy.rst,sha256=FT8nR22yGn17-884gCEcrwYecu_6NROXbJmpxAOtPOc,605 +awscli/examples/eks/disassociate-identity-provider-config.rst,sha256=S3ZC7ADryxpn3QmtGKpsO5X-GTQy45m4-SjWfBk2xwY,1167 +awscli/examples/eks/get-token.rst,sha256=XgfKxeJqPE-XfOQyAzcH8gfjVGNsgVACn5Y68_VPW3w,1414 +awscli/examples/eks/list-access-entries.rst,sha256=tIMgPXm59Jtc2HsWqFqYAvKxF0ReXAhCVrGdveZahEM,744 +awscli/examples/eks/list-access-policies.rst,sha256=cDaJNqKRwiiSdDG5PgxQDTGxdtAtZm1EGmVDawIZqek,3771 +awscli/examples/eks/list-addons.rst,sha256=pAbDxXsgmtaTzdOIAj47DDWxUgDaU_n9xuWuwJbOjrc,391 +awscli/examples/eks/list-associated-access-policies.rst,sha256=1mpaV8Sm_lIue-IHg9qYZlLfXl3nCGI-wr0Htshap9U,1109 +awscli/examples/eks/list-clusters.rst,sha256=GQ2EeSbM1OrcJJ3AjkwbDyVRA9agF2hrWEbcCUGgONI,401 +awscli/examples/eks/list-fargate-profiles.rst,sha256=BxdU_974gRl5ogeqwVuPnqJl898urmmX44btKkH2Hbs,409 +awscli/examples/eks/list-identity-provider-configs.rst,sha256=o9vO4XF-DwW6XZq5q2M3qHaWZ9f_yb4wFf7FFlDAY38,698 +awscli/examples/eks/list-insights.rst,sha256=Gg_NWk9hHLliUidVnAXP7g22a5RroWX9fIZofHsEe4M,3310 +awscli/examples/eks/list-nodegroups.rst,sha256=H4E8rHXBUDhaXiR3EWFBkSEetdEDKA9ApDPZW4mG-5U,364 +awscli/examples/eks/list-pod-identity-associations.rst,sha256=cThvjniuCUDAYLUw9V58WyyZcqsmVtX4kKy9-JCCmZ8,2678 +awscli/examples/eks/list-tags-for-resource.rst,sha256=_u6k-mE7aQmhNbivJWhVb0FPhZ_hYwiV9TU6z80CfqU,4290 +awscli/examples/eks/list-update.rst,sha256=vyiU7XA1gutHLMbXhQyDv1m2Qb9hGZCQmsRMrS_HwOw,1295 +awscli/examples/eks/list-updates.rst,sha256=YwqUUuTOLzkzncmVg1J2YpKLx5PyZN0t7esNfMNQQcA,289 +awscli/examples/eks/register-cluster.rst,sha256=9ficF83hyhIVbJStQAHzVVsFXMfobCc1lNGVa2F6x_4,2530 +awscli/examples/eks/tag-resource.rst,sha256=dul6fX4819LhCc2MaZv-SfKBxBTvFBdnFqrfRystlYI,869 +awscli/examples/eks/untag-resource.rst,sha256=I28RzcJVA8H-J7R_7PTAxj0YtI9QDHo-hVv1awM_lDk,863 +awscli/examples/eks/update-access-entry.rst,sha256=khv_0jDlNWUADzglss0EqSXt_IqSQifGM64tKKb87f8,1177 +awscli/examples/eks/update-addon.rst,sha256=nwU3elxdhsUdlUFfa8LV1vgjAMpxFAM7sOXIubnEhuU,8524 +awscli/examples/eks/update-cluster-config.rst,sha256=BUv5hWQPB-ZBCjEqr4_R8Zj7JGKKVs_O8Yuu1nBiQ0I,1619 +awscli/examples/eks/update-cluster-version.rst,sha256=JUXS0GrGdtTbjOT9N_lUDhd1fyXuEm8yKe6KjmHArX4,1077 +awscli/examples/eks/update-kubeconfig.rst,sha256=McL_9xA3KST54Y7-AylWlEl1jlOG5n1Vid_JyEBoRww,4620 +awscli/examples/eks/update-kubeconfig/_description.rst,sha256=chkZW0gv_iguCI9_sdFqvP1gIw7YUBt6YsLaHwlF3aI,1781 +awscli/examples/eks/update-nodegroup-config.rst,sha256=2HTWv17VZbq7wnwZlCu9h0cSmlt9C4o7LE0dUTW08D0,6583 +awscli/examples/eks/update-nodegroup-version.rst,sha256=ZJwGzWjOZFDWu8GewJwYnLvS4yTHq0CHMU4BFDIqaoI,2459 +awscli/examples/eks/update-pod-identity-association.rst,sha256=X3uvXP7487DzmeSq_6Fa31bA-lhB4x0DO_zvP2RwFvc,1408 +awscli/examples/eks/wait.rst,sha256=q4u9o0yZM6gGk7BJ3qf4uNw1ElDDqzdr4npp5vtfAAE,354 +awscli/examples/eks/wait/addon-active.rst,sha256=twG4MgC3yvkSURSb47ZcfhOH8clNDmbky4eRNaYeZF4,409 +awscli/examples/eks/wait/addon-deleted.rst,sha256=wSueOKQUDVRyLisSztiYr12-sNgTQdAIeSus1R4dA3c,468 +awscli/examples/eks/wait/cluster-active.rst,sha256=RDP3nlWgx8k-AgQSszFQzdOsQjQE81KHpRJOcE-Gdf4,297 +awscli/examples/eks/wait/cluster-deleted.rst,sha256=1IYLg6nmBYmndEmbdseM9_QymXZPQlrBDTl8tR5C4Sw,346 +awscli/examples/eks/wait/fargate-profile-active.rst,sha256=0SfcuF1GOM9zlL897lhfASr5EI_FOMXdMZC9QrTz5zQ,453 +awscli/examples/eks/wait/fargate-profile-deleted.rst,sha256=HjLt_TeQ-mdHt6Nnkl8xJyctdQB7u5FfCFdqntUN5eY,530 +awscli/examples/eks/wait/nodegroup-active.rst,sha256=ZSOAXe_Cybb8Tlkh_dD1EK7mQt8pZAuXSP1FHFBWDpY,419 +awscli/examples/eks/wait/nodegroup-deleted.rst,sha256=IUj8bmZN5bc-cyJVqR3ZyUGZtrDTdZ3i5By0-OK39pk,483 +awscli/examples/elasticache/add-tags-to-resource.rst,sha256=cIyF5oGFBjfCx6zHVbDQ9jB4vrDXYQqZ2C9Bp0JSe94,813 +awscli/examples/elasticache/authorize-cache-security-group-ingress.rst,sha256=wgIO3sxzKxBX6YvQPmQwe1QKw_wE4InNrF3x5QXFiDg,628 +awscli/examples/elasticache/batch-apply-update-action.rst,sha256=UVFi7GQzJJN_Dc-XRKwOZAFrYVFjyHKFUEmjX1AQxb8,796 +awscli/examples/elasticache/batch-stop-update-action.rst,sha256=HkiTaNclauheem6kPu9TS7xxWQ1YI8Tcc8RP81rfKsY,783 +awscli/examples/elasticache/copy-snapshot.rst,sha256=cLun_CcIKHIvGl_JTy_lDDJBpF1h8uLiad_coEyXq8M,1633 +awscli/examples/elasticache/create-cache-cluster.rst,sha256=zJ2KOuxMfVpowNSsz-c_SfJpKASOdNne9gLdvwn-DOU,1550 +awscli/examples/elasticache/create-cache-parameter-group.rst,sha256=wUL72ON23gU7_H5Ds-E-VYIjAKMHvKXLycodFChZKx8,748 +awscli/examples/elasticache/create-cache-subnet-group.rst,sha256=HhgQ31-WR03x3xj6v7fgvGOOljrOVlu-8E_Ta-gFYHc,993 +awscli/examples/elasticache/create-global-replication-group.rst,sha256=OQ3vP2OGYSHgu9ifeoCNLO8qIDcnQNO44U1-jKZcH_8,1642 +awscli/examples/elasticache/create-replication-group.rst,sha256=KzLGUWJeCF7sbTEktN-GV0bXVsHhh1OuaEtetPgE63U,1269 +awscli/examples/elasticache/create-snapshot.rst,sha256=UvxEIXcKA3aVNsoJ6rHjrHybYhcNA9YWDIIM2iKfa5w,1543 +awscli/examples/elasticache/create-user-group.rst,sha256=ArEP3Jql6TVR539nl5xVrH4Ft5OgHPnrPu60lG6xcV8,746 +awscli/examples/elasticache/create-user.rst,sha256=kAjQ3jIf2NGntKbczbYfBHk30C67PJRq4bMtWY9ANjc,1040 +awscli/examples/elasticache/decrease-node-groups-in-global-replication-group.rst,sha256=iOaho6sv3C03eR9tMa8-Ctw43NVWCC_F2DusxF7cBFg,2460 +awscli/examples/elasticache/decrease-replica-count.rst,sha256=QDCm_fPe3-29pz1LJjITMhaTONk75WPiShQmThcKi68,4140 +awscli/examples/elasticache/delete-cache-cluster.rst,sha256=QGeZzIQTWj0cX3fCa6ss_ZcPdSnyGzHJ7e7cZqaJGBw,2705 +awscli/examples/elasticache/delete-cache-parameter-group.rst,sha256=N2hpq5rgb5ic7BkClfcpapBlkwq6MXKx9_-hLpCaRI0,554 +awscli/examples/elasticache/delete-cache-subnet-group.rst,sha256=t7aQaNFZ74uvGvA0FtkdIV3IozhNl0ucl9d1QoPCmPI,523 +awscli/examples/elasticache/delete-global-replication-group.rst,sha256=MIhc8800Wr3hKX1REqgv1YCijbr15WEptgBaALqQky8,1387 +awscli/examples/elasticache/delete-replication-group.rst,sha256=hfROSphk3td4Ny9Tis_NmKJ7d-82yzENrAtpet_UnIw,1173 +awscli/examples/elasticache/delete-snapshot.rst,sha256=Dz4uIy7MX6xUMe-T-pNkkaDblCUz6S80dwl9TJnQq4o,2909 +awscli/examples/elasticache/delete-user-group.rst,sha256=YrzN2mp_7ITL0URCd3ncedUTJ1b5b87znUPG8bdbZD8,684 +awscli/examples/elasticache/delete-user.rst,sha256=tcG7YHU0Qftud8NCy66A3rFeRkENFPGRFqe06uINjVM,780 +awscli/examples/elasticache/describe-cache-clusters.rst,sha256=UPCaFadThZiMtvo8Q9FAblQTwhKgQ4eLkHs87MPV2yA,2816 +awscli/examples/elasticache/describe-cache-engine-versions.rst,sha256=L28e9ZPlrP5cq_LJDkYcWBc7eZISyOCQf9rS_LGDsPY,4720 +awscli/examples/elasticache/describe-cache-parameter-groups.rst,sha256=OD16SSK7dFFu_-4t-w0IEh_PEvE4a_HUgHnJSg3zJBE,719 +awscli/examples/elasticache/describe-cache-parameters.rst,sha256=XUJobNx95067fY3O1xdN60_ATTXi3VpP4BEbI0Q7bew,30148 +awscli/examples/elasticache/describe-cache-subnet-groups.rst,sha256=04aL5m-dgyVieFtAb28HpR-D0EakdzqIcbsqN7F7Wak,2733 +awscli/examples/elasticache/describe-engine-default-parameters.rst,sha256=aCW9ZVlPZ9Rq0aT_Xn5-HSUPtuAlVtGIJXNMT4dWLr0,32654 +awscli/examples/elasticache/describe-events.rst,sha256=EUz-k77b9vKpEorZ00j9kH_JjqptKyBtKFwIsZYREVA,1040 +awscli/examples/elasticache/describe-global-replication-groups.rst,sha256=IVMUCASTi0VE23rryT62XAY09HX3n-xfF7ZUulxUIfw,1055 +awscli/examples/elasticache/describe-replication-groups.rst,sha256=en-3cr575lwMNp0nBPfGlEnrqyH3bLaTXS0OEU_rauo,4815 +awscli/examples/elasticache/describe-reserved-cache-nodes-offerings.rst,sha256=NljfrEZxjYuj5O1GTgr2XyXmZLgrcazVmm4vQsFPPVM,1961 +awscli/examples/elasticache/describe-reserved-cache-nodes.rst,sha256=soHX3qw08x1IAwuA6Y96syV2DOEySReTDPZdQVvD-Dw,1415 +awscli/examples/elasticache/describe-service-updates.rst,sha256=T2pH3ejsTtd-fRE8Jf7Q1PdMRljVwhs9eWuBj2hOmjk,1978 +awscli/examples/elasticache/describe-snapshots.rst,sha256=NPOGjgAsekSmJUmQiE6jn6XFnuxOgwCa4anQy-6U3qQ,4509 +awscli/examples/elasticache/describe-update-actions.rst,sha256=JHTNpl_hkMwk52nvru50iuUEPENBxb4TrE78dLHAcA8,3516 +awscli/examples/elasticache/describe-user-groups.rst,sha256=IeUp8GZxDaKQZ2wHaeR2JJJRp1xhPY1UDUGJXo3Zx2s,790 +awscli/examples/elasticache/describe-users.rst,sha256=4-r0r_xmFV3D-SlsN4mFScKZklgFCZbyjAyoJ_Qix80,2009 +awscli/examples/elasticache/disassociate-global-replication-group.rst,sha256=wlUAhfnnS3OReG7wPhlzw0g1hjKZ1BpHwxd4PEcgOfE,1779 +awscli/examples/elasticache/increase-node-groups-in-global-replication-group.rst,sha256=QNCAUtXD7na83jAoKR_70gUZhCmobS0rrkaGpDAuPs0,2576 +awscli/examples/elasticache/increase-replica-count.rst,sha256=rTaNxILX_pD4Prh6MhrmtDO0EhxxOtJfxtAC4Hzuitg,3182 +awscli/examples/elasticache/list-allowed-node-type-modifications.rst,sha256=eYloAuBHns9Zv_VbCpQDmsnn_i-CrMyvcKQYSi1fnAY,1454 +awscli/examples/elasticache/list-tags-for-resource.rst,sha256=GLqLajJEMyF2WouugcAhlUjsTRxsp8BZrrOvaNK-Vyk,705 +awscli/examples/elasticache/modify-cache-cluster.rst,sha256=HqSVfc4MPuC8mYcV2HYzTfUf1bI-YW8VeF3p6lDrGBE,1615 +awscli/examples/elasticache/modify-cache-parameter-group.rst,sha256=zkXivnkzyFnAW9wOm_gw9ZUfyArS2udkAoyvzhr-O5c,610 +awscli/examples/elasticache/modify-cache-subnet-group.rst,sha256=YqY5AZc_LNj-y2r_RjhJ9aaYyy7XC2OAcu4OzbUF3EU,928 +awscli/examples/elasticache/modify-global-replication-group.rst,sha256=nZozTYhngNpBAogYD17CKhNSWhzXSSbK5ii2k4HxAIY,1142 +awscli/examples/elasticache/modify-replication-group-shard-configuration.rst,sha256=COKTggexAD0WGPDrYYZ-g1jhycNrXCh21IEgv1B-aag,6315 +awscli/examples/elasticache/modify-replication-group.rst,sha256=Wfa1vYv935GodnEOYUnxanMetgcrij2oFFkUPixtH5Y,3671 +awscli/examples/elasticache/modify-user-group.rst,sha256=o1Tjh63b4AbWeBAtcSA-ldjbBNZAZJyLhR41TPjFavI,842 +awscli/examples/elasticache/modify-user.rst,sha256=wu0RG_g3W5MLOA_nFee5ecCvLEHlZPsN0QPw3SwM1gQ,808 +awscli/examples/elasticache/purchase-reserved-cache-nodes-offering.rst,sha256=tn_qrnWgmWsOoTjcsAbzhs8SuY4wgrerTcUEpiGRIgk,1512 +awscli/examples/elasticache/reboot-cache-cluster.rst,sha256=NiM252yakieUU6-HIG7Vz_9HIvsr67wcuNpLMTYDYqU,2455 +awscli/examples/elasticache/reset-cache-parameter-group.rst,sha256=MhKYywmab2yOgM4YTgET58BA-soWgJZUJ4TDbS57InI,603 +awscli/examples/elasticache/start-migration.rst,sha256=hYYMpfYXPGlETZBRTBFpgQA08rcC0gReKisuVasECMM,3492 +awscli/examples/elasticache/test-failover.rst,sha256=tN1YqQ_A57LpAAZHQXvSPdHoWZ-o_jDXwjBP9veAbxU,4435 +awscli/examples/elasticbeanstalk/abort-environment-update.rst,sha256=AEyTYbeHZjoNtj4sxKxYcJgjsSLJ2vkw0kcqCtXlNtU,210 +awscli/examples/elasticbeanstalk/check-dns-availability.rst,sha256=854YdaUn88poVD8Iu4vyHcHDqZHQXShAyL_JtR2Qc9E,317 +awscli/examples/elasticbeanstalk/create-application-version.rst,sha256=qssvivq0aAQzehf3ijb9LsjCX9eK0BZoMzlmw8otOV8,962 +awscli/examples/elasticbeanstalk/create-application.rst,sha256=xyJsWMauaGoBR2UOA8iuRhrE3lByHSlKsSue-0VAwNk,832 +awscli/examples/elasticbeanstalk/create-configuration-template.rst,sha256=aNPM10V2XFE6hb7ST83dsEpO6xQLZfHG1NoD8MI1_W8,592 +awscli/examples/elasticbeanstalk/create-environment.rst,sha256=Mg9T_nbAtNYZQrfKslgmGfR0YzwGtxwAwDIoh57Gvwg,2253 +awscli/examples/elasticbeanstalk/create-storage-location.rst,sha256=9k0Hr0miVqnQ_oxRRAJoyFGYTHFbwZXhd9xH1wTH70s,226 +awscli/examples/elasticbeanstalk/delete-application-version.rst,sha256=3uBeCfemfHdbcESkTmz96WTS_yzD_MS9Oc0a8Ybe5W8,282 +awscli/examples/elasticbeanstalk/delete-application.rst,sha256=84bX8EQP-NURpfgHbTXFQFyAeUyTmZEUwQTMTAcHU8I,163 +awscli/examples/elasticbeanstalk/delete-configuration-template.rst,sha256=dzm8uvQgY8cMwrXLLxaPvv8zbnF08ffiZrYqdsrgzUc,263 +awscli/examples/elasticbeanstalk/delete-environment-configuration.rst,sha256=HHBgVrSZZRxp80IeUttcvSrqwlf9KTlqrz9o6TehZXg,236 +awscli/examples/elasticbeanstalk/describe-application-versions.rst,sha256=G6j61WrqsntKbDXnOpDAAW5M6PMhPwupxdpBHeiI13A,1186 +awscli/examples/elasticbeanstalk/describe-applications.rst,sha256=D2cdubnUVP-rp-W2zecefjpxmt3sronwfudTEBSR92Y,1276 +awscli/examples/elasticbeanstalk/describe-configuration-options.rst,sha256=EOFHrTk5sGfnSeAurLj4KtIifuyTpaL0wYGWVBdNXZE,1916 +awscli/examples/elasticbeanstalk/describe-configuration-settings.rst,sha256=0oK3NMU7yWRWgN3kElD8m1MQ5ct2EmIZWdMEd5P9qJo,2095 +awscli/examples/elasticbeanstalk/describe-environment-health.rst,sha256=eWzL6zukiySyQ8lhmY5IjGjzfVn_LNkT2mA_Dsd8BBc,1499 +awscli/examples/elasticbeanstalk/describe-environment-resources.rst,sha256=qz4JRwlQ5VgXcDPcYOcvVZnm6m_qOD34VGbcEu4T9FQ,986 +awscli/examples/elasticbeanstalk/describe-environments.rst,sha256=GOVuIA0_Xzxvk-yoIYuhEYxZv2eebpTb4SKhcv_6Wgw,1106 +awscli/examples/elasticbeanstalk/describe-events.rst,sha256=4SpfSjaD3C5e0qpOcKzuxhJYZLISoCvKxCQ7f9ugzSU,1586 +awscli/examples/elasticbeanstalk/describe-instances-health.rst,sha256=_axf_RKu1JGZFEVbAGn49HxcYiLE-xVZMQ5iERxgu8c,2052 +awscli/examples/elasticbeanstalk/list-available-solution-stacks.rst,sha256=2fqQ73Gvitv6jwsrfB10PbVBWTGXwiUKnycD5RgmPmI,2560 +awscli/examples/elasticbeanstalk/rebuild-environment.rst,sha256=oIXi--vashijMSeMMqeHe-cgZhFlLheWDrCxm5w8G20,199 +awscli/examples/elasticbeanstalk/request-environment-info.rst,sha256=j4U2VTVdMnwjRG_w6zMeL6vzgLUkVTCdATjyrrsSalk,408 +awscli/examples/elasticbeanstalk/restart-app-server.rst,sha256=vCtqKoqetOaUL92VgMKSRzlCDrju1stJ-6fMHvG1xgY,210 +awscli/examples/elasticbeanstalk/retrieve-environment-info.rst,sha256=vA39C8lgUNbjxgHqKt2iAUmnupyUjgjWjHJY7UrpZAc,938 +awscli/examples/elasticbeanstalk/swap-environment-cnames.rst,sha256=iVwSkBlhbJxFgRULsKyt-2XNJr-IWZAeE2m8DQCtq8w,236 +awscli/examples/elasticbeanstalk/terminate-environment.rst,sha256=nX3RSy3FLJ7hjig6e1oipkprLb---poWSQNgo2uBNN8,855 +awscli/examples/elasticbeanstalk/update-application-version.rst,sha256=0QeTykG8pJfKCntAfy6YB-r3qxC8-DT-5XA7IsZMcG8,781 +awscli/examples/elasticbeanstalk/update-application.rst,sha256=M4FneRgiO7RARFq1YyXQlQCCWb7SI-vxDCzkwO1F4qA,766 +awscli/examples/elasticbeanstalk/update-configuration-template.rst,sha256=egEL1qkCNdmsDDg0LTWegAYznbmueYYv6yXqwHZHFVM,915 +awscli/examples/elasticbeanstalk/update-environment.rst,sha256=3eW7n0yXj293F1oSxe-nQnk2Yk8hlwcHeRGi7BsBMcw,3234 +awscli/examples/elasticbeanstalk/validate-configuration-settings.rst,sha256=D60aCAASQYfdZ_2dpXRA03w-rv4cuuI9AkxRwvL5nJ4,2712 +awscli/examples/elb/add-tags.rst,sha256=tumWzjxibL5ANudJo0c6xMq_Yld5Dz6YzAhFr76G8mc,231 +awscli/examples/elb/apply-security-groups-to-load-balancer.rst,sha256=JcnV3scDfmyG2LHMGlrBe_P_TIL22Jf7Xu4A9rKtQY0,356 +awscli/examples/elb/attach-load-balancer-to-subnets.rst,sha256=5PZsGyG-Hqx-6Nwq4iE5caGU24qqxzQPVzVNVZxZPeY,371 +awscli/examples/elb/configure-health-check.rst,sha256=Oy8X7PxxGyrrfV65oHQRHmQoTl8at9BAQfLZX8slLQM,568 +awscli/examples/elb/create-app-cookie-stickiness-policy.rst,sha256=KzuxEKobddj2LgufqQON6sKjGseEbjWbkizIIOV9hMM,349 +awscli/examples/elb/create-lb-cookie-stickiness-policy.rst,sha256=GhUfA9bqNWiFc8XHav2zGjiztVpccZ7NpnrkwIgFfwE,370 +awscli/examples/elb/create-load-balancer-listeners.rst,sha256=gVo6OHRdlWqRAdLyUuzDlVFTfAwAQhyqW7JDLQvjlqA,649 +awscli/examples/elb/create-load-balancer-policy.rst,sha256=h65Jev4OSM_PaFogwgRj2ySxae65rpGWuBt113gKkBw,2670 +awscli/examples/elb/create-load-balancer.rst,sha256=6LBwut2HdG1b3Tr5Pt84JF1WF4HiXP4PHiyay-NplIE,2380 +awscli/examples/elb/delete-load-balancer-listeners.rst,sha256=SMsr0yErbmo6SDUR9KX71gyLYpy3LgbbyzKI_uMMTOc,261 +awscli/examples/elb/delete-load-balancer-policy.rst,sha256=_uAMhacB60aff4uUUBh5ohK6RFiXwI7MRvEZTEd_OIE,305 +awscli/examples/elb/delete-load-balancer.rst,sha256=pDRAeViFN326oZUC1T9G8mO1YazjQIyiH78Phj1j78s,166 +awscli/examples/elb/deregister-instances-from-load-balancer.rst,sha256=7o57G6_4fbnnVt0CggRGGe7D92KqUAnTagsUnKENnGs,460 +awscli/examples/elb/describe-account-limits.rst,sha256=NC0LjFxFnHfMplLGwGgXFKxhJb5vhU_rapMSZ0dcU6Q,596 +awscli/examples/elb/describe-instance-health.rst,sha256=Ns--NOSxtRTapdp4g4DNGY3LfmUxOHWj4iD3YBVNxoI,1563 +awscli/examples/elb/describe-load-balancer-attributes.rst,sha256=YtE1irg8-5r8FtcUVNlQYCeQYBkBVCMBg6GPQMZKbkU,581 +awscli/examples/elb/describe-load-balancer-policies.rst,sha256=pzV2gRnQGRZp9hjPrk6D6MIQWOnQWfaOigMDMas5vdo,1902 +awscli/examples/elb/describe-load-balancer-policy-types.rst,sha256=U8IjUorFUuu0JoC-htc4P3WnV_5190HwiC-n-32fIao,3454 +awscli/examples/elb/describe-load-balancers.rst,sha256=yMoMz9XCAT-KyLIwpQYpTVxGE7DxcbIEHaYMN8DnUCM,3090 +awscli/examples/elb/describe-tags.rst,sha256=n0Q_0v-g1HFdtI2SiN7p3o4aRrR7-vgYkuytVJULNSM,611 +awscli/examples/elb/detach-load-balancer-from-subnets.rst,sha256=TpvkCEr7js6uGKcngQSDOuNZEpIGUfPK2uZsaVMwpxI,320 +awscli/examples/elb/disable-availability-zones-for-load-balancer.rst,sha256=GanQKD-kvoPXxZpt7DeN2ilIen4wqcW2q1-ZQeKFfvA,405 +awscli/examples/elb/enable-availability-zones-for-load-balancer.rst,sha256=BZBhyA3FQZlqKOAYs8dq9oYq1zy8jCcbL0aaTJebjlE,390 +awscli/examples/elb/modify-load-balancer-attributes.rst,sha256=K-NEtS7kDKVGGggbKmbwEbLFkyez4nECttyW0dQLMWI,990 +awscli/examples/elb/register-instances-with-load-balancer.rst,sha256=HZ4vO6cstkrrYdMAQquo86BbO8QHCSrIaC35pHgOV9o,497 +awscli/examples/elb/remove-tags.rst,sha256=_VehxvV_qNyyKhNEO0rw6TfL_C7pEAy_QVTMXMhNbYk,189 +awscli/examples/elb/set-load-balancer-listener-ssl-certificate.rst,sha256=ogNf0meKrcr_svbwskbA7HGFZsSeitYD_1X9pedFPDI,365 +awscli/examples/elb/set-load-balancer-policies-for-backend-server.rst,sha256=hDS3ZX-zfsIZpTqa0CnCImxE7qR74Cwj-N6NUfwryww,737 +awscli/examples/elb/set-load-balancer-policies-of-listener.rst,sha256=pl0Kbu1KuXtFsEvfkY0mZwietS5N9WARNNMlfYA_xaA,729 +awscli/examples/elb/wait/any-instance-in-service.rst,sha256=8KQC5pko62M6ivXVCQin_B775xTLP_PW15nyO3FXiHM,367 +awscli/examples/elb/wait/instance-deregistered.rst,sha256=5SfLy6sgU4oDxlCyKGoHISa7P0eODXRV8f05B4tlhYU,384 +awscli/examples/elb/wait/instance-in-service.rst,sha256=t59VTHt0lZh-SQ0tm6UFmmdNst6lqQVIk4KDJGTF0B8,388 +awscli/examples/elbv2/add-listener-certificates.rst,sha256=V_A-7YYUxbV7CAUXrDwYevp2NPD7nq9_YFaibQ3uI0I,653 +awscli/examples/elbv2/add-tags.rst,sha256=cakg6OEj6TB9FNqj_WVECpCx3TxvReD2s_VsCshc8gE,390 +awscli/examples/elbv2/create-listener.rst,sha256=H8nhxxhnoSNSHgkuJzeTIpGqGFto__W9NZtBtNJ4UgI,6682 +awscli/examples/elbv2/create-load-balancer.rst,sha256=JQtYcdPI6oeM49ZFUYRe9mwRrkdRdgd8b6sj54MGjt8,7137 +awscli/examples/elbv2/create-rule.rst,sha256=KWAgKq6l4Iw80y9vK_L1ci-r2x-1IgGhQUH9FKWtg8I,3805 +awscli/examples/elbv2/create-target-group.rst,sha256=VSVGCiDSpQgmcWbRLMSZMD-j9gp2qK7Z4C6uNprX210,7759 +awscli/examples/elbv2/delete-listener.rst,sha256=kBtJdHQICdnUOy8pv3XE9HtXMejwfsMq_Ynj8c-OY4s,281 +awscli/examples/elbv2/delete-load-balancer.rst,sha256=KZ-434i64P1LQBjt6Mx4p9GR3lBx1hLxqyyombc5sIc,293 +awscli/examples/elbv2/delete-rule.rst,sha256=V1w1VBZnGQIwMAd-j1yS_F7hIudneMF5MBCKTmwydUM,283 +awscli/examples/elbv2/delete-target-group.rst,sha256=jboEBryKMHz6BEF49GPIB-7jbCf1i-SiSyFXDfO_sb8,505 +awscli/examples/elbv2/deregister-targets.rst,sha256=jDf5sOXnbQ6UzUSD7y5VLoaaSUVgxvgLNxUuDYuBaoo,833 +awscli/examples/elbv2/describe-account-limits.rst,sha256=1JKWU6rFWSAaRGblQbVKu_6Y2WDSkC5C6TykzdkkFKA,3332 +awscli/examples/elbv2/describe-listener-certificates.rst,sha256=SKKkSHlWYj_XPTJ3G451-uFj2WoDHlIdLBHotnh5XyU,895 +awscli/examples/elbv2/describe-listeners.rst,sha256=g0mUERsiVcFKhr2RLPkspAePapGbs3kRbP6XyxYp7Dw,2772 +awscli/examples/elbv2/describe-load-balancer-attributes.rst,sha256=jCqoK_EDGYQaQjlL6YyFwL8Zclu96CYrrYEJV0QmBRI,1891 +awscli/examples/elbv2/describe-load-balancers.rst,sha256=O8qlSl7UcavqoiFu41A5vuWFxYwobBrG-4riwBvYF9s,1505 +awscli/examples/elbv2/describe-rules.rst,sha256=KSsg1smyW2XjRFEvQIUO3s-dmaHworh7TXMruui4MAQ,727 +awscli/examples/elbv2/describe-ssl-policies.rst,sha256=oHcbtC0ifD5FCbuu4oo098wQ1y4whjAf_ulzqxv80x8,3287 +awscli/examples/elbv2/describe-tags.rst,sha256=lGCbvR8Fm8-UOFCpVVeT0G31dCa8H9QTO-x27qi2d4Y,785 +awscli/examples/elbv2/describe-target-group-attributes.rst,sha256=b4of14dX5IFqi31c65-BNFrEEXBIQOzQ4oitfq5FRYQ,1792 +awscli/examples/elbv2/describe-target-groups.rst,sha256=pd2v58nX4FGi38dFhSZLfs1Lqm_ZTv0TjxjolfkLYq8,2283 +awscli/examples/elbv2/describe-target-health.rst,sha256=Okv2qC1TOaujJfLY7Am1v_aluUdpGPfdp1fNvrvZaoM,4279 +awscli/examples/elbv2/modify-listener.rst,sha256=m_LdGksUoSzY5_eBzfTWRB6mWOMFoucwgFKALMbVM_s,4358 +awscli/examples/elbv2/modify-load-balancer-attributes.rst,sha256=J3MzE88RLJPu0TzFoi4hQlMJf3UXclOkt0z26W9m0UA,2940 +awscli/examples/elbv2/modify-rule.rst,sha256=tueOnYCmtT8AzgDfrijlUouq0ulph8EP3NJoq2mhaN8,1361 +awscli/examples/elbv2/modify-target-group-attributes.rst,sha256=3wYpHxzFphqXETVo0irDPK9NqSMJCHT3Xv5Lv2B3LQk,858 +awscli/examples/elbv2/modify-target-group.rst,sha256=s3eYTdnWSy7B1xAw8Oo2UGWICUT5awbt2xrV7auwUE4,1995 +awscli/examples/elbv2/register-targets.rst,sha256=pWPYaK8274GxPeItxlN3Lcy5sc8Q9nOT3NB0fOaLJrI,1992 +awscli/examples/elbv2/remove-listener-certificates.rst,sha256=GPW6x3UKfVp_7GNZukXOXYsT0ooo1Uro4t2OcrXLvQ0,440 +awscli/examples/elbv2/remove-tags.rst,sha256=qQQerPnzltMMwei5NcKfy9PJteN-nfyd7xmphSkqIgs,367 +awscli/examples/elbv2/set-ip-address-type.rst,sha256=fxI4SOb1Bs9ftzIslvQKf3fB6E6z7FtG5kje6gE89Mg,459 +awscli/examples/elbv2/set-rule-priorities.rst,sha256=y5qVsf4tCO4OGSWVE3VPQnymHdwtXe7SjakAjPtaRhQ,1078 +awscli/examples/elbv2/set-security-groups.rst,sha256=g1s2WMJHk7CJz8nXjFI-G4lq8gQ6CaJAZazaJ7XG1y0,428 +awscli/examples/elbv2/set-subnets.rst,sha256=-2ihgZI_4JorQj8HenMlHhIwhpfFHnqpdjk7zjI4AsE,631 +awscli/examples/elbv2/wait/load-balancer-available.rst,sha256=7Jdar2PuqCl61Dfg3Bqb77GC5U3JMNl3unk7tsEZlPM,426 +awscli/examples/elbv2/wait/load-balancer-exists.rst,sha256=0612IcJy3fU6n8GVc_2Ra4AolaaVddPWREE0Dy8WXo0,405 +awscli/examples/elbv2/wait/load-balancers-deleted.rst,sha256=8nfAvccReyUgzXFtkV6kkHpXnkgmuELJCdOgSoCTpbM,417 +awscli/examples/elbv2/wait/target-deregistered.rst,sha256=Ky0Mx3FAsU5SrOS_IjwuASdX5A6vzb-OGWGGqKxDBjg,446 +awscli/examples/elbv2/wait/target-in-service.rst,sha256=YYn_BgFRsxalSeAfdOPBuZwc_Pvfpc6Jr8R8xTPfUtQ,449 +awscli/examples/emr-containers/update-role-trust-policy.rst,sha256=ky7oJ259USbLxUOG9Og2ady3bO9FCguxWTyU7LR6Vjo,796 +awscli/examples/emr-containers/update-role-trust-policy/_description.rst,sha256=JIgd30JAVNsunInjDRTysurI4tDG4PPVT4xbhiyJcVA,1674 +awscli/examples/emr/add-instance-fleet.rst,sha256=86QceC6G-Xg_2SokLSEhO4rBpvSsh-X3w3OB27jdFx4,521 +awscli/examples/emr/add-steps.rst,sha256=olWBzE0otGWhUrl5mkZd3P78xSj-xYzvrQVLm0yfgrs,4653 +awscli/examples/emr/add-tags.rst,sha256=h35saPb_5aiRrzpGAyYsGQp8pDmd002-ouKr2sMOsck,648 +awscli/examples/emr/create-cluster-examples.rst,sha256=bUgOHFMq48JyjyUePiRYPLZuD5mMed5KhlyHBdHY0i0,31458 +awscli/examples/emr/create-cluster-synopsis.txt,sha256=vK0rV8byMdS1nfkrD2ideh6Bx0i8C9GnWB-w5hvqswU,1397 +awscli/examples/emr/create-default-roles.rst,sha256=pmYwkYa9HgK5Qn6VBFSL5SgWbyV9jNRDNmV_wE_TdKA,5688 +awscli/examples/emr/create-security-configuration.rst,sha256=m3vxwRSYxuDRoIB33gFXxoiD03JKccb329eiE_K2byc,4003 +awscli/examples/emr/delete-security-configuration.rst,sha256=ZYF4Mobofm9f523XbIWDOVqE46mW3KNoqAfEfMTTHmc,173 +awscli/examples/emr/describe-cluster.rst,sha256=ShtLltmSB6PxAY3czL09QHXLmzcriOsRoMTBUV2gC-k,9740 +awscli/examples/emr/describe-step.rst,sha256=NB3J-O_zmCg-vLPnHVmT2jG5H-_QikVS8cuSSH9FrEw,1146 +awscli/examples/emr/get.rst,sha256=Isad5KAO_0juOb7qVi8Y8z2X3QQQHQury9L8GVIiZ5M,258 +awscli/examples/emr/list-clusters.rst,sha256=BQ4VzVS2Zev-pQEYwQnY8416kk55Dr2i1qnYbriCLXE,670 +awscli/examples/emr/list-instance-fleets.rst,sha256=4PdyixWT-CrwZ_Sb17oPOW4Wc18MhZMuv2PGc-eyVes,2031 +awscli/examples/emr/list-instances.rst,sha256=1Zm519juyG7pJdB-Usej0Cw3CKHcFq64yzpUMGVAWSE,3267 +awscli/examples/emr/list-security-configurations.rst,sha256=BZduBmR4mQxydz_kx1mLm21SAkQE6AazblQuNO-3g7A,437 +awscli/examples/emr/list-steps.rst,sha256=iilOrfJ-XYIbSshLrLqnC-DzmXE6twP6HFNiGqJ301M,151 +awscli/examples/emr/list-studios.rst,sha256=1GAF_yX1-X9zDhwzByxXcdmVAdW9ZyOLIS5N6GZY87g,724 +awscli/examples/emr/modify-cluster-attributes.rst,sha256=FCCR6voI_KjVHKvJHpKQ7h4iROxSZly2_44moaHFctw,196 +awscli/examples/emr/modify-instance-fleet.rst,sha256=ALpqFseE8NRMIcjITkaqgLur04ET_aL_WYWCmNI8D9c,333 +awscli/examples/emr/put.rst,sha256=WbwN3DGk_Fk0mc6Bw6LSJ7qbHjjmelCn0VRXCjcI-7A,287 +awscli/examples/emr/remove-tags.rst,sha256=e1iKW3cyJvhc4PAKxoMgGoK0zN464ORXN5z-oj7zMRg,184 +awscli/examples/emr/schedule-hbase-backup.rst,sha256=-xtF3YYwRQWdTHX8Kr9rv8TR2QlOvCoElwVmmcam89A,679 +awscli/examples/emr/socks.rst,sha256=VowwnmJ--TP-6uqLAWSex6a5RgjxynFjpffHJ8Mjqgo,273 +awscli/examples/emr/ssh.rst,sha256=WQekzXNmybA0IDqJr_1CVqMrCdAI97korEgDg_jKMLk,1462 +awscli/examples/emr/wait.rst,sha256=7_8mKpPGeFLN8lqoDEJ4SgFubM_ziiV4aoIQU8GRX7k,165 +awscli/examples/es/create-elasticsearch-domain.rst,sha256=oDwsFgQq_Dh7c5fbPdpRCtVyDKYxI2WtIwBdUej227Y,2909 +awscli/examples/es/describe-elasticsearch-domain-config.rst,sha256=j3hDVNG29w290-BU0sn2oPD4mdZEUg0Vp-wLdjwUGXA,6699 +awscli/examples/es/describe-elasticsearch-domain.rst,sha256=CutelVp7pNmCfRI47UUL_BGU939g3fBP6FEs6jx_jPU,3097 +awscli/examples/es/describe-elasticsearch-domains.rst,sha256=Ia6fgsSM_9XcKEU3VpXYIR4xEuKvx6FK2PGYq63Tfts,5795 +awscli/examples/es/describe-reserved-elasticsearch-instances.rst,sha256=CGLYGzFkHPEyTE-_5y4qmcYuie6fFJx_CKHJbB_U2OQ,1246 +awscli/examples/es/list-domain-names.rst,sha256=65F_Z1BgFCr32HYuOQ8FTRn0kWfWEahtD5JAKLihfhs,598 +awscli/examples/events/delete-rule.rst,sha256=Ih09V2oOhIhKa_xaJ9qsvqRuFVP6sJIQgnVDFkkG-zk,161 +awscli/examples/events/describe-rule.rst,sha256=oacUM1RmU4fiwC-M_xTIutNhfmQ9va0IjeuRXCpAAIc,193 +awscli/examples/events/disable-rule.rst,sha256=QYuhPeEhSjDcUVZq86tvABhGotmBClSrB95IBboiBOQ,181 +awscli/examples/events/enable-rule.rst,sha256=vVit43JMxrEZlj1hH-q27JUQLdHnH4UMpL0Avsf8aMw,189 +awscli/examples/events/list-rule-names-by-target.rst,sha256=IHalXJVONFJ4N_lYtG1Yv54XXmz01r-SAYWGNSfofQY,277 +awscli/examples/events/list-rules.rst,sha256=T_ICiBe9l-eASnjwEQvo5G-XhvTXyzf35oNAJGtIHxE,381 +awscli/examples/events/list-targets-by-rule.rst,sha256=uaFo264bYAZed0ELaDCZsodpZzdo_YUVYt07ICJJU7M,204 +awscli/examples/events/put-events.rst,sha256=tNtjvDg35D17p1nS6VsdHsXMVEC8h37CMMZ3awXWwxI,739 +awscli/examples/events/put-rule.rst,sha256=9egt7KN3ZisZZIttvDpKJV3eBmdPacHEsplT_eQ_gbI,1067 +awscli/examples/events/put-targets.rst,sha256=-MLxWqIOlWwmn6cs8kME-lxi4uNbO8Ppk5-N6hmdhdw,999 +awscli/examples/events/remove-targets.rst,sha256=XxH_wf3f1YoKiCIz1VXp5E08rQNoCXxJEOhMantoOOA,321 +awscli/examples/events/test-event-pattern.rst,sha256=Aje-MkToYwPFPi461t-IuILSuH8KmkaW5nMrVvoRaUE,479 +awscli/examples/firehose/list-delivery-streams.rst,sha256=3vybKU_S5--QThd6iZMvCY9ISHcIcbwAqatPm__l5xo,535 +awscli/examples/firehose/put-record-batch.rst,sha256=tbo6cJD_-oPgj6NXa1j7gBW0h64XjPBAB9Mp2tA1scY,1624 +awscli/examples/firehose/put-record.rst,sha256=cX0_2lMU1TemkjeUjko_wVoCbOysHxtIRezBOcEraEo,777 +awscli/examples/fis/create-experiment-template.rst,sha256=hyj8x3S25GaADoLaJONry8phufFRiJySmgvm5svKonQ,2732 +awscli/examples/fis/delete-experiment-template.rst,sha256=PueEuYXkA_DsM3KbwldOC229uNNhOFkdISWxM0bKeEU,1536 +awscli/examples/fis/get-action.rst,sha256=mkcEtaoQkMM1g_rPOgJH0TqdReViyllNyQ_6sJuSvpU,938 +awscli/examples/fis/get-experiment-template.rst,sha256=cq1AlpM-FoBCMx1C3C8lWff0ZAm1A08m6tDstxjfbNY,1580 +awscli/examples/fis/get-experiment.rst,sha256=0atCdCQN3Iy6SPGK-2xgMJu-e_FQNETYvyH_OZbca-Q,1828 +awscli/examples/fis/list-actions.rst,sha256=-FfOCbZoNmrcaPgBLId8pyGBFrLeq5Bk5g1S66w2V8U,4674 +awscli/examples/fis/list-experiment-templates.rst,sha256=WBcDs-mcNv4cQ1GEbcFL6BTh6SutmzPnubmgFo_wpFE,752 +awscli/examples/fis/list-experiments.rst,sha256=E3c6SVOhXDwO-32V7MIEJJqUgKJo2ahikKU-2FnsMMU,788 +awscli/examples/fis/list-tags-for-resource.rst,sha256=Gtng1gYCF7oLdpqoQdeYoICTtMXsSUN--CsdIvAfvrU,553 +awscli/examples/fis/start-experiment.rst,sha256=MpDbr_W17gVC2cC7Yzd9gyAj5glJI4ShlbIxgOy7Mro,1789 +awscli/examples/fis/stop-experiment.rst,sha256=fa4_u6dtuAZqPFxRvoZQ-DN6VKE9OKcxz7FykDgzBt8,2207 +awscli/examples/fis/tag-resource.rst,sha256=LMpqMRfxViSqGoczn5M0OhkWLoX3zRP5gNtdtpiB0F8,470 +awscli/examples/fis/untag-resource.rst,sha256=COKvW6l4GZ5Sfdfah5nUF6WTv6PqF9Ec3H0h-Vzmj8M,451 +awscli/examples/fis/update-experiment-template.rst,sha256=5jhgbiOqhFTvEbEgZBeu4zekvcDRfj0Lww1Ic2i8pQo,1671 +awscli/examples/fms/associate-admin-account.rst,sha256=q-1E4F655ztUeDYya3fd8j-_CpX-VJv3-sASdKkrbLA,524 +awscli/examples/fms/delete-notification-channel.rst,sha256=4fzC5JvlJVCdlW5BRvAh7DOFbW4EEAxJonOiN3qwHKQ,532 +awscli/examples/fms/delete-policy.rst,sha256=RztR1Uj5NoZLOiOrqGewHUf4SSRA9AJQSEht34_Sg34,568 +awscli/examples/fms/disassociate-admin-account.rst,sha256=pkALDm_-BqalPT-FugGRCgKFhHT-mPlhbQPQfDBhOX8,517 +awscli/examples/fms/get-admin-account.rst,sha256=ptq83BffFo0xfh045RThFVwbyxiv0KD8AhaQ5-GZ6kY,501 +awscli/examples/fms/get-compliance-detail.rst,sha256=z1sFhy58inx5twGxRBXoLr0NyQSWBjrvEpaqzsPAT8M,879 +awscli/examples/fms/get-notification-channel.rst,sha256=uwuHN_amTpcbVynL59MzVjccwRNKN06xWMGiDxwqhSY,693 +awscli/examples/fms/get-policy.rst,sha256=fHm3wtrExkaf5WkKlEin10gnr28I8p39CYCab3xOPSM,1293 +awscli/examples/fms/list-compliance-status.rst,sha256=wR3PWpipPpeWHnH7RQyZWnZQcA7nkQ33PalymO5mzBk,1407 +awscli/examples/fms/list-member-accounts.rst,sha256=FzsKMr10UgxygL6yVIJ99I-lvJ4YiD__hQ36G6v-B2w,604 +awscli/examples/fms/list-policies.rst,sha256=Mn9Z06cSW6dAdlTm-cBHzgp3AZZdjSdePW_SVSSd6z8,1685 +awscli/examples/fms/put-notification-channel.rst,sha256=MYt4ImrbOaKt3eRhQaKtbMpJFSZHCJjKH8oVEPk2NUo,710 +awscli/examples/fms/put-policy.rst,sha256=y0zxPoTZ7Z043oT2DaEYTjCIFiSjjtd2NZR4gzHNI88,1970 +awscli/examples/gamelift/create-build.rst,sha256=P2CNWn8WxLH0vhY6Sydx6oQwr8xOC1UNHNIyVI7z-Bg,3123 +awscli/examples/gamelift/create-fleet.rst,sha256=cEVtoTLwzN21FXfQLdzJywtmLmsiBTUN5bhxPPqR6Vo,7398 +awscli/examples/gamelift/create-game-session-queue.rst,sha256=AAcIsUpjqg6qAQnSNI-nYnuGKouJIT4St-sidn8LRGU,3825 +awscli/examples/gamelift/delete-build.rst,sha256=9FP1f75SZ7y1V-qNrNW1-xjgDwChcvcbrDpOuGCxDTU,365 +awscli/examples/gamelift/delete-fleet.rst,sha256=aIhKAmNTFRdc_cG2Od4wVLEi-6HzHCZUgIdvgwOYAhM,552 +awscli/examples/gamelift/delete-game-session-queue.rst,sha256=PoovAQfI8_e0zF3Vz-2doo2vVCfao4_0KATQI1TnsvY,251 +awscli/examples/gamelift/describe-build.rst,sha256=d-vWv_79KGjy5ZMZSOmy_25z7YpdSPAL_ohPOGfPk-g,981 +awscli/examples/gamelift/describe-ec2-instance-limits.rst,sha256=GlISqJOfFbA1UWM2NHIsGeCmHWiVtOBxTeI4O9d6e2o,817 +awscli/examples/gamelift/describe-fleet-attributes.rst,sha256=2K6jqsSSo1itq-iejjDtw0MrlDm4zvSaNcnEBt-9h1s,5221 +awscli/examples/gamelift/describe-fleet-capacity.rst,sha256=0KL91mCarlhiJdr8nNz1t8ejuHvNdWKQplQZ51t33_k,1534 +awscli/examples/gamelift/describe-fleet-events.rst,sha256=cXxQzyNMjuy8IzVLUFEgve5CZ4REyJD0iQGyTHSEcWA,4252 +awscli/examples/gamelift/describe-fleet-port-settings.rst,sha256=PtrJqXZhAaHbKhq5tN_ajlizhAQlaiT4V7A-O2DgdZg,922 +awscli/examples/gamelift/describe-fleet-utilization.rst,sha256=nQL7Gowk76KRWjg-ZoHrmQan8RhQQN8tqfeFVCEmqL8,2494 +awscli/examples/gamelift/describe-game-session-queues.rst,sha256=Gexz1k5Ry3jrtdaoeyHCCavpQUQ7xBT5ne2tawaBmXs,2119 +awscli/examples/gamelift/describe-runtime-configuration.rst,sha256=iQlju-pzDW3sRUPQpCqNd7GVHc-6Z42MB5ZyA51I8lc,1213 +awscli/examples/gamelift/list-builds.rst,sha256=kEQ1LO74llmxluU4uhRWlOr6qUIsPyS_HRoVeUR24RU,2959 +awscli/examples/gamelift/list-fleets.rst,sha256=F1VAO-e-TqK6w-MpBZAOz8DmrRSEuOh6rnl0QLWI71M,1817 +awscli/examples/gamelift/request-upload-credentials.rst,sha256=xz_8MRMSR9rWqJGZSNjvnOfeWwn3S3Thdnic2IDcNZM,1061 +awscli/examples/gamelift/start-fleet-actions.rst,sha256=1nwdPY6h4vz63ItvJ9z9iPe7zOYdYvgIq7yDWJj3tKw,490 +awscli/examples/gamelift/stop-fleet-actions.rst,sha256=WmSQh1qKT78pDHR5g1tcz2G06JMr8a8BHO9gi3TSd0M,472 +awscli/examples/gamelift/update-build.rst,sha256=kbrMk1PjmZXperXswVkmAdt9DMvSiafMXFb1kpp-1zM,1159 +awscli/examples/gamelift/update-game-session-queue.rst,sha256=LKO3weeU11DmdF0Jf2vN6-S-XmC6FIrrAy8ucfPz9zI,2363 +awscli/examples/gamelift/upload-build.rst,sha256=aFHRFwSpoQx8Q8TnUeTeEAa7oXKCkht8kf-jECtfRiQ,2211 +awscli/examples/glacier/abort-multipart-upload.rst,sha256=8O6y4y9YPpPAXvnR8vugtOHLtTbtN4Nkjo0q2TM_nHY,837 +awscli/examples/glacier/abort-vault-lock.rst,sha256=RpGqkpe6XAKE0ZlZE1KpiJCwsq-s0ylOJWr94h-i3e4,525 +awscli/examples/glacier/add-tags-to-vault.rst,sha256=BioRFLJy8JUDcKYi1uoTj5Pa-M6jSi_Aqex1g7fCRbc,299 +awscli/examples/glacier/complete-multipart-upload.rst,sha256=_73uLBdwFOs-D6iIpRaJ_QjXuG_5s-dXJkyayvOHFUE,1007 +awscli/examples/glacier/complete-vault-lock.rst,sha256=TzaOz8NItBq8pgZMOKGwTJ0ZyKeDboUB6AGGoiI8-2o,680 +awscli/examples/glacier/create-vault.rst,sha256=dzP3uKFuhzu5W6xMBC62IZXvz3p1og6WTd4bL1Zimdo,259 +awscli/examples/glacier/delete-archive.rst,sha256=-TTT5x10OtqZ8Cj9OUl24W8wSRHtRoU8T7_d-SnDVTM,439 +awscli/examples/glacier/delete-vault-access-policy.rst,sha256=ljolFAbONhrkNci1950PSSrx3DQR7oBz9jiHSw1PHIk,302 +awscli/examples/glacier/delete-vault-notifications.rst,sha256=77I1T2IMnmYAaOd0d1-3Ke8dBm4XNS6ibDviDwk2Ndc,359 +awscli/examples/glacier/delete-vault.rst,sha256=y7fFN1JbZ0UII3q0yuMOMnKsIzaCfdN9OPlLvSff8oE,297 +awscli/examples/glacier/describe-job.rst,sha256=xOBcTxKZ0D_GAlBiRgCVxUnZu5BL1Ja62X3w0qraCdY,939 +awscli/examples/glacier/describe-vault.rst,sha256=qIIQMoNqra8qIlGjGKxDatm_fUuyUX26FBANIPrPhos,270 +awscli/examples/glacier/get-data-retrieval-policy.rst,sha256=szGxN7DflpD66KYK1qLtEI8KAwVeFnnuZbN9-RcSXXo,468 +awscli/examples/glacier/get-job-output.rst,sha256=TRxAZlkXo5vyHNzm-uugJe6dxcEiWN0m8jy9sS0c1cI,1201 +awscli/examples/glacier/get-vault-access-policy.rst,sha256=G9KRqanmCpSLUbF5kBQnQln2KemRXRpjfWgS9Emz-8s,775 +awscli/examples/glacier/get-vault-lock.rst,sha256=XmeqM1i7sukSpdg6X7YpNHUI4WW33phgsn2MeBwxmjA,903 +awscli/examples/glacier/get-vault-notifications.rst,sha256=e_EUVJPJbpmrqpFgQp76fFAK9Oqk8Q3Ent41oGevLRw,647 +awscli/examples/glacier/initiate-job.rst,sha256=TUG3AIWOT8HgpcrglRpEmpH-hCP3-DPu3ygbbtcuOag,1869 +awscli/examples/glacier/initiate-multipart-upload.rst,sha256=0p-jCWr9415pHSyRC4anuWxEePPKxdsYcHcLa4Agav0,851 +awscli/examples/glacier/initiate-vault-lock.rst,sha256=NJ4QYgG_jVrchNCpG7FS7OXJDJ41aJ5f8SLephOS1ic,1240 +awscli/examples/glacier/list-jobs.rst,sha256=Bj7OHzbGdIx3cfeq2cZuVSnqR_tZymsVWuY-4Lw2eTU,1866 +awscli/examples/glacier/list-multipart-uploads.rst,sha256=f2D5vPx4yTUoAPYUBLu1no42LsDQX0EyIrQvBKNEMpM,546 +awscli/examples/glacier/list-parts.rst,sha256=WO8WtnnfMadarWAMFHjPcykYOO_d-qBFK2IpaycfNqc,1307 +awscli/examples/glacier/list-provisioned-capacity.rst,sha256=SATyAShbSoHWA_liCEHuTH4givD440t_ox9WNr18Mwc,536 +awscli/examples/glacier/list-tags-for-vault.rst,sha256=h3PaysMRhynF2S3KLAZicSbFWFVeaX8kf_KJy0sPZ0M,377 +awscli/examples/glacier/list-vaults.rst,sha256=jJ4SEh6Lbg749xhKu10Ms6KxJfjZqDYWZcg1JUJcUrA,639 +awscli/examples/glacier/purchase-provisioned-capacity.rst,sha256=qr1L5IZqx8jMlXVfhkMpJXuLhxpIkSF_VjROpg2tnQE,298 +awscli/examples/glacier/remove-tags-from-vault.rst,sha256=bjSTERmc4upJaLjDgliBb9ggqDungkDCG5bxKZQkU98,315 +awscli/examples/glacier/set-data-retrieval-policy.rst,sha256=jFwNle8IR8kqkzVmubOXr9Z-IWrsrCarSZhhEHUg6WM,965 +awscli/examples/glacier/set-vault-access-policy.rst,sha256=m7y1KpmFHbCHtWnoHAKSIm_EI4HXyzpotJUo-JfmSEU,761 +awscli/examples/glacier/set-vault-notifications.rst,sha256=cvxZm0yvANxby4YC77BU_bxuouRoG_WFU7R1WxKoYfg,620 +awscli/examples/glacier/upload-archive.rst,sha256=4TmVK6iC3WakBxYrf7ZYU8OvbRl5fqXy9oYL4bgdmUE,1011 +awscli/examples/glacier/upload-multipart-part.rst,sha256=MFCZl6IPQGAJWoRESt2YEVgIn8TdFZ--G_bcTN7XUek,1020 +awscli/examples/glacier/wait/vault-exists.rst,sha256=z-sszm6x0W3ApBWrmLkvLMylEDl2dnr3JRzPTwOXTeg,310 +awscli/examples/glacier/wait/vault-not-exists.rst,sha256=TqBLAy2af8sj_6WW6mevCSRlb8hDTAh3K2jUG-l2xGg,334 +awscli/examples/global_options.rst,sha256=llDWxHZCXAOgS_pSf6jQHn54xaD8B86XIlkz2k5aGdo,1984 +awscli/examples/global_synopsis.rst,sha256=G31esf-gJ1EDbtt5uFS3I5gb9GaHkQmcfjlAy2IvgX0,299 +awscli/examples/globalaccelerator/add-custom-routing-endpoints.rst,sha256=TcIIRZOxV7ox3Zmf4tDhzRFpTht81xqhiO9mofhNsLU,1086 +awscli/examples/globalaccelerator/advertise-byoip-cidr.rst,sha256=UhDaXqY6XIvZHcIpc1hRMpjV5u2upETDcDszEk3IwqQ,611 +awscli/examples/globalaccelerator/allow-custom-routing-traffic.rst,sha256=oSrlwe3esiRhoVbjtLbFlxWpKJxUCh6a6VXNxtd6--A,1012 +awscli/examples/globalaccelerator/create-accelerator.rst,sha256=3rB3q_vRYzOXKMAr-l5AlwdsfsYmahlRVxmtCa0f9Us,1391 +awscli/examples/globalaccelerator/create-custom-routing-accelerator.rst,sha256=QNN2Z_bQdw6bKCCpVDNbMKle4e3pvO3SWa8uX7fuYP4,1409 +awscli/examples/globalaccelerator/create-custom-routing-endpoint-group.rst,sha256=WIepWDGWD_uRZ0eVzNwggAzEKnuJLMO3kdulM9jbRkY,1360 +awscli/examples/globalaccelerator/create-custom-routing-listener.rst,sha256=Cv9uQnJC435c2N_Bx1K0ioQbUaP_0c-9hhjCNDK_-y4,977 +awscli/examples/globalaccelerator/create-endpoint-group.rst,sha256=7Memlu7MyFSF6j8MUgpBbnwGwAFLMsawA5bOxyo5TAM,1145 +awscli/examples/globalaccelerator/create-listener.rst,sha256=S87Sbb-wsFqQAycp-SBoSmG-CUypi5y4zUhYZmDCLFk,1068 +awscli/examples/globalaccelerator/deny-custom-routing-traffic.rst,sha256=m-NkU1H-oLeICvXKljK3ebrfgMfpu7tU6GKw75AhRAk,1045 +awscli/examples/globalaccelerator/deprovision-byoip-cidr.rst,sha256=qTHuNdDk5oBYyh_a6cAGQdUH-54BukAqjmAxVBkSW2k,612 +awscli/examples/globalaccelerator/describe-accelerator-attributes.rst,sha256=dcYB6NmhIGAvbN2Q-RoQN8wWtn7-D4ITjBZ1tVPOUGA,733 +awscli/examples/globalaccelerator/describe-accelerator.rst,sha256=gsMmOqevO42QqwwaH5oH6X4RjGWAHmxtAyE_cAhFG_E,1231 +awscli/examples/globalaccelerator/describe-custom-routing-accelerator-attributes.rst,sha256=JOvC4jlO47XKlcoXI8IvU-SIdKWRe9iGpic72VNEZgg,716 +awscli/examples/globalaccelerator/describe-custom-routing-accelerator.rst,sha256=ZwSfWbOSodrRySOq9bL9F0D3Lv48yjlBzVXg37Q4in0,1333 +awscli/examples/globalaccelerator/describe-custom-routing-endpoint-group.rst,sha256=bobiipsuKgVtsNU1l4sPwodEGqnMe4wYHAGevswIShs,1369 +awscli/examples/globalaccelerator/describe-custom-routing-listener.rst,sha256=3FzM7jRa9tHtdcO2squEeDGjiK6heeiORqo7LSJlhuw,916 +awscli/examples/globalaccelerator/describe-endpoint-group.rst,sha256=QfoTn2sqENmkTfNU0PZsw5O15QhfUZldlq7q60OUbY0,1574 +awscli/examples/globalaccelerator/describe-listener.rst,sha256=gxLaNTp7amck7_X4GL7_tKl0Rov1_EhEZB1F5U1UHV4,881 +awscli/examples/globalaccelerator/list-accelerators.rst,sha256=nKBmy0JHUO4_iS8p7gxgcm3JP5HOEuClpP8x5Cg1xo0,1995 +awscli/examples/globalaccelerator/list-byoip-cidr.rst,sha256=DJumBT9fTLgZHsqCsXLiy4HamybPT5BLhfqmIkrBqxA,709 +awscli/examples/globalaccelerator/list-custom-routing-accelerators.rst,sha256=kA2H8hfUja6JdLJqFDiUGZt7Rj4hmPCXK-J7MokASME,2073 +awscli/examples/globalaccelerator/list-custom-routing-endpoint-groups.rst,sha256=uQC-Ua39ZnyVKCs9-PX6HhkUQ2pShDDtkWIavIgDav0,1474 +awscli/examples/globalaccelerator/list-custom-routing-listeners.rst,sha256=32a35h89lSo_zkxm5snmQw2EAhHTkaaCHa91190W09c,1022 +awscli/examples/globalaccelerator/list-custom-routing-port-mappings-by-destination.rst,sha256=Qtyci3cR2vQjBUjMNscY3Git3OHdnkleG9-ejkN8S68,1858 +awscli/examples/globalaccelerator/list-custom-routing-port-mappings.rst,sha256=ZeVRpVZGLZlTGdf8SB_1CDIUNCtygcByi66-xvtu_yU,1883 +awscli/examples/globalaccelerator/list-endpoint-groups.rst,sha256=fpWI2UPZF7CsxpfTLOYb7LRTVV1AMxY9IR8N_5sQjvw,1673 +awscli/examples/globalaccelerator/list-listeners.rst,sha256=6U3iQCuTmnkPNCn0bteyaXwCezl7cX1ZNEzp7MG8ZT0,936 +awscli/examples/globalaccelerator/list-tags-for-resource.rst,sha256=Iatqsrp2_pT6H-5lJt2he8b4kn_o7dIGvlnlusrqgFs,655 +awscli/examples/globalaccelerator/provision-byoip-cidr.rst,sha256=Glk3m-YpGkrMSjN-uKptwhA3C7QHgSxnu3UdUChjtDQ,672 +awscli/examples/globalaccelerator/tag-resource.rst,sha256=GswhcQ586mlQRaxbCqjRqYmi9KiEZXzIDZPPLDpOXiU,639 +awscli/examples/globalaccelerator/untag-resource.rst,sha256=3lr1oUoFrqi67jarU9O5PvV8Gu91kbhnlb16Pv79u7Q,583 +awscli/examples/globalaccelerator/update-accelerator-attributes.rst,sha256=NdDsEX0P9EM__pxhIvUTRmzyQMQkc_zz5P9Gn3d6tv4,938 +awscli/examples/globalaccelerator/update-accelerator.rst,sha256=IlHgs3MPZL1jQ2c1RDC1lSHLrdDjLgTIrw1fwokvZ_w,1382 +awscli/examples/globalaccelerator/update-custom-routing-accelerator-attributes.rst,sha256=Z53xKtAeC-5cfykQcfUK0XYCxZv_Nu_1AYqI0DJD2hs,931 +awscli/examples/globalaccelerator/update-custom-routing-accelerator.rst,sha256=RHIXbMnNesXWWhuHekXwvv2b2W51L8wOYDPjytT7yr8,1401 +awscli/examples/globalaccelerator/update-custom-routing-listener.rst,sha256=BF9ZgHQbER0Vv6yFiEXttYoevR_G0R90Hz5Y4MX47nw,1022 +awscli/examples/globalaccelerator/update-endpoint-group.rst,sha256=TajLYf1M2OS5TET2LCyBvWYQ8b85sWfu4W2-r2UypjY,1951 +awscli/examples/globalaccelerator/update-listener.rst,sha256=qb6lDWH060cg8Re6IbRAJgbBwxMX1Qa-LGkUKSApt10,944 +awscli/examples/globalaccelerator/withdraw-byoip-cidr.rst,sha256=zirXZdo1ChEyWkarQYLhGopTdVGGTWtG1EiOFmGBdHs,625 +awscli/examples/glue/batch-stop-job-run.rst,sha256=4yfcTpIqePD7bOiQcH1TsA2AN87NYnJxfGSpS2_90UQ,1187 +awscli/examples/glue/create-connection.rst,sha256=xcXI0_gEJrH7fx5ixMpCyoMvgeg8YYrNPDL9dhP1BYA,1239 +awscli/examples/glue/create-database.rst,sha256=uznlhhWr0DMQc59EvnfUvxQniCaeajJJApfGG4S9EeM,509 +awscli/examples/glue/create-job.rst,sha256=HgsF20wkKtZBt8wX2cAbzPyLXTGr7aMuiG7o1V0nfv4,4169 +awscli/examples/glue/create-table.rst,sha256=XDHeYy1RhdcOuHO-q21S5UZmXF_XbpaMaNjjjjw2wro,3996 +awscli/examples/glue/delete-job.rst,sha256=sqvSV4fxMnM0X7TEEDyQGRhcifZx3yHS8qHf0F_ZGXw,406 +awscli/examples/glue/get-databases.rst,sha256=pOhS2QkamKNiL2k4UaQNFYEEeq-HMW4Ln8eBeyiX534,2715 +awscli/examples/glue/get-job-run.rst,sha256=D05tLK8ozmdPtLGJqHZWWUZpQYh9dRlPBKiWBFN0ph8,1535 +awscli/examples/glue/get-job-runs.rst,sha256=Qjl1EpP26Gf-QyCGmmDGiI66LQnDtihgxV3bk7SOh70,4058 +awscli/examples/glue/get-job.rst,sha256=pZQ2E1MmWoQqN3C_jkJQBMAoTOxUShkpGcEOYjucmY0,1119 +awscli/examples/glue/get-plan.rst,sha256=snu3ESCLJDil__V9ivOuMuxsVkUTZ-n7NhrsC0Wmg20,4710 +awscli/examples/glue/get-tables.rst,sha256=DV6mUHp2j3owRFioBPwR40tHvzNw2czdQkFZkV1RywM,4998 +awscli/examples/glue/start-crawler.rst,sha256=nWrhmQeLvoXor-CrOpDdXu190wlRIyCxfpjRE3GDqQE,297 +awscli/examples/glue/start-job-run.rst,sha256=Ymin85-Qu5jXn80zjvWxzFEx-TlsKhvbFZzL9T21HAE,396 +awscli/examples/grafana/list-workspaces.rst,sha256=nEmShpBmk4xlefEKnl8sDOqzG5H77zFI5HH4uWbdsI4,1607 +awscli/examples/greengrass/associate-role-to-group.rst,sha256=YkTaX62mLc_B5sH2EDCrB-rfbtvwZaLOj8wVPtuy1Xs,768 +awscli/examples/greengrass/associate-service-role-to-account.rst,sha256=pHPQByVXti5P2liaCx0ppToI0n9x4YXWc3RUSTQrqqg,772 +awscli/examples/greengrass/create-connector-definition-version.rst,sha256=-bk-flVldBbKoow-Eum5paj6EwsiDX7q4Cp-Ycbgv3o,1251 +awscli/examples/greengrass/create-connector-definition.rst,sha256=5w6DJBuGknz38LIC-arpJWrIN_5fVh2qiYU19GQSaoU,1429 +awscli/examples/greengrass/create-core-definition-version.rst,sha256=lqrjsDGnCpHzHOOIQhIw46_n6NtJCKCn1ugfd-YA11o,4846 +awscli/examples/greengrass/create-core-definition.rst,sha256=5fZJAMPTGDVHCPKoCq-eTJb3xu1sVTOorkjaoOgv3Qk,5793 +awscli/examples/greengrass/create-deployment.rst,sha256=7s1BS12JT4-BY5ruDpza9IDgyo6nBNh-NVqKRoA-b7Y,830 +awscli/examples/greengrass/create-device-definition-version.rst,sha256=0WTXVrfOG-Ko3nclUKq3jZ2nu0PQzzJn2XMWxOEi0B4,4925 +awscli/examples/greengrass/create-device-definition.rst,sha256=UG4J8dNc8lIuArqKDKcLaAzimcBHIA280ZKXdO2TBek,5108 +awscli/examples/greengrass/create-function-definition-version.rst,sha256=Mp8JkUPc5gkLxLyDXcK7UHYNzpc2ezZxaAIXVvkDspk,1221 +awscli/examples/greengrass/create-function-definition.rst,sha256=rTGLRdOVTing3x1hFpbPqIiKaxv-KCGAuuoR2HMT6Fo,2076 +awscli/examples/greengrass/create-group-certificate-authority.rst,sha256=XdYeBKvrwIusSKFEpGarHlrmfWNriREMrVHwvLtDhX0,714 +awscli/examples/greengrass/create-group-version.rst,sha256=aH-R7F3MAvRuntaIykFktP60AtiPDuIai1PTk-MrAog,2682 +awscli/examples/greengrass/create-group.rst,sha256=nLMaqdJPVVQNLAy-RF7Jo3y9iYhc_Qq13JMq_H0h7pk,758 +awscli/examples/greengrass/create-logger-definition-version.rst,sha256=rOiZcvs_HrviLMPho2z72IaEIusLsgrUKOJYr-heZE0,1682 +awscli/examples/greengrass/create-logger-definition.rst,sha256=p3ofXQXTxCYktNUhM2edCHq6g476ZA9DgxUbwIKKu_U,1762 +awscli/examples/greengrass/create-resource-definition-version.rst,sha256=-ccxNL6Uhpxv0YcqmvXm2ycFsKRVU-_G-mkAtWj665k,912 +awscli/examples/greengrass/create-resource-definition.rst,sha256=bytrIT0lznqNKVU_sGRIT7u_WFQFw-JKU3S_KViYN3Q,1706 +awscli/examples/greengrass/create-software-update-job.rst,sha256=lOPJoQ4VdL1mT2AHInbmOwTTmhG3oJwc8mETZJluzmQ,1259 +awscli/examples/greengrass/create-subscription-definition-version.rst,sha256=RRS-o1lfILCH__Wx_AnI8i6zvLnFtRwr44JR7GOFTJ8,1417 +awscli/examples/greengrass/create-subscription-definition.rst,sha256=f96K2L_9pQVN1RP_Imb0QFBMhYdoYN0DPswMLOSJ43o,2042 +awscli/examples/greengrass/delete-connector-definition.rst,sha256=sTF3Xg5xoxsaMnNlQ1MO3Pl0LK9kkq87HALZ9RbOouk,412 +awscli/examples/greengrass/delete-core-definition.rst,sha256=FSyFpFJYwECY6w-JBXxOrXRU8aMroEa1RxhqOKd7Y9A,414 +awscli/examples/greengrass/delete-device-definition.rst,sha256=OKMsZqI3bx5YeOK48aB4OkPlY_OGW13FFWDiTZWF47g,438 +awscli/examples/greengrass/delete-function-definition.rst,sha256=CBexx53YJ_iGji-JWzFpNhDB_Peo-Gxj58PGM_7C6_Q,406 +awscli/examples/greengrass/delete-group.rst,sha256=vs2p1e4AAJXJZYERmAt6KB898RCFSDlX0JjSQQL9gxc,232 +awscli/examples/greengrass/delete-logger-definition.rst,sha256=Bbzk_mESzpzREJGq170nM96GefzIeoiuLfr8XSct5AA,658 +awscli/examples/greengrass/delete-resource-definition.rst,sha256=ynJtAxFKkxzEElRlzRYHdSOnpLYZ_CXiZyW8371cVd4,428 +awscli/examples/greengrass/delete-subscription-definition.rst,sha256=13SPIvt8a5HqaldqipDzfOt8ZSIAMBUaOnAczUF9h7E,426 +awscli/examples/greengrass/disassociate-role-from-group.rst,sha256=Qqk3Xi8LVcifntknTCF4R10FNY2BEfNlzDZ15dAFKdg,542 +awscli/examples/greengrass/disassociate-service-role-from-account.rst,sha256=twQos2AggBTq83ZHM-04GaDCYyKlHjN9T5OcH2_EFRU,751 +awscli/examples/greengrass/get-associated-role.rst,sha256=J_LiffyM4ia5ahuTBpEfD5y65kZt-O3cAAbQ8eKJmYo,687 +awscli/examples/greengrass/get-bulk-deployment-status.rst,sha256=tGjg6ImG5VXhp8wGDOSc7_N1dXcj49AwsrQF8VAZKmU,873 +awscli/examples/greengrass/get-connectivity-info.rst,sha256=s-oEEK1Uo31bWeTByZQOqxvB2YMCpYTLX61XFYU4hl4,1241 +awscli/examples/greengrass/get-connector-definition-version.rst,sha256=-pwZ6zEbkQbe3SMi4qwQQbRO435V45Za1rgLrwQOiz8,1705 +awscli/examples/greengrass/get-connector-definition.rst,sha256=Hl_VXER2SkQWKSEVCDp-39GjW6lSWR4OYxtx8-Uhva4,1251 +awscli/examples/greengrass/get-core-definition-version.rst,sha256=gXTi7jv6dUpTfyIpj0Q4ixqv1aLEsu4t1gyiLQ3tXCI,1501 +awscli/examples/greengrass/get-core-definition.rst,sha256=c5oOo-7lEdn0GHQUjwjyVHFiPNGAymfsW6--5DFyqaw,958 +awscli/examples/greengrass/get-deployment-status.rst,sha256=UTbZkJk1UzA1dnbj-wsycUQ8BN4C3Bf4LhpEnGw73XE,593 +awscli/examples/greengrass/get-device-definition-version.rst,sha256=KvxDa731cRJkAYMbSEt1fL7NSnu1y2MzgtZAN_FV_PI,1807 +awscli/examples/greengrass/get-device-definition.rst,sha256=zNh5125KpPLc4sEtfkcf2fmskW4qQX75XQk2SWD-e8c,982 +awscli/examples/greengrass/get-function-definition-version.rst,sha256=DqYRfzkd7PeX-ITGLCOncfmOHafWzm-foerFcYoUB3U,2137 +awscli/examples/greengrass/get-function-definition.rst,sha256=iy2_qVPxWjbQTxArUhO0q2YZEDEJAL16JgWiwjbLDa4,964 +awscli/examples/greengrass/get-group-certificate-authority.rst,sha256=D7q39RGO1gzbFirSQTpD0jxe-gbKjn4QzTlYcGNJ30w,1952 +awscli/examples/greengrass/get-group-certificate-configuration.rst,sha256=vEisr0ybZhrw-v6Dez6fn7xkeYmFLKVnet9pekvsldc,584 +awscli/examples/greengrass/get-group-version.rst,sha256=EuEGEjMyT-oGY0vKOiqtxBIPEHFiiqYF_FfLPEdS5pU,1584 +awscli/examples/greengrass/get-group.rst,sha256=kG-_MYAzyV2vy40vt5SJZ-lnKh4rQ1lIVsrhregz63E,916 +awscli/examples/greengrass/get-logger-definition-version.rst,sha256=YBDYV008-Sgn_3C3goX2z15ja7BSn4PhK-beTQUreC8,1116 +awscli/examples/greengrass/get-logger-definition.rst,sha256=-5uWX8vneTno1ObSD94VL8F7bQBDfBrH7uCC6W2W51c,971 +awscli/examples/greengrass/get-resource-definition-version.rst,sha256=SINHT4E3ivy-7UWnH1JOLfju1XavU_TZNW4uhnuyblA,1650 +awscli/examples/greengrass/get-resource-definition.rst,sha256=QnhIK1PCZVcG8nDZ3YF9222rZQsctLs87hCKULFBwwE,985 +awscli/examples/greengrass/get-service-role-for-account.rst,sha256=64lVBcti10nDQm665nClFmfMYiKq9nEgozE-Mgjq_Nc,619 +awscli/examples/greengrass/get-subscription-definition-version.rst,sha256=4J9ivLQXbgF0MaBRuHSc-jbYRTLBJIo3R-vQXmpc7pA,1506 +awscli/examples/greengrass/get-subscription-definition.rst,sha256=JfFN5043NA5Myd4kAwZwCsuuwoosn5lCA2CJNtNcvOs,1025 +awscli/examples/greengrass/get-thing-runtime-configuration.rst,sha256=BjfVkZQ8_kGthnrvshXYQ7TSzJG1J5RRC9LlmtZnfbg,884 +awscli/examples/greengrass/list-bulk-deployment-detailed-reports.rst,sha256=6mzO8gShfaoEvOyHGMiQjdNAHTbYHFnk7MRIlw5pi6o,1993 +awscli/examples/greengrass/list-bulk-deployments.rst,sha256=cJ_CZdgfm8C_4H2_CFeKa4NVK0jiHW9HFgUzZuatKLY,716 +awscli/examples/greengrass/list-connector-definition-versions.rst,sha256=xlodBDiABvDfp3JqNpac252TUQ55rLUJhqZCs8GXO20,1111 +awscli/examples/greengrass/list-connector-definitions.rst,sha256=sZH9Cpm5kd4O3iRDObMxaFO-o7XPPp9IH1JUg7BhfHU,1192 +awscli/examples/greengrass/list-core-definition-versions.rst,sha256=2IV85cxn3aDYyNiON3jRnR0V1QCk4wZmc9BZ2b4jxdQ,826 +awscli/examples/greengrass/list-core-definitions.rst,sha256=JVN8bxIP_8RSQd59hlkU_zU6jIwFJmrfMmuTcjQXBY4,2754 +awscli/examples/greengrass/list-deployments.rst,sha256=82QF_XbKiH5v2Qoh_ENzSR3D9SEbTRuSucAnmugAF48,759 +awscli/examples/greengrass/list-device-definition-versions.rst,sha256=sRmSkbJwjUlFVfZWI7VIVKhS1bc3ztlslvNEWrhGCys,1186 +awscli/examples/greengrass/list-device-definitions.rst,sha256=tM6dpwwFI1c8QXmsDyy6XoXB_XJd6xdFuls31-BPk2M,2290 +awscli/examples/greengrass/list-function-definition-versions.rst,sha256=pDpLRLlZC3bPp-kJtwHdRR_lm_Ogw-waC2j1xy52k3s,2045 +awscli/examples/greengrass/list-function-definitions.rst,sha256=Od9YrlythAnzVVOond8bn0E4oqWzHARQ3bEXeB2EoL0,2776 +awscli/examples/greengrass/list-group-certificate-authorities.rst,sha256=ybD4KG8f2s8h9g2cKnMwMaUa_d0WKGyhk1_aiqvvTV4,761 +awscli/examples/greengrass/list-group-versions.rst,sha256=4cx3nRcfyNbQRZ_p4jOryLs0blcayt2Evn8Uiiq1SXU,2230 +awscli/examples/greengrass/list-groups.rst,sha256=YYZl_oWHNTnHGvVAs0wT9ZnBUz6FouywMCTV2qb7sL4,2157 +awscli/examples/greengrass/list-logger-definition-versions.rst,sha256=KpUdMq_Ocv8A18MavC234nT2I1G_bL86QjmoJ0TCwjs,1165 +awscli/examples/greengrass/list-logger-definitions.rst,sha256=GP1ZMeuLKuCu-uLxlecMGm9OQntRKwyQugfCaVTQKPQ,879 +awscli/examples/greengrass/list-resource-definition-versions.rst,sha256=zgJ7mFpFKSYhK1-ZENHqW-p3jAhdnzTb2eoCGMGddWo,1170 +awscli/examples/greengrass/list-resource-definitions.rst,sha256=qVS0uAKH_0WQw9Kmv7SZa4VTeDBXOVr-26hWEm-xDeM,1585 +awscli/examples/greengrass/list-subscription-definition-versions.rst,sha256=wsrWRCv657o7nKv_cYeG5CMvZuzeAm8ySWlzXE-L700,1256 +awscli/examples/greengrass/list-subscription-definitions.rst,sha256=ALq4vjgVAcradfC5O67VMTyhPP1uaVxsxlyAMyoHHFA,2215 +awscli/examples/greengrass/list-tags-for-resource.rst,sha256=LtPik1MyEFqQzZFlbB3AQdl2PczL6ScslgfcZnahZZA,674 +awscli/examples/greengrass/reset-deployments.rst,sha256=sDyv1Porv-QVrV_BejL_5gDLAEKvMECAPPFDakxlEIQ,866 +awscli/examples/greengrass/start-bulk-deployment.rst,sha256=vAJ0TdNCkbrRXtmR8aBF_N9W_eZKJCnBwN_ZquDK0nI,934 +awscli/examples/greengrass/stop-bulk-deployment.rst,sha256=kXikYE9gyz1yfByB2NNdtosg6vZxIPRcU_lrkUlDjsQ,605 +awscli/examples/greengrass/tag-resource.rst,sha256=_9g2C453Fvvy_qdhB1YcJ2tgP54faTDbkbxnl8H5ImY,770 +awscli/examples/greengrass/untag-resource.rst,sha256=9gMIPpSSuaNp0OyeczIw0pDpPsS5UM4cfB6vI-e1Xzk,681 +awscli/examples/greengrass/update-connectivity-info.rst,sha256=boZS8a0bEhaULxq7wrIOPdOnnUzklXIs0SfkBSJPuHI,834 +awscli/examples/greengrass/update-connector-definition.rst,sha256=-dnFOYLyneD9DFt_BpSbMgqAZUUc7HQ2WX0BoIYvCg4,676 +awscli/examples/greengrass/update-core-definition.rst,sha256=DAUCjU4We2_PkUhTRjbw3cmKmkbyZBT4fOuDR03GWLQ,570 +awscli/examples/greengrass/update-device-definition.rst,sha256=eE9ySMpZyJIDv3rZakgsRj9S-Kkrct7aP_IfZGZ6zag,397 +awscli/examples/greengrass/update-function-definition.rst,sha256=VzWZt2j2FZ0eqWrYFRmJ8Y6hbofec04hU5_Bcg3FpV0,671 +awscli/examples/greengrass/update-group-certificate-configuration.rst,sha256=P06Qgkf5D6UJNN-ltNe55bqNeUEDYQoJcYN3oPLfn0k,754 +awscli/examples/greengrass/update-group.rst,sha256=rnhYns9MzyFeJ8GQcWZ7z6eUGco4YUSYv326Zp5G4rI,556 +awscli/examples/greengrass/update-logger-definition.rst,sha256=EOBVwNps_YQqO-jYJTz8Cc6-9m1iGjjJ9GzJyQlz6BA,612 +awscli/examples/greengrass/update-resource-definition.rst,sha256=lphrkFwRHpjR-dKWFspXlMlyRjGKllPnrkuc3t4ou7A,722 +awscli/examples/greengrass/update-subscription-definition.rst,sha256=qwPVV5G1MR3KysJV44zC0-W19IyWhwbo5iIer9Q1WPg,573 +awscli/examples/greengrass/update-thing-runtime-configuration.rst,sha256=axbaKU6qVnl5sMXC00-EkuLrXzkAQLt3IzfFkqCVhcU,632 +awscli/examples/greengrassv2/associate-service-role-to-account.rst,sha256=ekO15ABhKJA5yIPOY2q2tvQ4qunPXJG7OEppNMjDMlg,618 +awscli/examples/greengrassv2/batch-associate-client-device-with-core-device.rst,sha256=u0z6BmlPRNICduCBAnlEt4mhqhEcjDzBfZ1fYteKisk,637 +awscli/examples/greengrassv2/batch-disassociate-client-device-from-core-device.rst,sha256=3PONmnS7Vug7i2n1VIfW1kPydy-lL24IqHPhmYxsOgI,649 +awscli/examples/greengrassv2/cancel-deployment.rst,sha256=ZCesHhe9jWKp7nKfcLLDILjpdihVZxG93wjJI5iL9Yc,471 +awscli/examples/greengrassv2/create-component-version.rst,sha256=xnGjTmQPgzZxiIbymO5iGrg6KW6DhQEVhap7kQaOdng,3266 +awscli/examples/greengrassv2/create-deployment.rst,sha256=XhYOaW2KdxoeXFJpUodYmCfZrjgbGI-S9RwixueBo20,3472 +awscli/examples/greengrassv2/delete-component.rst,sha256=2xoviyGHSqo9az0nWd9VjRA_aJp5xg6Wx0safABzcR4,481 +awscli/examples/greengrassv2/delete-core-device.rst,sha256=Mf8o5ua3UtWCKolCfJ1oVCcrybaSuZdCV3CEwdZlfMs,503 +awscli/examples/greengrassv2/describe-component.rst,sha256=irx2zyHWhrgCCt6JOex1KEFD1oxVkd6NHuqPsbwO4Cs,1133 +awscli/examples/greengrassv2/disassociate-service-role-from-account.rst,sha256=yW13Nx95USbF0FfDc3C6I2qr3PdgbpwDB6oU7iy2UEI,563 +awscli/examples/greengrassv2/get-component-version-artifact.rst,sha256=M4MQgymUtCx8LBrGvqo86MB0CMFXXujprUDwNKGTLOE,1069 +awscli/examples/greengrassv2/get-component.rst,sha256=nDmVjm6KpQ8X0G8ujGbj6EX6358f0X2A5n4bGBzm3hk,3052 +awscli/examples/greengrassv2/get-connectivity-info.rst,sha256=cL_bfAe1uwtm6O16r0TUJR_canT5OLpJTC-XKYrUcIk,798 +awscli/examples/greengrassv2/get-core-device.rst,sha256=mEd1hNRV5aXLRkquMmwCMFgfsUkuT_8x4mCX8H-Jsxk,708 +awscli/examples/greengrassv2/get-deployment.rst,sha256=UbspnZAs1sTmQMdTYPwp_6ueSNpyNCqIvNezLNPWVxQ,1885 +awscli/examples/greengrassv2/get-service-role-for-account.rst,sha256=kwAr61NDI04ic8rkXUwqhndLcQ3oq44HqL0doJxz6yk,618 +awscli/examples/greengrassv2/list-client-devices-associated-with-core-device.rst,sha256=KGQTjJQmDov32vTwdtJOaDdaeZ3PHu83RKToTYTGlp4,920 +awscli/examples/greengrassv2/list-component-versions.rst,sha256=QfrKpnrr-L8m88UUWBZ15DDmTt5KAoCEA5uYr3rQeLE,1042 +awscli/examples/greengrassv2/list-components.rst,sha256=Z8UyAf5ZabjZbpbKzrgZjXLaIr7FttXjxv4fFGhaQIw,1306 +awscli/examples/greengrassv2/list-core-devices.rst,sha256=vAgCUu-jbNxRtDW7vM8R8rz95Ha57W5AdWSJgSwWGw0,659 +awscli/examples/greengrassv2/list-deployments.rst,sha256=llaqo3ZQ2j5DBAb7Qm_rpXlYraDv7s2PFRSFZidTdnQ,1417 +awscli/examples/greengrassv2/list-effective-deployments.rst,sha256=Nf0DsYm59Y5bz4rfPnoGlmPTq4ttjtsBdszECQMET2s,1804 +awscli/examples/greengrassv2/list-installed-components.rst,sha256=XnCv5EOWR3jwWRgA_mUaB9Uee9CPVnRUleAceAmUAbQ,971 +awscli/examples/greengrassv2/list-tags-for-resource.rst,sha256=Cb0WcS5-fldaZXSOYfDite9gWWXE24qzuQTen6uG_Qw,556 +awscli/examples/greengrassv2/tag-resource.rst,sha256=MFQElQfZudpjXRXLz85lOxPMBV__bV7XFxxjyKi1sIQ,595 +awscli/examples/greengrassv2/untag-resource.rst,sha256=XpP-G2Xq-p-tFEE90ppzc8LnTwiAlGG6mfYrsLcx8vo,520 +awscli/examples/greengrassv2/update-connectivity-info.rst,sha256=SkVizTEVaP5IDoWm8kbcjoNIdTPB1AK45uCFnrPJywY,1006 +awscli/examples/guardduty/accept-invitation.rst,sha256=SXdXbzBI4koqMayn1eZhp_XIIyQkB_aEbfOdc0cMV3Q,644 +awscli/examples/guardduty/archive-findings.rst,sha256=g2K6NAHLQv32MJlOXVOONN5wch-BMdoeuu1-se_s2so,544 +awscli/examples/guardduty/create-detector.rst,sha256=avBHR6_EUrvA3_wmbSxLqEntT_-wk5Jgws1mBOIbVhQ,474 +awscli/examples/guardduty/create-filter.rst,sha256=HqHZO6K1sTup1o8OUqO2AXdIjMz-RLl3CDCtgbQcx0w,1644 +awscli/examples/guardduty/create-ip-set.rst,sha256=T0Dxi5C1YOHqvGc-I_v9N5bphtnPdrGfzziIE3Qy6H8,667 +awscli/examples/guardduty/create-members.rst,sha256=P8zGKPP5wRq1SVnv1XC7vHAiKtR-6wa32zCJdwPgPEg,664 +awscli/examples/guardduty/create-publishing-destination.rst,sha256=E6NZrgijSlr0oLUcXXanKNy_I2dxiMo1Y4DQH3OT_Gs,902 +awscli/examples/guardduty/create-sample-findings.rst,sha256=tHNU78Uo29CE0XFp6KorMQN9IrvrfbhiToK2h6QuaoI,522 +awscli/examples/guardduty/create-threat-intel-set.rst,sha256=Potsm2HdCab1OoQnPL0AsXU-0JYQPsbzi7oO8b6lu-g,702 +awscli/examples/guardduty/decline-invitations.rst,sha256=HVilJaU0XdnMRKHuyOuSKhc6-bzPxeBWBF9JlGj5KYU,485 +awscli/examples/guardduty/delete-detector.rst,sha256=FGU6oTZYCQrq3TUB-IJLRMNa9UOeC9Eg5FRsKB8RBic,520 +awscli/examples/guardduty/delete-filter.rst,sha256=xMix3FPFn4l-phwi5zq1_BfLH2VN09KDaOS8VgUq9LM,440 +awscli/examples/guardduty/disable-organization-admin-account.rst,sha256=uucqE1J3IeKg5FJhRloUM5J2QrnySGIgwwfg6LDfcXI,509 +awscli/examples/guardduty/disassociate-from-master-account.rst,sha256=EF4KXsezIjtkOP_QNMY9TOsWKAnrpqRMB9tYV2VQxkY,645 +awscli/examples/guardduty/get-detector.rst,sha256=0z0TEdRaxhz5_86dzXU8LXcaKFqrNsE2Sl9d3fm6Ajw,773 +awscli/examples/guardduty/get-findings.rst,sha256=cYCDtX9lfqYH6SdedR6gqL3nYBjXlHgaaKjSPyLIkMU,3582 +awscli/examples/guardduty/get-ip-set.rst,sha256=YLIJe5ZLTccxtxLANLqJyjh_6r60JfYqJTFcEEj95Wk,733 +awscli/examples/guardduty/get-master-account.rst,sha256=P0djfO2mlY3Dn3lX2F5K2Dp7_0qzKlUNBNdJ8_lbzDI,839 +awscli/examples/guardduty/list-detectors.rst,sha256=mS_LlpWnMBUY1Z8549tlJvYm6IcVEVk0WySRZEljC3U,475 +awscli/examples/guardduty/list-findings.rst,sha256=yu5uxPGSgetbYBelRSpdn8McwjVGd5XHF8t9H-wDIvA,2753 +awscli/examples/guardduty/list-invitations.rst,sha256=GpX4-DIf2p58TABjsBtWb1Xjx5BOYRyZ4MyUsdlkqK4,785 +awscli/examples/guardduty/list-ip-sets.rst,sha256=HkL1ZEeOM_szNmk8V5ZEiWBsX6Zp18UFbO69rHo6X4k,542 +awscli/examples/guardduty/list-members.rst,sha256=JjQ75i7EdPEFzqaneD5Oo0Pk7u91Sa8G4bWpJwmgm4g,2236 +awscli/examples/guardduty/update-detector.rst,sha256=xMmBbGkjOqA6mKhumwZ2lg0tzCj9PgLtWmLaAzywtd8,1221 +awscli/examples/guardduty/update-ip-set.rst,sha256=_AlsG9W6mBgPCQDP8D1GBwd92IwkzvNf_HsWNeSKC0I,603 +awscli/examples/health/describe-affected-entities.rst,sha256=rBj9YxiiMS0Osum6MFLORoOOddWZEN0Wjh7OHJxKhpU,1140 +awscli/examples/health/describe-event-details.rst,sha256=d83e2wiNidiOqdzkt-nCp6o4KIqLCU7J2S2UvVFR20c,1692 +awscli/examples/health/describe-events.rst,sha256=ubZzwAjHmWMmkl1FEYgFOfUf55a3_LbcudOe0s7sQsI,8598 +awscli/examples/healthlake/create-fhir-datastore.rst,sha256=N3xs_EFb3omezqgvh8HY_AMPtWPaSknIHUuoJu2YMJM,2963 +awscli/examples/healthlake/delete-fhir-datastore.rst,sha256=Osa7ogOUiGQzKFSzarol-rOfXNpCymObUzzT72QNwdE,777 +awscli/examples/healthlake/describe-fhir-datastore.rst,sha256=VU3Tcyj-hH2ppaVCIj-8D1J4xhXP6FNGjSg7SYzRSDo,1538 +awscli/examples/healthlake/describe-fhir-export-job.rst,sha256=ML0wPclitaV625ygTxIGKHRPNxw0Gld0yxocukpuxn4,1200 +awscli/examples/healthlake/describe-fhir-import-job.rst,sha256=AQqggC2h8_C1ITZMITUo7RXNZkGp6Q_Tf4kfa2Ojg2A,993 +awscli/examples/healthlake/list-fhir-datastores.rst,sha256=TpRBbSBcz_v1ffvSihcSaHsY7YZalpLFF_7-3T5lHMs,1568 +awscli/examples/healthlake/list-fhir-export-jobs.rst,sha256=NIou9123xlXd0iCdlbTc8aQxcBF6dkKY54pl9nZc7a8,1614 +awscli/examples/healthlake/list-fhir-import-jobs.rst,sha256=vYpYCJB6I-8p31sfw5koXMhYO94arB8C5KgfCDYPP-E,2158 +awscli/examples/healthlake/list-tags-for-resource.rst,sha256=0OY4_nYKP9NUW4875nlO3uq_3xtSIk6TIP0bR75bcE4,586 +awscli/examples/healthlake/start-fhir-export-job.rst,sha256=ifYbVMLZyH7Yv-x4U03YbP1N9OsFiVX0raaeO7Pq1eE,853 +awscli/examples/healthlake/start-fhir-import-job.rst,sha256=rEkGp9qrQkyA4XhoSav82Dgta5I80XZdoQCI5syDSkI,932 +awscli/examples/healthlake/tag-resource.rst,sha256=RrK7uPb1kWIBi3t3WliOIgLYaHNE6n6EeHv4XreTwOA,527 +awscli/examples/healthlake/untag-resource.rst,sha256=2v4NSSEmAh-37cRSU2Uk85knFBuAyLauONgmlusC56k,522 +awscli/examples/iam/add-client-id-to-open-id-connect-provider.rst,sha256=x8LrXXr7_69OfiRcRgH45L_svNa_zEqQFSZ3TEjGoH8,743 +awscli/examples/iam/add-role-to-instance-profile.rst,sha256=ULlhqUTdWh2vTTnqe-C-v0vaiIAeybHrG5qIOFIvphg,637 +awscli/examples/iam/add-user-to-group.rst,sha256=y2xtqAeAGd5y74k0e8wI3R8a_GqVQ7Nyl3LHusP7VoI,466 +awscli/examples/iam/attach-group-policy.rst,sha256=wolQPy_7woF88y3I5y9J8qUOH1teinUr7YB_wo7I6F4,536 +awscli/examples/iam/attach-role-policy.rst,sha256=5XtrKy-jtUZec8kLObmUQ9scOOnSnT7CyJnFD1cAQ8E,541 +awscli/examples/iam/attach-user-policy.rst,sha256=o_m-LIsnr91sUD9TQd5ek5g86hX1QrbTHLwn3sDpRj8,538 +awscli/examples/iam/change-password.rst,sha256=T_nH-dDI-F0twh80_GkaengBcxaBq89GQ7JKE7X45W4,1699 +awscli/examples/iam/create-access-key.rst,sha256=mto08LbKqSp8zzaDrtLssw1272EXi97aFOeH1PQbTPk,845 +awscli/examples/iam/create-account-alias.rst,sha256=gH4f3HAPnBhN9gzCCsibwPKQ1cOPx9GCqYXaBOIcilM,415 +awscli/examples/iam/create-group.rst,sha256=7oG9wSP4xzeB4pCWQKoq8N104oaz6TLZpOskus0rw4s,596 +awscli/examples/iam/create-instance-profile.rst,sha256=LoXmBPFSpf7UWs-0GfDk6jpjBW7vNLZAX4SIsZkfFm8,884 +awscli/examples/iam/create-login-profile.rst,sha256=cIF17xJX063JHPw6LoZwuNyV2AdktrdAb6kPR3qgYkg,2171 +awscli/examples/iam/create-open-id-connect-provider.rst,sha256=AtnZBehfj1767JNF1fdemY1N_inxFTG6fejH_KpRtEg,2392 +awscli/examples/iam/create-policy-version.rst,sha256=7YWTT3A0Tw_qS1JLM_4_bLkQIuVpwNvb-VBN6RO3chg,746 +awscli/examples/iam/create-policy.rst,sha256=B5hdloCaq2mud34oHuh0yjuW12K5Z08e04ipy7PrnFw,5447 +awscli/examples/iam/create-role.rst,sha256=g-iimILFjRR63UsnRp4OF6VZAXDZvD7WDplZeb5B06k,4249 +awscli/examples/iam/create-saml-provider.rst,sha256=qSxJdMbUInC9ktBwRiVLnDS9mlLAB-aikzy3iR0CqDE,609 +awscli/examples/iam/create-service-linked-role.rst,sha256=MwQRbMv-oR27IJj4RpoMfR9Sw5GuUS0euwLUw7z3fkI,1418 +awscli/examples/iam/create-service-specific-credential.rst,sha256=bPKagHTmU14MTgd1sfUs-F-o8eR9xtohKdNoC6mhy64,1008 +awscli/examples/iam/create-user.rst,sha256=4Z-m5wynO_JEVu2WAU5oj62Q0YmDQXY_JtsRZG95Vjk,3616 +awscli/examples/iam/create-virtual-mfa-device.rst,sha256=l9V3Ek-fncRprEKMtd8xkhP2JQAhWlrVoneAX1LHcH8,759 +awscli/examples/iam/deactivate-mfa-device.rst,sha256=6mYpy8OQdSpLooaP9RygL8Ma-Pn7PYQ_J6PyGDIlimM,533 +awscli/examples/iam/decode-authorization-message.rst,sha256=02Epfc9RPEjmWdydNQMEWNFVKHSBiHFmr5lImk_ZQEw,2948 +awscli/examples/iam/delete-access-key.rst,sha256=9JTdM5R6LiSSoFDdVdsduO9No_3Y4Wy-FTPlJLiMehU,599 +awscli/examples/iam/delete-account-alias.rst,sha256=4j1Je4OBC39L_Z_2KPesZJcUZ0599zxrh15WBvW7Nwo,414 +awscli/examples/iam/delete-account-password-policy.rst,sha256=_HhclKLncx4XMo-bLIYcfQlruoCYeYfEwfmxt8BIV-E,446 +awscli/examples/iam/delete-group-policy.rst,sha256=JmTkrbKSDRuehheXSCfxSl-udkNShqh0ei_MhZA7QXw,545 +awscli/examples/iam/delete-group.rst,sha256=GEIIAyt8de00aqeTu_dkyAlxc2cLSsboALJPi3zd_Vk,375 +awscli/examples/iam/delete-instance-profile.rst,sha256=S1bGN9MfB8Mp9IfROwnEiPhvM0yL-HhfzMHIc9FvlDY,465 +awscli/examples/iam/delete-login-profile.rst,sha256=-aVYDCcGCUaPTbVGCqHWYOfpZHafkoxdBtksy48L8A8,430 +awscli/examples/iam/delete-open-id-connect-provider.rst,sha256=ortvx18ggQ2r7__JyuC-bcZq0sJLjJeRkGFkolSi_-g,542 +awscli/examples/iam/delete-policy-version.rst,sha256=AW1H0QOCpjIDYuHGP8NeNFTCD4GPk49hhcVqrrhRgy0,507 +awscli/examples/iam/delete-policy.rst,sha256=yheSgedeIZyQit-73jWpYoVLCMR7m-6zTatt8cJsAa0,425 +awscli/examples/iam/delete-role-permissions-boundary.rst,sha256=b68I9iIiGyFCgrq-DKJwrJDMCSchkvwVH5D_dlgmxqk,561 +awscli/examples/iam/delete-role-policy.rst,sha256=Vo8z4XnCt0T6nEmV1ATEq41ZyDOrTrLRBPNSfpyitTc,458 +awscli/examples/iam/delete-role.rst,sha256=r1Ox0twhnb6hJ6XhU2K96YwJcMIQGIuKrGmfmzD6q1Y,745 +awscli/examples/iam/delete-saml-provider.rst,sha256=QvdxC6bvxRjuVZuSogDmfBHSzRABIG-ICxtbqAzl9_k,490 +awscli/examples/iam/delete-server-certificate.rst,sha256=qLajaMUrCALbftgwuKrUs5CGG8Gmy_ys1RaSbVW6CPk,602 +awscli/examples/iam/delete-service-linked-role.rst,sha256=96zYWa_NEtVKC3mLxD9_jgqaJebUC4i8prlQX9WJDEQ,741 +awscli/examples/iam/delete-service-specific-credential.rst,sha256=XHs4sMnAAE6GhCpcCqMAjzIMjN2BighKuVPFFgKFHEo,1311 +awscli/examples/iam/delete-signing-certificate.rst,sha256=yuDgKKPxvmsfY_gAVEMa33z-nF6QFYUQWnbm-FMQRPM,619 +awscli/examples/iam/delete-ssh-public-key.rst,sha256=O5ucBHm6AEHVyEo3btO-lYxm-uB9xrFGG6F7zkZbWnM,527 +awscli/examples/iam/delete-user-permissions-boundary.rst,sha256=yREbG5OLEhlub4qevEraUlR4Lm2rILCVoqQdbWkMVDA,559 +awscli/examples/iam/delete-user-policy.rst,sha256=cioqHQO8_JcvR7dnjvAylIs0y0kune7wKrVQTJ09q-s,537 +awscli/examples/iam/delete-user.rst,sha256=TygHVdDlHfCp-qD0xGq5AX5m5Ekk_Wh2Jn2BkbhCMHM,384 +awscli/examples/iam/delete-virtual-mfa-device.rst,sha256=nfDfb6vrEpCbCWFZafyMHTIFte1HGe3p4YML-WpuKok,454 +awscli/examples/iam/detach-group-policy.rst,sha256=aoBbceAKiZ2mv06ZyWLa9k8IKvWh3JSEQXvelE8JyL0,514 +awscli/examples/iam/detach-role-policy.rst,sha256=V8l3nd1HVWks-N0oebSFAKFS-VhB29d45B0J7wosm4g,539 +awscli/examples/iam/detach-user-policy.rst,sha256=5BgVx_4zeIAYU06t0bGNkEbWXgKjJNcDBgiu8PCPy1E,507 +awscli/examples/iam/disable-organizations-root-credentials-management.rst,sha256=ZrJQgpeQHjBfUc7mtLWNEJlMBqWzBUBUboaFsZBPYG8,653 +awscli/examples/iam/disable-organizations-root-sessions.rst,sha256=PYvKzgOeQ2hArky-YTm7eABoB2Uk-LzDA1YTD5Wu6SY,615 +awscli/examples/iam/enable-mfa-device.rst,sha256=g2DrBa5OcrBToxwwC_i3WWrkHZ08gprsWfTBDXRtOa4,898 +awscli/examples/iam/enable-organizations-root-credentials-management.rst,sha256=rqFPCPRWepC_g8kl7I5zzmuLYhYcKjvEkiqnX2JAPQQ,661 +awscli/examples/iam/enable-organizations-root-sessions.rst,sha256=TPJBpn4IX6oYpFO3047X0J-fex7XqfJ1-WSZkKPkR48,629 +awscli/examples/iam/generate-credential-report.rst,sha256=n8CbalvkRS8Dy9pnVO8-gb842kMaOMnmE4CfA_LCDTE,490 +awscli/examples/iam/generate-organizations-access-report.rst,sha256=djstl4lOJB0P8nIIX18TtTLK1lL7HEGMJZRawf_vOAM,2106 +awscli/examples/iam/generate-service-last-accessed-details.rst,sha256=amNeD6sQHXberyR7ABus6DaqhtfcHZFYYd9-ai1cwu0,1440 +awscli/examples/iam/get-access-key-last-used.rst,sha256=9BtL9NKaCIbxMPKuqZRyY9VDslWFJUFshRe6riMUS98,648 +awscli/examples/iam/get-account-authorization-details.rst,sha256=EoVYPUo_UfGbeGuyKu4F00r6aYuIonfOxOnWxInQepk,12594 +awscli/examples/iam/get-account-password-policy.rst,sha256=VDG8QbXoN5BQjrMYidMbhfbCTKUZ85z5nSkRJ-aw61I,834 +awscli/examples/iam/get-account-summary.rst,sha256=9pkq9qDx9rtg1O9IuOhLN2UX_ixfN99xKWzIW0Lgk6c,1357 +awscli/examples/iam/get-context-keys-for-custom-policy.rst,sha256=PqrEBJaoVzx0t8SRcdl7A94Anc7mFR6H6V6pSeI1gwU,2727 +awscli/examples/iam/get-context-keys-for-principal-policy.rst,sha256=f-B00QDbrKL8zxh4bTas9IIf_T0k7vd4RazrgWmkZA4,1103 +awscli/examples/iam/get-credential-report.rst,sha256=XBU7DekbtG_fZWXjdBbFH-DmSiKLRkxubtlzZVP2sjQ,468 +awscli/examples/iam/get-group-policy.rst,sha256=uqJDNmnZZoiz4pfcWLOcIiSquiMW3rJpg-QVYXZXddM,882 +awscli/examples/iam/get-group.rst,sha256=ZvD4tNCbeaWiiu60pWUvfXxD6JyX3spUmYmTeKHTG_E,598 +awscli/examples/iam/get-instance-profile.rst,sha256=Bz0cR0IbVF9BLLBhVPxz0_Q-vw_B544-ezEQkjYCyDM,1203 +awscli/examples/iam/get-login-profile.rst,sha256=ucp4yxk_rC6GvCac9eGCpF9Ug9IaB2sQHE72ZVFRWyg,1009 +awscli/examples/iam/get-mfa-device.rst,sha256=FHd24RMHqvgvgYz42hsVxstaoTWQ2rRupC1YahCfmAI,756 +awscli/examples/iam/get-open-id-connect-provider.rst,sha256=ypGscTqvIsefGfjpx_BkRVtWlYnes7PZNj0ceC3fe70,845 +awscli/examples/iam/get-organizations-access-report.rst,sha256=KsHg2ue8LKX56-dyhxxpCPqvd8Si8k89kYo3gYiOaSk,1033 +awscli/examples/iam/get-policy-version.rst,sha256=89UzWB158llJboJdUyxMwJGdccr3yxPtsE1IcSSFdUY,1003 +awscli/examples/iam/get-policy.rst,sha256=7WhbOjchuHRGIu8smdd30HC56Nb1Eh_rUPRxbW2I6a8,891 +awscli/examples/iam/get-role-policy.rst,sha256=rtbZyRVaRQ2scHV_KbIZedranDZjJdyfg8nleE33QOI,938 +awscli/examples/iam/get-role.rst,sha256=4_pK7SEi3a-jlryGPJIw8thq8RCcHeyGB6hD0Kr81Zo,1043 +awscli/examples/iam/get-saml-provider.rst,sha256=-HLPWwz7LBVE37nJpNyMftqsEEGqW1Zs98Kn2ewH7V0,1071 +awscli/examples/iam/get-server-certificate.rst,sha256=UFfFNlEUBWlqGsXKg0HBoUNyhbjcRqnPUJ6jyrSiK2g,3506 +awscli/examples/iam/get-service-last-accessed-details-with-entities.rst,sha256=MnrH7Z7SB8UX2GBFPXM6irpeXIzAUF-_gfct2D6aN4E,1738 +awscli/examples/iam/get-service-last-accessed-details.rst,sha256=4zJ7E9VjKTsITIhu_WabVR98ZBGdBU-sZWC3LL3sZpI,1069 +awscli/examples/iam/get-service-linked-role-deletion-status.rst,sha256=buvb6dmdfTWKkwLLD6YSp-aMX-k6DT9GAzx_dDEkJ_w,774 +awscli/examples/iam/get-ssh-public-key.rst,sha256=ucCK8LTyk9x7Sq22s3U3s_eKFvJSR7tPG94Tcw80yhs,1760 +awscli/examples/iam/get-user-policy.rst,sha256=T2jzsAAQfDG9OQlXtpAo6WTdRtiktxaLbZhGppwCd_0,870 +awscli/examples/iam/get-user.rst,sha256=F0NF1unL-04TBQeKz9jTjuOJ_b_-VMEMhgViuqzTgmQ,596 +awscli/examples/iam/list-access-keys.rst,sha256=hpA3cf7bZfzz-fTLASZ3mVu0JsNBb-c-G1a0AtRHvRc,1031 +awscli/examples/iam/list-account-aliases.rst,sha256=WG1-jZjj7Fdqes1iOZcd-Ca44KFK8qWYXk3FQTbAUJA,408 +awscli/examples/iam/list-attached-group-policies.rst,sha256=Xo9q1obVYrrWlmHZsw8dB8hcs9ev5_bcLKMcOHAHqtI,843 +awscli/examples/iam/list-attached-role-policies.rst,sha256=Ll5a1wfaXeRqVNfVBjUZGlfEnbd49v2So0O2sesu-s8,695 +awscli/examples/iam/list-attached-user-policies.rst,sha256=OaDAwM1Z2OMNBWgDGFwdKXtDs9owmZlWpBkEl_BrB0o,816 +awscli/examples/iam/list-entities-for-policy.rst,sha256=XupK0vaOso1dgrC2OafhYMW1z4ZVw6HH7inKS_rY89Q,1012 +awscli/examples/iam/list-group-policies.rst,sha256=0HM_jjFYzhALgQzFRiYy6mo6KYj4mdnR26SaDhieL50,568 +awscli/examples/iam/list-groups-for-user.rst,sha256=ew9DFPDVsqUUQXC8poMXEkKAoZ6wIq0EQ88G_Wpgi1A,969 +awscli/examples/iam/list-groups.rst,sha256=7kJW_qA7MMm-_bCZHd3RbablPe27jsuq9mWuLkP8bu4,916 +awscli/examples/iam/list-instance-profile-tags.rst,sha256=UEsChFMmoGrYVujB7Hqvytg9Ybx_DGX1RBHqlpBmftE,670 +awscli/examples/iam/list-instance-profiles-for-role.rst,sha256=GvwfeKFBmOZEajWZwLYp4r5ZjrDlvDGlFxNAb-6Kjc4,1289 +awscli/examples/iam/list-instance-profiles.rst,sha256=1ZSCKl-ynQ2i-PXmxFNT2QFsPpSuWQROjj9Q2bm_pqU,2992 +awscli/examples/iam/list-mfa-device-tags.rst,sha256=5AjmMfWZX_8qFncYIG5Dix4LDY-nBPkWc9kRa7rhkSU,658 +awscli/examples/iam/list-mfa-devices.rst,sha256=a5KW1o4NEQaoMFlZbLDBd3Sq_EwT_clNrssXIzh-2qo,1271 +awscli/examples/iam/list-open-id-connect-provider-tags.rst,sha256=ypYIIMnwqT3DbIiZsHcqiE2KQMI4GQL8LCVqUodWfck,776 +awscli/examples/iam/list-open-id-connect-providers.rst,sha256=-nPF3Jxr_c_eIQOxXIybton4SDl5axenleVDEc596e0,629 +awscli/examples/iam/list-organizations-features.rst,sha256=Y4mho5vY_OOMEksdAayirKvSOpCqF68pxXxhlaXYp2Q,647 +awscli/examples/iam/list-policies-granting-service-access.rst,sha256=P9UAyDJGtsCpxMSdylmQ8F0B3WlnSgYInXSqIyfGF8I,1096 +awscli/examples/iam/list-policies.rst,sha256=8MfbvdWOxWir5ejGZ2qGOoaTK9Ia2Lpaw98nOXrsLfY,2107 +awscli/examples/iam/list-policy-tags.rst,sha256=A_H4MXQZYdZmXp2U4QlQkCjRiDHqzFSSaLRS5PPI0Z4,666 +awscli/examples/iam/list-policy-versions.rst,sha256=TCo6myuk_BOM8WlWZuosant1iHH9c2QZ1_uwxcFhHmU,859 +awscli/examples/iam/list-role-policies.rst,sha256=cW2HxZgkMEF-wkQX1a6cmBVIW0QWUBQMJKFqnFNaXFk,627 +awscli/examples/iam/list-role-tags.rst,sha256=WuG41aErDIT_b2Le6BSaPNBLK3KiAPZiw02OJVddSwM,638 +awscli/examples/iam/list-roles.rst,sha256=LYDeS0SE8ePeY8xR6TdFp4j9qAkXyFZJkonKctGY-X8,2035 +awscli/examples/iam/list-saml-provider-tags.rst,sha256=xGxBV5I03sX1u88kv1gFNmAykarvfwAod2hwQn-OtFc,682 +awscli/examples/iam/list-saml-providers.rst,sha256=IAbW1lZYg6SQRyhw4ODxlFoZ_2sL0u9t90boOpo5_Eo,634 +awscli/examples/iam/list-server-certificate-tags.rst,sha256=_QAYMevqxbPrNcXHBXKmVsh3E8C49zAoxcAdu6-k-zk,682 +awscli/examples/iam/list-server-certificates.rst,sha256=OdH8cP9VpRJY7QVjTpNDL3coRtAnzlQ9YV-k_HM0urM,1295 +awscli/examples/iam/list-service-specific-credential.rst,sha256=GKnosfU7dfi0q6Ay9UacZFcp9uc0m89rtBChNd7iAOA,1748 +awscli/examples/iam/list-service-specific-credentials.rst,sha256=PCOdvvaPDO-aOtpZKHoGqi_5HA7MI3Ep--1DoxblU-k,1347 +awscli/examples/iam/list-signing-certificates.rst,sha256=pSjan9H5ddXp0Zjz3Ii8TFXBTw7efB5XrmKhwzEkUd8,815 +awscli/examples/iam/list-ssh-public-keys.rst,sha256=tRLs3LCzlcSm4ely_7fyalYOU11C__2iI8UmHZd-0Gk,707 +awscli/examples/iam/list-user-policies.rst,sha256=CU4pzGx1oOpK1LcBun93jhD9-pmKRLF-JA02Mq_mizg,496 +awscli/examples/iam/list-user-tags.rst,sha256=129Eh7soLwEwbRSMx0kIpCFS76YYzqNM4_C9rcmP9kw,632 +awscli/examples/iam/list-users.rst,sha256=dPvbUGwO-UPevmT69m_k6NwrAjYnO6AE8Mpj0I7_hxY,870 +awscli/examples/iam/list-virtual-mfa-devices.rst,sha256=rp51AedmA81eaiaGsgjyOWkuGbHKrn-C5KHcKSCheE4,686 +awscli/examples/iam/put-group-policy.rst,sha256=Ot_uZGhcunejyJy-6kIMA7FCYpZqhPGqEqfib2CFK0k,597 +awscli/examples/iam/put-role-permissions-boundary.rst,sha256=UMqOLbXfpe4kJ0H74j61RiUU25l-H5zdC2mHDMTrYRk,1064 +awscli/examples/iam/put-role-policy.rst,sha256=vqaHxPeGXq9RAf-E38dj8g0HSyItPF2hvGv3GwclV20,709 +awscli/examples/iam/put-user-permissions-boundary.rst,sha256=8qf1suQWqKw2jUxNV9non0xsqkhA8yQ8qDeSuHIBh2c,1088 +awscli/examples/iam/put-user-policy.rst,sha256=FUzR7yyTlsv0cao6RC_QGGVc12pgcwuU_ZdeQ-yv7go,639 +awscli/examples/iam/remove-client-id-from-open-id-connect-provider.rst,sha256=nC3w-LUZ1FDT5k2y5m_4d-kQoYkCFYx4kFm5SiOZy4M,759 +awscli/examples/iam/remove-role-from-instance-profile.rst,sha256=LBXJWXqIXU9cMqroYzkUn0KETHFimKIE5OcgoaPtKgI,529 +awscli/examples/iam/remove-user-from-group.rst,sha256=9JtFrE2lE-5FcxB_boAR38kkpt-UZCIwu4IibR32P8A,482 +awscli/examples/iam/reset-service-specific-credential.rst,sha256=rKq-j9vD7yNc-JZsQ8ozwi1-M3opBipmjTd9ZtsGFf8,1957 +awscli/examples/iam/resync-mfa-device.rst,sha256=kJKq5Vq6QnGEdLk4RCPr_vuRVoKI9AnIhwRKJZCwEPc,715 +awscli/examples/iam/set-default-policy-version.rst,sha256=_FGcBtxVfNrxUuJMcWlHCSuaz-Mplu9sNjOFcCnjj_s,529 +awscli/examples/iam/set-security-token-service-preferences.rst,sha256=PjQyz0yfzOvSPbgCIGHiGDPENky5nfSIGd_wxzKuNUI,531 +awscli/examples/iam/simulate-custom-policy.rst,sha256=AtAKiFKrOj0Y_7XW91kDCexhNVKK7ZXGqkUT50-lmOE,2874 +awscli/examples/iam/simulate-principal-policy.rst,sha256=x-O_bLAcxyBEDRtaWUGAb1eZ8sOfD1u2DQv57horZis,2578 +awscli/examples/iam/tag-instance-profile.rst,sha256=85Pn92TbfjaCy8Hxb_2XQqx6eWxhO4zoiPBcgpTafm8,489 +awscli/examples/iam/tag-mfa-device.rst,sha256=ZLDAPIK5Wrw4hMS0zB9vKS7OAieMt6givX2H1391Jas,477 +awscli/examples/iam/tag-open-id-connect-provider.rst,sha256=MGvCyvIihqsBcWZpRi80xCkWtneZB4KwPYeN3OHMt_8,595 +awscli/examples/iam/tag-policy.rst,sha256=ld7SEXfVi09gir1CxJrEeuG1tI7WfK1ptGeWcwR8NTQ,503 +awscli/examples/iam/tag-role.rst,sha256=IexXmEL1_yEiKIVY3BT36cMBA2JN3UYI7nyvH0DED_c,408 +awscli/examples/iam/tag-saml-provider.rst,sha256=XJiRroUnfC9T8fvy1Pl19895Klb_OlSS6jyAEaiZKLg,501 +awscli/examples/iam/tag-server-certificate.rst,sha256=GFuTcWi8To60cjkuuryJ7DeqBu6F6SpU6VaKV2QMyNg,495 +awscli/examples/iam/tag-user.rst,sha256=yCJXiUPMlgWoeXo06W5Sh599axxYBQcjJAw8z3PNWhs,424 +awscli/examples/iam/untag-instance-profile.rst,sha256=m4pOK028lsQFA597Pdx5CgVLqMSI2TLYQNg1d-j1TFE,479 +awscli/examples/iam/untag-mfa-device.rst,sha256=xK-W37aSKUol6TiMfJxX-P76VMmD2efmvvMnaiVyWbc,467 +awscli/examples/iam/untag-open-id-connect-provider.rst,sha256=iQd-YrZBGBc7cVraJHYPNqO5REEsJ_d4KIcLcDvkrPo,557 +awscli/examples/iam/untag-policy.rst,sha256=NDLrti3YseqUFFVQFMRxpBh01Wr816mGzS92sxf3EUA,493 +awscli/examples/iam/untag-role.rst,sha256=3UyGA6U-vobqaJ6a6C0qtCqD7Uixw4bZrfkHkTCstZ0,410 +awscli/examples/iam/untag-saml-provider.rst,sha256=rgNgbGkJqeYaUtmHZ-xyusJa3x-bGBa-_VHTKv4wdl8,494 +awscli/examples/iam/untag-server-certificate.rst,sha256=v9fIBVo-65GhbcluspvN__3jSILJSvPcdGD4fpmlt7U,491 +awscli/examples/iam/untag-user.rst,sha256=cMqr-yc7wxXWeWkM0g2BWD054G1I-2nW68ysp71Jcy0,408 +awscli/examples/iam/update-access-key.rst,sha256=TqyeasYWLdyFuUcc8ftGSscSultQ2LwhHuQhGPxmFVU,701 +awscli/examples/iam/update-account-password-policy.rst,sha256=TGmeSItyYIORVudn8Yivav82OJa2hCfxik5gsFt9y1g,762 +awscli/examples/iam/update-assume-role-policy.rst,sha256=Pzjqkg6wbQhEEmVEfkKSjus7bd_Jl-QBCJmsHTPMOaY,753 +awscli/examples/iam/update-group.rst,sha256=dLMVGR_b-OqGN-QSDBrCUZ3hFUJMOo2lzwytVU9Cn_4,416 +awscli/examples/iam/update-login-profile.rst,sha256=tUCsr20AKXLq4lFGRnoGcbhFJkB8vMrOaJcsZGyxtI0,966 +awscli/examples/iam/update-open-id-connect-provider-thumbprint.rst,sha256=b9n5lAPB1MPybdHwL-m_WAAFhDx2AZUi2o0Tl0V_VAc,731 +awscli/examples/iam/update-role-description.rst,sha256=osHSB5_Fo1j6XEcBvHuv3gHMd5C9imewHQ3ntIa2-6s,1250 +awscli/examples/iam/update-role.rst,sha256=dvUJfd5pqCWvQj7xLe6oHyJpvmzJpLOXSDJ31fEYc0g,579 +awscli/examples/iam/update-saml-provider.rst,sha256=nDf-yye8RRLUWfAa9IPFWRYy3BcQMYVQyrgEa_DYO1w,709 +awscli/examples/iam/update-server-certificate.rst,sha256=gD8DZhdKuqBB9E1Tk41tYUZMuZ4Tl7AJh7CN5oTLGak,870 +awscli/examples/iam/update-service-specific-credential.rst,sha256=RShNLMKoOpf-h9PNi6IGMx6KkQ19j7GMupoAqOhaUh0,1074 +awscli/examples/iam/update-signing-certificate.rst,sha256=jOvXVTdFSUXRMrK2IPNtTcQ8iHI--7suS8A7wl3UAJs,633 +awscli/examples/iam/update-ssh-public-key.rst,sha256=OzyCfkgM2WyfKc1_gP7Y09cTv4IL1Ya7jxxART50Gok,536 +awscli/examples/iam/update-user.rst,sha256=VuIeJCUg8fLL6N-ylK3iZGYrvqC5iB9VBd_TRwMrXDE,415 +awscli/examples/iam/upload-server-certificate.rst,sha256=TFPbtQduIfEaXgkczcww314_RUBEcbAsgCRh5XgpFuM,1605 +awscli/examples/iam/upload-signing-certificate.rst,sha256=bjrzIxRw47B7Bp_O0a8lQbGrAdyps8RtaGcNFwpR2z8,941 +awscli/examples/iam/upload-ssh-public-key.rst,sha256=tveALTiUcYFqlAKvuMLgx3eUtx9HrUlM_qjE6pMNWfg,1259 +awscli/examples/iam/wait/instance-profile-exists.rst,sha256=JPVVxu6TNvS-NY88JL7CPbinlkS7gIj58yQ7XGRuoVA,334 +awscli/examples/iam/wait/policy-exists.rst,sha256=-kPZyDGSRIyQtt_G1dn6Ds1ffjkrkNn1CZDzbw9Ht74,313 +awscli/examples/iam/wait/role-exists.rst,sha256=kZYkMsbhspOQa7P4J_yfLp0G4IkhGmAPf50xeVIOKgs,271 +awscli/examples/iam/wait/user-exists.rst,sha256=UPlYDQ3iLGfF33QDReE3EnX8Wgs-_P0N-7pHpBU7qgU,271 +awscli/examples/imagebuilder/create-component.rst,sha256=OnBukt_CWo-nabzefs-d57VMSlvN218-n4gago-KTWI,1217 +awscli/examples/imagebuilder/create-distribution-configuration.rst,sha256=bpfth7GqTd8-TWqMCsTLP1tgXKMHDXqWou5ZwtKlY_E,2139 +awscli/examples/imagebuilder/create-image-pipeline.rst,sha256=CwiefHhkMXIK8bsfV4H-oMO5aZGATzUO4My7qCySZWA,1643 +awscli/examples/imagebuilder/create-image-recipe.rst,sha256=tVSi-7mTK2LlgFlLOqHyp8XrIjx3NkTPMCDPyo3c6bE,1483 +awscli/examples/imagebuilder/create-image.rst,sha256=2Cblov1TEnU9g71SonEUgmBsegOJmzs7VupI5lRV0ZI,890 +awscli/examples/imagebuilder/create-infrastructure-configuration.rst,sha256=co7PsqCyFji1Cb5CawSvVzeUPjhJPWWh4RIMDBaYIzk,1636 +awscli/examples/imagebuilder/delete-component.rst,sha256=HtZCIFqpcLGpeYXa9EVBF6iuglQ5b4nKz52SyEL-GyI,759 +awscli/examples/imagebuilder/delete-image-pipeline.rst,sha256=ojHGOjghNUfHhhSBGAUH99qcNs_uKciZFpoHaY9hr18,736 +awscli/examples/imagebuilder/delete-image-recipe.rst,sha256=BXeuAubKqRrdQPKm_TZg-QzfFoejJS3S6CPS16yYMEs,728 +awscli/examples/imagebuilder/delete-image.rst,sha256=yjFUVF_nRF--BcjQzjbgVAZxGqoSK7cHApckIJdPMak,722 +awscli/examples/imagebuilder/delete-infrastructure-configuration.rst,sha256=9eWFOt_-iBiIfUZl3QfjOh9BYWCUZMXhyWfWbHuLfuI,842 +awscli/examples/imagebuilder/get-component-policy.rst,sha256=AluHcFZHnn5IefQAi4vtRQb16UgEuWY2pmzHPQQ6sX0,897 +awscli/examples/imagebuilder/get-component.rst,sha256=C3KKK75DJA_l5AfOXKo6m1-Tqh2fjkKpq8Jb1CUWr68,1350 +awscli/examples/imagebuilder/get-distribution-configuration.rst,sha256=lPpHMZOltqvSi7Y2e9W0HQ8HjKb-yFwhYz7Q7qqHTsg,2351 +awscli/examples/imagebuilder/get-image-pipeline.rst,sha256=vYI3txkafgNosVH0fyrdHsmrzd4GBc_dwt6m79owUpc,1841 +awscli/examples/imagebuilder/get-image-policy.rst,sha256=tnIp_vnNCY5_EvskCh0JWjoPuXi-gLzzjYGo_mnhImU,855 +awscli/examples/imagebuilder/get-image-recipe-policy.rst,sha256=0i0Zt7wMH8TSf6xkRV0evs7g9j_KOtD49IH5Ov4Ikik,928 +awscli/examples/imagebuilder/get-image.rst,sha256=ds_3B37QE2BpHqIJXWBweogdPgRsgT5F9VF6nMfjHeo,3354 +awscli/examples/imagebuilder/get-infrastructure-configuration.rst,sha256=qfnimXB1FsB0RKkf_1Tae1THPhKqDhqRKsrDRq9CAVQ,1764 +awscli/examples/imagebuilder/import-component.rst,sha256=zyz_qotKC5wWoZDa8aybAGGS3VrY1G_Dk7I4Jcn_S9Y,1152 +awscli/examples/imagebuilder/list-component-build-versions.rst,sha256=yGlOQxq8KKeFqedsJFx-R4zJ7lLXcfExzhpbmSv-ln8,1363 +awscli/examples/imagebuilder/list-components.rst,sha256=i4gDDpr53UIEeol2zTiQ7Rkni60ouZkmE5K4my4w2EY,1108 +awscli/examples/imagebuilder/list-distribution-configurations.rst,sha256=Q7vHCBTK74zkyXR8PmPElaZ3m2yXQDkXuMRiKxyYzN8,1003 +awscli/examples/imagebuilder/list-image-build-versions.rst,sha256=31iFWNQ5-lUZfqDELpN8jnZ8PmSyN2BFdFCSMjfH8Wo,7263 +awscli/examples/imagebuilder/list-image-pipeline-images.rst,sha256=wC3HXMjQABqBL1vB-J3x3FLsTJqiNkEZyuCV_QIRpNI,2943 +awscli/examples/imagebuilder/list-image-recipes.rst,sha256=gQS6qLI1FGBZeBlWNznAxu359zJQXo0US0ILhsO9pJ0,1608 +awscli/examples/imagebuilder/list-images.rst,sha256=bne8AHJGl2KRcxcDF1BaLq34g3TER-X8l5n43iNEIZw,887 +awscli/examples/imagebuilder/list-infrastructure-configurations.rst,sha256=OuMoOydK4CA4UMd_LBZLML9wmRDNJn9jHsdjGTYtLYk,1399 +awscli/examples/imagebuilder/list-tags-for-resource.rst,sha256=lom7U5SdxzdtNTzBYnMF0VOzqLWRaZgQJ3Dr9_qwIo4,634 +awscli/examples/imagebuilder/put-component-policy.rst,sha256=cqCRA4KTS_uadJtUSezIp4j1MtaaGXDWvfK8_b5_PIU,1424 +awscli/examples/imagebuilder/put-image-policy.rst,sha256=e18Ac_YZDCFzoLUE5sD05TPPeeCYpGcGmMcbJP8u3Ts,1345 +awscli/examples/imagebuilder/put-image-recipe-policy.rst,sha256=wKf7FHOeePIcPcSzfNw_Y6v-x-GyL1uWvv3xVk9oWwo,1463 +awscli/examples/imagebuilder/start-image-pipeline-execution.rst,sha256=LYZvd7yBD-fyorSYFONNJfz5OvHUhaj2XnBXxHRGi-4,820 +awscli/examples/imagebuilder/tag-resource.rst,sha256=417mQDH2oe0TInEWfm9mfDD4Gh3esAqGSx8PcaYy-U8,727 +awscli/examples/imagebuilder/untag-resource.rst,sha256=8gXT3EztRAiquD_df5AjKf-oW9I6TY5RuJHubJrNwT8,725 +awscli/examples/imagebuilder/update-distribution-configuration.rst,sha256=ViAtYK4w3Aqlpj1tj_jTka4z6YfrNuwlxDYkvj66j5s,1487 +awscli/examples/imagebuilder/update-image-pipeline.rst,sha256=90aqE8v5vny4Nu9o0mZXzCMsCZmM3Bfe_Jrhxs575SM,1487 +awscli/examples/imagebuilder/update-infrastructure-configuration.rst,sha256=iHqhsMRo9mYuPalH72DmqGXPhWrUfF3JIj3EzNzS4Ns,1487 +awscli/examples/importexport/cancel-job.rst,sha256=xMFerp-OpkIsGAZw_RDe0Dq1xqMxJgEi_5vdfr5O32U,237 +awscli/examples/importexport/create-job.rst,sha256=E5A8VxoGsBwxZSkq1iEB55IGw1RfnWrIILq14xyvCTU,1561 +awscli/examples/importexport/get-shipping-label.rst,sha256=NeehKsVG7-b0zkxV8aX_F-_-DWWNnjnZDhLDpuH1B0E,947 +awscli/examples/importexport/get-status.rst,sha256=fzbu2AyykFVqLmbNjYhjyqXh4yx07pifDA1neZVEvNE,1221 +awscli/examples/importexport/list-jobs.rst,sha256=ZURf3LLRebhgR9idPmt3TUAcSUqkcJx8QA-vIH1iDD4,408 +awscli/examples/importexport/update-job.rst,sha256=-PWfeHPEyYj5kA8rRaEF4eyEIyVe8a8XEn8I0PkXP34,482 +awscli/examples/inspector/add-attributes-to-findings.rst,sha256=XpFiu1-KcFrgwg3KYpcxrza55eb0dSEXGKd5t-C0WsU,766 +awscli/examples/inspector/create-assessment-target.rst,sha256=tbkUX5gffoDxIt2ov9oMgclB0tAW6DzJJ4xhR_IMd-M,777 +awscli/examples/inspector/create-assessment-template.rst,sha256=Qnbf7_5CX4SWu6n23tzAqvzlBMJWTgIfSJImj86pufo,1021 +awscli/examples/inspector/create-resource-group.rst,sha256=n_IvTSSOb2x2MIpRq8kse4Xg4zYlV1v5xVnR1e7GYGg,585 +awscli/examples/inspector/delete-assessment-run.rst,sha256=QyxVdfD_vshIhLSJjUJUhGfw6bpBi8TQdZN9gSvjNyg,648 +awscli/examples/inspector/delete-assessment-target.rst,sha256=t3xotVmFXNHDGa44DVlyegsDHrDxlurVDFd4APFajjo,551 +awscli/examples/inspector/delete-assessment-template.rst,sha256=XNaim1jS9Q-1-YN3__UOrJD-8sh_pNGONfWgLCa4bOE,643 +awscli/examples/inspector/describe-assessment-runs.rst,sha256=G_trpXTdLIfb6HNGHk3_sadK7_4HGYZ0PdClxXgz234,2099 +awscli/examples/inspector/describe-assessment-targets.rst,sha256=-mZiMooXz4b2RjejfSzx4VMSlaWLcjQv5AxWASDD94g,909 +awscli/examples/inspector/describe-assessment-templates.rst,sha256=95-j5S1rhj3ESCk4dwhx2wfFv2DmonHh9LhYr9xqNWc,1158 +awscli/examples/inspector/describe-cross-account-access-role.rst,sha256=ZdU5c6DgGCcvQSTFAR_7R6trpu519GS1S_Ud06LeAr4,575 +awscli/examples/inspector/describe-findings.rst,sha256=0OCKyjBMBDFu3x7xN2TlshURGCVcs_6VaBPqLen0uyU,1649 +awscli/examples/inspector/describe-resource-groups.rst,sha256=PBy16e7Qve4cqK8R2Fnj0fopZy7RNwOJ3tDxKUiBkUA,825 +awscli/examples/inspector/describe-rules-packages.rst,sha256=M1iprwRzkZw-IQFab5qhiCcWi9HFqkqLuU2lUEv9a1Y,1646 +awscli/examples/inspector/get-telemetry-metadata.rst,sha256=iYMY0Bjkbw7Y6W0O4j_VY5hYqm88lYE2bttvpiUqpJ0,3026 +awscli/examples/inspector/list-assessment-run-agents.rst,sha256=tanEtCQQx7RG2uLGEvz6W4nem8-ib2df2tnJdZjMOXc,6342 +awscli/examples/inspector/list-assessment-runs.rst,sha256=AlB8voQOyX7DAxOlKk1LTvA3wE6xHsWN7wvwKKg7r-o,646 +awscli/examples/inspector/list-assessment-targets.rst,sha256=4oyfreVadlw2ujdmXrDgXNPVOVP5vg2abSXhtwQ8qTA,509 +awscli/examples/inspector/list-assessment-templates.rst,sha256=jkOUTwcgY0kXuduJuJVqH5OYWCJkyL7-qxFy3ImJ3b0,667 +awscli/examples/inspector/list-event-subscriptions.rst,sha256=6xaZ0Bf69cbeuqDqLWAEAr3rLMkNS4FYAJaEZ2z_ma4,985 +awscli/examples/inspector/list-findings.rst,sha256=446BaDoM3Zudqxy8ylh4OlyfVPcigGLFvAj8tCNUWvs,619 +awscli/examples/inspector/list-rules-packages.rst,sha256=vYcXDWZRHHg0T3SjOGcPYzAT3McWXuI8hPpgqbRfJKs,724 +awscli/examples/inspector/list-tags-for-resource.rst,sha256=SffyIGt5VRPQGBTgaNRJau3n-xC48cGQkYjztxWS5G4,729 +awscli/examples/inspector/preview-agents.rst,sha256=zfmZxAKP_oswzj4GUoiSS_MXkiM5zwwLNr9JEwgPtJY,652 +awscli/examples/inspector/register-cross-account-access-role.rst,sha256=DX-FJaw0yHnklgOnTXVA4z0NyfQfC_AtSZdlFYF3aXM,640 +awscli/examples/inspector/remove-attributes-from-findings.rst,sha256=_alBa8MI00VuS4YhTbjvJSc0XZIn04w4hL3bvytEeCY,785 +awscli/examples/inspector/set-tags-for-resource.rst,sha256=pHT_3b63jS0ZL8v8PIDkgMEPer38T_nnJEU9aRKnqVY,710 +awscli/examples/inspector/start-assessment-run.rst,sha256=u3JoZuonYNW1t2pjw_leDrAXjT3e3RMYotiI5X_Be_4,839 +awscli/examples/inspector/stop-assessment-run.rst,sha256=89HBxG3su9OXpjVcPWyyGEsFGEMwoWsRfIDW7BrrIBI,640 +awscli/examples/inspector/subscribe-to-event.rst,sha256=OxTDwBdeLgkZd1ln8ebQyUUb9FrllDiDAr-hiQJ6_W8,744 +awscli/examples/inspector/unsubscribe-from-event.rst,sha256=36FGTpQ1VLkhFWUrbMhJPy8gCFVVOK7VKzavmcceCRY,761 +awscli/examples/inspector/update-assessment-target.rst,sha256=SL0rYQjY5_okzQuqAeLlREiNRl7iKR_iQt8NYjXdAao,808 +awscli/examples/inspector2/associate-member.rst,sha256=Ry01KiCxlQICWNPB81Or42CcPNQXqfGN0FGhiLWJOR0,582 +awscli/examples/inspector2/create-filter.rst,sha256=8CSVl-8Z3P8fnae70C3sK8XunDRxiQ3ZAcD2nJrFvqE,746 +awscli/examples/inspector2/create-findings-report.rst,sha256=CNk6HC5RdLSfKPTknBiP6Hzzmk6TDgE7nFTOJQITkEU,735 +awscli/examples/inspector2/create-sbom-export.rst,sha256=vnwHoZPWeuhZd5GN3KUGiMtVTeLQcRFRH10Czu3j2_s,773 +awscli/examples/inspector2/delete-filter.rst,sha256=x1eb9hcCZ10T6wGeClytdoO9hBYg_hvMnvYRfBBc3Nk,551 +awscli/examples/inspector2/disassociate-member.rst,sha256=JcsfXhdciP-_9YN2iIiuuqHSGiE4ruvX0x_s6b18Le0,596 +awscli/examples/inspector2/get-configuration.rst,sha256=ZQ_dd2RvF5vnQd0A5zt6Bi6_hIGiv-spkNuvmpMjZAI,900 +awscli/examples/inspector2/get-member.rst,sha256=eD4C4MWVuw2A7PSb8T9vtjqoaMuNcjibhW2KitgwtvI,626 +awscli/examples/inspector2/list-account-permissions.rst,sha256=yEWZIAHMgg67k4hQHwe7TZ76i-rmgHOfcmPVHuh872A,1350 +awscli/examples/inspector2/list-coverage-statistics.rst,sha256=5K3tbGanWbRdKFDtoTOyHCFmN0KX-UhtyTLCUlLzLJc,2680 +awscli/examples/inspector2/list-coverage.rst,sha256=SvW290BlAU02c4c7_aRJpbMBoLkp-ked9zZ53rLDLk8,2045 +awscli/examples/inspector2/list-delegated-admin-accounts.rst,sha256=9-9_1Lo0RJx1GCRf8z2CMg2DuaCbVVfZZ4XNKZGSvRM,686 +awscli/examples/inspector2/list-filters.rst,sha256=AfDd72i1uAXjdh4DYlabiJV33hisuMcIePeS5ySl3HM,2131 +awscli/examples/inspector2/list-members.rst,sha256=WMI9mwo0q06ioVYC3xiljT7S-fMCJcaksBJ9rBlBEnY,3307 +awscli/examples/inspector2/list-usage-totals.rst,sha256=tyL9WVGmy2QRfk5lNsqZWi3a2JbzYU425aU8rvhIkiY,2076 +awscli/examples/inspector2/update-filter.rst,sha256=UZC10o7SyeSG4GgPypOzDWDLsDSNRSbzksYiV9Kym4o,1683 +awscli/examples/iot-data/delete-thing-shadow.rst,sha256=jdnhUMLXeMXcGzl4PjKmcOud7BRx_qk3iraLKvh8Beo,625 +awscli/examples/iot-data/get-thing-shadow.rst,sha256=FhtHf_1NbkHeEE0QcuNvScNu6qN7d8tnDiwLIZ69YWc,779 +awscli/examples/iot-data/update-thing-shadow.rst,sha256=dmDYXILeMcvOn-QWUn5wz2LjlKFKIvL-X5g9Kg2ZUcs,973 +awscli/examples/iot-jobs-data/describe-job-execution.rst,sha256=J-XJnsItY62Ublc5KNERMusHPZRFArh2eAzvVCrYIew,897 +awscli/examples/iot-jobs-data/get-pending-job-executions.rst,sha256=M51Ehv4QBHANq_qdyovwQceoVzQrtSrn2AAD0GuEP1g,877 +awscli/examples/iot-jobs-data/start-next-pending-job-execution.rst,sha256=huAMWlFHSyEoj3QeL73t48iOkeSVLksYuCP7NiiHpUs,988 +awscli/examples/iot-jobs-data/update-job-execution.rst,sha256=f1_rOy6bItHJ1mfae3a4resdn5BOK-ULER0SPn6PoCg,646 +awscli/examples/iot/accept-certificate-transfer.rst,sha256=WxFHl2KdwDuLUUDmfY41xPGLICvIzAxlYGCC8lnfRig,615 +awscli/examples/iot/add-thing-to-billing-group.rst,sha256=XcPqbKFRk1sj5h6sjlNwIa3hZFxl0iIxyyAqS-UzCmA,1117 +awscli/examples/iot/add-thing-to-thing-group.rst,sha256=WStQ4_hQCkaQekkmEga03gbiqidDJ959zy5dYidl7Z0,441 +awscli/examples/iot/associate-targets-with-job.rst,sha256=HpXKu_mqa0DY67yqAldpF2DCH4bjkh5aPgSxjgfDbl8,692 +awscli/examples/iot/attach-policy.rst,sha256=KHxI85L20_E1XYH0-P2nVxAWI3Oo9fV-imfsdoaGVKI,1151 +awscli/examples/iot/attach-security-profile.rst,sha256=kD4PNDZ7BJ0rYW4LjHiCUtZU3gg0mgJI2FV4-SdAz18,653 +awscli/examples/iot/attach-thing-principal.rst,sha256=LysCB6N_0o2DWpG9sj_OulUqxBLNIsfDGYs1-xfnK5M,677 +awscli/examples/iot/cancel-audit-mitigation-actions-task.rst,sha256=5NBKtXxpiCI2kGew_CjUzJ3nvPgIBA-rcmVg9bdBREU,626 +awscli/examples/iot/cancel-audit-task.rst,sha256=g-BPwJzgS1Z7wmu4cnsAEpGYQJMzzV4udLoXp1_4gyg,442 +awscli/examples/iot/cancel-certificate-transfer.rst,sha256=37Rs7cUZ0gBszxFJsmcyGuV2x2KsNeCTyizyzUdOhSg,663 +awscli/examples/iot/cancel-job-execution.rst,sha256=gvnyBrQ555mCeBxZXXzuLKn706e1ixNV_b_7Yw3H9FA,550 +awscli/examples/iot/cancel-job.rst,sha256=yI8FjnzUKGsHPqPZITQfBOhPPLK4qyWjbLE9-gdgGd0,506 +awscli/examples/iot/clear-default-authorizer.rst,sha256=4L2uzKu-kDoBEErdni_NL0rmbFjMBr98gQ6bMPdn5PI,545 +awscli/examples/iot/confirm-topic-rule-destination.rst,sha256=2pkHBrNH0BerKpqx_jEKVmgSDfM9FHl0Ie12BXjOGjk,1432 +awscli/examples/iot/create-audit-suppression.rst,sha256=Wd_8DioSYw9JMxepp71lTF3dTNPADneKwn_ofRkVG0g,744 +awscli/examples/iot/create-authorizer.rst,sha256=-VdD1pIZm03_sIXqHK2CsLatkRJtPSBEQUGeeMtPfq4,1278 +awscli/examples/iot/create-billing-group.rst,sha256=aW5c29TisEpgdqlC8Yy8vNniUNsJkEjOnHLwGnXVubQ,590 +awscli/examples/iot/create-certificate-from-csr.rst,sha256=pyngQlK2sQhyc3cSCcGlvBycuB-gFltPrLeAmQHLLmo,813 +awscli/examples/iot/create-custom-metric.rst,sha256=UnloJ4KQkssheQCZsDnaToEDHeR0o_nBQJ4xEFSs9Qk,798 +awscli/examples/iot/create-dimension.rst,sha256=TsAXmra4NGiRppuRwQf1zbuF872d8F3CIZrWNS3wqeY,628 +awscli/examples/iot/create-domain-configuration.rst,sha256=FKly67cMVC6MRNnbC5bFHSZs4w8CyZhbZZMrGqrRX8g,709 +awscli/examples/iot/create-dynamic-thing-group.rst,sha256=EIuUYnVEuRsdfwDH6cXh4rLtW1_QhCub72z5HRSVY5g,933 +awscli/examples/iot/create-job.rst,sha256=pWMn8tSC31v5dDntum77Jcgl_0HWapnEfE8ZMVMdabk,1530 +awscli/examples/iot/create-keys-and-certificate.rst,sha256=4mG2cVRcU9qI6k3Z4LTLCCWWV3pD7j7POplmXR4AKm0,2675 +awscli/examples/iot/create-mitigation-action.rst,sha256=UAXnld1Al2LPjp_8SrWAsTPYlyS0Qer6aW-PN0Y7pO8,1318 +awscli/examples/iot/create-ota-update.rst,sha256=IxCet-b7yL6hcQhf6qyRSCJjGxVsjr-rzbGUDGNs4_U,1813 +awscli/examples/iot/create-policy-version.rst,sha256=aXcyc2LOdjhuAulZa9hXQwW6uxOLzfFgsdOknbSrpvg,1128 +awscli/examples/iot/create-policy.rst,sha256=anldOJGg12vr0p_P2FbA38TCf5iQ8XORwxGdjn0Xls4,3060 +awscli/examples/iot/create-provisioning-claim.rst,sha256=XBsUgPJagprioKjZ276XvJwwp54eioJ5wGMQyTNcNLQ,4396 +awscli/examples/iot/create-provisioning-template-version.rst,sha256=4wKGvwOKWVs2JX4FpnCksMjzWp5m9awCyXLZC0dSc8k,2938 +awscli/examples/iot/create-provisioning-template.rst,sha256=JcjKq1FWlJQ1D3Y7V0HZbZOEnjxtNdhoPLmoROl6Fyw,3011 +awscli/examples/iot/create-role-alias.rst,sha256=zaa9qpScJyot_HKTBrV4rcoXsaD_G6FhHfk7_TvUsN4,587 +awscli/examples/iot/create-scheduled-audit.rst,sha256=recY-0kWuY-TOCO85aW4UbxmjZ3vC4UMXK3rL7z2OtI,726 +awscli/examples/iot/create-security-profile.rst,sha256=VgyNskBurdpta9TaOhLSJaSZM6j7CJI9P4aaRByZSIY,1304 +awscli/examples/iot/create-stream.rst,sha256=gjTBEffb1aO5VnzUIiTm63DsWQ1ph0UbHmPOv0sq-Ko,1353 +awscli/examples/iot/create-thing-group.rst,sha256=kC8dnHtxbUCA8VwPPEY4rZReZRQEM6-wPh-1gqZVivc,1294 +awscli/examples/iot/create-thing-type.rst,sha256=ksBu92xPSAsiiDlcBdA_LM6qbZ9gAu3AnbOg9GGCoC4,659 +awscli/examples/iot/create-thing.rst,sha256=-8q0KJTiUXF7ZcRYWsikTqAEtwyz0iSShaP6iIrqiL8,1259 +awscli/examples/iot/create-topic-rule-destination.rst,sha256=4EgYxNsBYTKcYF-T7rSFOPMxSjBY9Bs9i1VX3K7iAM8,983 +awscli/examples/iot/create-topic-rule.rst,sha256=9NewE0L6meETJzl9-SKwMVIQypiN6cSKR4Dts9cQ6s8,1254 +awscli/examples/iot/delete-account-audit-configuration.rst,sha256=mIr800o45DMZTddWXMcf3BauJnO4wi3wZm7JOS3llVI,617 +awscli/examples/iot/delete-audit-suppression.rst,sha256=QJIGzv4mqEwmJEnF1B00OhOJabgMe49uCAaYfF5c3ms,565 +awscli/examples/iot/delete-authorizer.rst,sha256=tp_gNw5J5nRvodOFn9SS2f6E0zGyuXhcN8A9p8i_f0U,485 +awscli/examples/iot/delete-billing-group.rst,sha256=NYV8vfvH4pfeeaDzJ8cVqxigARfeU9Fhe7JM5jWq3aU,483 +awscli/examples/iot/delete-ca-certificate.rst,sha256=8irH8ypfB_w0JwQ5fr_cVs9uZKrMTmYCdhTaKnYCgGo,472 +awscli/examples/iot/delete-certificate.rst,sha256=sOcS0IWUlgGJlkMtAiyWBLURt04ymxP-0GVDg1nq90U,458 +awscli/examples/iot/delete-custom-metric.rst,sha256=Y18kqZuev862jqr0I8s__Zv_UmFvm6d566MTH59j9xY,417 +awscli/examples/iot/delete-dimension.rst,sha256=d-pbhJcTDn-gb6rH3NqIyYAlQvCBduTBdSQE7VROT2E,407 +awscli/examples/iot/delete-domain-configuration.rst,sha256=WuJD3RnETFULAZ_WHHf7mJ8GnW9qkKeTQMBQfPpMbF4,557 +awscli/examples/iot/delete-dynamic-thing-group.rst,sha256=06L9Jws2TBW-yMusjd9aoaDvXoh5-uktQ63Wxc-WFW4,422 +awscli/examples/iot/delete-job-execution.rst,sha256=8i6Laul-0Kg2_fkg1AQ8b1cHCn486NBxkfN43vPdsQ0,547 +awscli/examples/iot/delete-job.rst,sha256=gWvPm2y105pUZn6Q6HaVW4ge-6G753v71ZLr0NLr9bs,478 +awscli/examples/iot/delete-mitigation-action.rst,sha256=ogA-udPyd1YSvhRyPqq7FZmntd9qyO3iiLR6H73s3Wc,509 +awscli/examples/iot/delete-ota-update.rst,sha256=gZx9L36QhZAcujVHNqppUTYbDsGS-8UZpnbd6PWdrIY,427 +awscli/examples/iot/delete-policy-version.rst,sha256=9v2kYEF4Eox-NKDHdCuHDvzVNcldsRdcs3jwvIqNx8s,455 +awscli/examples/iot/delete-policy.rst,sha256=tgqt7HXDkVGXnq2eGI7gu4uZ3s8QdG3ZQO6ki02-IWg,374 +awscli/examples/iot/delete-provisioning-template-version.rst,sha256=fBYvm-PgzFN7qVPuOR77VtSxvECbkyUmTtdSILYP7MQ,498 +awscli/examples/iot/delete-provisioning-template.rst,sha256=IAWx3ZsUangE3Vdx7IfBsAQUDg2Ap2pVAIpAq4psoss,434 +awscli/examples/iot/delete-registration-code.rst,sha256=XMYZ6_oW8qkHorP4NxF6YTL0-CwfrKv9LUgyCYA3wwg,391 +awscli/examples/iot/delete-role-alias.rst,sha256=68GDVBPh_SkuDJJTaUEKkbKGNFjdJmjOWPXRxYn3XNE,431 +awscli/examples/iot/delete-scheduled-audit.rst,sha256=ixyFN2iqM0lJftanlADrxaeMWrPj4Ohet0zRHmmhEh4,468 +awscli/examples/iot/delete-security-profile.rst,sha256=2KCjEg9dutK18B_H8HkTayag7mNbNipTUelIb7mhBt8,415 +awscli/examples/iot/delete-stream.rst,sha256=akRPpYTzu1p7WAWIVJT_6NDnM_1FrJGugQZ5SMOVd1w,344 +awscli/examples/iot/delete-thing-group.rst,sha256=npRAndrA1Dezb8Iy7AF22TouAb6upYwXhk0gn5Tguyc,452 +awscli/examples/iot/delete-thing-type.rst,sha256=cGAIIY7rw51NCm53nzPZXTuAzSSH_sJlmCpLhO0Otk8,384 +awscli/examples/iot/delete-thing.rst,sha256=wMksPp7Hwq9pIArSlrlcoSXvObkpvRwtlI19nwxXeo4,422 +awscli/examples/iot/delete-topic-rule-destination.rst,sha256=6Vnou_6RlLGaUMNX6o-wgzvlB-9HNEfQbSZJb3KQtbE,537 +awscli/examples/iot/delete-topic-rule.rst,sha256=P8qf1xwBqVNZkSCkRJCnIv3JX4B_jpp7KBj9wlIjwus,362 +awscli/examples/iot/delete-v2-logging-level.rst,sha256=sBL0Bj-rwV9132AGmpkjXiIVc94JD560p3l2z1qbmFc,303 +awscli/examples/iot/deprecate-thing-type.rst,sha256=En0oxQepeD8th-53W9n03zaIgXkUsNWdoXbh90YCtYQ,806 +awscli/examples/iot/describe-account-audit-configuration.rst,sha256=QHynlco7ZUMlzHxekB1O5Hb_H75zlLLBFuVJFpCDuAw,1898 +awscli/examples/iot/describe-audit-finding.rst,sha256=5IQT12YaBz1cooCvg48ONsf-ayY-EhwwdqugwxChsqI,1672 +awscli/examples/iot/describe-audit-mitigation-actions-task.rst,sha256=y3z0q-R1gtv9Ds9xCPcRLtnlS3JN6YpKwbuIQe4wdZs,2058 +awscli/examples/iot/describe-audit-suppression.rst,sha256=3JYy6dYaV1opN8JPDR1mF5RONJFHvxq7LWGLqTO8fvM,1251 +awscli/examples/iot/describe-audit-task.rst,sha256=KLxJSUKTwlJ4Pa_sEYFtNL2-3uXNHfSGry2_nRuaQ08,1725 +awscli/examples/iot/describe-authorizer.rst,sha256=aYvf5S8Gff3puS5xyyiR3vSoAdASN4PDW_P8LieeGxI,1431 +awscli/examples/iot/describe-billing-group.rst,sha256=1OsyV3Y2FtyLH3-8fJjaCFF2YZ0B2Ib0UxBc_8kuT0U,746 +awscli/examples/iot/describe-ca-certificate.rst,sha256=LP9NypX2mJCMnWrZTXeLzQev9pCZ55HWNqRhisxeeto,2264 +awscli/examples/iot/describe-certificate.rst,sha256=ww-bFAbLe4NtKg2douDBWruVPsCE_JkTXhkZG0a_el4,2198 +awscli/examples/iot/describe-custom-metric.rst,sha256=uLr1JnbDbddlHekj1ho4Dea0F2O-rYRCckbvzaJfGOI,787 +awscli/examples/iot/describe-default-authorizer.rst,sha256=ngVwpu6VYzmia8mn7KxgSdwDK9iZQoObbRlr5knc9h0,546 +awscli/examples/iot/describe-dimension.rst,sha256=O-pJJljoCWlNwsAOrAle7LYjFUoILBNA4keUk6ePBwU,756 +awscli/examples/iot/describe-domain-configuration.rst,sha256=W5w6HijnKpDGX6xWg_fghRMEuusbkqdp2Az5QiJrikQ,953 +awscli/examples/iot/describe-endpoint.rst,sha256=xph4ulYm-labQswVP4SsvgViyfWmMwDd2MmskfBCvvE,966 +awscli/examples/iot/describe-event-configurations.rst,sha256=rAYpmbF0_sDjKfe0kRcydlHnuxXA3wbhKXxJEcLj37s,1339 +awscli/examples/iot/describe-index.rst,sha256=ngeapfGr--I8IxnBeyBMcKvz5qHL-NwUa4-4nS9trY8,532 +awscli/examples/iot/describe-job-execution.rst,sha256=f2ChTJQr_Zj3CstnGOMDSfseAtwY19DEkswXfMVzwx0,835 +awscli/examples/iot/describe-job.rst,sha256=UsSktiOfT9gLe8ReoWK9NNMFkjI8rtk9XrM6hZ6Jbbw,1379 +awscli/examples/iot/describe-mitigation-action.rst,sha256=FMcFEYI718Gm4bn7m21UFX9Q27NRbC6MZ9FDjRLpqs0,1292 +awscli/examples/iot/describe-provisioning-template-version.rst,sha256=Mhhf3Pscz75YIYToRfSGXAKLIV4elUjWlVrsSKH6zIg,2498 +awscli/examples/iot/describe-provisioning-template.rst,sha256=-3-vnaUxGbVTNJ745JwVaZfiBh4OcwRtc3U3iLYMoCE,2738 +awscli/examples/iot/describe-role-alias.rst,sha256=fk5d5shdtw4Dkx--2y3GvLmBNE7yqazSjpA07q-gXMI,831 +awscli/examples/iot/describe-scheduled-audit.rst,sha256=tWsiLCcwCot5peNxrjqaTHcloZA96Hx_AUty2gffPvI,1077 +awscli/examples/iot/describe-security-profile.rst,sha256=qC_5FiCiLVi95DO-BwjMtP136dLouq5qyX1m09yjru8,1794 +awscli/examples/iot/describe-stream.rst,sha256=I1SdnZ-rLBS94X0EPq6wsRNsejmVaoPMIY3AYtD9o-4,1117 +awscli/examples/iot/describe-thing-group.rst,sha256=h22zRpPB4VlKqMFV3T-PEqIAtRanJtX6QIZJJr0iwfo,1021 +awscli/examples/iot/describe-thing-type.rst,sha256=QS-Xe58I8dxYAJx1atVvZ61mQTimSE6W4m4oFlFMYy0,921 +awscli/examples/iot/describe-thing.rst,sha256=zUts7tCUh9gD98FrUvjFbTZMvBKGV6L7acCL-wI_u2I,829 +awscli/examples/iot/detach-policy.rst,sha256=oevLq9Bewz6fkR1mAShIOEsY3OKUbUKeSOLVYmxFe8Y,1019 +awscli/examples/iot/detach-security-profile.rst,sha256=7Zbv5yKU-WHwOhxiCw8ssBUHP4z1jif23lx1DbtlGm0,617 +awscli/examples/iot/detach-thing-principal.rst,sha256=1N9LJNcCg5Beo-zion2OkaYylTFCVKSiRMkxgeG5rag,597 +awscli/examples/iot/disable-topic-rule.rst,sha256=MDyYcPoIhZmzMINUKGDBeslZezonz0Bym9JD61iLt8Q,390 +awscli/examples/iot/enable-topic-rule.rst,sha256=q1R0Sbf3VKm5uOYA7pTfZ1c4jm9fDMDRQDESVPnGwoo,401 +awscli/examples/iot/get-behavior-model-training-summaries.rst,sha256=U0ptcF3jbU28Xk6EX8ybGs4D2KJq9tWwYTp4_XguCxE,2282 +awscli/examples/iot/get-cardinality.rst,sha256=besw_ZnAegLGSHo3NFE85vSxd0SHRjkB9KXaCygKyoM,1882 +awscli/examples/iot/get-effective-policies.rst,sha256=4WPL6KlrQMQp61Rm7KIYWRdOeyDjfpRupD6FRJRV4TQ,2427 +awscli/examples/iot/get-indexing-configuration.rst,sha256=9LjKyi1Nbpg3lA06-2rDwJ3Xe2svnK0Ef0nkNRWMtl0,636 +awscli/examples/iot/get-job-document.rst,sha256=PDBjtOID2H150CWVfxh-TwjAcuPLtFwVwGQzLlQo78E,535 +awscli/examples/iot/get-logging-options.rst,sha256=vmKXD8BHr4Ww2HZ9ohte_d5Poy78fQCSttINo5DoJuk,379 +awscli/examples/iot/get-ota-update.rst,sha256=CtPmD5PE92suGOht0mTcU-IW1xhL5zcKWLCHajzk7xU,1866 +awscli/examples/iot/get-percentiles.rst,sha256=CoFRjXaKbkHIcHg_XZCc2YZ_hIphbIlZUlCsJ-03mPE,2266 +awscli/examples/iot/get-policy-version.rst,sha256=6-2aOhwmVMRy2lbwrho88pcfxBq5OPK6tHV2axdcu5I,1006 +awscli/examples/iot/get-policy.rst,sha256=kd7FUR2ZgkSSnzs2EjGBjg7GmpAEnXYwjA-tWM8fKQU,940 +awscli/examples/iot/get-registration-code.rst,sha256=4YFZKjUIUj8Hn6njYZpHRlXMPK0xuujAlcat1GtlgpE,490 +awscli/examples/iot/get-statistics.rst,sha256=476zisRik8z7fLY6MBlFrDenGXjMTn3sdSJb9_a8m8Y,659 +awscli/examples/iot/get-topic-rule-destination.rst,sha256=8-9i_h8o7uvTjEB29x-drKwxmHaF2Ttm1_8CbmnxuEg,813 +awscli/examples/iot/get-topic-rule.rst,sha256=EpJESUiW2TiP3voUZCjSGbQDUQZIAfKYVFEoMXkjV2Q,1304 +awscli/examples/iot/get-v2-logging-options.rst,sha256=dZhF8u3LpFClrzekEkK9GWBpfKVkNUsKnJMcr8R8ZVo,425 +awscli/examples/iot/list-active-violations.rst,sha256=pzlvL3los3y4KiU6GBOcQhetEjbfu41o4jP7CVCI1-c,3978 +awscli/examples/iot/list-attached-policies.rst,sha256=DDPe4W7A3ddSa364xIqhHPViCwjd7WiLKv2gdTOQ6Go,1450 +awscli/examples/iot/list-audit-findings.rst,sha256=KLOUsH5WQdpwBST7StMOAdkuVslgSqGGUmWR2e8e_X8,6234 +awscli/examples/iot/list-audit-mitigation-actions-executions.rst,sha256=oyqDfte3VxPGvei5Sxc7dseJeKCOyRIMlLmD0ShKRoo,1312 +awscli/examples/iot/list-audit-mitigation-actions-tasks.rst,sha256=OfFKc6oOCc-qbHjpIVF9N0KNVLA42l7m8PwxlqZt3u8,853 +awscli/examples/iot/list-audit-suppressions.rst,sha256=km15BJQG32oPg6lKF1wADAhEL2gXNcviWVnGe7GilfI,737 +awscli/examples/iot/list-audit-tasks.rst,sha256=yKBv1PLOzII_pbtxeQjPsbE2vgqNGR4nkqqjdoEa9pM,2124 +awscli/examples/iot/list-authorizers.rst,sha256=qtmhZWWji9YnyTXd1r-i9-cfuirKPGPferojYwyYB9o,928 +awscli/examples/iot/list-billing-groups.rst,sha256=s_zb7v3loyALqpqQQG_rWdf-ZoihRSxPf54ZXfgpX1w,610 +awscli/examples/iot/list-ca-certificates.rst,sha256=quWklVGHT7QLMXbInvvv7WAe3wfNDOtZesif5WP7Mj0,796 +awscli/examples/iot/list-certificates-by-ca.rst,sha256=2QRj2nFZhsW4JOMrToSuVZN5a-XO689rZxWBnXnGzjo,933 +awscli/examples/iot/list-certificates.rst,sha256=O6coPFEdha51RjROyEpKJyg7yBPTItVCQXCuPS86EyU,2630 +awscli/examples/iot/list-custom-metrics.rst,sha256=rXPWBf1ij5nUPH-bfxfVjVGNbkhilU4usj34se70dvc,453 +awscli/examples/iot/list-dimensions.rst,sha256=nMQoJUfSs_KyhD7rAGDboTcbMYtaGKzzHcwIvsZR7I4,527 +awscli/examples/iot/list-domain-configurations.rst,sha256=Nt9Q_ivQtsvwsZGj0EBNL7m9rOqv95QpsRDuTseAgMA,1818 +awscli/examples/iot/list-indices.rst,sha256=jbN1YAau6Oc6r7wt5EHfaoRQGTKzpTiGWZ1Mn34hB_o,482 +awscli/examples/iot/list-job-executions-for-job.rst,sha256=sYN2Jy9AyAh2ZPO7wOqp1rnlNboIPCYP-qOD5nLN1S4,916 +awscli/examples/iot/list-job-executions-for-thing.rst,sha256=u0XKgTm2ucbrrut6X5yDDBnpGT0cFVxBkL7O40yQ8jQ,826 +awscli/examples/iot/list-jobs.rst,sha256=9PukNTdM4aNu4mdu2u5ZiKkzpHAhqIk7X6ipjqG_4eg,714 +awscli/examples/iot/list-mitigation-actions.rst,sha256=fQ5gg_wwJkeKOieCnwSW5qdVVSb46IheIU9KGT-om-8,2194 +awscli/examples/iot/list-mitigations-actions.rst,sha256=bc-jpw_d5TTu6bx5OtoDbNCJmwtfaIqGpV4FwKTucqg,2195 +awscli/examples/iot/list-ota-updates.rst,sha256=9ySmSWddXFIfWsbk7ZlblzoQtEct-ozoTRsT4ODSVNw,574 +awscli/examples/iot/list-outgoing-certificates.rst,sha256=9et7XaXfXHYP61yzZFq5-AdLhEuiXdIvjSZHUsI04Y8,971 +awscli/examples/iot/list-policies.rst,sha256=844Xk3uK0ogVIDUOLabuljmLlaoFIwFX5OecPRLRSag,909 +awscli/examples/iot/list-policy-versions.rst,sha256=DEayDXjCwV7w-Aei_tjvMl8_ASKRFF7bPmBYgHnpyIQ,759 +awscli/examples/iot/list-principal-things.rst,sha256=KwLpAdFFAPnL544L84tuhah750pwoMot3lhGZa_OuzY,594 +awscli/examples/iot/list-provisioning-template-versions.rst,sha256=dFrfBZr8SFDcGiGcfgWz015D0xS5XrtJzsV-M7LLMpk,801 +awscli/examples/iot/list-provisioning-templates.rst,sha256=fUAlDZwu13Fq_U7CQSgHQ-VRtWZNAfQZ_C-7EwdCII0,813 +awscli/examples/iot/list-role-aliases.rst,sha256=VsyNWlWSCkzc4T1dujsrFpnynqa6r8DNU-zTbmpcIUc,464 +awscli/examples/iot/list-scheduled-audits.rst,sha256=ZnDEwxhtHnZ9TmPYwaYfjbMCrAN6sxZxdIlZtYIvf5M,957 +awscli/examples/iot/list-security-profiles-for-target.rst,sha256=ZrgdN5fBBsQyPk-BHxupng94cQ8DoOKPaRqUkOgJmbQ,959 +awscli/examples/iot/list-security-profiles.rst,sha256=qC-8dsBh8djKgi9O4KKXkb9Uk_MwPoznINiM0pXrxUM,619 +awscli/examples/iot/list-streams.rst,sha256=Fp9HM6CWilZaISCwpESpW45MNWNOZXA7Aj8Rwb5c4Cc,911 +awscli/examples/iot/list-tags-for-resource.rst,sha256=R3v_LVehHKF3j8dHSUrV_s6zLFl16o3rdkitO6sT4OE,728 +awscli/examples/iot/list-targets-for-policy.rst,sha256=HWL3zCtfGGwLJpmu61Q4QQEu4E6x-f9urnn3hFrtDMU,718 +awscli/examples/iot/list-targets-for-security-profile.rst,sha256=A_LQ7zZaCLtWwRlxFRjLZPySTL2b4-C8ZobC81ODt6M,777 +awscli/examples/iot/list-thing-groups-for-thing.rst,sha256=IaAVYkX9U1SRCum2Mo_YMTvrOLB-JyYf-yeQ9qVH1O4,763 +awscli/examples/iot/list-thing-groups.rst,sha256=RyjA9SoXeSXzSJgW3XoI2gACXymb4u6tInH0UM_RSfM,724 +awscli/examples/iot/list-thing-principals.rst,sha256=aLVlYAU_p1jhWPfhD-glioqQV0veEpkI-7Su7_9A8Ms,682 +awscli/examples/iot/list-thing-types.rst,sha256=7KgN21owuTNt39MUMc9juYgX_KFTgxEBrh9gvb7rhL8,944 +awscli/examples/iot/list-things-in-billing-group.rst,sha256=aCKlQRYYX5lL94hmpQDjqSFfVbsDq82RVukKxQQixJk,521 +awscli/examples/iot/list-things-in-thing-group.rst,sha256=yMZusVCv2WEOIjcvpFmhcb4Y3KWv2hQBh3XNaZtsQ1w,474 +awscli/examples/iot/list-things.rst,sha256=j2aTQzNg6yp86miZkCI8UbRfmsclcWeBvNO3xSq5RgM,2737 +awscli/examples/iot/list-topic-rule-destinations.rst,sha256=0-PiVmSZutwscQUzLbKzcsif33Hn6aFBV1S1MFtIxL4,790 +awscli/examples/iot/list-topic-rules.rst,sha256=3SqL_v8j5Rt11OncTvGv8jEP9S6pBiJyZ8C1h7SVH-M,1052 +awscli/examples/iot/list-v2-logging-levels.rst,sha256=Y9tZ_ZtCJK9fE6GbD3fpCU2SJy04BkGQA0GSB9WIqrU,476 +awscli/examples/iot/list-violation-events.rst,sha256=GuwnFpjJfpwzFQQQmuGOc_3GK3UBIsveOSzLFjQ7dUE,4258 +awscli/examples/iot/register-ca-certificate.rst,sha256=T8untwbj8Idz8XmHP8hkYtNI5xD_GtXZTRanIvjpOnA,848 +awscli/examples/iot/register-certificate.rst,sha256=qpUCM4ZBKtuXXzJJjZbISVhkedwJ2Ejc7_s4GL81UDw,944 +awscli/examples/iot/register-thing.rst,sha256=TCGLFvKY8AAno8SNuKDRJD8tJLn_cNUb30vGnr9lLyc,2752 +awscli/examples/iot/reject-certificate-transfer.rst,sha256=-R3v4sYJUX__OnYi8Es0CxGRtE-fzdqDfCguZ5m9wEA,542 +awscli/examples/iot/remove-thing-from-billing-group.rst,sha256=gvg4RUp3nZFZsXEbWUjdwYCdXIdkTFg20aYRAiP12Dc,484 +awscli/examples/iot/remove-thing-from-thing-group.rst,sha256=7JrBKwQO9YN1vzvqYIgpbByZSZD6rzCukpK7yWm8T3Q,447 +awscli/examples/iot/replace-topic-rule.rst,sha256=FBMkbpfes9mc4XFwWwt8j8fzmLjd__6CGAwnde8lzkY,967 +awscli/examples/iot/search-index.rst,sha256=FKCB1ZDgJA39xwQwU_NdmAaa_L0d-cuWMi_fMPfAfxY,1806 +awscli/examples/iot/set-default-authorizer.rst,sha256=2cNbceaBiQUTIt3SUN6lzgvwvAHfHsiy4TjB1YivKlw,580 +awscli/examples/iot/set-default-policy-version.rst,sha256=IKe84T4OEE933d0h9dIoM2k9niItvuR72FM7PeSmY9w,337 +awscli/examples/iot/set-v2-logging-level.rst,sha256=petKa7dkla4k9b3yE2ti1zunRvowuxL5u24NEH_vDFQ,352 +awscli/examples/iot/set-v2-logging-options.rst,sha256=Wy2HwI4deopuOcPXIogOjgWqv9RtHuQ4_kSjKWZaEFM,364 +awscli/examples/iot/start-audit-mitigation-actions-task.rst,sha256=RFyPrx9Qrr60y4r0iEGULgWVZRKbPGuT2KL888Ivxec,888 +awscli/examples/iot/start-on-demand-audit-task.rst,sha256=v3Rt7yMrrcw7U43LzlfWdNPE8pTDCBBDSjUST2Y78NY,577 +awscli/examples/iot/tag-resource.rst,sha256=MBXkfNFdzcOKY0hngNPSYobHqtk6lVCG4e8NScL_qQg,553 +awscli/examples/iot/test-authorization.rst,sha256=VOV9mqzXoElmUGMrOhThZPoxVzQMNKq-Keij7Jx7cBY,2077 +awscli/examples/iot/test-invoke-authorizer.rst,sha256=LSa4la-lTVZgtRYiUVhZPGkkvRR_CDDIQCb-TsEx_8I,1144 +awscli/examples/iot/transfer-certificate.rst,sha256=CAhuOsBzELrsnZ5kq7u467P9uK034LHEOQjywmR6to4,763 +awscli/examples/iot/untag-resource.rst,sha256=9jkUPb0hsG1093Pz2IRcDYy1iLAtR11RJGenSdsSmpU,378 +awscli/examples/iot/update-account-audit-configuration.rst,sha256=-IHCrHpQDqt08VVa0hfVqPFS10Hm02PvihRT91l1x6A,1281 +awscli/examples/iot/update-audit-suppression.rst,sha256=kcpdjKdw1Z29cQWk_KhLNxmB45Bt5bYkHpJHz1oUGvA,635 +awscli/examples/iot/update-authorizer.rst,sha256=-KsbBb4ERkuMxefsHC8kiM3cNf6MroDQvr1eiOlYXpo,559 +awscli/examples/iot/update-billing-group.rst,sha256=LA8jYEre_O-7yd7LdOW8a6Oif6zCb4RHhVpBr-nWGZk,537 +awscli/examples/iot/update-ca-certificate.rst,sha256=h4Cq2Dm9cGUlXRWywc7f6NzAYlU1JsmsL5yw9ioDVNY,516 +awscli/examples/iot/update-certificate.rst,sha256=bgrBDpwKtlzj2zLoUt7oY0Wpso4CxI-20laMf3rH2Ic,494 +awscli/examples/iot/update-custom-metric.rst,sha256=M-5m_L4CTixyUM5H6mQs-mrdc6_ACPKFVRsB0tKaOPA,875 +awscli/examples/iot/update-dimension.rst,sha256=kIgP3e2AT90FmUgHi7Ns1gf-WGwF1g-hVanznfJiSfY,809 +awscli/examples/iot/update-domain-configuration.rst,sha256=aFjzLJEStxfAZPbKBMEBRd1Y5io3dCh6B2jFr1mz6wQ,696 +awscli/examples/iot/update-dynamic-thing-group.rst,sha256=0KMlfeIt7bGCQyTwYrf9mBmIodX6jFTmmPfnxYJ3WiE,692 +awscli/examples/iot/update-event-configurations.rst,sha256=G28jdmc31YZjz5w9CNkiZxRYQvtShUqFYEqDyjcx4gw,504 +awscli/examples/iot/update-indexing-configuration.rst,sha256=-loUilsq7IFxANEUsFSFihuSo5pecSg2rvO-l9133oQ,578 +awscli/examples/iot/update-job.rst,sha256=QKX9PEsG5Isg9ZFUDmB3cpCjxgruDpW53Zbixsv9_aY,1377 +awscli/examples/iot/update-mitigation-action.rst,sha256=rUIv-1gPa0jIrfvtVsRlaNH_yIm5ko_1KtmiqAd1Yhc,1034 +awscli/examples/iot/update-provisioning-template.rst,sha256=YDwc-zYzbfLceud0XM63pU6uNKcDxF56GNoMg1qUDsk,663 +awscli/examples/iot/update-role-alias.rst,sha256=haL8tLdct-o0Vq-rkhARQ0BfPOzw1etdoXpzJuKA2Q8,559 +awscli/examples/iot/update-scheduled-audit.rst,sha256=uPC0tvZ8UToXQbzq1s2p4zFKpObVgKi7gHEimxhbFx0,678 +awscli/examples/iot/update-security-profile.rst,sha256=JJ8GNPEs0KZqi7VyQYSYS8Ma9f2S4NrVBQcLVPbp1nc,2455 +awscli/examples/iot/update-stream.rst,sha256=JNFHLttJzgD-33zO2M_1Ej7Jxefc5HfZRTgdCoKNlxI,1134 +awscli/examples/iot/update-thing-group.rst,sha256=-A5ZKUeez67kUhkecys2XUm9O_JwIeEyRRPJeZNZ4zA,617 +awscli/examples/iot/update-thing-groups-for-thing.rst,sha256=jTXLXBV2dRQxUKThY6cLCi2mi5cDyMsjmdqZcbhHDmg,617 +awscli/examples/iot/update-thing.rst,sha256=w7hcFXqCUye-XqXW3gtI88Q1hKp4A4eDQ2B7FvvWmFQ,676 +awscli/examples/iot/update-topic-rule-destination.rst,sha256=DInwqapqmXf1GrI_FwkCEngua4dJiuefL1eyHFt2B5E,1758 +awscli/examples/iot/validate-security-profile-behaviors.rst,sha256=cCYl6rgH0h_vKxPdEn5oog_mCcg7UWdAbswrKru7J4Y,2068 +awscli/examples/iotdeviceadvisor/create-suite-definition.rst,sha256=LWONVnQQch5wBP4YGdoNMH_BUMgDoeLDGXUE-QOWXBg,2622 +awscli/examples/iotdeviceadvisor/delete-suite-definition.rst,sha256=NZot-tQiV187jZS3jWJVbaMOesucUjtIab7w3_NlrNM,506 +awscli/examples/iotdeviceadvisor/get-endpoint.rst,sha256=dVojmZdqjWc21fQoQwDpESV2UWZ_8fuEA8tbstfTfo4,1064 +awscli/examples/iotdeviceadvisor/get-suite-definition.rst,sha256=RlsPupD1GXbdtdRgoVJ0_K_JsaRJHft0GnYznS9gEUo,1585 +awscli/examples/iotdeviceadvisor/get-suite-run-report.rst,sha256=jU-HZ58SEwIsTFz6yIsV9ipwQ-KXY-xFZtX2zH0Ec1s,848 +awscli/examples/iotdeviceadvisor/get-suite-run.rst,sha256=1DZ6JEvoCHEs1F1_8A8jmfOkNPBhg97wK__7eaXfDSw,2333 +awscli/examples/iotdeviceadvisor/list-suite-definitions.rst,sha256=HqM39doGQFb3HfDbwWYCZkfYHl4hxs1uWGDw4xC1mLY,2390 +awscli/examples/iotdeviceadvisor/list-suite-runs.rst,sha256=NtLCPa0OfPZqxFoRrlRLFEv8h9x5m-KkeZqvAkynjFM,2579 +awscli/examples/iotdeviceadvisor/list-tags-for-resource.rst,sha256=hNYLer6iF1pFiQO594hKBbgPETgNu4bUR1S-PU-01LE,946 +awscli/examples/iotdeviceadvisor/start-suite-run.rst,sha256=LtTdCBjsb4OQWOvaO-Ejru8T1XKmvnXI8PShaUQ8Bbw,926 +awscli/examples/iotdeviceadvisor/stop-suite-run.rst,sha256=jXB7SEHvsRdp1H3fpdvnAp4lhbsUDgdmmZ3dLboGx9w,618 +awscli/examples/iotdeviceadvisor/tag-resource.rst,sha256=bk5KQVvfoumoL1OqD-XyoiKwioYCGz0kjckwSuXSA5s,958 +awscli/examples/iotdeviceadvisor/untag-resource.rst,sha256=mi6b6Sn-qWBlOh7v7onxZBXn_5Bgct9h7oszU4cHpnw,937 +awscli/examples/iotdeviceadvisor/update-suite-definition.rst,sha256=PXZZHZ2OqAd-oMlakUVxvOO_vQsMQ2rYTifs062euC8,2384 +awscli/examples/iotevents-data/batch-put-message.rst,sha256=aWjeL8Y4kSZmxAMdOmMjGE8Dn-EGOYZs9nxwuounQPc,1220 +awscli/examples/iotevents-data/batch-update-detector.rst,sha256=ccFiwhSr2RYMh-lH2r-N94-FalwMpp5--e9JGSNy-ZM,1212 +awscli/examples/iotevents-data/create-detector-model.rst,sha256=8DQNJwhZPAe1mbIc_LsvC1vBqtMTM6Hk0FroSyZPdfE,6120 +awscli/examples/iotevents-data/create-input.rst,sha256=IFTVxlZ_SJk92TNE6oYmpfyZJvxKNks3xgizZlp8Wv4,1094 +awscli/examples/iotevents-data/delete-detector-model.rst,sha256=ABHpJM3NCUN23XQk52NJPlR5NH7uNGzhFZ-DODasoQs,512 +awscli/examples/iotevents-data/delete-input.rst,sha256=GWM3gl6h-SNRhuboRKaafDNL7951PPerPslnT4YOucM,385 +awscli/examples/iotevents-data/describe-detector-model.rst,sha256=lU9D6dE4WR4JBI1P7ufqOkEdwDy5YqAHT_uDJj_NJV8,6754 +awscli/examples/iotevents-data/describe-detector.rst,sha256=GQc-hfMtMItLdNSNvm_JGT5jmAyFcoaqu5HZ1scIw0s,1087 +awscli/examples/iotevents-data/describe-input.rst,sha256=rBBydNm02D7-7ArKEhpHquotttRkCAbHcehJmonPx7I,1131 +awscli/examples/iotevents-data/describe-logging-options.rst,sha256=UZjXLNcbRZrWFwao94ABz6OptrzsOOd1dTY04fSoELw,611 +awscli/examples/iotevents-data/list-detector-model-versions.rst,sha256=C0mczzhFWMQgfXNUNkg1VfLHhrIclD0h0Mdv9CCrzjY,1095 +awscli/examples/iotevents-data/list-detector-models.rst,sha256=0C3BNuoHG73wieX9cPOtjoVwK-uCr4MkaFUAvjh9UFc,738 +awscli/examples/iotevents-data/list-detectors.rst,sha256=cGXftSBONeJW0Q7TKUmOeKP8g31WYzJ5gTt0Ias97jI,868 +awscli/examples/iotevents-data/list-inputs.rst,sha256=6A1k_pPDM3WnlTkicwh325q0MVuNBHbz-9yz6VDCO40,648 +awscli/examples/iotevents-data/list-tags-for-resource.rst,sha256=VJsWvGEorLExc2eEIh5JIFbY0-kDa52qjapo4G-OBUg,648 +awscli/examples/iotevents-data/put-logging-options.rst,sha256=QyikXy-HsB5gAuuVaD9xlV_WZTVCx2_wkRSMqUecm7o,1199 +awscli/examples/iotevents-data/tag-resource.rst,sha256=1nfQTmzBWmOdsuRYen8GfBfG3V42rNbjxyqqQyIzy-g,773 +awscli/examples/iotevents-data/untag-resource.rst,sha256=xDZ5NnZpzsHHxRXKuD79iTjHwWDDE3f96kUrv5I0JQ4,661 +awscli/examples/iotevents-data/update-detector-model.rst,sha256=FBd0VW-r5m7wFiZUuNmW3QkXehXah4y3nYrMvUkiGEc,4531 +awscli/examples/iotevents-data/update-input.rst,sha256=dFiD6ABDK4Fhho_Iq41Yj10wQ1g4BAmmV2aHPLGaGLg,1083 +awscli/examples/iotevents/batch-put-message.rst,sha256=rGEka8QJ7ONSTDgOyGtzHxg-jM-JTRgeO25O_t04XQs,1151 +awscli/examples/iotevents/batch-update-detector.rst,sha256=kTeBbiUCJejf5yoVxEEmaoMbvYNRyB5AXSN5pbwsKlU,1192 +awscli/examples/iotevents/create-detector-model.rst,sha256=TpZNDzky0CrhtP4qB9Ig99z7aKno0awSzpdpfy_LwQE,6137 +awscli/examples/iotevents/create-input.rst,sha256=O8wHEL1zb0T0sKSfsKBSpufDFAdKfmeJPO7ZNXPJu18,1044 +awscli/examples/iotevents/delete-detector-model.rst,sha256=s6bIjzxDBEUb5n6VDYz3_NlOcuRrdsx22cCX1Ox_SrU,482 +awscli/examples/iotevents/delete-input.rst,sha256=adc6Gdm-AX7TkD5E6gRTQANSmiCTiE0sm-sAGL83gTg,356 +awscli/examples/iotevents/describe-detector-model.rst,sha256=o4DWgd6ioP7zt5t9jfu4fcPtn8exFeW7tw_16xS2JG8,6735 +awscli/examples/iotevents/describe-detector.rst,sha256=CeilKnUrxBe6ff_u_Kzpg_T3JiOxkKHz1fNebq0kiFU,1054 +awscli/examples/iotevents/describe-input.rst,sha256=Cy1tjid4eEb_mqYDZR7XQdFuvgaLjk5Gxs1Kt16KilU,1100 +awscli/examples/iotevents/describe-logging-options.rst,sha256=eHd0bQovqnsgZJft67CgQSDh445xdSSB92XdVutlYV4,588 +awscli/examples/iotevents/list-detector-model-versions.rst,sha256=oNA6Tt_gEY0q3OhFE3VWP-0mkQV9J2Gkeam9WvLWY4c,1056 +awscli/examples/iotevents/list-detector-models.rst,sha256=WupxaRRNLD--9ds4wa8xpP3_xxh--BmQbClxDBMVCxg,698 +awscli/examples/iotevents/list-detectors.rst,sha256=Rb_ZugYB5pu_NZ5sj_pcbTPWvLw-XTjBwRs_0ZtkaGU,863 +awscli/examples/iotevents/list-inputs.rst,sha256=yV6k05kdIsj-4FFBmsHMwNczh-QjkzJtR_OzOLuTzFo,698 +awscli/examples/iotevents/list-tags-for-resource.rst,sha256=deZW4U-p5VgadzQ0eHEvQUGkI8dDcs9CWOXrGIX3OoY,618 +awscli/examples/iotevents/put-logging-options.rst,sha256=PmcWge28SE8KtQa6kuIw3T90ed8w_t8MKm6vBq98LWk,1161 +awscli/examples/iotevents/tag-resource.rst,sha256=hk60rb6GSrCbbagYvv5fRQ-9r8Ef6rk3IgrQf1HNOMA,724 +awscli/examples/iotevents/untag-resource.rst,sha256=dWnIgzxoKyrvfb19_QXEORdxLsG21MZlQjko7NuhfsQ,500 +awscli/examples/iotevents/update-detector-model.rst,sha256=Jwp1N4yAybfrpSukelCmyvpjmGSBUE-30_KGq7p_j1Q,6160 +awscli/examples/iotevents/update-input.rst,sha256=eewIfllrv--XtDl0-lQOPfl5i2f0QX4UgdvJKv4pDmQ,1092 +awscli/examples/iotsitewise/associate-assets.rst,sha256=Id_Xj3_MG40MOVbFOjSjB1VwgqRfuRG3KT1nFRD9i0w,678 +awscli/examples/iotsitewise/batch-associate-project-assets.rst,sha256=NgXh3W2WMfbNSfQ3Mkv1_HWp0JCCZi5Dk0TkH86FVzw,557 +awscli/examples/iotsitewise/batch-disassociate-project-assets.rst,sha256=LBL0k5wNe4KivXOLheKs87ZN2Vu6-0K71-e7ADgqzkc,573 +awscli/examples/iotsitewise/batch-put-asset-property-value.rst,sha256=D00JYJBsREykZ5QJZfgZ8HiIU9xHbFlIgoimJsXABTs,1760 +awscli/examples/iotsitewise/create-access-policy.rst,sha256=nXnc020MPTvm5i3T1XDPMTnB-HvRnLLPYfSKwZsF3kw,2404 +awscli/examples/iotsitewise/create-asset-model.rst,sha256=6ySrPgU0_sopKTTsJK7L1ef1W2KKrcuDL5i7NRkyXDs,3371 +awscli/examples/iotsitewise/create-asset.rst,sha256=m2qfogwwqPtcPXILOyVsoAi-unGK3Z6d7oAnm2EkXYM,705 +awscli/examples/iotsitewise/create-dashboard.rst,sha256=8oMvvjD8Sd0JHPNglBao-nLnbvlVDTbjpB8Ws2P8VDM,1455 +awscli/examples/iotsitewise/create-gateway.rst,sha256=iqgEkq-kvsPIy2kKGKOu_-7gT3axBMu2Ts9YX0bDaDs,733 +awscli/examples/iotsitewise/create-portal.rst,sha256=mHwNuwOptVLP8mL3dexk9qlkWTZVtnHLvsGqY77YsGQ,1316 +awscli/examples/iotsitewise/create-project.rst,sha256=XFrY08SzRjladlSI97Bm1zVJpUkhShL-yTijI0ylxvA,724 +awscli/examples/iotsitewise/delete-access-policy.rst,sha256=KgpKWpCL34kbjjTupfYu9N2t-wSEgDHIjn278ETkBoM,548 +awscli/examples/iotsitewise/delete-asset-model.rst,sha256=qSQXP5tqWoemD_JdmNjpbXZGsMHX9rnrMjNWPmMOBlw,528 +awscli/examples/iotsitewise/delete-asset.rst,sha256=P1iX1OZWlmrRlt6ShjfDhV5les7Mj-pE8vgyPFPQaFg,481 +awscli/examples/iotsitewise/delete-dashboard.rst,sha256=l3qcK1LeWumiS5bYXWglGoAL0O0sTiq0hTrgwBDNHho,435 +awscli/examples/iotsitewise/delete-gateway.rst,sha256=T8bj-0s2A549qikTzhifNUaTxOpxHDsqhZFQprVJtl4,400 +awscli/examples/iotsitewise/delete-portal.rst,sha256=mu5VwxLj3shGOyBfYhKYzMC4oCXqmfpHEcfrLdFWI-4,504 +awscli/examples/iotsitewise/delete-project.rst,sha256=_jX8-QdHrt8gvKZewAoKDhPH8_pYPwSC84e1vA0GAog,418 +awscli/examples/iotsitewise/describe-access-policy.rst,sha256=dS1mxb0Av05tWhyESG0KxhYHEaQlfPEGJoS1Nycc-s0,1248 +awscli/examples/iotsitewise/describe-asset-model.rst,sha256=TYBmNgyWo85qlcME7oHf1n7ELW2pj9LcOcpf7nGm2Zg,2592 +awscli/examples/iotsitewise/describe-asset-property.rst,sha256=QjqONRQb4gWo5kx2wummYZTXMMTWnDpZsjHiRaAJh8A,1914 +awscli/examples/iotsitewise/describe-asset.rst,sha256=22DYAbGl9N7UNNZ0MkPCfIhzoSDRFDxiCCKRuACpFys,1457 +awscli/examples/iotsitewise/describe-dashboard.rst,sha256=E3Wki0rRBdvScy_v0Ve7lfR0wpDzTNstRXsEDX5ebNE,1187 +awscli/examples/iotsitewise/describe-gateway-capability-configuration.rst,sha256=0oORJdDTfiNt756eLchSO4SzptntZxdLP37iRnvgKhY,1200 +awscli/examples/iotsitewise/describe-gateway.rst,sha256=UvHOfk-lolR6-uDm9v1kLaXRHCvLRZutqOBTkhizKNw,1126 +awscli/examples/iotsitewise/describe-logging-options.rst,sha256=Hb6wUrkZnDmwHXoVfFp_yaoIRGBlmIoAjR7UcGYBxik,577 +awscli/examples/iotsitewise/describe-portal.rst,sha256=vXIsXh07f0uCU0SVASsWbvT1hA3zatamAWH1N9IsFO4,1232 +awscli/examples/iotsitewise/describe-project.rst,sha256=n7GjH1T5hMuKyeWn3Sx84nJcU8Ilhvd4sBHXjPdzKus,937 +awscli/examples/iotsitewise/disassociate-assets.rst,sha256=syA2eWQxEKSkgBcu5utPscpSs16-8bpacbtB9sDRwjg,607 +awscli/examples/iotsitewise/get-asset-property-aggregates.rst,sha256=9kZxTkYFdILSHfhBvnZpYPGN37kTeUrEQ0ZW3rlHcKs,1080 +awscli/examples/iotsitewise/get-asset-property-value-history.rst,sha256=9ePtlx0Yuuvl0-JzxAzV7LQWIz7V7QEakHqB9K-BRRE,1984 +awscli/examples/iotsitewise/get-asset-property-value.rst,sha256=cUSVucXVQdcNwhCLEqfggaVsEcOfUJc0hEP9SkfjmW4,856 +awscli/examples/iotsitewise/list-access-policies.rst,sha256=zRdmDKBHKPc-YcaUH_pZD8lEL4veWjL7Op9lwyPf1cc,1061 +awscli/examples/iotsitewise/list-asset-models.rst,sha256=Vxdzd4YqcxwoiTkDbhHD6nRNC6PxB6NluQYiT4Nk2cU,1543 +awscli/examples/iotsitewise/list-assets.rst,sha256=Q2LHGZbvTnJiGrZhAXZcwBRsizp88ycHmIcJF7GW6WM,2347 +awscli/examples/iotsitewise/list-associated-assets.rst,sha256=owMWY3oTHPB1Mkiy8Mv9ykEdH3klxu8QBET6tDqceuM,1206 +awscli/examples/iotsitewise/list-dashboards.rst,sha256=k4X1E9iJj3YCZ4BZs6QTfLpISnBF_vUVNHrWT6BlEOY,762 +awscli/examples/iotsitewise/list-gateways.rst,sha256=vrsx8AKf1qufst5ZQqywQog1K5lRRan1QAzn6IBzL7k,939 +awscli/examples/iotsitewise/list-portals.rst,sha256=j7Mq35nNQECn_fAGvZv2FXqAVs8APR9_5u6dGnEukvw,998 +awscli/examples/iotsitewise/list-project-assets.rst,sha256=1vHHWOPMLI5zK1dP0uQKQd15pIP4m-JCinWB-ujEyYY,573 +awscli/examples/iotsitewise/list-projects.rst,sha256=6mx9bagJ7SSUHYbd49f28E8zPrn5gC-ooLf1feDgjUY,861 +awscli/examples/iotsitewise/list-tags-for-resource.rst,sha256=G2CPMwJcpBI6i1tdP9wagS5DVG0G3LaRcIor4ngw760,556 +awscli/examples/iotsitewise/put-logging-options.rst,sha256=4D9KuatjLnOzHE6PPlQlxp2hliAVle2IOUGlHF1zhwc,518 +awscli/examples/iotsitewise/tag-resource.rst,sha256=9bOxdpFBUdNrFLwJRD5OztATZL5m_zVfzruo-GvbB9E,575 +awscli/examples/iotsitewise/untag-resource.rst,sha256=O7fOmR7OTiEvAorOff39BbpGbCcIQ_J80FLJ8I8EWM4,517 +awscli/examples/iotsitewise/update-access-policy.rst,sha256=yDZWGpPPr4aYczMjNrwvyL9HO6kK34KIhFtP2mt-fc4,1043 +awscli/examples/iotsitewise/update-asset-model.rst,sha256=QWSsiXBxmnjU5oeSYecpoAwwB8UZbPXrRBGrtMdL_l4,2627 +awscli/examples/iotsitewise/update-asset-property.rst,sha256=p_hL2oP-IBsaR5KaEkFDoXSoNTdc43AjTzCj9-zCdRA,1633 +awscli/examples/iotsitewise/update-asset.rst,sha256=52xwmXmr8GZkoSQrhgGzU-eqp0E9rUcytHprYr-VbNw,536 +awscli/examples/iotsitewise/update-dashboard.rst,sha256=yQ1wdNBljy5t7-vE0FXjse4Ei9UZKPAzeU5-d5JEo_8,1296 +awscli/examples/iotsitewise/update-gateway-capability-configuration.rst,sha256=FZSXdcg2FOfN58vKDNT7xT26yhmCzIg40cU0crU81rk,1830 +awscli/examples/iotsitewise/update-gateway.rst,sha256=rau_ZBEbnjKKhhkYwE-OgkrUdE2DoAlxWnVwB-zL-mA,460 +awscli/examples/iotsitewise/update-portal.rst,sha256=pZsU3san4F88EOtfd3mDVoizVP4X2uCqOStdjdcVG4I,772 +awscli/examples/iotsitewise/update-project.rst,sha256=FLqavxwPmy3ni7kRCGIFgMFWDazWgUedadiynFi_jH0,580 +awscli/examples/iotsitewise/wait/asset-active.rst,sha256=mf6-DdNzpez78URPiDUVdj4hu0EA431nNN7R4Fx2swE,486 +awscli/examples/iotsitewise/wait/asset-model-active.rst,sha256=oq6nVb698W7CTNsDiVl4OjEFwEr6PnXfNczMcFMhm-c,516 +awscli/examples/iotsitewise/wait/asset-model-not-exists.rst,sha256=qUb0HxZJ259X00cN8w76cHxPvY8bNNlByMqYHH2xDhk,549 +awscli/examples/iotsitewise/wait/asset-not-exists.rst,sha256=6BVyz0fRxb247T5eY46SxzGl4UmW-GqEEpFTwcv0QyI,507 +awscli/examples/iotsitewise/wait/portal-active.rst,sha256=es6Mry6kd3jY-osuLMjm47aEHCADgOESj6oZkALyrwE,490 +awscli/examples/iotsitewise/wait/portal-not-exists.rst,sha256=k77xHv8-FHLyNC4xLzHiecbaNs0BbeUckIgNnRkcN8U,502 +awscli/examples/iotthingsgraph/associate-entity-to-thing.rst,sha256=hs9U8ntt18ufK11ZJF4SxXItEo0dHchT3vhIlMX2SL4,577 +awscli/examples/iotthingsgraph/create-flow-template.rst,sha256=csxUBzMdhwRty0LuqmeFF9mp82Qe0Iuig3JoyaahURQ,648 +awscli/examples/iotthingsgraph/create-system-instance.rst,sha256=47uA0nFgAPYVeYTdN-wnkgf4Z9d2hkMulQvqZSQ_PVA,964 +awscli/examples/iotthingsgraph/create-system-template.rst,sha256=K1fhB-Yd3oc560WgSCktkBaTTZhZF4jq3QK9chq5Yq4,745 +awscli/examples/iotthingsgraph/delete-flow-template.rst,sha256=ZwSjBhwXJ6cLphmBtCReLN7UBQcGWgSzhIkPYZvkowE,485 +awscli/examples/iotthingsgraph/delete-namespace.rst,sha256=tdbVv4AvXddyIvzrlrhd9-FiHoZa7UK9KFXvWqJcTO8,522 +awscli/examples/iotthingsgraph/delete-system-instance.rst,sha256=AyvR3n-wfK0Ob9nKu_V2vvODg_cE38VBh3j7_5aCk-g,503 +awscli/examples/iotthingsgraph/delete-system-template.rst,sha256=z-1GRzd0NH8Ux21T-z8WoQkf9pLnoYa9gjo7J95Esvs,482 +awscli/examples/iotthingsgraph/deploy-system-instance.rst,sha256=cZ3-uhaM4MdT68uAxTIYgbXqw9y5m_MtFsOtL5sZUxo,789 +awscli/examples/iotthingsgraph/deprecate-flow-template.rst,sha256=66qHZTvA_4drnHLJJzH-lpcPiXy0L9DMPvHhPY0ACYo,497 +awscli/examples/iotthingsgraph/deprecate-system-template.rst,sha256=CJZ6pf9tP4Cya8l_MnwK5z6CtK3hYd66h_4JgPfog9g,494 +awscli/examples/iotthingsgraph/describe-namespace.rst,sha256=z1ifN_6vj-VtFT3rSlcPAwOjBwEF4TR_Mfu8bTbn3Kg,529 +awscli/examples/iotthingsgraph/dissociate-entity-from-thing.rst,sha256=NQYECPsN1OMHvLe-xnyY4bx0sna7Ze-mVmaVFO0q8do,473 +awscli/examples/iotthingsgraph/get-entities.rst,sha256=mdw8GYB2BwVSJAoflGcmmdHGe0s_qwH71D4BTAuTt3Q,1003 +awscli/examples/iotthingsgraph/get-flow-template-revisions.rst,sha256=-S9tIoczib-kO_Ijn-xym1jnwaImzvKKa6nga6Eg-kM,687 +awscli/examples/iotthingsgraph/get-flow-template.rst,sha256=XDjq7UZ9BAwGtpbjNN1r02GhelgFZE9fzxbpXXRHQ9s,2058 +awscli/examples/iotthingsgraph/get-namespace-deletion-status.rst,sha256=HSNck-K_LJeYMUgBfW58HXHtU7o1XwinF_RSxL2e4Eo,562 +awscli/examples/iotthingsgraph/get-system-instance.rst,sha256=VXHQczODLPdGB_-wjJ6mNkMN-jIqFtaadT55GajFg70,1854 +awscli/examples/iotthingsgraph/get-system-template-revisions.rst,sha256=w0_nIVJl4wTz8afpdkv2Uym7yF2AWJYIa4iXRWMuDlA,808 +awscli/examples/iotthingsgraph/get-system-template.rst,sha256=IGwsIPQ5TUntocFhnL3k2P7CIsTRSjFmYNTAqFODVfg,1366 +awscli/examples/iotthingsgraph/get-upload-status.rst,sha256=s2lS7f_5g_xPLCGH-C39k62_dd3wSbO8_WHIgdnsgY0,699 +awscli/examples/iotthingsgraph/list-flow-execution-messages.rst,sha256=9N3MWJ0nlQ3tGjzTdDeGHmfXBGmOkaJ8-obljnHrSOk,841 +awscli/examples/iotthingsgraph/list-tags-for-resource.rst,sha256=bOoExrqaf_XVHZbMPHKDLWxZz8_vjh9JFfPnBvlhQdw,612 +awscli/examples/iotthingsgraph/search-entities.rst,sha256=Z8aUR4q1Ll9I1iVT9zXvfgqC3v5ELq3YK70NdnOnIvY,2002 +awscli/examples/iotthingsgraph/search-flow-executions.rst,sha256=dUQvme4h2n0fRq6UPnZkemXrmiXlz1ICPJaJ1bzANKk,935 +awscli/examples/iotthingsgraph/search-flow-templates.rst,sha256=xAvxaqgGySds2175i3AZ279OrbXMvz7fVR_A_tQ7qrg,907 +awscli/examples/iotthingsgraph/search-system-instances.rst,sha256=cdmOC0tTHZvR1xsLOrxFHD_2YBLGcO1W9WBIj-UxJzE,3091 +awscli/examples/iotthingsgraph/search-system-templates.rst,sha256=1veB5bzX5oeutBEAnzfWZTlcDs4HWdW46rPzPMNPE74,813 +awscli/examples/iotthingsgraph/search-things.rst,sha256=SR2mUf6xx41OeDvmMYJkMLKGyzUMD-ZQipikqpf03Js,835 +awscli/examples/iotthingsgraph/tag-resource.rst,sha256=EMZQFWMAFh1LN_TBHj5Rx1jSEK08f2wENG5l0m11Jf8,524 +awscli/examples/iotthingsgraph/undeploy-system-instance.rst,sha256=RImQK5oolQzSKA-IH6mwV5PY13LFPOQjPU_1EzJm6iQ,1100 +awscli/examples/iotthingsgraph/untag-resource.rst,sha256=4N3gEgRQ0EO739Fd9v0Hl56bFuSF1b07yaB7WpcOFss,508 +awscli/examples/iotthingsgraph/update-flow-template.rst,sha256=lESNRTSbDfP7NnHY6LbFH7KnLCGHUxV9QYTwapC3UDY,720 +awscli/examples/iotthingsgraph/update-system-template.rst,sha256=kUPghgCDq1sI9Mxf3bZFzyT8qwJluy7EuWfl9M5LUgs,821 +awscli/examples/iotthingsgraph/upload-entity-definitions.rst,sha256=lTKD_4O7_T32vRaNBDVyTHZ5delps1VDQVqTXdeN6xI,581 +awscli/examples/iotwireless/associate-aws-account-with-partner-account.rst,sha256=xeXtql08zIpyk5Wdl32ajA8Z2v9Etrtm4Yn9eNGwLfk,805 +awscli/examples/iotwireless/associate-wireless-device-with-thing.rst,sha256=YjAhHJCvk2jlRBu6h05teJqw8YyH237EKgxJONYSvO0,652 +awscli/examples/iotwireless/associate-wireless-gateway-with-certificate.rst,sha256=ZqxyJYCzz53LCxkpwTlTJOVORWbqIW0jq66_nNr5zfw,753 +awscli/examples/iotwireless/associate-wireless-gateway-with-thing.rst,sha256=2ymkMNA1BVJ0Z8axWOWxFNKyETI1ey2hEQn_Xsw7ucY,627 +awscli/examples/iotwireless/create-destination.rst,sha256=by8_Qz_z-f8cq4GvMMebk0WhxxVGioLd7etSdJh9t7g,944 +awscli/examples/iotwireless/create-device-profile.rst,sha256=7tmJ07cXsxpKHqxqUdcApn5RTy64br9ovYmgn2ThXzY,577 +awscli/examples/iotwireless/create-service-profile.rst,sha256=fhJ8PE6G7pKyCG14GfMMrazSrk6vCniPBUUkpKsivBc,582 +awscli/examples/iotwireless/create-wireless-device.rst,sha256=ES5IlEhB2y2AK0t3QEkLkToiLAEh_8uzwzDk-VSYUtQ,1302 +awscli/examples/iotwireless/create-wireless-gateway-task-definition.rst,sha256=ER7pIjb8dfPbCfH7Lf4Ffm23KHRv2e_2j11KyJ4u-nY,1339 +awscli/examples/iotwireless/create-wireless-gateway-task.rst,sha256=sAPVxdLORsKLy5yuIGZuAL3D8k3Cwlt69hXIIGxJyiM,690 +awscli/examples/iotwireless/create-wireless-gateway.rst,sha256=4qlcYQTritXvXROClmFGHF7c4jNTBWffUJRmL8-3wow,757 +awscli/examples/iotwireless/delete-destination.rst,sha256=Ae0_VmGlSbowePezJ0VqLPwRrakYrYsq_eRnVq_L7fw,528 +awscli/examples/iotwireless/delete-device-profile.rst,sha256=pm6mHxGpjhMxA97KmKcu3Ok2oELu1NRfLFjYYJcmgt0,494 +awscli/examples/iotwireless/delete-service-profile.rst,sha256=V2mtbmGrBeI3fBEBqqq6AdLwVg0AQBy2-_Wjfdpgz7M,497 +awscli/examples/iotwireless/delete-wireless-device.rst,sha256=aOLcNL1jUYxroqbf2pk_vUe9wwZ1L8hNY2RJcyfwchc,487 +awscli/examples/iotwireless/delete-wireless-gateway-task-definition.rst,sha256=LLLpE4H7MPZsRM56VWM9Bdej_66aUpLCt6914gxnMBA,568 +awscli/examples/iotwireless/delete-wireless-gateway-task.rst,sha256=Q3mMQpmCxwhB-DmFtwl0JfTtURsmCKipKhAmN7Vtnq4,511 +awscli/examples/iotwireless/delete-wireless-gateway.rst,sha256=qetjeqmcgF0SHf4wDNzYgt2XybJAg3U3ltJj1rADodA,491 +awscli/examples/iotwireless/disassociate-aws-account-from-partner-account.rst,sha256=z2zEZYP_WZh2jZ2O1ZEoRFx-HnfUOml4jWaBeT-3zt0,639 +awscli/examples/iotwireless/disassociate-wireless-device-from-thing.rst,sha256=-vM-eWU56MixY0c7Xedivu8tRlW3AQOiplYBELR7h6c,583 +awscli/examples/iotwireless/disassociate-wireless-gateway-from-certificate.rst,sha256=eEnkRFq_eS8uKUV7FfVtH7MaF6-kA4KZe9ObXObVvr0,604 +awscli/examples/iotwireless/disassociate-wireless-gateway-from-thing.rst,sha256=F7F2eoBkHgDkk2cSTN6RUzVvRDAyEc-jCppgkGuE-0Y,588 +awscli/examples/iotwireless/get-destination.rst,sha256=e6j1zhzH5yUGWQg6TriIPCRCupPNtrXXu8ZlGbArnyY,838 +awscli/examples/iotwireless/get-device-profile.rst,sha256=_GO1vdyeH86blNpdCzyp3djMggS89caYA2e71MXrF5k,1018 +awscli/examples/iotwireless/get-partner-account.rst,sha256=ODAp40NU1P-SM8Uvu4yZONCS8C5v6kR5g1HCPDiOaGc,720 +awscli/examples/iotwireless/get-service-endpoint.rst,sha256=RzYLSwUjTf3LLdd1QL6g0NUgzFlpD7V28BKsH0yw48c,2387 +awscli/examples/iotwireless/get-service-profile.rst,sha256=tsSlTJxGL0A2eYRCCAiSC8QNiMlEf5XGqudhd0PIeWk,1269 +awscli/examples/iotwireless/get-wireless-device-statistics.rst,sha256=iXUge_7-5R4nHrfg7fakyZDyPlFQ0XXcTgtXgorYYVo,603 +awscli/examples/iotwireless/get-wireless-device.rst,sha256=7hQzkRI4fpDp7X9E0DcgEzN3fs0fSmdljQ4aZ6MZewM,1494 +awscli/examples/iotwireless/get-wireless-gateway-certificate.rst,sha256=Xq1-g5wbOo5znoIMe90dgDhY4S4drOsBsaBy9YaPnAk,666 +awscli/examples/iotwireless/get-wireless-gateway-firmware-information.rst,sha256=-sMGF3Sv5IqNrpGODBo4ThQP3ThOs35Z-n5FSa7vbxE,760 +awscli/examples/iotwireless/get-wireless-gateway-statistics.rst,sha256=FhlhNhPmN8FszssNVqS2fdLX-qCrp0tCbJ9N_-60GDA,609 +awscli/examples/iotwireless/get-wireless-gateway-task-definition.rst,sha256=-Sh5AEi1l-zXdJ3pe0ZB7jkw0YyZEaBYcwI8oU-36UQ,1227 +awscli/examples/iotwireless/get-wireless-gateway-task.rst,sha256=qFGlyfSsvO2ibuDoQ_NTRY4adKK50Rql3g3Gtdc-m54,708 +awscli/examples/iotwireless/get-wireless-gateway.rst,sha256=zr73egt0vdmh1v1YKi5iR8in_SRY1jB_OmuJp9fT2ws,1113 +awscli/examples/iotwireless/list-destinations.rst,sha256=KsG0ePNNWcvYnm1vmwQKqjvFP68gsN_qtuukV0xEQ3U,1220 +awscli/examples/iotwireless/list-device-profiles.rst,sha256=WuNUjbytyqCORHBVvskfn6N912u8zhqbRNIxS3ca7v0,906 +awscli/examples/iotwireless/list-partner-accounts.rst,sha256=EOB1WxhJ2YEprwx3nbaz1zJL8ovmjKe4WAAAr8z2dzA,809 +awscli/examples/iotwireless/list-service-profiles.rst,sha256=icEihSYDduRxu1eTBUej8MCaDzfQY6RV_aFbCdGiFDY,912 +awscli/examples/iotwireless/list-tags-for-resource.rst,sha256=uFOj_lbQnwGZJZP61jeoAFctH9vZFMPx9uLCaZva160,688 +awscli/examples/iotwireless/list-wireless-devices.rst,sha256=iwLa1nsh24kVGrD0a2YZI1N21t_RGG1gBszS0iJKTio,954 +awscli/examples/iotwireless/list-wireless-gateway-task-definitions.rst,sha256=7U5aZD4Ro4Knv26Lox1kquJ80Yk8-0ERM45lzkVnAGY,1125 +awscli/examples/iotwireless/list-wireless-gateways.rst,sha256=qKS7w8on6WjUkYfRQk4ChBO__A998R48kIsSHSp_6tk,1433 +awscli/examples/iotwireless/send-data-to-wireless-device.rst,sha256=aJox_F4yqR5eSNn506afxsV8bYjuGNUB6qhjDPHtuvY,688 +awscli/examples/iotwireless/tag-resource.rst,sha256=SMysT4eRyiePgrO9b5VaF8KDeDdgxtcTn3rXlKwkx6g,638 +awscli/examples/iotwireless/test-wireless-device.rst,sha256=i8WwyT72UsbexJTlduH-Tr2ymco6j1a8VpgfUE0N5Qg,557 +awscli/examples/iotwireless/untag-resource.rst,sha256=tmaJ18M9hG3Kb5QZWe-EZnj_W71YFdFSt39xtcsdqCo,617 +awscli/examples/iotwireless/update-destination.rst,sha256=OdX4De_a_hdJP1-9zxKIURs-nzRJqtzVoXwGRK8QH2I,575 +awscli/examples/iotwireless/update-partner-account.rst,sha256=kYTM__-qGy4vXDzaIaICr1SWAmUpxvLpPF11-QoJsos,639 +awscli/examples/iotwireless/update-wireless-device.rst,sha256=kePLhcNfg3jQGGkCOPJBSUX6YsKKq-9564ULxAfJcbc,637 +awscli/examples/iotwireless/update-wireless-gateway.rst,sha256=2dnAdQfnZb7sSTKcgXjW9iNoRcblPddgn-ql-5w6vGA,539 +awscli/examples/ivs-realtime/create-encoder-configuration.rst,sha256=OGhUNFLELIum90i2w2aRFzlz0M1wox50viRghjtwx6E,945 +awscli/examples/ivs-realtime/create-ingest-configuration.rst,sha256=hgUkA35ndX5qTwaU50BCB2d-vjfuyFG9Nf_bWGBXYBE,970 +awscli/examples/ivs-realtime/create-participant-token.rst,sha256=DoMHgPlpIeHOfAYLFAUsjIdk6Ch4N_hj7iv9zKT34YE,733 +awscli/examples/ivs-realtime/create-stage.rst,sha256=crx7AcJNl9yke7h_mNHploKEfyxfGPLPmID66wPslAE,6394 +awscli/examples/ivs-realtime/create-storage-configuration.rst,sha256=jROuGgWS5gahvEAjNH-vQRuatFujx0YkVF9p9eeCPao,818 +awscli/examples/ivs-realtime/delete-encoder-configuration.rst,sha256=iBW9aWaEkxNXr-nuTmua-W7o3JywCqTV77k2ApNE3JU,598 +awscli/examples/ivs-realtime/delete-ingest-configuration.rst,sha256=GY2DBx7T6iAk4REol9XgWoNQzoxUp7S86n9qfb_9N5Q,1248 +awscli/examples/ivs-realtime/delete-public-key.rst,sha256=3rmm_W9j1vaS95xs1lFW6_fRsRfM2i0VknuTUyOXPgg,469 +awscli/examples/ivs-realtime/delete-stage.rst,sha256=Mym4Q_LCIUM14vpnCjjJqDHfLS6eS0AjsU8cL0Txi9I,445 +awscli/examples/ivs-realtime/delete-storage-configuration.rst,sha256=5Fp1fDaYwB1aEYbYg0BkTBCFYuZ-af7sYGqh57e8wkg,598 +awscli/examples/ivs-realtime/disconnect-participant.rst,sha256=0FzAdsDfk6maR-5Kzgex8PWDE_lmoTg_HKxXJR5_uw4,574 +awscli/examples/ivs-realtime/get-composition.rst,sha256=zhp7jVWTFvgWsj7yrzOXtm90bAqBF3dcqgSFh62Aa9k,9874 +awscli/examples/ivs-realtime/get-encoder-configuration.rst,sha256=UlFBxJkjqm79EmRe2IYTwTEbaDis2Rsfbfi44whBaew,961 +awscli/examples/ivs-realtime/get-ingest-configuration.rst,sha256=dpMcDCO171N5ik_o9ZS6-5lmjWs6bSNq6ebGxNnZiAI,1036 +awscli/examples/ivs-realtime/get-participant.rst,sha256=MuYMyQG6ssHH0puNX0A_kWvLDBerdI4uyeMeygU2fM0,4241 +awscli/examples/ivs-realtime/get-public-key.rst,sha256=6IKGMrNEBP3GiMBt81bEj5QKNnPnpuumEFZxutpUVXo,1063 +awscli/examples/ivs-realtime/get-stage-session.rst,sha256=pJ0kkZ0rnij75BePAoEX8DfZtx5Ny0fel1MfbZNnGwE,767 +awscli/examples/ivs-realtime/get-stage.rst,sha256=CC2DuKrjYxHx2jmMPYk4F55eMidlFAY1ssrf6LjfBg4,1798 +awscli/examples/ivs-realtime/get-storage-configuration.rst,sha256=uHrub2sy3HtO0qtKUAhTVNOy9dQU18qMck8L4U9iBCg,861 +awscli/examples/ivs-realtime/import-public-key.rst,sha256=5eiDsux84FHS-PdTtfKZpliebRfpwBXyum830u8g0KA,1059 +awscli/examples/ivs-realtime/list-compositions.rst,sha256=GyMNnF8wH8FX9GaRs-F3BwerQ2ehrfIcd2QiDYJ1wpA,2095 +awscli/examples/ivs-realtime/list-encoder-configurations.rst,sha256=VGZQ4VqBZOAVQGvoz4g0-EKF12wCj-VLQjd4z0pTXio,961 +awscli/examples/ivs-realtime/list-ingest-configurations.rst,sha256=N7TxxPzabyTdGl4oNziSlffNWKRZEU4o_pz6E5pjReo,967 +awscli/examples/ivs-realtime/list-participant-events.rst,sha256=3UvzHya0rh9iTV6B_3-3V0zGxc-Z4vf2KNHHHYuSfqU,3635 +awscli/examples/ivs-realtime/list-participant-replicas.rst,sha256=LXbDpnMPugjm6MU596MImz1Igc4FU4HKFb9kfjBGIyk,1095 +awscli/examples/ivs-realtime/list-participants.rst,sha256=Sgwnulow1DhvueS9kHjf7KPFHHwpqZERRZB58SeHrnA,3468 +awscli/examples/ivs-realtime/list-public-keys.rst,sha256=wx77x9UdpYuOc6PlsnxNyHLgiJWgiFAceQ19xWdi14s,914 +awscli/examples/ivs-realtime/list-stage-sessions.rst,sha256=aITzBqMZFT7kMUJM3ew75_6LICXhcs4357xTorSC-MM,752 +awscli/examples/ivs-realtime/list-stages.rst,sha256=dY0QFXeBOvTsiuarz1L6fvGcSendbfnRkIdYnkhzTLE,1188 +awscli/examples/ivs-realtime/list-storage-configurations.rst,sha256=T7shNCEt2zzU1DsiGRAh82ygKe2TcJSFjgcSkKGBGBE,1140 +awscli/examples/ivs-realtime/start-composition.rst,sha256=OnI7VQAy07WaH2s7mRll7JwQ-kGpNfqxZQs2ttVGZHk,15395 +awscli/examples/ivs-realtime/start-participant-replication.rst,sha256=N6OwNVAp0UYT7jgkG-YV40b3AAhRQ4v0V-d644vzPhg,1431 +awscli/examples/ivs-realtime/stop-composition.rst,sha256=XuZfFAGhX0wwlkAPvQO6V0_iX1syG58M5U0WgH5LXi4,516 +awscli/examples/ivs-realtime/stop-participant-replication.rst,sha256=jNKkjrt2ATTN9rZj-fyxs8pfHoA79dzEOxJKCgXMB_E,1435 +awscli/examples/ivs-realtime/update-ingest-configuration.rst,sha256=f047K4leqfd3zA5M8BXaxSXJRySOBA173FHAWb1Qvzc,1128 +awscli/examples/ivs-realtime/update-stage.rst,sha256=cf7s0quz4G5LXYIpkpTyWd_PDoLdu1MwyoSJTygduPc,4830 +awscli/examples/ivs/batch-get-channel.rst,sha256=Cg-Pq30aCH-QWaM55kG501E_S10jFgFOQel4W0XRKOo,3087 +awscli/examples/ivs/batch-get-stream-key.rst,sha256=v29EtIsRuQx1n1IOMq1O91Li_5clBIb_g8uwqYQYeaM,1192 +awscli/examples/ivs/batch-start-viewer-session-revocation.rst,sha256=hDPtxAMp2ztMqfF-O2oV1IlYr2nYUvUqIoA9aUYxQjs,1497 +awscli/examples/ivs/create-channel.rst,sha256=SS0pyXU0B4HlIf6vtR0uY6CV9mOmaEBBZ6p_qBVwvBI,8331 +awscli/examples/ivs/create-playback-restriction-policy.rst,sha256=u2y5UorS0bgE3Op8vZ3LVwXNfStdmf5q3B2eqmkMwm4,1278 +awscli/examples/ivs/create-recording-configuration.rst,sha256=Nxqd_cvFbyWSEk5MN1Kge5Gos6NlICm0ktp8VFzPYI8,1873 +awscli/examples/ivs/create-stream-key.rst,sha256=x0kddgpeIXNEF--zwAzGpl7SYsO6pw5nrLfABz5TDAk,758 +awscli/examples/ivs/delete-channel.rst,sha256=r6gkg-OopgFjSlAw1mAh0-D5H58gDQ-CDXU7pn7TXz0,491 +awscli/examples/ivs/delete-playback-key-pair.rst,sha256=EJllc5sLS415u3trMVvDQggFNZANRaxT2cogclJ58jU,493 +awscli/examples/ivs/delete-playback-restriction-policy.rst,sha256=axJPp2hJg2C8Ja4mlXT7YnfHOHkR84A_PIQUSlvH-2k,570 +awscli/examples/ivs/delete-recording-configuration.rst,sha256=Euj8SUBEqjRNJaByEDzgQPOwsV7pMWgSUV6TvdFLfdk,550 +awscli/examples/ivs/delete-stream-key.rst,sha256=trs0tm8tfysNKmIGkjkvnMoaay2yxr7x_Vu0VVtYXQ4,511 +awscli/examples/ivs/get-channel.rst,sha256=fUZXYHkhp9lXbbGC9YjFUZHohYMTYSBwUiBpqlgznJg,1570 +awscli/examples/ivs/get-playback-key-pair.rst,sha256=HMyYT5yni5QmXaKZosmeM88uMAyew_QJlwO6DZKc6qA,737 +awscli/examples/ivs/get-playback-restriction-policy.rst,sha256=dG3yX4InXqKJsfsH_ETh31H4I7tFFl6ri1F-gj55U5w,1191 +awscli/examples/ivs/get-recording-configuration.rst,sha256=jlTwjIr5AYV3iGo2tdcm2AW1oI4T3YG5y4Xjjn5nnPc,1553 +awscli/examples/ivs/get-stream-key.rst,sha256=EyF5F6e2jiJ32topRdRNYbdcDLiQ1UM-E9YpMAaPsQI,761 +awscli/examples/ivs/get-stream-session.rst,sha256=dwvxQCeu-aaoIrCbKYLx1i_dpKg0kXpEUevxsNzGYvw,5399 +awscli/examples/ivs/get-stream.rst,sha256=xQUWc67ZDM_LDRYC1Lz-FyRY4ZVYlB6uWJj8LMOfyI0,921 +awscli/examples/ivs/import-playback-key-pair.rst,sha256=9wJy4zJsc6Ut7OwJWScuhus3G9DQ09iypPSpUzF-vZs,866 +awscli/examples/ivs/list-channels.rst,sha256=r2bNQS2DnqttN14_c20czCUZ_bCxmj8iJ2q8Z2UC4Co,3850 +awscli/examples/ivs/list-playback-key-pairs.rst,sha256=NBaaBL4C92tKclSOat3sdZuorN05QuJr7z6TBJYubgY,817 +awscli/examples/ivs/list-playback-restriction-policies.rst,sha256=QTkjMIYSq7A2xxAD_GmVWxGeW9wr2KhpKOt3oKPVYqs,1153 +awscli/examples/ivs/list-recording-configurations.rst,sha256=LCigbNAf-N45PCjmwymDdK-JbxH45NxDa531yvWdPqM,1372 +awscli/examples/ivs/list-stream-keys.rst,sha256=6n6VP8VpPl__GkXXs28w9e96Lzu6G_FMxiRSnCCMkHQ,743 +awscli/examples/ivs/list-stream-sessions.rst,sha256=SUF4ZoGvucz7IBoGQJFrz_PcvcFAZslAwcunruc5a60,916 +awscli/examples/ivs/list-streams.rst,sha256=NKq8liuTYOUczUwEklE0BYVnQpDVUSWVkxqXmgX-wAE,696 +awscli/examples/ivs/list-tags-for-resource.rst,sha256=YvyR3kouCzl2smtnxfV0li7DD_T2OC3AgrtLgLcaWLU,610 +awscli/examples/ivs/put-metadata.rst,sha256=Z8XQuVm1ZX2cXhag97mPlYR0LuEothfXxL32RIYTNno,556 +awscli/examples/ivs/start-viewer-session-revocation.rst,sha256=g_abp9wEEFyoY6YGT4dCPUFCL0Wrf2CGMfwnwOIEav8,818 +awscli/examples/ivs/stop-stream.rst,sha256=Gu0OWeTtfrfmT6emKtpbhIHct5JxN2VJyxkCvIEkIhY,445 +awscli/examples/ivs/tag-resource.rst,sha256=xy-QzuZMZyrBuDD4UayptEMyv11LQERtV6rryLGJmjo,567 +awscli/examples/ivs/untag-resource.rst,sha256=P_tRaLWCPf2ZwN3L2rasgvGIGKrrLdNW8-jrwhwfNX8,554 +awscli/examples/ivs/update-channel.rst,sha256=_95yNokqpzHG7ElJYEeqDFcl4ukeUqC6UeNefNOR6kQ,13136 +awscli/examples/ivs/update-playback-restriction-policy.rst,sha256=2oT1pzQ2yZm_ug9otYvBXY6hSaSg8Z8EmC5hBielfb0,1362 +awscli/examples/ivschat/create-chat-token.rst,sha256=uFDRjsm8qOcqLMKUXHV8gmv41niAfkUgL7Cv7KLoeKI,995 +awscli/examples/ivschat/create-logging-configuration.rst,sha256=HElBp4vPHm3-3Bs7c12GLM_6GxheyZKbEkv2ZrzcpNY,1153 +awscli/examples/ivschat/create-room.rst,sha256=7Zg0NTGzXli-cXgNRkKcx1c9C-nVVxi3KpajeQK_irw,1042 +awscli/examples/ivschat/delete-logging-configuration.rst,sha256=6vwR39x3BoExAjE2mEK6Tc7YrdRAeC9xLhATrmc_eXE,561 +awscli/examples/ivschat/delete-message.rst,sha256=3r7d_kdhzLjzntzdJ2HUlQd5ZWv2J3AgInbEcJqZHjs,718 +awscli/examples/ivschat/delete-room.rst,sha256=uQHowk4P5dEFvaxiBnhY6CfPaqC_IIGSenmpufcoFns,538 +awscli/examples/ivschat/disconnect-user.rst,sha256=qDnTuYUJAu6LAZXxZwfi0rJVMEbnbwltVTaKTAm5aLM,661 +awscli/examples/ivschat/get-logging-configuration.rst,sha256=F_5E7oX3N9TFV5zpmeRnxx9UrNKHUL-4alTA_K1_RhA,1080 +awscli/examples/ivschat/get-room.rst,sha256=6xlgaU5iuYwqSZbtJqGp8Fw9rq7VSxt0sEY8oLUk16s,918 +awscli/examples/ivschat/list-logging-configurations.rst,sha256=pNLUXGHIRgis8dbkKStpYvshp4pFS2BWFJit-DDGXbs,1374 +awscli/examples/ivschat/list-rooms.rst,sha256=QgYROzbLwoiSlnkEpiPpvGDYIaAssi3ufkYWMZN6838,1227 +awscli/examples/ivschat/list-tags-for-resource.rst,sha256=qQv4Yy69fcRx6iV8ncQY4nVSM3eVVHP8T_RFHPShLFU,600 +awscli/examples/ivschat/send-event.rst,sha256=stTVKEW2cz6copJOaT_RWFi4h45mj0WRWvhf6bHxfsg,669 +awscli/examples/ivschat/tag-resource.rst,sha256=QQqqs0QNHRuIkuCMech3Qn6OZXqzpytYaVbIoHTIJlU,622 +awscli/examples/ivschat/untag-resource.rst,sha256=7D9AYlWjkIqEPSoZLMi-EZQ88jTU0MRuPf4rLXE-HA0,603 +awscli/examples/ivschat/update-logging-configuration.rst,sha256=He_aE4QWeDWoL8pwpjks6qUK1mkOpGL6yKRffoLZiNQ,1166 +awscli/examples/ivschat/update-room.rst,sha256=ZxD-f8-21x47GKEbvPaPwj-ERTrzw0O1EQ6_Lcc5J4A,1194 +awscli/examples/kafka/create-cluster.rst,sha256=i1GgYXbmnmtWmoOdU1U4J07iHoQSvR6IOd9hncjv4Fs,1312 +awscli/examples/kafka/create-configuration.rst,sha256=Zl6oYqxNGbmDok83MOLP9Njc7XmXe2L5vwui0sArQdE,1391 +awscli/examples/kafka/describe-cluster.rst,sha256=-LQk0WIzG2Rx98gF1Y-TKyCxMrmJ38BycCazqFLVzuw,2495 +awscli/examples/kafka/get-bootstrap-brokers.rst,sha256=bHQ0vUXGD25jyLZfahA_F4QMr0HUNJAUnFOaZTBljC4,883 +awscli/examples/kafka/list-clusters.rst,sha256=sC2X--E2_z7eTsxBxnPHsyBKgJW1m3KGAe3hR2UXWsc,2613 +awscli/examples/kafka/update-broker-storage.rst,sha256=HGM6ae-O85bdPWfQfQiJJDYAAfUeecRfFAAE9PdmJeg,1383 +awscli/examples/kafka/update-cluster-configuration.rst,sha256=Ix42AMYvVJtuaehoBtsuffwWnc2JeCNl1yOEN8gWu8k,1449 +awscli/examples/kendra/create-data-source.rst,sha256=wyJad_NpDxliKzXjnQ0gLv1VI6MG2iDm9neExQHyow8,1675 +awscli/examples/kendra/create-index.rst,sha256=NVc9n7sV41VXPbnN10wQ9ebqcV0-WZJJGS1dTGZdMJU,1202 +awscli/examples/kendra/describe-data-source.rst,sha256=7Lpjt1r_NS5qB7DxWgqu2e38UX8ea1bNYdvPItTQWlY,3760 +awscli/examples/kendra/describe-index.rst,sha256=Kn2H0bCCuWmbPe--6bE0Cn7plaNDn1JVEk4aM3xZCbg,3855 +awscli/examples/kendra/update-data-source.rst,sha256=iTIp1h4H25k2N8jIVH3_7_7dTD_nsynODYfyQ3rt8Zc,1552 +awscli/examples/kendra/update-index.rst,sha256=nGIM3QIMfDEMkTI-lBvMfW0BCc2W9V1uBZNaNoTFOag,1328 +awscli/examples/kinesis/add-tags-to-stream.rst,sha256=YH8J39eGSH9TKtdBvpGkXRL4qdey8Kvhlp_EjUFmjM4,480 +awscli/examples/kinesis/create-stream.rst,sha256=VtWNBPv6Qt-LOs2sJpItH89kHQCs6FmhVsVsJZIsF0s,449 +awscli/examples/kinesis/decrease-stream-retention-period.rst,sha256=5TW_ohc_PYfOhBYg2p0n-Ikn-9yWlAJHFMowkZz0frA,628 +awscli/examples/kinesis/delete-stream.rst,sha256=jn8VL2CNoOgsDs_rkhhRIv-x-fdXlnkaFKZUf_axfXo,403 +awscli/examples/kinesis/deregister-stream-consumer.rst,sha256=-XvzOZPKz0turOAIbPN3J3HCzY6cb2A6OfXXYqVQvcg,627 +awscli/examples/kinesis/describe-limits.rst,sha256=ZdzEmE16MnZqGv2sm-_uF6gGI_XbfUyhc-HQdH4U_N8,445 +awscli/examples/kinesis/describe-stream-consumer.rst,sha256=g1caF9PRXlWRV6Sr3gsWWSvivsajacLGDdlaT6DbYC4,1010 +awscli/examples/kinesis/describe-stream-summary.rst,sha256=lzPkuNi7QGe6RUz-SDOQIqQzi_Hft7kOybsrStWY8Ak,1013 +awscli/examples/kinesis/describe-stream.rst,sha256=_1pzZ6WGTE34WH6LtYWv53Dp5MRfwyHIA1naY7Zl0pw,2400 +awscli/examples/kinesis/disable-enhanced-monitoring.rst,sha256=F-O8Agd3tLfjVXJA7dUs5DH35aVFAPB3vTJhenUuJ9o,905 +awscli/examples/kinesis/enable-enhanced-monitoring.rst,sha256=JxgHgRRQ_RLdzctgIYW8EHpCUmjCr0iVzz-NB3-IdWQ,911 +awscli/examples/kinesis/get-records.rst,sha256=ScNsOkXZPCnC2SlN6Ua3vHZppq1Bx0n_abTeWza3Pfo,783 +awscli/examples/kinesis/get-shard-iterator.rst,sha256=pFwZcpgsECImTapozptA1KziUJWStPlC5fTTFqnqZT0,941 +awscli/examples/kinesis/increase-stream-retention-period.rst,sha256=NBJJmYsZr53PgM3ZP4_ETLAYMmyVrQnio_z0RKYp30U,622 +awscli/examples/kinesis/list-shards.rst,sha256=Ne8otwGuzk8Wg2cOtni-KwszloAT_VlQUcp0noJA9PU,1524 +awscli/examples/kinesis/list-streams.rst,sha256=LL4td3pLKkhiKjXJ5cGMtI1zLOJ53A_wscheepLiySg,468 +awscli/examples/kinesis/list-tags-for-stream.rst,sha256=qftc6bc5nyIwpSvsevWAS_LhMZQhpo-z2m8BAUm0sc8,563 +awscli/examples/kinesis/merge-shards.rst,sha256=oY1kRC39CzjAhPGRttETbJUurTTgtWK9OjqbQFAFu4s,621 +awscli/examples/kinesis/put-record.rst,sha256=Szj-gkbWvrRQ_lxzdWUmt-ZNCtTBzlkQmAFwcTF-g1k,762 +awscli/examples/kinesis/put-records.rst,sha256=OHZOffor-MyToFC4tyM_ZfelnWZPeu7k-052DNrtFzw,1104 +awscli/examples/kinesis/register-stream-consumer.rst,sha256=gES9O_Skq1dXXql98vVheJnNjL9STDtcIdURg54xZLU,957 +awscli/examples/kinesis/remove-tags-from-stream.rst,sha256=tZtYLBP9LyuAklijeO0JJUQbbPgPa_Sni5CKSERx8zM,474 +awscli/examples/kinesis/split-shard.rst,sha256=UZmYtQVRCxRQtd6gILQd35bzUDPxTatINu_iqpZVzRA,528 +awscli/examples/kinesis/start-stream-encryption.rst,sha256=Qdy5Sm1NzRD2AaSxZkdD0rNw3Tozr8TnmAhHOcE9H3A,629 +awscli/examples/kinesis/stop-stream-encryption.rst,sha256=yz7U6uetBx-juAJVD_NfDl-vgNLVi9CbGNtSAalktog,630 +awscli/examples/kinesis/update-shard-count.rst,sha256=ws30M23oOHInX_zxyqGSsZXsf49x4wGPSkPVQ1l-8xE,689 +awscli/examples/kms/cancel-key-deletion.rst,sha256=5NX2ekD-lCWbuP_z8wwvP-npPs6i6SZWBZ8VkWu4NX4,884 +awscli/examples/kms/connect-custom-key-store.rst,sha256=8lEzgdk0W6mwEJUJ9ldM3HZke7HhHoDw5UUZS8civFs,1105 +awscli/examples/kms/create-alias.rst,sha256=sEsswzqxDZHiXNRsOjsTIBYxXDgHjIt5VzeoGlXeTgE,729 +awscli/examples/kms/create-custom-key-store.rst,sha256=rfGO0VWX87Iy4HxhRjGd8NsGEScyLFb-s0XspBuMyV0,3838 +awscli/examples/kms/create-grant.rst,sha256=SntoNVAyzGI1jZEWS3NboPpGQAsiWeyuxdX88QY--Xk,1209 +awscli/examples/kms/create-key.rst,sha256=39ZwKfz_sfiwLhPVL_3Rx8bowaHARZc6l8H6A0M0LEo,14063 +awscli/examples/kms/decrypt.rst,sha256=LGLUlzg2kN7Ohv6hUoqMGRAsY-RD4pax1xrVUfYd9l4,4551 +awscli/examples/kms/delete-alias.rst,sha256=D6-ouqnsUth7Je9N--YUWHQaSrRdhVg9VIh-y-1is7M,502 +awscli/examples/kms/delete-custom-key-store.rst,sha256=Tfi9Zw20otPF4BmNW6zrU7nioehLkKIXmJVaw8Qb0mo,1503 +awscli/examples/kms/delete-imported-key-material.rst,sha256=WABose65pvZQ4h6T8AVUhPn6QaKPrzDP2hzFOFc3cUE,650 +awscli/examples/kms/derive-shared-secret.rst,sha256=Ousf6DKTT_jMGnaiqqRLEUzothWthYcGIBS7e1GluZY,1158 +awscli/examples/kms/describe-custom-key-stores.rst,sha256=VyFafEje-Z7447sZYQE_fq24ex6be5OeTFc23F-AF-0,5450 +awscli/examples/kms/describe-key.rst,sha256=oWv44bQsw_mkvN0474JkYLmCuLHNlBcGyO-xzaNfOso,6105 +awscli/examples/kms/disable-key-rotation.rst,sha256=nCRixoG43u9lcJS-qIZy7noGpDqr5gQJ-WUcYVwbRaI,679 +awscli/examples/kms/disable-key.rst,sha256=JgmfqD1OkADVbm_jejdkpAKGoig8AgRZusqgRk6tEig,484 +awscli/examples/kms/disconnect-custom-key-store.rst,sha256=n7JHEcbG6qwWtyWYMpwvDO57jm6pG2ASTMUUKyYeU8w,1285 +awscli/examples/kms/enable-key-rotation.rst,sha256=K1TERE04TcjkfvX_fcz7Biwky6SFcDo0K80md2hbFZo,1142 +awscli/examples/kms/enable-key.rst,sha256=kRch6rLw9mqzrKefqqh1uVaCcEWI2fBcyLzOepqfXPs,1048 +awscli/examples/kms/encrypt.rst,sha256=8bmOjh07MVLNMkvzXvslsFej6G-80R4pDzTLT4yEAwk,3552 +awscli/examples/kms/generate-data-key-pair-without-plaintext.rst,sha256=gN7K66TYUddbxIx_KO5U-_jNb1HIO_sxWdaEwKspu1g,1794 +awscli/examples/kms/generate-data-key-pair.rst,sha256=SErHatPyndL0NUb-nElLjRWNLoVg2ALBUuJaWWIqokY,1864 +awscli/examples/kms/generate-data-key-without-plaintext.rst,sha256=nOir89C7KokaoDu1nrz5nu4EPLZg_dThM_6RlQRLxrg,1475 +awscli/examples/kms/generate-data-key.rst,sha256=iwP6qW1QnYy7SWROtQ6c5mNfLD8YiUtSy0P380k_rI8,3414 +awscli/examples/kms/generate-mac.rst,sha256=yfMxjLJuP3mspQnKdfMxy8nyPFBkes0f2GmbBjx67jI,2629 +awscli/examples/kms/generate-random.rst,sha256=dbDNtokE74zkjmkWyr0KhEUpMC6oDNP-uQfuh2p1eW8,3233 +awscli/examples/kms/get-key-policy.rst,sha256=cPbzGXXI6qWDmtMBmWj3Lr5N340Mqpcj7URt8LE1BkI,956 +awscli/examples/kms/get-key-rotation-status.rst,sha256=jdAwWEi8zQNZ5j34yws2EMxtfWfY45-zzAJ56khStoQ,936 +awscli/examples/kms/get-parameters-for-import.rst,sha256=8haK9p9_iP3gKpMj-iolSGGZXeanuNl7wcmsAHng7FU,1393 +awscli/examples/kms/get-public-key.rst,sha256=B3vF0Fni1l3-N6HxjPvMcVecpjmdXPIbW5TLsOQYZgs,2352 +awscli/examples/kms/import-key-material.rst,sha256=JwHrbmrbjcfM7MDBgeeOYrn8q29SKUmHNS-FvoIjCQ0,1688 +awscli/examples/kms/list-aliases.rst,sha256=Qj8w9X2eRuEvmnfCGAIhArg6m2y1rAG_35EpQl3-8xo,2783 +awscli/examples/kms/list-grants.rst,sha256=sRDRy8GKeqp8IR93Bhcl8mEhrJUo4TVhckdSJoJL3Ac,2611 +awscli/examples/kms/list-key-policies.rst,sha256=DqSoBwSISPTsuYOaPCJVKBCH2WiNyGjOu_e_Eyn1Vis,926 +awscli/examples/kms/list-key-rotations.rst,sha256=4svVPY5TDYF7TKOc4yUPYIkjwoFdm38m20ZG9dd6g14,988 +awscli/examples/kms/list-keys.rst,sha256=7AU8FcguZhieFBZy1OJLXSVYxD1yeFQsahwct0v1EmY,1070 +awscli/examples/kms/list-resource-tags.rst,sha256=yxMChbUFcsUMuFHkqg--SnFtXSRDLruJWMBZ5QhwRhc,980 +awscli/examples/kms/list-retirable-grants.rst,sha256=vNwoazokaY0bmd01wmSUU2Z2LAxQuRdI8VqIMeJFqIE,2986 +awscli/examples/kms/put-key-policy.rst,sha256=0RShtw3i2AEeLFqvX-F3Y_4bXclotdNudduzGR57iiE,3550 +awscli/examples/kms/re-encrypt.rst,sha256=gkkckSzbDmFtje-AwGWuzKrIEddhQLBXuQkVr-jrbMM,3917 +awscli/examples/kms/retire-grant.rst,sha256=YfvnDEtF4KkRJwjA1mqE73F6Qlape5yauDzZkkg-kv0,810 +awscli/examples/kms/revoke-grant.rst,sha256=tU7dy1BDcDYOEkgT5TBr35ZkLQKEOdjOTSoxptAeU0A,776 +awscli/examples/kms/rotate-key-on-demand.rst,sha256=vzTAKK9MHfTtCn2thIcolK3tuPG3bDqVWK4owRvVo7c,578 +awscli/examples/kms/schedule-key-deletion.rst,sha256=54Lj5xJSaK1ETKOFvEVbUj08fdtcNPz2dVeuohJrLZ4,1470 +awscli/examples/kms/sign.rst,sha256=QlFiaYZ0o_Re6XrflHY5mEg08kf-nA-NezqG7uqCHrM,3150 +awscli/examples/kms/tag-resource.rst,sha256=OL8u89tF_q7W6d9ew_FjfGLXZiGgaO7VTAQytqtey7s,891 +awscli/examples/kms/untag-resource.rst,sha256=IBcUXHx_OPeeFOTBunGqjOGmiQqitdlufDAXdFqDzVg,836 +awscli/examples/kms/update-alias.rst,sha256=EEM-3C8WyBG5CcC5OtscHXCaemkRH0m2j5B8KGYINdA,814 +awscli/examples/kms/update-custom-key-store.rst,sha256=uFft481lH9qEBbmkBZorQkR_VbNLbo_pnZOtBt5OiIA,6772 +awscli/examples/kms/update-key-description.rst,sha256=UjbMlCZUBJUqAgKPWbyZEiaeDmBenYRLkDv3XnQONsI,1896 +awscli/examples/kms/verify-mac.rst,sha256=IkhQtgg649HFbk91numIsG6nIIhP-tb6Ah6-WRgFg5c,1451 +awscli/examples/kms/verify.rst,sha256=SafCHcjajKsuBTNX8Xv8Ps7DV8WiOIROKwwRT6JlO8Y,1628 +awscli/examples/lakeformation/add-lf-tags-to-resource.rst,sha256=3h-tZiAlsNZZgpAi6l0aBqKphs-m69XBQb0AxbDx9I8,984 +awscli/examples/lakeformation/batch-grant-permissions.rst,sha256=vEruZMKkB-FDtqeIuF9waN7IFLWj8NDFHn9orRODCOY,3267 +awscli/examples/lakeformation/batch-revoke-permissions.rst,sha256=l54CLtj4Fd3vPXjFhb37ntVe_d7LycJDRWgdPV4Wdjs,1962 +awscli/examples/lakeformation/cancel-transaction.rst,sha256=43VtPCqEqe-AKhOFjI-8bD5LdCXLv5kS2anD62SVTiU,464 +awscli/examples/lakeformation/commit-transaction.rst,sha256=abxMOX_9D665Qi98RQd7BczmemnoO_jGe_vAfPm9KzA,496 +awscli/examples/lakeformation/create-data-cells-filter.rst,sha256=2SnsVX45dzgPgufrHsCkRzlEHhnse5XH5PrZDq6YNng,2955 +awscli/examples/lakeformation/create-lf-tag.rst,sha256=hH2ed0TIDWemKlz9zXKtFTxxEiXw6TJk7jezrrOKZEo,528 +awscli/examples/lakeformation/delete-data-cells-filter.rst,sha256=XbWzsowBsKsEBols7hzxoJ9CKYxNDQfaszZmizLEK0Y,667 +awscli/examples/lakeformation/delete-lf-tag.rst,sha256=bOMk7ecDxs_X37n43E14N-EX6zWwaKGFUyeoO7aOdQ4,451 +awscli/examples/lakeformation/delete-objects-on-cancel.rst,sha256=mExp2rqZsVBtpv28rCgE6wtaD9mZwe3b-3JyJRFckFk,1029 +awscli/examples/lakeformation/deregister-resource.rst,sha256=SelJaCSWBa6iWaSL2Otn3fvhQKTp0E6XZprTVuTBcQA,591 +awscli/examples/lakeformation/describe-transaction.rst,sha256=RqR_wGNdIPcB_x9MvwGhXAnwiDoLtMBwH75Nz53rwF4,794 +awscli/examples/lakeformation/extend-transaction.rst,sha256=c9ufR5lQkXiFGbOJw_LurSSp_ZqhTyTbrgnhp1-pY0w,464 +awscli/examples/lakeformation/get-data-lake-settings.rst,sha256=u2rg3eIyCefPxZUlrFSqBcogCmx2eQTBOAfWIgP_Lgw,1558 +awscli/examples/lakeformation/get-effective-permissions-for-path.rst,sha256=4B93ScKLPbTDtiWJxyYUK6deD9_NUmIW_FOwGLtGFao,3568 +awscli/examples/lakeformation/get-lf-tag.rst,sha256=sk8NBKgD9oJxTzPo6sZSGigQhMvkHU71my82PT8C_Y8,620 +awscli/examples/lakeformation/get-query-state.rst,sha256=WePzH8FOUEnkYyz_DXTabuXtS_4mckI5PBK_PbHaUhQ,499 +awscli/examples/lakeformation/get-query-statistics.rst,sha256=ndwNX0dFIUV2zb60mxgVl2F1ltniQAsiMV32HcXER7s,932 +awscli/examples/lakeformation/get-resource-lf-tags.rst,sha256=Dca-k-3Ak1HaypFgIteEl0Q2zbDU2PWfLl8Tc0fO1r4,1103 +awscli/examples/lakeformation/get-table-objects.rst,sha256=8UAlGjj1WnuzayE1Q36rru3ILrgGePh7KVzB6032lfM,1115 +awscli/examples/lakeformation/get-work-unit-results.rst,sha256=npljzen8ITWgQazvT7ruzYprhLIOdVruqXT-lLrfVTA,583 +awscli/examples/lakeformation/get-work-units.rst,sha256=5KGkNn9arLpb3AjkVnWFibiDBq4L7teZR72FdS30JNM,1642 +awscli/examples/lakeformation/grant-permissions.rst,sha256=PpmHvLEC5hp1ODrGaSDkZ3cPFfr4KAsy9Ldl-I3gU1c,5630 +awscli/examples/lakeformation/list-data-cells-filter.rst,sha256=HWSOYZ09M8Doeq_IYfHuIR0giYRFcnvNwop7EWBvzHI,1967 +awscli/examples/lakeformation/list-permissions.rst,sha256=J_4BrCEjDieJSMHvnCO7o0377LYbkbGB-g4suIGen4c,6872 +awscli/examples/lakeformation/list-resources.rst,sha256=ZGgTc4jKhE0HLUm7rYGi8TGW0iAKBrEu5kbGGGR4RMQ,1308 +awscli/examples/lakeformation/list-transactions.rst,sha256=uzZ_srvI9an9q7KE2MbrCg4oEFzCuQp5YCMZ9utwVNg,1648 +awscli/examples/lakeformation/put-data-lake-settings.rst,sha256=LBhI-Byc0pyF9rQ3qeGCO8OwtnxFa_GrZhuOnBvjVpE,1166 +awscli/examples/lakeformation/register-resource.rst,sha256=mW4XGLZ8_U7Qk8S3exSoHuDQUuG1RpA6cwRh7UfJm5E,1430 +awscli/examples/lakeformation/remove-lf-tags-from-resource.rst,sha256=ie8GUPr3EdRVwPVQ6efXuq42vTGL7Uv0njVMirMVorg,983 +awscli/examples/lakeformation/revoke-permissions.rst,sha256=tFzKWV8y-xZNNfZqo5R9rwGC0oJ9lyvEwnSVA7rczDA,1041 +awscli/examples/lakeformation/search-databases-by-lf-tags.rst,sha256=Znrjf3DvrZV6p06l5CSDQyf4s_FUsOScYiU2eIa9qAA,1133 +awscli/examples/lakeformation/search-tables-by-lf-tags.rst,sha256=Y_gTQyIt1Z8pJbLK0ZOJVIvw-96Mt7JlJL42zPexsuA,9209 +awscli/examples/lakeformation/start-query-planning.rst,sha256=jhuDPKz_0idZ-2T1k3mqrgVQcOvTWDGa2sZsSW64WqA,800 +awscli/examples/lakeformation/start-transaction.rst,sha256=dFjBZdo1XfXFE_wWTljrCTpX8ms5pEKi85i9BECnjwA,534 +awscli/examples/lakeformation/update-lf-tag.rst,sha256=rahoT5o5PXLX1IrPq0uFm_Pnfddg4JP3cCVGdAy6CKw,494 +awscli/examples/lakeformation/update-table-objects.rst,sha256=qLZs_DisrJhGZODN07H52fLjvPGPbfY6KTWp3j-ylo0,1095 +awscli/examples/lambda/add-layer-version-permission.rst,sha256=oquVPRsrgzMSrcD6UYq6o4i9Yuc9qP3IHPMQK-VCtVQ,975 +awscli/examples/lambda/add-permission.rst,sha256=RM95noTBMjIt2yjVV_23jZhbaYAIjIJBSeYjumf0tyQ,894 +awscli/examples/lambda/create-alias.rst,sha256=Ije0vNGUZUFj4ElI6PqeuhrCX7apmrztx6q9tepPCSE,828 +awscli/examples/lambda/create-event-source-mapping.rst,sha256=5vKgcuepoK77paXHHwwz1XzuFnCQK6k1PQ4UtVk37nc,959 +awscli/examples/lambda/create-function.rst,sha256=AP58970HW1gZt4SahyQLhc2gwwD6VyfRMkInfCbtfts,1410 +awscli/examples/lambda/delete-alias.rst,sha256=qwU3eOabbMoHRGMyTmnTIWKVFCTGgePZHnUXJom6as0,459 +awscli/examples/lambda/delete-event-source-mapping.rst,sha256=CtejbF3cEWb5ShD25m6Xa2PRCJl0MLpUvzT6QKSIBBA,880 +awscli/examples/lambda/delete-function-concurrency.rst,sha256=OUfdqAoMKCtlEyXbo6_WTvffGPeUEoHG1Vk-yNy6GUs,517 +awscli/examples/lambda/delete-function-event-invoke-config.rst,sha256=kHY37w-bj3yZvcuFbl6wk1tbWdTHbwOXs0apnI8BOn4,313 +awscli/examples/lambda/delete-function.rst,sha256=uucefVla47V-2Cgj0vH_xs2KTjxex3utt3Vurw2Uwq0,1137 +awscli/examples/lambda/delete-layer-version.rst,sha256=O5QzwhIgdEc29x83Q0O3u9BFh00PWtcZCTr6YzmUItA,435 +awscli/examples/lambda/delete-provisioned-concurrency-config.rst,sha256=3TkPZWGZrN9ZaAC-DgJPpGl8i0tuvKVq4fCCzECt_dI,350 +awscli/examples/lambda/get-account-settings.rst,sha256=NoPFQQQT0THek-iE0_rEuuHi2DVhmr97AVZqNieAzjc,733 +awscli/examples/lambda/get-alias.rst,sha256=DDA3FwP9w3OCwtjiN3cVVBaSMj67yfM3OXikFoPo1HA,721 +awscli/examples/lambda/get-event-source-mapping.rst,sha256=h6Gs4qE8VY2rCUgbAZknp7X7ymHTQ-jZjUeFJ92Vt88,868 +awscli/examples/lambda/get-function-concurrency.rst,sha256=DZBC5_3LHNne4TF8SVpQ8-iE7RPQ5OUDTGrY5bKn6nA,344 +awscli/examples/lambda/get-function-configuration.rst,sha256=QJiL4phwo6DwTB0fbpAZn3hstLcrY_uaycUGcz6fEdY,1260 +awscli/examples/lambda/get-function-event-invoke-config.rst,sha256=3jHGPB_6uALT0MqYSJhUg6T6gEIxNhCZnCsMgoJ5lpY,757 +awscli/examples/lambda/get-function.rst,sha256=zL4N5Ksxt2frLWJnjLWJ1-5izubMv_T59kHQMMObEyM,1605 +awscli/examples/lambda/get-layer-version-by-arn.rst,sha256=8DgnOAwZlY1gDYUXFS6inZvE5WFGD280hfiy6wVXs2o,1459 +awscli/examples/lambda/get-layer-version-policy.rst,sha256=IL2eJ1-qj5QIIKVPkV_xwSJavtHs1PfUaOphkeDNZ-E,1022 +awscli/examples/lambda/get-layer-version.rst,sha256=gxaVFH-hOzMVtIfiye1w8XHLD8jRz8VBsbCdB_A0oz0,1173 +awscli/examples/lambda/get-policy.rst,sha256=Z8cq6TbfbL6sb7CaNmN1ubLEAt70xaGd02Iy8cA2HLM,1016 +awscli/examples/lambda/get-provisioned-concurrency-config.rst,sha256=fUr6UCx9RjDTIbhGghwKUecBtBPYvisTSCHqnYb00y4,635 +awscli/examples/lambda/invoke.rst,sha256=Z4Hf2qXkkXC9ACJPnuk2O_HxKX5486CbUbh3mvO7shc,1783 +awscli/examples/lambda/list-aliases.rst,sha256=knX-vlTsH_G5ZiuNGX6NMH1L9-oRLoWJj_ZlcjkdWsU,1135 +awscli/examples/lambda/list-event-source-mappings.rst,sha256=_ueTL0K6TbdiIeGiwKCW9qwV_sgumBSkqMDgr_Z0U2Q,967 +awscli/examples/lambda/list-function-event-invoke-configs.rst,sha256=ideAB8rqmD-KJ_Hne6dcGk_nEevVBKpHNWl_WcvFzp0,924 +awscli/examples/lambda/list-functions.rst,sha256=SaLEzdYJFxR0ZxXORuO95L6l9eC80w5FyHjL-GbMHcQ,3693 +awscli/examples/lambda/list-layer-versions.rst,sha256=sH7-WGhrVfiQEPXKsyn3TFG9QNDIgPWKULocwgxOPX8,834 +awscli/examples/lambda/list-layers.rst,sha256=gmsmkyngKC4fN-u13mNiwSUf3s6_2py_DgkOVooxoV4,1079 +awscli/examples/lambda/list-provisioned-concurrency-configs.rst,sha256=Bd7ojvJ7x59-Qs8WvZGA46OKis9rlRJWIRZviVVEmNo,1232 +awscli/examples/lambda/list-tags.rst,sha256=hG2-iWshrnESZJas6HUnyb4uuP65CgI0G-V9jdzCWCk,543 +awscli/examples/lambda/list-versions-by-function.rst,sha256=Er54LbKIG8-aSK_aqDhES99ILqs2xPbtzwJ2yyadJtw,3499 +awscli/examples/lambda/publish-layer-version.rst,sha256=-BOAL9CuOaQvm9a7urdQMYIkHPLhWxIHVrS0eRSb5ek,1412 +awscli/examples/lambda/publish-version.rst,sha256=g7fnFhNs4OwCbRTwtsJHzRcay0uW_-HSYXON10WR5ms,1097 +awscli/examples/lambda/put-function-concurrency.rst,sha256=T4XlW_AVosRvg8GR-tHGxkRFUHmQ9vMrfaMsHbU98WU,580 +awscli/examples/lambda/put-function-event-invoke-config.rst,sha256=hCDULIv__qw_rLEWnY4lMzU0FCUGDUChA0eo-xfPsWc,731 +awscli/examples/lambda/put-provisioned-concurrency-config.rst,sha256=_rLCL3Gf1sX-lPeKsdRC5lHVuep_naccwHEKiiX2l20,597 +awscli/examples/lambda/remove-layer-version-permission.rst,sha256=2SxeCz6Kk7cJ4jyzTvyEaNDGMyBnPlIUSoo5Ap_yYBM,502 +awscli/examples/lambda/remove-permission.rst,sha256=-ZBw4G-HSTgfASb1gkgJk1ab7Oz_PALrjro0BfcXhZk,500 +awscli/examples/lambda/tag-resource.rst,sha256=q8Cyo9Zwskb1TgOj6isB-8v7VjALZ4UR-6od12VHZHY,539 +awscli/examples/lambda/untag-resource.rst,sha256=V0PgjZznY4NWeEoyXXRK8h2D_PArdbWGsuW0SSJXjWY,522 +awscli/examples/lambda/update-alias.rst,sha256=465uw4gnrA5xJLCKm0N5D-WSheDon5y1kjKMB4gHVyg,751 +awscli/examples/lambda/update-event-source-mapping.rst,sha256=8IVuu1aRWvN9UaNeJb1yARo9sTW09nS0U46piyJpw4A,879 +awscli/examples/lambda/update-function-code.rst,sha256=zIOQGWsH0vFIQIRN9rtoVtPoUjUlRd7vggW6DC6cReg,1335 +awscli/examples/lambda/update-function-configuration.rst,sha256=8BOR_-H6o9OpG5-V3wK9oSUSLStTv4PlmznFCuukNqo,1315 +awscli/examples/lambda/update-function-event-invoke-config.rst,sha256=mWEAfRctzD2PWDVE6Qx9SwjUNfRNM0Qa2Ybc2Uvg5ew,883 +awscli/examples/license-manager/create-license-configuration.rst,sha256=hr3w3oA6tqDNGp6bFgD0w3q_2PFYrVXRqW4vg3Q3QTQ,1088 +awscli/examples/license-manager/delete-license-configuration.rst,sha256=G9GIroKjrnWykiJx-YUG8vfo8VymGMtoWi4j3dmcXuU,374 +awscli/examples/license-manager/get-license-configuration.rst,sha256=bwfRhOxmwtH2pobKIRthTYdZko8O62W3dyFgrPxQTKs,1781 +awscli/examples/license-manager/get-service-settings.rst,sha256=BkhQgRT_SDwnTes5PqnGPcgLualcRpTiNfMTwiUU5_M,768 +awscli/examples/license-manager/list-associations-for-license-configuration.rst,sha256=UkXiwdW1NGGu3-Bp0VY5pBMGAc_emvk2_St3Cc--18I,1024 +awscli/examples/license-manager/list-license-configurations.rst,sha256=pU3HEsGWm_67XiD77K5OCchuC4CPG-fP8Urna9_tkww,2482 +awscli/examples/license-manager/list-license-specifications-for-resource.rst,sha256=aXiKrtWZ7qCr24GHvJVThbzfTXm6FbjXy8Q8SQojWCM,525 +awscli/examples/license-manager/list-resource-inventory.rst,sha256=Grbn7spXpqEeZlhSl-U7EP2d3hJ73ExRdaCrmTHJbCE,1451 +awscli/examples/license-manager/list-tags-for-resource.rst,sha256=6s-0hvoJMkl2zj2YnJkWnGD2Of0v754vTYMe46G0n6M,482 +awscli/examples/license-manager/list-usage-for-license-configuration.rst,sha256=RVc0dQvJosQGF9KNWy5l-oAFMTb15cWq7y9TNUzJOlQ,944 +awscli/examples/license-manager/tag-resource.rst,sha256=oUMX3XoLAl9saYV_HRipwMn4c14zTj87EV7S_8EgFAo,404 +awscli/examples/license-manager/untag-resource.rst,sha256=brf2CAb84-4cn7v844a1iDEzx37CdqXpNFA-S6DKl4U,412 +awscli/examples/license-manager/update-license-configuration.rst,sha256=pGZQlnuD8Enm-DAuhJgPPZCbMKoCaLNCGni2Iw3XuYw,861 +awscli/examples/license-manager/update-license-specifications-for-resource.rst,sha256=0VGzndFx614Z_EJ_1d2owHigoHBfh8bfxiLg-X7R4ks,799 +awscli/examples/license-manager/update-service-settings.rst,sha256=n4Fl9I5fss9Hg2DA3xDQNWPQGpfsGPPvAG_4KcULvgA,544 +awscli/examples/lightsail/allocate-static-ip.rst,sha256=x5pTLLT6-xhijHXntpiCrAhFvjCnkluOh7oh7h1ijh4,824 +awscli/examples/lightsail/attach-disk.rst,sha256=CkfFwwmhyoN_Hgdx_OHgTxaoQBlc87jZkGYftsyRBQU,1589 +awscli/examples/lightsail/attach-instances-to-load-balancer.rst,sha256=gV0cUmrHkWlI7oqL3fEBzCaa5AIy9GGeideF0Dv6A04,4077 +awscli/examples/lightsail/attach-load-balancer-tls-certificate.rst,sha256=aYI1DhDJt8LRnzJiQvwTg1B2fyV9RN4AIS9aZGIr8wI,1677 +awscli/examples/lightsail/attach-static-ip.rst,sha256=6jiPgkt0ElP_ritdcrJfWHWlXohxgPJ20nCUvedclwQ,1496 +awscli/examples/lightsail/close-instance-public-ports.rst,sha256=3qug4HvBKE1cw0-VDS8uKdKomCXavViSBShCBpHLPjg,864 +awscli/examples/lightsail/copy-snapshot.rst,sha256=UGaxPysz-iI3tcBKS9mnloWkCj-PJYuqPcKbHjTLDLY,5521 +awscli/examples/lightsail/create-disk-from-snapshot.rst,sha256=jRgA_yZXvcp7JRR-A7PUcJh3e10kbP2mBmB43v_OKSw,1332 +awscli/examples/lightsail/create-disk-snapshot.rst,sha256=DhZGgkLF7VOz5Bt1G4T79HGdQ-_N9PPQhCfHe0hWnMI,3504 +awscli/examples/lightsail/create-disk.rst,sha256=ur7RKu2XbAti7TMU5SlFMACP2zOKSAo3DxkIXj4UtUY,917 +awscli/examples/lightsail/create-domain-entry.rst,sha256=UFk4XjuUeVaFlEH_I_qd3R1Hdo12bplthheTw6ZeQr0,1489 +awscli/examples/lightsail/create-domain.rst,sha256=1aFXRQyG40z1NQkjju3NeHq-TOdeUSGM0hdqJ57g5f0,1338 +awscli/examples/lightsail/create-instance-snapshot.rst,sha256=HF9tSAXxtW9ZOLGl93d7YlXZNgfu1Hut9Qf1ijPS15U,1572 +awscli/examples/lightsail/create-instances-from-snapshot.rst,sha256=5PpkTbGYxq_uIm7ltRPTj4C1zipZ-v48dMWWH6VmVUo,1239 +awscli/examples/lightsail/create-instances.rst,sha256=zV74U-4HZZIOFukvs7OQ65jUladwE2sEgHVzRuIh_sc,3151 +awscli/examples/lightsail/create-key-pair.rst,sha256=Oc3DYDTB6k5nsfHRBtqOGap3FWp1_CiqAwPfx-MljSI,2851 +awscli/examples/lightsail/create-load-balancer-tls-certificate.rst,sha256=mepn7hf4YeOH24wn_LXgOXgbZFfTeQ8lj_Vh5CJB0h8,1920 +awscli/examples/lightsail/create-load-balancer.rst,sha256=L8hK6Qv2YO7O_tDYYsaxmvKZxAKi5szGHJkv481afuY,2567 +awscli/examples/lightsail/create-relational-database-from-snapshot.rst,sha256=ei7B-otQM_nx4tJeyxzQvU0nPvV0QCJ9XqUWj7ngT-k,1380 +awscli/examples/lightsail/create-relational-database-snapshot.rst,sha256=ldBnCkrX4X33IUr3E8ohNABcB8AhsAqqFd0vSzpfNH4,1688 +awscli/examples/lightsail/create-relational-database.rst,sha256=OU6UtJshR4lpQthTlyGEm2bOAJr0vaE2CzJ5xFAC-NY,1339 +awscli/examples/lightsail/delete-auto-snapshot.rst,sha256=8j16IZjxoF3ccP1Gvc6JkL0sdattBoDR9G1yQnsbi2g,1133 +awscli/examples/lightsail/delete-disk-snapshot.rst,sha256=_E5Fzs9S6DcF-7-UqWimujCEJccmqZOAbeipj-FLn9A,851 +awscli/examples/lightsail/delete-disk.rst,sha256=KkfGzkKLYeM6GmkLqz-KFZzUbSBQQc4vTfLnUwD_RKY,774 +awscli/examples/lightsail/delete-domain-entry.rst,sha256=shUYQr_0kP1n783N_gl1HAudWi3xauz9y8Rj8v1ynC0,1087 +awscli/examples/lightsail/delete-domain.rst,sha256=wNjF8-ldQFcumR_gLzEaB-FVBgSbE1CHaQg92KepaHk,1011 +awscli/examples/lightsail/delete-instance-snapshot.rst,sha256=nj-msYyL3P1zoLODOynPyGFKC06gjTD9IBiXt1lbhsI,842 +awscli/examples/lightsail/delete-instance.rst,sha256=Wm4kichYljLNDbKV4VBvGy3c3GM1Q5EvzpfEPjXkymw,1967 +awscli/examples/lightsail/delete-key-pair.rst,sha256=gBToWycMKqTfs5VR_92RSQJcMTJPqmocwurt1ZF7wkg,710 +awscli/examples/lightsail/delete-known-host-keys.rst,sha256=cDHwCLQIz52mHwEgvFvIP6qjCkJBTPlJ2YkYzcV_DZ0,1131 +awscli/examples/lightsail/delete-load-balancer-tls-certificate.rst,sha256=b0QwpLwrPRg_J7lFdjxp3ZwJBChZ_Obd1yxlhR-o83E,1558 +awscli/examples/lightsail/delete-load-balancer.rst,sha256=iK4H2ofUdD8P6LO6G14F5NR-KZx_ot2iMHn4XP6L2gQ,2082 +awscli/examples/lightsail/delete-relational-database-snapshot.rst,sha256=KJTpZMB5awxKj57SVIKAUYBVRBfy_e4X4T7tnnTDCDE,949 +awscli/examples/lightsail/delete-relational-database.rst,sha256=WZAKntAUsIXmF4AbP68qs7J3Xw4c_7Eh99lF7qhox7g,2163 +awscli/examples/lightsail/detach-static-ip.rst,sha256=9B0FwAQ1HB__tfxPWdFO_yV5OWw9RoNN3hnt91HsBKE,1469 +awscli/examples/lightsail/get-active-names.rst,sha256=7uJt0ZLMBAYjbjKBFKJOegN_tv66prl95eF9yjhAJHA,359 +awscli/examples/lightsail/get-auto-snapshots.rst,sha256=K9Pzut6DtmIiyZPjg9UwEVSo7oazuAo3irfg_zM-YRk,1374 +awscli/examples/lightsail/get-blueprints.rst,sha256=9oCd4Vbt8-x3bFKuUcTwWmvDiy6ZsiDXLpqVEu4z0WA,3969 +awscli/examples/lightsail/get-bundles.rst,sha256=iFcth4n0zXOsC3nQBV8nObSP45n14jl5W-p9uxe227Y,1744 +awscli/examples/lightsail/get-cloud-formation-stack-records.rst,sha256=ZL5k14dPCnVymYwjHRdH5IyCS0xvv-W6j3AYVXmBNcE,1628 +awscli/examples/lightsail/get-disk-snapshot.rst,sha256=-nwMEtwHAGnnNsiR5y0qMVPIK93wFaZa5N1AkXRwAZE,1100 +awscli/examples/lightsail/get-disk-snapshots.rst,sha256=q2itcQ9o42lIkrtB4ylVfFY-uKgbzMlUVFyuFMpviAc,1936 +awscli/examples/lightsail/get-disk.rst,sha256=rckoI5g1Ufe5e42zUr87Kz4mSyOc43KWYIBccC1GCyk,1011 +awscli/examples/lightsail/get-disks.rst,sha256=rblNfFzftfZSHmAuQITi9JJdiMOpj9OxDVjhStw66Qg,1777 +awscli/examples/lightsail/get-domain.rst,sha256=wsJT7sqyhIrj6YqKB-GOK3vqi3zqI46neVupKlbmLWI,2523 +awscli/examples/lightsail/get-domains.rst,sha256=LRbIlCw3pZxcvF8uP4fEKkzjQ5_ZQnGT61FoFHswRLY,8130 +awscli/examples/lightsail/get-export-snapshot-record.rst,sha256=4JwM8HvVVNtnYQpNA4_tIJkFws7LCmaS2hKXmVTGJBA,3687 +awscli/examples/lightsail/get-instance-access-details.rst,sha256=gTtv9ZUgPR8MKQMEv1SpXMuusR1wPQ8OCcR6IcQM7PI,6117 +awscli/examples/lightsail/get-instance-metric-data.rst,sha256=o4hG4x3NiJlQ8B4cvKAvGQhqUbFwnCK3XAvzsxqmHco,2529 +awscli/examples/lightsail/get-instance-port-states.rst,sha256=nAiaD65Ci9GmOS2I6Ji0SvZHS-4MIWpyArHSDGMf2Nc,775 +awscli/examples/lightsail/get-instance-snapshot.rst,sha256=9pjev5cKsdj70Dj3Xxui0FJC5PvWypdBTcq1kJKYs9A,1168 +awscli/examples/lightsail/get-instance-snapshots.rst,sha256=1NSK2mxdT3pVaZMo7cFV85JWCUVR_U8lVgEo79uc7vI,2300 +awscli/examples/lightsail/get-instance-state.rst,sha256=oXB_iZocRtBRLwz0bK47xsBO9xA9gh9E8E3m4pkdkI0,325 +awscli/examples/lightsail/get-instance.rst,sha256=rZpBRIFYf1Gznj1Q1P-Bjh4YvcpWT0J-gx4S-8_Q5dg,2918 +awscli/examples/lightsail/get-instances.rst,sha256=J8iIEIcM6A0I4lbZW8DjZ-A6s6oIHlOjvUSZ82uSSEM,8558 +awscli/examples/lightsail/get-key-pair.rst,sha256=Qu1WGIMfJJFsnuAeYCw5sLHsLXnL1KHrjTP8Lu5oF6M,756 +awscli/examples/lightsail/get-key-pairs.rst,sha256=HRdA_C649brAfIVWgznktm7SZBqsBOi6qgtet0hvMSk,828 +awscli/examples/lightsail/get-load-balancer-tls-certificates.rst,sha256=LsUH8iaKmQ2QIwx3h57brUfsRx8pX5oZt0dfTCrn_90,2039 +awscli/examples/lightsail/get-load-balancer.rst,sha256=UOwQ5VxNf4VKtHUD85mR5SqfyXMqpUoFO6E6aDWEjcE,1923 +awscli/examples/lightsail/get-load-balancers.rst,sha256=J8fum3JF_hbdRnwA58VGYYBmqLL2Ce7e2iQMLlY2D4s,2106 +awscli/examples/lightsail/get-operation.rst,sha256=sbtiQ0dpAnkuwXJgr28O3V2NeYGsFdZUBmsb6-cGXH0,766 +awscli/examples/lightsail/get-operations-for-resource.rst,sha256=0VPXuzyL_T6UPQfpFu5H_kjn3CaAiUkE9AiaSPSJ7VE,2180 +awscli/examples/lightsail/get-operations.rst,sha256=zYiZPYWHpmgmqyNpVpmXg_NQAwWkPb5iMMcy2Y08yD4,2071 +awscli/examples/lightsail/get-regions.rst,sha256=6KiRmDKaC-SicEHCpQmwADlqwndVKAStGB6zJbNfO8E,1356 +awscli/examples/lightsail/get-relational-database-blueprints.rst,sha256=00ih6p8TZjcf8i0wcUZtv4mMUqR-xlMB4eJLqzJOKp8,2267 +awscli/examples/lightsail/get-relational-database-bundles.rst,sha256=9-QJBN5e5pjGneTfZUWCtzq5wElvvHkEbGot_PVD3WQ,3801 +awscli/examples/lightsail/get-relational-database-events.rst,sha256=7kDoZA9vYdzS52txb78l1LGFrJNSCQ3rcsCpMVmDZ7c,946 +awscli/examples/lightsail/get-relational-database-log-events.rst,sha256=g7u29pcsNreKHdY7xl1sRvlnKliK21E_Pwxl6R5ysp8,3138 +awscli/examples/lightsail/get-relational-database-log-streams.rst,sha256=3UAuV75Vhn7Hf1KA_Da53_FVreLFxafQmyu8c0_aK_c,443 +awscli/examples/lightsail/get-relational-database-master-user-password.rst,sha256=8YbsWzzpYLdcJF-IRCqWT3z_ip0EI-JiVqrRxQy20KQ,464 +awscli/examples/lightsail/get-relational-database-metric-data.rst,sha256=h70Ejv4P5TRAvQ61yMEG3KL3Clc5eE3I-UkfwYZ8kmI,2102 +awscli/examples/lightsail/get-relational-database-parameters.rst,sha256=vw3yanffK08iGWM5P-X2N0um0L0MY9P3MU1riKb1aAE,2297 +awscli/examples/lightsail/get-relational-database-snapshot.rst,sha256=lHs_eRYo_LJ-FK_UZu3wXFvzduPD6jAEN7Z6C5Rz8jk,1340 +awscli/examples/lightsail/get-relational-database-snapshots.rst,sha256=ehGNfdo-REer2fBFTLetztgCHhSRrtRdDoLZof4DDpU,2557 +awscli/examples/lightsail/get-relational-database.rst,sha256=euSoMIs1y4XtK-lt70Gzb9GRR7w2TBcD72XZa3kaNMU,1784 +awscli/examples/lightsail/get-relational-databases.rst,sha256=Xss0uqpX6AMq9QyV8PzcDFMqkKX299enEdbGZrXXtLE,3658 +awscli/examples/lightsail/get-static-ip.rst,sha256=j163pHU7giBFW74Dv39Z0CLFEaW9Y9XGRhYXWhXd4uM,732 +awscli/examples/lightsail/get-static-ips.rst,sha256=O55KaOGWyx85EVA0vOPsFQM1aoWqWKU-lTz-DzepgJ8,1389 +awscli/examples/lightsail/is-vpc-peered.rst,sha256=6-a2O9qVxgQfuoIgdMH_PgId8cx_9JmW5ElrQdA5-bE,336 +awscli/examples/lightsail/open-instance-public-ports.rst,sha256=HqYu3fUpI5eCoDKWYkR6lFeWAv7aaZW9xZwE5P40_CA,858 +awscli/examples/lightsail/peer-vpc.rst,sha256=nwo9V62IDvggRGg482M2NpDmf-CGXbYfG4DpZ01u9Ts,815 +awscli/examples/lightsail/reboot-instance.rst,sha256=PUk5YMyMcRLdGeQSwMnAFF72MJCsAulgD7UcGN2-6TA,813 +awscli/examples/lightsail/reboot-relational-database.rst,sha256=UjNwAFmvC6W0t2sVtlnfnmtzy_6rocPtHvfUIhB2lCk,894 +awscli/examples/lightsail/release-static-ip.rst,sha256=bxl20v3-pogZoPXk3CgKJ3-pKKLHQ83PyWGwUk5hAEw,783 +awscli/examples/lightsail/start-instance.rst,sha256=g3TX2Nds8j-ZTcdmHHJcn-bqI5VC8PM2DANAMmCRSjw,779 +awscli/examples/lightsail/start-relational-database.rst,sha256=eZPPO6vRugJKFVGP3kAmN6hwP9z2IVGdybg2P7I7uE8,851 +awscli/examples/lightsail/stop-instance.rst,sha256=TPBqthGbvRUx5p9N4vy4vuFgoFGiqE_2iU533bSutSk,770 +awscli/examples/lightsail/stop-relational-database.rst,sha256=_KsUDRwFAiXSb5tnUSS-Re9ReDcJ_66GU0MA6LCnz3Y,844 +awscli/examples/lightsail/unpeer-vpc.rst,sha256=_cy0wjlvhNsy0wAuYD4ui5SBmkaaNa5Qg1z_KISoPlM,824 +awscli/examples/logs/create-log-group.rst,sha256=38Uk7E3o24TSJ-2f1ArpgcDPyP-jEXMBB0e8nGZuNTU,116 +awscli/examples/logs/create-log-stream.rst,sha256=RY2PfvP2_IW1HFlZ8VthJkxppIIi5NkH_T3drRI5xic,175 +awscli/examples/logs/delete-log-group.rst,sha256=kptGiGmE4vUHSbUIIavyiEpWMFTRzvLGgX-fMowt3qw,116 +awscli/examples/logs/delete-log-stream.rst,sha256=gkjdvOIfVOiQb9-CZ0Ys9iuUrlz1aZvudAS4qcqDfcs,181 +awscli/examples/logs/delete-retention-policy.rst,sha256=Om1FfMbdadmqXje63pxCXHXNRYXkI-1DPTEF-NTcuS4,180 +awscli/examples/logs/describe-log-groups.rst,sha256=5cp-IIxrtsw76m0bOmXYZPvhuGKeagzeyrnq5ec_LV4,472 +awscli/examples/logs/describe-log-streams.rst,sha256=F_1I17ZRRQD7OlZ26GUX8J4JuCKnXFoN8rfNMus1vmA,731 +awscli/examples/logs/get-log-events.rst,sha256=Ajrvd1U8N7cmxz24ZyV_YrItAbXq1GplB8m7kAZIYqA,879 +awscli/examples/logs/put-log-events.rst,sha256=FZgdBKgKpCD9JY3utTU7dJDFSyfztX3QQ4fI_VSMcEE,1095 +awscli/examples/logs/put-retention-policy.rst,sha256=bhj87TciRV11vh3AwZfeTwBfVdD_5o8RK2t_fqZJJrk,167 +awscli/examples/macie2/describe-buckets.rst,sha256=OEg49u_QUtSHdkjPwCXt55JBUWpTNfEmSoiYdwJJDXo,8467 +awscli/examples/mediaconnect/add-flow-outputs.rst,sha256=sYNCCjhU5UoIVr5EpuOm8ku9O2DO6ceuXPYacdtwSq4,1698 +awscli/examples/mediaconnect/create-flow.rst,sha256=_HkumwUTixRgM6nLvFbinJuuXukq-DZ5ez3Oq0jwoHI,1469 +awscli/examples/mediaconnect/delete-flow.rst,sha256=uzXlXQGRfY7GucGxeWH4dTVCbxe_n23-pKsh_Db253c,570 +awscli/examples/mediaconnect/describe-flow.rst,sha256=CpVxAmVKxrPrE6zGkKLIGLL_GivhSew4X7cPwZ6UF3o,2729 +awscli/examples/mediaconnect/grant-flow-entitlements.rst,sha256=VGS5AWfNCfLrY9ptT6BVxhLOlygTkOFPf_G_142Ygk0,2101 +awscli/examples/mediaconnect/list-entitlements.rst,sha256=-ZqnjwV2XkZd5WtWbGgzaG5r256n-5gsOOU2uHysIgk,641 +awscli/examples/mediaconnect/list-flows.rst,sha256=PJH3suKMqTDa8senk-D0Yh_wHQsLTNSjjqFXNXzePig,1075 +awscli/examples/mediaconnect/list-tags-for-resource.rst,sha256=HfSTTP59_J6ZHC9ypE4wGl3Fgx4xWFPi6vF76GVQfmA,665 +awscli/examples/mediaconnect/remove-flow-output.rst,sha256=cC0TAkrrKo7SycBR8OxHi7S-vs9JokLQDj79rVwwSTk,824 +awscli/examples/mediaconnect/revoke-flow-entitlement.rst,sha256=H_JxUa1x7DA8_CHd-6X1WIau7rdpstEIgsHu0Rsu7LY,888 +awscli/examples/mediaconnect/start-flow.rst,sha256=zU9pcKrBgImIBbxTlfIntkGn5lzSaJQmG3X2SSEbzGk,598 +awscli/examples/mediaconnect/stop-flow.rst,sha256=qgJhopZ0YTtZLce1kgEdIPguBUIy7xlnrXi-m-HzHe0,560 +awscli/examples/mediaconnect/tag-resource.rst,sha256=W4n5OiCOX60JYQ1S_9iXAvFFxMJQYzdMUAk4z-RwJn4,587 +awscli/examples/mediaconnect/untag-resource.rst,sha256=bBsxp9DVbi-UAyr0w3vx-6EraMyrk1cb3cCSTXrRUzY,617 +awscli/examples/mediaconnect/update-flow-entitlement.rst,sha256=Md1BGEuebnwbVU2gNouOIh1V9vi8mbMwljpmEvp0Vgk,1513 +awscli/examples/mediaconnect/update-flow-output.rst,sha256=3Saqn5lsTebdSACcZrClDLP1rhBga9qDAPxIXjpghIE,1129 +awscli/examples/mediaconnect/update-flow-source.rst,sha256=UsPoUavRSfR6qyeZFEF7K_H0EpefXg3k6x_2unxTEwE,1300 +awscli/examples/mediaconvert/cancel-job.rst,sha256=YjnGvQ1NJTLupIUoWHXB-KreuXDhkRFFRjOGFEkyRvA,736 +awscli/examples/mediaconvert/create-job-template.rst,sha256=ms_p5i9pX0aeCRCMxAyP7RNAeoB1LCwsfQphKO3L_Tk,1351 +awscli/examples/mediaconvert/create-job.rst,sha256=6qEpha95cmlyhuPQM29IcwFdzAtMW1Rspmy0dQpjMEI,1190 +awscli/examples/mediaconvert/create-preset.rst,sha256=2zl4DDT4zf9-32amVio-sfX-6xTxiijAWvVc5ncHBus,1063 +awscli/examples/mediaconvert/create-queue.rst,sha256=aEXpO0gEtzQFqHCzclBDj4stM_sydrgt8c1M5L0RWgU,1091 +awscli/examples/mediaconvert/delete-job-template.rst,sha256=H51yjqPIxIgvrDge3AD0qn6MS-Tw8oPwQUG8w0oq-AE,617 +awscli/examples/mediaconvert/delete-preset.rst,sha256=-a6ZB7VRwJ5QKdYQ-s0UtDcvHc9D5Buc4cpBlvfwPD8,589 +awscli/examples/mediaconvert/delete-queue.rst,sha256=6LhXpik3EGcNjDYcuQQc2Ix2yZX3xAwuSGbUmXsBxdo,725 +awscli/examples/mediaconvert/describe-endpoints.rst,sha256=MC9KYC90d18jxKAQ_o7TMHWw7xoJxs7BEfAGo8OV4n8,591 +awscli/examples/mediaconvert/get-job-template.rst,sha256=y4yWHzV4uu4Xs-twA103jhkezU7Ih0DZNsqqDvWX_UY,1043 +awscli/examples/mediaconvert/get-job.rst,sha256=Pr5Tjmn18uCgWOVweedOlwsKtfifdHpJoDtSXcFgFt8,1756 +awscli/examples/mediaconvert/get-preset.rst,sha256=jhJ22gi6-edODhB-MBAtiLDLR76E8knqsZ80w0DCOgE,4470 +awscli/examples/mediaconvert/get-queue.rst,sha256=3zD7DjTFuvcf3Auxp8FhEW2dyR4JX59N1ulwHwbzjCw,887 +awscli/examples/mediaconvert/list-job-templates.rst,sha256=s4dvyW4RBHfFUQ6vDySmcGE5ALRliD1fnpASfyTk6bA,5285 +awscli/examples/mediaconvert/list-jobs.rst,sha256=kVQkVbe3nwlts-FrK9ksBWCuHrqYeiWbLVYViJYZMJE,646 +awscli/examples/mediaconvert/list-presets.rst,sha256=VOfxhw8ndA_lmHt5DyhO1rcQIBLCG5gxvfT71XQ0uzg,3006 +awscli/examples/mediaconvert/list-queues.rst,sha256=J0m3wsZwTMEHxL7CDWIKZHJqQTNu3oAOG5I9cGFbnWg,2170 +awscli/examples/mediaconvert/list-tags-for-resource.rst,sha256=hlAfJ48lZFrFzUwVytMDEhlGiLANFvMmhcVO8c3_Rwg,846 +awscli/examples/mediaconvert/update-job-template.rst,sha256=cha8EgElTYDTo9wqAkRy68NzkKHQ134GjLPObVviLKs,4993 +awscli/examples/mediaconvert/update-preset.rst,sha256=P3SZUNgobliUIOWTHIs-vC6EFbdEM4G9U6EZjwbD18M,966 +awscli/examples/mediaconvert/update-queue.rst,sha256=54eaqGNJaSMgu-ZmJE0IRKxKUZPjdCMKPUH1wcHaMWE,909 +awscli/examples/medialive/create-channel.rst,sha256=U0-0A_CKxLKchvEwQ-lhTzM-GHlGe7IQQGPMJue26Hw,8588 +awscli/examples/medialive/create-input.rst,sha256=Y51WHeZm2aDFlkWoltsHwnXBmQj1JbZm_n6iFTVrtuk,2018 +awscli/examples/mediapackage-vod/create-asset.rst,sha256=Ip-NSMUISMa2-n32aod9ep_P3J-w_KZXoFXAuwJATdE,1652 +awscli/examples/mediapackage-vod/create-packaging-configuration.rst,sha256=bWVdQejX2fryB0BPpuO-MVbwsmwfY73-w_2BCyYuPj8,2073 +awscli/examples/mediapackage-vod/create-packaging-group.rst,sha256=IEb4Tk2XKbtooKt-VFKAK0_hVaLnf2fHH5raA1rrz2k,573 +awscli/examples/mediapackage-vod/delete-asset.rst,sha256=X85AY4AzaT9h5iCFCFiGHnbKQzkOgZqiPxfuNW--PUs,379 +awscli/examples/mediapackage-vod/delete-packaging-configuration.rst,sha256=8G-qiw6vPF-Efg48CWIOCNzb8beuDTHOVaL3HPvpYO0,452 +awscli/examples/mediapackage-vod/delete-packaging-group.rst,sha256=ga4E1Ns9jIS4qXvSknT9pBZ-sTZTkK0eoDdwYFFqw68,431 +awscli/examples/mediapackage-vod/describe-asset.rst,sha256=KFt8S5sXw7L5kAwvS_JbTRtNTZorH5JoF4jaAt5F0uE,1681 +awscli/examples/mediapackage-vod/describe-packaging-configuration.rst,sha256=Wxb7ulWfN4X_l_C5eXwFwbrTz9ibEw5s2KzqMylO3yA,960 +awscli/examples/mediapackage-vod/describe-packaging-group.rst,sha256=YMYqU8fWdD7JOgOOgd4xrOeBfuzTBrTn6_CyNivB5Hk,598 +awscli/examples/mediapackage-vod/list-assets.rst,sha256=LPnMHPJ9LZSQIZKFX3U45uVLsK-6CqSocDNr4iB3OeU,742 +awscli/examples/mediapackage-vod/list-packaging-configurations.rst,sha256=EyYf8bKjh8bTxmPkZJQen9NRZqLFME9b1N4tVpbDoak,4338 +awscli/examples/mediapackage-vod/list-packaging-groups.rst,sha256=TmlLkKOa9zCsUgs4MDCtK2PPuLGbner6fGY6eYYcJkM,1001 +awscli/examples/mediapackage/create-channel.rst,sha256=v1i0pOra8zwowumdBVfsCDZjKAyAjj_n48gBijsDfkU,1449 +awscli/examples/mediapackage/create-origin-endpoint.rst,sha256=oIlT7IUj2d0NMIFv0JnNqOZHZBf0acEJCeo5aVVSm_I,1994 +awscli/examples/mediapackage/delete-channel.rst,sha256=zOoKCUjpdEfRJ8_k5hLb-Ln9r-QdnkVBLH6uOY7T20Y,372 +awscli/examples/mediapackage/delete-origin-endpoint.rst,sha256=wxW8QTu0IX9XY5q3dDlzjJ8VVeunLG4evygRxxTTr1k,376 +awscli/examples/mediapackage/describe-channel.rst,sha256=w0aj3jYhf9mPY3ptevMME1824AYSC8FxQA1BEuaAi5Y,1389 +awscli/examples/mediapackage/describe-origin-endpoint.rst,sha256=J8x_a_Azm4_iQctRTyN_sREAIWCKoCzZfKVlAlXWJqQ,1514 +awscli/examples/mediapackage/list-channels.rst,sha256=Puqj1YAyuTszwI3tH0D8ww3sYcVNMr6EPYb51phCodQ,1591 +awscli/examples/mediapackage/list-origin-endpoints.rst,sha256=DNgPdJcVU4JQWLIkZ-6ZMJ_VaTFxG9Dcta0mV6OvCw8,2954 +awscli/examples/mediapackage/list-tags-for-resource.rst,sha256=nikOz0rFh9Z-QLu6jo8_tZOCIg86rACQI-DaQdGiWLk,583 +awscli/examples/mediapackage/rotate-ingest-endpoint-credentials.rst,sha256=Swmk7Q56d4fSsYbqE1ucb_6Ha52rjx0iyg9oQo-qz60,1514 +awscli/examples/mediapackage/tag-resource.rst,sha256=aRbCwRGRkrpAP2iIGrd___Cq_6UlEQcak1H33B9PeTU,543 +awscli/examples/mediapackage/untag-resource.rst,sha256=z2jVok7YX9NbfcJbgw1RPIcavFTCOax869Gr9ObsZWc,515 +awscli/examples/mediapackage/update-channel.rst,sha256=LvXSgmGLj8gHnZWkJRPBKY0XeW8f2-VKOsUhCwNgVXU,1502 +awscli/examples/mediapackage/update-origin-endpoint.rst,sha256=74-vfuO1dBE6yFNRpEKNoNOleJdHiFAs6X5L7zzYON4,1552 +awscli/examples/mediastore-data/delete-object.rst,sha256=JdlwvmbJKy44VePYBBY0CrSyvvEXH3v9HTnJOKnjcsM,462 +awscli/examples/mediastore-data/describe-object.rst,sha256=HTcElZj0vA6JJURwcQqQBJMyFKDpLasMauEtS_pPrS8,733 +awscli/examples/mediastore-data/get-object.rst,sha256=dkQC19zvRGgv9Pzg-ovvIdKLGojwhB_7fKqymHNZKrA,1366 +awscli/examples/mediastore-data/list-items.rst,sha256=7JUPHwwGT4YZrvvJUEA4yj2OsJdUPCgpfheQigIz2dA,1704 +awscli/examples/mediastore-data/put-object.rst,sha256=zjjuxWD1FYPJRot9iBA6x3r2_CLAQ6dsOsrD4l49xvg,1491 +awscli/examples/mediastore/create-container.rst,sha256=AtQhKOSYt39k5hHDpeiNeeKUCd6o8GCgXQxgv3HIHkY,651 +awscli/examples/mediastore/delete-container-policy.rst,sha256=UAD30sFactgFUqT2dnIKHGVEpPVLyn5PSdIPQuWSUHM,573 +awscli/examples/mediastore/delete-container.rst,sha256=-UevFW7CRS_mr-e11NtlV4closbmz-R9xNjZuNowl24,447 +awscli/examples/mediastore/delete-cors-policy.rst,sha256=L54xDZZKQKodNaMMKuzATQfMd27hURo0Y8kj1PY5RRQ,472 +awscli/examples/mediastore/delete-lifecycle-policy.rst,sha256=seUvwJ_jbn6thlbFylh577xFkGpK7g26w4YyrDRYB0c,540 +awscli/examples/mediastore/describe-container.rst,sha256=6KU542qzaI2_jMOAIgaWz488VFzoMB5uR47rXryElDM,804 +awscli/examples/mediastore/describe-object.rst,sha256=7sS2rQ3Oxo3twttqmctnnLXtBEa6s0HXuL0sGuGrIlk,772 +awscli/examples/mediastore/get-container-policy.rst,sha256=KNUfgIfMZWwGfGARVZNk4jzFaluk5tnhuxWBCUODLS8,1215 +awscli/examples/mediastore/get-cors-policy.rst,sha256=pn52zkLFhu2vi2s7D9Igog2nShiSjBqNiIO2iHR4CR0,846 +awscli/examples/mediastore/get-lifecycle-policy.rst,sha256=RFLZeGS-RzK4aOsQKwJDFesjUEGSsHPvZjGV10wsGes,1230 +awscli/examples/mediastore/get-object.rst,sha256=5Aj33IhNKmbVLC-s8daguVFdbls-PVfobwYEj_DWoo4,1361 +awscli/examples/mediastore/list-containers.rst,sha256=wxslKgBD4efsMWVhCVibOS5qpO-ZoP6YdBwk3jBbyGQ,1201 +awscli/examples/mediastore/list-items.rst,sha256=N73LZ_j7YetSO0UuXJLYl0NkU_WzYZJ2shqXAav9clA,1753 +awscli/examples/mediastore/list-tags-for-resource.rst,sha256=lKlN42u5V979eyGrt46Q-ftdVBIvDJy5N4y4r8k4vnQ,723 +awscli/examples/mediastore/put-container-policy.rst,sha256=pX4VWf6r6GxLmg2PFkDkRptoiN6iGsCx_0zE3InOcEU,580 +awscli/examples/mediastore/put-cors-policy.rst,sha256=PW2EWZeAuR1hQqKRbJCuy1L1qYYOrTsKf32auIipkdY,1026 +awscli/examples/mediastore/put-lifecycle-policy.rst,sha256=3y0qgzCBdnd2kulCS3z3wtPh0G8RVe64EGfs8CHJPxg,814 +awscli/examples/mediastore/put-object.rst,sha256=CoPLgF6XdAlryKEKkOK4zrVVL_y17fF6ZkCLBv3RrnE,1058 +awscli/examples/mediastore/start-access-logging.rst,sha256=t9w36zADvTdC5a9Y-Joo0Ma9SkvPh4o9lROJQTYdTVk,465 +awscli/examples/mediastore/stop-access-logging.rst,sha256=J4kc5p-J8SnaTL1Mnx2V7QY6odDnYI0zezKhazZsi3s,468 +awscli/examples/mediastore/tag-resource.rst,sha256=1AF5s7tZCllvEfEDjFjsav0xAf_Bshs4WldQtqmZYxc,555 +awscli/examples/mediastore/untag-resource.rst,sha256=-jFlaEiMnDljzvoDwlgcOy7Hw1X0TEjIrB2nQMmiXVg,520 +awscli/examples/mediatailor/delete-playback-configuration.rst,sha256=r1TtnWwqwNiXLL5bbdRQM7EtTszXzRXG0MNjVVF4jtU,431 +awscli/examples/mediatailor/get-playback-configuration.rst,sha256=BQv5afCCokimSK8ms1nDX1qqxJ8yXSpVZlMVwWnxbmY,1704 +awscli/examples/mediatailor/list-playback-configurations.rst,sha256=jxInO0Lm1vCj_Ifc2L413z2SjRaw7SeQ_ZCx4TUwQ-8,3343 +awscli/examples/mediatailor/put-playback-configuration.rst,sha256=yWywM_zUGQz6Gb_-jM4jKKE-TBhFlp-2i0sgP7qbkRk,1715 +awscli/examples/medical-imaging/copy-image-set.rst,sha256=lOXuIVw0d47dD66bDHDwziZk_lT3nNHPpFQWtbH1i1U,4279 +awscli/examples/medical-imaging/create-datastore.rst,sha256=e5rNdL1sk4DTr2PAKFnl1WKvkX932edufe-_t4Ec05U,1375 +awscli/examples/medical-imaging/delete-datastore.rst,sha256=YlqXZ6R0KD3tvBiAt2b97NE2neuQnVrbV57YSiAOggg,503 +awscli/examples/medical-imaging/delete-image-set.rst,sha256=7FQ4aJqZ_3rnk37tHTRCf_Oiv0dT8jTw6O_5v-hNMUQ,658 +awscli/examples/medical-imaging/get-datastore.rst,sha256=cSbJrgSHD5J3NKU0CpjzI6T1_yTGcoTvQi5W1w6a1t8,1755 +awscli/examples/medical-imaging/get-dicom-import-job.rst,sha256=sFvZYZutEOFZ0_tzsIWKo5GJHj42wr0oFYTEEbsnyKg,1175 +awscli/examples/medical-imaging/get-image-frame.rst,sha256=5eSz6jG6nDInRY3QUcZXhG6aGM4oUp2X3HoRQKRMPw4,787 +awscli/examples/medical-imaging/get-image-set-metadata.rst,sha256=D-NJxVh4DhhuOu2zs1vcQzvmXrKPw8uLFGUWeepuXcU,1585 +awscli/examples/medical-imaging/get-image-set.rst,sha256=Jyytp1D5OEEt9QBmP3Lj5O48u1TGNomYcql1BnMQ_ZQ,812 +awscli/examples/medical-imaging/list-datastores.rst,sha256=PFoVNcZ9Yo9GFUNJ4yqmyuDLktzYwdkyMDc1FAtplJs,835 +awscli/examples/medical-imaging/list-dicom-import-jobs.rst,sha256=zkGZDAMI0tz_siy7tbUShxJy3tcZfVFv1Yqp05DcTNw,922 +awscli/examples/medical-imaging/list-image-set-versions.rst,sha256=CznwBy83fr4CV5KNdEcT02aGw8oye3yUTZBoH9ng3iE,1882 +awscli/examples/medical-imaging/list-tags-for-resource.rst,sha256=sQZX8IrCU9zRGyC0C6VOBhRj2CJz7MpQeEs226L1YnI,1023 +awscli/examples/medical-imaging/search-image-sets.rst,sha256=QYpfwyILLB9qp3LkJu4Dt9OZ0nu8vTGBXoIsLNHv9uc,7415 +awscli/examples/medical-imaging/start-dicom-import-job.rst,sha256=0N3ql1eikCOvUHCIN7pnkVBqyp50--M5bQg-Miqu110,899 +awscli/examples/medical-imaging/tag-resource.rst,sha256=s9-K479PrUMsGWE2oHcKFd281GaT9wjLEM4Bd7j3nX0,909 +awscli/examples/medical-imaging/untag-resource.rst,sha256=ZmLtCYURgtOY1tbDdC-m1aZhgKGgF5-xkHDp_xcCyOA,909 +awscli/examples/medical-imaging/update-image-set-metadata.rst,sha256=LJEGbBMxrg8LgkDULPoqG79ZSWcjTWL1sLA7rKrbHTo,8391 +awscli/examples/memorydb/copy-snapshot.rst,sha256=w856bF-__gfpFp6Ht_9JcYLUcARRzYwoHqXJQ5nosbU,1273 +awscli/examples/memorydb/create-acl.rst,sha256=QVMkJ1w7so7boQGJkpY7QUq99r24p7R-Q81ZjoNkHfU,729 +awscli/examples/memorydb/create-cluster.rst,sha256=fexnyGgIhlM3FDs18d04IQ158X0j8ZJaIBHfmANaXAo,1326 +awscli/examples/memorydb/create-parameter-group.rst,sha256=jSFAhDM-YgYzQVp-Pctiq8RaboCVX1p6zPWwO669bAs,739 +awscli/examples/memorydb/create-snapshot.rst,sha256=Tt8wgFr6VLyLvmk1Ascywnow9EmcxOug3Rgtr4MfUSc,1232 +awscli/examples/memorydb/create-subnet-group.rst,sha256=SIz8ZdV8TSeWuAW-EQ8jLfyVmcrXHpqkv-wIgspxkqA,965 +awscli/examples/memorydb/create-user.rst,sha256=Rk5uOG952pjvVq42yNgArOxJXGK872Iy02HeR0CVnxU,978 +awscli/examples/memorydb/delete-acl.rst,sha256=Vd0bAuz7YEO7JRUoNy46F_xrr7zNR8X28M6RGJDfk14,688 +awscli/examples/memorydb/delete-cluster.rst,sha256=TqzrxEFFcaUoI7DebYr3OtYgcMtDfxB9N_Se5vdVOi4,1252 +awscli/examples/memorydb/delete-parameter-group.rst,sha256=boSuocXNX01cckWnYFVonJfsF66hxaHOSA4LkB-016s,658 +awscli/examples/memorydb/delete-snapshot.rst,sha256=NY4AtfSFYHyV7h3vrcdvw4AGXsvTxOztcFe7YBy6Gg8,1192 +awscli/examples/memorydb/delete-subnet-group.rst,sha256=vYpwI-pUuvsxj2gwkaS0-oqTUCOKPUkULQv2yUxGWgY,877 +awscli/examples/memorydb/delete-user.rst,sha256=bXoAdhdC5pnWxd-kmH7WL-Kt7frnUggwoQdABpV-VAk,834 +awscli/examples/memorydb/describe-acls.rst,sha256=jZf68NO9OGFtI2ubJzIvfbQMss_sCiTVz8-eOjT0J8c,1066 +awscli/examples/memorydb/describe-clusters.rst,sha256=jrZyoDzWtxOhDXEU1bwJYd-HDgVwCWdi4W3RQhnhzzE,1671 +awscli/examples/memorydb/describe-engine-versions.rst,sha256=9MCsy_16hPY3GtRK3M-xepJ6PPtE_Fx8yIH8wYvU2RI,585 +awscli/examples/memorydb/describe-events.rst,sha256=Yc6fmasEIoJSwqsdBUngX61_9H0OBtKbKUnDNgLfkyo,896 +awscli/examples/memorydb/describe-parameter-groups.rst,sha256=A6vJgzC4qy8L5LpJ6oB3CYzYo8x2ybJnSSIMMjrD2y8,746 +awscli/examples/memorydb/describe-parameters.rst,sha256=tHSfBbFNmMJY_mchufxm5doEyiEIqnfCD58eV3gfWRw,14128 +awscli/examples/memorydb/describe-snapshots.rst,sha256=DmVAVrGE_bK1lipzyH0FrpBguwcntIWxBbt8XUPSPEo,1164 +awscli/examples/memorydb/describe-subnet-groups.rst,sha256=kEovFhB9shtghK8CzXgG5ItrBEa2hxPUDB7PBxkW2jI,1128 +awscli/examples/memorydb/describe-users.rst,sha256=NVVk7meQbWrKIfR-aX0WfCCxx9iNx2WXWnZo9Zy2xNk,1332 +awscli/examples/memorydb/failover-shard.rst,sha256=gQqlMp2eFCXD4yzoW5IYGA-ngcgLmWgizW6lRL5ijAQ,1450 +awscli/examples/memorydb/list-allowed-node-type-updates.rst,sha256=ki2V5rb0oM6kXPMsEKHf1MVQDEg8WuTndZGNUGaDfPU,1448 +awscli/examples/memorydb/list-tags.rst,sha256=olM3L3MFSkhXCtZz8ibEgXpx8O4m7ib8L32U2Z9Y3Hc,520 +awscli/examples/memorydb/reset-parameter-group.rst,sha256=JUmbgA7IMcmBRoEjb59iqh5I30zTHibaRKI0MOd0q0M,717 +awscli/examples/memorydb/tag-resource.rst,sha256=nHCilcFd3V9Ko6zwRnUvgZGrtiBDihXcTcqRIc4DVrU,668 +awscli/examples/memorydb/untag-resource.rst,sha256=Oh7lQTvsNAuYaY-eq23fT_Kd4OmUFaLb9YpOyoZtffA,555 +awscli/examples/memorydb/update-cluster.rst,sha256=Xrg5csQfCIt5ZZFR0rJWAieo8m8r7iL9i0MZNO7U96I,1590 +awscli/examples/memorydb/update-parameter-group.rst,sha256=JPEKgQVRdWgMO9XHkcy4tFzEOPCgQdb2-Zfr0wc36Cs,759 +awscli/examples/memorydb/update-subnet-group.rst,sha256=i7qC6G4nK8JAfKZIeYx0f7BkEOyLvclN4hD3xXgTCfQ,910 +awscli/examples/memorydb/update-user.rst,sha256=knRijLyJ2uyRX8rSq9OTrAkwcDl0d9H_WP8w9Qe3oGY,944 +awscli/examples/networkflowmonitor/create-monitor.rst,sha256=X9shRcOvAx1HDBCDVkRl1brjvbr-bZ0J7ZcQTptrDFQ,872 +awscli/examples/networkflowmonitor/create-scope.rst,sha256=P3GKc7OuSlzg2VX7Q5ZOIgj-1tnqxZxcc_vX9jPBwLE,718 +awscli/examples/networkflowmonitor/delete-monitor.rst,sha256=aLqnhrs3GrZH2UedJRsUNtDCvkOHZSlQG37xFI9xJF0,471 +awscli/examples/networkflowmonitor/delete-scope.rst,sha256=qRVJMNdzeiA9kS8tseh3i_MDxdQnT1sYUCpMcTl-KI0,453 +awscli/examples/networkflowmonitor/get-monitor.rst,sha256=OUelEy21QMU628Wc2j2S0vm5nmYiWN8_SEpMCDdRfn8,1008 +awscli/examples/networkflowmonitor/get-query-results-workload-insights-top-contributors-data.rst,sha256=9wsVsRFQceA2hO3bY3KSM5o2m7kr2ZQWCO8AezrCmYQ,1113 +awscli/examples/networkflowmonitor/get-query-results-workload-insights-top-contributors.rst,sha256=gOVzwqRoQeJ_2QEpfHpQnrOVn79AQeVZVE_AmoqBj8o,1225 +awscli/examples/networkflowmonitor/get-query-status-monitor-top-contributors.rst,sha256=vHw-GY5qTD4yV9skYR83dk1pZvJu2Wwo6Paw50GD9rQ,630 +awscli/examples/networkflowmonitor/get-query-status-workload-insights-top-contributors-data.rst,sha256=SbthMJvc6p149U12J6Wi5rZAbkw_J9W2vkNn5YWA3ww,688 +awscli/examples/networkflowmonitor/get-query-status-workload-insights-top-contributors.rst,sha256=lSxpOboUpCTOJcDY_KfoDRtYbvQvxy3PhPB7kieXwD4,678 +awscli/examples/networkflowmonitor/get-scope.rst,sha256=_Bv0nIFv270T1-mOHAjWyBPPvNYvICWT7WKbtpQwxkk,1045 +awscli/examples/networkflowmonitor/list-monitors.rst,sha256=rpab_MMmtiA_HJpoVUSqoPjqbAbVBA4iEb4FfrY8kHo,669 +awscli/examples/networkflowmonitor/list-scopes.rst,sha256=OY1GUyYhlqbd3KCeSisxBRZKZ7kjvkzuP3qLPjKBaKk,697 +awscli/examples/networkflowmonitor/list-tags-for-resource.rst,sha256=5ZtYFs8ufPcXhEJO-MGC3W74-pVxS9pVBg6PArSOwBk,586 +awscli/examples/networkflowmonitor/start-query-monitor-top-contributors.rst,sha256=Tg5bo3mfEbF-FUlItzwFZweCYS_i3M54rh_LR6AA2ew,754 +awscli/examples/networkflowmonitor/start-query-workload-insights-top-contributors-data.rst,sha256=EZlVn45G77WK4e0T8e9ntfbwYUMnOHIhufO13JkEA54,813 +awscli/examples/networkflowmonitor/start-query-workload-insights-top-contributors.rst,sha256=UBjX7_ZpSXGfYfSbg2SNrUZcD_VcAYT3fdeyGu7qDgc,802 +awscli/examples/networkflowmonitor/stop-query-monitor-top-contributors.rst,sha256=Tdyy9J3RY2d7NOj3I0uG1GDEI4pc_TJrRsXMrfCC5bc,554 +awscli/examples/networkflowmonitor/stop-query-workload-insights-top-contributors-data.rst,sha256=K5AH5nEBnLzZOUSdpNr68yU4Nar6DzPpWZ1CTrLfk4Q,614 +awscli/examples/networkflowmonitor/stop-query-workload-insights-top-contributors.rst,sha256=EHd2hWOrwpbplgv5I4JMVjofigYny2qeYX5JLMqAFpk,603 +awscli/examples/networkflowmonitor/tag-resource.rst,sha256=d4-5_x7vRFEwsKB89twLYIrcBuKSvMaWprPNFXKUnR4,547 +awscli/examples/networkflowmonitor/untag-resource.rst,sha256=LKSaHqhyXTCabVAqHqTxuZqUE4cek_YkoqyENjlMbtI,543 +awscli/examples/networkflowmonitor/update-monitor.rst,sha256=tWQahPzNSDZfiyqad26Hlw9nPvVKViDCsiYpgkI0TyA,839 +awscli/examples/networkmanager/associate-customer-gateway.rst,sha256=E1TU4JbsUP05uR44CNNPpglQcDbnrauLlQvoDRykcy8,1049 +awscli/examples/networkmanager/associate-link.rst,sha256=krm565ztXw8kzGSpjiQVhIIwcE2EnlTDn1elP2MfS_A,910 +awscli/examples/networkmanager/create-core-network.rst,sha256=EMvv50N_9eRkUXbwnzYXhXMlV9At1ix2I9D1uCtBW1U,1216 +awscli/examples/networkmanager/create-device.rst,sha256=GJltD-2DWMueQq7hsZ7uUfkd24VPoSiJ8hvt2q-moA0,1264 +awscli/examples/networkmanager/create-global-network.rst,sha256=cnr8qOf_wzdGAWGtJLPy9Ku_MupY5vKQ38LQk4uPXl8,556 +awscli/examples/networkmanager/create-link.rst,sha256=X_CdWVaTpWICCXCGl9RP7qSaI4NGF8A2cIX4u2Q0t_0,1407 +awscli/examples/networkmanager/create-site.rst,sha256=ExWntzBo8h7eAMehhO4vPoLF3hzqMZjZxIzExWSF2ys,1132 +awscli/examples/networkmanager/create-vpc-attachment.rst,sha256=ATyJxAHjvivMsLpDZq7MBosJdLJxPkBWgNTGCaGqFhQ,1500 +awscli/examples/networkmanager/delete-attachment.rst,sha256=r0cACQZUQGy-dgrMmlIQozqcnFTa2xfmY-BfdDXRTQ4,980 +awscli/examples/networkmanager/delete-bucket-analytics-configuration.rst,sha256=x4ZMkYNJ67rTnFV2xo-_duQw3ZLJOUF_32Xna84yGtw,333 +awscli/examples/networkmanager/delete-bucket-metrics-configuration.rst,sha256=r_9n2dGJ25pXx8Wr3ek5a2ds7YxQAVso0uoMmmnetBU,326 +awscli/examples/networkmanager/delete-core-network.rst,sha256=scspmEExm7C7AvT3IBBZIrO1lmuuafUObVS6-xj74j0,1240 +awscli/examples/networkmanager/delete-device.rst,sha256=VlmB6LG4CGMuht_csVDPLSQqDSq3DakTuFMKQU2e70Y,1114 +awscli/examples/networkmanager/delete-global-network.rst,sha256=_brNpIeaP1cWvmmpAapItlJwyv0n1M4YGVk_qhvcaMs,568 +awscli/examples/networkmanager/delete-link.rst,sha256=PZM_OOP5DmquG17cfIvCvc7trEKwFDqAGpLv7MGZDf8,1117 +awscli/examples/networkmanager/delete-public-access-block.rst,sha256=AvKmUn1Yn8hu0Oqg1XkAi144_0c34LyPuFn2F9AWnrw,308 +awscli/examples/networkmanager/delete-site.rst,sha256=tMUozIij2xBSI6QlQ14x6J6-OFdsv9jp5Sayqlec2Yo,1044 +awscli/examples/networkmanager/deregister-transit-gateway.rst,sha256=WTp-rpkUb5j-NJvEmLpQaMS5JrnUasxXwrPR1r3gYQU,938 +awscli/examples/networkmanager/describe-global-networks.rst,sha256=NU9P6gVPniVfpl7Y00cddIb75q0yOb2h9BIXaAZWHmg,648 +awscli/examples/networkmanager/disassociate-customer-gateway.rst,sha256=uJ24G5uMoSXJLq3a_1xd5LymW6d18D5sy1SWyjE3n28,991 +awscli/examples/networkmanager/disassociate-link.rst,sha256=3LTFidlCL10XNban6olbymyqofMBw2sHAGYRod7bQtk,885 +awscli/examples/networkmanager/get-bucket-analytics-configuration.rst,sha256=HSFGOe1jsQQ_AFWzMFAr8R9AlWan5vGXb7G00BLfjOA,442 +awscli/examples/networkmanager/get-bucket-metrics-configuration.rst,sha256=W4sF79qkYl__8xtNcNXBCYWf5nR1Xg1PPi77pEHpWug,474 +awscli/examples/networkmanager/get-customer-gateway-associations.rst,sha256=POU2BwMw2iCpUCygJlRGKJXxfPtUuXmKXTVFD8ULkTE,714 +awscli/examples/networkmanager/get-devices.rst,sha256=tVsq3zq7rcn57ioYtsgn1CgRF5xFBP9OeJq8kwv6YtI,874 +awscli/examples/networkmanager/get-link-associations.rst,sha256=afMAq9CR6_fUC41A1xntmI6zOe9i24EFeX8VSFnOg8c,606 +awscli/examples/networkmanager/get-links.rst,sha256=TfmfPgG1us3UPCIeOHVZg0DF7rfPlmxjkl2-Zz8Lg0s,950 +awscli/examples/networkmanager/get-object-retention.rst,sha256=V-6drjbrWeHtWuBVoKibNOVgiMQXJ7iZWxjUkgvjFDI,452 +awscli/examples/networkmanager/get-public-access-block.rst,sha256=0lckJqBJrE9sWHD10Wx3UozJZVFsvPF6o1V6l1H8us0,500 +awscli/examples/networkmanager/get-sites.rst,sha256=ebJ1gamrBiWUxEl580Z9-4GCND-ySigMg2nEbaXNypA,832 +awscli/examples/networkmanager/get-transit-gateway-registrations.rst,sha256=CvIfYUXcXgg-O-Nh5xsrXvSxQc8D9joXPYR0cs5QQfg,710 +awscli/examples/networkmanager/get-vpc-attachment.rst,sha256=TIHKQSKZjeAsgUg5T0OlJFO3GRfB5hbxFPgzkTN2nZo,1627 +awscli/examples/networkmanager/list-bucket-analytics-configurations.rst,sha256=OW_g4Twrmy_UY2lWmnByeu-IWuktn01xV1EmTFjmGJ4,486 +awscli/examples/networkmanager/list-bucket-metrics-configurations.rst,sha256=6dxqsqA0rKfLJ_HVAdICCwkdRlsRVL58t81Tr8MjaNU,666 +awscli/examples/networkmanager/list-tags-for-resource.rst,sha256=_Yx906bx64qaItq61e3fAaRJgIQgk4vRoo4D2StYkzI,526 +awscli/examples/networkmanager/put-bucket-metrics-configuration.rst,sha256=JgH7LNAnYiKswWEK61I-DTbVvOIs6JYA04ZLJDE-XAE,397 +awscli/examples/networkmanager/put-object-retention.rst,sha256=QaBvf5tguiudmwLZHJQPVdKuEESgKYdogXo2kFNw7ZM,433 +awscli/examples/networkmanager/put-public-access-block.rst,sha256=H_z847mFSmjrYVrf5PuIKYyzqrwZ1chbH_WeTpd2ehU,448 +awscli/examples/networkmanager/register-transit-gateway.rst,sha256=KBE4cuQ0bROHOXWyJX5MAYBCu3gVVp1W34jsuO7NpKM,937 +awscli/examples/networkmanager/reject-attachment.rst,sha256=4lceVRYpEkX4QkxytyMoc5_BofQ43GBRrpHNS0p49BY,963 +awscli/examples/networkmanager/start-route-analysis.rst,sha256=828XYtuUVvTvcFO8k1ZgZy3AvC4coKkwSwUozDA2wXc,1921 +awscli/examples/networkmanager/tag-resource.rst,sha256=WNkUO9Ha14-Dn1gblVMwf_9IBAFhtAnOi6hLHOPz4tg,429 +awscli/examples/networkmanager/untag-resource.rst,sha256=j9YLonTVkbHs3VuDihWDhqRZICRqnWzZibDyAPSeJYI,424 +awscli/examples/networkmanager/update-device.rst,sha256=SetNOR1yTeeAC7ULdP8ciSrQh_Z3UKZczREehrz73Qc,1171 +awscli/examples/networkmanager/update-global-network.rst,sha256=ZZRklwciwvFnli4yvdtYLE6-ZV9yRnf2EbjObJ_EzGE,863 +awscli/examples/networkmanager/update-link.rst,sha256=4AR5zZs57pkmWchX_1Q1QHUtoF2PNJw09JzsQ3z4XXM,1180 +awscli/examples/networkmanager/update-site.rst,sha256=G9n71s207SZNdImsqvKhomBeigr-0ebIXFUdB6T4j7Y,1094 +awscli/examples/networkmonitor/create-monitor.rst,sha256=T3jpnuV6zGSGnGpzov7mPH5lWlK4PMIN8L8gHFsba4U,4152 +awscli/examples/networkmonitor/create-probe.rst,sha256=m1vRhWp-xoY29913DELYgYGd373JjvUfAlagxGxiO38,2682 +awscli/examples/networkmonitor/delete-monitor.rst,sha256=h2oVBCPg84Gr0R_Tk9YnVl6bt2ZYSve2au33iRFN4Lc,458 +awscli/examples/networkmonitor/delete-probe.rst,sha256=-3edQv1MLPRX1JxhAzyBgc3iW8LeF6wyQMAbxDAxo8U,535 +awscli/examples/networkmonitor/get-monitor.rst,sha256=thrhyZsn7JbMhXQ6RsnjT585G8OtJ0ZlgCAXZbNFVXY,838 +awscli/examples/networkmonitor/get-probe.rst,sha256=qk7tBVslhYy8yLW90PxOjFwgpmjfSk5-zguptUKzGAA,1150 +awscli/examples/networkmonitor/list-monitors.rst,sha256=JH7gApvk6tgeT1q0qg2b5ImoYPWnwsBEOcvtNpS4jD0,2558 +awscli/examples/networkmonitor/list-tags-for-resource.rst,sha256=j4C1RY-1zmJH2Ylnq0A2C4hXIHnEa0JzIzA7NxvYEwo,652 +awscli/examples/networkmonitor/tag-resource.rst,sha256=gAQeGmYu-ra-UnhaQtSY-xAoSfogT7dR5h47cDOlzn4,614 +awscli/examples/networkmonitor/untag-resource.rst,sha256=vK33iqSTQi7v8VhWjJBf8a91GyTGbZlOPDuRWrKDXBo,661 +awscli/examples/networkmonitor/update-monitor.rst,sha256=pRgNmy-N-656oGAIxYzjY25TlqU5pG2y5QExlQsfpA8,792 +awscli/examples/networkmonitor/update-probe.rst,sha256=KDR_No2oF9YnXIOAC8F7l0tuko2Fb5FzB2KKr_c6b9M,1184 +awscli/examples/oam/create-link.rst,sha256=_MWR1xZyHyIPgm7qrvWQ_Ti3uiy4EP9quUcW8ApQV7s,1036 +awscli/examples/oam/create-sink.rst,sha256=zVg5EAIrQWZi2R9ZCGu6jR6xXAe4lCV5ozTCE2jE1kE,673 +awscli/examples/oam/delete-link.rst,sha256=tiMqdyIWarlxbjyJJO-VsFSawQ0hoB2jDhU_hdgh7q8,504 +awscli/examples/oam/delete-sink.rst,sha256=3Ykzn4xn-eTWpuZe73GBjIvsGJd1kME0zJVDLFmI1l0,518 +awscli/examples/oam/get-link.rst,sha256=gRRwdypQ0lBXZLbrS4ElcNbKqRtAhohJ9A2OVMBV5Ug,907 +awscli/examples/oam/get-sink-policy.rst,sha256=UocZAb92ZesCnzaaGLKwst4z73WDVNLY1_qB5RRaZxs,1088 +awscli/examples/oam/get-sink.rst,sha256=2EO4oemWs4Tt_g5FzX_AFCl6nh8pZWSWgKqAqpFFnso,722 +awscli/examples/oam/list-attached-links.rst,sha256=cRZx5ZnisySJkFMF1MpRM0RmZa2j23MfzNx9SnYKbBo,999 +awscli/examples/oam/list-links.rst,sha256=EkJgBh_2ZWwXlKlBb5fckylfzgKad79RjlKs8vLsC8I,957 +awscli/examples/oam/list-sinks.rst,sha256=LpYeNNXkt1jmDx3zkyYAEO79K1rd-BULl2p1qiaO7eY,725 +awscli/examples/oam/list-tags-for-resource.rst,sha256=77C6geV6K9Ckr4dN9oEhAE52sISXBVggDcpSfwvRDj4,575 +awscli/examples/oam/put-sink-policy.rst,sha256=BhSdwqNCX9yrjPtqyoWNr9oPbFBHBpe5GtL658reaFA,1495 +awscli/examples/oam/tag-resource.rst,sha256=fKQyMwGmi5aZBCyRW5nnvkiL3Pq9WJ5AqOnBmxj8dJo,596 +awscli/examples/oam/untag-resource.rst,sha256=iztyT3eLAdodn0byQmiIRoLeZaD8B98aiGAQrg18LVk,634 +awscli/examples/oam/update-link.rst,sha256=rIi-CV6p7LS0lJh56G8UC0cz09gwyuDEv41UmSEe2n0,1209 +awscli/examples/observabilityadmin/get-telemetry-evaluation-status-for-organization.rst,sha256=8tbA7W0jEFs26hXn_Hm6_O1ylLGQk1a-7r57jRcaFb4,571 +awscli/examples/observabilityadmin/get-telemetry-evaluation-status.rst,sha256=7iR_3bl-fex7E6dhxV_4xowaj40FldtriURMRbz5SFY,537 +awscli/examples/observabilityadmin/list-resource-telemetry-for-organization.rst,sha256=lY_367mbpEpbvaTkA3nPi-N4qpimbxZ1z79zJtHolRw,1709 +awscli/examples/observabilityadmin/list-resource-telemetry.rst,sha256=fmAdO45KijJpZaxvu7l_Dwzu6FJio6oo0HVWcJGVhZA,1154 +awscli/examples/observabilityadmin/start-telemetry-evaluation-for-organization.rst,sha256=VU4jDiPIdbjxnfXHDSHssR73DDflAs5Jt9Krwj3nw_I,488 +awscli/examples/observabilityadmin/start-telemetry-evaluation.rst,sha256=Q_XdJK16wwswDe0R8xUptFYkz-_92s9Cgez0CAjAxj0,457 +awscli/examples/observabilityadmin/stop-telemetry-evaluation-for-organization.rst,sha256=BhJ00Ir2wea7iGI3zRP-Q_t740nLWUT2S6iB6T2UBQg,489 +awscli/examples/observabilityadmin/stop-telemetry-evaluation.rst,sha256=A5bbRAFiKY6I818rmgs3Mh1BpqRsgIJrpKZPCvsOFRE,459 +awscli/examples/omics/abort-multipart-read-set-upload.rst,sha256=8yx4sDvL1gNtYYiwwlhf3z18FnYajuc3kez3BPeOfvA,503 +awscli/examples/omics/accept-share.rst,sha256=rNn9bXBWqaQsVGAeEomVWoJLtauJiDqCGojeQRJtr7Q,478 +awscli/examples/omics/batch-delete-read-set.rst,sha256=lTDc16l5-NRTa7y4IW7S_V0tRL-r-0fUDIe_XLFvd_0,679 +awscli/examples/omics/cancel-annotation-import-job.rst,sha256=FRM341mpe95YGBkyfk62LOdYw1Ou5KsBBBTP7FJJQ7k,435 +awscli/examples/omics/cancel-run.rst,sha256=kC5HC454FQsCIcLdfqcSOcCdvwNc98Qq5ExC6kx6Jhg,309 +awscli/examples/omics/cancel-variant-import-job.rst,sha256=sXbcjE0XRQZa8Qa0leyjL35D4rqdByo8vnr08rl2t0o,421 +awscli/examples/omics/complete-multipart-read-set-upload.rst,sha256=KUKFB4pgtwowidi1EAgHRLVC8SuAxXnQqVpsTwwaWgE,787 +awscli/examples/omics/create-annotation-store-version.rst,sha256=y6jOhQkgu3gQy0PmcSlOTduqbfLQTAwTqhAllZngzvU,835 +awscli/examples/omics/create-annotation-store.rst,sha256=l22-Yb9MeUXdWF0T5OvpM4LZcgxJUtlfc1Q0iu1fTyA,2989 +awscli/examples/omics/create-multipart-read-set-upload.rst,sha256=43E-HMOXyO0M6gxitRDuCG6Zr68b1F1OMGy0hfRbf40,973 +awscli/examples/omics/create-reference-store.rst,sha256=yqOE9VtxOG2RNKGlJn2Mwsj4B2ri8WWfJ9r6YoAtXAY,564 +awscli/examples/omics/create-run-group.rst,sha256=a54F78oI4_t2SCiDOHOJZjdbTBjWNppSI-QnceUGQQE,583 +awscli/examples/omics/create-sequence-store.rst,sha256=9mO6pMuJ2CPHTonY27ffZ9wEYOxOYG7YAqOPx02xic8,542 +awscli/examples/omics/create-share.rst,sha256=ITDkzrsTwf9GvAwLnxUGB4SILg6m2Qd8fWENWdA5cHw,755 +awscli/examples/omics/create-variant-store.rst,sha256=hwX4dEPKb_OB6fcVrwuuZzV4hWi-PfWu8EIDauyR3Yg,785 +awscli/examples/omics/create-workflow.rst,sha256=PAZneXT7K9w_9lRfECCvK0Gpj7BMiFLqiDqvMjLablk,1469 +awscli/examples/omics/delete-annotation-store-versions.rst,sha256=Jm6xtwPT-0AH9vDeLHGiHeRtwz6bcrcyAsjka5cp5N8,493 +awscli/examples/omics/delete-annotation-store.rst,sha256=TCbEvcK4tbbDbGMym0qfdC6UlU6_j4FwY7FRmkJJHaI,415 +awscli/examples/omics/delete-reference-store.rst,sha256=MQdBH1TRqRs4CisEEFvQdqsqXSrXpSHonje9UIUXkDM,351 +awscli/examples/omics/delete-reference.rst,sha256=IlZZx26N09FOVs_qihFUw02Zr1G4kBWh0ypulBlw4nc,346 +awscli/examples/omics/delete-run-group.rst,sha256=nFkLNARgDZ6D_FATtu533LByFg_BV9nXE5MB8TdC57c,346 +awscli/examples/omics/delete-run.rst,sha256=7WGPcYf64pVKyGm81Unfr87X5MzhgPyoUpgfUMYWDLk,331 +awscli/examples/omics/delete-sequence-store.rst,sha256=bJoncGXgaRdvT4F-8o7JLB0a8FnouVrvpfflsomKjaM,347 +awscli/examples/omics/delete-share.rst,sha256=OEth24KJuIRhPcvKY2F0xVBXMrgoVrhWk7WQrjedmcA,477 +awscli/examples/omics/delete-variant-store.rst,sha256=BYNBegi7vA4XJ_GGQ_8oZvfnldjW3_-rfT_IJcsVsHQ,401 +awscli/examples/omics/delete-workflow.rst,sha256=Op4ocEOmOsHsS2cFP6g85KQ361NQLVcSma2KkJNVauw,335 +awscli/examples/omics/get-annotation-import-job.rst,sha256=FKtsnnoYUnoR_NfIsh0ru3dNtFv27p7Ab8fwiVsgU0A,972 +awscli/examples/omics/get-annotation-store-version.rst,sha256=paV1-Hbb7bfi79SxMehpHVYzdzOdweVDAleiJJ8BdGA,980 +awscli/examples/omics/get-annotation-store.rst,sha256=9CuUW73AQgr1_PStOAjAVXmV5M9i7k4TMx3Pf9bFUe8,851 +awscli/examples/omics/get-read-set-activation-job.rst,sha256=uohV-QxPPZ_DSeqfCi9bqJ6sBqEjVCZ6RLYR5gj1j9A,943 +awscli/examples/omics/get-read-set-export-job.rst,sha256=Cz72SappEY1AxUkLyDtYHOJapfOcrN0Mkjux41iJZpw,767 +awscli/examples/omics/get-read-set-import-job.rst,sha256=w-16NiwWsQCrh4BMyBN-N2i15E3ombXo_NcI_2D-rdc,3204 +awscli/examples/omics/get-read-set-metadata.rst,sha256=ZNNZ62yZ548ZZPxTyj6nw8tqg4l5vmgc-CZloYe-XiI,1381 +awscli/examples/omics/get-read-set.rst,sha256=GWn6-YGwiwezj_jr6GFAgYzGJQfRx__dM0mhZeZmYRk,417 +awscli/examples/omics/get-reference-import-job.rst,sha256=lZTU_HzcHsNaTMjzaVVNkxj2qV2i_r9eeEIGHXUydqE,1053 +awscli/examples/omics/get-reference-metadata.rst,sha256=ToU2QOo1MK6bDRwbyON04dfFcNzucgluW_S3eZbnpwg,1108 +awscli/examples/omics/get-reference-store.rst,sha256=pBUrMWMV0l4b523DY6wpGZBIcHWeTGKDabhxEfowwe8,545 +awscli/examples/omics/get-reference.rst,sha256=11ozs4ejnT2hXIMdR-PNdJKV_xAkPgA_Fusuv4KZWdU,411 +awscli/examples/omics/get-run-group.rst,sha256=Y4VQmSis-JfoG_qQ3MptsAdOpBNXh1vh8fPeqSVbBpM,588 +awscli/examples/omics/get-run-task.rst,sha256=PGvaMY3EYxnWL3c0KYcaWZJkFUGsGy6V4XpOS54BP7U,789 +awscli/examples/omics/get-run.rst,sha256=nmQc347GkuYHfO2NklX8K5ZiBQxsPsuwgKrvkbNoSNg,1936 +awscli/examples/omics/get-sequence-store.rst,sha256=fgFGJ9BNgTFtYoP4nBYKdrf8I_Sj92Yw2Q5iBOxUsYE,564 +awscli/examples/omics/get-share.rst,sha256=vB5kVMVJH3oG3CF8PWTF33jPkkaHuFWQSzsfCWAkfRs,863 +awscli/examples/omics/get-variant-import-job.rst,sha256=dN07WqX_sRUiv7_PKhzLOWQ1ioamZWQnbEI9wRsueOA,982 +awscli/examples/omics/get-variant-store.rst,sha256=7uCubVP7KIdXEvt6bT1V0spc8qZuBzCwyeAO9dnPnP4,834 +awscli/examples/omics/get-workflow.rst,sha256=9Fbjf224ZdaQhu4CHtObWwwqCvQX_EvXPP4kGHZvBrU,1574 +awscli/examples/omics/list-annotation-import-jobs.rst,sha256=p3XCAMT2AGHR-5L9lXAP4QnAJwxru63PA4fvttA_jko,1304 +awscli/examples/omics/list-annotation-store-versions.rst,sha256=RL3GTHALrVrdcsWa92ksonEFg4HI30j5NebHItUnVRA,1438 +awscli/examples/omics/list-annotation-stores.rst,sha256=ZQYO4XmxvenJwfhDw_fDIk1wiVRsrUDQOHaqBAgsTiY,1027 +awscli/examples/omics/list-multipart-read-set-uploads.rst,sha256=g5ys62s0IY9WUQsX4NFjpIcM1lcrZsADVtWO1zyVHuA,2073 +awscli/examples/omics/list-read-set-activation-jobs.rst,sha256=RP35K9GXLQ60gg2P_Ob5KhmtHXMaOM7B9iinCMFabEA,968 +awscli/examples/omics/list-read-set-export-jobs.rst,sha256=sJypdzWfz-F6LAJlwp-QJz0R6U8XM3S_uNdi5KGyHxA,1127 +awscli/examples/omics/list-read-set-import-jobs.rst,sha256=tR9T1KvvayxDqfyPCV01jjsi5zw_-ZHHOey36sIM53Y,1230 +awscli/examples/omics/list-read-set-upload-parts.rst,sha256=EGSGfvge9taRXvNChOdDXJsJXYLZvph2QRMyNCEnOJ4,1180 +awscli/examples/omics/list-read-sets.rst,sha256=6s8cPin1qBBeNwydXUqVgp0UCrD0L90J9JMHc80ZsUA,1020 +awscli/examples/omics/list-reference-import-jobs.rst,sha256=lPFFFBFO4ih2NhdrpdKgJJ94C32I8OHLooO5xtJL0s4,1173 +awscli/examples/omics/list-reference-stores.rst,sha256=x6rLB-EEoPmyrlPZxD020V4U2rWwL_dKzlhS80vUbQA,626 +awscli/examples/omics/list-references.rst,sha256=_i9Z2bdJi1t-GP7UQVeVhYvHg3Ssgmbv0J5CJmqx1BU,914 +awscli/examples/omics/list-run-groups.rst,sha256=PX6kNbf-DDEHEKV2T9yavtW5j8FyZYaO59-bnOHlDWU,657 +awscli/examples/omics/list-run-tasks.rst,sha256=jRDgS7wEwwnm5Bnz1GPZUute8B2o6M4Q8IMRTx02zxs,1149 +awscli/examples/omics/list-runs.rst,sha256=tYj3HXd0qgQu_gMWoEa6_A6u3PqONMzQ7Ahx1Us14ag,1667 +awscli/examples/omics/list-sequence-stores.rst,sha256=E69WEyArIxLrVUIN9oACZqwU-4T9cx9uK4XC1pUEeDg,620 +awscli/examples/omics/list-shares.rst,sha256=YCjQhTgoMmSEd-Aalt53tbPlmXzVj_0m-6Cr8kWL1_Q,1526 +awscli/examples/omics/list-tags-for-resource.rst,sha256=ypdyHs63K-2s0qURRI63p_DXHE8Tdaq4EVlQONRcbtg,507 +awscli/examples/omics/list-variant-import-jobs.rst,sha256=Xa_zQz0HKB26YIPvJFS5RAwuADGUTt5SIkrzfP9-pWc,1299 +awscli/examples/omics/list-variant-stores.rst,sha256=tTafY6CQ9xc7ZFCIib0vMkqzcPIvUh51SelBT7n8KMo,1327 +awscli/examples/omics/list-workflows.rst,sha256=dNdNyO_l3glRlygJDrnfCjEbQcKk693E6DqMvJ_A1tI,1152 +awscli/examples/omics/start-annotation-import-job.rst,sha256=qmKv-s321WqFwIZ38fmidE7L1BQB9naaY9QEjKVyQ0I,658 +awscli/examples/omics/start-read-set-activation-job.rst,sha256=ZakL2eHFJeuH-KtTfnna_xKNPP2e38FnQqIQ9oeEWNM,596 +awscli/examples/omics/start-read-set-export-job.rst,sha256=-Z79cuFcprPFSepXsiDBDsxj_EjwjErmf9dJKjbR1hw,843 +awscli/examples/omics/start-read-set-import-job.rst,sha256=LT1nieq3YeM7db5RohWuFkCMTUPSn1XxHxr79ci8DxA,1298 +awscli/examples/omics/start-reference-import-job.rst,sha256=C3w2NYStsQNUhJfVAopAQMZoX1gfF-rHFNafii8v-7Y,851 +awscli/examples/omics/start-run.rst,sha256=MC8Ul2UgTNyfmM2-PSvNVw2YiACBsXI_COhBWwAe8Jc,2050 +awscli/examples/omics/start-variant-import-job.rst,sha256=Va-4l5zKDeFHSC6C9JSmhbkXooINntA0mkuye1ZIwH4,675 +awscli/examples/omics/tag-resource.rst,sha256=538oJfOuURY5Zy0o2ffomlLs284cb54hBPv6Md9aQ3E,437 +awscli/examples/omics/untag-resource.rst,sha256=Fy9KmLe-gRomxDMkxSSMJjOkqV2RyYZe6_J8aor3jLY,414 +awscli/examples/omics/update-annotation-store.rst,sha256=H8pvm7yUmMFhb-PKE8RNDBoeWy61L_RBZ95iforfIZo,874 +awscli/examples/omics/update-run-group.rst,sha256=EhbNUzZGBik6fa2yeg2CQCg4g2IvpTdcQjlLJrmwHJc,634 +awscli/examples/omics/update-variant-store.rst,sha256=eMZ93GtGDCE2XEt5KPPDZn_RU8pjmL4NzSQcl8vligc,816 +awscli/examples/omics/update-workflow.rst,sha256=P1sAtAQlXLkI6Zt7XF9omIFCA42ILwqr-jPp6mP96YA,403 +awscli/examples/omics/upload-read-set-part.rst,sha256=E7vL-z76onopXlreWM17hFo1RLU5GWgHN9qwBcVXIHo,632 +awscli/examples/omics/wait.rst,sha256=whARZWtHOJbULMLWq0C6D33qGE-1FpaE9r1WQ4eD0pM,369 +awscli/examples/organizations/accept-handshake.rst,sha256=jhdMFT_7wkUzeN1NTXAHQwMz2aSXzF-ifpVLq6PTpdY,1259 +awscli/examples/organizations/attach-policy.rst,sha256=XA7oJuGPejq5DGr6HYzjw3BbhTJRYOrR6rP7kh8IEFc,484 +awscli/examples/organizations/cancel-handshake.rst,sha256=Z9eTNMXm_ZMuE9BFrpfmStj0DVg7moPG29kCgCeM3sU,1462 +awscli/examples/organizations/create-account.rst,sha256=vlVKyp61H3noBDJmOIQLGO0jMBmy3GaL6ELIGbBPXko,1456 +awscli/examples/organizations/create-organization.rst,sha256=csK82E4xSO9R6RR8DAemOcTUbTYD-ec-lTocbV2VC2U,1916 +awscli/examples/organizations/create-organizational-unit.rst,sha256=cYtv_6k1-AYmKsw93_qkQy_MNfolTY4RvOFRGIyA0G8,517 +awscli/examples/organizations/create-policy.rst,sha256=yCn0zF7g6F0EJqIhq4fggAYT4hs-m-m27NuYUNkFfU4,1863 +awscli/examples/organizations/decline-handshake.rst,sha256=6rmqpDXFdEcJ0ZaiknSEj2TkLcXQK6o5b3gd1YAQrjs,1396 +awscli/examples/organizations/delete-organization.rst,sha256=ZsdixkbeJTUzeTlLRk42XXl3xAEnDR-y4vqW_2R2Fto,337 +awscli/examples/organizations/delete-organizational-unit.rst,sha256=QiqTzwTBRiIT0g-eaHvWOP1MQh9rXZG4eVKfjZw5yvI,268 +awscli/examples/organizations/delete-policy.rst,sha256=rwEk_pOLSvY7PVMiDLMXwY2BWgfPfrZNhn4n6nGCtrA,245 +awscli/examples/organizations/describe-account.rst,sha256=NbC3sybK1MISfCOSf4JmTuwyO-FoL54pHi-1QoSfpOg,541 +awscli/examples/organizations/describe-create-account-status.rst,sha256=cAnYxGTgdHY1XBmahUxEKuN7jJ1i9u4gIJ2_ivf5o9w,831 +awscli/examples/organizations/describe-handshake.rst,sha256=l1K24iy9s_afVKDmwEH_kAHxKbv-n6zv81ke1S2Rum8,1277 +awscli/examples/organizations/describe-organization.rst,sha256=JrrJjPR3MZCP37x0r_zU1Z2QN09SOgVIQw3op9VBk5E,720 +awscli/examples/organizations/describe-organizational-unit.rst,sha256=WhBbqhz8GK3Z26I4qWLHy1w2HyBElFNA-F3pgakgH2I,516 +awscli/examples/organizations/describe-policy.rst,sha256=HcoYi4qhsLuu8xi1AWX10Vc1TsNBLjL1D4mRW3kwTV0,799 +awscli/examples/organizations/detach-policy.rst,sha256=dstb_WspehG_zPYMglMKqrdjvsAqqjcrR31SXMzwbTM,234 +awscli/examples/organizations/disable-policy-type.rst,sha256=3Rsjxoqeu_rQ1HOydTutIZnoNl_DMPWNWI83ycAdqg0,531 +awscli/examples/organizations/enable-all-features.rst,sha256=QE7syXWuNYEz4-MiZyWw9zAKLIxUE_7lOp5KDk4WM18,1262 +awscli/examples/organizations/enable-policy-type.rst,sha256=YT_kKFpT-e0ZQsfESMnycnGm4111pAo4sKkSK2cWWJU,623 +awscli/examples/organizations/invite-account-to-organization.rst,sha256=YHk1mieabbtGtRyvqNUJi5xS81usMmInekgMs0Xl0gU,1367 +awscli/examples/organizations/leave-organization.rst,sha256=HMCL1_HhoITfWBw2TcYLmIK2XaWUkCctBGXJU7vU8rg,224 +awscli/examples/organizations/list-accounts-for-parent.rst,sha256=sA4Osq5G7w1ryZ35IGRrLCjE7-NQH9WazvdWknDVohc,899 +awscli/examples/organizations/list-accounts.rst,sha256=NK3hHw1xw-nqMXrh6JWpEmnqhszjMFEMcJ4alXzwOrQ,1403 +awscli/examples/organizations/list-children.rst,sha256=kD6tcsJLePw6zXOLbT4-dXnFDH9zVPPcXHqoBvNvPeU,562 +awscli/examples/organizations/list-create-account-status.rst,sha256=U8WXK2zpjkOpcw_nN10mtOOzzHku9otbE4ijFGXdZcM,1250 +awscli/examples/organizations/list-handshakes-for-account.rst,sha256=Nz6eLdNs36kgz486eYC5AiwmslQR10NN5jRlxbXrT3U,1284 +awscli/examples/organizations/list-handshakes-for-organization.rst,sha256=aJfM8DawVf5G1hgxd1ZsdTB_N9M8gr-Q7d-YeLCuTUk,2447 +awscli/examples/organizations/list-organizational-units-for-parent.rst,sha256=15TmYNyLcuVPnN0FwwudQ5bZZ-6xFBtGZcnuwV03mPE,664 +awscli/examples/organizations/list-parents.rst,sha256=ZZ0tnUxMJh89PpTm3peicLRKsuYr1dgJX7bwRessV1s,425 +awscli/examples/organizations/list-policies-for-target.rst,sha256=Yxdgl8D1sVDGsvIb-FIF5ccb4Sq5sJ2QjXZhL-0qfVs,956 +awscli/examples/organizations/list-policies.rst,sha256=RnauW8wwJe25dpDEP1JPcLg0QAYornOGFGXhBsO6PdU,1347 +awscli/examples/organizations/list-roots.rst,sha256=Pn6U5iFvJt1YmSPtGWwgADU9I0_3YzlF78BC9LEridw,521 +awscli/examples/organizations/list-targets-for-policy.rst,sha256=K0kzXGYkfA30QXs_hpVzp-EcYLPQUOQ_thvGEmmB71A,1035 +awscli/examples/organizations/move-account.rst,sha256=DKr09pfTDbGuwCR6MVjRPFVCydZ7sJTrpwOR10vww5w,310 +awscli/examples/organizations/remove-account-from-organization.rst,sha256=9CeayskgszfsZWQyZzxFJj4CA7bm5K_kv1BalJIn8WY,233 +awscli/examples/organizations/update-organizational-unit.rst,sha256=wlGTX0KYGMSZcA_uocscqnMeTo-tMCkacrS4nD2a_ZY,493 +awscli/examples/organizations/update-policy.rst,sha256=OMIhjnh5eSBY6S946Jv0AvH5PDyK-Zz2Qwe-MsqZO4U,2065 +awscli/examples/outposts/get-outpost-instance-types.rst,sha256=vIJ4mmyZQR4VfiB9_EjyO8YhqSHXBDoUruv_xPmdnxs,943 +awscli/examples/outposts/get-outpost.rst,sha256=E1tePdkGS2-SxP98_dOsQkfwspaYvbSv6sPkxPH-dGY,855 +awscli/examples/outposts/list-outposts.rst,sha256=gZXcZ_KZcGJdm1OWviPbj88RiuT2jZt3aczYTKnFZXQ,1463 +awscli/examples/outposts/list-sites.rst,sha256=-UsiioLzxRG9BBLvzIT8f43D76Bx2ptUIldsIKLDbNE,610 +awscli/examples/payment-cryptography-data/decrypt-data.rst,sha256=hbw7X60GLeEaJm_S9BDw-GaWQ1o5RSgCYTQ4xdQj2tw,929 +awscli/examples/payment-cryptography-data/encrypt-data.rst,sha256=2cgsNka9zuVcvOGGDjdOlcXooe9dWZzt4vp4no-Z3cU,914 +awscli/examples/payment-cryptography-data/generate-card-validation-data.rst,sha256=VIZ9fXMy17JDtBczyck3y1ittH7lEtLbX2nSK76Odzw,796 +awscli/examples/payment-cryptography-data/generate-mac.rst,sha256=xPM0NoeubNQsMZ_7XcqutkSgHC__eonzOOu1VG2q6GU,1053 +awscli/examples/payment-cryptography-data/generate-pin-data.rst,sha256=ECEoI4A3ZkM17xWjNirRAgnM3PflNXFXK9SjpyHn-94,1225 +awscli/examples/payment-cryptography-data/re-encrypt-data.rst,sha256=AsJ8pUnc9t1EXACYVYdNYeAwR_EoCxGGoTln5ktB594,1254 +awscli/examples/payment-cryptography-data/translate-pin-data.rst,sha256=FJvc7-mHhEKZxj-25N69Gs8MTPaoNh_mJddm2tC9hvQ,1198 +awscli/examples/payment-cryptography-data/verify-auth-request-cryptogram.rst,sha256=JRHwAlNgnrjQeUkP0-1G967oPRFLO7OkmeH-W1bpCDs,1173 +awscli/examples/payment-cryptography-data/verify-card-validation-data.rst,sha256=1LA8wk-LHbNocbn-gSyLSq8pB4ohXK8ZR0TuhF3wAnk,790 +awscli/examples/payment-cryptography-data/verify-mac.rst,sha256=VonzuD4357MGak0VrEGSwW_qsAzQJZga6eqnS2P3pco,929 +awscli/examples/payment-cryptography-data/verify-pin-data.rst,sha256=mckJZQ1sedqPmaAXXb4mdophwx3K3vgN_szBxsYe_LU,1136 +awscli/examples/payment-cryptography/create-alias.rst,sha256=DVOcmdu9aHgowPJIhS32QUjCP5czRnTkZZbT1Km85Ic,670 +awscli/examples/payment-cryptography/create-key.rst,sha256=syhuNrs4NJeNsWG5HEjYoE_Xoze2vOV7TFGHPYbRvPY,1656 +awscli/examples/payment-cryptography/delete-alias.rst,sha256=LuzyKEJLwyzMQlkBTNCfTZzFJPHHJrPPnMlK9Itl_mI,415 +awscli/examples/payment-cryptography/delete-key.rst,sha256=5nlb9RyOVtpTiOQFFzEt16kJyAAocsZVmw2naN9F-DM,1630 +awscli/examples/payment-cryptography/export-key.rst,sha256=EgxudBgcVeMr9LNv_HFnpwmgST29BdoO0UQBv2iQ2-k,6155 +awscli/examples/payment-cryptography/get-alias.rst,sha256=kIhbIoc7sz3JAmrpKScwGB1RhIobODtp8D1atbLUdA0,583 +awscli/examples/payment-cryptography/get-key.rst,sha256=n-P-GYn3-0vtKhrXRIAxQ1wS0QApFoJmjpTlc_1LCvM,1606 +awscli/examples/payment-cryptography/get-parameters-for-export.rst,sha256=7tRGRCMrsnVifJWCjjWlSKw_0O5vOk66EbWFZIS8Spc,2809 +awscli/examples/payment-cryptography/get-parameters-for-import.rst,sha256=-oSGDsYPPLlhNy6MqW4VaIJFfCJwuo3GYIR67j6rGsc,2802 +awscli/examples/payment-cryptography/get-public-key-certificate.rst,sha256=Gk9D_UlVAne8-4Vix8xOrZWMN99qNCuyeM1P-ceQAs8,2655 +awscli/examples/payment-cryptography/import-key.rst,sha256=vIlgXmi_mYE0Q-jZupTnLmWnXZmPzHNY94xBNKVYB_g,7130 +awscli/examples/payment-cryptography/list-aliases.rst,sha256=PEb5CoRgyfxTiJovV5CM6f5UbCasq3ZkwR30a1BO23Y,783 +awscli/examples/payment-cryptography/list-keys.rst,sha256=2rvfsyRFeUsr_wS4lkRMJ-wQ-5jVBIDGZYc5pYjKxhQ,1465 +awscli/examples/payment-cryptography/list-tags-for-resource.rst,sha256=OmhgTnZFa_jABvooiXx-OTehvkNeMx9LPxbQYaGMzqw,738 +awscli/examples/payment-cryptography/restore-key.rst,sha256=jehqPmsdShUVDVuTo3RTGUZ3SQ4ypVhqmBjrP7R3lGw,1561 +awscli/examples/payment-cryptography/start-key-usage.rst,sha256=XjDZZpskPnh-EbbpwJIm0R15OE9TwVEUyodbh-YoY34,1547 +awscli/examples/payment-cryptography/stop-key-usage.rst,sha256=tiV8mStgzeM8vYatYSp8ZawsirUKmFdnjmmhIcdJVxY,1536 +awscli/examples/payment-cryptography/tag-resource.rst,sha256=lA_nwYCP9vPH2HMrHyi6HIJGjKyaDqVd_JS5WFB6of0,490 +awscli/examples/payment-cryptography/untag-resource.rst,sha256=gP1w74yWASXmQvmXH6bbN1KmDjOoWfXAL1g_jxwion8,504 +awscli/examples/payment-cryptography/update-alias.rst,sha256=zbUN7sJga8tMaTlGANTYJMT1N3cp0jWx-guyPXd-Ep0,677 +awscli/examples/pi/create-performance-analysis-report.rst,sha256=TtWqKL-t3SV4FPo7qGsmGGNNVY86DJE485U5BOdMmqI,1037 +awscli/examples/pi/delete-performance-analysis-report.rst,sha256=4ZSMebmo84lvE2mCxKMu57A5lOEgeCCaUSp55qiBrnM,927 +awscli/examples/pi/describe-dimension-keys.rst,sha256=ZUNZZj-nkI2Im6T5RaSFO1HDPSrv9guc203A7ZbkBtk,3515 +awscli/examples/pi/get-dimension-key-details.rst,sha256=MHPBxSaHry80ZDC_RxlfUXT8tF-l14vtwPdh87N9Rjg,1536 +awscli/examples/pi/get-performance-analysis-report.rst,sha256=E-df8EeG2-EeZWoNkBBij7uvhVFBt8EVAm8XkSuQcCw,1414 +awscli/examples/pi/get-resource-metadata.rst,sha256=uBbNdxx_OLL3He6nyclcKH_s9oSOXa__JFMqiqi8q9Y,911 +awscli/examples/pi/get-resource-metrics.rst,sha256=mEHM-1CDR3LgEe87JTc9fqCa6ORh_RUMGcWCetJirz8,2113 +awscli/examples/pi/list-available-resource-dimensions.rst,sha256=ppC9R8Hrbmm-xclxkSEeq_wi8s5w_pa-havsXpDNIXo,1921 +awscli/examples/pi/list-available-resource-metrics.rst,sha256=8lSNdU8gwxbYBkpWUDtG9mxwKQvKLkmKibEdnQYB4QA,1271 +awscli/examples/pi/list-performance-analysis-reports.rst,sha256=6OmLR5vR8U7beQA2ylQjpkzbNB_o8ZoKX75x6J3JBB0,2018 +awscli/examples/pi/list-tags-for-resource.rst,sha256=2tVYaA4jh2Myzm5j3Q1X_bry5SNyd-qU667U6CmzQxM,1068 +awscli/examples/pi/tag-resource.rst,sha256=65dA2LglR-DsDzxGAobPnvJynsnUfkY8vmKYtv6k6iw,1022 +awscli/examples/pi/untag-resource.rst,sha256=YvM51NzrjcQATnzfviTxFeAGPzzqs6FTOoRPaVjg0Zg,983 +awscli/examples/pinpoint/create-app.rst,sha256=2zG6FsSJPONkPHz8-lwnToXCpTbxStEj_ADpXy5oN-8,1174 +awscli/examples/pinpoint/create-sms-template.rst,sha256=T20dD5-D6kC0PJcGDZ46N3eMG_R1sbrl-YN9WN8D2bY,928 +awscli/examples/pinpoint/delete-app.rst,sha256=OSysf0aIcp9M_t9KYoU2DjWQb3gUpxUKbHYiB-EN9ds,505 +awscli/examples/pinpoint/get-apns-channel.rst,sha256=cNPD3K3eBxZk9nlWMArx4A8uedl8Pklw_LfD41OHlE4,878 +awscli/examples/pinpoint/get-app.rst,sha256=vo80edjLMUnVdkU9k9Pe4WYz8YRhe4N556Pc3Q-m-XI,654 +awscli/examples/pinpoint/get-apps.rst,sha256=MQqATt0x1EQh4s2ZaIP7J6YM6I2aO-f_ZaeIS2H3Unk,1796 +awscli/examples/pinpoint/get-campaign.rst,sha256=HemWH2uE42aSaH7Mm8DkS2lj4UuCwxcafGh4okllNSU,2036 +awscli/examples/pinpoint/get-campaigns.rst,sha256=_5PjQb2esJm_Cp6_9iuo5xnuovMBEsk_setje10qYzY,4194 +awscli/examples/pinpoint/get-channels.rst,sha256=Ph3KjUCedlx9K4R7eOMVNxJCmzB1GU1Vu7foYAMmbD0,1828 +awscli/examples/pinpoint/get-email-channel.rst,sha256=3OATNZchtjH0vP_xUN33pCAXpremoeaHFMfbgIY0lYs,1002 +awscli/examples/pinpoint/get-endpoint.rst,sha256=9ONAH6Q2vL2OB-SqzblippLN7s7WgZ3WQOygv9grSdk,1298 +awscli/examples/pinpoint/get-gcm-channel.rst,sha256=ZW8refo3HKsu7KYGcKGTPyZ7uG2wat6WShcxLY2bKjo,779 +awscli/examples/pinpoint/get-sms-channel.rst,sha256=1JY3SmVPHZRaTkRa2p4oJrkjQkhpMEsitFDrX9BqNhc,820 +awscli/examples/pinpoint/get-sms-template.rst,sha256=fUasWmLfKoD1dbDl36_Lkq6xRvc4GAJsAPA5llI-pis,1037 +awscli/examples/pinpoint/get-voice-channel.rst,sha256=XaiJxl9I0pS4Mer7asjZN7K1pmQhVzTmsOQy5V6QEEE,738 +awscli/examples/pinpoint/list-tags-for-resource.rst,sha256=H2hIsvOsZ91RCFrhKof3k1MjLqJ2G83JWYwsYqllWD0,724 +awscli/examples/pinpoint/phone-number-validate.rst,sha256=VWMzOiUSwX1CybFQI6Qsnf7oAzvA557r5u7mqpE3I5o,1006 +awscli/examples/pinpoint/send-messages.rst,sha256=0ybVz09Mkmab_wzqUex-GtJ8T8eUDobEmTLKal80Q_g,1339 +awscli/examples/pinpoint/send-users-messages.rst,sha256=jBBW3CqVNNdLg7e1LWPioSJnSZE0FUrttXCQpDj7Rk8,1422 +awscli/examples/pinpoint/tag-resource.rst,sha256=rcd39ErDEitGJEBZrJK2b5WYUQK_bp_CFRRkLcOzvZw,559 +awscli/examples/pinpoint/untag-resource.rst,sha256=38yy52RTFn87zXbJUNSWV0PLkJld0OLemdNQ97Cv-zA,966 +awscli/examples/pinpoint/update-sms-channel.rst,sha256=zMo78KZllgVabAHHvuOyt-sjwX1Lixd2qD_VYzJLBjI,1037 +awscli/examples/pipes/create-pipe.rst,sha256=KSzZYeAhROqDpuYUp_MZZ1oLlnri9ivOMgh2DHsBTzo,1017 +awscli/examples/pipes/delete-pipe.rst,sha256=TnpxY6v9D1V2kwGvPLkvc2Q4zYoeOIctgYLGGHjjSQA,673 +awscli/examples/pipes/describe-pipe.rst,sha256=mJZP3_XMPOY6JBaJq5Ou1RMjLqJxCsZHJYMjX9polRk,1470 +awscli/examples/pipes/list-pipes.rst,sha256=5davIbB4w8LrOxEfhjXHGx4HBcU52MTTHJ5IhH1LdW8,958 +awscli/examples/pipes/list-tags-for-resource.rst,sha256=4qccDjOiytj_DmeGyBIaUHJeJYwJDZOWpwmweyyaSAY,609 +awscli/examples/pipes/start-pipe.rst,sha256=TECYn2D3TttnIOaBos_M0Vr-5Aneo4cmEN1ANnaO87Q,685 +awscli/examples/pipes/stop-pipe.rst,sha256=6VJ-H1JcAVMD_dU53wuTnL4-8DzlfuM3cewZb14U3bI,681 +awscli/examples/pipes/tag-resource.rst,sha256=kkarYEjDj5_5-fkSRuCoTGRsGKA1O0zbofPXMV3T6Uc,474 +awscli/examples/pipes/untag-resource.rst,sha256=ebyMeMLUsVbnLpnXkdz7M9D-leVeuzGdSBs63Cyr010,520 +awscli/examples/pipes/update-pipe.rst,sha256=NCUTI4LMsZi6nShvwcBg1F6RRQJbmd0o0GDmiQTX6Bg,1114 +awscli/examples/polly/delete-lexicon.rst,sha256=T3gSTcsGLKueCCgAlaTIYi0cb2DfKrnZEY1Lo5gAlyY,368 +awscli/examples/polly/get-lexicon.rst,sha256=wYQiaW9sxa4Mib2Pco6cbCekV7h1YOBws2PBN6WbB1U,1315 +awscli/examples/polly/get-speech-synthesis-task.rst,sha256=m00RtnrDlDNRw4QBRSf7shHX4EJxHMtyZQdLQlpwSVU,897 +awscli/examples/polly/list-lexicons.rst,sha256=cMIamBP1PIX5p-vMuGLG293ImlAA2eW0RBD4Ku7jJCU,786 +awscli/examples/polly/list-speech-synthesis-tasks.rst,sha256=EGmwOSzbu6JoPZYR6QL8WwzaOjesPwMNeMpWQKtLkjM,864 +awscli/examples/polly/put-lexicon.rst,sha256=pPp-lp5V2l9q4_gpuZOCyR3Ir8UjRgu4mDcNjHru7kQ,1133 +awscli/examples/polly/start-speech-synthesis-task.rst,sha256=7lLAAI05xMGw3RtZHfe3LAh4SKgdhKe5UeIiyYfBEIM,1002 +awscli/examples/pricing/describe-services.rst,sha256=R-t_3Dsh7Id5DS6Gg7lKjRWCLHaMpVqJoYIQFhxJwY4,2572 +awscli/examples/pricing/get-attribute-values.rst,sha256=Xqsr3SBaX2gysxG6RcO41LX4mR2IuiK14o2O45bzPXg,578 +awscli/examples/pricing/get-products.rst,sha256=Itf1rYjWNaEdFfo_MzWiyD03_6LmKNOBxX74ySI8jbU,1989 +awscli/examples/proton/cancel-service-instance-deployment.rst,sha256=Vk1mfU5ADLAv42GkuCYGGBZDAxrZi515gOSbjn3wSkk,1733 +awscli/examples/proton/cancel-service-pipeline-deployment.rst,sha256=gjMBDyfIuRtyRmTt3Qp_RZgaOc_bjpUYxoDk3RSdmYk,1098 +awscli/examples/proton/create-service.rst,sha256=hBryxWlrlL9WohR7kjruY4AD7Q4XoFb9XqXge07oj0Q,1787 +awscli/examples/proton/delete-service.rst,sha256=HQSdjy1BJdCBQdzM6Rbcg576viChoymGSaepWCJa-34,981 +awscli/examples/proton/get-service-instance.rst,sha256=fuuvA1-qlyArI4IMdRZOYSWxBl2-SuYYIap-n2uNSxM,1541 +awscli/examples/proton/get-service.rst,sha256=rVpMD3W_35gX4HSg4HU9WVycHqXtaKb5_cTiVzThg1c,2278 +awscli/examples/proton/list-service-instances.rst,sha256=iCX29a0xcYpHUyyhCBSJWwlXGAIIteD5pdJwZhKDcYw,2879 +awscli/examples/proton/update-service-instance.rst,sha256=VMlpJTO966VPUMD4okoCO22seNDfU7MjQ0G33owUqDo,2164 +awscli/examples/proton/update-service-pipeline.rst,sha256=YoDisgytHSJQTBwKU5To5D_uoGDUx_6oJ5JeiZ6VVBo,1794 +awscli/examples/proton/update-service.rst,sha256=eNE6s9IceM30_vjpfGwabsSDqK9gVrWUXA-cCqvMv_Y,1177 +awscli/examples/ram/accept-resource-share-invitation.rst,sha256=2bo969GAEjbVZ6_5LFQnQCTnHaQjPKlyZZFjb86SjYc,1016 +awscli/examples/ram/associate-resource-share-permission.rst,sha256=bf0yvTyLMA8g4WrRItSV3FhiCklsiMwoyagYsuNhbrU,660 +awscli/examples/ram/associate-resource-share.rst,sha256=qXsX9H-xXszPTJPLehmsunEmau5OutT9sIjYiYxBx9w,1873 +awscli/examples/ram/create-resource-share.rst,sha256=oEFzfX6zCEfMYAph7CihHUdO55Lud2CclYdSe_Gn1Q8,2204 +awscli/examples/ram/delete-resource-share.rst,sha256=RtWtsbOPKQ-yvO5L9TOQqyFX0RYfZrdP8p7PFCayNNw,357 +awscli/examples/ram/disassociate-resource-share-permission.rst,sha256=CatzCQvCThxY6FS2vP3hXGH2ynvrfO7ypwUjiX2m25E,566 +awscli/examples/ram/disassociate-resource-share.rst,sha256=NMMpNStzcsMuDIM1k04Lg-bdaz-n5g3ThKYd_bCKJ4U,960 +awscli/examples/ram/enable-sharing-with-aws-organization.rst,sha256=xDeaeEB4xb__fYkNM3S_nD_xr4ucZK2KklRyXinJkh8,333 +awscli/examples/ram/get-permission.rst,sha256=KxL9gzhq10u6jn2-RUvZbQisoEeWmKtv3ONCPqhgllQ,1303 +awscli/examples/ram/get-resource-policies.rst,sha256=kegCoCQOfjT65EJXEOqL3tfiHWlwqPKU9gbMSi6xIAw,693 +awscli/examples/ram/get-resource-share-associations.rst,sha256=L-_EnU3ccaceyW14LfeWkL2NoazmDC9CfBNWtyVG9Lc,2513 +awscli/examples/ram/get-resource-share-invitations.rst,sha256=-tEE_3w_0Ro_c6IBWDCwVrmDhLitOojU56oiprPiNps,827 +awscli/examples/ram/get-resource-shares.rst,sha256=hEw5mQpZkU7WZOQMwyECvGhlN7gTLZ0XKo3kS_QYoEk,1704 +awscli/examples/ram/list-pending-invitation-resources.rst,sha256=E-Vrv9LIaMf42JfYOvNKCBGU-9UE8Yh2voIMbZQQPTw,1416 +awscli/examples/ram/list-permissions.rst,sha256=9fIQ1G67hBFh-MyDE6_qYZvlXSKKnZISGBi8sHwCGwM,4011 +awscli/examples/ram/list-principals.rst,sha256=xX7TlIX7oLglchw6exgvwi15QtU8iSLw2beriULhtfc,710 +awscli/examples/ram/list-resource-share-permissions.rst,sha256=Z_HitxdhlRV2uXDYrVvLiaQLE7xlRTJxYnkWH282pc8,1100 +awscli/examples/ram/list-resource-types.rst,sha256=EpHRwDh-yHWzuYln04xR2AAcslr7CfPOJ75VS7tOJ_Q,865 +awscli/examples/ram/list-resources.rst,sha256=zfk_9gi5HJc2gHmlKlPPW6BTQeOwGdPdg3HvMrpaJ5Y,853 +awscli/examples/ram/promote-resource-share-created-from-policy.rst,sha256=pN863G3UwtZzmieNI_OjjCT-YO__4YodHWfptIGevpE,582 +awscli/examples/ram/reject-resource-share-invitation.rst,sha256=c4vhQj-CN-vuNhU-06WG-W6bltNwv2WqtvVh4D7etwo,916 +awscli/examples/ram/tag-resource.rst,sha256=DpeKoRddggoIcPcvlF7CDk5SxJEYGHHPEmw-D3zJYwg,386 +awscli/examples/ram/untag-resource.rst,sha256=uK3_E8v5zwRLCSSHeiYBomHRvti2pGMu8WMTkkLgzGk,382 +awscli/examples/ram/update-resource-share.rst,sha256=tU484Dbknlus_acw0GWxsW_irER-Q6Fl8SrNPzsxzXA,814 +awscli/examples/rds-data/batch-execute-statement.rst,sha256=ddT7ppqiNb3kL0WJ-AxXzNlDI47Dk50jyEUXqNvXlZc,1084 +awscli/examples/rds-data/begin-transaction.rst,sha256=4yixbpZ2TkkFcCaFm26QsYJndYoz4WWN8GxxQsweoXE,589 +awscli/examples/rds-data/commit-transaction.rst,sha256=KWJ9P7tUTRdB38fFTI-pZbbcq4BelH8JD32X-6UXnvA,681 +awscli/examples/rds-data/execute-statement.rst,sha256=Z6GF6LBY2rAgahFWqXSz0nytUGan-lMrFo8HrYSJ9qo,1386 +awscli/examples/rds-data/rollback-transaction.rst,sha256=GJrGoJWM2ldjjH3EW2T8-z2icZwGiPBcr9Pk6dmImcA,635 +awscli/examples/rds/add-option-to-option-group.rst,sha256=7CyHKq3cA376V_UpRosdzAbaRPKySZqpQMTRXGV8H1o,4292 +awscli/examples/rds/add-role-to-db-cluster.rst,sha256=zxqntjvIPhC356-rXerEwtdBDK9igPqd8uisP3TjJCM,621 +awscli/examples/rds/add-role-to-db-instance.rst,sha256=J8o0mJkqc_b6ZNktKev9jVD_4mCq4uZyPnFLJ7m-cyA,693 +awscli/examples/rds/add-source-identifier-to-subscription.rst,sha256=BXq7yIT0uLtQ587nDyxNIWJdz0wKEmToV7MOLmP2Xzc,1053 +awscli/examples/rds/add-tags-to-resource.rst,sha256=y5vlSoYw1RpMTNUSYUx8oo1cRZkUduxvKD7oV2XX-y8,539 +awscli/examples/rds/apply-pending-maintenance-action.rst,sha256=q5Ggrtse4mHYI0naKBYsGhTsE3j6Wn6qj2FU0vieV0M,1273 +awscli/examples/rds/authorize-db-security-group-ingress.rst,sha256=IMBVzEMA3RN5mLu-5Swz0yhdQlpoJv6mQRTduwjFI2o,1153 +awscli/examples/rds/backtrack-db-cluster.rst,sha256=eEn9VLRuk76_kadVBJ07F8g3NJ8UqW27BnOIs12Cwug,370 +awscli/examples/rds/cancel-export-task.rst,sha256=KKxAyvzi1IrcbFnQuBEUvW_9HLYZodN0smBj0U7oeB0,1223 +awscli/examples/rds/copy-db-cluster-parameter-group.rst,sha256=Lwa26jqqPjx8pPM8N2Ohy4PibYyqJbPxOhTLN1I_6_8,1049 +awscli/examples/rds/copy-db-cluster-snapshot.rst,sha256=UZGxbwnJERmvyud6s94ZYX8tyG_VhWanGA5Kb7XiRo4,1701 +awscli/examples/rds/copy-db-parameter-group.rst,sha256=MMnAzHxhAo56KzXclUjJBy9xB_HjjIqwX76tGECvCNE,899 +awscli/examples/rds/copy-db-snapshot.rst,sha256=hv-i1URNIBBZBSkxcEWfl0OnC83M5E0OAwwJxSgKmTs,1722 +awscli/examples/rds/copy-option-group.rst,sha256=8F_u04SJwgzLe_giGBoXsEozDBx7DKvz0JIY2UK__a0,971 +awscli/examples/rds/create-blue-green-deployment.rst,sha256=i7VpDYZ3HVi2B85VLEp3l6rET6MKA7zgIdfbY7EQMqM,5015 +awscli/examples/rds/create-db-cluster-endpoint.rst,sha256=wF9CidPdpasbRgwIWtaddJpapW0ls2L2eixzn2DJ3pI,1258 +awscli/examples/rds/create-db-cluster-parameter-group.rst,sha256=PCk0BH7AXlPN6uq885VOSu84umk3mTvieUOe7NTCz5o,981 +awscli/examples/rds/create-db-cluster-snapshot.rst,sha256=vUd8M53to0ivQ8-9agANo8jvtcx3410wrcRvQB9Excw,1577 +awscli/examples/rds/create-db-cluster.rst,sha256=SgHhRDSUf_wJtGMjCOR9vsrGrKu4R90B17aXNIJ0uTQ,5481 +awscli/examples/rds/create-db-instance-read-replica.rst,sha256=aV45qjSfv5DJqrupDztjsRJgHSmwczTet3i2CBKDKSY,746 +awscli/examples/rds/create-db-instance.rst,sha256=UiaFbzLa929PCY_2UoNg53gZKB9XI3c3LpL7A2Vdyfs,4049 +awscli/examples/rds/create-db-parameter-group.rst,sha256=QWn5aiXxSzgLvVC8yC0c0L8UeQh2CI-Oc3siMTdDN74,849 +awscli/examples/rds/create-db-proxy-endpoint.rst,sha256=JqJ0xUpPKGiy-dWmeP1sVumze9Uki_vNTR2vaS0menc,1495 +awscli/examples/rds/create-db-proxy.rst,sha256=rD-Nel4CN8k5EZElR4f8SNyfeG9B4GprD6Jf7MEa6-k,2114 +awscli/examples/rds/create-db-security-group.rst,sha256=e5IUl4H8zUt7eGWMy0Y-WYZ6342dxxQPeQo9g2IZSSQ,773 +awscli/examples/rds/create-db-shard-group.rst,sha256=qSxmn0ZQAfJ765HCqS-RX_qSo1Zf1z1eo1fTauJZAy8,8673 +awscli/examples/rds/create-db-snapshot.rst,sha256=swtNcQNOFp7YqoNjY36Hg1p03gVhXaA7IAyXTxWBAEM,1504 +awscli/examples/rds/create-db-subnet-group.rst,sha256=XN6JmeI-bTTDTWBBsbgG9YR8mgmf7AG1krNSMm1zOdc,1870 +awscli/examples/rds/create-event-subscription.rst,sha256=MpvlSWT3ENFY44_mWjwzw8NR-2ZqzaLJ57L_-FmskUM,1178 +awscli/examples/rds/create-global-cluster.rst,sha256=DihM9vULCQOGWeRkx-8XYS6fEjhtVssbs8hbSPWOfJQ,1051 +awscli/examples/rds/create-option-group.rst,sha256=MQGW1Ro1UeTnUJbDp5_adMdCbZgCJiF14sX3jtFd2L4,904 +awscli/examples/rds/delete-blue-green-deployment.rst,sha256=fl0L1ITA6HtUpU0bQyssiO8gZS1QiwKJnpQxg3TNQC0,6462 +awscli/examples/rds/delete-db-cluster-endpoint.rst,sha256=rCyzUcfH-KodO6fvACtsQtA7oVYAgzt7-fE0cfTfEiU,1097 +awscli/examples/rds/delete-db-cluster-parameter-group.rst,sha256=vmltRcAPIVuJ_qSIBj4ULMpDNIcEXCI_JdxuoOIY2LY,535 +awscli/examples/rds/delete-db-cluster-snapshot.rst,sha256=uV6Gy-WC8Pt_zKbsOdd3IlqI-2NlBJvmrcFxY9mNqvc,1528 +awscli/examples/rds/delete-db-cluster.rst,sha256=Ef4BF5hKnfZnJgwvNfiaHaSVymyh7W95PlnCrKWbUJI,2233 +awscli/examples/rds/delete-db-instance-automated-backup.rst,sha256=BeYvX7JmTEvMVwu6BhkMpIt7FpnyGr4Xzs6IGLywBeo,1722 +awscli/examples/rds/delete-db-instance.rst,sha256=4KfXfHKawlq9vtyBf3hHbYJK1feqm1oV3LusOGIi074,523 +awscli/examples/rds/delete-db-parameter-group.rst,sha256=ZGMGXp2ruwX3Lrka9O6uhoWYwfV55uGPC3tFdgpY38c,417 +awscli/examples/rds/delete-db-proxy-endpoint.rst,sha256=oWPG991m-bRrBdN82YgLi6YeWkECTjCh8_UPzeyAPQ0,1433 +awscli/examples/rds/delete-db-proxy.rst,sha256=AdonbVfh5f91jaV7asJnliNTNpiOPglDxc1ng0hEHGA,1866 +awscli/examples/rds/delete-db-security-group.rst,sha256=k4WSCVnoic0A8AvC2LPXBMETxxc6jF-Icx0UFs0j3Ew,488 +awscli/examples/rds/delete-db-shard-group.rst,sha256=J596vaWfhPFsWZhi5Ddy4BJbb61255_d6TGZAGBlRBI,1540 +awscli/examples/rds/delete-db-snapshot.rst,sha256=AhaGPmXquQht6MNGRM6jE6ckmVE-pqdMMfsmVascPvs,1526 +awscli/examples/rds/delete-db-subnet-group.rst,sha256=QiD5F5T0Avg0SCEOQe4LHgD7UbuufbWNV5fBSEfkALs,454 +awscli/examples/rds/delete-event-subscription.rst,sha256=dhYTCKMRfUPoz3SAoTU0MJL2k-OoZsneh5t1XJRKxTM,911 +awscli/examples/rds/delete-global-cluster.rst,sha256=2KJGwihf_QeZuNs98MgAQ6uSsX7PfPDO4a2FLDdqYJQ,1140 +awscli/examples/rds/delete-option-group.rst,sha256=LIExdT--JaKEn6Gna809d0_m0RIX43ZJqN7do5lV20w,442 +awscli/examples/rds/deregister-db-proxy-targets.rst,sha256=fFgsgP9v2EDQteF7gN0pcE4r0_Pe2_01c5uNp6UDprI,711 +awscli/examples/rds/describe-account-attributes.rst,sha256=CcVr5qHovIozdxrOXWE4aHCS1cHFQl_I7mSo0WXxajQ,2343 +awscli/examples/rds/describe-blue-green-deployments.rst,sha256=nPgVT_bZVW5lJZwY18GOFAx9xei9zRPWkRcgPyQkVXo,16810 +awscli/examples/rds/describe-certificates.rst,sha256=FGjzSEjPue_pXqyasV3kFB29cPuN86CiLpHYmUr33oE,2547 +awscli/examples/rds/describe-db-cluster-backtracks.rst,sha256=Sj21q4JmXec_g0xQ_zLr_LA-pMi37mKuKeeoEX-mJQY,1316 +awscli/examples/rds/describe-db-cluster-endpoints.rst,sha256=50wIOtDQI_CGVB-Uz9GD5af9J91e3J3ZzP6mSphk5kY,2468 +awscli/examples/rds/describe-db-cluster-parameter-groups.rst,sha256=5xd04_xmklDSPZu9yHKiBj_Wr_p7cVc5TOAaoXqCh2k,2248 +awscli/examples/rds/describe-db-cluster-parameters.rst,sha256=v1XLN6JXHlAMnfo2S1GM3gqbWrOHXFWfoPc8EX3FgdU,4862 +awscli/examples/rds/describe-db-cluster-snapshot-attributes.rst,sha256=vJM5knV1YDAH3sOnCd4xT_X5-648xN61nfKYXFUd9po,920 +awscli/examples/rds/describe-db-cluster-snapshots.rst,sha256=PeHOSZ7r5aqhvXf2ucA4x8sltpgZpznmlSmnPQRsi6Y,2918 +awscli/examples/rds/describe-db-clusters.rst,sha256=_-98I7XbQD3T-CWHq2pOjmNKO8-xut7bJ86_WKvoV9M,6083 +awscli/examples/rds/describe-db-engine-versions.rst,sha256=pEaRlEsXu9BuD1U7_MCyGM0GY8H-qiOC_dWYsD8dHnE,1786 +awscli/examples/rds/describe-db-instance-automated-backups.rst,sha256=0XYcJjYBt3yPqSJc5U98swAka__Zk97R4m2edzgL7Zc,1870 +awscli/examples/rds/describe-db-instances.rst,sha256=LIY1QDCSZ3WAcm_uvjz3MVjyFORheybob-fh5Ujz3ZI,841 +awscli/examples/rds/describe-db-log-files.rst,sha256=lJc_yuZQdahqqXRIAcGcVM6X4fgpIBEIDS0ExGpOxAg,1302 +awscli/examples/rds/describe-db-parameter-groups.rst,sha256=ekavH-6LivkL70NOQKHQ--z5Htl_xUa_a97CDI_6JnY,1813 +awscli/examples/rds/describe-db-parameters.rst,sha256=E5XVwKNKfaTj57bzzJ-6hfoFaSWO6FMOzfZ8Rt7g5Sc,1497 +awscli/examples/rds/describe-db-proxies.rst,sha256=sBnLJ1N_4DASLM2nm5g3aoB9s9XE-LB3SETd4Zo9Xn4,3169 +awscli/examples/rds/describe-db-proxy-endpoints.rst,sha256=M1xH3aFEbq9DwNwBjasvUuE6ZSkHwk8G5RrZz7o4I2Q,2249 +awscli/examples/rds/describe-db-proxy-target-groups.rst,sha256=qce1lpRH_2gGb0Y55duIMVp7B8AYPJqEyAlLGleNw8k,1263 +awscli/examples/rds/describe-db-proxy-targets.rst,sha256=M7XU4oAhP0Pg_rNNJ3wXOSCkFDuCFmkPH4T2uFWrawY,1187 +awscli/examples/rds/describe-db-recommendations.rst,sha256=vDVNAduo7_nqtGfck3gma06CyOVmS1_JYBVt-edbL4M,17254 +awscli/examples/rds/describe-db-security-groups.rst,sha256=PgMUyAcEvcrMiWT1zBqVSw4-oKu6yHqlnpk-mFKq25w,1227 +awscli/examples/rds/describe-db-shard-groups.rst,sha256=ptA92RYnITBD2LSa1U2j7uXx-K3ZA7IbotW3nEJV56w,1422 +awscli/examples/rds/describe-db-snapshot-attributes.rst,sha256=NOyUZ1BOXPm1_HNi-GorNkhXgev-EJxyeCm1iFpbShw,849 +awscli/examples/rds/describe-db-snapshots.rst,sha256=MpaDj6a3a7QhX5DI26N76rTZ9mRzXajC5nuYgSF0QAk,2196 +awscli/examples/rds/describe-db-subnet-groups.rst,sha256=YMxUP0iL6l6Lyi1G_MO7omBMFWGc0v8UbnKA2ZdI59Q,1952 +awscli/examples/rds/describe-engine-default-cluster-parameters.rst,sha256=dOdvfw3UXofov9KXtUrJsecxg8XaOpJ4A0RGIeupuow,1251 +awscli/examples/rds/describe-engine-default-parameters.rst,sha256=n9QZ3SMpQNCAiasdKcIIwHp2FmTB8g5YyNziwlU8c-E,1149 +awscli/examples/rds/describe-event-categories.rst,sha256=JlS4wO5Ol31QHNY3VRHsf5eWcctKwX9BteEDpesf5A0,1924 +awscli/examples/rds/describe-event-subscriptions.rst,sha256=HjL3fYz9ljL6IJrmvSqqAhTzdOYrGvRn4gU19CLcb6Y,918 +awscli/examples/rds/describe-events.rst,sha256=hAWw49nZompsYWucHPoYJD7YoTkAg3gROubXXhC2860,1118 +awscli/examples/rds/describe-export-tasks.rst,sha256=WMK-Yj3jUWGezyqMBnvHm8hHBQ_G00PZHR5LMZPeZlI,1843 +awscli/examples/rds/describe-global-clusters.rst,sha256=4Q8WXBt98SnchMWqr80vKjurtiq25n_KnTE63-bh8YA,1001 +awscli/examples/rds/describe-option-group-options.rst,sha256=ZhKOJzK5fhG45Fdt_kIWIJidn7bHGaQCl-o3Cs45H54,2513 +awscli/examples/rds/describe-option-groups.rst,sha256=v1T2fGYAA7RQkpqrEktFp3HTCxVrCLnJJz51g59XrSE,1053 +awscli/examples/rds/describe-orderable-db-instance-options.rst,sha256=kGG3tYVxhrFf42BazIAJC_As_9qTOzAggKxIMzwCzus,1560 +awscli/examples/rds/describe-pending-maintenance-actions.rst,sha256=D3d2erfqtINg3OYGLjmbDZJN3lMG4qPnVS7DALXnBh8,890 +awscli/examples/rds/describe-reserved-db-instances-offerings.rst,sha256=tA_wONuKqEx8jk5UdGVE9QpDR5UoBqfdBNWODhNC9Ss,1056 +awscli/examples/rds/describe-reserved-db-instances.rst,sha256=gRRUNeQ1UdQqGOtavauOcS7JjB6UzIgRmzqIlBjN4SQ,1523 +awscli/examples/rds/describe-source-regions.rst,sha256=5kIiI3e4uGE6Nl8mHqZvQO9JqAnkDXtAa7qVx_CloGM,6062 +awscli/examples/rds/describe-valid-db-instance-modifications.rst,sha256=L_3Z4m8pYzHT_brb6alh7TPajSqme-9QwioL576isrY,3029 +awscli/examples/rds/download-db-log-file-portion.rst,sha256=m51EnA8GJnAmizsYW7QjerY1dxlbyZ_rCmbIKjiLYGM,1043 +awscli/examples/rds/generate-auth-token.rst,sha256=9jkczKa_Tu4ITjF7JBVmXVI500gUJdxwfi-ZxDfjKgc,739 +awscli/examples/rds/generate-db-auth-token.rst,sha256=DqZrocf4Uj7NYZnb2te20yUULBHuGGqSnE1jyw61mog,1105 +awscli/examples/rds/list-tags-for-resource.rst,sha256=tqdsloEY9nPCTsU7AvRhiF7WtHiTlczkr5FkecECJPg,673 +awscli/examples/rds/modify-certificates.rst,sha256=a0JSVYm3VzUwwPD5cMyzXFTOyo1U96HCNdQiC1jFsaw,1170 +awscli/examples/rds/modify-current-db-cluster-capacity.rst,sha256=L-vdbWYVUR3-8OIgNmunMxLIn6gCOfisXCDyihRDTpA,766 +awscli/examples/rds/modify-db-cluster-endpoint.rst,sha256=zFqtQt7Wk9Ddx13PjNnXk06IL4oG-Hdlt-mAd68VwwU,1162 +awscli/examples/rds/modify-db-cluster-parameter-group.rst,sha256=YLiH6c0j-9eUsh_KfPP0tI7DpKFk4lBXCe4fCtqZD8o,814 +awscli/examples/rds/modify-db-cluster-snapshot-attribute.rst,sha256=HbKx11rYSXoXPGenB4NNdHGI7gXUzRmCi1ZLv1p17Fk,945 +awscli/examples/rds/modify-db-cluster.rst,sha256=ryI0WuSZdVUTE4FWCUCJ8AmBD9zo_rwDT87DZNllGbg,5244 +awscli/examples/rds/modify-db-instance.rst,sha256=PfLUVk_-iSSM2eB2Ew2OnoXPEto9KxKiiJDx7_wZ3cU,3640 +awscli/examples/rds/modify-db-parameter-group.rst,sha256=DBKr5U33HC5O51DQ2lakuOW0XfB2xwUl1KIUsMCYmcM,840 +awscli/examples/rds/modify-db-proxy-endpoint.rst,sha256=7kKVWRaY2AidFgf_6dpd3VXOpBEeQTPq7nBcpLihAg4,1500 +awscli/examples/rds/modify-db-proxy-target-group.rst,sha256=UpF-KaYD_T5El2mmaQJbP1AGL8mVKaSSlAWSv2wfUco,1489 +awscli/examples/rds/modify-db-proxy.rst,sha256=tsC2ZxX5FyPqYe4xTc3u_jOWor0QFQ6LDsvhRYrYHms,1848 +awscli/examples/rds/modify-db-shard-group.rst,sha256=L9uwPcvB7ma0QVLaKGY4j_LiUDV1_e8UBczaxgsWuLU,2574 +awscli/examples/rds/modify-db-snapshot-attribute.rst,sha256=ELaqSR2z1r_eI3BOVBElzqBoNFehI0aNmAdV1L7CAF4,2162 +awscli/examples/rds/modify-db-snapshot-attributes.rst,sha256=1hHN5-QIfaxU5BQobsnvXpVNm1UBafH68D22sDf-FhY,1029 +awscli/examples/rds/modify-db-snapshot.rst,sha256=JdSDAwyOk-UVPqPJPWvQ3DR1mb0aaH6MfuLBN-liyzg,1707 +awscli/examples/rds/modify-db-subnet-group.rst,sha256=xQGx6crCgCfRmElqfdsLXOsj_s5oDP6XNv9tCdgJilA,2347 +awscli/examples/rds/modify-event-subscription.rst,sha256=lr3WHdzNwT3FsoGevi5FsujcYOCgZn_zPUZxzc9O3q0,977 +awscli/examples/rds/modify-global-cluster.rst,sha256=jP4GTnB4zmkN7X4vI6mvfgmDBMLZAIVGSb7YamKv2vw,1032 +awscli/examples/rds/promote-read-replica-db-cluster.rst,sha256=ZEy-pRU-irK-P6Yvflp1UfR93eRCErU9V911b3526Hk,942 +awscli/examples/rds/promote-read-replica.rst,sha256=_XdOn1JsilrNuzuSeV9M-2bPYKdL0Mg31v5Nsarg7CM,581 +awscli/examples/rds/purchase-reserved-db-instance.rst,sha256=OCPU6Fv5JGUiDLmdcJLd78STcT5VvYy6xNeQY7Xyvrk,440 +awscli/examples/rds/purchase-reserved-db-instances-offerings.rst,sha256=a9AhaYPypkY2Kijgt4_2rUIXZGlLWeMdbIjWEtvWwFQ,2979 +awscli/examples/rds/reboot-db-instance.rst,sha256=o4ewjOTc6kcy6a9X6e6XBeahcDaEld-yMbapEGg2zLY,919 +awscli/examples/rds/reboot-db-shard-group.rst,sha256=c0t47eu7TOF--Zn5-umxeulqX0o5xv0_AIw5BUig4dI,2565 +awscli/examples/rds/register-db-proxy-targets.rst,sha256=Z9z5bmv0c9-3-FZFGyqouYK7WyI3fmw3HeGOsgzZo_I,1266 +awscli/examples/rds/remove-from-global-cluster.rst,sha256=Gz-uKh7zqSatc4zZV7wRIMC0MxBNB9cMJSBidpGVjlk,1892 +awscli/examples/rds/remove-option-from-option-group.rst,sha256=jkqOkUHPlh-Rbo9o2no5JdoZ5iyCJj0MnvKJZYzdX_Q,965 +awscli/examples/rds/remove-role-from-db-cluster.rst,sha256=EdaMN-fy9JmCc5M4at8NCKs8hdD6v8rN3ZejTKsjLhI,631 +awscli/examples/rds/remove-role-from-db-instance.rst,sha256=fESpy0hYeLYXsz4XZ39CFdc2P0TN9vIgU4GoqtZQA5g,763 +awscli/examples/rds/remove-source-identifier-from-subscription.rst,sha256=jgJMZC2FBR5tluL_Gwm3zVsQCZ9BjwURptMGesw8340,1039 +awscli/examples/rds/remove-tags-from-resource.rst,sha256=P5LDQCkgpJ3DqYi34qPV-pGtviGnuRtFbZb_T4fOfPc,637 +awscli/examples/rds/reset-db-cluster-parameter-group.rst,sha256=dEDYrotCWvLB5xCaHk1ez1wNCFxIJNQBp-iW6M5V848,1505 +awscli/examples/rds/reset-db-parameter-group.rst,sha256=cQrAIJOXknJsoALwJFwmYjARlanEFtzE0evXViw1qJs,1734 +awscli/examples/rds/restore-db-cluster-from-s3.rst,sha256=B74xgJDoVqaiE3joN6zPUpb8J7IDlPp4wHs3D8mzffE,2785 +awscli/examples/rds/restore-db-cluster-from-snapshot.rst,sha256=SZTMYUWZs2fOV5NSuEd_nN6YBOiwVk7YhZj0JZ9nXgI,2693 +awscli/examples/rds/restore-db-cluster-to-point-in-time.rst,sha256=FgVqwBTGUqxLa88FBOno1oIl-geNquwyUV9YbtFIOgk,2827 +awscli/examples/rds/restore-db-instance-from-db-snapshot.rst,sha256=5ynAa_HiVBGPQaEsn7iCeWN02fJPmg6vE4UdBIAH45o,1635 +awscli/examples/rds/restore-db-instance-from-s3.rst,sha256=QWq2sUHaaezEePOD1HUlhmHsW-3qmYGVUclRdIP9CZw,641 +awscli/examples/rds/restore-db-instance-to-point-in-time.rst,sha256=apU65nFkOEzufWclWRp99amuvzA5gd0hqoPszSiShpM,2785 +awscli/examples/rds/start-activity-stream.rst,sha256=bzkITWkYLa-a2mX_t3xyWMdnBrV7AuhyG1LE8cCp6rw,1004 +awscli/examples/rds/start-db-cluster.rst,sha256=IkilLYshcWRROpg0kC7B00n50ai6h1BXQoqjWTYBqr0,820 +awscli/examples/rds/start-db-instance-automated-backups-replication.rst,sha256=f7W7esFUd891QECMigGIOWFJoHvmhdNbduSjU1WQCEE,1760 +awscli/examples/rds/start-db-instance.rst,sha256=R7Z05L0an3pXnnzSmjKZODYFr6Jn_HceL4xaRSE570k,330 +awscli/examples/rds/start-export-task.rst,sha256=gowciXs7YC_VUbibYANgRMEM2AYqCdIIazrjNHVwPQQ,1327 +awscli/examples/rds/stop-activity-stream.rst,sha256=kJNc6qrjl2UzmbgfE9OWkSt8R6-3cuJTGJFYf85mPN0,786 +awscli/examples/rds/stop-db-cluster.rst,sha256=myVg0qC2CFXXodlZgTdPrbjn91DaRGZmbdL4YdMHn4s,816 +awscli/examples/rds/stop-db-instance-automated-backups-replication.rst,sha256=ejJmuFNsYLj3C7nTem5N3b1XWLgaBVqG2myShjVuiDo,1837 +awscli/examples/rds/stop-db-instance.rst,sha256=177iH4wqg-DQyXlDHiv-0vVgzshE9CQwCrZBZYb8tTY,326 +awscli/examples/rds/switchover-blue-green-deployment.rst,sha256=yRHO4E08fIVPLOxEuQfJFnUBfZwluWX6sAojGPdw7B0,6377 +awscli/examples/redshift/accept-reserved-node-exchange.rst,sha256=E6HYSsxiIEeWgZKoui0mWJdwRQgg-TB-0u27wLcI48c,1413 +awscli/examples/redshift/authorize-cluster-security-group-ingress.rst,sha256=dnOvDRFO_M9tnaXPTkFJEBOufJi-Vrb9YjKU3oPusCw,626 +awscli/examples/redshift/authorize-snapshot-access.rst,sha256=XRU-AkvIYLYcHW3xoHJbYFxu-5Pn6qL1cCN1irDizAQ,1301 +awscli/examples/redshift/batch-delete-cluster-snapshots.rst,sha256=jbF6Qr5YUlx5UxwZKlwB4PiuWdnWrpCgZgpIPFyLXTo,650 +awscli/examples/redshift/batch-modify-cluster-snapshots.rst,sha256=9TdRq57Fhtg-3cQd8mL9ezRGDqTveWlUWIbS5SAOuC4,1182 +awscli/examples/redshift/cancel-resize.rst,sha256=VMlFZb9rhDRgWHtJvNyvqQ5QW03cunR_ZYMZHXy-yl8,663 +awscli/examples/redshift/copy-cluster-snapshot.rst,sha256=ZLohE17BYbmFmJ_npRQ5CsA7Rm1iRATLxkZiy4auqfw,1049 +awscli/examples/redshift/create-cluster-parameter-group.rst,sha256=sSWLR5B5xoOhZxt6bs-qXIihbkJdm2O1Z09alRTA9xg,650 +awscli/examples/redshift/create-cluster-security-group.rst,sha256=kfQgpnrOarmjiG0j-BLW4wypbKjI6Snwx9t2vz02jzg,1268 +awscli/examples/redshift/create-cluster-snapshot.rst,sha256=O-qnFUyfte7v4W9-iOhIvknvINASlBn_Q1VRv1-GSVQ,939 +awscli/examples/redshift/create-cluster-subnet-group.rst,sha256=PfhedJyQXJd5D271HbhVrzSArxVf1B3HsTgesBzXigI,865 +awscli/examples/redshift/create-cluster.rst,sha256=98_C9a5EGDex9he_NPpjSUEFImyPdvwEj91zBlgOMIQ,1446 +awscli/examples/redshift/create-event-subscription.rst,sha256=I2jxX7mD0IhfnRm96N69_NR8CAHRpCZQdyppw9-NqOk,1209 +awscli/examples/redshift/create-hsm-client-certificate.rst,sha256=WwB1fcut77Qtrp0BNiVEQ1cbxNjqe_Vgsgfd82vCNlM,1853 +awscli/examples/redshift/create-hsm-configuration.rst,sha256=pP3CuaKX7ZQ7dYI_CVKW9iu39nFoN5S_hyNlsv8oDt0,894 +awscli/examples/redshift/create-snapshot-copy-grant.rst,sha256=UznKUdXpwIZ7jMiu2BAvs8I3KH_GbkOi08FMPavCFlg,750 +awscli/examples/redshift/create-snapshot-schedule.rst,sha256=v1HPY5jbaHt3APqWWv1sZ8XIgTbq17QyQRtuMN26E40,844 +awscli/examples/redshift/create-tags.rst,sha256=giYzVU4w9m8RiWqg7HbUDzXm6j7l1Owl9VFaapby3zo,553 +awscli/examples/redshift/delete-cluster-parameter-group.rst,sha256=DgXjEOjR9X7pVnNny7kUDacvQNXPCGnrctW6BPHuDYQ,222 +awscli/examples/redshift/delete-cluster-security-group.rst,sha256=YeqLPOembq6iYJov_j3KcPBmUFKIvBo_b5R2_8DAz-A,217 +awscli/examples/redshift/delete-cluster-snapshot.rst,sha256=PPtM_Y70IoU5ZTYu6v3_7wu9z6ML-1yNXCwbpt9ZkF8,184 +awscli/examples/redshift/delete-cluster-subnet-group.rst,sha256=ouAGJPQnhhF8p_omq9QOMapJxeo1AlWIcoKsIGgt95A,329 +awscli/examples/redshift/delete-cluster.rst,sha256=flAxqcZ1mKoqOd_XG73TXf7r2gVpCW26cAKGOe5z1jc,603 +awscli/examples/redshift/delete-event-subscription.rst,sha256=7INLMNFRF4chgOWfpwQIkMq91vT7lqF79LFDlylxGKM,508 +awscli/examples/redshift/delete-hsm-client-certificate.rst,sha256=MI3L68az6nme__usAlRTve_n7IQPUpaGMcpypuQZucM,522 +awscli/examples/redshift/delete-hsm-configuration.rst,sha256=NC8fL_J4EXTU5pQ3gsKW4UtAJnoxAMZ7mxivTwa13bw,311 +awscli/examples/redshift/delete-scheduled-action.rst,sha256=zJ-otj5Lt2eJ_Fa4RB8uBD6AzIAOS0E10PvvlDALv3A,270 +awscli/examples/redshift/delete-snapshot-copy-grant.rst,sha256=Yydz-JcEs6kLIvozfBHuNAutCEfXRuv3Ov9PTOcQffA,494 +awscli/examples/redshift/delete-snapshot-schedule.rst,sha256=FdvY7iio_-taPu4MiMe55UtUxR3ZlBH5Kg9rhzGbfu0,555 +awscli/examples/redshift/delete-tags.rst,sha256=rwWWxnL5li6fG6iisz-MvjCOgKygA83lVv7c8_pIJFs,572 +awscli/examples/redshift/describe-account-attributes.rst,sha256=V1ITDq3YPBduFXpcky6diq36LDefwSVAU48cxpYVtHY,535 +awscli/examples/redshift/describe-cluster-db-revisions.rst,sha256=LSINSlUR4M4_gfHuvimk6dUVdr488PVJ5whuak-srYk,612 +awscli/examples/redshift/describe-cluster-parameter-groups.rst,sha256=IUjoDJF3nbcmJWduDbufsjw8tkV5YIeO3DeUxZFU93w,981 +awscli/examples/redshift/describe-cluster-parameters.rst,sha256=r-Y71sN2B5DyoBV1SVAILIWGojgQlDHBocc5y7xWDHI,2217 +awscli/examples/redshift/describe-cluster-security-groups.rst,sha256=TCg-gPPs20q3Vq1WR_uaa6WPI-llT_h3Ie7lPVf0OFY,1010 +awscli/examples/redshift/describe-cluster-snapshots.rst,sha256=Ce7P6zM8dvU9Y864ba5wMF9hG195kVEnzXltzTFcWNc,2445 +awscli/examples/redshift/describe-cluster-subnet-groups.rst,sha256=pYBO10zZs2x4Jk4UfVlgMYTnSja-cyOU1fM4Ickt00o,930 +awscli/examples/redshift/describe-cluster-tracks.rst,sha256=Jh1WRKWM3bcZbqLXpjq52QHtTQVkjXus5A-Vj-Z2ONw,1621 +awscli/examples/redshift/describe-cluster-versions.rst,sha256=DwQDu7GRUsQcRXBzeAkuRmFX605gz8UxuJvxPIrX0TY,556 +awscli/examples/redshift/describe-clusters.rst,sha256=mXosi6u1BO4nr9Q6HcHFIXzy_6F8cI2f8MdFkGVsDFo,2005 +awscli/examples/redshift/describe-default-cluster-parameters.rst,sha256=K7qRFUMqXntWHuIxOw9v8N96FCeQ78PytukJnHvnDAk,1310 +awscli/examples/redshift/describe-event-categories.rst,sha256=2qmzSQQks49ijgIi1OBoyVrGoojg3dRn1tiPcgjijE8,1664 +awscli/examples/redshift/describe-event-subscriptions.rst,sha256=VRol0S4bBAuCweok_7B-mOZRCk-vmydaIIQkDGa_NoE,1129 +awscli/examples/redshift/describe-events.rst,sha256=2EvDWad-0P9U1X8c6ckhQatUUJ7LPLx5DGl4jc7onww,937 +awscli/examples/redshift/describe-hsm-client-certificates.rst,sha256=LUXiLXRcng1fxgRZCuUVZsbsxRtmP4r8EPSQtAyIAhI,1873 +awscli/examples/redshift/describe-hsm-configurations.rst,sha256=iFGmFqHqwlXoYF0mB6QyytYXrWBaIOcxYT8bKVTLl1o,635 +awscli/examples/redshift/describe-logging-status.rst,sha256=zNu3zL5pMC0_Et8GZ2_AseSVcIEIr7c5EmlOoBDH-Ys,526 +awscli/examples/redshift/describe-node-configuration-options.rst,sha256=_hKQr-PiLc-kqU32bo2LWz28QVrsvBoj8gY-T2QnLBw,1383 +awscli/examples/redshift/describe-orderable-cluster-options.rst,sha256=BlmfUke6a2QxybYK-FG3Gq7RwfoubWC7XcKhParfW3Y,1806 +awscli/examples/redshift/describe-reserved-node-offerings.rst,sha256=Wa3AdmzAMJZHzw7u3XXQLez8WRifuPy7PzkUj3yhDCs,1499 +awscli/examples/redshift/describe-reserved-nodes.rst,sha256=uMBsIZKBDLZ9orPMWssJNI8ckAAjZt79LIgADKl8Uo4,994 +awscli/examples/redshift/describe-resize.rst,sha256=8OEE8U2oMZaLuRktskzcLXFoBsFuxbzBVdMuJdoy7fw,488 +awscli/examples/redshift/describe-scheduled-actions.rst,sha256=K1o3WwEagJCmwsfQXpybFIJiswId37QS-iKBHR_-0Qw,886 +awscli/examples/redshift/describe-snapshot-copy-grants.rst,sha256=R5j-XGRlCyy8puoyAC7e8iEAVxQ90rYA5P9588E0NCE,775 +awscli/examples/redshift/describe-snapshot-schedules.rst,sha256=Kue3Y0oQCoLPmcdbgBkui7D7oxLYiafFQE7jwuX0fyg,1152 +awscli/examples/redshift/describe-storage.rst,sha256=3JfxPZCghGPyf1K45z6Zr-1G6NcNCh5qO9fWXxDDV2o,548 +awscli/examples/redshift/describe-table-restore-status.rst,sha256=VmfBDikPR6aXur9oOqfMvAUsCPCgwZ_hAFbYJL9bj4U,1232 +awscli/examples/redshift/describe-tags.rst,sha256=Yn92mB0AxloqI87wsRPjAIoCe0XfgB40ORxfoYJ3K_s,927 +awscli/examples/redshift/disable-snapshot-copy.rst,sha256=AmPxW0UJLeJZPmTaDzhDiYZ9WtzYDR6EmStN6gtE5pI,2851 +awscli/examples/redshift/enable-snapshot-copy.rst,sha256=tqM_wgeEoNa5VrLraaUfcSdYR_KWv2__bqLRmRXIops,3092 +awscli/examples/redshift/get-cluster-credentials.rst,sha256=6AsJZdv5kh5uBL4CSTn3MxldkLlJ85FXsZELGqWhMeg,783 +awscli/examples/redshift/get-reserved-node-exchange-offerings.rst,sha256=TEhWl2W61r5Mnccq5xIQo5-IuN9PYXw2faClanZqjtQ,1280 +awscli/examples/redshift/modify-cluster-iam-roles.rst,sha256=J2vKWpsrdZEhICpQZJSH4hRTRH8gNu7l74DhcZVeLAI,2964 +awscli/examples/redshift/modify-cluster-maintenance.rst,sha256=0Hyml35kRANwfKcE9XG7r9HRWCgl5xfsWzi3XLMDrsg,3197 +awscli/examples/redshift/modify-cluster-parameter-group.rst,sha256=cWgU-m3zgZ5MoTc86FXqMLFS_Qq62KOJEkaqMwIGhac,1025 +awscli/examples/redshift/modify-cluster-snapshot-schedule.rst,sha256=dGYOpkMpD36WrVi0RXBVG9W21P050DyPrBj0dKUZgT4,622 +awscli/examples/redshift/modify-cluster-snapshot.rst,sha256=9AsZBX7xdMA5INat91aAxpwR-YSqwPrarLkevP1MgcU,2043 +awscli/examples/redshift/modify-cluster-subnet-group.rst,sha256=DNUT-gQMf6hpqwcfcyzqJgbkv5JYoG1GAuQ4_QZLXxY,1152 +awscli/examples/redshift/modify-cluster.rst,sha256=YK2Y50x2gLrdjNyACxm7KXiBBJ8XjueZNbBJaOiP0WQ,945 +awscli/examples/redshift/modify-event-subscription.rst,sha256=_8VqpwlhTR9IK1nFuSkrJeonKcMbXP9zMofc8251b4U,1044 +awscli/examples/redshift/modify-scheduled-action.rst,sha256=L5nPyLqco9FriS-JC451jt4Rhu6wkByeMFgqsTndNeU,885 +awscli/examples/redshift/modify-snapshot-copy-retention-period.rst,sha256=9Q8ny0nckgjVdm2jMCjBXdI1tcUWuXg56AoPwj70PyE,3157 +awscli/examples/redshift/modify-snapshot-schedule.rst,sha256=QeRMqHkknZKN-IBV7AnBRGZki2lBBYDcuRO0u77ercE,767 +awscli/examples/redshift/purchase-reserved-node-offering.rst,sha256=uproTrYFSBi2CCVmkQmEqLby0_Ncz7rA0frVUkvT36Q,1096 +awscli/examples/redshift/reboot-cluster.rst,sha256=GoN-d0bt3F47_6nxKfU1yHPrYATk_WoIroQBSGYQafg,1459 +awscli/examples/redshift/reset-cluster-parameter-group.rst,sha256=eGLrNCbWJHJR3MSW4gTmc9p3MXG8sZVpokadTiwA0dM,282 +awscli/examples/redshift/resize-cluster.rst,sha256=RXeGip9xx68xadH1KxOCvEi0uwZXV5xHVWxNQcXyeXY,3170 +awscli/examples/redshift/restore-from-cluster-snapshot.rst,sha256=2pHT2hfkURYQ9Nq31u40WZR-2Di97wqHEaj61Qaq574,1281 +awscli/examples/redshift/restore-table-from-cluster-snapshot.rst,sha256=NxQA0E0wxXy-JLqh1aqi0ace1oEACDvaHaOvhH-9uNg,1444 +awscli/examples/redshift/revoke-cluster-security-group-ingress.rst,sha256=KnT8wIwDYkWyUy7rFgsPWRjWMV0s68Sam6yvU9fk1CU,603 +awscli/examples/redshift/revoke-snapshot-access.rst,sha256=Wp5mVGjXKyjbtaaDTGaHuBaduBAVyOCbBfaSbgHf0Ms,1351 +awscli/examples/redshift/rotate-encryption-key.rst,sha256=eCRv4dAnfU3Kek_ixERL7OkptJWKkAWSCgtNLjK0jUc,2502 +awscli/examples/redshift/wait/cluster-available.rst,sha256=_4Cq9cO6jRmTwADBhGeGXuZJegW9Hzf3awmIXLtPQgc,318 +awscli/examples/redshift/wait/cluster-deleted.rst,sha256=ZYxmpShEdMYpnlTUg4PIWFthJa6hLw_z3sr_VcKnOg0,306 +awscli/examples/redshift/wait/cluster-restored.rst,sha256=vs-0QCoRJ2xQz4WoLJ-Q3OXbFb3DWKmSN624U5IhQIc,313 +awscli/examples/redshift/wait/snapshot-available.rst,sha256=9vgOfM0L7Ik6dWlcP5ArGT2elUc7Wn6cRe3i0B1GX-g,340 +awscli/examples/rekognition/compare-faces.rst,sha256=MvhAZX8_9bxbHdeGeZ0DtqgnT4YBzLszB4ni9DQWyHU,2833 +awscli/examples/rekognition/create-collection.rst,sha256=5AebbCJtNeUaeYlB7cczZkViN9alWJxhy6EfArF-0MI,561 +awscli/examples/rekognition/create-stream-processor.rst,sha256=TXPELGfKEy-zC0Xm650RnsdR2iIcuLWFXr0Y9pefbeI,980 +awscli/examples/rekognition/delete-collection.rst,sha256=mSi2hLBcGPGV_SeywdwYaQmmkYz2sJ5qGQSyUwvIRCw,420 +awscli/examples/rekognition/delete-faces.rst,sha256=n2mZmU_I1PJN2qGxVK1ZDKgsP1P5zyyd1OTek24g7Y4,562 +awscli/examples/rekognition/delete-stream-processor.rst,sha256=vg3bukb3X_6_y1_B3OakT3EA3aq7jRKgr2PXivW6VkE,422 +awscli/examples/rekognition/describe-collection.rst,sha256=exE8EEn77mGQTzvwse0rQO4uDPKQtq9td1TZmeB0ZA0,625 +awscli/examples/rekognition/describe-stream-processor.rst,sha256=SUjGkejyDIpoz_IrBCmpcl2J3OpT4Lhjjb1ROrGQvGE,1333 +awscli/examples/rekognition/detect-faces.rst,sha256=t0bRng7FcSIqfaxj-9blcqueO6vE3el6_dqUC4makAU,9453 +awscli/examples/rekognition/detect-labels.rst,sha256=r0G8CBLR94oyoSMkamJ9WOT7J6NDG-4xesLtjOWTty4,19842 +awscli/examples/rekognition/detect-moderation-labels.rst,sha256=bW7_D4VO0dZDoSV019rY-1qCB88Nznl5vKv4EfNIyQ0,887 +awscli/examples/rekognition/detect-text.rst,sha256=sipTHXsOH-3ZU-LWuRJ6YUXG8oNuSkL30Z4LNk8no8k,6387 +awscli/examples/rekognition/get-celebrity-info.rst,sha256=LUeKC8XoNA5m90xo0Lyoz6McbBjKdPznwOPZjba55gI,594 +awscli/examples/rekognition/get-celebrity-recognition.rst,sha256=0K5LFh-a4DTj6mAIIw1OHb07rJKeYbylTd18R0gqqE0,5777 +awscli/examples/rekognition/get-content-moderation.rst,sha256=uDl8yqR8eGlMJUOgdoN7sqsgTkvy4POeQnt7KXrWws4,1513 +awscli/examples/rekognition/get-face-detection.rst,sha256=4c-FCNqYDmYVWNiXDYjxvO9aZkT3uVrNmE-UW9tv7TY,4813 +awscli/examples/rekognition/get-face-search.rst,sha256=Y6McIjOEwYWPKRV7zASz-WUIyay-xgQSlEVUBNpUmGQ,6177 +awscli/examples/rekognition/get-label-detection.rst,sha256=lWHNJ8GFgipF83lFqFTHSw6Wixlmeto0i7kLpFzAFEE,2129 +awscli/examples/rekognition/get-person-tracking.rst,sha256=mtxOj-_u6F4qpnbdSp9z8Tck-j4QItUfGqKNAF9mCZI,1749 +awscli/examples/rekognition/index-faces.rst,sha256=nZXZJn_yjt3DHsjfQ-qw0lX7raSEPjLyXwC30Yy2VcI,9437 +awscli/examples/rekognition/list-collections.rst,sha256=Hs1x31E62eYsjPq4L-6XNmyAEzuzOpa0hSm58ErdpDg,954 +awscli/examples/rekognition/list-faces.rst,sha256=mnZXK4QGNi7i9SK4VP2dfTRJBBt5RHts2-TfZ9py4Sk,5596 +awscli/examples/rekognition/list-stream-processors.rst,sha256=BBXsReXL2andLZ8Mgsv2Qt-ZSBS03pVU5cg672gv5wM,569 +awscli/examples/rekognition/recognize-celebrities.rst,sha256=y5cZMTpnlOaUjG2ucayo506CVPeeiBvY5FUPKP9sxCw,10604 +awscli/examples/rekognition/search-faces-by-image.rst,sha256=LQVfrpHaSbqxGj-biR1NtcZ8VtqZs94NiMC_Y7FreCw,6779 +awscli/examples/rekognition/search-faces.rst,sha256=lHdhJJPFf60_FGOvDhg7qshM3SF4e1e94VRwY6dJqBA,5842 +awscli/examples/rekognition/start-celebrity-recognition.rst,sha256=hVRbaP_wN_R_HVB7H8As1TBaJrVl0pBFfWmc7msx7X8,644 +awscli/examples/rekognition/start-content-moderation.rst,sha256=Q_9kxvLJ5JpJNn7eH0MpnDrkqTNgQGPU3yHMnm63ZmI,635 +awscli/examples/rekognition/start-face-detection.rst,sha256=tgBrJAzW3SWUpmGyFwrNFygZ_TK-42mJZBJf4I3RlCU,576 +awscli/examples/rekognition/start-face-search.rst,sha256=k4Qvx4AWXEFx9UzQUk1b4lqdQSN_0INLD_K30tefhOc,709 +awscli/examples/rekognition/start-label-detection.rst,sha256=i64ECJ1SQ_4DR_ef7rDOO-5NHTJxZfEg-9_37dz1HsE,613 +awscli/examples/rekognition/start-person-tracking.rst,sha256=RX2vU-FqJd5T6QeUqZP8yj7v5VXQUubRDxLZv3DzdJk,593 +awscli/examples/rekognition/start-stream-processor.rst,sha256=FJfLflFmgn-q2mEkHawVy_qEEX2wkkE3UK9b6Qrd4UU,425 +awscli/examples/rekognition/stop-stream-processor.rst,sha256=KDTqJAiEk0erdIC4H1it17OVZ65iT9b2siRQjb7KHWg,431 +awscli/examples/resource-explorer-2/associate-default-view.rst,sha256=UjtMojLGKd2lZaHilX4mr_A_GpArYV2ehTSUnIJ_2Cs,774 +awscli/examples/resource-explorer-2/batch-get-view.rst,sha256=Ip7kJWjC706JdG9gZn4uWJmPl0Y3K3YUAT_e_0Y97Dg,1961 +awscli/examples/resource-explorer-2/create-index.rst,sha256=4TLX9qTx4RLw41wSI_8qyEZ9CLs7wHHHTkuDEDGzIr4,1087 +awscli/examples/resource-explorer-2/create-view.rst,sha256=J2NGZJXJAdLQTX5U1znhlNWlzM2KFRi7pDpVzSCtYz4,2575 +awscli/examples/resource-explorer-2/delete-index.rst,sha256=YgRGQOOY8FNE4HVGoto2mWetdR-n7li-0H4XGWnl7ic,800 +awscli/examples/resource-explorer-2/delete-view.rst,sha256=X-eu91tbIdaCslcjcoot0_bh_5QOuhSb96Hgf53klGI,617 +awscli/examples/resource-explorer-2/disassociate-default-view.rst,sha256=9V3k1uJbqFlBtoL93YsTF6Our_bgoLHlTeFPUuxCp6U,632 +awscli/examples/resource-explorer-2/get-default-view.rst,sha256=nyRJt9WBMosx34cxADO0Z-B68BOuFJSRW3cFKTeMWHM,641 +awscli/examples/resource-explorer-2/get-index.rst,sha256=wojjKxdaFsKPJa4YKc1o-PqmOU8J79EcaApD7UqRLbo,1866 +awscli/examples/resource-explorer-2/get-view.rst,sha256=_kbVzuc0jo6DXf7v2LD52zE-W2KcXkYQK53lj4K73io,1086 +awscli/examples/resource-explorer-2/list-indexes.rst,sha256=nSfJTbbFhIgHbeLQW1Uxx7vGJKxe6wxw87yucblqq9U,1474 +awscli/examples/resource-explorer-2/list-supported-resource-types.rst,sha256=-ypSJQBG5RnntD4opidq8bwpnrfPRzO2C3OCKvoVk64,3857 +awscli/examples/resource-explorer-2/list-tags-for-resource.rst,sha256=J36VFwzGxZbEZWYmNkmY1g2jduGY2RZ0nmmNov_vrrQ,789 +awscli/examples/resource-explorer-2/list-views.rst,sha256=3EEIuRW5rD_4vbd5Jmkw2UnyjoTwsvalnGN4ZIcINwY,872 +awscli/examples/resource-explorer-2/search.rst,sha256=jyXXJYCTtV_70WbBpcA53RJsPA0dvxoitZB7wlahwlU,4993 +awscli/examples/resource-explorer-2/tag-resource.rst,sha256=9raQFBSRJFAnEkyZsIJleOpZsqDrMQAbHg0x5G0KZqU,611 +awscli/examples/resource-explorer-2/untag-resource.rst,sha256=TQBclATA0x1W5jvuHgtb6qpiuv2W9KtBhh9advGb0xE,613 +awscli/examples/resource-explorer-2/update-index-type.rst,sha256=zs5IHkWp8qyQXy0kxonr_dnCG2Yw7r71ZSxkqGm6OFo,1065 +awscli/examples/resource-explorer-2/update-view.rst,sha256=2dNR7zKDsuAX0rp_EcAC_dEblpMhUbCHMmriotk0QJc,2203 +awscli/examples/resource-groups/create-group.rst,sha256=jh70613hlFZJxoyr8bwcqKiiSgL5tLD1yJWfvutcnQU,2463 +awscli/examples/resource-groups/delete-group.rst,sha256=EbEYy1TOrLeXW-ai-apaSfK6DrGA3L6rn75Hi4FTqww,554 +awscli/examples/resource-groups/get-group-query.rst,sha256=GbgI66s1oNr03fq7RWN1asgo7IiTHqkKP8V06urkA1o,561 +awscli/examples/resource-groups/get-group.rst,sha256=LkhOxa5taa1KkJdNxzxF13QxJMXR5XCcDbH6ekwgqCI,536 +awscli/examples/resource-groups/get-tags.rst,sha256=nuZDn12uML5ReBmsFe07Cm_jn0PM_9qxO7qBWKSpV1A,540 +awscli/examples/resource-groups/list-group-resources.rst,sha256=lKw-cMLIJeF9YOn2MitSTqEUCgcW7PxLLCJTfN6weYs,804 +awscli/examples/resource-groups/list-groups.rst,sha256=FRuzC2ONbggB3yX4N5vhypEpUuEPXZT4A4USk6RGBSs,955 +awscli/examples/resource-groups/list-resource-groups.rst,sha256=39qYUs5QNm_ovEwx14HvYKapD4H8iJ-NvKXfA0wnGnY,507 +awscli/examples/resource-groups/put-group-configuration.rst,sha256=xSPcPtJnxot4NC4wJymaK3GJzunXCS_QzGDhGxfE8-A,1461 +awscli/examples/resource-groups/search-resources.rst,sha256=zuCQvTSU8lnHeGLjfPyuSR4mPerh9N5KCeJkOWj1-NA,703 +awscli/examples/resource-groups/tag.rst,sha256=rcrB6MjU5_Trg4BO_lF3lNIpQBhAclFaHSHFe-MY3FM,735 +awscli/examples/resource-groups/untag.rst,sha256=KUlXPX89bdfxCt6xEm8TcEK17T3j9T7VmZQz1V58Ro8,624 +awscli/examples/resource-groups/update-group-query.rst,sha256=qedHxCxxQtbPYkJu6R7s9HZOPJaJcgkMpF--a5fpNdQ,2215 +awscli/examples/resource-groups/update-group.rst,sha256=u75_D13-Fx3hTM6_fwVY2n1bbaRmH6TY-jlxUsE89Ds,721 +awscli/examples/resourcegroupstaggingapi/get-resources.rst,sha256=tpCaOPpeTJX8C8TT5pztlHF4KN64gu6VMaLBNJ51YUI,894 +awscli/examples/resourcegroupstaggingapi/get-tag-keys.rst,sha256=wmEVGaP1Mxpw9kSFw9t_Yy4NdKFc_ciszkPk8eMmBgc,513 +awscli/examples/resourcegroupstaggingapi/get-tag-values.rst,sha256=RHve3xwQVsYBhz6hXBl3o-fCxM368UlLpRCa2bk-fSw,547 +awscli/examples/resourcegroupstaggingapi/tag-resources.rst,sha256=ko-qM1meksyPmaAVZKP4gs-bQlGdg3VXBZLjtrxC3qY,541 +awscli/examples/resourcegroupstaggingapi/untag-resources.rst,sha256=xmkItmwgYCDNiRpb9vpfUQWUtv6zIO7b_sl2rMeJFSY,571 +awscli/examples/route53/change-resource-record-sets.rst,sha256=cp9lvZl8s6cEtZwhdYYT_ukyxxbfrxH0bw52_2zNfyM,7633 +awscli/examples/route53/change-tags-for-resource.rst,sha256=fMszV8I991itcAudHXjazpEWWWH3WaM9hDDuafClsfA,459 +awscli/examples/route53/create-health-check.rst,sha256=m8Fhjr-ghnIkt17XdfOoQFX6ONR7BWWAdPT_6SegyqY,1390 +awscli/examples/route53/create-hosted-zone.rst,sha256=QCtfz6XQb1VxQO-lf5ljpb396FvSZRwSjBKFWnN2iZI,602 +awscli/examples/route53/delete-health-check.rst,sha256=gvgjB3sun1sfa-mSLeBpCj1zYNWkAOFHHJ0bL4QinQM,264 +awscli/examples/route53/delete-hosted-zone.rst,sha256=_ZWuq9qPAwkjoGiC4FQK2ZrzXZ94Hdix-np4pqsJw0g,193 +awscli/examples/route53/get-change.rst,sha256=2-OjCJWUclV09ezZR7TAaIwOyELkRoKKQMDVOv91wgs,288 +awscli/examples/route53/get-health-check.rst,sha256=s5_HhHa12cp7vfY5_xFlSPWkscytqLG0YHAM6RDGuDM,293 +awscli/examples/route53/get-hosted-zone.rst,sha256=hcPpI3IzlABBcHt8YWZdL8MGdojO-CmTsji5lEtxQVs,215 +awscli/examples/route53/list-health-checks.rst,sha256=PkdJm6-lp8twOqAmfURI15bMkIUPnyfZNx9--3aI-vI,782 +awscli/examples/route53/list-hosted-zones-by-name.rst,sha256=TMjTjw2BMX7khVakhlEWBY815CjDjqN1cgmk0H48d7g,1434 +awscli/examples/route53/list-hosted-zones.rst,sha256=nfegtP1bCZLFfrda5287aL79KLmtuBg3c2q961Wtd4s,790 +awscli/examples/route53/list-query-logging-configs.rst,sha256=ofqMzqpOAyXQuxS9OVS3ZdTVjr1qM91mNh3GQeCALUs,827 +awscli/examples/route53/list-resource-record-sets.rst,sha256=16VaiX1H7X5CWFde5bclrUo6zXYF-XNgbSF9zuNmYoU,1201 +awscli/examples/route53domains/check-domain-availability.rst,sha256=6HNoEhk8voeyX_iXh2Zkj85KRbuosziThMcu_wf9IdI,1480 +awscli/examples/route53domains/check-domain-transferability.rst,sha256=03BiQT8wJvvVFEd_VvfEiTzR6rXlKqm9mYiKLXTL4Jg,829 +awscli/examples/route53domains/delete-tags-for-domain.rst,sha256=BaYSubs99QfeSKzBLHQuwlbzFnrDpYauOlF-tb8ktz8,919 +awscli/examples/route53domains/disable-domain-auto-renew.rst,sha256=1UGq4scWBxZxjc6dzTUQ_iq4h758PLQGC7PJPyiLyG0,977 +awscli/examples/route53domains/disable-domain-transfer-lock.rst,sha256=D5J6WsYmDkkGjvaa7M5yA0cHyyAf7nUeCQyVmsV7iSQ,1195 +awscli/examples/route53domains/enable-domain-auto-renew.rst,sha256=HvXXWAyZlSQO9UJtJvBTS-HzD46FWhzNZSZ4RzJWynE,964 +awscli/examples/route53domains/enable-domain-transfer-lock.rst,sha256=ChwklByv5nymXqcKfwnZq5mPcyjpNhYzPZegf-0tTHc,1148 +awscli/examples/route53domains/get-contact-reachability-status.rst,sha256=ynk5A_ViwXArmotedTg5zlqOqY1bcuzcQaDTaIkfyFY,847 +awscli/examples/route53domains/get-domain-detail.rst,sha256=3teR33LS-yLXcpUDqmiuGEvS2DOg8NVXOsuHv-5q65I,2993 +awscli/examples/route53domains/get-domain-suggestions.rst,sha256=J7a1h9BET8MNdJLqwkXjQp4lyW8X8mXLZ04YFP4TymM,1763 +awscli/examples/route53domains/get-operation-detail.rst,sha256=PIpEHKlePoNUA8Nm9U8QHrZyrsifNmCLuMoQw8WcKiU,851 +awscli/examples/route53domains/list-domains.rst,sha256=1q4DphjKbpIYAA-R7lxdoV3mjFIDUlv30GWyjn9_2R4,1059 +awscli/examples/route53domains/list-operations.rst,sha256=CisxgKeOCZUnldP5MTXcsMzFDvN4zxMrB7k2sbulf3M,2200 +awscli/examples/route53domains/list-tags-for-domain.rst,sha256=wMj1kJGcXiNJhxWeVbbiydu0nrmp35z4j54HoM3pXkQ,861 +awscli/examples/route53domains/register-domain.rst,sha256=fUcKndnvBrYJxwvRvXjzb4MLEyZ6B1Ln7na3k-lwO6k,2844 +awscli/examples/route53domains/renew-domain.rst,sha256=EfCkkL-dZsg33eJCSPD3W-6NWIWEPHK2EtypZk16PfE,1524 +awscli/examples/route53domains/resend-contact-reachability-email.rst,sha256=xZrC9knQ9zDC7Ien-jYXpgFYXH5T8-1fyyVAGNYCi2c,1072 +awscli/examples/route53domains/retrieve-domain-auth-code.rst,sha256=4aeA83qnF7A5XkCL1i9KxgxCtm1a70bUcrLe2oCPXCU,888 +awscli/examples/route53domains/transfer-domain.rst,sha256=PbeQAHNP9UxYffjm6BCzsHvkCHnohOPdrlQz7oFM7xE,3086 +awscli/examples/route53domains/update-domain-contact-privacy.rst,sha256=hllwMWH3lratatXGpB0yO14_NUbrBzlZUAwkxanBluo,1075 +awscli/examples/route53domains/update-domain-contact.rst,sha256=YSXJkPojsFqebdgv7JNXy_6K2fhGfZ3z5BI4jZLWcoo,2625 +awscli/examples/route53domains/update-domain-nameservers.rst,sha256=t0lBLYHHBMShGjSX9k6JJvc12lEWOMgnddDHGROVAUI,1022 +awscli/examples/route53domains/update-tags-for-domain.rst,sha256=NeOMTk11ED3EJ9YmAal4UdrwSfV53w9sjLSBBHi-mQo,1047 +awscli/examples/route53domains/view-billing.rst,sha256=NLy4VBWk8EV1otr7jXnQu2t4TovX0kasJi6vdrCtbEg,1332 +awscli/examples/route53profiles/associate-profile.rst,sha256=NfJOzb-qwYAWgpkaqVQgi8RrMyr-hma4VeDrxY_Wyiw,949 +awscli/examples/route53profiles/associate-resource-to-profile.rst,sha256=UGGKoZjWLZxuPrZ3BE4_ckEOgxnIot_14Wo5FCdQDJc,1219 +awscli/examples/route53profiles/create-profile.rst,sha256=uonUPDK6LgYLK-xuu0pFCIc2OE6EYNU_uvw1wJ2nD2E,711 +awscli/examples/route53profiles/delete-profile.rst,sha256=cDFfIn1Cd66654yMPNuEUlpu9ifhNffNWle25dxZWz0,728 +awscli/examples/route53profiles/disassociate-profile.rst,sha256=FvnFNjprYMJwTkBYtBMm6wxsl-oEzRCRVEFJsSHYup8,748 +awscli/examples/route53profiles/disassociate-resource-from-profile.rst,sha256=_4pzRVU77mVw6Ue1XssclpP4hWwIuEXxt-NpkHiL1Rs,1108 +awscli/examples/route53profiles/get-profile-association.rst,sha256=O2Lj5AYbW9uFGDUeH82SBPp210CzfigIndBfqx6nlGk,762 +awscli/examples/route53profiles/get-profile-resource-association.rst,sha256=9X0bLe8wr4xqrpnbGotmMgr1h-2PlNlFWJ3Odfm5Q9Y,1050 +awscli/examples/route53profiles/get-profile.rst,sha256=4lTu65UtHRZ8L0N8kJXi5Rbm0v7vBBCnoFLz3WMUuf8,766 +awscli/examples/route53profiles/list-profile-associations.rst,sha256=qS7A3qHuXGyYycG6yw3nr9tKTVgDsOR5Zhx3njZ5amI,744 +awscli/examples/route53profiles/list-profile-resource-associations.rst,sha256=ZnacQUS1HnDxDJj2ItbGnN8JonKYUlweoaqmBX4QMgI,1074 +awscli/examples/route53profiles/list-profiles.rst,sha256=-n2tTSQk1lwdJvNRIIiFYIkCyou-dhdId8nRrqK2I0E,513 +awscli/examples/route53profiles/list-tags-for-resource.rst,sha256=hrXt7O0dFiuHXtGaM18TMaAL_1ptupdjaRMqpkQ4xDU,404 +awscli/examples/route53profiles/update-profile-resource-association.rst,sha256=3PDNDeBFfB1oSx-m3FoXb6yRMokBtk1RQ_MaApLf6JU,1095 +awscli/examples/route53resolver/associate-firewall-rule-group.rst,sha256=NrmRv5idBSiO5Y4Zt1rw7-0A2kR2BNTFVRDtBFkHKWU,1454 +awscli/examples/route53resolver/associate-resolver-endpoint-ip-address.rst,sha256=rv0AD_5d81K3n9L_y2jZ7Yvn4IPbNUOkHTZ6U-RLfFg,1628 +awscli/examples/route53resolver/associate-resolver-rule.rst,sha256=oo061G74NWO8QVSQLpeqJBGe_AnVVerAyw0LmQTfFIo,1164 +awscli/examples/route53resolver/create-firewall-domain-list.rst,sha256=Qs3I4PYSZqaa_mcqV8vu_9zjsJ37-9yv1qywTBJ9ogI,1117 +awscli/examples/route53resolver/create-firewall-rule-group.rst,sha256=l2ZKy269VgkKLugmUbD3-SQMuy5me4wyVSD_bIEzVIM,1127 +awscli/examples/route53resolver/create-firewall-rule.rst,sha256=5m_nqIIcaEtmnxj3qB94XbYroqVuSkSz3myh0yLD-0c,1156 +awscli/examples/route53resolver/create-resolver-endpoint.rst,sha256=YECtiwf0WyS3ETxLyI9qcppXSwD5T6YiNa33abUnCL0,2530 +awscli/examples/route53resolver/create-resolver-rule.rst,sha256=ILJxR-DitH082v7Baqw0F9UVIS9hJ369CZEG0W8zE8k,1689 +awscli/examples/route53resolver/delete-firewall-domain-list.rst,sha256=Cd7ieqYPM8eqJoz8a2ylw1PUTydIqxMlC1Os_IBM3wI,1117 +awscli/examples/route53resolver/delete-firewall-rule-group.rst,sha256=-KbSpMOIS8TLzXSDG-cPEk7HQDMQHbCziIoJ86duKrs,1118 +awscli/examples/route53resolver/delete-firewall-rule.rst,sha256=C1mhdXEqB7PPaXEJwwCq4pwkrfFY1inmNSxRK7Sn1cs,1013 +awscli/examples/route53resolver/delete-resolver-endpoint.rst,sha256=Ilup6sMZSfDE_dw_4EBFiAEws2Hq5NwK-1ABp1nV1j0,1367 +awscli/examples/route53resolver/delete-resolver-rule.rst,sha256=jRhkYNRLEmo0Utd2n_n3tRgSnxpehSUToLX6WyfC6Ek,1193 +awscli/examples/route53resolver/disassociate-firewall-rule-group.rst,sha256=ufQFmFzOQsCWal-JXi5X_QNqYHa5eSiGZkpCwJFl7TQ,1393 +awscli/examples/route53resolver/disassociate-resolver-endpoint-ip-address.rst,sha256=JR6ZSzHbO6Itlc_XalY_dGsZSpxHNboZLnvbf4cM-ek,1608 +awscli/examples/route53resolver/disassociate-resolver-rule.rst,sha256=dLL0rPjLuyDKOh74w2TDpyaDIpWD7sI33J1235mWM34,1165 +awscli/examples/route53resolver/get-firewall-config.rst,sha256=IhFGd6vw28Suw0NyscN3D0zN6-Lq7bi3HYl82dwaRLo,687 +awscli/examples/route53resolver/get-firewall-domain-list.rst,sha256=ltrFw-egMkj23Wodyg8kmuokxHKioLCV7_CMr1K_W9U,1067 +awscli/examples/route53resolver/get-firewall-rule-group-association.rst,sha256=3MCCpkJI26S7QWShXfgN0jvHEDkRSvEVxCkHT_340-I,1370 +awscli/examples/route53resolver/get-firewall-rule-group-policy.rst,sha256=PLlkDj8wrsRgwkAhD7GJYwDzTCBf_megRH8wKug2Zx0,1012 +awscli/examples/route53resolver/get-firewall-rule-group.rst,sha256=EVTzDI6pOLdkAmIcyoAN-fNB_wzCKn6-l-YyPOmaeaE,1156 +awscli/examples/route53resolver/get-resolver-endpoint.rst,sha256=N8jL61rDIWuetiseS24_MZgyb3XYYOsdueKK7iraL8w,1440 +awscli/examples/route53resolver/get-resolver-rule-association.rst,sha256=O6S2G9ZFdr0uKc8lVxzAJveLU4HOxfw7u_tksHphzHs,879 +awscli/examples/route53resolver/get-resolver-rule.rst,sha256=vp797dIWnvEvEkzAGr0Mu4-m06hwoOdp4DOqw8fsGtc,1516 +awscli/examples/route53resolver/import-firewall-domains.rst,sha256=Q1YPdMdozhfb4KPxKL24tSFArQ8zDaeoMwreMa10s5g,796 +awscli/examples/route53resolver/list-firewall-configs.rst,sha256=PVYC-sxfYlIA0fpx4xd5iUlReK3I3etKL_9f-Sn2iwA,672 +awscli/examples/route53resolver/list-firewall-domain-lists.rst,sha256=Xqje-SiZNSo2Ny_mHdzWc_be88MtCc87ExBAv9FQUaU,1627 +awscli/examples/route53resolver/list-firewall-domains.rst,sha256=oQUOpROE98LDP1FSt3r5Q1yGDSLgvFzDJ1gJiOl64sw,629 +awscli/examples/route53resolver/list-firewall-rule-group-associations.rst,sha256=nsDXWanL3I-6soEqbEpSjTfZxAy8lyl2wlLAr71oL-w,1399 +awscli/examples/route53resolver/list-firewall-rule-groups.rst,sha256=Mv6U-tQtkYYfc4qmugiC7cRt4yL0Xc7-40oMu-rOnpg,875 +awscli/examples/route53resolver/list-firewall-rules.rst,sha256=pCBaZmZKmRA_dAgvfPcms7VxdB3zYpm22NDGwDXGmuI,1038 +awscli/examples/route53resolver/list-resolver-endpoint-ip-addresses.rst,sha256=sBOxIbevTzwlfdcPkGG5MiCpH0mZwE3MKw9yZrckAwg,1946 +awscli/examples/route53resolver/list-resolver-endpoints.rst,sha256=eWoBUgn9aud9AKZpy7k3Kxwe2wDysuOcOxIgYcGtgW8,1902 +awscli/examples/route53resolver/list-resolver-rule-associations.rst,sha256=QnlT7EHqIzFLeLOYyWa7thXaA0lRzEeey6DRawd1JYQ,1321 +awscli/examples/route53resolver/list-resolver-rules.rst,sha256=OwdgrrihZKzp8TtDK-ckwMa2ITYHe_KgKLealDG4fsQ,1931 +awscli/examples/route53resolver/list-tags-for-resource.rst,sha256=rkXKrGVQsHsCYgdczNAWWpetA9fqMrRNNGYNswyj86c,830 +awscli/examples/route53resolver/put-firewall-rule-group-policy.rst,sha256=Pea0YdLuQ5u_0PXL0ArMyhXc4MsIeLTOG2NRVVi6p0M,966 +awscli/examples/route53resolver/put-resolver-rule-policy.rst,sha256=5U4-tX2Z4wWfgny2VnFAB1v6LbJhQajtLJCkURdE-N4,2344 +awscli/examples/route53resolver/tag-resource.rst,sha256=4mJTGkH9BHPS8PxRxH2_e7gpz3_b7kZo8fH1kur-6I0,665 +awscli/examples/route53resolver/untag-resource.rst,sha256=EvRDdajs0cFihd7sHLMTLH8VJbZBuia_HXlkBZafs8A,780 +awscli/examples/route53resolver/update-firewall-config.rst,sha256=WOIb3N92m9w-wPDfzwvVHU_qhelgjN6i7gi_0jGDD-0,706 +awscli/examples/route53resolver/update-firewall-domains.rst,sha256=svxrMW45e3I8nOMx8jYIWld5Lrtteb045ZiykbDIXrM,746 +awscli/examples/route53resolver/update-firewall-rule-group-association.rst,sha256=WY-BVBxPtuLi-JX4PgAQtfh0wyYvIy-n_mt5LgYCc9Y,1419 +awscli/examples/route53resolver/update-firewall-rule.rst,sha256=LMhLMYztXCAWn3mojNRve-wLrijDbPrABY3PnkJtp9o,1061 +awscli/examples/route53resolver/update-resolver-endpoint.rst,sha256=Y6TPOrGSr5rSsL9q1Pn2vqPVA7t3DyUFd2qw6IEVeaM,1105 +awscli/examples/route53resolver/update-resolver-rule.rst,sha256=zlQgjnbKXltx35KQYc4AtePobnux8rb3KTKCs0lsN7E,2749 +awscli/examples/s3/_concepts.rst,sha256=AoNoxNdz39lMQcZ-pRhW03QIg05J8kwTI38lT6IWltM,7879 +awscli/examples/s3/cp.rst,sha256=zjXY2o3eykyqe5fq-o5VqfB5T1mEmBIbyzxUVoq17MM,7346 +awscli/examples/s3/ls.rst,sha256=wUA78JV2nliaDzLx1zyBdKcX6j4IBWEzpwSxFWgU72U,3764 +awscli/examples/s3/mb.rst,sha256=jZED-GC12gkeJXnqNJbU6wa6kDQoYTnl_-q_0VnWnig,1132 +awscli/examples/s3/mv.rst,sha256=FX-8K024y18pvEMsaZYXLvo-xMz7rCqypkNRFLu7qUo,4346 +awscli/examples/s3/mv/_description.rst,sha256=IIN0gX8cHrjo_nohv2Sy33JUYs-M72nK5wRM3dBg5Zg,838 +awscli/examples/s3/presign.rst,sha256=4D0AYCtk3AiBhX9HmmhcG4htsj1Rdz_NsaQMw6c4hTE,1456 +awscli/examples/s3/rb.rst,sha256=t0RIhgD7hN0bvw-xOuwP8DuzGyoI8MW1jofUjiSWLHg,818 +awscli/examples/s3/rm.rst,sha256=XIvepw_9C4XJjPoSJcRlYy4l1YA2uVOSSjfxztRCp-o,2256 +awscli/examples/s3/sync.rst,sha256=qFMBQcOSugq-DADdYdR8zOhjT_YACol4rLSZz6kN51c,6249 +awscli/examples/s3/website.rst,sha256=qX7ZrkvGkwaHH0GSABBdqKHyjAYklNtpCKhHVeD7YV4,972 +awscli/examples/s3api/abort-multipart-upload.rst,sha256=OMrFDhXt0l5y5DxqtMp_y2_E7rSXSVUfuGx-vTe_ez8,587 +awscli/examples/s3api/complete-multipart-upload.rst,sha256=Zdt0KyieEYMh-CWSFnYjiQzKvJT0jAXFU1C0Xthbo7k,1590 +awscli/examples/s3api/copy-object.rst,sha256=c3W-YJDcQi08O_4o-ZhJpMeW8BVWsxMLtFxCfI3tDPg,386 +awscli/examples/s3api/create-bucket.rst,sha256=l2nsSlM1QE3i14e0lr967_XjCz3_uhxjXruk4pSImnw,1836 +awscli/examples/s3api/create-multipart-upload.rst,sha256=9XlK0dxEIFvU1YOF6m1xJXcqcS3-AQ3qNhSl3r85wM8,636 +awscli/examples/s3api/delete-bucket-analytics-configuration.rst,sha256=x4ZMkYNJ67rTnFV2xo-_duQw3ZLJOUF_32Xna84yGtw,333 +awscli/examples/s3api/delete-bucket-cors.rst,sha256=EI2roh7Gmi6Fr63maY_qK5t9bShiiuVYntO8lCa8ARw,183 +awscli/examples/s3api/delete-bucket-encryption.rst,sha256=Y3f1Ivu63NVPYMxF8dWvZ3v2jSM6Vz-shovABym0wC4,309 +awscli/examples/s3api/delete-bucket-intelligent-tiering-configuration.rst,sha256=1zpjmYLhupx6axqowb-0gZnLrahbF1BMb3sCsVKRQHo,569 +awscli/examples/s3api/delete-bucket-inventory-configuration.rst,sha256=uWOLEJv90keSpnYCb-b5ggMavkQhCM9qs7eJTOnRjlI,341 +awscli/examples/s3api/delete-bucket-lifecycle.rst,sha256=4IbFNe6QuMQOoX7UJ3pl5iNXr3qKKiums1no3oRVrUc,168 +awscli/examples/s3api/delete-bucket-metrics-configuration.rst,sha256=r_9n2dGJ25pXx8Wr3ek5a2ds7YxQAVso0uoMmmnetBU,326 +awscli/examples/s3api/delete-bucket-ownership-controls.rst,sha256=tNnahMIkl7EqSP6J55gLJjyjSVkfKNb0auprvXbKsio,493 +awscli/examples/s3api/delete-bucket-policy.rst,sha256=FSFxdND8zwvx2pZjIZ8pm7aYyvoJbvQSY_u2_e_78Vs,155 +awscli/examples/s3api/delete-bucket-replication.rst,sha256=knir7jBy0LnkxDmBoTaYyA1HbnhWQPEc-09ixImzLAo,172 +awscli/examples/s3api/delete-bucket-tagging.rst,sha256=cb4TqPyJtfEXfIEMLRyFb5UCICit2c2ObGvPyLXd3t4,164 +awscli/examples/s3api/delete-bucket-website.rst,sha256=ONf651gA1hTVvETEK6FUcn5-lV8_nypUrv_OM6FzKyg,164 +awscli/examples/s3api/delete-bucket.rst,sha256=GgIbMhFLf2MWOzfsBj6Ml81vMOFj7VGxXkKkb1MzpvA,146 +awscli/examples/s3api/delete-object-tagging.rst,sha256=a22o0mrmxmnNbDF9e-54Oxvxx3VODHgEXo2BiXKhwzM,295 +awscli/examples/s3api/delete-object.rst,sha256=R6hQC4DXu1PVyKmaGF0IVoqCV13h8ggDfyrbIqqPlYk,558 +awscli/examples/s3api/delete-objects.rst,sha256=82g9yHHlCGFUzXe4hUKMUaqLbG6PrEBI6gdukygIZbE,578 +awscli/examples/s3api/delete-public-access-block.rst,sha256=AvKmUn1Yn8hu0Oqg1XkAi144_0c34LyPuFn2F9AWnrw,308 +awscli/examples/s3api/get-bucket-accelerate-configuration.rst,sha256=IPO2UF3MF-3l8J068yyiivBwdWXsff4rMXAMtJvOXEk,329 +awscli/examples/s3api/get-bucket-acl.rst,sha256=RHJCbZWz_XYnU_DHLTLbgXfcCLpCgyZ4E0jtGJ6mdo8,602 +awscli/examples/s3api/get-bucket-analytics-configuration.rst,sha256=HSFGOe1jsQQ_AFWzMFAr8R9AlWan5vGXb7G00BLfjOA,442 +awscli/examples/s3api/get-bucket-cors.rst,sha256=exVfCKHPTFhX6BLtqh-pEYjMG-ohvOEx7FVMHtzqkXA,980 +awscli/examples/s3api/get-bucket-encryption.rst,sha256=79Qc-LHGiogaSZjCHc_doiEn1X-IA9XrPxguxOSddVU,573 +awscli/examples/s3api/get-bucket-intelligent-tiering-configuration.rst,sha256=JC-QK2uulzxom1brZTD9xONRnvW4k8-r3DHmtdp07lc,1039 +awscli/examples/s3api/get-bucket-inventory-configuration.rst,sha256=VPfpVkP1XNdeaaTzQ-HXMlw2dstGeT3roNKO1CUiK2o,810 +awscli/examples/s3api/get-bucket-lifecycle-configuration.rst,sha256=8M_aPVZiOm9aq8XH-4-14CeGvkDjqOr_yccSWWj_j_Y,900 +awscli/examples/s3api/get-bucket-lifecycle.rst,sha256=fjZqDZxJt6hh0YSXIKTeBT_6yWioVe4uHeQr6ozcXBk,651 +awscli/examples/s3api/get-bucket-location.rst,sha256=6SZyeMzS3Mcbt1lrbrWl2QRsh2yhuZnt_3zRiCe0VIM,245 +awscli/examples/s3api/get-bucket-logging.rst,sha256=fWRfPMzchRiLABndt_LMyla3K3PDOPvblGN3FBeLkG4,379 +awscli/examples/s3api/get-bucket-metrics-configuration.rst,sha256=W4sF79qkYl__8xtNcNXBCYWf5nR1Xg1PPi77pEHpWug,474 +awscli/examples/s3api/get-bucket-notification-configuration.rst,sha256=1X0Cac8gvmMvEsHdRe_n4UBQ9dvAYPf8n3elTUPWlts,509 +awscli/examples/s3api/get-bucket-notification.rst,sha256=LU-nW_Lk9Gsrfl8Ln5POaiNnssVjull6jEQBbYcZXHc,488 +awscli/examples/s3api/get-bucket-ownership-controls.rst,sha256=5KAFoT6smXzluL0ZIwwOFExjN8Wkx-4QANmNrmy1if4,657 +awscli/examples/s3api/get-bucket-policy-status.rst,sha256=NIcQDGzLe7InS8x9dztob-r3LWINKNF0uU92INNswwI,378 +awscli/examples/s3api/get-bucket-policy.rst,sha256=nSSQXZP_fCV8HK0qrbz2tTGQD4fMTerxJ-cPcOX0S30,1137 +awscli/examples/s3api/get-bucket-replication.rst,sha256=26u-hYWz04-tyLX-XKFpc1a6wvF2djJJ4-EafnoPJ7k,697 +awscli/examples/s3api/get-bucket-request-payment.rst,sha256=szihUlKQqz_dvJ0dutO9EbgITG2BaV0cSVFCmvYX8cI,324 +awscli/examples/s3api/get-bucket-tagging.rst,sha256=vu5L0XNImKi21yQoOvDU5SWJIrqVR6Ik6XBR7fzxjMc,305 +awscli/examples/s3api/get-bucket-versioning.rst,sha256=zgY6rhhIJE-xZ78o01EU97uU_UYWPux0qrSYhqkISe4,215 +awscli/examples/s3api/get-bucket-website.rst,sha256=-zPcc4qAEXd3HBkIEWrwtKRFpApHa2w8fW-eUA9w1oQ,320 +awscli/examples/s3api/get-object-acl.rst,sha256=D6ASTgoAehZxlLjILV3wuX6sh6D4ojuLFatLzQHPI_Y,810 +awscli/examples/s3api/get-object-attributes.rst,sha256=oO-p6907OWtcBvYSZf-DeFUZMr5ea09DP-e8zN0_aV8,752 +awscli/examples/s3api/get-object-legal-hold.rst,sha256=aMrRJK9GY9iuLZ68IkjjJtxsk8wF-f_xkFeP5BCOWAI,360 +awscli/examples/s3api/get-object-lock-configuration.rst,sha256=ck3L0J0RFpK_RaD8itCq0kPTvnB2Mh6Znbj9tmCXDKE,565 +awscli/examples/s3api/get-object-retention.rst,sha256=V-6drjbrWeHtWuBVoKibNOVgiMQXJ7iZWxjUkgvjFDI,452 +awscli/examples/s3api/get-object-tagging.rst,sha256=M-Mv7kItbNvUjC4I4tLf5FH4E8jsbG6lJyPKRilqkhk,1271 +awscli/examples/s3api/get-object-torrent.rst,sha256=3CbX3bVm4fLgZrxA-XVjaZ5q8mmNlkOTAzkBAoxS2lM,411 +awscli/examples/s3api/get-object.rst,sha256=umngd8MS7_L2yrBU7YyTFpQn5K_iEoyREplEgVsN46Y,818 +awscli/examples/s3api/get-public-access-block.rst,sha256=qi0FzlUf4eD9jGgBiojgmtmIaqt0lHTelbnKahozfPk,510 +awscli/examples/s3api/head-bucket.rst,sha256=CTkFM4XQTLaYHUI-raWMhieFq-QxLMTV00W1KZqx8NU,346 +awscli/examples/s3api/head-object.rst,sha256=wIxFNsk9ApZh9vkj6FVqdAmuC93CPJoglrzRyVcdbUo,437 +awscli/examples/s3api/list-bucket-analytics-configurations.rst,sha256=OW_g4Twrmy_UY2lWmnByeu-IWuktn01xV1EmTFjmGJ4,486 +awscli/examples/s3api/list-bucket-intelligent-tiering-configurations.rst,sha256=6w9j19vakbJgG0Q_CrGsw9I7bfmKjMoaa3hz3VLVlTk,2021 +awscli/examples/s3api/list-bucket-inventory-configurations.rst,sha256=wWP9WyzB6l6v-T82g0GoBiPUWQY5cxYCiK9eptgPI9s,1416 +awscli/examples/s3api/list-bucket-metrics-configurations.rst,sha256=6dxqsqA0rKfLJ_HVAdICCwkdRlsRVL58t81Tr8MjaNU,666 +awscli/examples/s3api/list-buckets.rst,sha256=hzcq9sNregdjEjz878ZEMnYoMUQKsX2sBjA37UbZ7bc,483 +awscli/examples/s3api/list-multipart-uploads.rst,sha256=PtoyPF7KlIQIAy8VGH188CqS0UcoFVYWs9LcLwY_rcQ,1055 +awscli/examples/s3api/list-object-versions.rst,sha256=oTKzZkmNt5qkAIcO7WjdXHdUyGG7KN0OyPwCqK6Hid0,2607 +awscli/examples/s3api/list-objects-v2.rst,sha256=k9Xz456PToEbBxnqK_AfbSAlOGeLwCX76kc8FFv16CE,1295 +awscli/examples/s3api/list-objects.rst,sha256=r8DVjrowfqpfr29c0mbSDnaKXumBcJ7WvhNqDxRuEe0,560 +awscli/examples/s3api/list-parts.rst,sha256=SDTDD4scuoGRfiyWj1cYKmOp9VPbD9Pz__0geDntgqs,1347 +awscli/examples/s3api/put-bucket-accelerate-configuration.rst,sha256=ohO3-qzZ70MZk1W7mp3pE_bP4WsAzWxWx2yiqcr7Dk4,357 +awscli/examples/s3api/put-bucket-acl.rst,sha256=cNjqyFK4o6AvpdgFWJJa-8hl7xhjkWf8JUzEp1kEguc,542 +awscli/examples/s3api/put-bucket-analytics-configuration.rst,sha256=_edlT2otd3qFpZvyPzLczsnI7Z6IhYYydXlwJtZTKbc,373 +awscli/examples/s3api/put-bucket-cors.rst,sha256=Yc3nYdzrSBNJUa2oibsyLTXn2T2ON0UrvbB-OkuiFVQ,712 +awscli/examples/s3api/put-bucket-encryption.rst,sha256=JJooqIKyQs9hLhaT0OnaHzSemdpK7JwjlOYyYkd50yA,409 +awscli/examples/s3api/put-bucket-intelligent-tiering-configuration.rst,sha256=1zRMIMBqV8_djCTEZnVOre0nSgcyOobzg0ANPKEhjag,1290 +awscli/examples/s3api/put-bucket-inventory-configuration.rst,sha256=QUtuET7PaQHdRuo5Ckt7Vvsg7L3eXWnNWLpZBhUzRyU,1267 +awscli/examples/s3api/put-bucket-lifecycle-configuration.rst,sha256=7_f9feTy6QtlnN1KFm0u5kqXixB8qU5NQlV4AgT8_GY,1425 +awscli/examples/s3api/put-bucket-lifecycle.rst,sha256=A7SK66gBERhRUlO7doaXJH_6EuGveZtGAqNoAnZOZsU,1618 +awscli/examples/s3api/put-bucket-logging.rst,sha256=Rk6DeHMT90St_C2bGLAT0QOkg69LSBKE6oMQOyrToe8,3207 +awscli/examples/s3api/put-bucket-metrics-configuration.rst,sha256=JgH7LNAnYiKswWEK61I-DTbVvOIs6JYA04ZLJDE-XAE,397 +awscli/examples/s3api/put-bucket-notification-configuration.rst,sha256=YHvgX8SVNMPMUt55cKh_dHnxDQUYVjvJpfLvlwnRikc,1549 +awscli/examples/s3api/put-bucket-notification.rst,sha256=IXw5gB-vIv5BaQKmFa1Hn9BVKEfQuOAlLj8qeKjbVXk,1059 +awscli/examples/s3api/put-bucket-ownership-controls.rst,sha256=NBAzkIEAto4KanQsXL51XS6RlDoXxs5KVf05fZnhzjs,566 +awscli/examples/s3api/put-bucket-policy.rst,sha256=3y08N2FfhVHcK8kuN3agQrK3vNLGgjAhFI-iV46g0GE,1062 +awscli/examples/s3api/put-bucket-replication.rst,sha256=OXRyQEWtU7kart7aYR7GR02fv-rIVOBD00V0LWnUINw,2601 +awscli/examples/s3api/put-bucket-request-payment.rst,sha256=ROG9KHfb9G13afNe9xGDimreVtc-G-JGCt2QuuE0EBE,729 +awscli/examples/s3api/put-bucket-tagging.rst,sha256=VBSDnJR7fUHtkpqumRlD0iKc9xtLFuNOKe4uPMSJLiM,603 +awscli/examples/s3api/put-bucket-versioning.rst,sha256=T6lq_TuD4a47fjtERWMM0-VV0H9MSK0Ui3szQR8dACA,386 +awscli/examples/s3api/put-bucket-website.rst,sha256=zxKhfl_BrNvGuITzWKKACV_Z4RLUk04P7pfurgY7PSM,454 +awscli/examples/s3api/put-object-acl.rst,sha256=5SA3nz4sJpmTxgw0AX-RFK-8snCv73WPP1VvlkL1_lo,565 +awscli/examples/s3api/put-object-legal-hold.rst,sha256=fcKljon4wEU1leruDxzOsjojrNxwn5T3ogDYuWvn3Uw,322 +awscli/examples/s3api/put-object-lock-configuration.rst,sha256=UhBkU2DhjCdoxwxkhXiAMFOaLoKSU1asI3GOkbTFazo,440 +awscli/examples/s3api/put-object-retention.rst,sha256=QaBvf5tguiudmwLZHJQPVdKuEESgKYdogXo2kFNw7ZM,433 +awscli/examples/s3api/put-object-tagging.rst,sha256=yWGI2qRieBvPhXYE3O1WE9UNwRauZp4JprfIDb2SFnA,802 +awscli/examples/s3api/put-object.rst,sha256=Op_T854Smhab1-L2HSDBGVoMiawcEpYj1hB2-FyQNbU,917 +awscli/examples/s3api/put-public-access-block.rst,sha256=H_z847mFSmjrYVrf5PuIKYyzqrwZ1chbH_WeTpd2ehU,448 +awscli/examples/s3api/restore-object.rst,sha256=QTDMCJSKFol7o9bAzOmfD4H89d5wSZ9pEcxaRIZp_A8,351 +awscli/examples/s3api/select-object-content.rst,sha256=6OsISzxMebLLj8uhfYwKzWC_M7yx-Nnm6dV7RhCqy_Q,597 +awscli/examples/s3api/upload-part-copy.rst,sha256=i8TJeICKm92E6ZsX8WByR5iygOW6orgbKhP0X9y83sU,745 +awscli/examples/s3api/upload-part.rst,sha256=vRzJDPZC6MJXO-qqHMxUvS8mgIN3YqS0J55LxFnoFSc,855 +awscli/examples/s3api/wait/bucket-exists.rst,sha256=VCV0tU1ojgltiLU29m5QZQs_E1cTEm5WhwszSraqRCM,287 +awscli/examples/s3api/wait/bucket-not-exists.rst,sha256=4oW_0AI6-yIcnrVT7kmfgWGYtgOFm1kBHWjOGXySf-s,312 +awscli/examples/s3api/wait/object-exists.rst,sha256=2OSZfhQWI9O2-Veai_nEm6UkecyWxUfSY0I-f3J7mvI,352 +awscli/examples/s3api/wait/object-not-exists.rst,sha256=GSunCaQBnX1rJFq9Wu-S0lCxhi35_PnSx3nZ97SG6sk,373 +awscli/examples/s3control/create-access-point.rst,sha256=F7ZZV9SA4Dfh_nA5Ts9OopJNrEyUD6mJoXRm9la5y_c,694 +awscli/examples/s3control/create-job.rst,sha256=yr4YzdWqSEKewRvYS_4mgHBQDmicF1IHioFw597cv_w,970 +awscli/examples/s3control/delete-access-point-policy.rst,sha256=1nx4FlIeMdhydW_poLQfq_gxxvm3rVLT4csFzmuRIE0,676 +awscli/examples/s3control/delete-access-point.rst,sha256=2AgR3J-vrHuuefvNPeVpQi15AADKD_BPkB-UZzotRz8,625 +awscli/examples/s3control/delete-public-access-block.rst,sha256=dJgk3UMjiG4mdQQ5QamUKqzOY8v1NyJHToPX7joX5lQ,295 +awscli/examples/s3control/describe-job.rst,sha256=YcUK1d5MdVqrL87GBNk62KOazzxUoT1Gr9Pd-jphRb0,2041 +awscli/examples/s3control/get-access-point-policy-status.rst,sha256=4WRw7Ekywqy_HwgkL8eA4lyW3Oha71UyT9EHV79pNQM,959 +awscli/examples/s3control/get-access-point-policy.rst,sha256=yGxRTuPffwsB0OMvGuDDl4ddPS39FJmntLqBvyIfW-U,939 +awscli/examples/s3control/get-access-point.rst,sha256=MCEGoWjSrAaITAKdAdjLQPc4fJxWJsRtmhzqpPQ7y1w,1042 +awscli/examples/s3control/get-multi-region-access-point-routes.rst,sha256=tfAPfOSSxyS2Ubr-9yl-ZVjItSZSVLDMtGIul3il_GE,867 +awscli/examples/s3control/get-public-access-block.rst,sha256=oa-1t0gnDi7s5FYabPgQAq1eH34cBzwYgZ-7b1yUckw,481 +awscli/examples/s3control/list-access-points.rst,sha256=X0E_d7rMM-Q71ILJycFDuE3D-j0vnswdMCn4fBGcDWk,2197 +awscli/examples/s3control/list-jobs.rst,sha256=Bh0BoNvTbGrAMWKJq7AEIcAmik05iplae9Xc7ducMkQ,1214 +awscli/examples/s3control/put-access-point-policy.rst,sha256=IK3iajgZfdFsOogp3yh-__-3yNhub_Ae1AeNm_W5GFA,1320 +awscli/examples/s3control/put-public-access-block.rst,sha256=YAsgCsoQRYD7t4MSqKGOlNEAyM75hOlwc1l1PMhb-_w,461 +awscli/examples/s3control/submit-multi-region-access-point-routes.rst,sha256=69s_jLWgpbPtUOIBcWXMlxqVV5qdQCSinxr4pLZr7xc,640 +awscli/examples/s3control/update-job-priority.rst,sha256=3fjdCSHD-MVFDTKHlxp9ZhCexhylAONqKSZplxUqdyw,421 +awscli/examples/s3control/update-job-status.rst,sha256=JNy0PJReMwZ90RfS3L_S-eb4cq1pDgMSR2kzJ6GmeDs,1221 +awscli/examples/secretsmanager/batch-get-secret-value.rst,sha256=_u1I9SFMFkfpmmhmg4EsZ2UmBWZ12cziPkfDhIlOGvM,4311 +awscli/examples/secretsmanager/cancel-rotate-secret.rst,sha256=zQqAabOQYhe3CbPL1DllrUaIz-NKnFMRUwmZTxllUZU,588 +awscli/examples/secretsmanager/create-secret.rst,sha256=OnVn6I81QJpQyTx2pti2vbOcAw20SSe98jMZd-K0gXg,2287 +awscli/examples/secretsmanager/delete-resource-policy.rst,sha256=2UqRM9qm8ZGIOH6WCh4jyEC-i2sDTbCVGQSejTD7ons,595 +awscli/examples/secretsmanager/delete-secret.rst,sha256=D9eZ36_itaknoAnzYDTz0gRGBS00GW18eluM-ftawd8,1519 +awscli/examples/secretsmanager/describe-secret.rst,sha256=cKrZnT4GWNCnA-xAgD4dxRO7MTRQp4gub4iOfseLrFU,2037 +awscli/examples/secretsmanager/get-random-password.rst,sha256=JRheQauqfl8JSWJ6MKkmy9Enya397pC106hsuL4bEbI,592 +awscli/examples/secretsmanager/get-resource-policy.rst,sha256=As9ysIECZtsJ7F2Jv0HFHPRNY3JSEhN3RLO3B3FxvZo,854 +awscli/examples/secretsmanager/get-secret-value.rst,sha256=hDBgE4so0v4vhuaN03bdCq9Gh2cwzJ3eckqYIS9Wymk,1644 +awscli/examples/secretsmanager/list-secret-version-ids.rst,sha256=3SUaHqU6XLS5I8MB2_kecx7xIC3JwQtkW7ZxriwhuUc,1264 +awscli/examples/secretsmanager/list-secrets.rst,sha256=X18ewBTnAnBHMEO6XstHk4RL4AsWnKhhQOTtYgtVNoI,4274 +awscli/examples/secretsmanager/put-resource-policy.rst,sha256=baLzHHR2ukAy3LxYDQ1rPT_6fOr1N5Y72JVVJsUoSzU,1352 +awscli/examples/secretsmanager/put-secret-value.rst,sha256=uM14GGL7BceqJ8RaAVdfDR5biPXiPs8MC58uTwDofH8,1998 +awscli/examples/secretsmanager/remove-regions-from-replication.rst,sha256=aYGiEn6f99Xu2cSq8Zl27Wu2K1pCM90jC-_3iVeTWog,725 +awscli/examples/secretsmanager/replicate-secret-to-regions.rst,sha256=HnXB_if6KM6aPyIORpiYOuCj9mTR15O0ST4RQgfZJPY,881 +awscli/examples/secretsmanager/restore-secret.rst,sha256=uc75iJxtzXbBkPHqkqnFr8T5LTfrKJMkaH27EmBEQFQ,555 +awscli/examples/secretsmanager/rotate-secret.rst,sha256=5dOpwFgnJwwh4IG-CnZhno-QaXgjK5lPsTVIO-_1hA0,2807 +awscli/examples/secretsmanager/stop-replication-to-replica.rst,sha256=Mq2dh44k0jU8jIqU8WvMPUECPpIUtQoaj6hzvlv-xLs,703 +awscli/examples/secretsmanager/tag-resource.rst,sha256=hNTPuYF6JREWdbLadgyDAEDSeXP8y5RI9bBiPWtmQ5c,987 +awscli/examples/secretsmanager/untag-resource.rst,sha256=eTc6XnJPzWy6xJukSYV0RcdnXH_hv8cUqcCOTmtkQMY,496 +awscli/examples/secretsmanager/update-secret-version-stage.rst,sha256=a_2_qqnif6tWODJBCnXzYzKg1RFeQVgsP8N0hl0RnDI,3117 +awscli/examples/secretsmanager/update-secret.rst,sha256=WLhW4ejFVd-n_9ASvLgDOHA7MpevO0ui7wCerIwyZzM,1336 +awscli/examples/secretsmanager/validate-resource-policy.rst,sha256=u-3k3shTP46zLuNIlHG0qjpwv7Z-JELs0S1ZrsYyAMg,1186 +awscli/examples/securityhub/accept-administrator-invitation.rst,sha256=5IwrrzASrboaxmU3lGabURqTXCVngsIHdT9OD9a-KDo,573 +awscli/examples/securityhub/accept-invitation.rst,sha256=QsV-jCufZBmIf5butkX0lw5pwCRBin-vEpKmcVhcV1M,552 +awscli/examples/securityhub/batch-delete-automation-rules.rst,sha256=mHp1Q5KfAjZ22Fbs2HAzVLFVe8xFSfS_KTvrgnVETtY,862 +awscli/examples/securityhub/batch-disable-standards.rst,sha256=UIUUW2gi881DuIW-ru-Ff7LzsitGBPRmZq6CPnjEop8,939 +awscli/examples/securityhub/batch-enable-standards.rst,sha256=P9YKidvbiBRN3gNpRX6V26XTVrTtU1CHOSxaoTxXmO0,927 +awscli/examples/securityhub/batch-get-automation-rules.rst,sha256=zyBrp1Lz0JDkfu5YFZeiP1gUtJCc3KZp_qioBEv3t9Y,2808 +awscli/examples/securityhub/batch-get-configuration-policy-associations.rst,sha256=VhhDtBPO_pkv1xDVseIHU9LPmEWh_TJ8FyYdw7iR0QA,1006 +awscli/examples/securityhub/batch-get-security-controls.rst,sha256=zW2aLVg01s7eExbLa8UkUIAyNLoqTWpuDQR6AimOE1E,2850 +awscli/examples/securityhub/batch-get-standards-control-associations.rst,sha256=XsE5iisUi8FOif8hpmkQ-9R5NNFweYyuVyio_qCtXSc,3115 +awscli/examples/securityhub/batch-import-findings.rst,sha256=fpsf7GDh4dW0E7DmVJVL4UCZsd4PpbclRuvNkOG9bjs,1743 +awscli/examples/securityhub/batch-update-automation-rules.rst,sha256=Wi9VAtc8ATMFxmGoQhprcxgkHybGHvx1lgEeBjP2fOI,1726 +awscli/examples/securityhub/batch-update-findings.rst,sha256=mag96cVajG6GHW6Wf1v0LjFTzyWwfayMc11cIoKaw64,3432 +awscli/examples/securityhub/batch-update-standards-control-associations.rst,sha256=_viX1x1urKcJ67vsc1_oOkf7mMJBN7sHx_jFNIkrlrE,1163 +awscli/examples/securityhub/create-action-target.rst,sha256=mv21TH2OXEPBtzA3iW9ZOHk0IA-hs05AspKkJmmZA-8,757 +awscli/examples/securityhub/create-automation-rule.rst,sha256=7uyiIsOh7S2xqoECYsXmhvUgQxp2K2XmlUK4gzu_5KM,1476 +awscli/examples/securityhub/create-configuration-policy.rst,sha256=Zrnuogj1lYhc3baHktHJXyg_FCH80zaijeVLz5lSAqA,2614 +awscli/examples/securityhub/create-finding-aggregator.rst,sha256=ObXAq8gT1_25GXACQvzsQY7K6CFtKSeevTAYTX4spcM,1052 +awscli/examples/securityhub/create-insight.rst,sha256=juxizsNRfaiAd_67cbnRXDQQS6XfeSx8zhbUpummB94,827 +awscli/examples/securityhub/create-members.rst,sha256=cdP8V9rIt9at0ljvqBWuzSyAi0cuBaViCP3f7ucl4q4,558 +awscli/examples/securityhub/decline-invitations.rst,sha256=9FHzeLKzxsNJRgJaE99Fe7bTfj9RPlqBGBSj8albuwc,583 +awscli/examples/securityhub/delete-action-target.rst,sha256=MdAgagEi1Xq3yd-Tsh4Jxymhyz_CwJbdC6MrPTR6bew,680 +awscli/examples/securityhub/delete-configuration-policy.rst,sha256=BbqBMBdu9wccjZBubjhDaohfaZH-pD4O3aGsWDqJ72g,574 +awscli/examples/securityhub/delete-finding-aggregator.rst,sha256=l2-0TjYBauQJpbGl79vytjRo8iX1Q02Dj-3C4mLA7ok,620 +awscli/examples/securityhub/delete-insight.rst,sha256=O15pukIKVAGQHs8Fp2a8brlySmlYvCFgusFWLSrAlZw,653 +awscli/examples/securityhub/delete-invitations.rst,sha256=K5FFIAe7QaFKuLT0DL7YobE2z-y9IcivgEwzFU8OsWI,578 +awscli/examples/securityhub/delete-members.rst,sha256=AJhRPMul5mU62RQpqVdsKuXfDhF1dXIeWUOJS5Cicw4,513 +awscli/examples/securityhub/describe-action-targets.rst,sha256=dQURahzBq35sruaM_RlK8MKPI-D90zOE-ftVeyPnVS4,936 +awscli/examples/securityhub/describe-hub.rst,sha256=eNLIWIkHqXr6B243_zoaTePp_fL28NhiA5oiQiFHPLo,794 +awscli/examples/securityhub/describe-organization-configuration.rst,sha256=lEaEnVo6F4PZpJm_U2PJINMb3shDDtbfdeQCj_JVkoE,955 +awscli/examples/securityhub/describe-products.rst,sha256=L-irRLXFNHg9tYDa9-vkz3GjSjaHt_czfB817F2uRDE,2453 +awscli/examples/securityhub/describe-standards-controls.rst,sha256=L3erlpNhfp5yiPZ2d6a8j_6s7uPRKBsy2nhZvxgoi2E,3075 +awscli/examples/securityhub/describe-standards.rst,sha256=XGTRBbCEhy7cIhrdXDtrRX_XUAztS_Dfygl3khVDMYU,2169 +awscli/examples/securityhub/disable-import-findings-for-product.rst,sha256=W6txZhyaAWGjHxmUIksE_YuPs-aBWTbxF7aw8FhUqYk,640 +awscli/examples/securityhub/disable-organization-admin-account.rst,sha256=4sWKJVzL0JFmDGXObc-ds6vM2uTrFk1jPeKePUhvCN8,575 +awscli/examples/securityhub/disable-security-hub.rst,sha256=sC8pr1EekghWizapuQy1K_MGAbsiHWPmJBCRIbo9iZA,400 +awscli/examples/securityhub/disassociate-from-administrator-account.rst,sha256=z2tawDI0b_qJ1EKjpXw9ZJeeWuxEr7zxtyHjdatGyxA,496 +awscli/examples/securityhub/disassociate-from-master-account.rst,sha256=WSoLxeOLd_dLuhMVcC9MWEwvNPyAPDoZNh6KFTK5CRM,482 +awscli/examples/securityhub/disassociate-members.rst,sha256=SuXQwDANCTI4epl156KVbMKn34abai_-VgDtcJV3O74,509 +awscli/examples/securityhub/enable-import-findings-for-product.rst,sha256=mjbzFxIRZqOtFgKnXs5pEP0NY0Nf-oTOIqRshYQuWHk,721 +awscli/examples/securityhub/enable-organization-admin-account.rst,sha256=Dtw__65azn4R5yr9Wo1ooS70qPrZZQ7iQnSiIQcq_9c,571 +awscli/examples/securityhub/enable-security-hub.rst,sha256=0pLku-VxBwr1ZNlb_8yuBKmzMJ4EDDp0rbxookdWf88,638 +awscli/examples/securityhub/get-administrator-account.rst,sha256=5hXwKzpgrTxffN43x5s49rNXC8KeDHEOQEStXuWfnUw,708 +awscli/examples/securityhub/get-configuration-policy-association.rst,sha256=a4JslT5ynBzv22d5yRpBljYL2PbFySIIDdkHakDIsuk,982 +awscli/examples/securityhub/get-configuration-policy.rst,sha256=hff7kbhZmDawZ62ZQmoaz25Ewlx3SMwFZrkj5w2ldQM,2059 +awscli/examples/securityhub/get-enabled-standards.rst,sha256=UReTg3FrPDPQN-WfdC_nllfw03kSQK0v-22R4heav3A,918 +awscli/examples/securityhub/get-finding-aggregator.rst,sha256=NTGlWkd1dIEMdBW3GlOzs2Xw7H33rabA5Gxjl80JPhY,879 +awscli/examples/securityhub/get-finding-history.rst,sha256=aAj29rWS16Yrax9wYuqUQq0eSMcQWQLPAViFes8FREA,3429 +awscli/examples/securityhub/get-findings.rst,sha256=Ap7auMXuH_ttGgqGTG2uInNnE19BhR7B21AtA4cuPYE,9175 +awscli/examples/securityhub/get-insight-results.rst,sha256=ktup2PFl9i2_TygO_hvhuKgpI23K-JeNVD26hMPdhRg,1179 +awscli/examples/securityhub/get-insights.rst,sha256=I_w-Tj2EdaVQGldKxVmncj2YeaQu0nBwJCbYO17lgNw,1351 +awscli/examples/securityhub/get-invitations-count.rst,sha256=e6Gs6avaVmoBaYbFJ3hxJZODERc9X9pDxlsslju99Bg,519 +awscli/examples/securityhub/get-master-account.rst,sha256=Y-A2JUo5SfzVpZsMg7im37f_RNSCbdL3OBt88XsEwnE,694 +awscli/examples/securityhub/get-members.rst,sha256=ZJq15UqSa6p2z11-kRp0ThEF3yvqOxOa-BYDAnBzXnE,1247 +awscli/examples/securityhub/get-security-control-definition.rst,sha256=zTPJigN5VqdvmA0LhyFLOVYQw-9-RP7Q1oIpAz0WK5Y,1855 +awscli/examples/securityhub/invite-members.rst,sha256=HXohHr4ke-Y5HBkriQxtgwTXtGeIPAqXuz_nMEpgcVQ,497 +awscli/examples/securityhub/list-automation-rules.rst,sha256=WwnpHYYHn4X95eUBXwQwHda4LSh8WWQLWvVd7OOfzzs,2290 +awscli/examples/securityhub/list-configuration-policies.rst,sha256=VhAgnTWq9f-L34IH55AVXzVfT9v5LRAmC8mHHKd2QJc,1785 +awscli/examples/securityhub/list-configuration-policy-associations.rst,sha256=WFfCesGzkQV4ATM9cuZ8c_LgvXx61QEmV--R3ob9ofQ,2429 +awscli/examples/securityhub/list-enabled-products-for-import.rst,sha256=FFT9-aB2Jo1ccDGZtaLjorB90PhUdiWQGrDDldGDLlY,707 +awscli/examples/securityhub/list-finding-aggregators.rst,sha256=oNimbSlfHbMHNK2_UA4GJOTiYjXHFqgrvetBqmyVw28,578 +awscli/examples/securityhub/list-invitations.rst,sha256=K_MKa5GhjFJ80fldP_mjDl6i8W4UNPI08Q1-lvN3Iko,715 +awscli/examples/securityhub/list-members.rst,sha256=_MokiqCiTvh7brlPFTV4YTVtsA6SGtDgFb7QXsYzxZ4,1161 +awscli/examples/securityhub/list-organization-admin-accounts.rst,sha256=mzb0rqepomo2HQyGKsuXRm2zhQFJRaDYUv9Okvozmn0,615 +awscli/examples/securityhub/list-security-control-definitions.rst,sha256=OaO1PMZa82AY4mLNsfmy82ahf7z301upHWr9WupgI_I,6006 +awscli/examples/securityhub/list-standards-control-associations.rst,sha256=8poyMBwiqt1zvdWOx8BSli2FYquJQ2L9_ISMHNcC5GE,5296 +awscli/examples/securityhub/list-tags-for-resource.rst,sha256=HKp75IwOlyPCU_7vpp47VKHrza_3eKATzyqGvigQ82c,618 +awscli/examples/securityhub/start-configuration-policy-association.rst,sha256=G_JYnA7TxHFJa-pmarOUTqqIywc9rbolSkSRAGSbRT4,2000 +awscli/examples/securityhub/start-configuration-policy-disassociation.rst,sha256=SqpkormMNMRaN69Zy9PcYwMud2_NgtdPpeuzUmxzH-M,1499 +awscli/examples/securityhub/tag-resource.rst,sha256=9m79acNj0N7oE5u3ALEQX5GUHGfoRfJxl_60Ha4ZpsU,572 +awscli/examples/securityhub/untag-resource.rst,sha256=uKIg0aOGOJjD5OUoOO6LIiT0ltEpl0ffvheRG8ENfAk,532 +awscli/examples/securityhub/update-action-target.rst,sha256=17ISMjhlFTg3VZC5bC_drZMfcbSPaXxpRo92UPQE2r8,639 +awscli/examples/securityhub/update-configuration-policy.rst,sha256=qqZGw80NRUwty-AVK836RItAGJBvmqxlJMznPehv-cQ,2795 +awscli/examples/securityhub/update-finding-aggregator.rst,sha256=NF2ko97siCKCURica3qg-X6X72IDWNPbW7-7eHeL5sc,888 +awscli/examples/securityhub/update-insight.rst,sha256=XbRBGynrfbc46d0qDPlrnfRwnPyK-A8PmC3PfkjHns8,2121 +awscli/examples/securityhub/update-organization-configuration.rst,sha256=Z6dxuNBAkOo_OUpQg7tiQIVyyhBv88PXqaJ3JCW9yC4,1060 +awscli/examples/securityhub/update-security-control.rst,sha256=Vub-HSagn159H2Q_s-2ivkXzYXVG_unUPsn-Z2hLCsU,630 +awscli/examples/securityhub/update-security-hub-configuration.rst,sha256=-AhlFIEE-J-ioI8uzLIsVPnhDkL0a6YNyh93JTTKuyc,505 +awscli/examples/securityhub/update-standards-control.rst,sha256=tfoUeSaJSjbe1FTDFhrYxChFA9WSE-cRUvnY7yzjhTI,1031 +awscli/examples/securitylake/create-aws-log-source.rst,sha256=RC-yFXY1BhaMJE8jn4IKGheg1OB6PMVieQtCB-Y29gM,689 +awscli/examples/securitylake/create-custom-log-source.rst,sha256=dW4eWxh99hk4ngwHZw15tM9kVqm_NMV7rpnXawsQYFk,1472 +awscli/examples/securitylake/create-data-lake-exception-subscription.rst,sha256=ysA1VPf2fKtMmkoM6kHSdPmQdFwEs8E7OanUvThXyVk,741 +awscli/examples/securitylake/create-data-lake-organization-configuration.rst,sha256=PywDIX4dbY_WBcqVAK5Xr1t84A3p4UY7eIDhBmjTNmI,685 +awscli/examples/securitylake/create-data-lake.rst,sha256=oTnATk1y7wZkSmFMcpikTUjM7hqqa_ejnvliUGpkSZg,5825 +awscli/examples/securitylake/create-subscriber-notification.rst,sha256=G9K4VXJqfBPZiJZuWu9_MEBBV0KdLwB2nUOMACCOBIc,866 +awscli/examples/securitylake/create-subscriber.rst,sha256=6lbnyC4lFyyA2AEqSsrFYtigNVga3cTwn6fkEggJroQ,3773 +awscli/examples/securitylake/delete-aws-log-source.rst,sha256=ObsUSWqA8XP7AQskoZnc6cWbxbQQpEClQ8NElF9-Dp0,660 +awscli/examples/securitylake/delete-custom-log-source.rst,sha256=d5NHd-pYO8F05AHZXqw_Brx73yv7d00PKkmydqrXNog,497 +awscli/examples/securitylake/delete-data-lake-organization-configuration.rst,sha256=plsKMK85agnSgBMR-3KXYxEvs_FHZtTfQkgfmZqz7MI,818 +awscli/examples/securitylake/delete-data-lake.rst,sha256=jqgfHs94MRPzC8leeMBtj6Z4yAgUUXYh_PjyVW-rcs0,712 +awscli/examples/securitylake/delete-subscriber-notification.rst,sha256=GHKGwRRsO7V87ftA0EZYYFjZwX7bDJ1qvJnqsbgUqnA,523 +awscli/examples/securitylake/delete-subscriber.rst,sha256=ilKv48pAGk1Z0-cTdrPp4DVLi3sZHxBZyoPe7BVvYbk,500 +awscli/examples/securitylake/get-data-lake-exception-subscription.rst,sha256=oK0heJoUu84ullYjEF0kzZU6jmVKWJWLOl8ZqWFmSnE,907 +awscli/examples/securitylake/get-data-lake-organization-configuration.rst,sha256=dInpaJ-C3RSezqJKFoIaDbCpYnUg5UCQkmpP4pi3NyM,1153 +awscli/examples/securitylake/get-data-lake-sources.rst,sha256=07tByrBRAGfa277lSyfUWgPD5KNXgUusRHbi030PJ1I,2208 +awscli/examples/securitylake/get-subscriber.rst,sha256=ufMV2g29aRlpa9MpILRtg3voizszwN5NCgUXJPTtk_U,4142 +awscli/examples/securitylake/list-data-lake-exceptions.rst,sha256=18B20baZlu0zxaEf6b8xvpFQ2dTCG1IVGVWQkPUtSmo,1165 +awscli/examples/securitylake/list-data-lakes.rst,sha256=WhfmFdVfuj-u1_8sAoFbE6M_aT093B7fC4CSNfyDbik,2001 +awscli/examples/securitylake/list-log-sources.rst,sha256=zryg-_zNI470AzqByZmt0f950knKGe7CyfKHKezewsc,883 +awscli/examples/securitylake/list-subscribers.rst,sha256=MECE84atKh66-pecejdLG__hoM-5o-VCN-KLAFOMAvA,2750 +awscli/examples/securitylake/list-tags-for-resource.rst,sha256=1UhJszDiAE4PKxfRgREakT6nrt-yqJXxYExgQXgJ6yU,1034 +awscli/examples/securitylake/register-data-lake-delegated-administrator.rst,sha256=RIM92NkHcaPYjH0VSei7mdbIkz9PM_QmDzUuL6rfJYE,558 +awscli/examples/securitylake/tag-resource.rst,sha256=Prze5KyhsqxGWa8eBaroHjxnj868UkWpEQzh6QdI49k,754 +awscli/examples/securitylake/untag-resource.rst,sha256=O8xqWn31D199wRh_oa4whUc9jvtHUIKlFTdFLXvO7ls,590 +awscli/examples/securitylake/update-data-lake-exception-subscription.rst,sha256=_3EP7mWI60eAP7FmXt9WIE3fyDnb8zn9wNDH3st6Zm0,689 +awscli/examples/securitylake/update-data-lake.rst,sha256=t_ybDi0P-oVmrTW14SZkIYv-xTe06GpEYvwu9be0jdE,5880 +awscli/examples/securitylake/update-subscriber-notification.rst,sha256=dIAhynYEIlCXtTNYnBvUOt7u-w_1V_C9_4QTd7LrMjM,820 +awscli/examples/securitylake/update-subscriber.rst,sha256=oYwHnbdl3qSPu_-5dv9MVp1Ae66XXfXL27CvDcDebMQ,3134 +awscli/examples/serverlessrepo/put-application-policy.rst,sha256=2QPFAUrUS_gl6NaEDE2kWc5Rn8q8BuODfcdSQnbYUjY,1805 +awscli/examples/service-quotas/get-aws-default-service-quota.rst,sha256=Y0WoXkMAHx6t0pJRL0FYWh9FUTG4sAyTuKi-U8rS0Yo,1165 +awscli/examples/service-quotas/get-requested-service-quota-change.rst,sha256=v0xafzBbeiroP14z6O8y6ccbzMlrbEfj6UD51UKSs5c,1055 +awscli/examples/service-quotas/get-service-quota.rst,sha256=FTxWDWE3_HU_YdMKP0dHApyyby1XZevdMweiccgceGQ,1150 +awscli/examples/service-quotas/list-aws-default-service-quotas.rst,sha256=cvXMUXJ3VOGCNS4d-Ae8-4iVL9aU3drAWDw2P6sF7E4,1623 +awscli/examples/service-quotas/list-requested-service-quota-change-history-by-quota.rst,sha256=GYHQQG6ZwmNKv0RNw1yqn5GLZLgBW1UOEihkoGWP89g,1178 +awscli/examples/service-quotas/list-requested-service-quota-change-history.rst,sha256=h8KjNCyIte1gNY2f_umbIPBFd0G91CM2HOSzJEnzzsg,1128 +awscli/examples/service-quotas/list-service-quotas.rst,sha256=R0EA9LAgjbSWmbbHwzqqTfc-0Oj8Afkz-fxUweMeh04,1223 +awscli/examples/service-quotas/list-services.rst,sha256=NFKdhKGZNwgi9lkLfo4HvIAwXwwgmOBZOBkK88MkYuw,1209 +awscli/examples/service-quotas/request-service-quota-increase.rst,sha256=Xz9UitqvtMp8DXE7kRm6Hbhp8hl9kTi-Gx7gAYIXTJY,987 +awscli/examples/servicecatalog-appregistry/associate-attribute-group.rst,sha256=AiFuV9l6XVqY-dHnRqTT76Zxcc_oEdD6aUxIHRSgOEo,844 +awscli/examples/servicecatalog-appregistry/create-application.rst,sha256=i6Yv6zEqm34s8JSr5wAGkhvJtM4gWzgQl5hcIXqPgW4,819 +awscli/examples/servicecatalog-appregistry/create-attribute-group.rst,sha256=SvF3E8Vy263YLG3o7N_4Eaw314RDCuW-Y4xQAV5bn3s,934 +awscli/examples/servicecatalog-appregistry/delete-application.rst,sha256=fnFBBs4DGU-Beo6fqPc6Qa2MNtKYIoSxxg5_5h5u-00,816 +awscli/examples/servicecatalog-appregistry/delete-attribute-group.rst,sha256=jJV_HKzoPX3fwwGanuWkmshA3djAzvhBppM9WM-ryXE,863 +awscli/examples/servicecatalog-appregistry/get-application.rst,sha256=JLleZPbvbt07pgDaNF98K-_g8h0e_twr_fw85ytfex4,1173 +awscli/examples/servicecatalog-appregistry/get-attribute-group.rst,sha256=MCW5kAIhqaPcm8ik9e6tWSCJgmoHQO8wbZUclRN_i94,986 +awscli/examples/servicecatalog-appregistry/list-applications.rst,sha256=YNVSH9J-M6YZnMBwO0kGuDZNGc_cidyAMEb2cGMFPmY,1647 +awscli/examples/servicecatalog-appregistry/list-associated-attribute-groups.rst,sha256=9xy33MvuqHr2tDdTcwEiJFQNHf1yLp9b7LEPkn808o4,685 +awscli/examples/servicecatalog-appregistry/list-attribute-groups-for-application.rst,sha256=QbHyQBuyZqBB1z5MNU3XrY2yk8IY6eLvth-7fGmRyco,865 +awscli/examples/servicecatalog-appregistry/list-attribute-groups.rst,sha256=Zk0vHAG2Ef3aMGGWLncW2KXewt6ctp8G5bJAdcVorkg,1690 +awscli/examples/servicecatalog-appregistry/update-application.rst,sha256=UY0sg6obunqtH7cBGmquI_u6-A9myYCodwdKH1x1St8,1059 +awscli/examples/servicecatalog-appregistry/update-attribute-group.rst,sha256=Wn5-7PQBzBZbuM9Yvvohs_XrjL47Xiscmw07aQ4kcIs,1116 +awscli/examples/servicecatalog/accept-portfolio-share.rst,sha256=EoYZDWrJIXD3l6fHjyBUsVLLI8IsQh3hPhIB5Gg6F_Q,295 +awscli/examples/servicecatalog/associate-principal-with-portfolio.rst,sha256=yX8L6Gln2TXJ0To44mIRruDlN87dCWI0U6OHq87OkLE,393 +awscli/examples/servicecatalog/associate-product-with-portfolio.rst,sha256=l5Ih3K-m32UzzLsyRdrtdJLXeFTg1FNsmml5KQiq_KQ,339 +awscli/examples/servicecatalog/associate-tag-option-with-resource.rst,sha256=84x-Y2UVQBT0jA9loKDQh7s3Gn-io0eHHfTnXI34lJU,354 +awscli/examples/servicecatalog/copy-product.rst,sha256=ruZzzETcUZxjb6WnP_fDPEHp0uiHvFzkEYe8q5UsLTY,568 +awscli/examples/servicecatalog/create-portfolio-share.rst,sha256=c2_EJ6Al-xXzoweuzwhYC-wUiDjF9WXd00Y9lzAh5X4,315 +awscli/examples/servicecatalog/create-portfolio.rst,sha256=o3oRkLCA1KHfRwBX2Na_rM1G_4BI3FaoWxDarjts7P4,551 +awscli/examples/servicecatalog/create-product.rst,sha256=Z_T53-3WqLTx5DRvrl-L7rnMPbB4dLiOJraSS8yo6a0,2400 +awscli/examples/servicecatalog/create-provisioning-artifact.rst,sha256=UMIHjXxz7LMZgXp61UuToAwCcPIX7lPmrCNC4bYczBo,1270 +awscli/examples/servicecatalog/create-tag-option.rst,sha256=vQnYoM16m3giZaevL7a0et5I6NR74HW7j9I8pXeq3GU,347 +awscli/examples/servicecatalog/delete-portfolio-share.rst,sha256=oMlu6ZZGR3NYNnn-jSQYOjn-XY8T0Lqnib_Pt3LYW0s,318 +awscli/examples/servicecatalog/delete-portfolio.rst,sha256=yE0puWsuMJOjlZH3q75HthlVA0r9b5VHJoYcVaJbxY8,215 +awscli/examples/servicecatalog/delete-product.rst,sha256=_GqeQgRThOLKVFwD1hThJw0FLJvll0TEEtqnxKUidCQ,207 +awscli/examples/servicecatalog/delete-provisioning-artifact.rst,sha256=4K4qT0Bu7sQPMQhlrFrfz3eaqDre8q5wvd-CxtuZ3yA,325 +awscli/examples/servicecatalog/delete-tag-option.rst,sha256=f8n80uzXT6BMQ7zT2rGrLytbTl-AIRgTswHS4w2nxZA,216 +awscli/examples/servicecatalog/describe-copy-product-status.rst,sha256=nwS0vEZbTXXbi_SuZtcM1zcqCqpG2atR6atyjQb39EQ,421 +awscli/examples/servicecatalog/describe-portfolio.rst,sha256=23IJ0H0RbcWDe18pLPIqXZQFu8WN_1T_GyXOUeiyE3s,566 +awscli/examples/servicecatalog/describe-product-as-admin.rst,sha256=mWeXx1W7S6uxH9jad7uGUuaFZUQKMozKdCOYBpTEp0c,1644 +awscli/examples/servicecatalog/describe-provisioned-product.rst,sha256=KVmi6DLmOfAbdZwToIhuWgO1bDrLmt4meVZrnA-vgLg,983 +awscli/examples/servicecatalog/describe-provisioning-artifact.rst,sha256=J0Ta2JOsexsbYjfhfK2mbzwaUqe1rk8EwyfizwaUjBA,802 +awscli/examples/servicecatalog/describe-tag-option.rst,sha256=kROoOYp9byeIvcAn5FK_RG416S68teqHBdCFZdVt0oE,388 +awscli/examples/servicecatalog/disassociate-principal-from-portfolio.rst,sha256=BLx1pYTposBVoSeGtY6Z7qCOiAXFo28bhYQJ2xZ1YF4,384 +awscli/examples/servicecatalog/disassociate-product-from-portfolio.rst,sha256=bYbw2OdFF0FRw0SpWwXeSa8fjDMMaVWxGMSL56sl0Vo,349 +awscli/examples/servicecatalog/disassociate-tag-option-from-resource.rst,sha256=_fRRwaZLQzzyiwT_uevYe_wIXROmLjIakbWBSo-deB8,360 +awscli/examples/servicecatalog/list-accepted-portfolio-shares.rst,sha256=AAKL24nmX4oZk_TeARz3W8rx0RTqwfbTlyoSslqI55I,1292 +awscli/examples/servicecatalog/list-portfolio-access.rst,sha256=vqamHCUfLM_KyxQYtSTrlaVvuVQN2wdqFI9CAM-G8X8,342 +awscli/examples/servicecatalog/list-portfolios-for-product.rst,sha256=R4q01V_mC6t8plMLBL5_Ty3ZaIozMSVcVdqSyNtCIPc,931 +awscli/examples/servicecatalog/list-portfolios.rst,sha256=jjkuBEqSxvbVazVsYH0p_m1gsxLZ_GZ8K8x2uZuyuBw,548 +awscli/examples/servicecatalog/list-principals-for-portfolio.rst,sha256=qWi86kalvmmB_KNy51dOeqanpE0HymS_NY-PMe_vQ58,450 +awscli/examples/servicecatalog/list-provisioning-artifacts.rst,sha256=1sawY5PHQEvjki6Ic59tbCcAbQ1wLAt1Xc5Q3p2L7Ho,947 +awscli/examples/servicecatalog/list-resources-for-tag-option.rst,sha256=Th8TgeTKt3FObpVPZFcfbQhakvA0Zebn89sbfNB9FCI,625 +awscli/examples/servicecatalog/list-tag-options.rst,sha256=g2-V4oeKb03ylrpvEefspXRV_5y_If5MgNVF8czKCN0,548 +awscli/examples/servicecatalog/provision-product.rst,sha256=NGfnWNz2U8Dwlr_mA79UfYldyRx37huL_89WaA-otNo,985 +awscli/examples/servicecatalog/reject-portfolio-share.rst,sha256=WxBLrkrgJX-0XD5s3SiFxaaWK_xsyKrHhk-hztuqPME,266 +awscli/examples/servicecatalog/scan-provisioned-products.rst,sha256=yrFgd11ExoQLeSTdUxHdYt1fhfOtu5kWSkp6oPrBkBs,959 +awscli/examples/servicecatalog/search-products-as-admin.rst,sha256=tLScK9v6v7BeYJ9BiCiTpudnbcTVd--wyIcXYpCYoz4,960 +awscli/examples/servicecatalog/search-provisioned-products.rst,sha256=TBga8R6GGFkLYgtbUpnRfIRrOloSqJMcvNrh4FdG61o,2776 +awscli/examples/servicecatalog/update-portfolio.rst,sha256=MSG2u4AI13DV6hHwCyQHZy31slxb2dEjctw6h19egQY,582 +awscli/examples/servicecatalog/update-product.rst,sha256=9699w368UxOC9vECNYq_OPnVGvECRJYT-JCVD_1uzrI,1230 +awscli/examples/servicecatalog/update-provisioning-artifact.rst,sha256=LAQhkTlaW2iQodS3Mq9SEjsP34xjZNF0o39IFh4sfxc,1073 +awscli/examples/servicecatalog/update-tag-option.rst,sha256=DltcQYP0KQWJu5WmaMXcQJ6FaPmzx2OoGQZSt1qKC_M,574 +awscli/examples/servicediscovery/create-http-namespace.rst,sha256=rucaUDiSy6OfnDwFcuMEmmxd5nl9MChI6sxm0dB29JU,789 +awscli/examples/servicediscovery/create-private-dns-namespace.rst,sha256=CiAdos3MrTtu3MHqbM2ZZO6NDmBsgtkVbvEEobMWMZA,706 +awscli/examples/servicediscovery/create-public-dns-namespace.rst,sha256=Z3WuMuVMaN39ojB8qAgD1Snq4ASQARriVZmQ44JJuwg,750 +awscli/examples/servicediscovery/create-service.rst,sha256=nLxeopPQyixFc31nqeM_NEHSPwisP8KyfR6VoLESneA,2895 +awscli/examples/servicediscovery/delete-namespace.rst,sha256=FtnmHSrMvNoFiC0gMNS7BlsAzAHgjn4ekV0Hla5hPpM,1199 +awscli/examples/servicediscovery/delete-service-attributes.rst,sha256=KAGJmPARhFCX-isCo_nO5I7Q48XtSm0kjmZufS9HkrE,1318 +awscli/examples/servicediscovery/delete-service.rst,sha256=YzikP56iQ4RKE26NklaAlMddzvYUGonHYFxc1YeYbFQ,857 +awscli/examples/servicediscovery/deregister-instance.rst,sha256=6Lysnd2590BEu2TgmeJLMzfF1Aur5ecnOGa6NVLXZtM,1652 +awscli/examples/servicediscovery/discover-instances-revision.rst,sha256=CQVj2OR4KCOML4QHVz75cKKRPOUz6Fcl8B4iGsW-nM0,1379 +awscli/examples/servicediscovery/discover-instances.rst,sha256=5li-EiYlIbkkOIv8Kb2BsBzHm74rp0yBIUvdPkXmcK4,2168 +awscli/examples/servicediscovery/get-instance.rst,sha256=ULXFsKSVYsodFZaQ3TH43ozT07SGOeveCgwfGPC-BIM,2086 +awscli/examples/servicediscovery/get-instances-health-status.rst,sha256=XoLgwijDnLmq2BZFEDVP3Tca8O2LRaB1apPL2I52OCE,1577 +awscli/examples/servicediscovery/get-namespace.rst,sha256=V3VfGSZnZwdXz_kws8mR7BnoeCoXuEpAwJHtFF3bZ9A,2371 +awscli/examples/servicediscovery/get-operation.rst,sha256=O9EYNTgGFfOzexFPZs68g43bhut2I4TINCiJ99T3dpE,1949 +awscli/examples/servicediscovery/get-service-attributes.rst,sha256=QANGdPfq83-cmFFU0qqHrVdqocPvpwD-JzNNiX3DCho,1685 +awscli/examples/servicediscovery/get-service.rst,sha256=q7DVeqcU-AL98Rs41XP5XNjEiJREeOpLjKzaxIU1wno,2353 +awscli/examples/servicediscovery/list-instances.rst,sha256=B_N0r9V77py1ENS_z09UXOtFCsTFsSlXGASHwMCYnS4,2159 +awscli/examples/servicediscovery/list-namespaces.rst,sha256=vQZCxU5eiztyoZrgrLBqriaibQxHiHdQq6YjxMDo_lY,3024 +awscli/examples/servicediscovery/list-operations.rst,sha256=NIQUg-KGPxMlRSuklo66KBm3M4sFVoR6G_LFoxFuS_M,943 +awscli/examples/servicediscovery/list-services.rst,sha256=CzpuB1lfWrDzmjgk_sPkGj8Gua9HjaaDlXP3Ieywnng,2300 +awscli/examples/servicediscovery/list-tags-for-resource.rst,sha256=vSM1X-GhFEMICwTifdWjV-sNqFLhEHf1XJNZFyt1ieI,731 +awscli/examples/servicediscovery/register-instance.rst,sha256=r7bC8eupN0uGQbPSE855l3kN3c08oe3xZ4hgi7Bnt8s,1691 +awscli/examples/servicediscovery/tag-resource.rst,sha256=EmyrrIUs3aLP6Y3Yjpmu-o6GS7xoSoSX1irjliLxcLw,594 +awscli/examples/servicediscovery/untag-resource.rst,sha256=k-DiiV5IJz0M5kNQQ7P0p8o7N_X3xd7dn-oWpC92PYc,561 +awscli/examples/servicediscovery/update-http-namespace.rst,sha256=EkLKnaoWRgSmg5wz_BUFciuAjmWdgxH4o3jwWiB2rJM,1533 +awscli/examples/servicediscovery/update-instance-custom-health-status.rst,sha256=N7okjoAylxgMjxvhiwR9DZ6R7r2KguVMRTFyENxtjEU,1545 +awscli/examples/servicediscovery/update-private-dns-namespace.rst,sha256=jGEHGh2oADSvDUKwa1ulvLOugID3m-ZujHUpzwIF1tc,1463 +awscli/examples/servicediscovery/update-public-dns-namespace.rst,sha256=X2etYVaTlXWoM-sSq5DUB9SEDboiPe7xVhXyDnAT3PE,1449 +awscli/examples/servicediscovery/update-service-attributes.rst,sha256=P7TE9FCkZbzEEHBvWyipmJYQs-k4wb95ZGA8A-LeTYI,1330 +awscli/examples/servicediscovery/update-service.rst,sha256=BHByXymR3DkVi0FB9AWW-JOyqjgA9LXTWPCh_pQaADM,1612 +awscli/examples/ses/delete-identity.rst,sha256=i7NKOj97eDKk1O78HOj_5MjGKNg41V3ctPqg1lcmVnI,529 +awscli/examples/ses/get-identity-dkim-attributes.rst,sha256=CIQoYWtkfMacGCO-Ox4UoN2MjB3TyqgGbkmK8frOkFg,1152 +awscli/examples/ses/get-identity-notification-attributes.rst,sha256=fMEB6dmTNAuWHfXbF61ha2zlxHvbqMbKo2qGVTDOYuo,1369 +awscli/examples/ses/get-identity-verification-attributes.rst,sha256=LqOp0NVE4CgW5XXk6KLrXkNRLzhQ_ZGy80mBtbZ5LWg,997 +awscli/examples/ses/get-send-quota.rst,sha256=vQDbFeh5fJ2vK87OzDeqNCnWdKysaMTuzhGTKNFTUmM,1260 +awscli/examples/ses/get-send-statistics.rst,sha256=CAtOGeB8WKva2a0c-AK38Di9bxLErJqoh_cnFLZWbHI,1188 +awscli/examples/ses/list-identities.rst,sha256=4P8mMUjsxZ-gv5C5aHDC0aJlou9yN3ohpSRzHIhIToQ,906 +awscli/examples/ses/send-email.rst,sha256=YzHPMUZiqvJkcAKxn5fjvLBruEpVGqHd3_SzA41Obos,2286 +awscli/examples/ses/send-raw-email.rst,sha256=USYwh-mt6PlV5m22q6ieoQyv-SbGDa2j_T5tXazLk9c,2068 +awscli/examples/ses/set-identity-dkim-enabled.rst,sha256=PMZy24s8BZwnLfcM0_-DCCRHDmrHARWGgK8DSHcGtl8,498 +awscli/examples/ses/set-identity-feedback-forwarding-enabled.rst,sha256=MRJv8iscHYX7huig4oSB2iucmkbPcuvWMM8IpEjAOLg,890 +awscli/examples/ses/set-identity-notification-topic.rst,sha256=Rse8G9yYWkr9udL80zg_SbNgV69c3RqB1VcU3fPYt_Y,728 +awscli/examples/ses/verify-domain-dkim.rst,sha256=taDHsxLIJA9s29rsWgz1wu08pxULBh_NVwsHk04kA74,820 +awscli/examples/ses/verify-domain-identity.rst,sha256=I13uhuinjk0-s0c9080EceJcwgxFkbWB2o8mRs6dst0,630 +awscli/examples/ses/verify-email-identity.rst,sha256=u7Q7NdT7i8afYZvIBDZ1aSzpJmU93ocykleY0wzh56g,970 +awscli/examples/shield/associate-drt-log-bucket.rst,sha256=XdOXlsmHHTpVaqLvIX85dr89_SRn0PSRiZoC_L7pya4,563 +awscli/examples/shield/associate-drt-role.rst,sha256=zX4Lpl-UOUMA77QmrZO8EeMj7lGroApRkYmJhKTJtSM,578 +awscli/examples/shield/create-protection.rst,sha256=XdbV6z8pWfmRqGNnF7aJmaWRqYJpfW1C0aRxVmLl5UU,674 +awscli/examples/shield/create-subscription.rst,sha256=UNgbwzjw59qQMomLd57oUenAcBToeHKXlS5xHEcCB_g,449 +awscli/examples/shield/delete-protection.rst,sha256=jeadWnxvOYhWoESu2ZlGzXk4iuA6HLtY81MYjqvHNek,523 +awscli/examples/shield/describe-attack.rst,sha256=Wf5UjCnHzZ95hGG9cVKg3t2E9jWGUoRFr5xTHftwbdQ,8982 +awscli/examples/shield/describe-drt-access.rst,sha256=A34rr263GlR_E0HwEbWxP2n0YKMBozpay7ZDb7_-8Vg,688 +awscli/examples/shield/describe-emergency-contact-settings.rst,sha256=DGGPmPLSxHDz3RVcQSrZjwU0gDo4x-NkXb1rqX80wRc,795 +awscli/examples/shield/describe-protection.rst,sha256=uRlwi6ZCWf2JRnyPW1gIj5V2kPO2z-SYK70v529SDJg,831 +awscli/examples/shield/describe-subscription.rst,sha256=igPM-0G4hQxqFVNYDcZD-gUmcMExOo_pAabrbnH30WM,1318 +awscli/examples/shield/disassociate-drt-log-bucket.rst,sha256=pOcMQ448FaHDkPe2bADkKbp-wpV41xCVtKHa-Z3UHWs,629 +awscli/examples/shield/disassociate-drt-role.rst,sha256=HZr9LPDZwErjrjoJt4QdmNtyT59bAgMaWiHFsiUYpyM,532 +awscli/examples/shield/get-subscription-state.rst,sha256=IWnhN03GDOqUi-sO1IEWiC7C98uTt0xbFAK2teSsan8,494 +awscli/examples/shield/list-attacks.rst,sha256=ZY0zPbmt1mkR4hgPMzVlseWNnaZ9eqZKpT9-Fv-Z8vk,1219 +awscli/examples/shield/list-protections.rst,sha256=Cv-t8BqZLIppUGo_WtDqV15cxxc9mpdww72PmgZOCJo,744 +awscli/examples/shield/update-emergency-contact-settings.rst,sha256=fN3YS3CgSnu4E5NS3QfX-a4Jwi0FTFlnTyIE0tklZ6M,622 +awscli/examples/shield/update-subscription.rst,sha256=0sV7tcLIBWAS0gQ9XPtRmjhrVui6FqCQniQShB5KjC0,480 +awscli/examples/signer/cancel-signing-profile.rst,sha256=IOkg7AE02_PA8ujyWWIiREhLVtBPnw4KL3_O-cIGKhA,247 +awscli/examples/signer/describe-signing-job.rst,sha256=VtrurnfvRCSGjso01T_RfSauZo9Y5RBC-z-2_kOZEIo,1170 +awscli/examples/signer/get-signing-platform.rst,sha256=uqmvAmwQrDHpsgscaartagRxJVCBjMsLJITNrNFd79U,1073 +awscli/examples/signer/get-signing-profile.rst,sha256=2PFskWAG1QCcGy4irGUoy3eAAj-g5fp4dfzOBLtaY8c,520 +awscli/examples/signer/list-signing-jobs.rst,sha256=CDI20jDdi-FKURItyoEnI82q7vJ0KZS3ThrBad-2rj4,1769 +awscli/examples/signer/list-signing-platforms.rst,sha256=gHIOrgl-BHLJEx8DtNXRz0g9250cRcDGaHooP04sN7s,3381 +awscli/examples/signer/list-signing-profiles.rst,sha256=0E-dqvWd6AMzZYU7zRWgQqEARhBPNZiEUeXgXNaZMv8,948 +awscli/examples/signer/put-signing-profile.rst,sha256=VW9tDAQcHS_na1hodcxWanX4I40JJPA_bSumYEaysxs,513 +awscli/examples/signer/start-signing-job.rst,sha256=p_zjmxbNyNvUjVFG2inNdSX07MgyDxKc0gmyBS4qoIY,611 +awscli/examples/snowball/get-snowball-usage.rst,sha256=e1gdH3P02nqsi0sPw7Pyq5CoXMvngrNiT05RHfsRxpc,537 +awscli/examples/snowball/list-jobs.rst,sha256=JXVKr5VBkaFYIPdnSbljEnOvSfUuKx25GPgvexJQpmc,814 +awscli/examples/sns/add-permission.rst,sha256=JB9D0njUqymboe7EVVHCpj1Kh34-gFIJblTpDtuYxpY,460 +awscli/examples/sns/check-if-phone-number-is-opted-out.rst,sha256=hrzUQ3yrGAswHxyHbb-ansKsFJHvTo90wIgkZcTxhDs,374 +awscli/examples/sns/confirm-subscription.rst,sha256=KHLC-30-3NH3bJVLAnshNfcTyoGXRcwsL0TNNkDF9Z8,781 +awscli/examples/sns/create-platform-application.rst,sha256=imQRmM2Cf7XVxZlFuAyNvQQ2fuOVqfTlfnKYOG-RaS0,478 +awscli/examples/sns/create-platform-endpoint.rst,sha256=EBiHM32YB4nwot0_R0FOaCHcaSqHT4Y3x096U0-9Dwg,500 +awscli/examples/sns/create-topic.rst,sha256=1cqUaH9m6z2Iql6IoWmF7kBhukiplwKD5BZIEIPZ_-Q,583 +awscli/examples/sns/delete-endpoint.rst,sha256=FhI-846mZS7n9CmRbsmEJ4tqGdwwuiusTGlTFD3AcOY,332 +awscli/examples/sns/delete-platform-application.rst,sha256=N6KaXX6BDrwRinVDN_evs6ZHKX86feCbNZnSuWC3xXs,308 +awscli/examples/sns/delete-topic.rst,sha256=p885Yc2zCqvrIxB7Lt61fWtFKpTkTu84L5Tk95rOJRc,231 +awscli/examples/sns/get-endpoint-attributes.rst,sha256=GkHZwjVw31Y2rWEULSGQCLYPFPBIPk4cVTFcWIBl3Oc,465 +awscli/examples/sns/get-platform-application-attributes.rst,sha256=8jeZBetfCBbD0NomNdVrZzj0FpwbjkXx1wrkHcgjcwo,454 +awscli/examples/sns/get-sms-attributes.rst,sha256=AmKQeGZXQWsJbCFxozyPqzu6-8ITdghlJMoO7vxqtps,280 +awscli/examples/sns/get-subscription-attributes.rst,sha256=nSRAyDF2eJYRcS2vYXG3RkbQG6-qH5WoMpnoT1Q4urs,858 +awscli/examples/sns/get-topic-attributes.rst,sha256=AsvMHKotQ4w4Xk2X1cI25vJsiVVcrel5Ss2V1rz7vsA,1388 +awscli/examples/sns/list-endpoints-by-platform-application.rst,sha256=FyJ-3g0VSJS5YXxV4LGvtybqN0V7f8ea47gfjm19YCk,704 +awscli/examples/sns/list-phone-numbers-opted-out.rst,sha256=-AXGvUq1aHkRTJuFP-D8zpteWXCL5hRQNGZbNEddKZ8,281 +awscli/examples/sns/list-platform-applications.rst,sha256=j6hphUSrfhXvh36ABYiwS1oONpnalv6STclnEI871vg,803 +awscli/examples/sns/list-subscriptions-by-topic.rst,sha256=lf88DtXkfiqd4sYjLIDKmNeeVp-t70oA-J0y-gNsKt8,699 +awscli/examples/sns/list-subscriptions.rst,sha256=aZQNJGWBEoRpPsK7T0FpufQIu7-MoTuNgh1sPlZ4qwQ,589 +awscli/examples/sns/list-tags-for-resource.rst,sha256=xEnyUsEpvlofiadJjD1QPaEdNF1P9YFQDgEaTkahV-c,380 +awscli/examples/sns/list-topics.rst,sha256=eeQ8Fk_7l491APm1b75FUZSESsYEIN3irvfnFltsxeM,293 +awscli/examples/sns/opt-in-phone-number.rst,sha256=cWwPD4iQwNzMd1z1hbm4B4xD2yH3s3cXOX3Bdxwmxyo,253 +awscli/examples/sns/publish.rst,sha256=zZYoqTKlNPoIPKN35jWhCAreeOWrOyufz05x2sQ4iQM,856 +awscli/examples/sns/put-data-protection-policy.rst,sha256=gjeCvPdkIDuzsjwe2mPPdjHyiQDrGBDq-PH65HqIVEA,1061 +awscli/examples/sns/remove-permission.rst,sha256=8_bImXr2FxPMkA-FhNu-lACSsTyJ99HqleuFGAnOnYw,327 +awscli/examples/sns/set-endpoint-attributes.rst,sha256=Lp7h_Jz0WkCHeRofJyBkFy6VJpmj-5uTH4x05LFVWWE,465 +awscli/examples/sns/set-platform-application-attributes.rst,sha256=HgAi-UCcdbcRkH-PbdX_TfLIfpWh4OVfT2HJPK9mF2M,507 +awscli/examples/sns/set-sms-attributes.rst,sha256=FL_2HMHRCqFkgG_teCjN9H2ioDr404u3M_x6lKfKKnk,254 +awscli/examples/sns/set-subscription-attributes.rst,sha256=XOKD2bEEkvdBJebCLoNkx3vrUWctM7sozrnHiYKboS4,1228 +awscli/examples/sns/set-topic-attributes.rst,sha256=5-m7NE0uuYWoDz9JZURaNXAhXYCc5og1RmFqEfJON-4,366 +awscli/examples/sns/subscribe.rst,sha256=pkVbEHxTr5_X9_9OdTnYySNmskxwSddrQOJYXQUVE0I,364 +awscli/examples/sns/tag-resource.rst,sha256=FHo9mCA1zOIhkbzShZnn5k2vCAWQm9m9dkdMME9rHDA,292 +awscli/examples/sns/unsubscribe.rst,sha256=TPcreeYEo1lWZBROhgryA2tPp7Rca01YxHMGOURl2io,293 +awscli/examples/sns/untag-resource.rst,sha256=sF_IwxtVxJ8XDyUrvhF9w-CJnI2RPaOm2sRmTDuQrPI,312 +awscli/examples/sqs/add-permission.rst,sha256=lSAe9DNsW_dPH-OLVz0TGsUKo_DkEKLYUxs8iEEBjZU,333 +awscli/examples/sqs/cancel-message-move-task.rst,sha256=cNxfQLQxx981gkdKSdRCSEVSAyWZ-tV0cB2cP4q8nk8,523 +awscli/examples/sqs/change-message-visibility-batch.rst,sha256=33WIbGb9Je3Sb43Y33bev47JM1iwwX6EBkBIY8NeQYA,793 +awscli/examples/sqs/change-message-visibility.rst,sha256=fqWiiw84w0Z92b9diSdg1Vz9KgkyHd_xQMXKe4VVYks,359 +awscli/examples/sqs/create-queue.rst,sha256=IuwjIWvQDdzU2CMJhJDqn5xNYb4j9PrqIv2Ewd_mvBI,679 +awscli/examples/sqs/delete-message-batch.rst,sha256=dkMySBioJSOeqhFlcPg5EA62KDHRFhQnh3I31ZvEC4g,594 +awscli/examples/sqs/delete-message.rst,sha256=0HzqgrtRMqXSFboL1xL4VUGYIWygj4Nr4lSgOL60s3k,230 +awscli/examples/sqs/delete-queue.rst,sha256=ZDO21GoXJfA1_Xr-nKKLz6VCckLccarHqph8LVnPAHc,192 +awscli/examples/sqs/get-queue-attributes.rst,sha256=9RNmNzBJNPXcOxg_KQKUTltg1VfoucoxhqyKcYpozVw,1270 +awscli/examples/sqs/get-queue-url.rst,sha256=ku6VHgDyEy8aZJpC8ZjBIBkPh0BghqKYZC-xqL7QuR0,211 +awscli/examples/sqs/list-dead-letter-source-queues.rst,sha256=pBo1vD_bpCrwp3rxGSHh1hfJ4GplfbPh3uLzSa1QuFI,429 +awscli/examples/sqs/list-message-move-tasks.rst,sha256=avtL_FwgZc265Nqv5cwp-5gOTIMx7X8o7YHUOLiWjL0,1495 +awscli/examples/sqs/list-queue-tags.rst,sha256=XHJbipDmm_ul7ZMiBwKCig4vjNjfjv-1kCYsDerKuJM,571 +awscli/examples/sqs/list-queues.rst,sha256=lCE9rQHVS_nrKb5QPMc1ePPnKuhw-WAqfEs91IFcguA,789 +awscli/examples/sqs/purge-queue.rst,sha256=0n2DRzFURTx-oDi1jcCDNrak7jXbmYy2TiKHubxeo8U,204 +awscli/examples/sqs/receive-message.rst,sha256=I5c0OYXJfvsNIF8XocrGP4NmtdRZJqaBrSNFHYeJ-IQ,2011 +awscli/examples/sqs/remove-permission.rst,sha256=uN8mt-Ahyn5e0YooQqbs2aMvrvmyrQVIQAchmDmoBBY,274 +awscli/examples/sqs/send-message-batch.rst,sha256=WflsRRO41geubfHgd566DGLzZpyzMuXuWxmdECHoaoU,2185 +awscli/examples/sqs/send-message.rst,sha256=qRAKGIxpxm16gJ6LFT-9Z8WS5CZdf8grtHUAS_b65-w,859 +awscli/examples/sqs/set-queue-attributes.rst,sha256=sexJwigM0oY7prulLkmFAaYrJUTMHGoz9u5zkE5CNkk,989 +awscli/examples/sqs/start-message-move-task.rst,sha256=7MQa7RS9gxhR4ce00XYsYLph4ZgYdzfsSu3ci57sPtc,1323 +awscli/examples/sqs/tag-queue.rst,sha256=h5ScBN1r0X6nM4LB4aRpo3xRrD6k4TpAZTLpGfbBPGY,525 +awscli/examples/sqs/untag-queue.rst,sha256=ZSNBURgWxpK2W3Jsx9XtBzRc_0r7cqQd8a_g-c_pYHk,537 +awscli/examples/ssm-contacts/accept-page.rst,sha256=s8DEDreHjv3pP0eYCtbaKJF6h8zMj6porQbCevFaShU,559 +awscli/examples/ssm-contacts/activate-contact-channel.rst,sha256=hJnZyeiRh_TLH5kf4La_UcwF2Vc7tlKBn0dVFFld9_8,587 +awscli/examples/ssm-contacts/command-name.rst,sha256=Q6M0ZQ-nn-R3S9Tw8DGz6r23-NIJEIh1u0ksWGF2FMs,490 +awscli/examples/ssm-contacts/create-contact-channel.rst,sha256=Dw2uVFUVLsKrSAo8OKPix0JbSrJmMkUWRC_XfUPRXAg,740 +awscli/examples/ssm-contacts/create-contact.rst,sha256=-koMcRD9Cwg_dwvcMyTrRdvRcgZSPEUTwiLhxSGPLWU,792 +awscli/examples/ssm-contacts/deactivate-contact-channel.rst,sha256=19A-zTEM9xemUZLbMbThi1KEnPc1akVFTZMMsqngbgA,710 +awscli/examples/ssm-contacts/delete-contact-channel.rst,sha256=oPfUPTKl_g26Ivp8P74YBAmzW-LRfuBiqg3pUkmLZfs,584 +awscli/examples/ssm-contacts/delete-contact.rst,sha256=f6wD0mo-IhEyu1UJYuL7MvfqRf-rWUiUeohnXHoF6Oc,492 +awscli/examples/ssm-contacts/describe-engagement.rst,sha256=OPps4tBfmrnwg_jr01ih0l1fY-leXTx4dvw-8ZJtxFM,1089 +awscli/examples/ssm-contacts/describe-page.rst,sha256=YmlWG-qUvRA9cQ09ggIOh90GZ_tIL9-SLxyopjYkcYg,1244 +awscli/examples/ssm-contacts/get-contact-channel.rst,sha256=HKIPsXuknCRiWTb1yh-3iB10BKo0bEyCvUoZGvFSsP0,905 +awscli/examples/ssm-contacts/get-contact-policy.rst,sha256=9NcjcyFGmaMzmc0Dci6m4D8qpYA1eR-edeRqmckXNCs,1085 +awscli/examples/ssm-contacts/get-contact.rst,sha256=anzMQq0SL6BclEPyf86dHREcQ66iNiPFtxNuMpRQh4o,4032 +awscli/examples/ssm-contacts/list-contact-channels.rst,sha256=StAa0uxbDmikdUdvaDope9JjQPTZ_zHKFGC_Qiu5CeI,1362 +awscli/examples/ssm-contacts/list-contacts.rst,sha256=YWjW2iiv6eyD-0hSirxxTazMn6NSm_AtTGwWxDuOuAo,1416 +awscli/examples/ssm-contacts/list-engagements.rst,sha256=fNZZRvAvmKFy5mzFDuZXy8NfQgbtKpTxXs4d842aaqk,1899 +awscli/examples/ssm-contacts/list-page-receipts.rst,sha256=2hgz636eqL3vTqrHxgXpUKUfdNMOm04GKJcio1Jpx_Q,1507 +awscli/examples/ssm-contacts/list-pages-by-contact.rst,sha256=taXQRmJ6QDCUwr61U12TIdTA9lgcbEr_qBr2o4EkIhQ,1083 +awscli/examples/ssm-contacts/list-pages-by-engagement.rst,sha256=TANlTqK1EIgbQ6qfgpYe5JV2RUdPwyGLvJtU00UodJQ,1067 +awscli/examples/ssm-contacts/list-tags-for-resource.rst,sha256=gVSh3T9rrgTuoapdrop99hvCAxNv7IDmWG2knbo0Qes,567 +awscli/examples/ssm-contacts/put-contact-policy.rst,sha256=tPW56DeeG46CizHY1UQ-x3gSFS0hBv_wjUpqzazzhPw,1037 +awscli/examples/ssm-contacts/send-activation-code.rst,sha256=uIaaB3tNMwpLdAxaYM17EmHWHGUrGVAfnF_M3jrYswU,530 +awscli/examples/ssm-contacts/start-engagement.rst,sha256=eUGZ2BzxUbUV1SNQZmaaMcxBydl9H6vcEKbLkjDeJqU,1977 +awscli/examples/ssm-contacts/stop-engagement.rst,sha256=CmjvFzVeWODjMCur0M2AT-cJ70CEijyTLcQ8PSlDlJc,518 +awscli/examples/ssm-contacts/tag-resource.rst,sha256=xn7Bh1DkarOYYP9oyTac_DW-Mvy6UrH5ArGdH1Bj_oo,494 +awscli/examples/ssm-contacts/untag-resource.rst,sha256=91-WV7eMpdtK_gsBRA5QZ1fAFJDt9O_Lzk-n6RW99KE,479 +awscli/examples/ssm-contacts/update-contact-channel.rst,sha256=4QJtrBzVdSIxCl99McncgURndr9GIJ6FbjtRZXXxzh4,630 +awscli/examples/ssm-contacts/update-contact.rst,sha256=qpJ8vE1PRzbq-h8TnhQXmpfNZsxCOnJZPraxFfh2S6E,1249 +awscli/examples/ssm-incidents/create-replication-set.rst,sha256=wsC0R3XzL3DHct62-Ii9uic9S4oFYvCiZ5GiN-sNljk,958 +awscli/examples/ssm-incidents/create-response-plan.rst,sha256=PjcDG7_FyjiGPId5NuJs4WdoMdkkO7B9EhTpTsaMKJo,1134 +awscli/examples/ssm-incidents/create-timeline-event.rst,sha256=YcZAOGVeKCoygLOiezSbVoa3yw0mtWQNY7Ykaw2uvQI,1786 +awscli/examples/ssm-incidents/delete-incident-record.rst,sha256=kdjWW6_rWIL0wX4F_GTY-UGk8Ck_2J7CJnQdoG_1Tkw,507 +awscli/examples/ssm-incidents/delete-replication-set.rst,sha256=BZ24Huqmg00IjqDUY8x9WaarF_j9fwp4ONbyASPu8X4,633 +awscli/examples/ssm-incidents/delete-resource-policy.rst,sha256=hwa9DU39RCDqH0H5TUIV1yRykrIaXNMRUNGuYAK7o8I,671 +awscli/examples/ssm-incidents/delete-response-plan.rst,sha256=Wcr8F61Ch-JhEWDDuPi50rN2MTUUPxvWYhLHUZJCAiQ,466 +awscli/examples/ssm-incidents/delete-timeline-event.rst,sha256=vK50JOjEoeHUCEC7AD60SuOSjoOE3moAKAxWp10uF5k,616 +awscli/examples/ssm-incidents/get-incident-record.rst,sha256=rDva10Sz8IHZfVfcOTMylNWcgPwW5VyxRSf9BsEiimU,1393 +awscli/examples/ssm-incidents/get-replication-set.rst,sha256=Cym8RoGlFljK-nsuEE_YlDDD9j_vGVq4brQ9JXBjLRY,1393 +awscli/examples/ssm-incidents/get-resource-policies.rst,sha256=YQx6cXGxBQeqEyHEpTNMq4PzSJaWywIGA_3HRL5bOG8,1507 +awscli/examples/ssm-incidents/get-response-plan.rst,sha256=-dIVw0hH20KWAf_KVjO5jJ1gew_7sjfmkdNKuLgnAa0,1511 +awscli/examples/ssm-incidents/get-timeline-event.rst,sha256=4T8kfrio1mS6vdcXsJVYd0p5DjmMVtmHpcB722uY0mU,1047 +awscli/examples/ssm-incidents/list-incident-records.rst,sha256=o04m3yO0UOHvamoC57Ib8YDAanh6ppKozqhQokNUl3Y,1051 +awscli/examples/ssm-incidents/list-related-items.rst,sha256=S1x6FnxVQwcriDQ0xLosdMdWcOrMCRAyvJE_TqZ3El4,1225 +awscli/examples/ssm-incidents/list-replication-sets.rst,sha256=ZoDwzjgIKSEg318HF5dHd8dVT7ZdobYVUOmE1pE6juI,602 +awscli/examples/ssm-incidents/list-response-plans.rst,sha256=nL-h0ErfPDge08Nw_V5D_h5xt199P1HF_7k5_XlUg_g,698 +awscli/examples/ssm-incidents/list-tags-for-resource.rst,sha256=FupPwX0veUJS3Ewf2_Tq-Qd3C5R7LBNJsIUiJUpPKLs,537 +awscli/examples/ssm-incidents/list-timeline-events.rst,sha256=UUPplbBC-m12lbu6cOdKwyJ4jHtsMYN5G-eyTGTvXQo,3243 +awscli/examples/ssm-incidents/put-resource-policy.rst,sha256=xqSJvYE5FSnNO1YN4QJEpYewCtJxLGFKu4aEHbkb0BY,1379 +awscli/examples/ssm-incidents/start-incident.rst,sha256=1zzEg51HdhxwYxTIku_hyK85yvbQ_2DrEOQHGPiKAik,617 +awscli/examples/ssm-incidents/tag-resource.rst,sha256=Yais0osODYWLrUh4YUcMmVdNmj7c6QXNXdiVSFCaRS8,505 +awscli/examples/ssm-incidents/untag-resource.rst,sha256=tj4RH28803NdVN0CIeWT6imtU4ipTQqajHXKOazP_0A,504 +awscli/examples/ssm-incidents/update-deletion-protection.rst,sha256=znvD6hF7BmAdEqUIMed_0VWu7r3RvY8GBh7Vj_eJ8l0,649 +awscli/examples/ssm-incidents/update-incident-record.rst,sha256=iYsm8uWcqM1BjpuSABj84UBfUd_p-hOc9KAyjnk12YA,529 +awscli/examples/ssm-incidents/update-related-items.rst,sha256=c1yklyeXLjWTugbOlQaux47UKihpe1MBoRhznGALTxU,744 +awscli/examples/ssm-incidents/update-replication-set.rst,sha256=61WmZzHYrnolM-6StCY6MzMhqHJPrd2Mk72M9nEu7fc,595 +awscli/examples/ssm-incidents/update-response-plan.rst,sha256=qCJ94wdrX0-oLgklW2E4Q5hcQ3UWbVRDperjrJeuDgo,532 +awscli/examples/ssm-incidents/update-timeline-event.rst,sha256=-TmCetlywYfoaaKdRZVbdHp2QO1SKGv6Y1yh7N9Dx6w,640 +awscli/examples/ssm/add-tags-to-resource.rst,sha256=jylNOuodfdmndh5DlN4-sNVksPSMZWc83OU4FUa2FpE,1288 +awscli/examples/ssm/associate-ops-item-related-item.rst,sha256=hqLwT_2kVGQ1i_abMPcFecLolSd4_91PjWC6T07xLEM,790 +awscli/examples/ssm/cancel-command.rst,sha256=Ia7ECun5rdFFq4c0QE7NC4SdnQUuh3SEHKOh_9tjwyQ,861 +awscli/examples/ssm/cancel-maintenance-window-execution.rst,sha256=ULVlfHPyaf_AFHZ3ehnIuO2jR_1aggdXNAyLxr6R4dE,633 +awscli/examples/ssm/create-activation.rst,sha256=rrbaby1EFNrKvvn6WHSp6aZPv2YGwHguk8CdeI6ANb4,673 +awscli/examples/ssm/create-association-batch.rst,sha256=RymW7U4LvO2VnfBUNEdX6GOcPqAUSluxn1V5WGPaHgs,2176 +awscli/examples/ssm/create-association.rst,sha256=mHJx3QIonVNBc6qq6WzB-FjiZZx72JXCx7DElzBGYbo,4471 +awscli/examples/ssm/create-document.rst,sha256=ESL-TWGvkD0cdidW53fvzTr1MzLcWOBsTe1WKpSiQKw,1876 +awscli/examples/ssm/create-maintenance-window.rst,sha256=1qBQSWD1HtfHOcwd2Kfq3H0GkNN_l1CgxzGbAziLb3k,1566 +awscli/examples/ssm/create-ops-item.rst,sha256=6Qm_asLBV9ou4vPTXwPZCzwgMj-vGO3YSNtjZyZaF8w,883 +awscli/examples/ssm/create-patch-baseline.rst,sha256=lavZciYVFXHvCZMdAE9mqbyrTV-0rL3biUnCxUPmQLs,5269 +awscli/examples/ssm/create-resource-data-sync.rst,sha256=lgwrI971lkqt0WtPMjt59JfOU1dz7f0IL9p7_-8zwiU,304 +awscli/examples/ssm/delete-activation.rst,sha256=9QYFCyL4ljkFzE1IC-QnU6BKAp8HXZ7gdamBFcZbEpE,491 +awscli/examples/ssm/delete-association.rst,sha256=zMtfnse8giuepOc71XVBz6hBn45I_3Z78aNZJ1bK30U,1143 +awscli/examples/ssm/delete-document.rst,sha256=IRfVIv0H73g4Nls4L8OVsN07QPbGHO4Y4BWHRp92iaM,387 +awscli/examples/ssm/delete-inventory.rst,sha256=Jcy7kky62f-miC0MX8V7zyWBpDc17NOq3worLbsd50g,982 +awscli/examples/ssm/delete-maintenance-window.rst,sha256=TVdJl6_2oBbBv062eJ1ELVJQeTHd1AINBVTU-tjv9ms,493 +awscli/examples/ssm/delete-parameter.rst,sha256=PIxDfSVg3W_wIWUF6hgPLnobU1LmhxHm7WfhgviVDEI,416 +awscli/examples/ssm/delete-parameters.rst,sha256=V3w9f4m16PsNVwwm8c49KJ79E0Dr38nyrrvRmc6QL1o,655 +awscli/examples/ssm/delete-patch-baseline.rst,sha256=jI_UytRkDTFvGMsuCTu_wW4e_kpQJ_ucCkq-R5ZCQ2c,501 +awscli/examples/ssm/delete-resource-data-sync.rst,sha256=_evf5S4D72r5KaxlrRVhg6zNh4iqRHZm6Q2n_unbe0U,208 +awscli/examples/ssm/deregister-managed-instance.rst,sha256=f3RDfInIIZwqlFDBx2v-Di-iXksZhbhONxedoO45_M8,516 +awscli/examples/ssm/deregister-patch-baseline-for-patch-group.rst,sha256=wCsoDnI59ZG2j13jekM2Ixnho6HI7Q1TURII_E4ZMTE,662 +awscli/examples/ssm/deregister-target-from-maintenance-window.rst,sha256=hlakJmAitCaiGVtwGCt-YzXe5zdrqFYoC4ghZyLeF8A,720 +awscli/examples/ssm/deregister-task-from-maintenance-window.rst,sha256=yAaRgyFh_4rPx6X1_7PUb6inpuJ91elNIvd3MzVAl0M,715 +awscli/examples/ssm/describe-activations.rst,sha256=xQuIKNhA5YPZAsk3G8YaNT7B6Z7Jf4otlXzZzQII69M,1289 +awscli/examples/ssm/describe-association-execution-targets.rst,sha256=noFcqv79l7MfhzRkxxcEzblI59lxJTD9stvb9hE7mV4,1281 +awscli/examples/ssm/describe-association-executions.rst,sha256=Jr-uo03FTxEOiDioEF90_iM9zIOTU_7Wfl11u7FycVs,2958 +awscli/examples/ssm/describe-association.rst,sha256=YPruqQ_1EGv6neQCS6S84DwI-XN5JB_vjFsqLSPW1Gg,3945 +awscli/examples/ssm/describe-automation-executions.rst,sha256=PlPTvTxZKIdeoZ4ZB6AYJcqlQn2USqaVPsDJfE6Tclo,1340 +awscli/examples/ssm/describe-automation-step-executions.rst,sha256=RgSy79pmQb0ybTb6O3YdeLTdwxy6qu3ErSUO8jm17EU,1770 +awscli/examples/ssm/describe-available-patches.rst,sha256=_rL3_kO9DUNJKEpQGwawMDf8Sn_Mxoy42LZ8P_AlWeQ,4088 +awscli/examples/ssm/describe-document-permission.rst,sha256=NLKJADD6ITY-jIkwXJWcf6ykLL2ttX2G7jAi2SURuMo,719 +awscli/examples/ssm/describe-document.rst,sha256=27kcsPLIHed3rovYT5d9Q9_YDaAfkS9CQX5PjcA613g,1795 +awscli/examples/ssm/describe-effective-instance-associations.rst,sha256=Tg3wW_PWEv5H8udbklRltnWmJPvNJ9WLnSUB6W0_gT8,1935 +awscli/examples/ssm/describe-effective-patches-for-patch-baseline.rst,sha256=ErfkAeiamG0q_TtljsmZaLJPIpt-HCDX9l3XkXbo54Y,3974 +awscli/examples/ssm/describe-instance-associations-status.rst,sha256=jDse1N7K4FSb71F4iDZO7U5Uo2YRd3PagIHpZX6aMX0,1210 +awscli/examples/ssm/describe-instance-information.rst,sha256=tBf_agmBAY2p_AlyZQGsBbQX5VsJV_Jrnwjv69bNs7E,2081 +awscli/examples/ssm/describe-instance-patch-states-for-patch-group.rst,sha256=eHb0S1Jvm9mb3r3AcnH-Znpq2UKlVld4qDUg4erchwI,5830 +awscli/examples/ssm/describe-instance-patch-states.rst,sha256=tK4pxoPLh7vXYtcRwGESYN7aCXK-R3w-6pzDJanT0Us,1575 +awscli/examples/ssm/describe-instance-patches.rst,sha256=r9N-SD5M-hwBcIQrtx6VQEm8kZrfU766HYOdFFVRQPY,3169 +awscli/examples/ssm/describe-inventory-deletions.rst,sha256=ZY1S7UR3oBIgaYnI4gtq5AaPy0p4Ps_U9pq_TFz4sOU,2302 +awscli/examples/ssm/describe-maintenance-window-execution-task-invocations.rst,sha256=qUxccbmZFkzLN17fG5dZx3yiyeCOwQwxgeMXRgmLbvs,1396 +awscli/examples/ssm/describe-maintenance-window-execution-tasks.rst,sha256=ARkYoJSdGKV5xqERHSQcB0pMI6Vih9N2wqvUO-r_n60,1072 +awscli/examples/ssm/describe-maintenance-window-executions.rst,sha256=tqI495kvGF0TISNH8lb8xXoBJhedNnP4wyr4Y6fy4VE,3270 +awscli/examples/ssm/describe-maintenance-window-schedule.rst,sha256=MRsgh9AB-0rJye1TEtQg8YSLbO7Ku1-7UBYsVZGsmBI,1909 +awscli/examples/ssm/describe-maintenance-window-targets.rst,sha256=Z129P1su_hihVPGmwZ2sQZ63c5S06LU1hxFxBh0QTZc,2670 +awscli/examples/ssm/describe-maintenance-window-tasks.rst,sha256=hH8KmxHB8bujTriLlmrH30XpUw-QQNXGuGr967hOwSw,7468 +awscli/examples/ssm/describe-maintenance-windows-for-target.rst,sha256=PjR90_5skAf_n2pGu7J2gbT4I8sg5Af3kzWg0tRuOPY,844 +awscli/examples/ssm/describe-maintenance-windows.rst,sha256=eAP4bSpwwdL8v2Fc5-nc5TlGIBeihmg_EJ7dA7VQd5s,1753 +awscli/examples/ssm/describe-ops-items.rst,sha256=MrvTagi1OWV1mjqWVd4cNzPTQZTKdY3kX1l1xVTukTc,3137 +awscli/examples/ssm/describe-parameters.rst,sha256=BWXXdvMMmSZx-lSqKd337J3H4I6DzMHr18QUq01gRw4,3503 +awscli/examples/ssm/describe-patch-baselines.rst,sha256=zKSZYHSW3u1GDKFKeWauJ_QNSqV3pNFLXDcK1MalfSM,2126 +awscli/examples/ssm/describe-patch-group-state.rst,sha256=8SRak_p1nH-FSPXlyXKROvdMetxch6aWAtQqqYm2gcE,1199 +awscli/examples/ssm/describe-patch-groups.rst,sha256=_0FY6IfnvJkXORRDQML1276Lr6H07wRW3xwX6cuka48,1410 +awscli/examples/ssm/describe-patch-properties.rst,sha256=EyV1odLdUvknRyqr3HIbEhKbUSFOKFznebYgN_vjHgg,1569 +awscli/examples/ssm/describe-sessions.rst,sha256=ZnpSdyJS8r_F06aaXNHYZ-oWP-r1rCHRsTmPcOG-V7k,2731 +awscli/examples/ssm/disassociate-ops-item-related-item.rst,sha256=8Bb3u0CndL5VlUKupQAwjB1EPkui4r-kZDjbrPD-aLo,599 +awscli/examples/ssm/get-automation-execution.rst,sha256=sGIYHbAA9YbKyxoHlcOgOOjFh4hrpduSrB86-n4W1wg,2267 +awscli/examples/ssm/get-calendar-state.rst,sha256=sNKV9aFAXB_OPQfERgII-1WonQO64WNATtfE0CkAyis,1067 +awscli/examples/ssm/get-command-invocation.rst,sha256=2rk1akLSZhms6ZYtkYmZyRGxkEwoT_JBkkQniwSGteQ,1651 +awscli/examples/ssm/get-connection-status.rst,sha256=CsluSSoYmOnT9E-0ctmfRgaRKr89U3_DRriViOd6L3Y,348 +awscli/examples/ssm/get-default-patch-baseline.rst,sha256=nCKPV1_4L775Y8tIT-kT45LcWcnxwMREn2YeajJFMUA,1101 +awscli/examples/ssm/get-deployable-patch-snapshot-for-instance.rst,sha256=2gbuYJA8QrkLcaEOmQpM3Qb7BMltrmEXeH32DOwRqKg,1662 +awscli/examples/ssm/get-document.rst,sha256=5EhTM7wUB7YyRw2gMZ8iXrienTOF6i72nQdvOAoN4Ro,2028 +awscli/examples/ssm/get-inventory-schema.rst,sha256=4UftrR_Ie2iH69kQOXOb6ssPPfN9KytRoheX_buypiA,1442 +awscli/examples/ssm/get-inventory.rst,sha256=wTzr471PQztTJWIvnSa90F5xwnQmWxNhMHr8igBJzmo,1159 +awscli/examples/ssm/get-maintenance-window-execution-task-invocation.rst,sha256=R8dAIS8js_3_c0fZINu2Iu7xtt779wCiFwomxrp4Sfc,1528 +awscli/examples/ssm/get-maintenance-window-execution-task.rst,sha256=42d18EhAaC813hbujUYLWrvNMrOAyq-VCC0a8AmSLf8,2296 +awscli/examples/ssm/get-maintenance-window-execution.rst,sha256=vCSHwIE83r6T-_WfviBGwwFUeXytaEj9J1cYwtaiqN8,861 +awscli/examples/ssm/get-maintenance-window-task.rst,sha256=nZbj4A7slpGyokfi4RZWICuvpRx7E1wxzw4TIjbaHtw,1783 +awscli/examples/ssm/get-maintenance-window.rst,sha256=iSQDNyq6IYG_aVA76Z9XRs_TgNWXkaIAWkqiWQtKA5c,899 +awscli/examples/ssm/get-ops-item.rst,sha256=Medo2MosYw08IhXyhYWBAqv-s030e5rylLEC0mRibkE,2386 +awscli/examples/ssm/get-ops-summary.rst,sha256=JIdtWIdWsgUWbpAOhD6VCPSD2GX8i6kY8qyyYj7vY5k,4513 +awscli/examples/ssm/get-parameter-history.rst,sha256=miAOkLUWIAx7Z_m4Nndga2PcoJ_WLDTrRlsn6Jp5XlM,2007 +awscli/examples/ssm/get-parameter.rst,sha256=EzvuAugED8rTreoFnrP9IWHZoacv1XkR3mlURw04A18,3383 +awscli/examples/ssm/get-parameters-by-path.rst,sha256=jiueUvKrgJvBp5yFnw87XJuDoJtJK_0lOK5Is8VPqJw,1231 +awscli/examples/ssm/get-parameters.rst,sha256=f7pU2nhJZoXcuTCzF-vnq6PE96pSp_IsX6jxmt_-G2s,3521 +awscli/examples/ssm/get-patch-baseline-for-patch-group.rst,sha256=OS_2b30fZuceytWcUGtRf6_jXkf5MTQWKhxroQUv9Ok,755 +awscli/examples/ssm/get-patch-baseline.rst,sha256=hg707G4RubYL2jlwHyJ8lFXXGiPkrT3ua5KdT_w8b0g,1749 +awscli/examples/ssm/get-service-setting.rst,sha256=MXegrZOCd7yjo4_9jqIiZNF0db6pefoLFF-N4rZaGFs,980 +awscli/examples/ssm/label-parameter-version.rst,sha256=v5qny7_pQ1waUPNeAKTtVgYw7q8I2Pm0PJU10wpZouA,1139 +awscli/examples/ssm/list-association-versions.rst,sha256=RRtfHhKCLE7r6ZufBThH_IDmtqYxFzLoVMSIEZ4j2ac,1430 +awscli/examples/ssm/list-associations.rst,sha256=pQ0n8JAO7mktsKNLb_Qd51zgjVMKphqhpyNL9_Q8hKI,3624 +awscli/examples/ssm/list-command-invocations.rst,sha256=Zl3lSaexjoXjOGcJpJc-11dj0CcOpAMKV1CIrhvwvVo,5014 +awscli/examples/ssm/list-commands.rst,sha256=NNBct9Gg7s7JNZ0kAzPHZrNTFnLfs4fxpn1S9oi4t8s,6875 +awscli/examples/ssm/list-compliance-items.rst,sha256=Uq8vpcRBba0kbkPibnKBvuAs4spe9FmGAIlqNR9-LfE,2206 +awscli/examples/ssm/list-compliance-summaries.rst,sha256=e9ozyHHAdT_PA6sJhU0zTCS_q44pJqKx7osqOK1iNis,2224 +awscli/examples/ssm/list-document-metadata-history.rst,sha256=x9WOptfmiIAGtDsUS7m0YnufxIURsa9A_5c2_CCgMyo,1585 +awscli/examples/ssm/list-document-versions.rst,sha256=OKgxRoD0YLwfF-aurle2Uj7VybP_km8cK9-sEWZf_nw,748 +awscli/examples/ssm/list-documents.rst,sha256=b57S_TQ_i2fGzQyMs1U-7SseUkOlyZDHp0-UaC0mfOE,1996 +awscli/examples/ssm/list-inventory-entries.rst,sha256=GVRCWXoD6gmKgdrKv4z4xZ7b5gklHAwhvnnylPLRwbc,1574 +awscli/examples/ssm/list-ops-item-related-items.rst,sha256=m6z7Kmq8N3XvDd6gz1PxrQvocaSuO94GHbZeXsQ1LFI,1423 +awscli/examples/ssm/list-resource-compliance-summaries.rst,sha256=KyuOzKrNljPLjE2k34uIUDU-XiDUvCCuF120BboV2ZU,2870 +awscli/examples/ssm/list-resource-data-sync.rst,sha256=AMLM1ui9zeb-3vP1sOOU55gHjPrtGJNd_yxw-RUjsKI,802 +awscli/examples/ssm/list-tags-for-resource.rst,sha256=IyPTe4kCs1pjt2jNcHyU5ObW1mpKG6w7H_MeWCBl-ok,688 +awscli/examples/ssm/modify-document-permission.rst,sha256=uHMVaGNi-h41r3P_hZ2g7jEmhExQ_lrJbr6OgRDls_M,500 +awscli/examples/ssm/put-compliance-items.rst,sha256=s335geAAvUIfxoJ10TBfw4KM_c2FhIBHdYcgYvIB6uU,504 +awscli/examples/ssm/put-inventory.rst,sha256=rbop4UVIxUuRJS_7xmEYXGYOGtwp61bmPfbol4ddKnw,620 +awscli/examples/ssm/put-parameter.rst,sha256=ie9YRFUXqmWRD5VlF1W2F8rpsNTQDmrnelsAIFAS8jM,5361 +awscli/examples/ssm/register-default-patch-baseline.rst,sha256=gUne_KBhP-WMYVS4bqv5tulpZBX6ZIY9zZWfA-OWw6k,980 +awscli/examples/ssm/register-patch-baseline-for-patch-group.rst,sha256=pmHadgvtYeBvJD9RKI-pj6wA4bwn6NKITvJII4LGLU8,759 +awscli/examples/ssm/register-target-with-maintenance-window.rst,sha256=3aJPIgKHpq9GAJnjLXK1voF9mZE4gufvlNINR-tdxrI,3110 +awscli/examples/ssm/register-task-with-maintenance-window.rst,sha256=UbxqdayppvPhsfryo_vQjZqEjSKvvJpqnjItJtmjRJw,6173 +awscli/examples/ssm/remove-tags-from-resource.rst,sha256=HqsFEyF2GUXU5ib9-IkTMEoD51VpubGTxE1nBexZelE,488 +awscli/examples/ssm/reset-service-setting.rst,sha256=azNrLC_Tciq8L_uFbI8hQyl-RnsGAlczuxqf4280gEE,1003 +awscli/examples/ssm/resume-session.rst,sha256=XdaK5Zg6uZU3hLt1PJKiqlyq22kKV0umSQ82b7Vw3ck,1236 +awscli/examples/ssm/send-automation-signal.rst,sha256=QFCqoa1tJppXoV3JcI1FAC4pLPtyi8FbXjym99kj2kA,554 +awscli/examples/ssm/send-command.rst,sha256=Odgv5AFTZyF4FnzB3vjhfpcxExWP-nLW43H9FF3d2EA,6658 +awscli/examples/ssm/start-associations-once.rst,sha256=9GK-jvNQd3cAp1peFtt7zmsbFCYLz2YxfIVAzBkAlK0,553 +awscli/examples/ssm/start-automation-execution.rst,sha256=SdBAGLcCKS6OEaS0gBqd6wlwSYLNqUU5gm6I3ismbMQ,1239 +awscli/examples/ssm/start-change-request-execution.rst,sha256=hLjrEBOnCIYRyPI2V5l1zmtD8qlLHZZwvq6MCsH9VGs,3100 +awscli/examples/ssm/start-session.rst,sha256=hv1BortBbt44qjuVF4RaU1mnA2HEjuydSk4qMe-sRxg,1377 +awscli/examples/ssm/stop-automation-execution.rst,sha256=5kUECexFKbH4ngx2i6klwi96tQorUF6xOFIfpF25k3w,487 +awscli/examples/ssm/terminate-session.rst,sha256=O3cimaIURkY4zMXKoe-BEaqH8Y9yl3_4IL3dNik5eQM,639 +awscli/examples/ssm/unlabel-parameter-version.rst,sha256=Fghk-S1qD3l8dAC6BdpXPlX6kZ25TfDCmmc7bmcImR8,734 +awscli/examples/ssm/update-association-status.rst,sha256=1ntBmem8aAGr8rSV8mBlQRuqP3uySjHx0Xn3APyoAqk,1823 +awscli/examples/ssm/update-association.rst,sha256=ixYV3vyie3ZY3Zk48PHyVM0yhnZUV1MA5VFWW9qNnqU,2842 +awscli/examples/ssm/update-document-default-version.rst,sha256=vt37UmHL-aeNH2zEJQ8WeCJoYIBkh6_07iCBV7rDUDQ,605 +awscli/examples/ssm/update-document-metadata.rst,sha256=8cEnGvqyXp9KjcwpssUn3hkU0QuDleu3-ladIE0qTho,641 +awscli/examples/ssm/update-document.rst,sha256=SNgRrXOGEs-qY4sl8sokoD_pYXeuC4oqhTYsNFLouhE,1677 +awscli/examples/ssm/update-maintenance-window-target.rst,sha256=aIaBD66nyQ2wDlOoTCoYGG9pMqAR743McZmNwe8DfLc,1021 +awscli/examples/ssm/update-maintenance-window-task.rst,sha256=D7Yg6A9iTrFoXoa-nn1ebEF0Fg3Myu-EJ9msQbVWBJQ,1661 +awscli/examples/ssm/update-maintenance-window.rst,sha256=9VOFEjL1lnjc0s4xYP10zD77EtZNa8LAPoUF4gAIeQw,1263 +awscli/examples/ssm/update-managed-instance-role.rst,sha256=ynt0DiVXtJapyk4ZTxLeE0CbYBLCYOf885zwvoOTIhk,544 +awscli/examples/ssm/update-ops-item.rst,sha256=aggal28nfQPPEpcRWXAUzMx5q5V28jEx8dMHWxU6lwQ,806 +awscli/examples/ssm/update-patch-baseline.rst,sha256=b1_Yt5ar6igBVV0hOhVqj4m5rKg3zsSn44iKuKYTLEE,2265 +awscli/examples/ssm/update-resource-data-sync.rst,sha256=BccLPeCOOIoNMNHxYL8k1iymOWGmbitdbSrueuHaUlE,648 +awscli/examples/ssm/update-service-setting.rst,sha256=UCMYPYXdbeyskUINlBdkrenFEv2LIbH3qWkrQdXVY2U,661 +awscli/examples/storagegateway/describe-gateway-information.rst,sha256=_p-HPpWajykMEd0_6Ag_NX_N9egeGAQB8kMahfGURgk,657 +awscli/examples/storagegateway/list-file-shares.rst,sha256=ubsdItEgxP2MH1PfTMWQvK6FE_o_S4TySiK9G1bu9zM,908 +awscli/examples/storagegateway/list-gateways.rst,sha256=xXWs2D3zI7vG_cgpnZCV9ckZKazhJHH6kL-ASkBRsK8,260 +awscli/examples/storagegateway/list-volumes.rst,sha256=nE3LBkJMyhtb93TxZafsnYP0TaUsoNZ5bQTQ7UW8o10,577 +awscli/examples/storagegateway/refresh-cache.rst,sha256=8wgMg2cbQwIjpiZOL2f7zwRD17ISVK1y0gdXarayEPg,639 +awscli/examples/sts/assume-role-with-saml.rst,sha256=sO8xMP47YdDEVLYDyqGcQYcSEiNJ1luJ-Z4VENFx91g,2456 +awscli/examples/sts/assume-role-with-web-identity.rst,sha256=MV20zzm1eiiPsCT8I7fNpB2Achsnp8btQzr78c9au-8,2360 +awscli/examples/sts/assume-role.rst,sha256=vSCT5YlCtjaULoJtw-cwhxgA0JOydb4tWIJUGVfM1uE,1620 +awscli/examples/sts/assume-root.rst,sha256=Wjmf7cXWPt5sYbXpKnyfl9SGnSN2NmHYkNT3B_EP1KI,1506 +awscli/examples/sts/decode-authorization-message.rst,sha256=HTnYRJLE2OojgFJUe-3hSNlpNWAFwnIEx2Iug3cowcY,3590 +awscli/examples/sts/get-caller-identity.rst,sha256=lY39c8PWhICM6EUDvaH6D2Cb1dYRCo5yKNpYIuts67E,391 +awscli/examples/sts/get-federation-token.rst,sha256=XCvzBgz9T6tbvG9yCfI90nALPczxzWI65GmgVkx6uqM,2400 +awscli/examples/sts/get-session-token.rst,sha256=Gb4YonPjrLP6XYyjrlJsyNOI3RcdRA9s85xs6pUWTtY,1228 +awscli/examples/support/add-attachments-to-set.rst,sha256=8ciSI0EXfqj96OgpMYjDd0Yr2Siy7Ot4kHQ-q8U5bTo,749 +awscli/examples/support/add-communication-to-case.rst,sha256=0RkVcbOjytRzIf2gXe99UmarLEZoWYZmgf0aoPdUSwg,700 +awscli/examples/support/create-case.rst,sha256=TmBTUBEImhyzaohyqonZFS-H7ca9bfF7jnhFCKqcVb4,742 +awscli/examples/support/describe-attachment.rst,sha256=JNyvGdPeqgFBg6gTL1n5QoooPM2mzwahv0nQB8UPplM,668 +awscli/examples/support/describe-cases.rst,sha256=k8qFBm1p28HYErYWqDC0QryndnkJ58hRlOdlJv7IZz0,1170 +awscli/examples/support/describe-communications.rst,sha256=6r75HfsQxRIjutGeyh1TfiCKic91oTYVv1IuYJ_aOLw,1011 +awscli/examples/support/describe-services.rst,sha256=8xtpi9B_cCeZQqln284SjHFcfU2vXMdIgZExGmcJ4b4,1867 +awscli/examples/support/describe-severity-levels.rst,sha256=yM5uBsa4w4ttUccmG-MLCXjUEdeCcPFRQgWbP_63fX8,941 +awscli/examples/support/describe-trusted-advisor-check-refresh-statuses.rst,sha256=W0kmT5gxDaWVgWxLuol5_ieqvJ_BazE3hwgn4HFXKkY,895 +awscli/examples/support/describe-trusted-advisor-check-result.rst,sha256=7RyB6RlPk471qyghzxepURpMvYWVoQPX-5JeB7vd3vg,1287 +awscli/examples/support/describe-trusted-advisor-check-summaries.rst,sha256=-w4NXWQbM8V6ceKuVQXVMv65byE4LMsNNOQxFvLvRUI,1942 +awscli/examples/support/describe-trusted-advisor-checks.rst,sha256=Y-aIsz7SSLRXEnLadT4s7rr5bg51RtOo4f4pBxoTrOU,1649 +awscli/examples/support/refresh-trusted-advisor-check.rst,sha256=RJAdiPReW_9AqElvVtvwOoMmW2jWp_0PRDf7Ie2Vqhs,621 +awscli/examples/support/resolve-case.rst,sha256=JxpXKCHS5MFx7BSnTGkmnZ37G8IKpCB_KHzlSHOs6Zo,486 +awscli/examples/swf/count-closed-workflow-executions.rst,sha256=wsu2hRUgu7_kDupTNVfmXzVTUhCvcRSt3o5CYhOeZCM,1425 +awscli/examples/swf/count-open-workflow-executions.rst,sha256=1GkpczNPlYWLTK_D2-wt9mTJq4IFKVOlFpktWXg5IGY,1332 +awscli/examples/swf/deprecate-domain.rst,sha256=0xkQKbPDEph4m_ZiXdwSQDMqlwObalnhcefiQaCD-jI,1999 +awscli/examples/swf/describe-domain.rst,sha256=7AFEBf8yDUiyGUCeF7JfLScQN-DW0lac0UDFDuqmQZE,1209 +awscli/examples/swf/list-activity-types.rst,sha256=JtlbEIFjG3qScaEaff-muyKFzELD2rjOY1dfJTnaIBs,7256 +awscli/examples/swf/list-domains.rst,sha256=oxRZhWV08AG9ibSpoHWcWEg9-5Hsm4E8d4nIG8RHH0c,3473 +awscli/examples/swf/list-workflow-types.rst,sha256=LfKJ7CXUixWMXZcoynU6mB2JAqqbdYmewTGycuA-mok,1178 +awscli/examples/swf/register-domain.rst,sha256=4vjK2ClsJSj6wMqHNvM314mv5oUMPABCMXQ7oRcpIaw,1898 +awscli/examples/swf/register-workflow-type.rst,sha256=kTdwRZty6WGkgnB9swdz3N3hih4q3TFz3ZADExEfiJQ,972 +awscli/examples/synthetics/associate-resource.rst,sha256=6TXZ32WHHNPiyxbnUjJEZPaeitSzxHvn73mYAhk668E,544 +awscli/examples/synthetics/create-canary.rst,sha256=PIk3mshTiU58oPeFY9aqvEQB-KRX_qCOg5DxpdfLFaU,1896 +awscli/examples/synthetics/create-group.rst,sha256=XEYght8CotdrfT2Jl4N-g4TdK9V-013vykr66fGyNJg,719 +awscli/examples/synthetics/delete-canary.rst,sha256=ab-O7pCmmztZ78XiXaB6k_T8kgSQrlXxweDAd6yf1wI,418 +awscli/examples/synthetics/delete-group.rst,sha256=3nCbquJDmmdCdkYbHD2hiFdUeIP_xorCBhMJ4jvYI5A,412 +awscli/examples/synthetics/describe-canaries-last-run.rst,sha256=1jev-u8GekmS1WWrvnedZ7l_QvR1--nWJ7S9xRK6P0U,1264 +awscli/examples/synthetics/describe-canaries.rst,sha256=cFq1znXJ5jtpCw6qnTypW4b8QNak9svOO1dUHWyLg34,2124 +awscli/examples/synthetics/describe-runtime-versions.rst,sha256=HZiJEUlOd3QHE2FY3heLNcLpYgH-MyOkFsQR6zoXAQ8,4121 +awscli/examples/synthetics/disassociate-resource.rst,sha256=FMMTrtdDRqYiA5QQrP_elKOrao0Pep_mK4MDJ5UVLM0,546 +awscli/examples/synthetics/get-canary-runs.rst,sha256=N1C9yg2n-RgkEcW-t7p6kct5uRWCrDYWT_aptTpXQGU,1114 +awscli/examples/synthetics/get-canary.rst,sha256=9L9hNdZwAVscBLyoSKRsG20rjORGJAIlXwRSGXjeiQk,1976 +awscli/examples/synthetics/get-group.rst,sha256=61xCkIYU4uFYoQ4Kh7To6-VeeCRWE9mgulREQDalDoo,765 +awscli/examples/synthetics/list-associated-groups.rst,sha256=RrEyKRw_Ki4a9EShMcEfyQWOKs9azoomRYsXJDL8HIc,737 +awscli/examples/synthetics/list-group-resources.rst,sha256=oTaR05eeabVcDYkRNr-4bGt8MQWpHZQxaGGWSCf2GEc,659 +awscli/examples/synthetics/list-groups.rst,sha256=yVxpcpZyIZMLdehKUfzWQk_N06A5kXIRAdXw3BOX7sA,610 +awscli/examples/synthetics/list-tags-for-resource.rst,sha256=oNRr9aZUtu-21orHkTFFoG4HdHS8WbQF4oiG9tLz6YQ,981 +awscli/examples/synthetics/start-canary.rst,sha256=fGp-MAYQUVjAWZyLM_HiaN8PDAvBA8cb4h7qqAo4z3A,398 +awscli/examples/synthetics/stop-canary.rst,sha256=c8aTJ747T9us47-S7suj9QlHASoEb54E6ffGAJwdi9k,400 +awscli/examples/synthetics/tag-resource.rst,sha256=pQsrFr98BFU6WnUyudG-GvCC0F16Cf2wAzw1rUso_xE,848 +awscli/examples/synthetics/untag-resource.rst,sha256=udeMF14hEreoMEhoiCCVhS0bMy1i0ymPm6Dx3gvBXzo,865 +awscli/examples/synthetics/update-canary.rst,sha256=M0vnUraMQZf-FuAKzaae5idYuJ_Ebhph6rABuRXEIik,478 +awscli/examples/textract/analyze-document.rst,sha256=1sJ10fT6BhHsdQK7ev0hoYWlR6N_FfrK2COadrTAC7o,2302 +awscli/examples/textract/detect-document-text.rst,sha256=JNzYaXkHp8g0AYgbQ93TZFaRPPc9HrW1sASGX7dZV5k,5383 +awscli/examples/textract/get-document-analysis.rst,sha256=IorgC3Bend1VVsGf3hYFSIuBKetccpPj4_Xbzem6BJc,2361 +awscli/examples/textract/get-document-text-detection.rst,sha256=u2p4M9ZLfmzX_U2dOQicjj-Iy1wBxnbmk-ojZgF0UJc,2376 +awscli/examples/textract/start-document-analysis.rst,sha256=d2pLTMP2RJ_cHmHvBfFvxogGdDpKL68uqmdJqgEkNss,1125 +awscli/examples/textract/start-document-text-detection.rst,sha256=YHvUoLRWHtazlLeMVQjMf5JQXJm7ADSDi-qZebfajM0,1051 +awscli/examples/transcribe/create-language-model.rst,sha256=0_IWPh3EMNNUR7PUPNUsJhLwQRux4mc9gT-m4JuQ5a0,3400 +awscli/examples/transcribe/create-medical-vocabulary.rst,sha256=pjL2FIvrtLJcqDoPvURmsufKQK-tagYu_wPUEpqPXUA,1143 +awscli/examples/transcribe/create-vocabulary-filter.rst,sha256=II1l00tmHkUNUQGsg64izmXaAOl6iqK4JLe76WvmYzY,1045 +awscli/examples/transcribe/create-vocabulary.rst,sha256=cK73bjpyQPKYrzADp8dNUg4YmvyRPvD6V8YkADRLl0w,1072 +awscli/examples/transcribe/delete-language-model.rst,sha256=MzbAMo0mA100qOvgieGreFVQrRDy7yMJqB7ASOC2TQs,463 +awscli/examples/transcribe/delete-medical-transcription-job.rst,sha256=ALW32uCCpCvLRq28RaxfuIzp4Nx0wPRwodH_i8SYYN8,497 +awscli/examples/transcribe/delete-medical-vocabulary.rst,sha256=aZTu7P7Zrg7INRuq1wzciwPVYsdlL1LPafDKKS72kaU,515 +awscli/examples/transcribe/delete-transcription-job.rst,sha256=_X_J7t4JhCwfdwFaxiKEVnGv68BJrRcl8UoDF74epvs,457 +awscli/examples/transcribe/delete-vocabulary-filter.rst,sha256=_htUwiHHf1akBgax9mNyJWvYesJry7lBzjOTmtyjA88,432 +awscli/examples/transcribe/delete-vocabulary.rst,sha256=tCHOERI-vUHb8dsQJZDD32pXZfuCXP4Sc3TQQVIsHOI,392 +awscli/examples/transcribe/describe-language-model.rst,sha256=X3l5rSZ2aWPjnLCRCau5p5IumoGr45PoGKC6ytcPveI,1688 +awscli/examples/transcribe/get-medical-transcription-job.rst,sha256=9VtfKBOtAq43g7Ce-OLqkK7qrXdgfw4raGs6KPtj5xw,1970 +awscli/examples/transcribe/get-medical-vocabulary.rst,sha256=UA42U2v_oZHo8D-mBstBX8OPb_M-wz1V1I-8d2P5ZLQ,907 +awscli/examples/transcribe/get-transcription-job.rst,sha256=VOvFodxO7FHwsrRNDx_aql2zNuM1IS53tihXsvOy0eI,1702 +awscli/examples/transcribe/get-vocabulary-filter.rst,sha256=8PeZbZ5K7RKN_0EkA67515EZ2X7uQ8i_K5Y8dOJCN18,766 +awscli/examples/transcribe/get-vocabulary.rst,sha256=6-9_BDspj-A2uYuAYE0vFonPXxWfnJ2jsZ8MP8Q0YJ0,701 +awscli/examples/transcribe/list-language-models.rst,sha256=DQS_U5M1Sw4yQFJuSDl8ORrpIYtDI3tFNuToE5tru9U,3208 +awscli/examples/transcribe/list-medical-transcription-jobs.rst,sha256=La7R11Kgp15_gFYEkU-IP4bBOr6A8VO0L819zg9cRAA,4783 +awscli/examples/transcribe/list-medical-vocabularies.rst,sha256=e1NVtDDk36dbxjKGeO3ZzwZdAqjsZ2bK61HjiROckAM,1423 +awscli/examples/transcribe/list-transcription-jobs.rst,sha256=Z--eH0yf2MojLMdqz3r0s98O2ps2u6lw_b-k3d9fj5I,2763 +awscli/examples/transcribe/list-vocabularies.rst,sha256=9dCoZR6cBRzAPNltvfEzd-5NqnpLCH-yBKM9VPflKcY,1682 +awscli/examples/transcribe/list-vocabulary-filters.rst,sha256=RoUQPyCffN-4bDxcJEcVuzIvPrc0R3fdU5gUG6GJ2LM,1506 +awscli/examples/transcribe/start-medical-transcription-job.rst,sha256=C5ys6AYSXgUpQJEgm7oOKTodDcEYsxFNp0bZiklhTBE,12612 +awscli/examples/transcribe/start-transcription-job.rst,sha256=Xj1HXAt2aPRl5oR-Mwss5Elxug1ZyeqQbt0iz6PC3so,14419 +awscli/examples/transcribe/update-medical-vocabulary.rst,sha256=pV4UNQuHXWTaQEpVBdhY8CaPZ6-vqa4nexp0SxI70nw,847 +awscli/examples/transcribe/update-vocabulary-filter.rst,sha256=-CKxlF_qKn93F2WkABBkHYrX8JmN1fnioF04FFdyJDg,870 +awscli/examples/transcribe/update-vocabulary.rst,sha256=9Ro9YHyuL4Avk7HQAgPsm4oi9gvgHe8k-uX9JltyFNw,809 +awscli/examples/translate/import-terminology.rst,sha256=k9hwez82wNP61LotxNBNx8JtImgRBb0NVGP6mnqfVI4,1188 +awscli/examples/trustedadvisor/get-organization-recommendation.rst,sha256=qhHkWnml_cTdxgI4g70NrCIkssBAqbA8QB3sRFiaDQQ,1443 +awscli/examples/trustedadvisor/get-recommendation.rst,sha256=YvUIATkciUVcE6vQl_JxS4LOyH-Tq3vPSwbv-t-Nyfc,1561 +awscli/examples/trustedadvisor/list-checks.rst,sha256=rkFj2s795PhixdU0YsKHAq6bsxA94BV3XwTDIsD08RE,5383 +awscli/examples/trustedadvisor/list-organization-recommendation-accounts.rst,sha256=EHFquJLDUv6mG1GJM7Ia66WLSg1F2VBZEAQJJOrgSRc,1129 +awscli/examples/trustedadvisor/list-organization-recommendation-resources.rst,sha256=p-IjGSdXskWgfFe_q_wESC1wtgvfdcO0661_MRzjlek,3865 +awscli/examples/trustedadvisor/list-organization-recommendations.rst,sha256=Nou0x1dpENZjiRliLtGFUcTl7Tc5wQRi5hDzoO5iyn4,5041 +awscli/examples/trustedadvisor/list-recommendation-resources.rst,sha256=UGwC3C2xZoPQHjJohpB4ln-Th1q-wYH7rcKXgzmWFUg,3780 +awscli/examples/trustedadvisor/list-recommendations.rst,sha256=ykGS_yutd-9T7PcZcfbgEURpUkt7r2aKwLBitRQfJmc,5749 +awscli/examples/trustedadvisor/update-organization-recommendation-lifecycle.rst,sha256=NIyuJ-m42SkgfxBNHtp2VSruvBvtCQroRvPh0gOKjhI,744 +awscli/examples/trustedadvisor/update-recommendation-lifecycle.rst,sha256=MU-6cscJB2b6lSminNIMtX2ybuxd30NI4xfbn61HPr4,680 +awscli/examples/verifiedpermissions/create-identity-source.rst,sha256=FnVKwJK-4OE0icElySSycc-CIdke0qtlfW195pa5zWw,1223 +awscli/examples/verifiedpermissions/create-policy-store.rst,sha256=LEZn-xrZ16_m_ZVtUyWmXgJVXdHqvynw3shOf3dtqOU,742 +awscli/examples/verifiedpermissions/create-policy-template.rst,sha256=lOx8FlpibgyvJFS8IdGeJNqSpJ8-MZabkIFkYNG50go,975 +awscli/examples/verifiedpermissions/create-policy.rst,sha256=m7ynEiQaaiL3uezo4gWMUDm_Hi9Y1w4k0rg0-LEna-k,3502 +awscli/examples/verifiedpermissions/delete-identity-source.rst,sha256=nQh2Xh1cnpv8hfYIlwGwkp9e2Vrso5gmkpLEdlUyFao,583 +awscli/examples/verifiedpermissions/delete-policy-store.rst,sha256=bUjKWUE2_wvzRYhpq1wadJJKcKtWJRHcZ5BekJVS9yU,492 +awscli/examples/verifiedpermissions/delete-policy-template.rst,sha256=XDJ3Ku9jcVPs73ilhgzcxf59UErPjiuKWlWnOW-2hJg,558 +awscli/examples/verifiedpermissions/delete-policy.rst,sha256=uitn7paVmmKoq_BvldwArzUjkMFlQnGmeGmY2ZhyhMY,524 +awscli/examples/verifiedpermissions/get-identity-source.rst,sha256=gtQqcAZ6Rwabb5A6qpM1p3dQRCpwC9qFfX6cx9VM_Jc,1184 +awscli/examples/verifiedpermissions/get-policy-store.rst,sha256=wwZjIil8Fbtla-LtS0lbLpRy0TvYYw9JVxghtaZJtkE,821 +awscli/examples/verifiedpermissions/get-policy-template.rst,sha256=aFRSjAEWcx_ytM2vPltx9bHj7wXeyk5FanNB9sGf3m0,953 +awscli/examples/verifiedpermissions/get-policy.rst,sha256=K-Vm_uCD4LP6t1db4_8J1V-rUI50KMQDvrOhVcwlh70,1290 +awscli/examples/verifiedpermissions/get-schema.rst,sha256=hmRkww6Cxbax7nd5v8WgEgGxTxVbiZC8HvC1lFHOr3U,905 +awscli/examples/verifiedpermissions/is-authorized-with-token.rst,sha256=aKZ9c0wSnOM46Yw1nFJrzR_EQIgtGPAWL_soBoZL8nU,1522 +awscli/examples/verifiedpermissions/is-authorized.rst,sha256=RHF_7EVupY3u5GUVyhJbZ4hEQEu7NLp17qP6drSzhyM,1636 +awscli/examples/verifiedpermissions/list-identity-sources.rst,sha256=KfRvSdrc9y5fHy6YwjS8242FoncVdbw-ZDsdAQ_8E7M,1275 +awscli/examples/verifiedpermissions/list-policies.rst,sha256=iIUgYTLt-61rCl66RRauLM1F9Cok_eWPM0P2qMcpfkc,2753 +awscli/examples/verifiedpermissions/list-policy-stores.rst,sha256=q0YHQe68Fsrl52WjYZYQ2LZxalGJf8shBMVsSiY4uPg,1410 +awscli/examples/verifiedpermissions/list-policy-templates.rst,sha256=VLSxBReSrR7FX1zggFcoyzwNVBOG3eIIqrp9D3zm32w,839 +awscli/examples/verifiedpermissions/put-schema.rst,sha256=9wt_WHYVVbI8J-8T1d_13Nh33b16pw_P0a30_zfzrNA,1648 +awscli/examples/verifiedpermissions/update-identity-source.rst,sha256=WJn3Z-TcsAYzJefcNE2scAvuNwvbxZw0p-YoUi4OtVI,1266 +awscli/examples/verifiedpermissions/update-policy-store.rst,sha256=4qlUei_CJjVwvGmzBBAAYcqdnerixJJ8BREzcJt-p0k,803 +awscli/examples/verifiedpermissions/update-policy-template.rst,sha256=SmJ7yrzZDWBNjP7L85O7dSznHXOqkF3t2f9JQMDE0y8,1034 +awscli/examples/verifiedpermissions/update-policy.rst,sha256=hZ2KHbLpmc5zTlj_I6EjSpQZWr9xGfmV1V9ad1Omgds,1934 +awscli/examples/vpc-lattice/create-listener.rst,sha256=3kFCCfGxLTHMW5WVxq5dvwELN5VbqYCAeOm74xB9plQ,1546 +awscli/examples/vpc-lattice/create-resource-configuration.rst,sha256=gTDYcft8zJ7_8a4XjUyKHNDajcO3vSryjoIaAl0P4dg,1247 +awscli/examples/vpc-lattice/create-resource-gateway.rst,sha256=DBpM4NiEMmZnjWtUP92CJFZd5OTkVmthimnYT0LLPyY,983 +awscli/examples/vpc-lattice/create-service-network-service-association.rst,sha256=2VSQfzpPEuOhbFGIKpDdBdcMNkOtHQwr83Pj7vIy1xY,1046 +awscli/examples/vpc-lattice/create-service-network-vpc-association.rst,sha256=oWE62EtkNg-5sFvvgFzLw0mjqDLFkKYVg2z3DmoYptM,1063 +awscli/examples/vpc-lattice/create-service-network.rst,sha256=a1bDVce3j8xkww431cHY-Ozr74lmIKErgdqeYHtsztY,616 +awscli/examples/vpc-lattice/create-service.rst,sha256=Ue3Tklg6plX1pYUPhLz14b_clO1H0-ohrxERJM44_fQ,816 +awscli/examples/vpc-lattice/create-target-group.rst,sha256=OZJid-YHwYMRsbZ8Vp-XSbokD4yLoGwQuVUIpML8ikw,4731 +awscli/examples/vpc-lattice/delete-auth-policy.rst,sha256=9_SotO4iZOSm8O-yBhFYfEK8zOPjVa3t-3nv70xgxz4,421 +awscli/examples/vpc-lattice/delete-listener.rst,sha256=IPF4pjZgu_sx200f7rnxWPVr4fO-_jdZIu2abwUnGxk,443 +awscli/examples/vpc-lattice/delete-resource-configuration.rst,sha256=pve3xzGzDlozoubEbyNg9kHbbWkcV6mQ9tAL2hbjT2c,493 +awscli/examples/vpc-lattice/delete-resource-gateway.rst,sha256=i3yg5Lu8Xh349mnutYmS40FrBpsEPVl3crB16ZwVKLk,668 +awscli/examples/vpc-lattice/delete-service-network-service-association.rst,sha256=tYNogVz8SzNEtK_Xo-r3D_Ym6a4ak503LYBVjxPkKho,759 +awscli/examples/vpc-lattice/delete-service-network-vpc-association.rst,sha256=BRoIazN-13hOUbnUOxJ4MNdM5FxazKiQ1GiOcWS9nHI,727 +awscli/examples/vpc-lattice/delete-service-network.rst,sha256=sQOONjPaPh-TnT_3tcc_ypSYt_9Ba4or2lM3nW79JBQ,432 +awscli/examples/vpc-lattice/delete-service.rst,sha256=T7ApfaBE-CM5IhgEpBDPAA38WHnQDRejw-tjc2vN2RI,595 +awscli/examples/vpc-lattice/delete-target-group.rst,sha256=ltKGnYCJTbBFhRJ2P4b640mhG9VybMkuDE5g3nJwIWI,577 +awscli/examples/vpc-lattice/deregister-targets.rst,sha256=5nzbDN745u0SMhLEFz1TQQ1eWzRcbNcJhmf9KO4iNFQ,646 +awscli/examples/vpc-lattice/get-auth-policy.rst,sha256=HQMtzl4yiBl9FTOo1HfjDCtUCayCmWlsUaltM4tcJho,857 +awscli/examples/vpc-lattice/get-listener.rst,sha256=QyfYs5AlVKVL-NC0p0dwmyO2zbdRyWsEL2og_L9O754,1304 +awscli/examples/vpc-lattice/get-resource-configuration.rst,sha256=kbMNsSt-OYndlv0tGJxby_Dv5bHTocKgRzx8oIn8kcQ,1252 +awscli/examples/vpc-lattice/get-resource-gateway.rst,sha256=3OtO3QgMPt2Meu8v9YlgxhwPeKlOuj3m0e89DExiZPk,1032 +awscli/examples/vpc-lattice/get-service-network-service-association.rst,sha256=gParqZGjt1-rYz0_snQ9wkUO9pvjla5lVULzf40SWQc,1460 +awscli/examples/vpc-lattice/get-service-network-vpc-association.rst,sha256=W_wl76NbvFLp1487hS8ei2zB0GU430HMgoTYGSApeO8,1215 +awscli/examples/vpc-lattice/get-service-network.rst,sha256=GmD3J2w7DwOJJ7HXaW8_VxjbB0ypfPfAgHcV0p3jVWE,831 +awscli/examples/vpc-lattice/get-service.rst,sha256=AXo-lnYqvgFW0fZMPfhoUXDJO9ktYKFQ8pPnzBcvcZs,925 +awscli/examples/vpc-lattice/get-target-group.rst,sha256=GwbI03XQeSmzOYqoQzdMay2up7ExK_CeUJbSRVCudbQ,1586 +awscli/examples/vpc-lattice/list-listeners.rst,sha256=B6a2aM039kny0ijM8N2OjDDYnr9STdQl6v1DcUMl2lA,883 +awscli/examples/vpc-lattice/list-resource-configurations.rst,sha256=3p1-e5rJ0pCAsnvmKKojguhae-xTu0_kTq9jP9QnH7c,980 +awscli/examples/vpc-lattice/list-resource-endpoint-associations.rst,sha256=C6sQr7NT9HAeB2tQ511T0lRK9HcMfumDw_t4T4nXh1E,1186 +awscli/examples/vpc-lattice/list-resource-gateways.rst,sha256=dA5wiY4dsiEMwpFsDokks5tAP_mn7lxXNydsOVvl_pY,1115 +awscli/examples/vpc-lattice/list-service-network-service-associations.rst,sha256=8xAK08VPc4ys-0vwycjyhTj-wQYGrzN05so2d5zOka8,732 +awscli/examples/vpc-lattice/list-service-network-vpc-associations.rst,sha256=kpdwj-JGQkxxOWx0bhqXVkg_U0PfshwV19fEetR9_i0,703 +awscli/examples/vpc-lattice/list-service-network-vpc-endpoint-associations.rst,sha256=riTCSV-IjHDpCPYiivGH9dW0WdRjkghN5KuFu2RMFuY,965 +awscli/examples/vpc-lattice/list-service-networks.rst,sha256=k-aOiH3J8dI3a8lLvsoRyLHFxv0HoOwO4GvTdvshd-s,708 +awscli/examples/vpc-lattice/list-services.rst,sha256=fce7y24lNOCZagkSe46lKjAGZxqWOPJg92v0gQpMZKo,640 +awscli/examples/vpc-lattice/list-target-groups.rst,sha256=ASUBOLo7ES8uQP_b4L4Qjm7LXb4XPqpMeJfYe5vuV2E,1005 +awscli/examples/vpc-lattice/list-targets.rst,sha256=TQOhPx3mU3GvMR5E94etVU7YdmqvgKhR3giTQucAoyw,789 +awscli/examples/vpc-lattice/put-auth-policy.rst,sha256=PKgEPFP1FIPO6GJkB5Y8wUMp4ARfK3lSyFint73BRuQ,1366 +awscli/examples/vpc-lattice/register-targets.rst,sha256=9qshSa7kA9DnOnE3YlhT8tfMPiYtx2uObwpRKydKzwI,935 +awscli/examples/waf-regional/associate-web-acl.rst,sha256=zVP5FbipCqnLCa9UxpfvGdyDqkPwO702AqvGQ_uXa90,603 +awscli/examples/waf-regional/put-logging-configuration.rst,sha256=Wro0fxazPt5FxIcmT9XppUm_w3zMHz6KMJW4w2bqS3U,925 +awscli/examples/waf-regional/update-byte-match-set.rst,sha256=8wImChn7Vg9JngNk4Md9hXUwZAYwRZq9MzbbwqEDca0,801 +awscli/examples/waf-regional/update-ip-set.rst,sha256=ZAuoyeXWCG94yeIclqYeco4Olz5wWo67yWsmSRJBGoo,1569 +awscli/examples/waf-regional/update-rule.rst,sha256=yj1ThFm03kIE5_UyJ7DmpoTISeLlIcYCD9ghqTvoglw,638 +awscli/examples/waf-regional/update-size-constraint-set.rst,sha256=kWcGcVI70WPW-gX-ZLlbyoYcwq3fP76lLaXfQxaKi0E,802 +awscli/examples/waf-regional/update-sql-injection-match-set.rst,sha256=jhco27k1QpIqq99FSNS7HxgClPbPd1-HFYRBjxMmqtI,814 +awscli/examples/waf-regional/update-web-acl.rst,sha256=Qh5719-UcY-8xvhQlsQxn0VmJzOufmB9PnWkYL9rXCg,690 +awscli/examples/waf-regional/update-xss-match-set.rst,sha256=YAsoJEwv_a7Ly_j_BDwbOXFtBzbqPZiqN90D9pMK6V4,760 +awscli/examples/waf/put-logging-configuration.rst,sha256=H8fBSU0ejbsWNVM58D4zkGVHoZ7kNiodT7n81aN6Lc0,823 +awscli/examples/waf/update-byte-match-set.rst,sha256=asavoXwCcdeQfvh8JtGPbM__9duHff_kNomVwr3KchY,687 +awscli/examples/waf/update-ip-set.rst,sha256=wwqN1xhZIw5enpHSwblDq6vlRMdeNQoyuXvV_LGuT84,1168 +awscli/examples/waf/update-rule.rst,sha256=fnk7NATpkambTP1LM4_DU0VePDsmdf2nQFjj8iDWthI,505 +awscli/examples/waf/update-size-constraint-set.rst,sha256=Whu9bq3d8OcSn-beYulqIK4RLq6CGV4CllKSy8ljNKQ,684 +awscli/examples/waf/update-sql-injection-match-set.rst,sha256=u_X7tWKhCpv8ia0UL3Cf8MM7tL6x3Hh5LAVCbPcpdQk,702 +awscli/examples/waf/update-web-acl.rst,sha256=p9vCTJK0KGPY6Yb2R5JDF3984oljsM6hrRKoMmmXQ7Q,701 +awscli/examples/waf/update-xss-match-set.rst,sha256=iD5jV-ilztg7adcYGCUDn_jIyDK-FjwNlly9WOd54m0,647 +awscli/examples/wafv2/associate-web-acl.rst,sha256=a7YXEWHcaXwwkV3UaFwpfsPcGAJty-VN5dWT2RuP2ew,783 +awscli/examples/wafv2/check-capacity.rst,sha256=4xZ6IeDzma9761u24jGBSptAZS8tYteMNbgR3EWZaXQ,2898 +awscli/examples/wafv2/create-ip-set.rst,sha256=UPfp25xnnJFLhQNGv2hPJDJAro7ScRo1obUTJqVxjbU,928 +awscli/examples/wafv2/create-regex-pattern-set.rst,sha256=RfHqcznEhwf3nNpFiSpkVzULg-tqbQIAa2DJHvb1mSs,1076 +awscli/examples/wafv2/create-rule-group.rst,sha256=GttWocS6z6h3L_KktW-KypiIb_HcDQlfJQiXUZUF-pQ,2821 +awscli/examples/wafv2/create-web-acl.rst,sha256=Ywugaaixg5F23nzjAjkI_nc-IszMv7bBzxs1ayDgvvw,2771 +awscli/examples/wafv2/delete-ip-set.rst,sha256=obKLEpAOBFHxujtPlGXJ-ivl4tXAXsVKvUatGAEGbJA,732 +awscli/examples/wafv2/delete-logging-configuration.rst,sha256=PaZjHUvCN2TsSiLb4l5HLtTmZ-yAU4vN4ztBXnZ-3qI,575 +awscli/examples/wafv2/delete-regex-pattern-set.rst,sha256=5ex27Pl3G-lXSAYRcxty1uHjUW-sVUSl-7uLK6vvrNI,842 +awscli/examples/wafv2/delete-rule-group.rst,sha256=32l4611Qbx79yNApBdw87SGHb7MRfBCZTwoxWBB3peo,788 +awscli/examples/wafv2/delete-web-acl.rst,sha256=wuCx88w5cJ0p5gouAYB-9eVihT3Fw8mbEIgrrEvfK80,840 +awscli/examples/wafv2/describe-managed-rule-group.rst,sha256=hiwwuK_tkiAnxx65NAsI8bkMNN29mJRvR3ntLFogwgg,4266 +awscli/examples/wafv2/disassociate-web-acl.rst,sha256=ttBgzFedic45UWdJeQP-e3C5TcJ-7_lWi9x7WbgtNy4,698 +awscli/examples/wafv2/get-ip-set.rst,sha256=ZqvlHPn1p_X2p_AvEM7EjyDxuOND4WYTeqs_jOOHxOA,1061 +awscli/examples/wafv2/get-logging-configuration.rst,sha256=urhOWrxSA7CprKHNpOGeLtKMS2j0g2VR15L4d6UX1pk,1089 +awscli/examples/wafv2/get-rate-based-statement-managed-keys.rst,sha256=4HAeKoGArHx5mxYZOpwxRFnXUKANAFsjhyC8DqCItT8,1018 +awscli/examples/wafv2/get-regex-pattern-set.rst,sha256=1URsViw7DRkX4OkpLj8IRqxPsOMbZU3wwIxe8nYI5Rg,1346 +awscli/examples/wafv2/get-rule-group.rst,sha256=YXKI3-rQkkqrLX1x8EdIc8voXigMCtttyVgTfgNNN3E,2331 +awscli/examples/wafv2/get-sampled-requests.rst,sha256=9d3EHTxRRuM6sGZM7mMipozRvdVyN_fAugQd0vZSMGA,6483 +awscli/examples/wafv2/get-web-acl-for-resource.rst,sha256=E8877zRdHgD6v_FWZEa8VffR-mg5qSdj6-tVmia2d8k,3643 +awscli/examples/wafv2/get-web-acl.rst,sha256=e42W62tUAJXqWRrX0wMCYmMZnJ9lqpJOk3W1xsgRbeo,3655 +awscli/examples/wafv2/list-available-managed-rule-groups.rst,sha256=l5cewIr-P_5rnsVy_w6INGOxyfvWUxOekM7G8_OOxUk,4454 +awscli/examples/wafv2/list-ip-sets.rst,sha256=q_YrjM38mSkygfWjks8_l1jOkVKOTHa4GQf1X62fZgo,873 +awscli/examples/wafv2/list-logging-configurations.rst,sha256=3S3E5Xb_BV07DMHOpXdNmTPl_RnHTIHMYw0RjzCNGJ0,1626 +awscli/examples/wafv2/list-regex-pattern-sets.rst,sha256=oMx4eIWqHOP7A0wIVoZ776z5x30WnmPfbjsIRmRHmGI,1018 +awscli/examples/wafv2/list-resources-for-web-acl.rst,sha256=PbMITe4en82gaKGN1NNu8fSfEVJvb3b0e1aZYEHs8Sw,894 +awscli/examples/wafv2/list-rule-groups.rst,sha256=-l6lWRK7Vq4GNDY0m_gHu81PWH9MAWLCEcIdk8-CLPk,1338 +awscli/examples/wafv2/list-tags-for-resource.rst,sha256=g8wpFgt8ZmSUqYkT65qKFqOZAq_h4jiyfHBf9-EP7iw,830 +awscli/examples/wafv2/list-web-acls.rst,sha256=_On-A4NzqcLZHuEW8KJolB1LiFgVZZhh3qeG-cA9RRA,904 +awscli/examples/wafv2/put-logging-configuration.rst,sha256=Jnae6PIS7e0Ie3-VZ7UKY9DivxN2QBRrJzVcpztDwkQ,1182 +awscli/examples/wafv2/tag-resource.rst,sha256=JuPn3FwwEDJsK3JqeswcKE4nsz4ob52OTYXjfr1mD_o,632 +awscli/examples/wafv2/untag-resource.rst,sha256=8Cf005hjqtOSHBOgKuonqgTHv_0AleRwmJhNZERgEw0,614 +awscli/examples/wafv2/update-ip-set.rst,sha256=PP1MTqKlGlMHC0kmSlskOleSJ5bvLq9nPKIEcBFvWP8,949 +awscli/examples/wafv2/update-regex-pattern-set.rst,sha256=Pno9axIo9e1wR4Bxa8vgkK2zRdRG1-flimrGLtvgRH8,1051 +awscli/examples/wafv2/update-rule-group.rst,sha256=AUdaxiIidbe-39REgdUx-4ZZAybpbqRIMjRwZUJcly8,1102 +awscli/examples/wafv2/update-web-acl.rst,sha256=2rnk8632iK2Vhse8oNjeIyGoItG_AcnxLzXvWv5kd4A,1115 +awscli/examples/workdocs/abort-document-version-upload.rst,sha256=UEOxz4HKTxoJeIejuEOvNBPed25Y9ISYfmZNih4hhUU,361 +awscli/examples/workdocs/activate-user.rst,sha256=DOknK-K4OkwEaXBkpfLrHQlNYCz7bDgpHjAGlp97di8,1057 +awscli/examples/workdocs/add-resource-permissions.rst,sha256=dkn-MhDs3Qa8HKZT4ZNZSGDwMaRh9mzb2d-fGA_mA64,611 +awscli/examples/workdocs/create-comment.rst,sha256=7oE1kR1ie8aQc938f6szn9GGyx1hqVU127qod39pHps,987 +awscli/examples/workdocs/create-custom-metadata.rst,sha256=gfOoaeRhD5W2GQGF1ceEWIqXrt0xq7WWrwaTAiIw_tU,305 +awscli/examples/workdocs/create-folder.rst,sha256=5fW3UOd7jPLRpJ1cecu5zkARY_AZQNRrmPR80RevmrU,750 +awscli/examples/workdocs/create-labels.rst,sha256=B6-zhGiuRpSblHvSeyZQWOnMSm4XhWDAUD3Gzx7Qr-I,272 +awscli/examples/workdocs/create-notification-subscription.rst,sha256=v1J90H_3AHzZDjLQ595yM2FgFJM9BE5gD9hV6qDUBjI,815 +awscli/examples/workdocs/create-user.rst,sha256=aipYOUO_5Q0YMXBBK45DXoGpNBQRNXnt7scBMB_BwFM,1214 +awscli/examples/workdocs/deactivate-user.rst,sha256=n6gtiDIxST9dWjAULwJzPoV7J1cQCSxBsrn-zncV1H8,209 +awscli/examples/workdocs/delete-comment.rst,sha256=vpOLOH4SsKLsQWygekt8VfwiwKjSUgKhSOlyvuVmT3I,471 +awscli/examples/workdocs/delete-custom-metadata.rst,sha256=bCo_OIrs5i9v-WHOY9gdA_szQojfq16HjS1_T4y5Zuc,286 +awscli/examples/workdocs/delete-document.rst,sha256=W62DXQirMMOh2gfxgQcXe1ddZfWIcz9oHdE3nU3qD3U,220 +awscli/examples/workdocs/delete-folder-contents.rst,sha256=kHoDMEBDik17t8-yCNcuDU1vyrAclM9pdAf5JINIwXg,253 +awscli/examples/workdocs/delete-folder.rst,sha256=0G-FI-FN7Dhlgry63rT4940vHo86YiX2QK08XHzJCEc,212 +awscli/examples/workdocs/delete-labels.rst,sha256=2kMkd3yMpBTRsD3C6JQIsF2Xtpplw08uSjScuw5Z7UE,260 +awscli/examples/workdocs/delete-notification-subscription.rst,sha256=3DU8Ui5cDilYEEpdbRVzVjoWYwcXSSyrqpbndE0M2u0,535 +awscli/examples/workdocs/delete-user.rst,sha256=ao4EytHxjLCXrxTE6C3Y-zT8E2_yIy2H-yTZmBOSps4,189 +awscli/examples/workdocs/describe-activities.rst,sha256=8LoTTUeg2Wa65E5QqvT2C-TPT3-7fmZ0FiO9rQ58bAQ,1912 +awscli/examples/workdocs/describe-comments.rst,sha256=txwUah4eZjBJy9KJByIHAXuv15mRpZ8LANkgtkkXLKk,960 +awscli/examples/workdocs/describe-document-versions.rst,sha256=X-jw86JuhSawmSoiSHCwTHQruy-L9nS4VDY-3NjfkjI,2754 +awscli/examples/workdocs/describe-folder-contents.rst,sha256=8Wcy78DoCXNNiGZ8KnGo7KfKWQ3nE_ksQTH__HgjbY0,2119 +awscli/examples/workdocs/describe-groups.rst,sha256=D-YNJhtqiGixj2Cl6n6umu8LmUjsWSh5aZ8U1A6H5fs,817 +awscli/examples/workdocs/describe-notification-subscriptions.rst,sha256=4GzV13hx7wuW3hGRZVaGyv1jBZBMxojKlgjTsFS22l8,750 +awscli/examples/workdocs/describe-resource-permissions.rst,sha256=ylhNua8hmTeLrD1mTaNiAKwMpqd_my69BgOS-I42W4Y,1119 +awscli/examples/workdocs/describe-users.rst,sha256=Y6DEeTjA9Z98YJW-ptlw1QFH1mt7Tpdg7x50TcxmVeo,1511 +awscli/examples/workdocs/get-document-path.rst,sha256=mKQmDqzOXq1lw89wpBlQc1bHjiEN0hW0eTtJdJdcgSI,904 +awscli/examples/workdocs/get-document-version.rst,sha256=QMumRpuNZ3dp01BiRMkp5O6YbGYK_Hwu8yg0m8vi8DA,1618 +awscli/examples/workdocs/get-document.rst,sha256=KUMzc_Sp2h4wbvXvJaJRo5VFg1x1Z3i6LUG5Vf6Zoso,1260 +awscli/examples/workdocs/get-folder-path.rst,sha256=gcca3HaJu1gxcaHfvdofkuiUHX2-lifmd8ldfQucETk,898 +awscli/examples/workdocs/get-folder.rst,sha256=aZvikb9ws8Axcy0g4EY304W4dA86aKR8S6wHvfIPF30,817 +awscli/examples/workdocs/get-resources.rst,sha256=43GdpwwSiWuqolTSm4M91_Jc8cIcjA6K6ZnQs_XlZbM,521 +awscli/examples/workdocs/initiate-document-version-upload.rst,sha256=ReRxGLHhmukQLHbPPTOCzBV_4nRRcZO0km4Po3kPGBE,2037 +awscli/examples/workdocs/remove-all-resource-permissions.rst,sha256=YvGhwhcxCxYDT1iJoPehKFSScHuFy7C3MyHdlkdjR8E,288 +awscli/examples/workdocs/remove-resource-permission.rst,sha256=Te22niXhPgPYCkpAfwch_Cld7fsRKg-WtZ6idZhNoJk,308 +awscli/examples/workdocs/update-document-version.rst,sha256=xdks06WTzMX5WhfGz6X5B1fkv-X9rQKslxjo9mdwsQI,391 +awscli/examples/workdocs/update-document.rst,sha256=OQWRymhnLUxUZmLRGICeF96u-Hu5KWgfcG1qK8Lk8bs,335 +awscli/examples/workdocs/update-folder.rst,sha256=yWh-4K5dvnaLcX5YPdrQsHCGqpBEp0njW4uB164sQ0c,331 +awscli/examples/workdocs/update-user.rst,sha256=mUhXWsDuG68R6LmCjwrmuudqq91usYUpjEjhlmsyeAo,1066 +awscli/examples/workmail/associate-delegate-to-resource.rst,sha256=E7q5yvqIc-TqQDf-PlUoCKnSucsvEmKQ2AqpMVCwM_U,402 +awscli/examples/workmail/associate-member-to-group.rst,sha256=zjxBSaTacw9mzfXhrlQEPR-zuvVCJALJi6mC7l6j2fs,403 +awscli/examples/workmail/create-alias.rst,sha256=VSJf-wb9Zg6wrXjGz8TS22FbWAuDamh47vj5rN_cVDA,370 +awscli/examples/workmail/create-group.rst,sha256=_JuBlBjux8pnVSMYH7WExlSZt5FECgPJykpjDNVUa68,337 +awscli/examples/workmail/create-resource.rst,sha256=_iFxy8sxHwik5OJ_pbn_lcJqKGubflAfFEwcb1ImFMk,376 +awscli/examples/workmail/create-user.rst,sha256=I2UXtk5-h4np3Q9-YBYKtVE_BOwTg2dKu2_34eSM7Qs,380 +awscli/examples/workmail/delete-access-control-rule.rst,sha256=i4t5MffxsjSbcGj4j2aR0ygbIMlZmdyBhtkq5F479hU,539 +awscli/examples/workmail/delete-alias.rst,sha256=hTaKY_-l18q04wueh1BuTuYff1GNiic6AO-VN2273Rc,371 +awscli/examples/workmail/delete-group.rst,sha256=D9_2ZSa-fk6bTj5wH0Wm6R-rOaKBFPq9KqSfAmLxfaE,319 +awscli/examples/workmail/delete-mailbox-permissions.rst,sha256=9vNACtYWAIfGrzXt6ElGvgXY1IKPlKZ0PGw4TymYARY,580 +awscli/examples/workmail/delete-resource.rst,sha256=ZAubmcdrC7Qb2RWVGdE9rCqxqVIw3Lwap3JONkDJ5pg,322 +awscli/examples/workmail/delete-user.rst,sha256=Kk8b6SICFXRlohdRlps4Wts-YlAqIFVQA-n0SNAJp1o,333 +awscli/examples/workmail/deregister-from-work-mail.rst,sha256=zfCQhVKogCyGfbzUQSzvk3Wba_sYxhlVKjBMa8Dg174,383 +awscli/examples/workmail/describe-group.rst,sha256=KSfQ5chF_wArWGs4Gw-G6xIXqp6T5HhWWCnZ_PHmaQE,450 +awscli/examples/workmail/describe-organization.rst,sha256=jSpwlyir96EDrl_ZhEnu3PmW7KiEYTYvjv2K1cgJSuY,877 +awscli/examples/workmail/describe-resource.rst,sha256=5Mfol4OIdjTnEuKdKGUOUIPeHKJHjKY4-CKlXSVWbTo,648 +awscli/examples/workmail/describe-user.rst,sha256=0L1M21iTkEBm9VTtHd379ZSy6y8gU37rZNpKaIPCOt0,581 +awscli/examples/workmail/disassociate-delegate-from-resource.rst,sha256=knXaopIZiFKsbyUlL2T3l9G5o0y0Hi9aN1WI1AE6d34,429 +awscli/examples/workmail/disassociate-member-from-group.rst,sha256=WJGZjSQwzPTiAiL8oHJ9DBGDak5DE3vlZKyUEk2TdJk,423 +awscli/examples/workmail/get-access-control-effect.rst,sha256=f9kA6ev9fJvvsW4wQ8k8xmQCIz9ylTmk9kAVIBTfYQ4,798 +awscli/examples/workmail/get-mailbox-details.rst,sha256=OUD9eRkW2q81KJNxtfOQHLCvwyKdB-DTsAIETA8X1JA,580 +awscli/examples/workmail/list-access-control-rules.rst,sha256=YD_pEuD-9dMlmQvD_fLCn4fXRKJoDbiDpF1dVk6LN5s,1081 +awscli/examples/workmail/list-aliases.rst,sha256=MWQVzFOU1cTPqmkJEJV8ITVcnLVNCsheK_zIe3c6Its,439 +awscli/examples/workmail/list-group-members.rst,sha256=nT1a2RQITMF0s5A5c8-EMhLdcc3w8yPDTK5p2Ryq5JU,593 +awscli/examples/workmail/list-groups.rst,sha256=d_lU-6GtwUoOSgJTtgDhEnc1Rr71rqFGesHi1L8YlXo,640 +awscli/examples/workmail/list-mailbox-permissions.rst,sha256=iznMrrzpLEhc4bLa0DRqDy5VaRqR_LWoCd0p3js2Qo0,642 +awscli/examples/workmail/list-organizations.rst,sha256=BzEZhyoprPJYfK84N1EyeGiDfOtGE-O8Ky7FpCsfImU,422 +awscli/examples/workmail/list-resource-delegates.rst,sha256=T8HLtVvu62SjWM-Zk88Kgznh-2SZ3TYAFvkgx7Fo5cI,510 +awscli/examples/workmail/list-resources.rst,sha256=YMT28zcccG6-vjYaJSmpuxP14bhJcvBYhkUiML59dqY,497 +awscli/examples/workmail/list-tags-for-resource.rst,sha256=lcroeSvR5IT9h4RoxpWNDJEUzgW9vIthVArp2F0OPr4,620 +awscli/examples/workmail/list-users.rst,sha256=xWshYF9jOAKr0x67Pzsfg493l-_e5TrwuM_GnhjUfdk,821 +awscli/examples/workmail/put-access-control-rule.rst,sha256=TjqqDyPZcGV-BaMWJHyuPEJUqeS4OB755jP3r6zA164,652 +awscli/examples/workmail/put-mailbox-permissions.rst,sha256=5tH_z4r_D4Pq9Fpm0rCn_TLBn5St0xCFGUGPVJUog6I,525 +awscli/examples/workmail/register-to-work-mail.rst,sha256=sfpEZTb8MWbjvXHG5BdNL4pAYc9LPMqKlbp_Cbgfdoc,443 +awscli/examples/workmail/reset-password.rst,sha256=kgF4GUX22DM1dvsrWGq7ybge3OsEriWP0v7VVZJRNk4,354 +awscli/examples/workmail/tag-resource.rst,sha256=7N2FXjqUQP1_wDBeeMpOHnIXZ98YWME6YvdPxBwEFWg,560 +awscli/examples/workmail/untag-resource.rst,sha256=fRUYByqxiZwMflUQoCOjc1AwtvccMdYOmQ7wJ6omN8A,527 +awscli/examples/workmail/update-mailbox-quota.rst,sha256=EEBKeqe-CiZxK1AIv66EQqFbbLvX-o1pa6w9ttHHQNY,542 +awscli/examples/workmail/update-primary-email-address.rst,sha256=h4cpcvaP8uCpbleEIdWFCV6R-3c6kz7Ax5XmDnWBs6E,444 +awscli/examples/workmail/update-resource.rst,sha256=H0V1Pku7QJOV-7jio1ZkAN_sFVItDx-6VWFkop9wdXU,335 +awscli/examples/workmailmessageflow/get-raw-message-content.rst,sha256=FH7mAEjcY5w7_gTl9urlgdK7osjDDX-DlHvq3_F3gLg,1895 +awscli/examples/workspaces/create-tags.rst,sha256=u0IS_X7b_00Mhs3KT4zzaVC5Iq52wRtj2UKXlGdQfxc,479 +awscli/examples/workspaces/create-workspaces.rst,sha256=7vmpjS5Apa49x3s_vTUazwfvIZSJqJ4vRsXi0Dze75g,2434 +awscli/examples/workspaces/delete-tags.rst,sha256=1xT5ZCDvwVSNcGYvpOhDbV2Z-IRWIqZyNtR1NO2yN6w,475 +awscli/examples/workspaces/deregister-workspace-directory.rst,sha256=aCvRxlTgQURfoWpUd5cEd_vXzr1d_lyEDa8VtJ8byCk,472 +awscli/examples/workspaces/describe-tags.rst,sha256=9qs0O9tlqtMTa4j8SRS45cXVBiCbzaQLiPzUTDspuaI,571 +awscli/examples/workspaces/describe-workspace-bundles.rst,sha256=SEmrObnQwyrkEGdNoLmPLHOMhDv-NHAGOwQbZ7SIde4,1078 +awscli/examples/workspaces/describe-workspace-directories.rst,sha256=svLKtz3rE-Bm8adWjNcQeRWJARtAIOizUr-CuXFg6Ik,2370 +awscli/examples/workspaces/describe-workspaces-connection-status.rst,sha256=QSk7eHbPFw3xbNUikGkDcUz9h6K-IwcHnldN2LcTeEg,751 +awscli/examples/workspaces/describe-workspaces.rst,sha256=E7xWwH0DVhmAnKzmd5qxI5eecb9a3EPttCjYGwO5fPs,1206 +awscli/examples/workspaces/migrate-workspace.rst,sha256=kKxFc3St-xb9See1g34iJtD3l9FI08NcoBYKlnUAD5M,563 +awscli/examples/workspaces/modify-workspace-creation-properties.rst,sha256=fODbHb_F9-3Vi4r6u-qicCfNJ2Ra6h8qXTF5GXYOUiU,725 +awscli/examples/workspaces/modify-workspace-properties.rst,sha256=MskRdu9_RQ4_7KyWHxbhweVoW561MuxMMlLdyEdH7S4,538 +awscli/examples/workspaces/modify-workspace-state.rst,sha256=VbEjhE42i8zxzgoIsor0AJVZq6QtlLmaRodeZmH0ZzY,520 +awscli/examples/workspaces/reboot-workspaces.rst,sha256=8yRuqMk6mq4G_VKxzn0zBPANMN6pijKYp6YHufAMgsE,443 +awscli/examples/workspaces/rebuild-workspaces.rst,sha256=Okw8eqzUM48x7pJpBvQyhGvX13_SVB_BX9Lk-oK1nYo,449 +awscli/examples/workspaces/register-workspace-directory.rst,sha256=MFOUQEtmvXZJmpcAtxaTWEG1fwYL-OngJYTDKcZd8Fw,536 +awscli/examples/workspaces/restore-workspace.rst,sha256=Po2awcXBEPUXor4BYns08r4wM2g9TaRKdBcNH7XGq2M,411 +awscli/examples/workspaces/start-workspaces.rst,sha256=OJTPQomrWBcHyrL0rDfVu-hcxAnWJegCxIHuYvOC4qA,550 +awscli/examples/workspaces/stop-workspaces.rst,sha256=5gUnNqlUHHr5kA8wRWe_R7_fGBoiljZ97C7y5VV3S6Q,545 +awscli/examples/workspaces/terminate-workspaces.rst,sha256=fiMi0JGKs3Kr3qsChetaape7665HwINX5olQmho9o1o,458 +awscli/examples/xray/batch-traces-get.rst,sha256=o3iUW5JGIN821XpNZQ6Ngu5t3ShwzH5Hf32HdCh9OzA,2796 +awscli/examples/xray/create-group.rst,sha256=HQ4yZuhLZWRWo_XefOStdTqg6ADyG9b1EUOnQCgwrf8,875 +awscli/examples/xray/create-sampling-rule.rst,sha256=Gp-gOOrdc8UKvh72KrtL0Vd4YY1PHcHMe81Velg_ENI,1774 +awscli/examples/xray/delete-group.rst,sha256=3ZlWBFyKpJGygGWg5XMYucSsagDwY9VMibrOF_zYuPg,553 +awscli/examples/xray/delete-sampling-rule.rst,sha256=y-gvGEI252R7oeZjC0jeqH_aliSP20F715nfOR648p8,1255 +awscli/examples/xray/get-encryption-config.rst,sha256=1J2PqUqjR-cmnZx7-E-o7rXfX-nIw4Atv9SRFan-jTY,623 +awscli/examples/xray/get-group.rst,sha256=zVrKdlJLEl3tkNJGOPgjdPq8UEgpY0m3cDnw3OHR6To,895 +awscli/examples/xray/get-groups.rst,sha256=ip1YgWuyVdyuvG2iTJ7Cq9yMUZ2Ad700OBG9IezmLao,900 +awscli/examples/xray/get-sampling-rules.rst,sha256=TTH0rJ_Y2odltn6yZZ3Uall4qwVZN0ebuEDQnAZTskI,2596 +awscli/examples/xray/get-sampling-targets.rst,sha256=VbNkrCQ4oJYXP-tc9k74VpR4yuoHB2vWs59LmL4z-EQ,1378 +awscli/examples/xray/get-service-graph.rst,sha256=uM596yVaEehfdc7-0ul32tb4yBDpFekryOHiyEvjWdc,3176 +awscli/examples/xray/get-trace-summaries.rst,sha256=7aJRxtfhCkp8XkefZ1oCS1mAxggyS_tpnMSJhp4rpug,917 +awscli/examples/xray/put-encryption-config.rst,sha256=vtxX1D-semCQCSOc0EE0Tk9ld0Yo_NTzygxmd2i7cB4,746 +awscli/examples/xray/put-trace-segments.rst,sha256=nTcmjqIW8UwxrnJDM2ILvU7ZiNore4qRZP8U0QtBewo,1059 +awscli/examples/xray/update-group.rst,sha256=ThP94mCvPeSXQanVJjI13PSArn2rqnzX7Q-dS2-f3XY,914 +awscli/examples/xray/update-sampling-rule.rst,sha256=a1THv2Q8ELvSSlZbnbUVN5YWopGFLiBU4yqliQLF8Q8,1521 +awscli/formatter.py,sha256=EI_dUo5uGf2YxWg5js4un_cksF5h58KuvOkkmptuu4o,10951 +awscli/handlers.py,sha256=6isJ2Oo4N1tX8yh2GT4v1PKMqZraCNuH1Mb-7MLjIPs,10710 +awscli/help.py,sha256=-u2OtAdW9X8891FBA70xUC5Ky9lhjiWgtbh4hm-DoW8,14205 +awscli/paramfile.py,sha256=3ZmlqMyi_2pcEA5noWzfGONA6CH-4OsIJqtUZrF7yH0,11810 +awscli/plugin.py,sha256=B3wgRerhgFK1v-QQeASYv2VNLSa9oMuD4X_hcLSescI,2265 +awscli/schema.py,sha256=vNFkuE2BsgeqesRTWRhuSU341eqiKuMF5QAJvClyaKw,6394 +awscli/shorthand.py,sha256=ziXUkFyJGcDG8dMQzDMgdUSpZpe88gGBRk5Skkg60W4,18379 +awscli/table.py,sha256=VCyPjNHK4wO_-KKRz7zvuuNp2RLHb6DUPVbPdueji3w,15459 +awscli/testutils.py,sha256=R_URfOci08TTar0mjfCk6u5BovWYjd-__6nRu2Tw74w,37444 +awscli/text.py,sha256=pr40cSMkGWZ5n-VXMcEKCo1xO5bK3nUbDK3WLwy2HFE,4177 +awscli/topics/config-vars.rst,sha256=rGwpLEHEG355W6a4xmNjD-FXl2O3GRfkNBjQuW1ZaKY,22751 +awscli/topics/return-codes.rst,sha256=d9lpNFZwD75IiYcDEADQzu-4QiR8P28UPHkrNwPV5J8,1996 +awscli/topics/s3-case-insensitivity.rst,sha256=rIGn4aoLvqy3HjbHN-R9UDVp9WX2tGq8xUMYQD5JmNI,3778 +awscli/topics/s3-config.rst,sha256=5EIVd4ggLBHtzjtHFvQp9hY415yMGZiG7S_rO9qy2t0,11663 +awscli/topics/s3-faq.rst,sha256=9qO0HFI6F9hx1wVEUDl8Jy6yoCUd9zbtv-Z0Re4dsiw,2934 +awscli/topics/topic-tags.json,sha256=wjVD-b-g_XUNYUffoUXyoUy8-ul1___xd2chd1MUv6U,1951 +awscli/topictags.py,sha256=A1HDK4jE2ZxReOVM1sftjInQXVWL1DRz8DLS5JIGMag,12635 +awscli/utils.py,sha256=29k14fL0jIHFTEErNgxIvMlIV3zYwjGDFH7uM9C7vdU,10594 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli-1.44.83.dist-info/REQUESTED b/rep_localstack/lib/python3.12/site-packages/awscli-1.44.83.dist-info/REQUESTED new file mode 100644 index 000000000..e69de29bb diff --git a/rep_localstack/lib/python3.12/site-packages/awscli-1.44.83.dist-info/WHEEL b/rep_localstack/lib/python3.12/site-packages/awscli-1.44.83.dist-info/WHEEL new file mode 100644 index 000000000..dcfdc6e35 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli-1.44.83.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: setuptools (75.1.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli-1.44.83.dist-info/top_level.txt b/rep_localstack/lib/python3.12/site-packages/awscli-1.44.83.dist-info/top_level.txt new file mode 100644 index 000000000..88294b13f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli-1.44.83.dist-info/top_level.txt @@ -0,0 +1 @@ +awscli diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__init__.py b/rep_localstack/lib/python3.12/site-packages/awscli/__init__.py new file mode 100644 index 000000000..ded8fcb3a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/__init__.py @@ -0,0 +1,56 @@ +# Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +""" +AWSCLI +---- +A Universal Command Line Environment for Amazon Web Services. +""" + +import os + +__version__ = '1.44.83' + +# +# Get our data path to be added to botocore's search path +# +_awscli_data_path = [] +if 'AWS_DATA_PATH' in os.environ: + for path in os.environ['AWS_DATA_PATH'].split(os.pathsep): + path = os.path.expandvars(path) + path = os.path.expanduser(path) + _awscli_data_path.append(path) +_awscli_data_path.append( + os.path.join(os.path.dirname(os.path.abspath(__file__)), 'data') +) +os.environ['AWS_DATA_PATH'] = os.pathsep.join(_awscli_data_path) + + +EnvironmentVariables = { + 'ca_bundle': ('ca_bundle', 'AWS_CA_BUNDLE', None, None), + 'output': ('output', 'AWS_DEFAULT_OUTPUT', 'json', None), +} + + +SCALAR_TYPES = set( + [ + 'string', + 'float', + 'integer', + 'long', + 'boolean', + 'double', + 'blob', + 'timestamp', + ] +) +COMPLEX_TYPES = set(['structure', 'map', 'list']) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__main__.py b/rep_localstack/lib/python3.12/site-packages/awscli/__main__.py new file mode 100644 index 000000000..63263a3cb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/__main__.py @@ -0,0 +1,20 @@ +# Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + + +import sys + +from awscli.clidriver import main + +if __name__ == "__main__": + sys.exit(main()) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/__init__.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 000000000..23e440795 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/__init__.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/__main__.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/__main__.cpython-312.pyc new file mode 100644 index 000000000..b50d5cf1a Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/__main__.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/alias.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/alias.cpython-312.pyc new file mode 100644 index 000000000..8dbd83a1f Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/alias.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/argparser.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/argparser.cpython-312.pyc new file mode 100644 index 000000000..76bf67338 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/argparser.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/argprocess.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/argprocess.cpython-312.pyc new file mode 100644 index 000000000..697b81043 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/argprocess.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/arguments.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/arguments.cpython-312.pyc new file mode 100644 index 000000000..6b983abf3 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/arguments.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/clidocs.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/clidocs.cpython-312.pyc new file mode 100644 index 000000000..16830bf25 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/clidocs.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/clidriver.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/clidriver.cpython-312.pyc new file mode 100644 index 000000000..9979d1588 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/clidriver.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/commands.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/commands.cpython-312.pyc new file mode 100644 index 000000000..cb52f6b09 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/commands.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/compat.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/compat.cpython-312.pyc new file mode 100644 index 000000000..216f66072 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/compat.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/completer.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/completer.cpython-312.pyc new file mode 100644 index 000000000..b8a1e2203 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/completer.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/errorhandler.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/errorhandler.cpython-312.pyc new file mode 100644 index 000000000..3862ac4d5 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/errorhandler.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/formatter.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/formatter.cpython-312.pyc new file mode 100644 index 000000000..4b351a75d Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/formatter.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/handlers.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/handlers.cpython-312.pyc new file mode 100644 index 000000000..9311a5779 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/handlers.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/help.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/help.cpython-312.pyc new file mode 100644 index 000000000..6b08924f7 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/help.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/paramfile.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/paramfile.cpython-312.pyc new file mode 100644 index 000000000..c138b2a61 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/paramfile.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/plugin.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/plugin.cpython-312.pyc new file mode 100644 index 000000000..3abef6b28 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/plugin.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/schema.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/schema.cpython-312.pyc new file mode 100644 index 000000000..2ff5f473d Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/schema.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/shorthand.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/shorthand.cpython-312.pyc new file mode 100644 index 000000000..c068ebfa2 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/shorthand.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/table.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/table.cpython-312.pyc new file mode 100644 index 000000000..2fcd9b8af Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/table.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/testutils.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/testutils.cpython-312.pyc new file mode 100644 index 000000000..049db7dd5 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/testutils.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/text.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/text.cpython-312.pyc new file mode 100644 index 000000000..3e3ff234b Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/text.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/topictags.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/topictags.cpython-312.pyc new file mode 100644 index 000000000..1dcf2f41b Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/topictags.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/utils.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/utils.cpython-312.pyc new file mode 100644 index 000000000..00ce5856b Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/__pycache__/utils.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/alias.py b/rep_localstack/lib/python3.12/site-packages/awscli/alias.py new file mode 100644 index 000000000..d45cdbd0d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/alias.py @@ -0,0 +1,302 @@ +# Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import logging +import os +import shlex +import subprocess + +from botocore.configloader import raw_config_parse + +from awscli.commands import CLICommand +from awscli.compat import compat_shell_quote +from awscli.utils import emit_top_level_args_parsed_event + +LOG = logging.getLogger(__name__) + + +class InvalidAliasException(Exception): + pass + + +class AliasLoader: + def __init__( + self, + alias_filename=os.path.expanduser( + os.path.join('~', '.aws', 'cli', 'alias') + ), + ): + """Interface for loading and interacting with alias file + + :param alias_filename: The name of the file to load aliases from. + This file must be an INI file. + """ + self._filename = alias_filename + self._aliases = None + + def _build_aliases(self): + self._aliases = self._load_aliases() + self._cleanup_alias_values(self._aliases.get('toplevel', {})) + + def _load_aliases(self): + if os.path.exists(self._filename): + return raw_config_parse(self._filename, parse_subsections=False) + return {'toplevel': {}} + + def _cleanup_alias_values(self, aliases): + for alias in aliases: + # Beginning and end line separators should not be included + # in the internal representation of the alias value. + aliases[alias] = aliases[alias].strip() + + def get_aliases(self): + if self._aliases is None: + self._build_aliases() + return self._aliases.get('toplevel', {}) + + +class AliasCommandInjector: + def __init__(self, session, alias_loader): + """Injects alias commands for a command table + + :type session: botocore.session.Session + :param session: The botocore session + + :type alias_loader: awscli.alias.AliasLoader + :param alias_loader: The alias loader to use + """ + self._session = session + self._alias_loader = alias_loader + + def inject_aliases(self, command_table, parser): + for ( + alias_name, + alias_value, + ) in self._alias_loader.get_aliases().items(): + if alias_value.startswith('!'): + alias_cmd = ExternalAliasCommand(alias_name, alias_value) + else: + service_alias_cmd_args = [ + alias_name, + alias_value, + self._session, + command_table, + parser, + ] + # If the alias name matches something already in the + # command table provide the command it is about + # to clobber as a possible reference that it will + # need to proxy to. + if alias_name in command_table: + service_alias_cmd_args.append(command_table[alias_name]) + alias_cmd = ServiceAliasCommand(*service_alias_cmd_args) + command_table[alias_name] = alias_cmd + + +class BaseAliasCommand(CLICommand): + _UNDOCUMENTED = True + + def __init__(self, alias_name, alias_value): + """Base class for alias command + + :type alias_name: string + :param alias_name: The name of the alias + + :type alias_value: string + :param alias_value: The parsed value of the alias. This can be + retrieved from `AliasLoader.get_aliases()[alias_name]` + """ + self._alias_name = alias_name + self._alias_value = alias_value + + def __call__(self, args, parsed_args): + raise NotImplementedError('__call__') + + @property + def name(self): + return self._alias_name + + @name.setter + def name(self, value): + self._alias_name = value + + +class ServiceAliasCommand(BaseAliasCommand): + UNSUPPORTED_GLOBAL_PARAMETERS = ('debug', 'profile') + + def __init__( + self, + alias_name, + alias_value, + session, + command_table, + parser, + shadow_proxy_command=None, + ): + """Command for a `toplevel` subcommand alias + + :type alias_name: string + :param alias_name: The name of the alias + + :type alias_value: string + :param alias_value: The parsed value of the alias. This can be + retrieved from `AliasLoader.get_aliases()[alias_name]` + + :type session: botocore.session.Session + :param session: The botocore session + + :type command_table: dict + :param command_table: The command table containing all of the + possible service command objects that a particular alias could + redirect to. + + :type parser: awscli.argparser.MainArgParser + :param parser: The parser to parse commands provided at the top level + of a CLI command which includes service commands and global + parameters. This is used to parse the service command and any + global parameters from the alias's value. + + :type shadow_proxy_command: CLICommand + :param shadow_proxy_command: A built-in command that + potentially shadows the alias in name. If the alias + references this command in its value, the alias should proxy + to this command as opposed to proxy to itself in the command + table + """ + super().__init__(alias_name, alias_value) + self._session = session + self._command_table = command_table + self._parser = parser + self._shadow_proxy_command = shadow_proxy_command + + def __call__(self, args, parsed_globals): + alias_args = self._get_alias_args() + parsed_alias_args, remaining = self._parser.parse_known_args( + alias_args + ) + self._update_parsed_globals(parsed_alias_args, parsed_globals, remaining) + # Take any of the remaining arguments that were not parsed out and + # prepend them to the remaining args provided to the alias. + remaining.extend(args) + LOG.debug( + 'Alias %r passing on arguments: %r to %r command', + self._alias_name, + remaining, + parsed_alias_args.command, + ) + # Pass the update remaining args and global args to the service command + # the alias proxied to. + command = self._command_table[parsed_alias_args.command] + if self._shadow_proxy_command: + shadow_name = self._shadow_proxy_command.name + # Use the shadow command only if the aliases value + # uses that command indicating it needs to proxy over to + # a built-in command. + if shadow_name == parsed_alias_args.command: + LOG.debug( + 'Using shadowed command object: %s for alias: %s', + self._shadow_proxy_command, + self._alias_name, + ) + command = self._shadow_proxy_command + return command(remaining, parsed_globals) + + def _get_alias_args(self): + try: + alias_args = shlex.split(self._alias_value) + except ValueError as e: + raise InvalidAliasException( + f'Value of alias "{self._alias_name}" could not be parsed. ' + f'Received error: {e} when parsing:\n{self._alias_value}' + ) + + alias_args = [arg.strip(os.linesep) for arg in alias_args] + LOG.debug( + 'Expanded subcommand alias %r with value: %r to: %r', + self._alias_name, + self._alias_value, + alias_args, + ) + return alias_args + + def _update_parsed_globals(self, parsed_alias_args, parsed_globals, remaining): + global_params_to_update = self._get_global_parameters_to_update( + parsed_alias_args + ) + # Emit the top level args parsed event to ensure all possible + # customizations that typically get applied are applied to the + # global parameters provided in the alias before updating + # the original provided global parameter values + # and passing those onto subsequent commands. + emit_top_level_args_parsed_event(self._session, parsed_alias_args, remaining) + for param_name in global_params_to_update: + updated_param_value = getattr(parsed_alias_args, param_name) + setattr(parsed_globals, param_name, updated_param_value) + + def _get_global_parameters_to_update(self, parsed_alias_args): + # Retrieve a list of global parameters that the newly parsed args + # from the alias will have to clobber from the originally provided + # parsed globals. + global_params_to_update = [] + for parsed_param, value in vars(parsed_alias_args).items(): + # To determine which parameters in the alias were global values + # compare the parsed alias parameters to the default as + # specified by the parser. If the parsed values from the alias + # differs from the default value in the parser, + # that global parameter must have been provided in the alias. + if self._parser.get_default(parsed_param) != value: + if parsed_param in self.UNSUPPORTED_GLOBAL_PARAMETERS: + raise InvalidAliasException( + f'Global parameter "--{parsed_param}" detected in alias ' + f'"{self._alias_name}" which is not supported in ' + 'subcommand aliases.' + ) + else: + global_params_to_update.append(parsed_param) + return global_params_to_update + + +class ExternalAliasCommand(BaseAliasCommand): + def __init__(self, alias_name, alias_value, invoker=subprocess.call): + """Command for external aliases + + Executes command external of CLI as opposed to being a proxy + to another command. + + :type alias_name: string + :param alias_name: The name of the alias + + :type alias_value: string + :param alias_value: The parsed value of the alias. This can be + retrieved from `AliasLoader.get_aliases()[alias_name]` + + :type invoker: callable + :param invoker: Callable to run arguments of external alias. The + signature should match that of ``subprocess.call`` + """ + self._alias_name = alias_name + self._alias_value = alias_value + self._invoker = invoker + + def __call__(self, args, parsed_globals): + command_components = [self._alias_value[1:]] + command_components.extend( + compat_shell_quote(a, shell=True) for a in args + ) + command = ' '.join(command_components) + LOG.debug( + 'Using external alias %r with value: %r to run: %r', + self._alias_name, + self._alias_value, + command, + ) + return self._invoker(command, shell=True) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/argparser.py b/rep_localstack/lib/python3.12/site-packages/awscli/argparser.py new file mode 100644 index 000000000..c50634e46 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/argparser.py @@ -0,0 +1,219 @@ +# Copyright 2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import argparse +import sys +from difflib import get_close_matches + +AWS_CLI_V2_MESSAGE = ( + 'Note: AWS CLI version 2, the latest major version ' + 'of the AWS CLI, is now stable and recommended for general ' + 'use. For more information, see the AWS CLI version 2 ' + 'installation instructions at: https://docs.aws.amazon.com/cli/' + 'latest/userguide/install-cliv2.html' +) + +HELP_BLURB = ( + "To see help text, you can run:\n" + "\n" + " aws help\n" + " aws help\n" + " aws help\n" +) +USAGE = ( + "\r%s\n\n" + "usage: aws [options] " + "[ ...] [parameters]\n" + "%s" % (AWS_CLI_V2_MESSAGE, HELP_BLURB) +) + + +class CommandAction(argparse.Action): + """Custom action for CLI command arguments + + Allows the choices for the argument to be mutable. The choices + are dynamically retrieved from the keys of the referenced command + table + """ + + def __init__(self, option_strings, dest, command_table, **kwargs): + self.command_table = command_table + super().__init__( + option_strings, dest, choices=self.choices, **kwargs + ) + + def __call__(self, parser, namespace, values, option_string=None): + setattr(namespace, self.dest, values) + + @property + def choices(self): + return list(self.command_table.keys()) + + @choices.setter + def choices(self, val): + # argparse.Action will always try to set this value upon + # instantiation, but this value should be dynamically + # generated from the command table keys. So make this a + # NOOP if argparse.Action tries to set this value. + pass + + +class CLIArgParser(argparse.ArgumentParser): + Formatter = argparse.RawTextHelpFormatter + + # When displaying invalid choice error messages, + # this controls how many options to show per line. + ChoicesPerLine = 2 + + def _check_value(self, action, value): + """ + It's probably not a great idea to override a "hidden" method + but the default behavior is pretty ugly and there doesn't + seem to be any other way to change it. + """ + # converted value must be one of the choices (if specified) + if action.choices is not None and value not in action.choices: + msg = ['Invalid choice, valid choices are:\n'] + for i in range(len(action.choices))[:: self.ChoicesPerLine]: + current = [] + for choice in action.choices[i : i + self.ChoicesPerLine]: + current.append('%-40s' % choice) + msg.append(' | '.join(current)) + possible = get_close_matches(value, action.choices, cutoff=0.8) + if possible: + extra = ['\n\nInvalid choice: %r, maybe you meant:\n' % value] + for word in possible: + extra.append(' * %s' % word) + msg.extend(extra) + raise argparse.ArgumentError(action, '\n'.join(msg)) + + def parse_known_args(self, args, namespace=None): + parsed, remaining = super().parse_known_args( + args, namespace + ) + terminal_encoding = getattr(sys.stdin, 'encoding', 'utf-8') + if terminal_encoding is None: + # In some cases, sys.stdin won't have an encoding set, + # (e.g if it's set to a StringIO). In this case we just + # default to utf-8. + terminal_encoding = 'utf-8' + for arg, value in vars(parsed).items(): + if isinstance(value, bytes): + setattr(parsed, arg, value.decode(terminal_encoding)) + elif isinstance(value, list): + encoded = [] + for v in value: + if isinstance(v, bytes): + encoded.append(v.decode(terminal_encoding)) + else: + encoded.append(v) + setattr(parsed, arg, encoded) + return parsed, remaining + + +class MainArgParser(CLIArgParser): + Formatter = argparse.RawTextHelpFormatter + + def __init__( + self, + command_table, + version_string, + description, + argument_table, + prog=None, + ): + super().__init__( + formatter_class=self.Formatter, + add_help=False, + conflict_handler='resolve', + description=description, + usage=USAGE, + prog=prog, + ) + self._build(command_table, version_string, argument_table) + + def _create_choice_help(self, choices): + help_str = '' + for choice in sorted(choices): + help_str += '* %s\n' % choice + return help_str + + def _build(self, command_table, version_string, argument_table): + for argument_name in argument_table: + argument = argument_table[argument_name] + argument.add_to_parser(self) + self.add_argument( + '--version', + action="version", + version=version_string, + help='Display the version of this tool', + ) + self.add_argument( + 'command', action=CommandAction, command_table=command_table + ) + + +class ServiceArgParser(CLIArgParser): + def __init__(self, operations_table, service_name): + super().__init__( + formatter_class=argparse.RawTextHelpFormatter, + add_help=False, + conflict_handler='resolve', + usage=USAGE, + ) + self._build(operations_table) + self._service_name = service_name + + def _build(self, operations_table): + self.add_argument( + 'operation', action=CommandAction, command_table=operations_table + ) + + +class ArgTableArgParser(CLIArgParser): + """CLI arg parser based on an argument table.""" + + def __init__(self, argument_table, command_table=None): + # command_table is an optional subcommand_table. If it's passed + # in, then we'll update the argparse to parse a 'subcommand' argument + # and populate the choices field with the command table keys. + super().__init__( + formatter_class=self.Formatter, + add_help=False, + usage=USAGE, + conflict_handler='resolve', + ) + if command_table is None: + command_table = {} + self._build(argument_table, command_table) + + def _build(self, argument_table, command_table): + for arg_name in argument_table: + argument = argument_table[arg_name] + argument.add_to_parser(self) + if command_table: + self.add_argument( + 'subcommand', + action=CommandAction, + command_table=command_table, + nargs='?', + ) + + def parse_known_args(self, args, namespace=None): + if len(args) == 1 and args[0] == 'help': + namespace = argparse.Namespace() + namespace.help = 'help' + return namespace, [] + else: + return super().parse_known_args( + args, namespace + ) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/argprocess.py b/rep_localstack/lib/python3.12/site-packages/awscli/argprocess.py new file mode 100644 index 000000000..445fc652e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/argprocess.py @@ -0,0 +1,572 @@ +# Copyright 2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +"""Module for processing CLI args.""" + +import logging +import os + +from botocore.compat import OrderedDict, json +from botocore.utils import is_json_value_header + +from awscli import COMPLEX_TYPES, SCALAR_TYPES, shorthand +from awscli.utils import ( + find_service_and_method_in_event_name, + is_document_type, + is_document_type_container, +) + +LOG = logging.getLogger('awscli.argprocess') + + +class ParamError(Exception): + def __init__(self, cli_name, message): + """ + + :type cli_name: string + :param cli_name: The complete cli argument name, + e.g. "--foo-bar". It should include the leading + hyphens if that's how a user would specify the name. + + :type message: string + :param message: The error message to display to the user. + + """ + full_message = "Error parsing parameter '%s': %s" % (cli_name, message) + super().__init__(full_message) + self.cli_name = cli_name + self.message = message + + +class ParamSyntaxError(Exception): + pass + + +class ParamUnknownKeyError(Exception): + def __init__(self, key, valid_keys): + valid_keys = ', '.join(valid_keys) + full_message = ( + f"Unknown key '{key}', valid choices are: {valid_key}" + ) + super().__init__(full_message) + + +class TooComplexError(Exception): + pass + + +def unpack_argument( + session, service_name, operation_name, cli_argument, value, parsed_globals +): + """ + Unpack an argument's value from the commandline. This is part one of a two + step process in handling commandline arguments. Emits the load-cli-arg + event with service, operation, and parameter names. Example:: + + load-cli-arg.ec2.describe-instances.foo + + """ + param_name = getattr(cli_argument, 'name', 'anonymous') + + value_override = session.emit_first_non_none_response( + f'load-cli-arg.{service_name}.{operation_name}.{param_name}', + param=cli_argument, + value=value, + service_name=service_name, + operation_name=operation_name, + parsed_globals=parsed_globals, + ) + + if value_override is not None: + value = value_override + + return value + + +def detect_shape_structure(param): + stack = [] + return _detect_shape_structure(param, stack) + + +def _detect_shape_structure(param, stack): + if param.name in stack: + return 'recursive' + else: + stack.append(param.name) + try: + if param.type_name in SCALAR_TYPES: + return 'scalar' + elif param.type_name == 'structure': + sub_types = [ + _detect_shape_structure(p, stack) + for p in param.members.values() + ] + # We're distinguishing between structure(scalar) + # and structure(scalars), because for the case of + # a single scalar in a structure we can simplify + # more than a structure(scalars). + if len(sub_types) == 1 and all(p == 'scalar' for p in sub_types): + return 'structure(scalar)' + elif len(sub_types) > 1 and all(p == 'scalar' for p in sub_types): + return 'structure(scalars)' + else: + return 'structure(%s)' % ', '.join(sorted(set(sub_types))) + elif param.type_name == 'list': + return 'list-%s' % _detect_shape_structure(param.member, stack) + elif param.type_name == 'map': + if param.value.type_name in SCALAR_TYPES: + return 'map-scalar' + else: + return 'map-%s' % _detect_shape_structure(param.value, stack) + finally: + stack.pop() + + +def unpack_cli_arg(cli_argument, value): + """ + Parses and unpacks the encoded string command line parameter + and returns native Python data structures that can be passed + to the Operation. + + :type cli_argument: :class:`awscli.arguments.BaseCLIArgument` + :param cli_argument: The CLI argument object. + + :param value: The value of the parameter. This can be a number of + different python types (str, list, etc). This is the value as + it's specified on the command line. + + :return: The "unpacked" argument than can be sent to the `Operation` + object in python. + """ + return _unpack_cli_arg( + cli_argument.argument_model, value, cli_argument.cli_name + ) + + +def _special_type(model): + # check if model is jsonvalue header and that value is serializable + if ( + model.serialization.get('jsonvalue') + and model.serialization.get('location') == 'header' + and model.type_name == 'string' + ): + return True + return False + + +def _unpack_cli_arg(argument_model, value, cli_name): + if is_json_value_header(argument_model) or is_document_type( + argument_model + ): + return _unpack_json_cli_arg(argument_model, value, cli_name) + elif argument_model.type_name in SCALAR_TYPES: + return unpack_scalar_cli_arg(argument_model, value, cli_name) + elif argument_model.type_name in COMPLEX_TYPES: + return _unpack_complex_cli_arg(argument_model, value, cli_name) + else: + return str(value) + + +def _unpack_json_cli_arg(argument_model, value, cli_name): + try: + return json.loads(value, object_pairs_hook=OrderedDict) + except ValueError as e: + raise ParamError( + cli_name, f"Invalid JSON: {e}\nJSON received: {value}" + ) + + +def _unpack_complex_cli_arg(argument_model, value, cli_name): + type_name = argument_model.type_name + if type_name == 'structure' or type_name == 'map': + if value.lstrip()[0] == '{': + return _unpack_json_cli_arg(argument_model, value, cli_name) + raise ParamError(cli_name, f"Invalid JSON:\n{value}") + elif type_name == 'list': + if isinstance(value, str): + if value.lstrip()[0] == '[': + return _unpack_json_cli_arg(argument_model, value, cli_name) + elif isinstance(value, list) and len(value) == 1: + single_value = value[0].strip() + if single_value and single_value[0] == '[': + return _unpack_json_cli_arg(argument_model, value[0], cli_name) + try: + # There's a couple of cases remaining here. + # 1. It's possible that this is just a list of strings, i.e + # --security-group-ids sg-1 sg-2 sg-3 => ['sg-1', 'sg-2', 'sg-3'] + # 2. It's possible this is a list of json objects: + # --filters '{"Name": ..}' '{"Name": ...}' + member_shape_model = argument_model.member + return [ + _unpack_cli_arg(member_shape_model, v, cli_name) for v in value + ] + except (ValueError, TypeError): + # The list params don't have a name/cli_name attached to them + # so they will have bad error messages. We're going to + # attach the parent parameter to this error message to provide + # a more helpful error message. + raise ParamError(cli_name, value[0]) + + +def unpack_scalar_cli_arg(argument_model, value, cli_name=''): + # Note the cli_name is used strictly for error reporting. It's + # not required to use unpack_scalar_cli_arg + if ( + argument_model.type_name == 'integer' + or argument_model.type_name == 'long' + ): + return int(value) + elif ( + argument_model.type_name == 'float' + or argument_model.type_name == 'double' + ): + # TODO: losing precision on double types + return float(value) + elif ( + argument_model.type_name == 'blob' + and argument_model.serialization.get('streaming') + ): + file_path = os.path.expandvars(value) + file_path = os.path.expanduser(file_path) + if not os.path.isfile(file_path): + msg = 'Blob values must be a path to a file.' + raise ParamError(cli_name, msg) + return open(file_path, 'rb') + elif argument_model.type_name == 'boolean': + if isinstance(value, str) and value.lower() == 'false': + return False + return bool(value) + else: + return value + + +def _supports_shorthand_syntax(model): + # Shorthand syntax is only supported if: + # + # 1. The argument is not a document type nor is a wrapper around a document + # type (e.g. is a list of document types or a map of document types). These + # should all be expressed as JSON input. + # + # 2. The argument is sufficiently complex, that is, it's base type is + # a complex type *and* if it's a list, then it can't be a list of + # scalar types. + if is_document_type_container(model): + return False + return _is_complex_shape(model) + + +def _is_complex_shape(model): + if model.type_name not in ['structure', 'list', 'map']: + return False + elif model.type_name == 'list': + if model.member.type_name not in ['structure', 'list', 'map']: + return False + return True + + +class ParamShorthand: + def _uses_old_list_case(self, service_id, operation_name, argument_name): + """ + Determines whether a given operation for a service needs to use the + deprecated shorthand parsing case for lists of structures that only have + a single member. + """ + cases = { + 'firehose': {'put-record-batch': ['records']}, + 'workspaces': { + 'reboot-workspaces': ['reboot-workspace-requests'], + 'rebuild-workspaces': ['rebuild-workspace-requests'], + 'terminate-workspaces': ['terminate-workspace-requests'], + }, + 'elastic-load-balancing': { + 'remove-tags': ['tags'], + 'describe-instance-health': ['instances'], + 'deregister-instances-from-load-balancer': ['instances'], + 'register-instances-with-load-balancer': ['instances'], + }, + } + cases = cases.get(service_id, {}).get(operation_name, []) + return argument_name in cases + + +class ParamShorthandParser(ParamShorthand): + def __init__(self): + self._parser = shorthand.ShorthandParser() + self._visitor = shorthand.BackCompatVisitor() + + def __call__(self, cli_argument, value, event_name, **kwargs): + """Attempt to parse shorthand syntax for values. + + This is intended to be hooked up as an event handler (hence the + **kwargs). Given ``param`` object and its string ``value``, + figure out if we can parse it. If we can parse it, we return + the parsed value (typically some sort of python dict). + + :type cli_argument: :class:`awscli.arguments.BaseCLIArgument` + :param cli_argument: The CLI argument object. + + :type param: :class:`botocore.parameters.Parameter` + :param param: The parameter object (includes various metadata + about the parameter). + + :type value: str + :param value: The value for the parameter type on the command + line, e.g ``--foo this_value``, value would be ``"this_value"``. + + :returns: If we can parse the value we return the parsed value. + If it looks like JSON, we return None (which tells the event + emitter to use the default ``unpack_cli_arg`` provided that + no other event handlers can parsed the value). If we + run into an error parsing the value, a ``ParamError`` will + be raised. + + """ + + if not self._should_parse_as_shorthand(cli_argument, value): + return + else: + service_id, operation_name = find_service_and_method_in_event_name( + event_name + ) + return self._parse_as_shorthand( + cli_argument, value, service_id, operation_name + ) + + def _parse_as_shorthand( + self, cli_argument, value, service_id, operation_name + ): + try: + LOG.debug("Parsing param %s as shorthand", cli_argument.cli_name) + handled_value = self._handle_special_cases( + cli_argument, value, service_id, operation_name + ) + if handled_value is not None: + return handled_value + if isinstance(value, list): + # Because of how we're using argparse, list shapes + # are configured with nargs='+' which means the ``value`` + # is given to us "conveniently" as a list. When + # this happens we need to parse each list element + # individually. + parsed = [self._parser.parse(v) for v in value] + self._visitor.visit(parsed, cli_argument.argument_model) + else: + # Otherwise value is just a string. + parsed = self._parser.parse(value) + self._visitor.visit(parsed, cli_argument.argument_model) + except shorthand.ShorthandParseError as e: + raise ParamError(cli_argument.cli_name, str(e)) + except (ParamError, ParamUnknownKeyError) as e: + # The shorthand parse methods don't have the cli_name, + # so any ParamError won't have this value. To accommodate + # this, ParamErrors are caught and reraised with the cli_name + # injected. + raise ParamError(cli_argument.cli_name, str(e)) + return parsed + + def _handle_special_cases( + self, cli_argument, value, service_id, operation_name + ): + # We need to handle a few special cases that the previous + # parser handled in order to stay backwards compatible. + model = cli_argument.argument_model + if ( + model.type_name == 'list' + and model.member.type_name == 'structure' + and len(model.member.members) == 1 + and self._uses_old_list_case( + service_id, operation_name, cli_argument.name + ) + ): + # First special case is handling a list of structures + # of a single element such as: + # + # --instance-ids id-1 id-2 id-3 + # + # gets parsed as: + # + # [{"InstanceId": "id-1"}, {"InstanceId": "id-2"}, + # {"InstanceId": "id-3"}] + key_name = list(model.member.members.keys())[0] + new_values = [{key_name: v} for v in value] + return new_values + elif ( + model.type_name == 'structure' + and len(model.members) == 1 + and 'Value' in model.members + and model.members['Value'].type_name == 'string' + and '=' not in value + ): + # Second special case is where a structure of a single + # value whose member name is "Value" can be specified + # as: + # --instance-terminate-behavior shutdown + # + # gets parsed as: + # {"Value": "shutdown"} + return {'Value': value} + + def _should_parse_as_shorthand(self, cli_argument, value): + # We first need to make sure this is a parameter that qualifies + # for simplification. The first short-circuit case is if it looks + # like json we immediately return. + if value and isinstance(value, list): + check_val = value[0] + else: + check_val = value + if isinstance(check_val, str) and check_val.strip().startswith( + ('[', '{') + ): + LOG.debug( + "Param %s looks like JSON, not considered for " + "param shorthand.", + cli_argument.py_name, + ) + return False + model = cli_argument.argument_model + return _supports_shorthand_syntax(model) + + +class ParamShorthandDocGen(ParamShorthand): + """Documentation generator for param shorthand syntax.""" + + _DONT_DOC = object() + _MAX_STACK = 3 + + def supports_shorthand(self, argument_model): + """Checks if a CLI argument supports shorthand syntax.""" + if argument_model is not None: + return _supports_shorthand_syntax(argument_model) + return False + + def generate_shorthand_example( + self, cli_argument, service_id, operation_name + ): + """Generate documentation for a CLI argument. + + :type cli_argument: awscli.arguments.BaseCLIArgument + :param cli_argument: The CLI argument which to generate + documentation for. + + :return: Returns either a string or ``None``. If a string + is returned, it is the generated shorthand example. + If a value of ``None`` is returned then this indicates + that no shorthand syntax is available for the provided + ``argument_model``. + + """ + docstring = self._handle_special_cases( + cli_argument, service_id, operation_name + ) + if docstring is self._DONT_DOC: + return None + elif docstring: + return docstring + + # Otherwise we fall back to the normal docgen for shorthand + # syntax. + stack = [] + try: + if cli_argument.argument_model.type_name == 'list': + argument_model = cli_argument.argument_model.member + return self._shorthand_docs(argument_model, stack) + ' ...' + else: + return self._shorthand_docs(cli_argument.argument_model, stack) + except TooComplexError: + return '' + + def _handle_special_cases(self, cli_argument, service_id, operation_name): + model = cli_argument.argument_model + if ( + model.type_name == 'list' + and model.member.type_name == 'structure' + and len(model.member.members) == 1 + and self._uses_old_list_case( + service_id, operation_name, cli_argument.name + ) + ): + member_name = list(model.member.members)[0] + # Handle special case where the min/max is exactly one. + metadata = model.metadata + cli_name = cli_argument.cli_name + if metadata.get('min') == 1 and metadata.get('max') == 1: + return f'{cli_name} {member_name}1' + return f'{cli_name} {member_name}1 {member_name}2 {member_name}3' + elif ( + model.type_name == 'structure' + and len(model.members) == 1 + and 'Value' in model.members + and model.members['Value'].type_name == 'string' + ): + return self._DONT_DOC + return '' + + def _shorthand_docs(self, argument_model, stack): + if len(stack) > self._MAX_STACK: + raise TooComplexError() + if argument_model.type_name == 'structure': + return self._structure_docs(argument_model, stack) + elif argument_model.type_name == 'list': + return self._list_docs(argument_model, stack) + elif argument_model.type_name == 'map': + return self._map_docs(argument_model, stack) + else: + return argument_model.type_name + + def _list_docs(self, argument_model, stack): + list_member = argument_model.member + stack.append(list_member.name) + try: + element_docs = self._shorthand_docs(argument_model.member, stack) + finally: + stack.pop() + if list_member.type_name in COMPLEX_TYPES or len(stack) > 1: + return '[%s,%s]' % (element_docs, element_docs) + else: + return '%s,%s' % (element_docs, element_docs) + + def _map_docs(self, argument_model, stack): + k = argument_model.key + stack.append(argument_model.value.name) + try: + value_docs = self._shorthand_docs(argument_model.value, stack) + finally: + stack.pop() + start = 'KeyName1=%s,KeyName2=%s' % (value_docs, value_docs) + if k.enum and not stack: + start += '\n\nWhere valid key names are:\n' + for enum in k.enum: + start += ' %s\n' % enum + elif stack: + start = '{%s}' % start + return start + + def _structure_docs(self, argument_model, stack): + parts = [] + for name, member_shape in argument_model.members.items(): + if is_document_type_container(member_shape): + continue + parts.append(self._member_docs(name, member_shape, stack)) + inner_part = ','.join(parts) + if not stack: + return inner_part + return '{%s}' % inner_part + + def _member_docs(self, name, shape, stack): + if stack.count(shape.name) > 0: + return '( ... recursive ... )' + stack.append(shape.name) + try: + value_doc = self._shorthand_docs(shape, stack) + finally: + stack.pop() + return '%s=%s' % (name, value_doc) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/arguments.py b/rep_localstack/lib/python3.12/site-packages/awscli/arguments.py new file mode 100644 index 000000000..f9f75fb57 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/arguments.py @@ -0,0 +1,604 @@ +# Copyright 2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +"""Abstractions for CLI arguments. + +This module contains abstractions for representing CLI arguments. +This includes how the CLI argument parser is created, how arguments +are serialized, and how arguments are bound (if at all) to operation +arguments. + +The BaseCLIArgument is the interface for all arguments. This is the interface +expected by objects that work with arguments. If you want to implement your +own argument subclass, make sure it implements everything in BaseCLIArgument. + +Arguments generally fall into one of several categories: + +* global argument. These arguments may influence what the CLI does, + but aren't part of the input parameters needed to make an API call. For + example, the ``--region`` argument specifies which region to send the request + to. The ``--output`` argument specifies how to display the response to the + user. The ``--query`` argument specifies how to select specific elements + from a response. +* operation argument. These are arguments that influence the parameters we + send to a service when making an API call. Some of these arguments are + automatically created directly from introspecting the JSON service model. + Sometimes customizations may provide a pseudo-argument that takes the + user input and maps the input value to several API parameters. + +""" + +import logging + +from botocore.hooks import first_non_none_response + +from awscli.argprocess import unpack_cli_arg +from awscli.schema import SchemaTransformer +from botocore import model, xform_name + +LOG = logging.getLogger('awscli.arguments') + + +class UnknownArgumentError(Exception): + pass + + +def create_argument_model_from_schema(schema): + # Given a JSON schema (described in schema.py), convert it + # to a shape object from `botocore.model.Shape` that can be + # used as the argument_model for the Argument classes below. + transformer = SchemaTransformer() + shapes_map = transformer.transform(schema) + shape_resolver = model.ShapeResolver(shapes_map) + # The SchemaTransformer guarantees that the top level shape + # will always be named 'InputShape'. + arg_shape = shape_resolver.get_shape_by_name('InputShape') + return arg_shape + + +class BaseCLIArgument: + """Interface for CLI argument. + + This class represents the interface used for representing CLI + arguments. + + """ + + def __init__(self, name): + self._name = name + + def add_to_arg_table(self, argument_table): + """Add this object to the argument_table. + + The ``argument_table`` represents the argument for the operation. + This is called by the ``ServiceOperation`` object to create the + arguments associated with the operation. + + :type argument_table: dict + :param argument_table: The argument table. The key is the argument + name, and the value is an object implementing this interface. + """ + argument_table[self.name] = self + + def add_to_parser(self, parser): + """Add this object to the parser instance. + + This method is called by the associated ``ArgumentParser`` + instance. This method should make the relevant calls + to ``add_argument`` to add itself to the argparser. + + :type parser: ``argparse.ArgumentParser``. + :param parser: The argument parser associated with the operation. + + """ + pass + + def add_to_params(self, parameters, value): + """Add this object to the parameters dict. + + This method is responsible for taking the value specified + on the command line, and deciding how that corresponds to + parameters used by the service/operation. + + :type parameters: dict + :param parameters: The parameters dictionary that will be + given to ``botocore``. This should match up to the + parameters associated with the particular operation. + + :param value: The value associated with the CLI option. + + """ + pass + + @property + def name(self): + return self._name + + @property + def cli_name(self): + return '--' + self._name + + @property + def cli_type_name(self): + raise NotImplementedError("cli_type_name") + + @property + def required(self): + raise NotImplementedError("required") + + @property + def documentation(self): + raise NotImplementedError("documentation") + + @property + def cli_type(self): + raise NotImplementedError("cli_type") + + @property + def py_name(self): + return self._name.replace('-', '_') + + @property + def choices(self): + """List valid choices for argument value. + + If this value is not None then this should return a list of valid + values for the argument. + + """ + return None + + @property + def synopsis(self): + return '' + + @property + def positional_arg(self): + return False + + @property + def nargs(self): + return None + + @name.setter + def name(self, value): + self._name = value + + @property + def group_name(self): + """Get the group name associated with the argument. + + An argument can be part of a group. This property will + return the name of that group. + + This base class has no default behavior for groups, code + that consumes argument objects can use them for whatever + purposes they like (documentation, mutually exclusive group + validation, etc.). + + """ + return None + + +class CustomArgument(BaseCLIArgument): + """ + Represents a CLI argument that is configured from a dictionary. + + For example, the "top level" arguments used for the CLI + (--region, --output) can use a CustomArgument argument, + as these are described in the cli.json file as dictionaries. + + This class is also useful for plugins/customizations that want to + add additional args. + + """ + + def __init__( + self, + name, + help_text='', + dest=None, + default=None, + action=None, + required=None, + choices=None, + nargs=None, + cli_type_name=None, + group_name=None, + positional_arg=False, + no_paramfile=False, + argument_model=None, + synopsis='', + const=None, + ): + self._name = name + self._help = help_text + self._dest = dest + self._default = default + self._action = action + self._required = required + self._nargs = nargs + self._const = const + self._cli_type_name = cli_type_name + self._group_name = group_name + self._positional_arg = positional_arg + if choices is None: + choices = [] + self._choices = choices + self._synopsis = synopsis + + # These are public attributes that are ok to access from external + # objects. + self.no_paramfile = no_paramfile + self.argument_model = None + + if argument_model is None: + argument_model = self._create_scalar_argument_model() + self.argument_model = argument_model + + # If the top level element is a list then set nargs to + # accept multiple values separated by a space. + if ( + self.argument_model is not None + and self.argument_model.type_name == 'list' + ): + self._nargs = '+' + + def _create_scalar_argument_model(self): + if self._nargs is not None: + # If nargs is not None then argparse will parse the value + # as a list, so we don't create an argument_object so we don't + # go through param validation. + return None + # If no argument model is provided, we create a basic + # shape argument. + type_name = self.cli_type_name + return create_argument_model_from_schema({'type': type_name}) + + @property + def cli_name(self): + if self._positional_arg: + return self._name + else: + return '--' + self._name + + def add_to_parser(self, parser): + """ + + See the ``BaseCLIArgument.add_to_parser`` docs for more information. + + """ + cli_name = self.cli_name + kwargs = {} + if self._dest is not None: + kwargs['dest'] = self._dest + if self._action is not None: + kwargs['action'] = self._action + if self._default is not None: + kwargs['default'] = self._default + if self._choices: + kwargs['choices'] = self._choices + if self._required is not None: + kwargs['required'] = self._required + if self._nargs is not None: + kwargs['nargs'] = self._nargs + if self._const is not None: + kwargs['const'] = self._const + parser.add_argument(cli_name, **kwargs) + + @property + def required(self): + if self._required is None: + return False + return self._required + + @required.setter + def required(self, value): + self._required = value + + @property + def documentation(self): + return self._help + + @property + def cli_type_name(self): + if self._cli_type_name is not None: + return self._cli_type_name + elif self._action in ['store_true', 'store_false']: + return 'boolean' + elif self.argument_model is not None: + return self.argument_model.type_name + else: + # Default to 'string' type if we don't have any + # other info. + return 'string' + + @property + def cli_type(self): + cli_type = str + if self._action in ['store_true', 'store_false']: + cli_type = bool + return cli_type + + @property + def choices(self): + return self._choices + + @property + def group_name(self): + return self._group_name + + @property + def synopsis(self): + return self._synopsis + + @property + def positional_arg(self): + return self._positional_arg + + @property + def nargs(self): + return self._nargs + + +class CLIArgument(BaseCLIArgument): + """Represents a CLI argument that maps to a service parameter.""" + + TYPE_MAP = { + 'structure': str, + 'map': str, + 'timestamp': str, + 'list': str, + 'string': str, + 'float': float, + 'integer': str, + 'long': int, + 'boolean': bool, + 'double': float, + 'blob': str, + } + + def __init__( + self, + name, + argument_model, + operation_model, + event_emitter, + is_required=False, + serialized_name=None, + ): + """ + + :type name: str + :param name: The name of the argument in "cli" form + (e.g. ``min-instances``). + + :type argument_model: ``botocore.model.Shape`` + :param argument_model: The shape object that models the argument. + + :type argument_model: ``botocore.model.OperationModel`` + :param argument_model: The object that models the associated operation. + + :type event_emitter: ``botocore.hooks.BaseEventHooks`` + :param event_emitter: The event emitter to use when emitting events. + This class will emit events during parts of the argument + parsing process. This event emitter is what is used to emit + such events. + + :type is_required: boolean + :param is_required: Indicates if this parameter is required or not. + + """ + self._name = name + # This is the name we need to use when constructing the parameters + # dict we send to botocore. While we can change the .name attribute + # which is the name exposed in the CLI, the serialized name we use + # for botocore is invariant and should not be changed. + if serialized_name is None: + serialized_name = name + self._serialized_name = serialized_name + self.argument_model = argument_model + self._required = is_required + self._operation_model = operation_model + self._event_emitter = event_emitter + self._documentation = argument_model.documentation + + @property + def py_name(self): + return self._name.replace('-', '_') + + @property + def required(self): + return self._required + + @required.setter + def required(self, value): + self._required = value + + @property + def documentation(self): + return self._documentation + + @documentation.setter + def documentation(self, value): + self._documentation = value + + @property + def cli_type_name(self): + return self.argument_model.type_name + + @property + def cli_type(self): + return self.TYPE_MAP.get(self.argument_model.type_name, str) + + def add_to_parser(self, parser): + """ + + See the ``BaseCLIArgument.add_to_parser`` docs for more information. + + """ + cli_name = self.cli_name + parser.add_argument( + cli_name, + help=self.documentation.replace('%', '%%'), + type=self.cli_type, + required=self.required, + ) + + def add_to_params(self, parameters, value): + if value is None: + return + else: + # This is a two step process. First is the process of converting + # the command line value into a python value. Normally this is + # handled by argparse directly, but there are cases where extra + # processing is needed. For example, "--foo name=value" the value + # can be converted from "name=value" to {"name": "value"}. This is + # referred to as the "unpacking" process. Once we've unpacked the + # argument value, we have to decide how this is converted into + # something that can be consumed by botocore. Many times this is + # just associating the key and value in the params dict as down + # below. Sometimes this can be more complicated, and subclasses + # can customize as they need. + unpacked = self._unpack_argument(value) + LOG.debug( + 'Unpacked value of %r for parameter "%s": %r', + value, + self.py_name, + unpacked, + ) + parameters[self._serialized_name] = unpacked + + def _unpack_argument(self, value): + service_name = self._operation_model.service_model.service_name + operation_name = xform_name(self._operation_model.name, '-') + override = self._emit_first_response( + f'process-cli-arg.{service_name}.{operation_name}', + param=self.argument_model, + cli_argument=self, + value=value, + ) + if override is not None: + # A plugin supplied an alternate conversion, + # use it instead. + return override + else: + # Fall back to the default arg processing. + return unpack_cli_arg(self, value) + + def _emit(self, name, **kwargs): + return self._event_emitter.emit(name, **kwargs) + + def _emit_first_response(self, name, **kwargs): + responses = self._emit(name, **kwargs) + return first_non_none_response(responses) + + +class ListArgument(CLIArgument): + def add_to_parser(self, parser): + cli_name = self.cli_name + parser.add_argument( + cli_name, nargs='*', type=self.cli_type, required=self.required + ) + + +class BooleanArgument(CLIArgument): + """Represent a boolean CLI argument. + + A boolean parameter is specified without a value:: + + aws foo bar --enabled + + For cases where the boolean parameter is required we need to add + two parameters:: + + aws foo bar --enabled + aws foo bar --no-enabled + + We use the capabilities of the CLIArgument to help achieve this. + + """ + + def __init__( + self, + name, + argument_model, + operation_model, + event_emitter, + is_required=False, + action='store_true', + dest=None, + group_name=None, + default=None, + serialized_name=None, + ): + super().__init__( + name, + argument_model, + operation_model, + event_emitter, + is_required, + serialized_name=serialized_name, + ) + self._mutex_group = None + self._action = action + if dest is None: + self._destination = self.py_name + else: + self._destination = dest + if group_name is None: + self._group_name = self.name + else: + self._group_name = group_name + self._default = default + + def add_to_params(self, parameters, value): + # If a value was explicitly specified (so value is True/False + # but *not* None) then we add it to the params dict. + # If the value was not explicitly set (value is None) + # we don't add it to the params dict. + if value is not None: + parameters[self._serialized_name] = value + + def add_to_arg_table(self, argument_table): + # Boolean parameters are a bit tricky. For a single boolean parameter + # we actually want two CLI params, a --foo, and a --no-foo. To do this + # we need to add two entries to the argument table. So we can add + # ourself as the positive option (--no), and then create a clone of + # ourselves for the negative service. We then insert both into the + # arg table. + argument_table[self.name] = self + negative_name = 'no-%s' % self.name + negative_version = self.__class__( + negative_name, + self.argument_model, + self._operation_model, + self._event_emitter, + action='store_false', + dest=self._destination, + group_name=self.group_name, + serialized_name=self._serialized_name, + ) + argument_table[negative_name] = negative_version + + def add_to_parser(self, parser): + parser.add_argument( + self.cli_name, + help=self.documentation.replace('%', '%%'), + action=self._action, + default=self._default, + dest=self._destination, + ) + + @property + def group_name(self): + return self._group_name diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/__init__.py b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/__init__.py new file mode 100644 index 000000000..b687f69da --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +__version__ = '0.16.0' diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/__pycache__/__init__.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 000000000..837eaf5f1 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/__pycache__/__init__.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/__pycache__/docevents.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/__pycache__/docevents.cpython-312.pyc new file mode 100644 index 000000000..6e7ab1076 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/__pycache__/docevents.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/__pycache__/docstringparser.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/__pycache__/docstringparser.cpython-312.pyc new file mode 100644 index 000000000..77c7117e4 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/__pycache__/docstringparser.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/__pycache__/restdoc.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/__pycache__/restdoc.cpython-312.pyc new file mode 100644 index 000000000..b3e8f2222 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/__pycache__/restdoc.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/__pycache__/style.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/__pycache__/style.cpython-312.pyc new file mode 100644 index 000000000..f863d4c1d Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/__pycache__/style.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/__pycache__/textwriter.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/__pycache__/textwriter.cpython-312.pyc new file mode 100644 index 000000000..f29decbe4 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/__pycache__/textwriter.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/docevents.py b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/docevents.py new file mode 100644 index 000000000..bf66a2fc3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/docevents.py @@ -0,0 +1,109 @@ +# Copyright 2012-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + + +DOC_EVENTS = { + 'doc-meta-description': '.%s', + 'doc-breadcrumbs': '.%s', + 'doc-title': '.%s', + 'doc-description': '.%s', + 'doc-synopsis-start': '.%s', + 'doc-synopsis-option': '.%s.%s', + 'doc-synopsis-end': '.%s', + 'doc-options-start': '.%s', + 'doc-option': '.%s.%s', + 'doc-option-example': '.%s.%s', + 'doc-options-end': '.%s', + 'doc-global-option': '.%s', + 'doc-examples': '.%s', + 'doc-output': '.%s', + 'doc-subitems-start': '.%s', + 'doc-subitem': '.%s.%s', + 'doc-subitems-end': '.%s', + 'doc-relateditems-start': '.%s', + 'doc-relateditem': '.%s.%s', + 'doc-relateditems-end': '.%s' + } + + +def generate_events(session, help_command): + # Now generate the documentation events + session.emit('doc-breadcrumbs.%s' % help_command.event_class, + help_command=help_command) + session.emit('doc-meta-description.%s' % help_command.event_class, + help_command=help_command) + session.emit('doc-title.%s' % help_command.event_class, + help_command=help_command) + session.emit('doc-description.%s' % help_command.event_class, + help_command=help_command) + session.emit('doc-synopsis-start.%s' % help_command.event_class, + help_command=help_command) + if help_command.arg_table: + for arg_name in help_command.arg_table: + # An argument can set an '_UNDOCUMENTED' attribute + # to True to indicate a parameter that exists + # but shouldn't be documented. This can be used + # for backwards compatibility of deprecated arguments. + if getattr(help_command.arg_table[arg_name], + '_UNDOCUMENTED', False): + continue + session.emit( + 'doc-synopsis-option.%s.%s' % (help_command.event_class, + arg_name), + arg_name=arg_name, help_command=help_command) + session.emit('doc-synopsis-end.%s' % help_command.event_class, + help_command=help_command) + session.emit('doc-options-start.%s' % help_command.event_class, + help_command=help_command) + if help_command.arg_table: + for arg_name in help_command.arg_table: + if getattr(help_command.arg_table[arg_name], + '_UNDOCUMENTED', False): + continue + session.emit('doc-option.%s.%s' % (help_command.event_class, + arg_name), + arg_name=arg_name, help_command=help_command) + session.emit('doc-option-example.%s.%s' % + (help_command.event_class, arg_name), + arg_name=arg_name, help_command=help_command) + session.emit('doc-options-end.%s' % help_command.event_class, + help_command=help_command) + session.emit('doc-global-option.%s' % help_command.event_class, + help_command=help_command) + session.emit('doc-subitems-start.%s' % help_command.event_class, + help_command=help_command) + if help_command.command_table: + for command_name in sorted(help_command.command_table.keys()): + if hasattr(help_command.command_table[command_name], + '_UNDOCUMENTED'): + continue + session.emit('doc-subitem.%s.%s' + % (help_command.event_class, command_name), + command_name=command_name, + help_command=help_command) + session.emit('doc-subitems-end.%s' % help_command.event_class, + help_command=help_command) + session.emit('doc-examples.%s' % help_command.event_class, + help_command=help_command) + session.emit('doc-output.%s' % help_command.event_class, + help_command=help_command) + session.emit('doc-relateditems-start.%s' % help_command.event_class, + help_command=help_command) + if help_command.related_items: + for related_item in sorted(help_command.related_items): + session.emit('doc-relateditem.%s.%s' + % (help_command.event_class, related_item), + help_command=help_command, + related_item=related_item) + session.emit('doc-relateditems-end.%s' % help_command.event_class, + help_command=help_command) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/docstringparser.py b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/docstringparser.py new file mode 100644 index 000000000..51cd46e55 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/docstringparser.py @@ -0,0 +1,203 @@ +# Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +from html.parser import HTMLParser + + +class DocStringParser(HTMLParser): + """ + A simple HTML parser. Focused on converting the subset of HTML + that appears in the documentation strings of the JSON models into + simple ReST format. + """ + + def __init__(self, doc): + self.tree = None + self.doc = doc + HTMLParser.__init__(self) + + def reset(self): + HTMLParser.reset(self) + self.tree = HTMLTree(self.doc) + + def feed(self, data): + # HTMLParser is an old style class, so the super() method will not work. + HTMLParser.feed(self, data) + self.tree.write() + self.tree = HTMLTree(self.doc) + + def close(self): + HTMLParser.close(self) + # Write if there is anything remaining. + self.tree.write() + self.tree = HTMLTree(self.doc) + + def handle_starttag(self, tag, attrs): + self.tree.add_tag(tag, attrs=attrs) + + def handle_endtag(self, tag): + self.tree.add_tag(tag, is_start=False) + + def handle_data(self, data): + self.tree.add_data(data) + + +class HTMLTree: + """ + A tree which handles HTML nodes. Designed to work with a python HTML parser, + meaning that the current_node will be the most recently opened tag. When + a tag is closed, the current_node moves up to the parent node. + """ + + def __init__(self, doc): + self.doc = doc + self.head = StemNode() + self.current_node = self.head + self.unhandled_tags = [] + + def add_tag(self, tag, attrs=None, is_start=True): + if not self._doc_has_handler(tag, is_start): + self.unhandled_tags.append(tag) + return + + if is_start: + if tag == 'li': + node = LineItemNode(attrs) + else: + node = TagNode(tag, attrs) + self.current_node.add_child(node) + self.current_node = node + else: + self.current_node = self.current_node.parent + + def _doc_has_handler(self, tag, is_start): + if is_start: + handler_name = 'start_%s' % tag + else: + handler_name = 'end_%s' % tag + + return hasattr(self.doc.style, handler_name) + + def add_data(self, data): + self.current_node.add_child(DataNode(data)) + + def write(self): + self.head.write(self.doc) + + +class Node: + def __init__(self, parent=None): + self.parent = parent + + def write(self, doc): + raise NotImplementedError + + +class StemNode(Node): + def __init__(self, parent=None): + super().__init__(parent) + self.children = [] + + def add_child(self, child): + child.parent = self + self.children.append(child) + + def write(self, doc): + self._write_children(doc) + + def _write_children(self, doc): + for child in self.children: + child.write(doc) + + +class TagNode(StemNode): + """ + A generic Tag node. It will verify that handlers exist before writing. + """ + + def __init__(self, tag, attrs=None, parent=None): + super().__init__(parent) + self.attrs = attrs + self.tag = tag + + def write(self, doc): + self._write_start(doc) + self._write_children(doc) + self._write_end(doc) + + def _write_start(self, doc): + handler_name = 'start_%s' % self.tag + if hasattr(doc.style, handler_name): + getattr(doc.style, handler_name)(self.attrs) + + def _write_end(self, doc): + handler_name = 'end_%s' % self.tag + if hasattr(doc.style, handler_name): + getattr(doc.style, handler_name)() + + +class LineItemNode(TagNode): + def __init__(self, attrs=None, parent=None): + super().__init__('li', attrs, parent) + + def write(self, doc): + self._lstrip(self) + super().write(doc) + + def _lstrip(self, node): + """ + Traverses the tree, stripping out whitespace until text data is found + :param node: The node to strip + :return: True if non-whitespace data was found, False otherwise + """ + for child in node.children: + if isinstance(child, DataNode): + child.lstrip() + if child.data: + return True + else: + found = self._lstrip(child) + if found: + return True + + return False + + +class DataNode(Node): + """ + A Node that contains only string data. + """ + + def __init__(self, data, parent=None): + super().__init__(parent) + if not isinstance(data, str): + raise ValueError("Expecting string type, %s given." % type(data)) + self.data = data + + def lstrip(self): + self.data = self.data.lstrip() + + def write(self, doc): + if not self.data: + return + + if self.data.isspace(): + str_data = ' ' + else: + end_space = self.data[-1].isspace() + words = self.data.split() + words = doc.translate_words(words) + str_data = ' '.join(words) + if end_space: + str_data += ' ' + + doc.handle_data(str_data) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/restdoc.py b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/restdoc.py new file mode 100644 index 000000000..b44a8c3c1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/restdoc.py @@ -0,0 +1,240 @@ +# Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import logging + +from botocore.compat import OrderedDict +from awscli.bcdoc.docstringparser import DocStringParser +from awscli.bcdoc.style import ReSTStyle + +LOG = logging.getLogger('bcdocs') + + +class ReSTDocument(object): + + def __init__(self, target='man'): + self.style = ReSTStyle(self) + self.target = target + self.parser = DocStringParser(self) + self.keep_data = True + self.do_translation = False + self.translation_map = {} + self.hrefs = {} + self._writes = [] + self._last_doc_string = None + + def _write(self, s): + if self.keep_data and s is not None: + self._writes.append(s) + + def write(self, content): + """ + Write content into the document. + """ + self._write(content) + + def writeln(self, content): + """ + Write content on a newline. + """ + self._write('%s%s\n' % (self.style.spaces(), content)) + + def peek_write(self): + """ + Returns the last content written to the document without + removing it from the stack. + """ + return self._writes[-1] + + def pop_write(self): + """ + Removes and returns the last content written to the stack. + """ + return self._writes.pop() + + def push_write(self, s): + """ + Places new content on the stack. + """ + self._writes.append(s) + + def find_last_write(self, content): + """ + Returns the index of the last occurrence of the content argument + in the stack, or returns None if content is not on the stack. + """ + try: + return len(self._writes) - self._writes[::-1].index(content) - 1 + except ValueError: + return None + + def insert_write(self, index, content): + """ + Inserts the content argument to the stack directly before the + supplied index. + """ + self._writes.insert(index, content) + + def getvalue(self): + """ + Returns the current content of the document as a string. + """ + if self.hrefs: + self.style.new_paragraph() + for refname, link in self.hrefs.items(): + self.style.link_target_definition(refname, link) + return ''.join(self._writes).encode('utf-8') + + def translate_words(self, words): + return [self.translation_map.get(w, w) for w in words] + + def handle_data(self, data): + if data and self.keep_data: + self._write(data) + + def include_doc_string(self, doc_string): + if doc_string: + try: + start = len(self._writes) + self.parser.feed(doc_string) + self.parser.close() + end = len(self._writes) + self._last_doc_string = (start, end) + except Exception: + LOG.debug('Error parsing doc string', exc_info=True) + LOG.debug(doc_string) + + def remove_last_doc_string(self): + # Removes all writes inserted by last doc string + if self._last_doc_string is not None: + start, end = self._last_doc_string + del self._writes[start:end] + + def write_from_file(self, filename): + with open(filename, 'r') as f: + for line in f.readlines(): + self.writeln(line.strip()) + + +class DocumentStructure(ReSTDocument): + def __init__(self, name, section_names=None, target='man', context=None): + """Provides a Hierarichial structure to a ReSTDocument + + You can write to it similar to as you can to a ReSTDocument but + has an innate structure for more orginaztion and abstraction. + + :param name: The name of the document + :param section_names: A list of sections to be included + in the document. + :param target: The target documentation of the Document structure + :param context: A dictionary of data to store with the structure. These + are only stored per section not the entire structure. + """ + super(DocumentStructure, self).__init__(target=target) + self._name = name + self._structure = OrderedDict() + self._path = [self._name] + self._context = {} + if context is not None: + self._context = context + if section_names is not None: + self._generate_structure(section_names) + + @property + def name(self): + """The name of the document structure""" + return self._name + + @property + def path(self): + """ + A list of where to find a particular document structure in the + overlying document structure. + """ + return self._path + + @path.setter + def path(self, value): + self._path = value + + @property + def available_sections(self): + return list(self._structure) + + @property + def context(self): + return self._context + + def _generate_structure(self, section_names): + for section_name in section_names: + self.add_new_section(section_name) + + def add_new_section(self, name, context=None): + """Adds a new section to the current document structure + + This document structure will be considered a section to the + current document structure but will in itself be an entirely + new document structure that can be written to and have sections + as well + + :param name: The name of the section. + :param context: A dictionary of data to store with the structure. These + are only stored per section not the entire structure. + :rtype: DocumentStructure + :returns: A new document structure to add to but lives as a section + to the document structure it was instantiated from. + """ + # Add a new section + section = self.__class__(name=name, target=self.target, + context=context) + section.path = self.path + [name] + # Indent the section appropriately as well + section.style.indentation = self.style.indentation + section.translation_map = self.translation_map + section.hrefs = self.hrefs + self._structure[name] = section + return section + + def get_section(self, name): + """Retrieve a section""" + return self._structure[name] + + def delete_section(self, name): + """Delete a section""" + del self._structure[name] + + def flush_structure(self): + """Flushes a doc structure to a ReSTructed string + + The document is flushed out in a DFS style where sections and their + subsections' values are added to the string as they are visited. + """ + # We are at the root flush the links at the beginning of the + # document + if len(self.path) == 1: + if self.hrefs: + self.style.new_paragraph() + for refname, link in self.hrefs.items(): + self.style.link_target_definition(refname, link) + value = self.getvalue() + for name, section in self._structure.items(): + value += section.flush_structure() + return value + + def getvalue(self): + return ''.join(self._writes).encode('utf-8') + + def remove_all_sections(self): + self._structure = OrderedDict() + + def clear_text(self): + self._writes = [] diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/style.py b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/style.py new file mode 100644 index 000000000..4470d65d3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/style.py @@ -0,0 +1,418 @@ +# Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import logging + +logger = logging.getLogger('bcdocs') + + +class BaseStyle(object): + + def __init__(self, doc, indent_width=2): + self.doc = doc + self.indent_width = indent_width + self._indent = 0 + self.keep_data = True + + @property + def indentation(self): + return self._indent + + @indentation.setter + def indentation(self, value): + self._indent = value + + def new_paragraph(self): + return '\n%s' % self.spaces() + + def indent(self): + self._indent += 1 + + def dedent(self): + if self._indent > 0: + self._indent -= 1 + + def spaces(self): + return ' ' * (self._indent * self.indent_width) + + def bold(self, s): + return s + + def ref(self, link, title=None): + return link + + def h2(self, s): + return s + + def h3(self, s): + return s + + def underline(self, s): + return s + + def italics(self, s): + return s + + +class ReSTStyle(BaseStyle): + + def __init__(self, doc, indent_width=2): + BaseStyle.__init__(self, doc, indent_width) + self.do_p = True + self.a_href = None + self.list_depth = 0 + + def new_paragraph(self): + self.doc.write('\n\n%s' % self.spaces()) + + def new_line(self): + self.doc.write('\n%s' % self.spaces()) + + def _start_inline(self, markup): + self.doc.write(markup) + + def _end_inline(self, markup): + # Sometimes the HTML markup has whitespace between the end + # of the text inside the inline markup and the closing element + # (e.g. foobar ). This trailing space will cause + # problems in the ReST inline markup so we remove it here + # by popping the last item written off the stack, striping + # the whitespace and then pushing it back on the stack. + last_write = self.doc.pop_write().rstrip(' ') + + # Sometimes, for whatever reason, a tag like is present. This + # is problematic because if we simply translate that directly then + # we end up with something like ****, which rst will assume is a + # heading instead of an empty bold. + if last_write == markup: + return + + self.doc.push_write(last_write) + self.doc.write(markup + ' ') + + def start_bold(self, attrs=None): + self._start_inline('**') + + def end_bold(self): + self._end_inline('**') + + def start_b(self, attrs=None): + self.doc.do_translation = True + self.start_bold(attrs) + + def end_b(self): + self.doc.do_translation = False + self.end_bold() + + def bold(self, s): + if s: + self.start_bold() + self.doc.write(s) + self.end_bold() + + def ref(self, title, link=None): + if link is None: + link = title + self.doc.write(':doc:`%s <%s>`' % (title, link)) + + def _heading(self, s, border_char): + border = border_char * len(s) + self.new_paragraph() + self.doc.write('%s\n%s\n%s' % (border, s, border)) + self.new_paragraph() + + def h1(self, s): + self._heading(s, '*') + + def h2(self, s): + self._heading(s, '=') + + def h3(self, s): + self._heading(s, '-') + + def start_italics(self, attrs=None): + self._start_inline('*') + + def end_italics(self): + self._end_inline('*') + + def italics(self, s): + if s: + self.start_italics() + self.doc.write(s) + self.end_italics() + + def start_p(self, attrs=None): + if self.do_p: + self.doc.write('\n\n%s' % self.spaces()) + + def end_p(self): + if self.do_p: + self.doc.write('\n\n%s' % self.spaces()) + + def start_code(self, attrs=None): + self.doc.do_translation = True + self._start_inline('``') + + def end_code(self): + self.doc.do_translation = False + self._end_inline('``') + + def code(self, s): + if s: + self.start_code() + self.doc.write(s) + self.end_code() + + def start_note(self, attrs=None): + self.new_paragraph() + self.doc.write('.. note::') + self.indent() + self.new_paragraph() + + def end_note(self): + self.dedent() + self.new_paragraph() + + def start_important(self, attrs=None): + self.new_paragraph() + self.doc.write('.. warning::') + self.indent() + self.new_paragraph() + + def end_important(self): + self.dedent() + self.new_paragraph() + + def start_danger(self, attrs=None): + self.new_paragraph() + self.doc.write('.. danger::') + self.indent() + self.new_paragraph() + + def end_danger(self): + self.dedent() + self.new_paragraph() + + def start_a(self, attrs=None): + if attrs: + for attr_key, attr_value in attrs: + if attr_key == 'href': + self.a_href = attr_value + self.doc.write('`') + else: + # There are some model documentation that + # looks like this: DescribeInstances. + # In this case we just write out an empty + # string. + self.doc.write(' ') + self.doc.do_translation = True + + def link_target_definition(self, refname, link): + self.doc.writeln('.. _%s: %s' % (refname, link)) + + def sphinx_reference_label(self, label, text=None): + if text is None: + text = label + if self.doc.target == 'html': + self.doc.write(':ref:`%s <%s>`' % (text, label)) + else: + self.doc.write(text) + + def end_a(self): + self.doc.do_translation = False + if self.a_href: + last_write = self.doc.pop_write() + last_write = last_write.rstrip(' ') + if last_write and last_write != '`': + if ':' in last_write: + last_write = last_write.replace(':', r'\:') + self.doc.push_write(last_write) + self.doc.push_write(' <%s>`__' % self.a_href) + elif last_write == '`': + # Look at start_a(). It will do a self.doc.write('`') + # which is the start of the link title. If that is the + # case then there was no link text. We should just + # use an inline link. The syntax of this is + # ``_ + self.doc.push_write('`<%s>`__' % self.a_href) + else: + self.doc.push_write(self.a_href) + self.doc.hrefs[self.a_href] = self.a_href + self.doc.write('`__') + self.a_href = None + self.doc.write(' ') + + def start_i(self, attrs=None): + self.doc.do_translation = True + self.start_italics() + + def end_i(self): + self.doc.do_translation = False + self.end_italics() + + def start_li(self, attrs=None): + self.new_line() + self.do_p = False + self.doc.write('* ') + + def end_li(self): + self.do_p = True + self.new_line() + + def li(self, s): + if s: + self.start_li() + self.doc.writeln(s) + self.end_li() + + def start_ul(self, attrs=None): + if self.list_depth != 0: + self.indent() + self.list_depth += 1 + self.new_paragraph() + + def end_ul(self): + self.list_depth -= 1 + if self.list_depth != 0: + self.dedent() + self.new_paragraph() + + def start_ol(self, attrs=None): + # TODO: Need to control the bullets used for LI items + if self.list_depth != 0: + self.indent() + self.list_depth += 1 + self.new_paragraph() + + def end_ol(self): + self.list_depth -= 1 + if self.list_depth != 0: + self.dedent() + self.new_paragraph() + + def start_examples(self, attrs=None): + self.doc.keep_data = False + + def end_examples(self): + self.doc.keep_data = True + + def start_fullname(self, attrs=None): + self.doc.keep_data = False + + def end_fullname(self): + self.doc.keep_data = True + + def start_codeblock(self, attrs=None): + self.doc.write('::') + self.indent() + self.new_paragraph() + + def end_codeblock(self): + self.dedent() + self.new_paragraph() + + def codeblock(self, code): + """ + Literal code blocks are introduced by ending a paragraph with + the special marker ::. The literal block must be indented + (and, like all paragraphs, separated from the surrounding + ones by blank lines). + """ + self.start_codeblock() + self.doc.writeln(code) + self.end_codeblock() + + def toctree(self): + if self.doc.target == 'html': + self.doc.write('\n.. toctree::\n') + self.doc.write(' :maxdepth: 1\n') + self.doc.write(' :titlesonly:\n\n') + else: + self.start_ul() + + def tocitem(self, item, file_name=None): + if self.doc.target == 'man': + self.li(item) + else: + if file_name: + self.doc.writeln(' %s' % file_name) + else: + self.doc.writeln(' %s' % item) + + def hidden_toctree(self): + if self.doc.target == 'html': + self.doc.write('\n.. toctree::\n') + self.doc.write(' :maxdepth: 1\n') + self.doc.write(' :hidden:\n\n') + + def hidden_tocitem(self, item): + if self.doc.target == 'html': + self.tocitem(item) + + def table_of_contents(self, title=None, depth=None): + self.doc.write('.. contents:: ') + if title is not None: + self.doc.writeln(title) + if depth is not None: + self.doc.writeln(' :depth: %s' % depth) + + def start_sphinx_py_class(self, class_name): + self.new_paragraph() + self.doc.write('.. py:class:: %s' % class_name) + self.indent() + self.new_paragraph() + + def end_sphinx_py_class(self): + self.dedent() + self.new_paragraph() + + def start_sphinx_py_method(self, method_name, parameters=None): + self.new_paragraph() + content = '.. py:method:: %s' % method_name + if parameters is not None: + content += '(%s)' % parameters + self.doc.write(content) + self.indent() + self.new_paragraph() + + def end_sphinx_py_method(self): + self.dedent() + self.new_paragraph() + + def start_sphinx_py_attr(self, attr_name): + self.new_paragraph() + self.doc.write('.. py:attribute:: %s' % attr_name) + self.indent() + self.new_paragraph() + + def end_sphinx_py_attr(self): + self.dedent() + self.new_paragraph() + + def write_py_doc_string(self, docstring): + docstring_lines = docstring.splitlines() + for docstring_line in docstring_lines: + self.doc.writeln(docstring_line) + + def external_link(self, title, link): + if self.doc.target == 'html': + self.doc.write('`%s <%s>`_' % (title, link)) + else: + self.doc.write(title) + + def internal_link(self, title, page): + if self.doc.target == 'html': + self.doc.write(':doc:`%s <%s>`' % (title, page)) + else: + self.doc.write(title) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/textwriter.py b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/textwriter.py new file mode 100644 index 000000000..6fc171b9b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/bcdoc/textwriter.py @@ -0,0 +1,799 @@ +# -*- coding: utf-8 -*- +""" + + Custom docutils writer for plain text. + Based heavily on the Sphinx text writer. See copyright below. + + :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + :license: BSD, see LICENSE for details. + +""" +import os +import re +import textwrap + +from docutils import nodes, writers + + +class TextWrapper(textwrap.TextWrapper): + """Custom subclass that uses a different word separator regex.""" + + wordsep_re = re.compile( + r'(\s+|' # any whitespace + r'(?<=\s)(?::[a-z-]+:)?`\S+|' # interpreted text start + r'[^\s\w]*\w+[a-zA-Z]-(?=\w+[a-zA-Z])|' # hyphenated words + r'(?<=[\w\!\"\'\&\.\,\?])-{2,}(?=\w))') # em-dash + + +MAXWIDTH = 70 +STDINDENT = 3 + + +def my_wrap(text, width=MAXWIDTH, **kwargs): + w = TextWrapper(width=width, **kwargs) + return w.wrap(text) + + +class TextWriter(writers.Writer): + supported = ('text',) + settings_spec = ('No options here.', '', ()) + settings_defaults = {} + + output = None + + def __init__(self): + writers.Writer.__init__(self) + + def translate(self): + visitor = TextTranslator(self.document) + self.document.walkabout(visitor) + self.output = visitor.body + + +class TextTranslator(nodes.NodeVisitor): + sectionchars = '*=-~"+`' + + def __init__(self, document): + nodes.NodeVisitor.__init__(self, document) + + self.nl = os.linesep + self.states = [[]] + self.stateindent = [0] + self.list_counter = [] + self.sectionlevel = 0 + self.table = None + + def add_text(self, text): + self.states[-1].append((-1, text)) + + def new_state(self, indent=STDINDENT): + self.states.append([]) + self.stateindent.append(indent) + + def end_state(self, wrap=True, end=[''], first=None): + content = self.states.pop() + maxindent = sum(self.stateindent) + indent = self.stateindent.pop() + result = [] + toformat = [] + + def do_format(): + if not toformat: + return + if wrap: + res = my_wrap(''.join(toformat), width=MAXWIDTH-maxindent) + else: + res = ''.join(toformat).splitlines() + if end: + res += end + result.append((indent, res)) + for itemindent, item in content: + if itemindent == -1: + toformat.append(item) + else: + do_format() + result.append((indent + itemindent, item)) + toformat = [] + do_format() + if first is not None and result: + itemindent, item = result[0] + if item: + result.insert(0, (itemindent - indent, [first + item[0]])) + result[1] = (itemindent, item[1:]) + self.states[-1].extend(result) + + def visit_document(self, node): + self.new_state(0) + + def depart_document(self, node): + self.end_state() + self.body = self.nl.join(line and (' '*indent + line) + for indent, lines in self.states[0] + for line in lines) + # XXX header/footer? + + def visit_highlightlang(self, node): + raise nodes.SkipNode + + def visit_section(self, node): + self._title_char = self.sectionchars[self.sectionlevel] + self.sectionlevel += 1 + + def depart_section(self, node): + self.sectionlevel -= 1 + + def visit_topic(self, node): + self.new_state(0) + + def depart_topic(self, node): + self.end_state() + + visit_sidebar = visit_topic + depart_sidebar = depart_topic + + def visit_rubric(self, node): + self.new_state(0) + self.add_text('-[ ') + + def depart_rubric(self, node): + self.add_text(' ]-') + self.end_state() + + def visit_compound(self, node): + pass + + def depart_compound(self, node): + pass + + def visit_glossary(self, node): + pass + + def depart_glossary(self, node): + pass + + def visit_title(self, node): + if isinstance(node.parent, nodes.Admonition): + self.add_text(node.astext()+': ') + raise nodes.SkipNode + self.new_state(0) + + def depart_title(self, node): + if isinstance(node.parent, nodes.section): + char = self._title_char + else: + char = '^' + text = ''.join(x[1] for x in self.states.pop() if x[0] == -1) + self.stateindent.pop() + self.states[-1].append((0, ['', text, '%s' % (char * len(text)), ''])) + + def visit_subtitle(self, node): + pass + + def depart_subtitle(self, node): + pass + + def visit_attribution(self, node): + self.add_text('-- ') + + def depart_attribution(self, node): + pass + + def visit_desc(self, node): + pass + + def depart_desc(self, node): + pass + + def visit_desc_signature(self, node): + self.new_state(0) + if node.parent['objtype'] in ('class', 'exception'): + self.add_text('%s ' % node.parent['objtype']) + + def depart_desc_signature(self, node): + # XXX: wrap signatures in a way that makes sense + self.end_state(wrap=False, end=None) + + def visit_desc_name(self, node): + pass + + def depart_desc_name(self, node): + pass + + def visit_desc_addname(self, node): + pass + + def depart_desc_addname(self, node): + pass + + def visit_desc_type(self, node): + pass + + def depart_desc_type(self, node): + pass + + def visit_desc_returns(self, node): + self.add_text(' -> ') + + def depart_desc_returns(self, node): + pass + + def visit_desc_parameterlist(self, node): + self.add_text('(') + self.first_param = 1 + + def depart_desc_parameterlist(self, node): + self.add_text(')') + + def visit_desc_parameter(self, node): + if not self.first_param: + self.add_text(', ') + else: + self.first_param = 0 + self.add_text(node.astext()) + raise nodes.SkipNode + + def visit_desc_optional(self, node): + self.add_text('[') + + def depart_desc_optional(self, node): + self.add_text(']') + + def visit_desc_annotation(self, node): + pass + + def depart_desc_annotation(self, node): + pass + + def visit_refcount(self, node): + pass + + def depart_refcount(self, node): + pass + + def visit_desc_content(self, node): + self.new_state() + self.add_text(self.nl) + + def depart_desc_content(self, node): + self.end_state() + + def visit_figure(self, node): + self.new_state() + + def depart_figure(self, node): + self.end_state() + + def visit_caption(self, node): + pass + + def depart_caption(self, node): + pass + + def visit_productionlist(self, node): + self.new_state() + names = [] + for production in node: + names.append(production['tokenname']) + maxlen = max(len(name) for name in names) + for production in node: + if production['tokenname']: + self.add_text(production['tokenname'].ljust(maxlen) + ' ::=') + lastname = production['tokenname'] + else: + self.add_text('%s ' % (' '*len(lastname))) + self.add_text(production.astext() + self.nl) + self.end_state(wrap=False) + raise nodes.SkipNode + + def visit_seealso(self, node): + self.new_state() + + def depart_seealso(self, node): + self.end_state(first='') + + def visit_footnote(self, node): + self._footnote = node.children[0].astext().strip() + self.new_state(len(self._footnote) + 3) + + def depart_footnote(self, node): + self.end_state(first='[%s] ' % self._footnote) + + def visit_citation(self, node): + if len(node) and isinstance(node[0], nodes.label): + self._citlabel = node[0].astext() + else: + self._citlabel = '' + self.new_state(len(self._citlabel) + 3) + + def depart_citation(self, node): + self.end_state(first='[%s] ' % self._citlabel) + + def visit_label(self, node): + raise nodes.SkipNode + + # XXX: option list could use some better styling + + def visit_option_list(self, node): + pass + + def depart_option_list(self, node): + pass + + def visit_option_list_item(self, node): + self.new_state(0) + + def depart_option_list_item(self, node): + self.end_state() + + def visit_option_group(self, node): + self._firstoption = True + + def depart_option_group(self, node): + self.add_text(' ') + + def visit_option(self, node): + if self._firstoption: + self._firstoption = False + else: + self.add_text(', ') + + def depart_option(self, node): + pass + + def visit_option_string(self, node): + pass + + def depart_option_string(self, node): + pass + + def visit_option_argument(self, node): + self.add_text(node['delimiter']) + + def depart_option_argument(self, node): + pass + + def visit_description(self, node): + pass + + def depart_description(self, node): + pass + + def visit_tabular_col_spec(self, node): + raise nodes.SkipNode + + def visit_colspec(self, node): + self.table[0].append(node['colwidth']) + raise nodes.SkipNode + + def visit_tgroup(self, node): + pass + + def depart_tgroup(self, node): + pass + + def visit_thead(self, node): + pass + + def depart_thead(self, node): + pass + + def visit_tbody(self, node): + self.table.append('sep') + + def depart_tbody(self, node): + pass + + def visit_row(self, node): + self.table.append([]) + + def depart_row(self, node): + pass + + def visit_entry(self, node): + if 'morerows' in node or 'morecols' in node: + raise NotImplementedError('Column or row spanning cells are ' + 'not implemented.') + self.new_state(0) + + def depart_entry(self, node): + text = self.nl.join(self.nl.join(x[1]) for x in self.states.pop()) + self.stateindent.pop() + self.table[-1].append(text) + + def visit_table(self, node): + if self.table: + raise NotImplementedError('Nested tables are not supported.') + self.new_state(0) + self.table = [[]] + + def depart_table(self, node): + lines = self.table[1:] + fmted_rows = [] + colwidths = self.table[0] + realwidths = colwidths[:] + separator = 0 + # don't allow paragraphs in table cells for now + for line in lines: + if line == 'sep': + separator = len(fmted_rows) + else: + cells = [] + for i, cell in enumerate(line): + par = my_wrap(cell, width=colwidths[i]) + if par: + maxwidth = max(map(len, par)) + else: + maxwidth = 0 + realwidths[i] = max(realwidths[i], maxwidth) + cells.append(par) + fmted_rows.append(cells) + + def writesep(char='-'): + out = ['+'] + for width in realwidths: + out.append(char * (width+2)) + out.append('+') + self.add_text(''.join(out) + self.nl) + + def writerow(row): + lines = zip(*row) + for line in lines: + out = ['|'] + for i, cell in enumerate(line): + if cell: + out.append(' ' + cell.ljust(realwidths[i]+1)) + else: + out.append(' ' * (realwidths[i] + 2)) + out.append('|') + self.add_text(''.join(out) + self.nl) + + for i, row in enumerate(fmted_rows): + if separator and i == separator: + writesep('=') + else: + writesep('-') + writerow(row) + writesep('-') + self.table = None + self.end_state(wrap=False) + + def visit_acks(self, node): + self.new_state(0) + self.add_text( + ', '.join(n.astext() for n in node.children[0].children) + '.') + self.end_state() + raise nodes.SkipNode + + def visit_image(self, node): + if 'alt' in node.attributes: + self.add_text(_('[image: %s]') % node['alt']) + self.add_text(_('[image]')) + raise nodes.SkipNode + + def visit_transition(self, node): + indent = sum(self.stateindent) + self.new_state(0) + self.add_text('=' * (MAXWIDTH - indent)) + self.end_state() + raise nodes.SkipNode + + def visit_bullet_list(self, node): + self.list_counter.append(-1) + + def depart_bullet_list(self, node): + self.list_counter.pop() + + def visit_enumerated_list(self, node): + self.list_counter.append(0) + + def depart_enumerated_list(self, node): + self.list_counter.pop() + + def visit_definition_list(self, node): + self.list_counter.append(-2) + + def depart_definition_list(self, node): + self.list_counter.pop() + + def visit_list_item(self, node): + if self.list_counter[-1] == -1: + # bullet list + self.new_state(2) + elif self.list_counter[-1] == -2: + # definition list + pass + else: + # enumerated list + self.list_counter[-1] += 1 + self.new_state(len(str(self.list_counter[-1])) + 2) + + def depart_list_item(self, node): + if self.list_counter[-1] == -1: + self.end_state(first='* ', end=None) + elif self.list_counter[-1] == -2: + pass + else: + self.end_state(first='%s. ' % self.list_counter[-1], end=None) + + def visit_definition_list_item(self, node): + self._li_has_classifier = len(node) >= 2 and \ + isinstance(node[1], nodes.classifier) + + def depart_definition_list_item(self, node): + pass + + def visit_term(self, node): + self.new_state(0) + + def depart_term(self, node): + if not self._li_has_classifier: + self.end_state(end=None) + + def visit_termsep(self, node): + self.add_text(', ') + raise nodes.SkipNode + + def visit_classifier(self, node): + self.add_text(' : ') + + def depart_classifier(self, node): + self.end_state(end=None) + + def visit_definition(self, node): + self.new_state() + + def depart_definition(self, node): + self.end_state() + + def visit_field_list(self, node): + pass + + def depart_field_list(self, node): + pass + + def visit_field(self, node): + pass + + def depart_field(self, node): + pass + + def visit_field_name(self, node): + self.new_state(0) + + def depart_field_name(self, node): + self.add_text(':') + self.end_state(end=None) + + def visit_field_body(self, node): + self.new_state() + + def depart_field_body(self, node): + self.end_state() + + def visit_centered(self, node): + pass + + def depart_centered(self, node): + pass + + def visit_hlist(self, node): + pass + + def depart_hlist(self, node): + pass + + def visit_hlistcol(self, node): + pass + + def depart_hlistcol(self, node): + pass + + def visit_admonition(self, node): + self.new_state(0) + + def depart_admonition(self, node): + self.end_state() + + def visit_versionmodified(self, node): + self.new_state(0) + + def depart_versionmodified(self, node): + self.end_state() + + def visit_literal_block(self, node): + self.new_state() + + def depart_literal_block(self, node): + self.end_state(wrap=False) + + def visit_doctest_block(self, node): + self.new_state(0) + + def depart_doctest_block(self, node): + self.end_state(wrap=False) + + def visit_line_block(self, node): + self.new_state(0) + + def depart_line_block(self, node): + self.end_state(wrap=False) + + def visit_line(self, node): + pass + + def depart_line(self, node): + pass + + def visit_block_quote(self, node): + self.new_state() + + def depart_block_quote(self, node): + self.end_state() + + def visit_compact_paragraph(self, node): + pass + + def depart_compact_paragraph(self, node): + pass + + def visit_paragraph(self, node): + self.new_state(0) + + def depart_paragraph(self, node): + self.end_state() + + def visit_target(self, node): + raise nodes.SkipNode + + def visit_index(self, node): + raise nodes.SkipNode + + def visit_substitution_definition(self, node): + raise nodes.SkipNode + + def visit_pending_xref(self, node): + pass + + def depart_pending_xref(self, node): + pass + + def visit_reference(self, node): + pass + + def depart_reference(self, node): + pass + + def visit_download_reference(self, node): + pass + + def depart_download_reference(self, node): + pass + + def visit_emphasis(self, node): + self.add_text('*') + + def depart_emphasis(self, node): + self.add_text('*') + + def visit_literal_emphasis(self, node): + self.add_text('*') + + def depart_literal_emphasis(self, node): + self.add_text('*') + + def visit_strong(self, node): + self.add_text('**') + + def depart_strong(self, node): + self.add_text('**') + + def visit_abbreviation(self, node): + self.add_text('') + + def depart_abbreviation(self, node): + if node.hasattr('explanation'): + self.add_text(' (%s)' % node['explanation']) + + def visit_title_reference(self, node): + self.add_text('*') + + def depart_title_reference(self, node): + self.add_text('*') + + def visit_literal(self, node): + self.add_text('"') + + def depart_literal(self, node): + self.add_text('"') + + def visit_subscript(self, node): + self.add_text('_') + + def depart_subscript(self, node): + pass + + def visit_superscript(self, node): + self.add_text('^') + + def depart_superscript(self, node): + pass + + def visit_footnote_reference(self, node): + self.add_text('[%s]' % node.astext()) + raise nodes.SkipNode + + def visit_citation_reference(self, node): + self.add_text('[%s]' % node.astext()) + raise nodes.SkipNode + + def visit_Text(self, node): + self.add_text(node.astext()) + + def depart_Text(self, node): + pass + + def visit_generated(self, node): + pass + + def depart_generated(self, node): + pass + + def visit_inline(self, node): + pass + + def depart_inline(self, node): + pass + + def visit_problematic(self, node): + self.add_text('>>') + + def depart_problematic(self, node): + self.add_text('<<') + + def visit_system_message(self, node): + self.new_state(0) + self.add_text('' % node.astext()) + self.end_state() + raise nodes.SkipNode + + def visit_comment(self, node): + raise nodes.SkipNode + + def visit_meta(self, node): + # only valid for HTML + raise nodes.SkipNode + + def visit_raw(self, node): + if 'text' in node.get('format', '').split(): + self.body.append(node.astext()) + raise nodes.SkipNode + + def _visit_admonition(self, node): + self.new_state(2) + + def _make_depart_admonition(name): + def depart_admonition(self, node): + self.end_state(first=name.capitalize() + ': ') + return depart_admonition + + visit_attention = _visit_admonition + depart_attention = _make_depart_admonition('attention') + visit_caution = _visit_admonition + depart_caution = _make_depart_admonition('caution') + visit_danger = _visit_admonition + depart_danger = _make_depart_admonition('danger') + visit_error = _visit_admonition + depart_error = _make_depart_admonition('error') + visit_hint = _visit_admonition + depart_hint = _make_depart_admonition('hint') + visit_important = _visit_admonition + depart_important = _make_depart_admonition('important') + visit_note = _visit_admonition + depart_note = _make_depart_admonition('note') + visit_tip = _visit_admonition + depart_tip = _make_depart_admonition('tip') + visit_warning = _visit_admonition + depart_warning = _make_depart_admonition('warning') + + def unknown_visit(self, node): + raise NotImplementedError('Unknown node: ' + node.__class__.__name__) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/clidocs.py b/rep_localstack/lib/python3.12/site-packages/awscli/clidocs.py new file mode 100644 index 000000000..c7a782cde --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/clidocs.py @@ -0,0 +1,817 @@ +# Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import logging +import os +import re + +from botocore.model import StringShape +from botocore.utils import is_json_value_header + +from awscli import SCALAR_TYPES, __version__ as AWS_CLI_VERSION +from awscli.argprocess import ParamShorthandDocGen +from awscli.bcdoc.docevents import DOC_EVENTS +from awscli.topictags import TopicTagDB +from awscli.utils import ( + find_service_and_method_in_event_name, + is_document_type, + is_streaming_blob_type, + is_tagged_union_type, + operation_uses_document_types, +) + +LOG = logging.getLogger(__name__) +EXAMPLES_DIR = os.path.join( + os.path.dirname(os.path.abspath(__file__)), 'examples' +) +GLOBAL_OPTIONS_FILE = os.path.join(EXAMPLES_DIR, 'global_options.rst') +GLOBAL_OPTIONS_SYNOPSIS_FILE = os.path.join( + EXAMPLES_DIR, 'global_synopsis.rst' +) + + +class CLIDocumentEventHandler: + def __init__(self, help_command): + self.help_command = help_command + self.register(help_command.session, help_command.event_class) + self._arg_groups = self._build_arg_table_groups(help_command) + self._documented_arg_groups = [] + + def _build_arg_table_groups(self, help_command): + arg_groups = {} + for arg in help_command.arg_table.values(): + if arg.group_name is not None: + arg_groups.setdefault(arg.group_name, []).append(arg) + return arg_groups + + def _get_argument_type_name(self, shape, default): + if is_json_value_header(shape): + return 'JSON' + if is_document_type(shape): + return 'document' + if is_streaming_blob_type(shape): + return 'streaming blob' + if is_tagged_union_type(shape): + return 'tagged union structure' + return default + + def _map_handlers(self, session, event_class, mapfn): + for event in DOC_EVENTS: + event_handler_name = event.replace('-', '_') + if hasattr(self, event_handler_name): + event_handler = getattr(self, event_handler_name) + format_string = DOC_EVENTS[event] + num_args = len(format_string.split('.')) - 2 + format_args = (event_class,) + ('*',) * num_args + event_string = event + format_string % format_args + unique_id = event_class + event_handler_name + mapfn(event_string, event_handler, unique_id) + + def register(self, session, event_class): + """ + The default register iterates through all of the + available document events and looks for a corresponding + handler method defined in the object. If it's there, that + handler method will be registered for the all events of + that type for the specified ``event_class``. + """ + self._map_handlers(session, event_class, session.register) + + def unregister(self): + """ + The default unregister iterates through all of the + available document events and looks for a corresponding + handler method defined in the object. If it's there, that + handler method will be unregistered for the all events of + that type for the specified ``event_class``. + """ + self._map_handlers( + self.help_command.session, + self.help_command.event_class, + self.help_command.session.unregister, + ) + + # These are default doc handlers that apply in the general case. + + def doc_breadcrumbs(self, help_command, **kwargs): + doc = help_command.doc + if doc.target != 'man': + cmd_names = help_command.event_class.split('.') + doc.write('[ ') + doc.write(':ref:`aws `') + full_cmd_list = ['aws'] + for cmd in cmd_names[:-1]: + doc.write(' . ') + full_cmd_list.append(cmd) + full_cmd_name = ' '.join(full_cmd_list) + doc.write(f':ref:`{cmd} `') + doc.writeln(' ]') + doc.writeln('') + + def doc_title(self, help_command, **kwargs): + doc = help_command.doc + doc.style.new_paragraph() + reference = help_command.event_class.replace('.', ' ') + if reference != 'aws': + reference = 'aws ' + reference + doc.writeln(f'.. _cli:{reference}:') + doc.style.h1(help_command.name) + + def doc_description(self, help_command, **kwargs): + doc = help_command.doc + doc.style.h2('Description') + doc.include_doc_string(help_command.description) + doc.style.new_paragraph() + + def doc_synopsis_start(self, help_command, **kwargs): + self._documented_arg_groups = [] + doc = help_command.doc + doc.style.h2('Synopsis') + doc.style.start_codeblock() + doc.writeln(help_command.name) + + def doc_synopsis_option(self, arg_name, help_command, **kwargs): + doc = help_command.doc + argument = help_command.arg_table[arg_name] + if argument.group_name in self._arg_groups: + if argument.group_name in self._documented_arg_groups: + # This arg is already documented so we can move on. + return + option_str = ' | '.join( + a.cli_name for a in self._arg_groups[argument.group_name] + ) + self._documented_arg_groups.append(argument.group_name) + elif argument.cli_name.startswith('--'): + option_str = f'{argument.cli_name} ' + else: + option_str = f'<{argument.cli_name}>' + if not ( + argument.required + or getattr(argument, '_DOCUMENT_AS_REQUIRED', False) + ): + option_str = f'[{option_str}]' + doc.writeln(option_str) + + def doc_synopsis_end(self, help_command, **kwargs): + doc = help_command.doc + # Append synopsis for global options. + doc.write_from_file(GLOBAL_OPTIONS_SYNOPSIS_FILE) + doc.style.end_codeblock() + # Reset the documented arg groups for other sections + # that may document args (the detailed docs following + # the synopsis). + self._documented_arg_groups = [] + + def doc_options_start(self, help_command, **kwargs): + doc = help_command.doc + doc.style.h2('Options') + if not help_command.arg_table: + doc.write('*None*\n') + + def doc_option(self, arg_name, help_command, **kwargs): + doc = help_command.doc + argument = help_command.arg_table[arg_name] + if argument.group_name in self._arg_groups: + if argument.group_name in self._documented_arg_groups: + # This arg is already documented so we can move on. + return + name = ' | '.join( + f'``{a.cli_name}``' for a in self._arg_groups[argument.group_name] + ) + self._documented_arg_groups.append(argument.group_name) + else: + name = f'``{argument.cli_name}``' + argument_type_name = self._get_argument_type_name( + argument.argument_model, argument.cli_type_name + ) + doc.write(f'{name} ({argument_type_name})\n') + doc.style.indent() + doc.include_doc_string(argument.documentation) + if is_streaming_blob_type(argument.argument_model): + self._add_streaming_blob_note(doc) + if is_tagged_union_type(argument.argument_model): + self._add_tagged_union_note(argument.argument_model, doc) + if hasattr(argument, 'argument_model'): + self._document_enums(argument.argument_model, doc) + self._document_nested_structure(argument.argument_model, doc) + doc.style.dedent() + doc.style.new_paragraph() + + def doc_global_option(self, help_command, **kwargs): + doc = help_command.doc + doc.style.h2('Global Options') + doc.write_from_file(GLOBAL_OPTIONS_FILE) + + def doc_relateditems_start(self, help_command, **kwargs): + if help_command.related_items: + doc = help_command.doc + doc.style.h2('See Also') + + def doc_relateditem(self, help_command, related_item, **kwargs): + doc = help_command.doc + doc.write('* ') + doc.style.sphinx_reference_label( + label=f'cli:{related_item}', text=related_item + ) + doc.write('\n') + + def doc_meta_description(self, help_command, **kwargs): + pass + + def _document_enums(self, model, doc): + """Documents top-level parameter enums""" + if isinstance(model, StringShape): + if model.enum: + doc.style.new_paragraph() + doc.write('Possible values:') + doc.style.start_ul() + for enum in model.enum: + doc.style.li(f'``{enum}``') + doc.style.end_ul() + + def _document_nested_structure(self, model, doc): + """Recursively documents parameters in nested structures""" + member_type_name = getattr(model, 'type_name', None) + if member_type_name == 'structure': + for member_name, member_shape in model.members.items(): + self._doc_member( + doc, member_name, member_shape, stack=[model.name] + ) + elif member_type_name == 'list': + self._doc_member(doc, '', model.member, stack=[model.name]) + elif member_type_name == 'map': + key_shape = model.key + key_name = key_shape.serialization.get('name', 'key') + self._doc_member(doc, key_name, key_shape, stack=[model.name]) + value_shape = model.value + value_name = value_shape.serialization.get('name', 'value') + self._doc_member(doc, value_name, value_shape, stack=[model.name]) + + def _doc_member(self, doc, member_name, member_shape, stack): + if member_shape.name in stack: + # Document the recursion once, otherwise just + # note the fact that it's recursive and return. + if stack.count(member_shape.name) > 1: + if member_shape.type_name == 'structure': + doc.write('( ... recursive ... )') + return + stack.append(member_shape.name) + try: + self._do_doc_member(doc, member_name, member_shape, stack) + finally: + stack.pop() + + def _do_doc_member(self, doc, member_name, member_shape, stack): + docs = member_shape.documentation + type_name = self._get_argument_type_name( + member_shape, member_shape.type_name + ) + if member_name: + doc.write(f'{member_name} -> ({type_name})') + else: + doc.write(f'({type_name})') + doc.style.indent() + doc.style.new_paragraph() + doc.include_doc_string(docs) + if is_tagged_union_type(member_shape): + self._add_tagged_union_note(member_shape, doc) + doc.style.new_paragraph() + member_type_name = member_shape.type_name + if member_type_name == 'structure': + for sub_name, sub_shape in member_shape.members.items(): + self._doc_member(doc, sub_name, sub_shape, stack) + elif member_type_name == 'map': + key_shape = member_shape.key + key_name = key_shape.serialization.get('name', 'key') + self._doc_member(doc, key_name, key_shape, stack) + value_shape = member_shape.value + value_name = value_shape.serialization.get('name', 'value') + self._doc_member(doc, value_name, value_shape, stack) + elif member_type_name == 'list': + self._doc_member(doc, '', member_shape.member, stack) + doc.style.dedent() + doc.style.new_paragraph() + + def _add_streaming_blob_note(self, doc): + doc.style.start_note() + msg = ( + "This argument is of type: streaming blob. " + "Its value must be the path to a file " + "(e.g. ``path/to/file``) and must **not** " + "be prefixed with ``file://`` or ``fileb://``" + ) + doc.writeln(msg) + doc.style.end_note() + + def _add_tagged_union_note(self, shape, doc): + doc.style.start_note() + members_str = ", ".join(f'``{key}``' for key in shape.members.keys()) + doc.writeln( + "This is a Tagged Union structure. Only one of the " + f"following top level keys can be set: {members_str}." + ) + doc.style.end_note() + + +class ProviderDocumentEventHandler(CLIDocumentEventHandler): + def doc_breadcrumbs(self, help_command, event_name, **kwargs): + pass + + def doc_synopsis_start(self, help_command, **kwargs): + doc = help_command.doc + doc.style.h2('Synopsis') + doc.style.codeblock(help_command.synopsis) + doc.include_doc_string(help_command.help_usage) + + def doc_synopsis_option(self, arg_name, help_command, **kwargs): + pass + + def doc_synopsis_end(self, help_command, **kwargs): + doc = help_command.doc + doc.style.new_paragraph() + + def doc_options_start(self, help_command, **kwargs): + pass + + def doc_option(self, arg_name, help_command, **kwargs): + pass + + def doc_subitems_start(self, help_command, **kwargs): + doc = help_command.doc + doc.style.h2('Available Services') + doc.style.toctree() + + def doc_subitem(self, command_name, help_command, **kwargs): + doc = help_command.doc + doc.style.tocitem(command_name, file_name=f"{command_name}/index") + + +class ServiceDocumentEventHandler(CLIDocumentEventHandler): + # A service document has no synopsis. + def doc_synopsis_start(self, help_command, **kwargs): + pass + + def doc_synopsis_option(self, arg_name, help_command, **kwargs): + pass + + def doc_synopsis_end(self, help_command, **kwargs): + pass + + # A service document has no option section. + def doc_options_start(self, help_command, **kwargs): + pass + + def doc_option(self, arg_name, help_command, **kwargs): + pass + + def doc_option_example(self, arg_name, help_command, **kwargs): + pass + + def doc_options_end(self, help_command, **kwargs): + pass + + def doc_global_option(self, help_command, **kwargs): + pass + + def doc_description(self, help_command, **kwargs): + doc = help_command.doc + service_model = help_command.obj + doc.style.h2('Description') + # TODO: need a documentation attribute. + doc.include_doc_string(service_model.documentation) + + def doc_subitems_start(self, help_command, **kwargs): + doc = help_command.doc + doc.style.h2('Available Commands') + doc.style.toctree() + + def doc_subitem(self, command_name, help_command, **kwargs): + doc = help_command.doc + subcommand = help_command.command_table[command_name] + subcommand_table = getattr(subcommand, 'subcommand_table', {}) + # If the subcommand table has commands in it, + # direct the subitem to the command's index because + # it has more subcommands to be documented. + if len(subcommand_table) > 0: + doc.style.tocitem(command_name, file_name=f"{command_name}/index") + else: + doc.style.tocitem(command_name) + + def doc_meta_description(self, help_command, **kwargs): + doc = help_command.doc + reference = help_command.event_class.replace('.', ' ') + doc.writeln(".. meta::") + doc.writeln(f" :description: Learn about the AWS CLI {AWS_CLI_VERSION} {reference} commands.") + doc.writeln("") + + +class OperationDocumentEventHandler(CLIDocumentEventHandler): + AWS_DOC_BASE = 'https://docs.aws.amazon.com/goto/WebAPI' + + def doc_description(self, help_command, **kwargs): + doc = help_command.doc + operation_model = help_command.obj + doc.style.h2('Description') + doc.include_doc_string(operation_model.documentation) + self._add_webapi_crosslink(help_command) + self._add_note_for_document_types_if_used(help_command) + + def _add_webapi_crosslink(self, help_command): + doc = help_command.doc + operation_model = help_command.obj + service_model = operation_model.service_model + service_uid = service_model.metadata.get('uid') + if service_uid is None: + # If there's no service_uid in the model, we can't + # be certain if the generated cross link will work + # so we don't generate any crosslink info. + return + doc.style.new_paragraph() + doc.write("See also: ") + link = f'{self.AWS_DOC_BASE}/{service_uid}/{operation_model.name}' + doc.style.external_link(title="AWS API Documentation", link=link) + doc.writeln('') + + def _add_note_for_document_types_if_used(self, help_command): + if operation_uses_document_types(help_command.obj): + help_command.doc.style.new_paragraph() + help_command.doc.writeln( + f'``{help_command.name}`` uses document type values. Document ' + 'types follow the JSON data model where valid values are: ' + 'strings, numbers, booleans, null, arrays, and objects. For ' + 'command input, options and nested parameters that are labeled ' + 'with the type ``document`` must be provided as JSON. ' + 'Shorthand syntax does not support document types.' + ) + + def _json_example_value_name( + self, argument_model, include_enum_values=True + ): + # If include_enum_values is True, then the valid enum values + # are included as the sample JSON value. + if isinstance(argument_model, StringShape): + if argument_model.enum and include_enum_values: + choices = argument_model.enum + return '|'.join(f'"{c}"' for c in choices) + else: + return '"string"' + elif argument_model.type_name == 'boolean': + return 'true|false' + else: + return argument_model.type_name + + def _json_example(self, doc, argument_model, stack): + if argument_model.name in stack: + # Document the recursion once, otherwise just + # note the fact that it's recursive and return. + if stack.count(argument_model.name) > 1: + if argument_model.type_name == 'structure': + doc.write('{ ... recursive ... }') + return + stack.append(argument_model.name) + try: + self._do_json_example(doc, argument_model, stack) + finally: + stack.pop() + + def _do_json_example(self, doc, argument_model, stack): + if argument_model.type_name == 'list': + doc.write('[') + if argument_model.member.type_name in SCALAR_TYPES: + example_name = self._json_example_value_name(argument_model.member) + doc.write(f'{example_name}, ...') + else: + doc.style.indent() + doc.style.new_line() + self._json_example(doc, argument_model.member, stack) + doc.style.new_line() + doc.write('...') + doc.style.dedent() + doc.style.new_line() + doc.write(']') + elif argument_model.type_name == 'map': + doc.write('{') + doc.style.indent() + key_string = self._json_example_value_name(argument_model.key) + doc.write(f'{key_string}: ') + if argument_model.value.type_name in SCALAR_TYPES: + doc.write(self._json_example_value_name(argument_model.value)) + else: + doc.style.indent() + self._json_example(doc, argument_model.value, stack) + doc.style.dedent() + doc.style.new_line() + doc.write('...') + doc.style.dedent() + doc.write('}') + elif argument_model.type_name == 'structure': + if argument_model.is_document_type: + self._doc_document_member(doc) + else: + self._doc_input_structure_members(doc, argument_model, stack) + + def _doc_document_member(self, doc): + doc.write('{...}') + + def _doc_input_structure_members(self, doc, argument_model, stack): + doc.write('{') + doc.style.indent() + doc.style.new_line() + members = argument_model.members + for i, member_name in enumerate(members): + member_model = members[member_name] + member_type_name = member_model.type_name + if member_type_name in SCALAR_TYPES: + example_name = self._json_example_value_name(member_model) + doc.write(f'"{member_name}": {example_name}') + elif member_type_name == 'structure': + doc.write(f'"{member_name}": ') + self._json_example(doc, member_model, stack) + elif member_type_name == 'map': + doc.write(f'"{member_name}": ') + self._json_example(doc, member_model, stack) + elif member_type_name == 'list': + doc.write(f'"{member_name}": ') + self._json_example(doc, member_model, stack) + if i < len(members) - 1: + doc.write(',') + doc.style.new_line() + doc.style.dedent() + doc.style.new_line() + doc.write('}') + + def doc_option_example(self, arg_name, help_command, event_name, **kwargs): + service_id, operation_name = find_service_and_method_in_event_name( + event_name + ) + doc = help_command.doc + cli_argument = help_command.arg_table[arg_name] + if cli_argument.group_name in self._arg_groups: + if cli_argument.group_name in self._documented_arg_groups: + # Args with group_names (boolean args) don't + # need to generate example syntax. + return + argument_model = cli_argument.argument_model + docgen = ParamShorthandDocGen() + if docgen.supports_shorthand(cli_argument.argument_model): + example_shorthand_syntax = docgen.generate_shorthand_example( + cli_argument, service_id, operation_name + ) + if example_shorthand_syntax is None: + # If the shorthand syntax returns a value of None, + # this indicates to us that there is no example + # needed for this param so we can immediately + # return. + return + if example_shorthand_syntax: + doc.style.new_paragraph() + doc.write('Shorthand Syntax') + doc.style.start_codeblock() + for example_line in example_shorthand_syntax.splitlines(): + doc.writeln(example_line) + doc.style.end_codeblock() + if ( + argument_model is not None + and argument_model.type_name == 'list' + and argument_model.member.type_name in SCALAR_TYPES + ): + # A list of scalars is special. While you *can* use + # JSON ( ["foo", "bar", "baz"] ), you can also just + # use the argparse behavior of space separated lists. + # "foo" "bar" "baz". In fact we don't even want to + # document the JSON syntax in this case. + member = argument_model.member + doc.style.new_paragraph() + doc.write('Syntax') + doc.style.start_codeblock() + example_type = self._json_example_value_name( + member, include_enum_values=False + ) + doc.write(f'{example_type} {example_type} ...') + if isinstance(member, StringShape) and member.enum: + # If we have enum values, we can tell the user + # exactly what valid values they can provide. + self._write_valid_enums(doc, member.enum) + doc.style.end_codeblock() + doc.style.new_paragraph() + elif cli_argument.cli_type_name not in SCALAR_TYPES: + doc.style.new_paragraph() + doc.write('JSON Syntax') + doc.style.start_codeblock() + self._json_example(doc, argument_model, stack=[]) + doc.style.end_codeblock() + doc.style.new_paragraph() + + def _write_valid_enums(self, doc, enum_values): + doc.style.new_paragraph() + doc.write("Where valid values are:\n") + for value in enum_values: + doc.write(f" {value}\n") + doc.write("\n") + + def doc_output(self, help_command, event_name, **kwargs): + doc = help_command.doc + doc.style.h2('Output') + operation_model = help_command.obj + output_shape = operation_model.output_shape + if output_shape is None or not output_shape.members: + doc.write('None') + else: + for member_name, member_shape in output_shape.members.items(): + self._doc_member(doc, member_name, member_shape, stack=[]) + + def doc_meta_description(self, help_command, **kwargs): + doc = help_command.doc + reference = help_command.event_class.replace('.', ' ') + doc.writeln(".. meta::") + doc.writeln(f" :description: Use the AWS CLI {AWS_CLI_VERSION} to run the {reference} command.") + doc.writeln("") + +class TopicListerDocumentEventHandler(CLIDocumentEventHandler): + DESCRIPTION = ( + 'This is the AWS CLI Topic Guide. It gives access to a set ' + 'of topics that provide a deeper understanding of the CLI. To access ' + 'the list of topics from the command line, run ``aws help topics``. ' + 'To access a specific topic from the command line, run ' + '``aws help [topicname]``, where ``topicname`` is the name of the ' + 'topic as it appears in the output from ``aws help topics``.' + ) + + def __init__(self, help_command): + self.help_command = help_command + self.register(help_command.session, help_command.event_class) + self._topic_tag_db = TopicTagDB() + self._topic_tag_db.load_json_index() + + def doc_breadcrumbs(self, help_command, **kwargs): + doc = help_command.doc + if doc.target != 'man': + doc.write('[ ') + doc.style.sphinx_reference_label(label='cli:aws', text='aws') + doc.write(' ]') + + def doc_title(self, help_command, **kwargs): + doc = help_command.doc + doc.style.new_paragraph() + doc.style.link_target_definition( + refname=f'cli:aws help {self.help_command.name}', link='' + ) + doc.style.h1('AWS CLI Topic Guide') + + def doc_description(self, help_command, **kwargs): + doc = help_command.doc + doc.style.h2('Description') + doc.include_doc_string(self.DESCRIPTION) + doc.style.new_paragraph() + + def doc_synopsis_start(self, help_command, **kwargs): + pass + + def doc_synopsis_end(self, help_command, **kwargs): + pass + + def doc_options_start(self, help_command, **kwargs): + pass + + def doc_options_end(self, help_command, **kwargs): + pass + + def doc_global_option(self, help_command, **kwargs): + pass + + def doc_subitems_start(self, help_command, **kwargs): + doc = help_command.doc + doc.style.h2('Available Topics') + + categories = self._topic_tag_db.query('category') + topic_names = self._topic_tag_db.get_all_topic_names() + + # Sort the categories + category_names = sorted(categories.keys()) + for category_name in category_names: + doc.style.h3(category_name) + doc.style.new_paragraph() + # Write out the topic and a description for each topic under + # each category. + for topic_name in sorted(categories[category_name]): + description = self._topic_tag_db.get_tag_single_value( + topic_name, 'description' + ) + doc.write('* ') + doc.style.sphinx_reference_label( + label=f'cli:aws help {topic_name}', text=topic_name + ) + doc.write(f': {description}\n') + # Add a hidden toctree to make sure everything is connected in + # the document. + doc.style.hidden_toctree() + for topic_name in topic_names: + doc.style.hidden_tocitem(topic_name) + + +class TopicDocumentEventHandler(TopicListerDocumentEventHandler): + def doc_breadcrumbs(self, help_command, **kwargs): + doc = help_command.doc + if doc.target != 'man': + doc.write('[ ') + doc.style.sphinx_reference_label(label='cli:aws', text='aws') + doc.write(' . ') + doc.style.sphinx_reference_label( + label='cli:aws help topics', text='topics' + ) + doc.write(' ]') + + def doc_title(self, help_command, **kwargs): + doc = help_command.doc + doc.style.new_paragraph() + doc.style.link_target_definition( + refname=f'cli:aws help {self.help_command.name}', link='' + ) + title = self._topic_tag_db.get_tag_single_value( + help_command.name, 'title' + ) + doc.style.h1(title) + + def doc_description(self, help_command, **kwargs): + doc = help_command.doc + topic_filename = os.path.join( + self._topic_tag_db.topic_dir, f'{help_command.name}.rst' + ) + contents = self._remove_tags_from_content(topic_filename) + doc.writeln(contents) + doc.style.new_paragraph() + + def _remove_tags_from_content(self, filename): + with open(filename) as f: + lines = f.readlines() + + content_begin_index = 0 + for i, line in enumerate(lines): + # If a line is encountered that does not begin with the tag + # end the search for tags and mark where tags end. + if not self._line_has_tag(line): + content_begin_index = i + break + + # Join all of the non-tagged lines back together. + return ''.join(lines[content_begin_index:]) + + def _line_has_tag(self, line): + for tag in self._topic_tag_db.valid_tags: + if line.startswith(f':{tag}:'): + return True + return False + + def doc_subitems_start(self, help_command, **kwargs): + pass + + +class GlobalOptionsDocumenter: + """Documenter used to pre-generate global options docs.""" + + def __init__(self, help_command): + self._help_command = help_command + + def _remove_multilines(self, s): + return re.sub(r'\n+', '\n', s) + + def doc_global_options(self): + help_command = self._help_command + for arg in help_command.arg_table: + argument = help_command.arg_table.get(arg) + help_command.doc.writeln( + f"``{argument.cli_name}`` ({argument.cli_type_name})" + ) + help_command.doc.style.indent() + help_command.doc.style.new_paragraph() + help_command.doc.include_doc_string(argument.documentation) + if argument.choices: + help_command.doc.style.start_ul() + for choice in argument.choices: + help_command.doc.style.li(choice) + help_command.doc.style.end_ul() + help_command.doc.style.dedent() + help_command.doc.style.new_paragraph() + global_options = help_command.doc.getvalue().decode('utf-8') + return self._remove_multilines(global_options) + + def doc_global_synopsis(self): + help_command = self._help_command + for arg in help_command.arg_table: + argument = help_command.arg_table.get(arg) + if argument.cli_type_name == 'boolean': + arg_synopsis = f"[{argument.cli_name}]" + else: + arg_synopsis = f"[{argument.cli_name} ]" + help_command.doc.writeln(arg_synopsis) + global_synopsis = help_command.doc.getvalue().decode('utf-8') + return self._remove_multilines(global_synopsis) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/clidriver.py b/rep_localstack/lib/python3.12/site-packages/awscli/clidriver.py new file mode 100644 index 000000000..81429090f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/clidriver.py @@ -0,0 +1,772 @@ +# Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import logging +import signal +import sys + +import botocore.session +from botocore.compat import OrderedDict, copy_kwargs +from botocore.exceptions import ( + NoCredentialsError, + NoRegionError, + ProfileNotFound, +) +from botocore.history import get_global_history_recorder + +from awscli import EnvironmentVariables, __version__ +from awscli.alias import AliasCommandInjector, AliasLoader +from awscli.argparser import ( + USAGE, + ArgTableArgParser, + MainArgParser, + ServiceArgParser, +) +from awscli.argprocess import unpack_argument +from awscli.arguments import ( + BooleanArgument, + CLIArgument, + CustomArgument, + ListArgument, + UnknownArgumentError, +) +from awscli.commands import CLICommand +from awscli.compat import get_stderr_text_writer +from awscli.formatter import get_formatter +from awscli.help import ( + OperationHelpCommand, + ProviderHelpCommand, + ServiceHelpCommand, +) +from awscli.plugin import load_plugins +from awscli.utils import emit_top_level_args_parsed_event, write_exception, create_nested_client, resolve_v2_debug_mode +from botocore import __version__ as botocore_version +from botocore import xform_name + +LOG = logging.getLogger('awscli.clidriver') +LOG_FORMAT = ( + '%(asctime)s - %(threadName)s - %(name)s - %(levelname)s - %(message)s' +) +HISTORY_RECORDER = get_global_history_recorder() +# Don't remove this line. The idna encoding +# is used by getaddrinfo when dealing with unicode hostnames, +# and in some cases, there appears to be a race condition +# where threads will get a LookupError on getaddrinfo() saying +# that the encoding doesn't exist. Using the idna encoding before +# running any CLI code (and any threads it may create) ensures that +# the encodings.idna is imported and registered in the codecs registry, +# which will stop the LookupErrors from happening. +# See: https://bugs.python.org/issue29288 +''.encode('idna') + + +def main(): + driver = create_clidriver() + rc = driver.main() + HISTORY_RECORDER.record('CLI_RC', rc, 'CLI') + return rc + + +def create_clidriver(): + session = botocore.session.Session(EnvironmentVariables) + _set_user_agent_for_session(session) + load_plugins( + session.full_config.get('plugins', {}), + event_hooks=session.get_component('event_emitter'), + ) + driver = CLIDriver(session=session) + return driver + + +def _set_user_agent_for_session(session): + session.user_agent_name = 'aws-cli' + session.user_agent_version = __version__ + session.user_agent_extra = 'botocore/%s' % botocore_version + + +class CLIDriver: + def __init__(self, session=None): + if session is None: + self.session = botocore.session.get_session(EnvironmentVariables) + _set_user_agent_for_session(self.session) + else: + self.session = session + self._cli_data = None + self._command_table = None + self._argument_table = None + self.alias_loader = AliasLoader() + + def _get_cli_data(self): + # Not crazy about this but the data in here is needed in + # several places (e.g. MainArgParser, ProviderHelp) so + # we load it here once. + if self._cli_data is None: + self._cli_data = self.session.get_data('cli') + return self._cli_data + + def _get_command_table(self): + if self._command_table is None: + self._command_table = self._build_command_table() + return self._command_table + + def _get_argument_table(self): + if self._argument_table is None: + self._argument_table = self._build_argument_table() + return self._argument_table + + def _build_command_table(self): + """ + Create the main parser to handle the global arguments. + + :rtype: ``argparser.ArgumentParser`` + :return: The parser object + + """ + command_table = self._build_builtin_commands(self.session) + self.session.emit( + 'building-command-table.main', + command_table=command_table, + session=self.session, + command_object=self, + ) + return command_table + + def _build_builtin_commands(self, session): + commands = OrderedDict() + services = session.get_available_services() + for service_name in services: + commands[service_name] = ServiceCommand( + cli_name=service_name, + session=self.session, + service_name=service_name, + ) + return commands + + def _add_aliases(self, command_table, parser): + injector = AliasCommandInjector(self.session, self.alias_loader) + injector.inject_aliases(command_table, parser) + + def _build_argument_table(self): + argument_table = OrderedDict() + cli_data = self._get_cli_data() + cli_arguments = cli_data.get('options', None) + for option in cli_arguments: + option_params = copy_kwargs(cli_arguments[option]) + cli_argument = self._create_cli_argument(option, option_params) + cli_argument.add_to_arg_table(argument_table) + # Then the final step is to send out an event so handlers + # can add extra arguments or modify existing arguments. + self.session.emit( + 'building-top-level-params', argument_table=argument_table + ) + return argument_table + + def _create_cli_argument(self, option_name, option_params): + return CustomArgument( + option_name, + help_text=option_params.get('help', ''), + dest=option_params.get('dest'), + default=option_params.get('default'), + action=option_params.get('action'), + required=option_params.get('required'), + choices=option_params.get('choices'), + cli_type_name=option_params.get('type'), + ) + + def create_help_command(self): + cli_data = self._get_cli_data() + return ProviderHelpCommand( + self.session, + self._get_command_table(), + self._get_argument_table(), + cli_data.get('description', None), + cli_data.get('synopsis', None), + cli_data.get('help_usage', None), + ) + + def _create_parser(self, command_table): + # Also add a 'help' command. + command_table['help'] = self.create_help_command() + cli_data = self._get_cli_data() + parser = MainArgParser( + command_table, + self.session.user_agent(), + cli_data.get('description', None), + self._get_argument_table(), + prog="aws", + ) + return parser + + def main(self, args=None): + """ + + :param args: List of arguments, with the 'aws' removed. For example, + the command "aws s3 list-objects --bucket foo" will have an + args list of ``['s3', 'list-objects', '--bucket', 'foo']``. + + """ + if args is None: + args = sys.argv[1:] + command_table = self._get_command_table() + parser = self._create_parser(command_table) + self._add_aliases(command_table, parser) + parsed_args, remaining = parser.parse_known_args(args) + try: + # Because _handle_top_level_args emits events, it's possible + # that exceptions can be raised, which should have the same + # general exception handling logic as calling into the + # command table. This is why it's in the try/except clause. + self._handle_top_level_args(parsed_args, remaining) + self._emit_session_event(parsed_args) + HISTORY_RECORDER.record( + 'CLI_VERSION', self.session.user_agent(), 'CLI' + ) + HISTORY_RECORDER.record('CLI_ARGUMENTS', args, 'CLI') + return command_table[parsed_args.command](remaining, parsed_args) + except UnknownArgumentError as e: + sys.stderr.write("usage: %s\n" % USAGE) + sys.stderr.write(str(e)) + sys.stderr.write("\n") + return 255 + except NoRegionError as e: + msg = ( + '%s You can also configure your region by running ' + '"aws configure".' % e + ) + self._show_error(msg) + return 255 + except NoCredentialsError as e: + msg = ( + f'{e}. You can configure credentials by running "aws configure".' + ) + self._show_error(msg) + return 255 + except KeyboardInterrupt: + # Shell standard for signals that terminate + # the process is to return 128 + signum, in this case + # SIGINT=2, so we'll have an RC of 130. + sys.stdout.write("\n") + return 128 + signal.SIGINT + except Exception as e: + LOG.debug("Exception caught in main()", exc_info=True) + LOG.debug("Exiting with rc 255") + write_exception(e, outfile=get_stderr_text_writer()) + return 255 + + def _emit_session_event(self, parsed_args): + # This event is guaranteed to run after the session has been + # initialized and a profile has been set. This was previously + # problematic because if something in CLIDriver caused the + # session components to be reset (such as session.profile = foo) + # then all the prior registered components would be removed. + self.session.emit( + 'session-initialized', + session=self.session, + parsed_args=parsed_args, + ) + + def _show_error(self, msg): + LOG.debug(msg, exc_info=True) + sys.stderr.write(msg) + sys.stderr.write('\n') + + def _handle_top_level_args(self, args, remaining): + emit_top_level_args_parsed_event(self.session, args, remaining) + if args.profile: + self.session.set_config_variable('profile', args.profile) + if args.region: + self.session.set_config_variable('region', args.region) + if args.debug: + # TODO: + # Unfortunately, by setting debug mode here, we miss out + # on all of the debug events prior to this such as the + # loading of plugins, etc. + self.session.set_stream_logger( + 'botocore', logging.DEBUG, format_string=LOG_FORMAT + ) + self.session.set_stream_logger( + 'awscli', logging.DEBUG, format_string=LOG_FORMAT + ) + self.session.set_stream_logger( + 's3transfer', logging.DEBUG, format_string=LOG_FORMAT + ) + self.session.set_stream_logger( + 'urllib3', logging.DEBUG, format_string=LOG_FORMAT + ) + LOG.debug("CLI version: %s", self.session.user_agent()) + LOG.debug("Arguments entered to CLI: %s", sys.argv[1:]) + + else: + self.session.set_stream_logger( + logger_name='awscli', log_level=logging.ERROR + ) + + +class ServiceCommand(CLICommand): + """A service command for the CLI. + + For example, ``aws ec2 ...`` we'd create a ServiceCommand + object that represents the ec2 service. + + """ + + def __init__(self, cli_name, session, service_name=None): + # The cli_name is the name the user types, the name we show + # in doc, etc. + # The service_name is the name we used internally with botocore. + # For example, we have the 's3api' as the cli_name for the service + # but this is actually bound to the 's3' service name in botocore, + # i.e. we load s3.json from the botocore data dir. Most of + # the time these are the same thing but in the case of renames, + # we want users/external things to be able to rename the cli name + # but *not* the service name, as this has to be exactly what + # botocore expects. + self._name = cli_name + self.session = session + self._command_table = None + if service_name is None: + # Then default to using the cli name. + self._service_name = cli_name + else: + self._service_name = service_name + self._lineage = [self] + self._service_model = None + + @property + def name(self): + return self._name + + @name.setter + def name(self, value): + self._name = value + + @property + def service_model(self): + return self._get_service_model() + + @property + def lineage(self): + return self._lineage + + @lineage.setter + def lineage(self, value): + self._lineage = value + + def _get_command_table(self): + if self._command_table is None: + self._command_table = self._create_command_table() + return self._command_table + + def _get_service_model(self): + if self._service_model is None: + try: + api_version = self.session.get_config_variable( + 'api_versions' + ).get(self._service_name, None) + except ProfileNotFound: + api_version = None + self._service_model = self.session.get_service_model( + self._service_name, api_version=api_version + ) + return self._service_model + + def __call__(self, args, parsed_globals): + # Once we know we're trying to call a service for this operation + # we can go ahead and create the parser for it. We + # can also grab the Service object from botocore. + service_parser = self._create_parser() + parsed_args, remaining = service_parser.parse_known_args(args) + command_table = self._get_command_table() + return command_table[parsed_args.operation](remaining, parsed_globals) + + def _create_command_table(self): + command_table = OrderedDict() + service_model = self._get_service_model() + for operation_name in service_model.operation_names: + cli_name = xform_name(operation_name, '-') + operation_model = service_model.operation_model(operation_name) + command_table[cli_name] = ServiceOperation( + name=cli_name, + parent_name=self._name, + session=self.session, + operation_model=operation_model, + operation_caller=CLIOperationCaller(self.session), + ) + self.session.emit( + f'building-command-table.{self._name}', + command_table=command_table, + session=self.session, + command_object=self, + ) + self._add_lineage(command_table) + return command_table + + def _add_lineage(self, command_table): + for command in command_table: + command_obj = command_table[command] + command_obj.lineage = self.lineage + [command_obj] + + def create_help_command(self): + command_table = self._get_command_table() + return ServiceHelpCommand( + session=self.session, + obj=self._get_service_model(), + command_table=command_table, + arg_table=None, + event_class='.'.join(self.lineage_names), + name=self._name, + ) + + def _create_parser(self): + command_table = self._get_command_table() + # Also add a 'help' command. + command_table['help'] = self.create_help_command() + return ServiceArgParser( + operations_table=command_table, service_name=self._name + ) + + +class ServiceOperation: + """A single operation of a service. + + This class represents a single operation for a service, for + example ``ec2.DescribeInstances``. + + """ + + ARG_TYPES = { + 'list': ListArgument, + 'boolean': BooleanArgument, + } + DEFAULT_ARG_CLASS = CLIArgument + + def __init__( + self, name, parent_name, operation_caller, operation_model, session + ): + """ + + :type name: str + :param name: The name of the operation/subcommand. + + :type parent_name: str + :param parent_name: The name of the parent command. + + :type operation_model: ``botocore.model.OperationModel`` + :param operation_object: The operation model + associated with this subcommand. + + :type operation_caller: ``CLIOperationCaller`` + :param operation_caller: An object that can properly call the + operation. + + :type session: ``botocore.session.Session`` + :param session: The session object. + + """ + self._arg_table = None + self._name = name + # These is used so we can figure out what the proper event + # name should be .. + self._parent_name = parent_name + self._operation_caller = operation_caller + self._lineage = [self] + self._operation_model = operation_model + self._session = session + if operation_model.deprecated: + self._UNDOCUMENTED = True + + @property + def name(self): + return self._name + + @name.setter + def name(self, value): + self._name = value + + @property + def lineage(self): + return self._lineage + + @lineage.setter + def lineage(self, value): + self._lineage = value + + @property + def lineage_names(self): + # Represents the lineage of a command in terms of command ``name`` + return [cmd.name for cmd in self.lineage] + + @property + def arg_table(self): + if self._arg_table is None: + self._arg_table = self._create_argument_table() + return self._arg_table + + def __call__(self, args, parsed_globals): + # Once we know we're trying to call a particular operation + # of a service we can go ahead and load the parameters. + event = ( + 'before-building-argument-table-parser.' + f'{self._parent_name}.{self._name}' + ) + self._emit( + event, + argument_table=self.arg_table, + args=args, + session=self._session, + parsed_globals=parsed_globals, + ) + operation_parser = self._create_operation_parser(self.arg_table) + self._add_help(operation_parser) + parsed_args, remaining = operation_parser.parse_known_args(args) + if parsed_args.help == 'help': + op_help = self.create_help_command() + return op_help(remaining, parsed_globals) + elif parsed_args.help: + remaining.append(parsed_args.help) + if remaining: + raise UnknownArgumentError( + f"Unknown options: {', '.join(remaining)}" + ) + event = f'operation-args-parsed.{self._parent_name}.{self._name}' + self._emit( + event, parsed_args=parsed_args, parsed_globals=parsed_globals + ) + call_parameters = self._build_call_parameters( + parsed_args, self.arg_table, parsed_globals + ) + + self._detect_binary_file_migration_change( + self._session, + parsed_args, + parsed_globals, + self.arg_table + ) + event = f'calling-command.{self._parent_name}.{self._name}' + override = self._emit_first_non_none_response( + event, + call_parameters=call_parameters, + parsed_args=parsed_args, + parsed_globals=parsed_globals, + ) + # There are two possible values for override. It can be some type + # of exception that will be raised if detected or it can represent + # the desired return code. Note that a return code of 0 represents + # a success. + if override is not None: + if isinstance(override, Exception): + # If the override value provided back is an exception then + # raise the exception + raise override + else: + # This is the value usually returned by the ``invoke()`` + # method of the operation caller. It represents the return + # code of the operation. + return override + else: + # No override value was supplied. + return self._operation_caller.invoke( + self._operation_model.service_model.service_name, + self._operation_model.name, + call_parameters, + parsed_globals, + ) + + def create_help_command(self): + return OperationHelpCommand( + self._session, + operation_model=self._operation_model, + arg_table=self.arg_table, + name=self._name, + event_class='.'.join(self.lineage_names), + ) + + def _add_help(self, parser): + # The 'help' output is processed a little differently from + # the operation help because the arg_table has + # CLIArguments for values. + parser.add_argument('help', nargs='?') + + def _build_call_parameters(self, args, arg_table, parsed_globals): + # We need to convert the args specified on the command + # line as valid **kwargs we can hand to botocore. + service_params = {} + # args is an argparse.Namespace object so we're using vars() + # so we can iterate over the parsed key/values. + parsed_args = vars(args) + for arg_object in arg_table.values(): + py_name = arg_object.py_name + if py_name in parsed_args: + value = parsed_args[py_name] + value = self._unpack_arg(arg_object, value, parsed_globals) + arg_object.add_to_params(service_params, value) + return service_params + + def _unpack_arg(self, cli_argument, value, parsed_globals): + # Unpacks a commandline argument into a Python value by firing the + # load-cli-arg.service-name.operation-name event. + session = self._session + service_name = self._operation_model.service_model.endpoint_prefix + operation_name = xform_name(self._name, '-') + + return unpack_argument( + session, service_name, operation_name, cli_argument, value, parsed_globals + ) + + def _create_argument_table(self): + argument_table = OrderedDict() + input_shape = self._operation_model.input_shape + required_arguments = [] + arg_dict = {} + if input_shape is not None: + required_arguments = input_shape.required_members + arg_dict = input_shape.members + for arg_name, arg_shape in arg_dict.items(): + cli_arg_name = xform_name(arg_name, '-') + arg_class = self.ARG_TYPES.get( + arg_shape.type_name, self.DEFAULT_ARG_CLASS + ) + is_token = arg_shape.metadata.get('idempotencyToken', False) + is_required = arg_name in required_arguments and not is_token + event_emitter = self._session.get_component('event_emitter') + arg_object = arg_class( + name=cli_arg_name, + argument_model=arg_shape, + is_required=is_required, + operation_model=self._operation_model, + serialized_name=arg_name, + event_emitter=event_emitter, + ) + arg_object.add_to_arg_table(argument_table) + LOG.debug(argument_table) + self._emit( + f'building-argument-table.{self._parent_name}.{self._name}', + operation_model=self._operation_model, + session=self._session, + command=self, + argument_table=argument_table, + ) + return argument_table + + def _emit(self, name, **kwargs): + return self._session.emit(name, **kwargs) + + def _emit_first_non_none_response(self, name, **kwargs): + return self._session.emit_first_non_none_response(name, **kwargs) + + def _create_operation_parser(self, arg_table): + parser = ArgTableArgParser(arg_table) + return parser + + def _detect_binary_file_migration_change( + self, + session, + parsed_args, + parsed_globals, + arg_table + ): + if ( + session.get_scoped_config() + .get('cli_binary_format', None) == 'raw-in-base64-out' + ): + # if cli_binary_format is set to raw-in-base64-out, then v2 behavior will + # be the same as v1, so there is no breaking change in this case. + return + if resolve_v2_debug_mode(parsed_globals): + parsed_args_to_check = { + arg: getattr(parsed_args, arg) + for arg in vars(parsed_args) if getattr(parsed_args, arg) + } + + arg_values_to_check = [ + arg.py_name for arg in arg_table.values() + if arg.py_name in parsed_args_to_check + and arg.argument_model.type_name == 'blob' + ] + if arg_values_to_check: + print( + '\nAWS CLI v2 UPGRADE WARNING: When specifying a ' + 'blob-type parameter, AWS CLI v2 will assume the ' + 'parameter value is base64-encoded. This is different ' + 'from v1 behavior, where the AWS CLI will automatically ' + 'encode the value to base64. To retain v1 behavior in ' + 'AWS CLI v2, set the `cli_binary_format` configuration ' + 'variable to `raw-in-base64-out`. See ' + 'https://docs.aws.amazon.com/cli/latest/userguide/' + 'cliv2-migration-changes.html' + '#cliv2-migration-binaryparam.\n', + file=sys.stderr + ) + + +class CLIOperationCaller: + """Call an AWS operation and format the response.""" + + def __init__(self, session): + self._session = session + + def invoke(self, service_name, operation_name, parameters, parsed_globals): + """Invoke an operation and format the response. + + :type service_name: str + :param service_name: The name of the service. Note this is the service name, + not the endpoint prefix (e.g. ``ses`` not ``email``). + + :type operation_name: str + :param operation_name: The operation name of the service. The casing + of the operation name should match the exact casing used by the service, + e.g. ``DescribeInstances``, not ``describe-instances`` or + ``describe_instances``. + + :type parameters: dict + :param parameters: The parameters for the operation call. Again, these values + have the same casing used by the service. + + :type parsed_globals: Namespace + :param parsed_globals: The parsed globals from the command line. + + :return: None, the result is displayed through a formatter, but no + value is returned. + + """ + client = create_nested_client( + self._session, + service_name, + region_name=parsed_globals.region, + endpoint_url=parsed_globals.endpoint_url, + verify=parsed_globals.verify_ssl, + ) + response = self._make_client_call( + client, operation_name, parameters, parsed_globals + ) + self._display_response(operation_name, response, parsed_globals) + return 0 + + def _make_client_call( + self, client, operation_name, parameters, parsed_globals + ): + py_operation_name = xform_name(operation_name) + if client.can_paginate(py_operation_name) and parsed_globals.paginate: + paginator = client.get_paginator(py_operation_name) + response = paginator.paginate(**parameters) + else: + response = getattr(client, xform_name(operation_name))( + **parameters + ) + return response + + def _display_response(self, command_name, response, parsed_globals): + output = parsed_globals.output + if output is None: + output = self._session.get_config_variable('output') + formatter = get_formatter(output, parsed_globals) + formatter(command_name, response) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/commands.py b/rep_localstack/lib/python3.12/site-packages/awscli/commands.py new file mode 100644 index 000000000..09951fe3d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/commands.py @@ -0,0 +1,69 @@ +# Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + + +class CLICommand: + """Interface for a CLI command. + + This class represents a top level CLI command + (``aws ec2``, ``aws s3``, ``aws config``). + + """ + + @property + def name(self): + # Subclasses must implement a name. + raise NotImplementedError("name") + + @name.setter + def name(self, value): + # Subclasses must implement setting/changing the cmd name. + raise NotImplementedError("name") + + @property + def lineage(self): + # Represents how to get to a specific command using the CLI. + # It includes all commands that came before it and itself in + # a list. + return [self] + + @property + def lineage_names(self): + # Represents the lineage of a command in terms of command ``name`` + return [cmd.name for cmd in self.lineage] + + def __call__(self, args, parsed_globals): + """Invoke CLI operation. + + :type args: str + :param args: The remaining command line args. + + :type parsed_globals: ``argparse.Namespace`` + :param parsed_globals: The parsed arguments so far. + + :rtype: int + :return: The return code of the operation. This will be used + as the RC code for the ``aws`` process. + + """ + # Subclasses are expected to implement this method. + pass + + def create_help_command(self): + # Subclasses are expected to implement this method if they want + # help docs. + return None + + @property + def arg_table(self): + return {} diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/compat.py b/rep_localstack/lib/python3.12/site-packages/awscli/compat.py new file mode 100644 index 000000000..2ab9122bb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/compat.py @@ -0,0 +1,576 @@ +# Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import collections.abc as collections_abc +import contextlib +import datetime +import io +import locale +import os +import os.path +import queue +import re +import shlex +import signal +import urllib.parse as urlparse +from configparser import RawConfigParser +from urllib.error import URLError +from urllib.request import urlopen + +from botocore.compat import six, OrderedDict + +import sys +import zipfile +from functools import partial + +# Backwards compatible definitions from six +PY3 = sys.version_info[0] == 3 +advance_iterator = next +shlex_quote = shlex.quote +StringIO = io.StringIO +BytesIO = io.BytesIO +binary_type = bytes +raw_input = input + + +# Most, but not all, python installations will have zlib. This is required to +# compress any files we send via a push. If we can't compress, we can still +# package the files in a zip container. +try: + import zlib + + ZIP_COMPRESSION_MODE = zipfile.ZIP_DEFLATED +except ImportError: + ZIP_COMPRESSION_MODE = zipfile.ZIP_STORED + + +try: + import sqlite3 +except ImportError: + sqlite3 = None + + +is_windows = sys.platform == 'win32' + +is_macos = sys.platform == 'darwin' + + +if is_windows: + default_pager = 'more' +else: + default_pager = 'less -R' + + +# cmd.exe characters that require double-quoting to be treated as literals. +# https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/cmd +_WIN_CMD_UNSAFE_CHARS = set('&<>[]|{}^=;!\'()+,`~ \t') + + +class StdinMissingError(Exception): + def __init__(self): + message = 'stdin is required for this operation, but is not available.' + super(StdinMissingError, self).__init__(message) + + +class NonTranslatedStdout: + """This context manager sets the line-end translation mode for stdout. + + It is deliberately set to binary mode so that `\r` does not get added to + the line ending. This can be useful when printing commands where a + windows style line ending would cause errors. + """ + + def __enter__(self): + if sys.platform == "win32": + import msvcrt + + self.previous_mode = msvcrt.setmode( + sys.stdout.fileno(), os.O_BINARY + ) + return sys.stdout + + def __exit__(self, type, value, traceback): + if sys.platform == "win32": + import msvcrt + + msvcrt.setmode(sys.stdout.fileno(), self.previous_mode) + + +def ensure_text_type(s): + if isinstance(s, str): + return s + if isinstance(s, bytes): + return s.decode('utf-8') + raise ValueError("Expected str, unicode or bytes, received %s." % type(s)) + + +def get_binary_stdin(): + if sys.stdin is None: + raise StdinMissingError() + return sys.stdin.buffer + + +def get_binary_stdout(): + return sys.stdout.buffer + + +def _get_text_writer(stream, errors): + return stream + + +def bytes_print(statement, stdout=None): + """ + This function is used to write raw bytes to stdout. + """ + if stdout is None: + stdout = sys.stdout + + if getattr(stdout, 'buffer', None): + stdout.buffer.write(statement) + else: + # If it is not possible to write to the standard out buffer. + # The next best option is to decode and write to standard out. + stdout.write(statement.decode('utf-8')) + + +def compat_open(filename, mode='r', encoding=None, access_permissions=None): + """Back-port open() that accepts an encoding argument. + + In python3 this uses the built in open() and in python2 this + uses the io.open() function. + + If the file is not being opened in binary mode, then we'll + use locale.getpreferredencoding() to find the preferred + encoding. + + """ + opener = os.open + if access_permissions is not None: + opener = partial(os.open, mode=access_permissions) + if 'b' not in mode: + encoding = locale.getpreferredencoding() + return open(filename, mode, encoding=encoding, opener=opener) + + +def get_stdout_text_writer(): + return _get_text_writer(sys.stdout, errors="strict") + + +def get_stderr_text_writer(): + return _get_text_writer(sys.stderr, errors="replace") + + +def get_stderr_encoding(): + encoding = getattr(sys.__stderr__, 'encoding', None) + if encoding is None: + encoding = 'utf-8' + return encoding + + +def compat_input(prompt): + """ + Cygwin's pty's are based on pipes. Therefore, when it interacts with a Win32 + program (such as Win32 python), what that program sees is a pipe instead of + a console. This is important because python buffers pipes, and so on a + pty-based terminal, text will not necessarily appear immediately. In most + cases, this isn't a big deal. But when we're doing an interactive prompt, + the result is that the prompts won't display until we fill the buffer. Since + raw_input does not flush the prompt, we need to manually write and flush it. + + See https://github.com/mintty/mintty/issues/56 for more details. + """ + sys.stdout.write(prompt) + sys.stdout.flush() + return raw_input() + + +def compat_shell_quote(s, platform=None, shell=False): + """Return a shell-escaped version of the string *s* + + Unfortunately `shlex.quote` doesn't support Windows, so this method + provides that functionality. + """ + if platform is None: + platform = sys.platform + + if platform == "win32": + if shell: + return _windows_cmd_shell_quote(s) + return _windows_argv_quote(s) + else: + return shlex.quote(s) + + +def _windows_argv_quote(s): + """Return a Windows argv-escaped version of the string *s* + + Windows has potentially bizarre rules depending on where you look. When + spawning a process via the Windows C runtime the rules are as follows: + + https://docs.microsoft.com/en-us/cpp/cpp/parsing-cpp-command-line-arguments + + To summarize the relevant bits: + + * Only space and tab are valid delimiters + * Double quotes are the only valid quotes + * Backslash is interpreted literally unless it is part of a chain that + leads up to a double quote. Then the backslashes escape the backslashes, + and if there is an odd number the final backslash escapes the quote. + + :param s: A string to escape + :return: An escaped string + """ + if not s: + return '""' + + buff = [] + num_backslashes = 0 + for character in s: + if character == '\\': + # We can't simply append backslashes because we don't know if + # they will need to be escaped. Instead we separately keep track + # of how many we've seen. + num_backslashes += 1 + elif character == '"': + if num_backslashes > 0: + # The backslashes are part of a chain that lead up to a + # double quote, so they need to be escaped. + buff.append('\\' * (num_backslashes * 2)) + num_backslashes = 0 + + # The double quote also needs to be escaped. The fact that we're + # seeing it at all means that it must have been escaped in the + # original source. + buff.append('\\"') + else: + if num_backslashes > 0: + # The backslashes aren't part of a chain leading up to a + # double quote, so they can be inserted directly without + # being escaped. + buff.append('\\' * num_backslashes) + num_backslashes = 0 + buff.append(character) + + # There may be some leftover backslashes if they were on the trailing + # end, so they're added back in here. + if num_backslashes > 0: + buff.append('\\' * num_backslashes) + + new_s = ''.join(buff) + if ' ' in new_s or '\t' in new_s: + # If there are any spaces or tabs then the string needs to be double + # quoted. + return '"%s"' % new_s + return new_s + + +def _windows_cmd_shell_quote(s): + """Return a Windows shell-escaped version of the string *s* that is + safe to pass through cmd.exe + + Handles two interpretation layers: + 1. cmd.exe metacharacters - neutralized by double-quoting when + the string contains any cmd.exe special characters. + 2. MSVC C runtime argv parsing - backslash/double-quote escaping + so the target process receives the correct argument. + + Note: cmd.exe %VAR% expansion and !VAR! delayed expansion + cannot be reliably escaped inside double quotes on the + command line and are not handled here. + + :param s: A string to escape + :return: An escaped string + """ + if not s: + return '""' + + buff = [] + num_backslashes = 0 + needs_quoting = False + for character in s: + if character == '\\': + num_backslashes += 1 + elif character == '"': + if num_backslashes > 0: + buff.append('\\' * (num_backslashes * 2)) + num_backslashes = 0 + buff.append('\\"') + needs_quoting = True + else: + if num_backslashes > 0: + buff.append('\\' * num_backslashes) + num_backslashes = 0 + if character in _WIN_CMD_UNSAFE_CHARS: + needs_quoting = True + buff.append(character) + + if needs_quoting: + # Trailing backslashes must be doubled when we append a closing + # double quote — without doubling, a trailing backslash would + # escape the closing quote. + if num_backslashes > 0: + buff.append('\\' * (num_backslashes * 2)) + inner = ''.join(buff) + return f'"{inner}"' + + if num_backslashes > 0: + buff.append('\\' * num_backslashes) + return ''.join(buff) + + +def get_popen_kwargs_for_pager_cmd(pager_cmd=None): + """Returns the default pager to use dependent on platform + + :rtype: str + :returns: A string represent the paging command to run based on the + platform being used. + """ + popen_kwargs = {} + if pager_cmd is None: + pager_cmd = default_pager + # Similar to what we do with the help command, we need to specify + # shell as True to make it work in the pager for Windows + if is_windows: + popen_kwargs = {'shell': True} + else: + pager_cmd = shlex.split(pager_cmd) + popen_kwargs['args'] = pager_cmd + return popen_kwargs + + +@contextlib.contextmanager +def ignore_user_entered_signals(): + """ + Ignores user entered signals to avoid process getting killed. + """ + if is_windows: + signal_list = [signal.SIGINT] + else: + signal_list = [signal.SIGINT, signal.SIGQUIT, signal.SIGTSTP] + actual_signals = [] + for user_signal in signal_list: + actual_signals.append(signal.signal(user_signal, signal.SIG_IGN)) + try: + yield + finally: + for sig, user_signal in enumerate(signal_list): + signal.signal(user_signal, actual_signals[sig]) + + +# linux_distribution is used by the CodeDeploy customization. Python 3.8 +# removed it from the stdlib, so it is vendored here in the case where the +# import fails. +try: + from platform import linux_distribution +except ImportError: + _UNIXCONFDIR = '/etc' + + def _dist_try_harder(distname, version, id): + """Tries some special tricks to get the distribution + information in case the default method fails. + Currently supports older SuSE Linux, Caldera OpenLinux and + Slackware Linux distributions. + """ + if os.path.exists('/var/adm/inst-log/info'): + # SuSE Linux stores distribution information in that file + distname = 'SuSE' + with open('/var/adm/inst-log/info') as f: + for line in f: + tv = line.split() + if len(tv) == 2: + tag, value = tv + else: + continue + if tag == 'MIN_DIST_VERSION': + version = value.strip() + elif tag == 'DIST_IDENT': + values = value.split('-') + id = values[2] + return distname, version, id + + if os.path.exists('/etc/.installed'): + # Caldera OpenLinux has some infos in that file (thanks to Colin Kong) + with open('/etc/.installed') as f: + for line in f: + pkg = line.split('-') + if len(pkg) >= 2 and pkg[0] == 'OpenLinux': + # XXX does Caldera support non Intel platforms ? If yes, + # where can we find the needed id ? + return 'OpenLinux', pkg[1], id + + if os.path.isdir('/usr/lib/setup'): + # Check for slackware version tag file (thanks to Greg Andruk) + verfiles = os.listdir('/usr/lib/setup') + for n in range(len(verfiles) - 1, -1, -1): + if verfiles[n][:14] != 'slack-version-': + del verfiles[n] + if verfiles: + verfiles.sort() + distname = 'slackware' + version = verfiles[-1][14:] + return distname, version, id + + return distname, version, id + + _release_filename = re.compile(r'(\w+)[-_](release|version)', re.ASCII) + _lsb_release_version = re.compile( + r'(.+) release ([\d.]+)[^(]*(?:\((.+)\))?', re.ASCII + ) + _release_version = re.compile( + r'([^0-9]+)(?: release )?([\d.]+)[^(]*(?:\((.+)\))?', + re.ASCII, + ) + + # See also http://www.novell.com/coolsolutions/feature/11251.html + # and http://linuxmafia.com/faq/Admin/release-files.html + # and http://data.linux-ntfs.org/rpm/whichrpm + # and http://www.die.net/doc/linux/man/man1/lsb_release.1.html + + _supported_dists = ( + 'SuSE', + 'debian', + 'fedora', + 'redhat', + 'centos', + 'mandrake', + 'mandriva', + 'rocks', + 'slackware', + 'yellowdog', + 'gentoo', + 'UnitedLinux', + 'turbolinux', + 'arch', + 'mageia', + ) + + def _parse_release_file(firstline): + # Default to empty 'version' and 'id' strings. Both defaults are used + # when 'firstline' is empty. 'id' defaults to empty when an id can not + # be deduced. + version = '' + id = '' + + # Parse the first line + m = _lsb_release_version.match(firstline) + if m is not None: + # LSB format: "distro release x.x (codename)" + return tuple(m.groups()) + + # Pre-LSB format: "distro x.x (codename)" + m = _release_version.match(firstline) + if m is not None: + return tuple(m.groups()) + + # Unknown format... take the first two words + l = firstline.strip().split() + if l: + version = l[0] + if len(l) > 1: + id = l[1] + return '', version, id + + _distributor_id_file_re = re.compile(r"(?:DISTRIB_ID\s*=)\s*(.*)", re.I) + _release_file_re = re.compile(r"(?:DISTRIB_RELEASE\s*=)\s*(.*)", re.I) + _codename_file_re = re.compile(r"(?:DISTRIB_CODENAME\s*=)\s*(.*)", re.I) + + def linux_distribution( + distname='', + version='', + id='', + supported_dists=_supported_dists, + full_distribution_name=1, + ): + return _linux_distribution( + distname, version, id, supported_dists, full_distribution_name + ) + + def _linux_distribution( + distname, version, id, supported_dists, full_distribution_name + ): + """Tries to determine the name of the Linux OS distribution name. + The function first looks for a distribution release file in + /etc and then reverts to _dist_try_harder() in case no + suitable files are found. + supported_dists may be given to define the set of Linux + distributions to look for. It defaults to a list of currently + supported Linux distributions identified by their release file + name. + If full_distribution_name is true (default), the full + distribution read from the OS is returned. Otherwise the short + name taken from supported_dists is used. + Returns a tuple (distname, version, id) which default to the + args given as parameters. + """ + # check for the Debian/Ubuntu /etc/lsb-release file first, needed so + # that the distribution doesn't get identified as Debian. + # https://bugs.python.org/issue9514 + try: + with open("/etc/lsb-release") as etclsbrel: + for line in etclsbrel: + m = _distributor_id_file_re.search(line) + if m: + _u_distname = m.group(1).strip() + m = _release_file_re.search(line) + if m: + _u_version = m.group(1).strip() + m = _codename_file_re.search(line) + if m: + _u_id = m.group(1).strip() + if _u_distname and _u_version: + return (_u_distname, _u_version, _u_id) + except (OSError, UnboundLocalError): + pass + + try: + etc = os.listdir(_UNIXCONFDIR) + except OSError: + # Probably not a Unix system + return distname, version, id + etc.sort() + for file in etc: + m = _release_filename.match(file) + if m is not None: + _distname, dummy = m.groups() + if _distname in supported_dists: + distname = _distname + break + else: + return _dist_try_harder(distname, version, id) + + # Read the first line + with open( + os.path.join(_UNIXCONFDIR, file), + encoding='utf-8', + errors='surrogateescape', + ) as f: + firstline = f.readline() + _distname, _version, _id = _parse_release_file(firstline) + + if _distname and full_distribution_name: + distname = _distname + if _version: + version = _version + if _id: + id = _id + return distname, version, id + + +def get_current_datetime(remove_tzinfo=True): + # TODO: Consolidate to botocore.compat.get_current_datetime + # after it's had time to bake to avoid import errors with + # mismatched versions. + datetime_now = datetime.datetime.now(datetime.timezone.utc) + if remove_tzinfo: + datetime_now = datetime_now.replace(tzinfo=None) + return datetime_now diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/completer.py b/rep_localstack/lib/python3.12/site-packages/awscli/completer.py new file mode 100644 index 000000000..cf08f18fc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/completer.py @@ -0,0 +1,158 @@ +# Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import copy +import logging +import sys + +import awscli.clidriver + +LOG = logging.getLogger(__name__) + + +class Completer: + def __init__(self, driver=None): + if driver is not None: + self.driver = driver + else: + self.driver = awscli.clidriver.create_clidriver() + self.main_help = self.driver.create_help_command() + self.main_options = self._get_documented_completions( + self.main_help.arg_table + ) + + def complete(self, cmdline, point=None): + if point is None: + point = len(cmdline) + + args = cmdline[0:point].split() + current_arg = args[-1] + cmd_args = [w for w in args if not w.startswith('-')] + opts = [w for w in args if w.startswith('-')] + + cmd_name, cmd = self._get_command(self.main_help, cmd_args) + subcmd_name, subcmd = self._get_command(cmd, cmd_args) + + if cmd_name is None: + # If we didn't find any command names in the cmdline + # lets try to complete provider options + return self._complete_provider(current_arg, opts) + elif subcmd_name is None: + return self._complete_command(cmd_name, cmd, current_arg, opts) + return self._complete_subcommand( + subcmd_name, subcmd, current_arg, opts + ) + + def _complete_command(self, command_name, command_help, current_arg, opts): + if current_arg == command_name: + if command_help: + return self._get_documented_completions( + command_help.command_table + ) + elif current_arg.startswith('-'): + return self._find_possible_options(current_arg, opts) + elif command_help is not None: + # See if they have entered a partial command name + return self._get_documented_completions( + command_help.command_table, current_arg + ) + return [] + + def _complete_subcommand( + self, subcmd_name, subcmd_help, current_arg, opts + ): + if current_arg != subcmd_name and current_arg.startswith('-'): + return self._find_possible_options(current_arg, opts, subcmd_help) + return [] + + def _complete_option(self, option_name): + if option_name == '--endpoint-url': + return [] + if option_name == '--output': + cli_data = self.driver.session.get_data('cli') + return cli_data['options']['output']['choices'] + if option_name == '--profile': + return self.driver.session.available_profiles + return [] + + def _complete_provider(self, current_arg, opts): + if current_arg.startswith('-'): + return self._find_possible_options(current_arg, opts) + elif current_arg == 'aws': + return self._get_documented_completions( + self.main_help.command_table + ) + else: + # Otherwise, see if they have entered a partial command name + return self._get_documented_completions( + self.main_help.command_table, current_arg + ) + + def _get_command(self, command_help, command_args): + if command_help is not None and command_help.command_table is not None: + for command_name in command_args: + if command_name in command_help.command_table: + cmd_obj = command_help.command_table[command_name] + return command_name, cmd_obj.create_help_command() + return None, None + + def _get_documented_completions(self, table, startswith=None): + names = [] + for key, command in table.items(): + if getattr(command, '_UNDOCUMENTED', False): + # Don't tab complete undocumented commands/params + continue + if startswith is not None and not key.startswith(startswith): + continue + if getattr(command, 'positional_arg', False): + continue + names.append(key) + return names + + def _find_possible_options(self, current_arg, opts, subcmd_help=None): + all_options = copy.copy(self.main_options) + if subcmd_help is not None: + all_options += self._get_documented_completions( + subcmd_help.arg_table + ) + + for option in opts: + # Look through list of options on cmdline. If there are + # options that have already been specified and they are + # not the current word, remove them from list of possibles. + if option != current_arg: + stripped_opt = option.lstrip('-') + if stripped_opt in all_options: + all_options.remove(stripped_opt) + cw = current_arg.lstrip('-') + possibilities = ['--' + n for n in all_options if n.startswith(cw)] + if len(possibilities) == 1 and possibilities[0] == current_arg: + return self._complete_option(possibilities[0]) + return possibilities + + +def complete(cmdline, point): + choices = Completer().complete(cmdline, point) + print(' \n'.join(choices)) + + +if __name__ == '__main__': + if len(sys.argv) == 3: + cmdline = sys.argv[1] + point = int(sys.argv[2]) + elif len(sys.argv) == 2: + cmdline = sys.argv[1] + else: + print('usage: %s ' % sys.argv[0]) + sys.exit(1) + print(complete(cmdline, point)) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__init__.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__init__.py new file mode 100644 index 000000000..91df4a66b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__init__.py @@ -0,0 +1,37 @@ +# Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +""" +Customizations +============== + +As we start to accumulate more and more of these *built-in* customizations +we probably need to come up with some way to organize them and to make +it easy to add them and register them. + +One idea I had was to place them all with a package like this. That +at least keeps them all in one place. Each module in this package +should contain a single customization (I think). + +To take it a step further, we could have each module define a couple +of well-defined attributes: + +* ``EVENT`` would be a string containing the event that this customization + needs to be registered with. Or, perhaps this should be a list of + events? +* ``handler`` is a callable that will be registered as the handler + for the event. + +Using a convention like this, we could perhaps automatically discover +all customizations and register them without having to manually edit +``handlers.py`` each time. +""" diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/__init__.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 000000000..15a4634ca Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/__init__.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/addexamples.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/addexamples.cpython-312.pyc new file mode 100644 index 000000000..e9f71baec Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/addexamples.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/argrename.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/argrename.cpython-312.pyc new file mode 100644 index 000000000..6a0a10360 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/argrename.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/arguments.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/arguments.cpython-312.pyc new file mode 100644 index 000000000..da6f56852 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/arguments.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/assumerole.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/assumerole.cpython-312.pyc new file mode 100644 index 000000000..d170dea06 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/assumerole.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/awslambda.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/awslambda.cpython-312.pyc new file mode 100644 index 000000000..d1cc48589 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/awslambda.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/binaryhoist.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/binaryhoist.cpython-312.pyc new file mode 100644 index 000000000..35d240a10 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/binaryhoist.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/cliinputjson.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/cliinputjson.cpython-312.pyc new file mode 100644 index 000000000..da6be2fb3 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/cliinputjson.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/cloudfront.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/cloudfront.cpython-312.pyc new file mode 100644 index 000000000..9e0f311aa Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/cloudfront.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/cloudsearch.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/cloudsearch.cpython-312.pyc new file mode 100644 index 000000000..78c8d1f88 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/cloudsearch.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/cloudsearchdomain.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/cloudsearchdomain.cpython-312.pyc new file mode 100644 index 000000000..adf105dcd Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/cloudsearchdomain.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/codecommit.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/codecommit.cpython-312.pyc new file mode 100644 index 000000000..694e4b0d8 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/codecommit.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/commands.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/commands.cpython-312.pyc new file mode 100644 index 000000000..b9c803c24 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/commands.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/dynamodb.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/dynamodb.cpython-312.pyc new file mode 100644 index 000000000..afd8cbfaf Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/dynamodb.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/ecr.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/ecr.cpython-312.pyc new file mode 100644 index 000000000..3f1a8a882 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/ecr.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/ecr_public.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/ecr_public.cpython-312.pyc new file mode 100644 index 000000000..172c19d7b Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/ecr_public.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/flatten.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/flatten.cpython-312.pyc new file mode 100644 index 000000000..7f377abe5 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/flatten.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/generatecliskeleton.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/generatecliskeleton.cpython-312.pyc new file mode 100644 index 000000000..a4bc5cc8d Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/generatecliskeleton.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/globalargs.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/globalargs.cpython-312.pyc new file mode 100644 index 000000000..59f497d57 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/globalargs.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/iamvirtmfa.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/iamvirtmfa.cpython-312.pyc new file mode 100644 index 000000000..3e63f3505 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/iamvirtmfa.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/iot.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/iot.cpython-312.pyc new file mode 100644 index 000000000..d8f68aab8 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/iot.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/iot_data.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/iot_data.cpython-312.pyc new file mode 100644 index 000000000..a3755e0ae Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/iot_data.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/kinesis.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/kinesis.cpython-312.pyc new file mode 100644 index 000000000..4f8aa7e82 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/kinesis.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/kms.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/kms.cpython-312.pyc new file mode 100644 index 000000000..07cf67bbe Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/kms.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/mturk.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/mturk.cpython-312.pyc new file mode 100644 index 000000000..75b44b63a Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/mturk.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/overridesslcommonname.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/overridesslcommonname.cpython-312.pyc new file mode 100644 index 000000000..b6178c37d Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/overridesslcommonname.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/paginate.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/paginate.cpython-312.pyc new file mode 100644 index 000000000..11ee39455 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/paginate.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/preview.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/preview.cpython-312.pyc new file mode 100644 index 000000000..898de8b8d Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/preview.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/putmetricdata.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/putmetricdata.cpython-312.pyc new file mode 100644 index 000000000..ef33f0471 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/putmetricdata.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/quicksight.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/quicksight.cpython-312.pyc new file mode 100644 index 000000000..06173ba21 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/quicksight.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/rds.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/rds.cpython-312.pyc new file mode 100644 index 000000000..7ad0299c0 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/rds.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/rekognition.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/rekognition.cpython-312.pyc new file mode 100644 index 000000000..c6cbb20e2 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/rekognition.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/removals.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/removals.cpython-312.pyc new file mode 100644 index 000000000..c574baa7e Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/removals.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/route53.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/route53.cpython-312.pyc new file mode 100644 index 000000000..fd3aa4597 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/route53.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/s3errormsg.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/s3errormsg.cpython-312.pyc new file mode 100644 index 000000000..ec842dbe4 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/s3errormsg.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/s3events.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/s3events.cpython-312.pyc new file mode 100644 index 000000000..584d2195e Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/s3events.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/s3uploader.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/s3uploader.cpython-312.pyc new file mode 100644 index 000000000..72c9dfb86 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/s3uploader.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/sagemaker.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/sagemaker.cpython-312.pyc new file mode 100644 index 000000000..f666e73b2 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/sagemaker.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/scalarparse.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/scalarparse.cpython-312.pyc new file mode 100644 index 000000000..9a9b1a08d Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/scalarparse.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/sessendemail.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/sessendemail.cpython-312.pyc new file mode 100644 index 000000000..6a736abcc Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/sessendemail.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/sessionmanager.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/sessionmanager.cpython-312.pyc new file mode 100644 index 000000000..b56fc3884 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/sessionmanager.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/sms_voice.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/sms_voice.cpython-312.pyc new file mode 100644 index 000000000..1ead903c0 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/sms_voice.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/socialmessaging.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/socialmessaging.cpython-312.pyc new file mode 100644 index 000000000..1b275a689 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/socialmessaging.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/streamingoutputarg.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/streamingoutputarg.cpython-312.pyc new file mode 100644 index 000000000..f5bd2980a Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/streamingoutputarg.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/toplevelbool.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/toplevelbool.cpython-312.pyc new file mode 100644 index 000000000..125890ed1 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/toplevelbool.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/translate.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/translate.cpython-312.pyc new file mode 100644 index 000000000..a506b993d Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/translate.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/utils.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/utils.cpython-312.pyc new file mode 100644 index 000000000..a5e3d7a91 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/utils.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/waiters.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/waiters.cpython-312.pyc new file mode 100644 index 000000000..d2a44dc83 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/__pycache__/waiters.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/addexamples.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/addexamples.py new file mode 100644 index 000000000..011023130 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/addexamples.py @@ -0,0 +1,63 @@ +# Copyright 2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +""" +Add authored examples to MAN and HTML documentation +--------------------------------------------------- + +This customization allows authored examples in ReST format to be +inserted into the generated help for an Operation. To get this to +work you need to: + +* Register the ``add_examples`` function below with the + ``doc-examples.*.*`` event. +* Create a file containing ReST format fragment with the examples. + The file needs to be created in the ``examples/`` + directory and needs to be named ``-.rst``. + For example, ``examples/ec2/ec2-create-key-pair.rst``. + +""" +import os +import logging + + +LOG = logging.getLogger(__name__) + + +def add_examples(help_command, **kwargs): + doc_path = os.path.join( + os.path.dirname( + os.path.dirname( + os.path.abspath(__file__))), 'examples') + doc_path = os.path.join(doc_path, + help_command.event_class.replace('.', os.path.sep)) + doc_path = doc_path + '.rst' + LOG.debug("Looking for example file at: %s", doc_path) + if os.path.isfile(doc_path): + help_command.doc.style.h2('Examples') + help_command.doc.style.start_note() + msg = ("

To use the following examples, you must have the AWS " + "CLI installed and configured. See the " + "" + "Getting started guide in the AWS CLI User Guide " + "for more information.

" + "

Unless otherwise stated, all examples have unix-like " + "quotation rules. These examples will need to be adapted " + "to your terminal's quoting rules. See " + "" + "Using quotation marks with strings " + "in the AWS CLI User Guide.

") + help_command.doc.include_doc_string(msg) + help_command.doc.style.end_note() + fp = open(doc_path) + for line in fp.readlines(): + help_command.doc.write(line) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/argrename.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/argrename.py new file mode 100644 index 000000000..872fcfc2f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/argrename.py @@ -0,0 +1,174 @@ +# Copyright 2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +""" +""" + +from awscli.customizations import utils + + +ARGUMENT_RENAMES = { + # Mapping of original arg to renamed arg. + # The key is ..argname + # The first part of the key is used for event registration + # so if you wanted to rename something for an entire service you + # could say 'ec2.*.dry-run': 'renamed-arg-name', or if you wanted + # to rename across all services you could say '*.*.dry-run': 'new-name'. + 'ec2.create-image.no-no-reboot': 'reboot', + 'ec2.*.no-egress': 'ingress', + 'ec2.*.no-disable-api-termination': 'enable-api-termination', + 'swf.register-activity-type.version': 'activity-version', + 'swf.register-workflow-type.version': 'workflow-version', + 'datapipeline.*.query': 'objects-query', + 'datapipeline.get-pipeline-definition.version': 'pipeline-version', + 'emr.*.job-flow-ids': 'cluster-ids', + 'emr.*.job-flow-id': 'cluster-id', + 'cloudsearchdomain.search.query': 'search-query', + 'cloudsearchdomain.suggest.query': 'suggest-query', + 'sns.subscribe.endpoint': 'notification-endpoint', + 'deploy.*.s-3-location': 's3-location', + 'deploy.*.ec-2-tag-filters': 'ec2-tag-filters', + 'codepipeline.get-pipeline.version': 'pipeline-version', + 'codepipeline.create-custom-action-type.version': 'action-version', + 'codepipeline.delete-custom-action-type.version': 'action-version', + 'kinesisanalytics.add-application-output.output': 'application-output', + 'kinesisanalyticsv2.add-application-output.output': 'application-output', + 'route53.delete-traffic-policy.version': 'traffic-policy-version', + 'route53.get-traffic-policy.version': 'traffic-policy-version', + 'route53.update-traffic-policy-comment.version': 'traffic-policy-version', + 'gamelift.create-build.version': 'build-version', + 'gamelift.update-build.version': 'build-version', + 'gamelift.create-script.version': 'script-version', + 'gamelift.update-script.version': 'script-version', + 'route53domains.view-billing.start': 'start-time', + 'route53domains.view-billing.end': 'end-time', + 'apigateway.create-rest-api.version': 'api-version', + 'apigatewayv2.create-api.version': 'api-version', + 'apigatewayv2.update-api.version': 'api-version', + 'pinpoint.get-campaign-version.version': 'campaign-version', + 'pinpoint.get-segment-version.version': 'segment-version', + 'pinpoint.delete-email-template.version': 'template-version', + 'pinpoint.delete-in-app-template.version': 'template-version', + 'pinpoint.delete-push-template.version': 'template-version', + 'pinpoint.delete-sms-template.version': 'template-version', + 'pinpoint.delete-voice-template.version': 'template-version', + 'pinpoint.get-email-template.version': 'template-version', + 'pinpoint.get-in-app-template.version': 'template-version', + 'pinpoint.get-push-template.version': 'template-version', + 'pinpoint.get-sms-template.version': 'template-version', + 'pinpoint.get-voice-template.version': 'template-version', + 'pinpoint.update-email-template.version': 'template-version', + 'pinpoint.update-in-app-template.version': 'template-version', + 'pinpoint.update-push-template.version': 'template-version', + 'pinpoint.update-sms-template.version': 'template-version', + 'pinpoint.update-voice-template.version': 'template-version', + 'stepfunctions.send-task-success.output': 'task-output', + 'clouddirectory.publish-schema.version': 'schema-version', + 'mturk.list-qualification-types.query': 'types-query', + 'workdocs.create-notification-subscription.endpoint': + 'notification-endpoint', + 'workdocs.describe-users.query': 'user-query', + 'lex-models.delete-bot.version': 'bot-version', + 'lex-models.delete-intent.version': 'intent-version', + 'lex-models.delete-slot-type.version': 'slot-type-version', + 'lex-models.get-intent.version': 'intent-version', + 'lex-models.get-slot-type.version': 'slot-type-version', + 'lex-models.delete-bot-version.version': 'bot-version', + 'lex-models.delete-intent-version.version': 'intent-version', + 'lex-models.delete-slot-type-version.version': 'slot-type-version', + 'lex-models.get-export.version': 'resource-version', + 'license-manager.get-grant.version': 'grant-version', + 'license-manager.delete-grant.version': 'grant-version', + 'license-manager.get-license.version': 'license-version', + 'rekognition.create-stream-processor.output': 'stream-processor-output', + 'eks.create-cluster.version': 'kubernetes-version', + 'eks.update-cluster-version.version': 'kubernetes-version', + 'eks.create-nodegroup.version': 'kubernetes-version', + 'eks.update-nodegroup-version.version': 'kubernetes-version', + 'eks.update-cluster-components-version.version': 'kubernetes-version', + 'schemas.*.version': 'schema-version', + 'sagemaker.delete-image-version.version': 'version-number', + 'sagemaker.describe-image-version.version': 'version-number', + 'sagemaker.list-aliases.version': 'version-number', + 'sagemaker.update-image-version.version': 'version-number', + 'iotwireless.*.lo-ra-wan': 'lorawan', + 'codepipeline.get-action-type.version': 'action-version', + 'ecs.*.no-enable-execute-command': 'disable-execute-command', + 'ecs.execute-command.no-interactive': 'non-interactive', + 'controltower.create-landing-zone.version': 'landing-zone-version', + 'controltower.update-landing-zone.version': 'landing-zone-version', + 'glue.get-unfiltered-partition-metadata.region': 'resource-region', + 'glue.get-unfiltered-partitions-metadata.region': 'resource-region', + 'glue.get-unfiltered-table-metadata.region': 'resource-region', +} + +# Same format as ARGUMENT_RENAMES, but instead of renaming the arguments, +# an alias is created to the original argument and marked as undocumented. +# This is useful when you need to change the name of an argument but you +# still need to support the old argument. +HIDDEN_ALIASES = { + 'cognito-identity.create-identity-pool.open-id-connect-provider-arns': + 'open-id-connect-provider-ar-ns', + 'storagegateway.describe-tapes.tape-arns': 'tape-ar-ns', + 'storagegateway.describe-tape-archives.tape-arns': 'tape-ar-ns', + 'storagegateway.describe-vtl-devices.vtl-device-arns': 'vtl-device-ar-ns', + 'storagegateway.describe-cached-iscsi-volumes.volume-arns': 'volume-ar-ns', + 'storagegateway.describe-stored-iscsi-volumes.volume-arns': 'volume-ar-ns', + 'route53domains.view-billing.start-time': 'start', + # These come from the xform_name() changes that no longer separates words + # by numbers. + 'deploy.create-deployment-group.ec2-tag-set': 'ec-2-tag-set', + 'deploy.list-application-revisions.s3-bucket': 's-3-bucket', + 'deploy.list-application-revisions.s3-key-prefix': 's-3-key-prefix', + 'deploy.update-deployment-group.ec2-tag-set': 'ec-2-tag-set', + 'iam.enable-mfa-device.authentication-code1': 'authentication-code-1', + 'iam.enable-mfa-device.authentication-code2': 'authentication-code-2', + 'iam.resync-mfa-device.authentication-code1': 'authentication-code-1', + 'iam.resync-mfa-device.authentication-code2': 'authentication-code-2', + 'importexport.get-shipping-label.street1': 'street-1', + 'importexport.get-shipping-label.street2': 'street-2', + 'importexport.get-shipping-label.street3': 'street-3', + 'lambda.publish-version.code-sha256': 'code-sha-256', + 'lightsail.import-key-pair.public-key-base64': 'public-key-base-64', + 'mgn.*.replication-servers-security-groups-ids': + 'replication-servers-security-groups-i-ds', + 'mgn.*.source-server-ids': 'source-server-i-ds', + 'mgn.*.replication-configuration-template-ids': + 'replication-configuration-template-i-ds', + 'elasticache.create-replication-group.preferred-cache-cluster-azs': + 'preferred-cache-cluster-a-zs' +} + + +def register_arg_renames(cli): + for original, new_name in ARGUMENT_RENAMES.items(): + event_portion, original_arg_name = original.rsplit('.', 1) + cli.register('building-argument-table.%s' % event_portion, + rename_arg(original_arg_name, new_name)) + for original, new_name in HIDDEN_ALIASES.items(): + event_portion, original_arg_name = original.rsplit('.', 1) + cli.register('building-argument-table.%s' % event_portion, + hidden_alias(original_arg_name, new_name)) + + +def rename_arg(original_arg_name, new_name): + def _rename_arg(argument_table, **kwargs): + if original_arg_name in argument_table: + utils.rename_argument(argument_table, original_arg_name, new_name) + return _rename_arg + + +def hidden_alias(original_arg_name, alias_name): + def _alias_arg(argument_table, **kwargs): + if original_arg_name in argument_table: + utils.make_hidden_alias(argument_table, original_arg_name, alias_name) + return _alias_arg diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/arguments.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/arguments.py new file mode 100644 index 000000000..945c19be9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/arguments.py @@ -0,0 +1,211 @@ +# Copyright 2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import os +import re + +from awscli.arguments import CustomArgument +from awscli.compat import compat_open +import jmespath + + +def resolve_given_outfile_path(path): + """Asserts that a path is writable and returns the expanded path""" + if path is None: + return + outfile = os.path.expanduser(os.path.expandvars(path)) + if not os.access(os.path.dirname(os.path.abspath(outfile)), os.W_OK): + raise ValueError('Unable to write to file: %s' % outfile) + return outfile + + +def is_parsed_result_successful(parsed_result): + """Returns True if a parsed result is successful""" + return parsed_result['ResponseMetadata']['HTTPStatusCode'] < 300 + + +class OverrideRequiredArgsArgument(CustomArgument): + """An argument that if specified makes all other arguments not required + + By not required, it refers to not having an error thrown when the + parser does not find an argument that is required on the command line. + To obtain this argument's property of ignoring required arguments, + subclass from this class and fill out the ``ARG_DATA`` parameter as + described below. Note this class is really only useful for subclassing. + """ + + # ``ARG_DATA`` follows the same format as a member of ``ARG_TABLE`` in + # ``BasicCommand`` class as specified in + # ``awscli/customizations/commands.py``. + # + # For example, an ``ARG_DATA`` variable would be filled out as: + # + # ARG_DATA = + # {'name': 'my-argument', + # 'help_text': 'This is argument ensures the argument is specified' + # 'no other arguments are required'} + ARG_DATA = {'name': 'no-required-args'} + + def __init__(self, session): + self._session = session + self._register_argument_action() + super(OverrideRequiredArgsArgument, self).__init__(**self.ARG_DATA) + + def _register_argument_action(self): + self._session.register('before-building-argument-table-parser', + self.override_required_args) + + def override_required_args(self, argument_table, args, **kwargs): + name_in_cmdline = '--' + self.name + # Set all ``Argument`` objects in ``argument_table`` to not required + # if this argument's name is present in the command line. + if name_in_cmdline in args: + for arg_name in argument_table.keys(): + argument_table[arg_name].required = False + + +class StatefulArgument(CustomArgument): + """An argument that maintains a stateful value""" + + def __init__(self, *args, **kwargs): + super(StatefulArgument, self).__init__(*args, **kwargs) + self._value = None + + def add_to_params(self, parameters, value): + super(StatefulArgument, self).add_to_params(parameters, value) + self._value = value + + @property + def value(self): + return self._value + + +class QueryOutFileArgument(StatefulArgument): + """An argument that write a JMESPath query result to a file""" + + def __init__(self, session, name, query, after_call_event, perm, + *args, **kwargs): + self._session = session + self._query = query + self._after_call_event = after_call_event + self._perm = perm + # Generate default help_text if text was not provided. + if 'help_text' not in kwargs: + kwargs['help_text'] = ('Saves the command output contents of %s ' + 'to the given filename' % self.query) + super(QueryOutFileArgument, self).__init__(name, *args, **kwargs) + + @property + def query(self): + return self._query + + @property + def perm(self): + return self._perm + + def add_to_params(self, parameters, value): + value = resolve_given_outfile_path(value) + super(QueryOutFileArgument, self).add_to_params(parameters, value) + if self.value is not None: + # Only register the event to save the argument if it is set + self._session.register(self._after_call_event, self.save_query) + + def save_query(self, parsed, **kwargs): + """Saves the result of a JMESPath expression to a file. + + This method only saves the query data if the response code of + the parsed result is < 300. + """ + if is_parsed_result_successful(parsed): + contents = jmespath.search(self.query, parsed) + with compat_open( + self.value, 'w', access_permissions=self.perm) as fp: + # Don't write 'None' to a file -- write ''. + if contents is None: + fp.write('') + else: + fp.write(contents) + # Even though the file is opened using the requested mode + # (e.g. 0o600), the mode is only applied if a new file is + # created. This means if the file already exists, its + # permissions will not be changed. So, the os.chmod call is + # retained here to preserve behavior of this argument always + # clobbering a preexisting file's permissions to the desired + # mode. + os.chmod(self.value, self.perm) + + +class NestedBlobArgumentHoister(object): + """Can be registered to update a single argument / model value combination + mapping that to a new top-level argument. + Currently limited to blob argument types as these are the only ones + requiring the hoist. + """ + + def __init__(self, source_arg, source_arg_blob_member, + new_arg, new_arg_doc_string, doc_string_addendum): + self._source_arg = source_arg + self._source_arg_blob_member = source_arg_blob_member + self._new_arg = new_arg + self._new_arg_doc_string = new_arg_doc_string + self._doc_string_addendum = doc_string_addendum + + def __call__(self, session, argument_table, **kwargs): + if not self._valid_target(argument_table): + return + self._update_arg( + argument_table, self._source_arg, self._new_arg) + + def _valid_target(self, argument_table): + # Find the source argument and check that it has a member of + # the same name and type. + if self._source_arg in argument_table: + arg = argument_table[self._source_arg] + input_model = arg.argument_model + member = input_model.members.get(self._source_arg_blob_member) + if (member is not None and + member.type_name == 'blob'): + return True + return False + + def _update_arg(self, argument_table, source_arg, new_arg): + argument_table[new_arg] = _NestedBlobArgumentParamOverwrite( + new_arg, source_arg, self._source_arg_blob_member, + help_text=self._new_arg_doc_string, + cli_type_name='blob') + argument_table[source_arg].required = False + argument_table[source_arg].documentation += self._doc_string_addendum + + +class _NestedBlobArgumentParamOverwrite(CustomArgument): + def __init__(self, new_arg, source_arg, source_arg_blob_member, **kwargs): + super(_NestedBlobArgumentParamOverwrite, self).__init__( + new_arg, **kwargs) + self._param_to_overwrite = _reverse_xform_name(source_arg) + self._source_arg_blob_member = source_arg_blob_member + + def add_to_params(self, parameters, value): + if value is None: + return + param_value = {self._source_arg_blob_member: value} + if parameters.get(self._param_to_overwrite): + parameters[self._param_to_overwrite].update(param_value) + else: + parameters[self._param_to_overwrite] = param_value + + +def _upper(match): + return match.group(1).lstrip('-').upper() + + +def _reverse_xform_name(name): + return re.sub(r'(^.|-.)', _upper, name) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/assumerole.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/assumerole.py new file mode 100644 index 000000000..b25a80b2d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/assumerole.py @@ -0,0 +1,45 @@ +import os +import logging + +from botocore.exceptions import ProfileNotFound +from botocore.credentials import JSONFileCache + +LOG = logging.getLogger(__name__) +CACHE_DIR = os.path.expanduser(os.path.join('~', '.aws', 'cli', 'cache')) + + +def register_assume_role_provider(event_handlers): + event_handlers.register('session-initialized', + inject_assume_role_provider_cache, + unique_id='inject_assume_role_cred_provider_cache') + + +def inject_assume_role_provider_cache(session, **kwargs): + try: + cred_chain = session.get_component('credential_provider') + except ProfileNotFound: + # If a user has provided a profile that does not exist, + # trying to retrieve components/config on the session + # will raise ProfileNotFound. Sometimes this is invalid: + # + # "ec2 describe-instances --profile unknown" + # + # and sometimes this is perfectly valid: + # + # "configure set region us-west-2 --profile brand-new-profile" + # + # Because we can't know (and don't want to know) whether + # the customer is trying to do something valid, we just + # immediately return. If it's invalid something else + # up the stack will raise ProfileNotFound, otherwise + # the configure (and other) commands will work as expected. + LOG.debug("ProfileNotFound caught when trying to inject " + "assume-role cred provider cache. Not configuring " + "JSONFileCache for assume-role.") + return + assume_role_provider = cred_chain.get_provider('assume-role') + assume_role_provider.cache = JSONFileCache(CACHE_DIR) + web_identity_provider = cred_chain.get_provider( + 'assume-role-with-web-identity' + ) + web_identity_provider.cache = JSONFileCache(CACHE_DIR) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/awslambda.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/awslambda.py new file mode 100644 index 000000000..73df5f4fa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/awslambda.py @@ -0,0 +1,151 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import zipfile +import copy +from contextlib import closing + +from awscli.arguments import CustomArgument, CLIArgument +from awscli.compat import BytesIO + + +ERROR_MSG = ( + "--zip-file must be a zip file with the fileb:// prefix.\n" + "Example usage: --zip-file fileb://path/to/file.zip") + +ZIP_DOCSTRING = ( + '

The path to the zip file of the {param_type} you are uploading. ' + 'Specify --zip-file or --{param_type}, but not both. ' + 'Example: fileb://{param_type}.zip

' +) + + +def register_lambda_create_function(cli): + cli.register('building-argument-table.lambda.create-function', + ZipFileArgumentHoister('Code').hoist) + cli.register('building-argument-table.lambda.publish-layer-version', + ZipFileArgumentHoister('Content').hoist) + cli.register('building-argument-table.lambda.update-function-code', + _modify_zipfile_docstring) + cli.register('process-cli-arg.lambda.update-function-code', + validate_is_zip_file) + + +def validate_is_zip_file(cli_argument, value, **kwargs): + if cli_argument.name == 'zip-file': + _should_contain_zip_content(value) + + +class ZipFileArgumentHoister(object): + """Hoists a ZipFile argument up to the top level. + + Injects a top-level ZipFileArgument into the argument table which maps + a --zip-file parameter to the underlying ``serialized_name`` ZipFile + shape. Replaces the old ZipFile argument with an instance of + ReplacedZipFileArgument to prevent its usage and recommend the new + top-level injected parameter. + """ + def __init__(self, serialized_name): + self._serialized_name = serialized_name + self._name = serialized_name.lower() + + def hoist(self, session, argument_table, **kwargs): + help_text = ZIP_DOCSTRING.format(param_type=self._name) + argument_table['zip-file'] = ZipFileArgument( + 'zip-file', help_text=help_text, cli_type_name='blob', + serialized_name=self._serialized_name + ) + argument = argument_table[self._name] + model = copy.deepcopy(argument.argument_model) + del model.members['ZipFile'] + argument_table[self._name] = ReplacedZipFileArgument( + name=self._name, + argument_model=model, + operation_model=argument._operation_model, + is_required=False, + event_emitter=session.get_component('event_emitter'), + serialized_name=self._serialized_name, + ) + + +def _modify_zipfile_docstring(session, argument_table, **kwargs): + if 'zip-file' in argument_table: + argument_table['zip-file'].documentation = ZIP_DOCSTRING + + +def _should_contain_zip_content(value): + if not isinstance(value, bytes): + # If it's not bytes it's basically impossible for + # this to be valid zip content, but we'll at least + # still try to load the contents as a zip file + # to be absolutely sure. + value = value.encode('utf-8') + fileobj = BytesIO(value) + try: + with closing(zipfile.ZipFile(fileobj)) as f: + f.infolist() + except zipfile.BadZipFile: + raise ValueError(ERROR_MSG) + + +class ZipFileArgument(CustomArgument): + """A new ZipFile argument to be injected at the top level. + + This class injects a ZipFile argument under the specified serialized_name + parameter. This can be used to take a top level parameter like --zip-file + and inject it into a nested different parameter like Code so + --zip-file foo.zip winds up being serialized as + { 'Code': { 'ZipFile': } }. + """ + def __init__(self, *args, **kwargs): + self._param_to_replace = kwargs.pop('serialized_name') + super(ZipFileArgument, self).__init__(*args, **kwargs) + + def add_to_params(self, parameters, value): + if value is None: + return + _should_contain_zip_content(value) + zip_file_param = {'ZipFile': value} + if parameters.get(self._param_to_replace): + parameters[self._param_to_replace].update(zip_file_param) + else: + parameters[self._param_to_replace] = zip_file_param + + +class ReplacedZipFileArgument(CLIArgument): + """A replacement argument for nested ZipFile argument. + + This prevents the use of a non-working nested argument that expects binary. + Instead an instance of ZipFileArgument should be injected at the top level + and used instead. That way fileb:// can be used to load the binary + contents. And the argument class can inject those bytes into the correct + serialization name. + """ + def __init__(self, *args, **kwargs): + super(ReplacedZipFileArgument, self).__init__(*args, **kwargs) + self._cli_name = '--%s' % kwargs['name'] + self._param_to_replace = kwargs['serialized_name'] + + def add_to_params(self, parameters, value): + if value is None: + return + unpacked = self._unpack_argument(value) + if 'ZipFile' in unpacked: + raise ValueError( + "ZipFile cannot be provided " + "as part of the %s argument. " + "Please use the '--zip-file' " + "option instead to specify a zip file." % self._cli_name) + if parameters.get(self._param_to_replace): + parameters[self._param_to_replace].update(unpacked) + else: + parameters[self._param_to_replace] = unpacked diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/binaryhoist.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/binaryhoist.py new file mode 100644 index 000000000..e4835a3a4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/binaryhoist.py @@ -0,0 +1,98 @@ +# Copyright 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import copy + +from dataclasses import dataclass +from typing import Optional +from awscli.arguments import CustomArgument, CLIArgument + + +@dataclass +class ArgumentParameters: + name: str + member: Optional[str] = None + help_text: Optional[str] = None + required: Optional[bool] = False + + +class InjectingArgument(CustomArgument): + def __init__(self, serialized_name, original_member_name, **kwargs): + self._serialized_name = serialized_name + self._original_member_name = original_member_name + super().__init__(**kwargs) + + def add_to_params(self, parameters, value): + if value is None: + pass + wrapped_value = {self._original_member_name: value} + if parameters.get(self._serialized_name): + parameters[self._serialized_name].update(wrapped_value) + else: + parameters[self._serialized_name] = wrapped_value + + +class OriginalArgument(CLIArgument): + def __init__(self, original_member_name, error_message, **kwargs): + self._serialized_name = kwargs.get("serialized_name") + self._original_member_name = original_member_name + self._error_message = error_message + super().__init__(**kwargs) + + def add_to_params(self, parameters, value): + if value is None: + return + + unpacked = self._unpack_argument(value) + if self._original_member_name in unpacked and self._error_message: + raise ValueError(self._error_message) + + if parameters.get(self._serialized_name): + parameters[self._serialized_name].update(unpacked) + else: + parameters[self._serialized_name] = unpacked + + +class BinaryBlobArgumentHoister: + def __init__( + self, + new_argument: ArgumentParameters, + original_argument: ArgumentParameters, + error_if_original_used: Optional[str] = None, + ): + self._new_argument = new_argument + self._original_argument = original_argument + self._error_message = error_if_original_used + + def __call__(self, session, argument_table, **kwargs): + argument = argument_table[self._original_argument.name] + model = copy.deepcopy(argument.argument_model) + del model.members[self._original_argument.member] + + argument_table[self._new_argument.name] = InjectingArgument( + argument._serialized_name, + self._original_argument.member, + name=self._new_argument.name, + help_text=self._new_argument.help_text, + cli_type_name="blob", + required=self._new_argument.required, + ) + argument_table[self._original_argument.name] = OriginalArgument( + self._original_argument.member, + self._error_message, + name=self._original_argument.name, + argument_model=model, + operation_model=argument._operation_model, + is_required=self._original_argument.required, + event_emitter=session.get_component("event_emitter"), + serialized_name=argument._serialized_name, + ) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cliinputjson.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cliinputjson.py new file mode 100644 index 000000000..47d58c0c3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cliinputjson.py @@ -0,0 +1,89 @@ +# Copyright 2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import json + +from awscli.paramfile import get_paramfile, LOCAL_PREFIX_MAP +from awscli.argprocess import ParamError +from awscli.customizations.arguments import OverrideRequiredArgsArgument + + +def register_cli_input_json(cli): + cli.register('building-argument-table', add_cli_input_json) + + +def add_cli_input_json(session, argument_table, **kwargs): + # This argument cannot support operations with streaming output which + # is designated by the argument name `outfile`. + if 'outfile' not in argument_table: + cli_input_json_argument = CliInputJSONArgument(session) + cli_input_json_argument.add_to_arg_table(argument_table) + + +class CliInputJSONArgument(OverrideRequiredArgsArgument): + """This argument inputs a JSON string as the entire input for a command. + + Ideally, the value to this argument should be a filled out JSON file + generated by ``--generate-cli-skeleton``. The items in the JSON string + will not clobber other arguments entered into the command line. + """ + ARG_DATA = { + 'name': 'cli-input-json', + 'help_text': 'Performs service operation based on the JSON string ' + 'provided. The JSON string follows the format provided ' + 'by ``--generate-cli-skeleton``. If other arguments are ' + 'provided on the command line, the CLI values will override ' + 'the JSON-provided values. It is not possible to pass ' + 'arbitrary binary values using a JSON-provided value as ' + 'the string will be taken literally.' + } + + def __init__(self, session): + super(CliInputJSONArgument, self).__init__(session) + + def _register_argument_action(self): + self._session.register( + 'calling-command.*', self.add_to_call_parameters) + super(CliInputJSONArgument, self)._register_argument_action() + + def add_to_call_parameters(self, call_parameters, parsed_args, + parsed_globals, **kwargs): + + # Check if ``--cli-input-json`` was specified in the command line. + input_json = getattr(parsed_args, 'cli_input_json', None) + if input_json is not None: + # Retrieve the JSON from the file if needed. + retrieved_json = get_paramfile(input_json, LOCAL_PREFIX_MAP) + # Nothing was retrieved from the file. So assume the argument + # is already a JSON string. + if retrieved_json is None: + retrieved_json = input_json + try: + # Try to load the JSON string into a python dictionary + input_data = json.loads(retrieved_json) + self._session.register( + f"get-cli-input-json-data", + lambda **inner_kwargs: input_data + ) + except ValueError as e: + raise ParamError( + self.name, "Invalid JSON: %s\nJSON received: %s" + % (e, retrieved_json)) + # Add the members from the input JSON to the call parameters. + self._update_call_parameters(call_parameters, input_data) + + def _update_call_parameters(self, call_parameters, input_data): + for input_key in input_data.keys(): + # Only add the values to ``call_parameters`` if not already + # present. + if input_key not in call_parameters: + call_parameters[input_key] = input_data[input_key] diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__init__.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__init__.py new file mode 100644 index 000000000..409966b73 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__init__.py @@ -0,0 +1,31 @@ +# Copyright 2012-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +from awscli.customizations.cloudformation.package import PackageCommand +from awscli.customizations.cloudformation.deploy import DeployCommand + + +def initialize(cli): + """ + The entry point for CloudFormation high level commands. + """ + cli.register('building-command-table.cloudformation', inject_commands) + + +def inject_commands(command_table, session, **kwargs): + """ + Called when the CloudFormation command table is being built. Used to + inject new high level commands into the command list. These high level + commands must not collide with existing low-level API call names. + """ + command_table['package'] = PackageCommand(session) + command_table['deploy'] = DeployCommand(session) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__pycache__/__init__.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 000000000..99adf0fee Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__pycache__/__init__.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__pycache__/artifact_exporter.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__pycache__/artifact_exporter.cpython-312.pyc new file mode 100644 index 000000000..3803a5221 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__pycache__/artifact_exporter.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__pycache__/deploy.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__pycache__/deploy.cpython-312.pyc new file mode 100644 index 000000000..46b7c0126 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__pycache__/deploy.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__pycache__/deployer.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__pycache__/deployer.cpython-312.pyc new file mode 100644 index 000000000..9d23edd8a Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__pycache__/deployer.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__pycache__/exceptions.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__pycache__/exceptions.cpython-312.pyc new file mode 100644 index 000000000..9a6131b3e Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__pycache__/exceptions.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__pycache__/package.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__pycache__/package.cpython-312.pyc new file mode 100644 index 000000000..3a0d0b504 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__pycache__/package.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__pycache__/yamlhelper.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__pycache__/yamlhelper.cpython-312.pyc new file mode 100644 index 000000000..bb09bf731 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/__pycache__/yamlhelper.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/artifact_exporter.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/artifact_exporter.py new file mode 100644 index 000000000..7fba8dddb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/artifact_exporter.py @@ -0,0 +1,683 @@ +# Copyright 2012-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import logging +import os +import tempfile +import zipfile +import contextlib +import uuid +import shutil +from botocore.utils import set_value_from_jmespath + +from awscli.compat import urlparse +from contextlib import contextmanager +from awscli.customizations.cloudformation import exceptions +from awscli.customizations.cloudformation.yamlhelper import yaml_dump, \ + yaml_parse +import jmespath + + +LOG = logging.getLogger(__name__) + + +def is_path_value_valid(path): + return isinstance(path, str) + + +def make_abs_path(directory, path): + if is_path_value_valid(path) and not os.path.isabs(path): + return os.path.normpath(os.path.join(directory, path)) + else: + return path + + +def is_s3_url(url): + try: + parse_s3_url(url) + return True + except ValueError: + return False + + +def is_local_folder(path): + return is_path_value_valid(path) and os.path.isdir(path) + + +def is_local_file(path): + return is_path_value_valid(path) and os.path.isfile(path) + + +def is_zip_file(path): + return ( + is_path_value_valid(path) and + zipfile.is_zipfile(path)) + + +def parse_s3_url(url, + bucket_name_property="Bucket", + object_key_property="Key", + version_property=None): + + if isinstance(url, str) \ + and url.startswith("s3://"): + + # Python < 2.7.10 don't parse query parameters from URI with custom + # scheme such as s3://blah/blah. As a workaround, remove scheme + # altogether to trigger the parser "s3://foo/bar?v=1" =>"//foo/bar?v=1" + parsed = urlparse.urlparse(url[3:]) + query = urlparse.parse_qs(parsed.query) + + if parsed.netloc and parsed.path: + result = dict() + result[bucket_name_property] = parsed.netloc + result[object_key_property] = parsed.path.lstrip('/') + + # If there is a query string that has a single versionId field, + # set the object version and return + if version_property is not None \ + and 'versionId' in query \ + and len(query['versionId']) == 1: + result[version_property] = query['versionId'][0] + + return result + + raise ValueError("URL given to the parse method is not a valid S3 url " + "{0}".format(url)) + + +def upload_local_artifacts(resource_id, resource_dict, property_name, + parent_dir, uploader): + """ + Upload local artifacts referenced by the property at given resource and + return S3 URL of the uploaded object. It is the responsibility of callers + to ensure property value is a valid string + + If path refers to a file, this method will upload the file. If path refers + to a folder, this method will zip the folder and upload the zip to S3. + If path is omitted, this method will zip the current working folder and + upload. + + If path is already a path to S3 object, this method does nothing. + + :param resource_id: Id of the CloudFormation resource + :param resource_dict: Dictionary containing resource definition + :param property_name: Property name of CloudFormation resource where this + local path is present + :param parent_dir: Resolve all relative paths with respect to this + directory + :param uploader: Method to upload files to S3 + + :return: S3 URL of the uploaded object + :raise: ValueError if path is not a S3 URL or a local path + """ + + local_path = jmespath.search(property_name, resource_dict) + + if local_path is None: + # Build the root directory and upload to S3 + local_path = parent_dir + + if is_s3_url(local_path): + # A valid CloudFormation template will specify artifacts as S3 URLs. + # This check is supporting the case where your resource does not + # refer to local artifacts + # Nothing to do if property value is an S3 URL + LOG.debug("Property {0} of {1} is already a S3 URL" + .format(property_name, resource_id)) + return local_path + + local_path = make_abs_path(parent_dir, local_path) + + # Or, pointing to a folder. Zip the folder and upload + if is_local_folder(local_path): + return zip_and_upload(local_path, uploader) + + # Path could be pointing to a file. Upload the file + elif is_local_file(local_path): + return uploader.upload_with_dedup(local_path) + + raise exceptions.InvalidLocalPathError( + resource_id=resource_id, + property_name=property_name, + local_path=local_path) + + +def zip_and_upload(local_path, uploader): + with zip_folder(local_path) as zipfile: + return uploader.upload_with_dedup(zipfile) + + +@contextmanager +def zip_folder(folder_path): + """ + Zip the entire folder and return a file to the zip. Use this inside + a "with" statement to cleanup the zipfile after it is used. + + :param folder_path: + :return: Name of the zipfile + """ + + filename = os.path.join( + tempfile.gettempdir(), "data-" + uuid.uuid4().hex) + + zipfile_name = make_zip(filename, folder_path) + try: + yield zipfile_name + finally: + if os.path.exists(zipfile_name): + os.remove(zipfile_name) + + +def make_zip(filename, source_root): + zipfile_name = "{0}.zip".format(filename) + source_root = os.path.abspath(source_root) + with open(zipfile_name, 'wb') as f: + zip_file = zipfile.ZipFile(f, 'w', zipfile.ZIP_DEFLATED) + with contextlib.closing(zip_file) as zf: + for root, dirs, files in os.walk(source_root, followlinks=True): + for filename in files: + full_path = os.path.join(root, filename) + relative_path = os.path.relpath( + full_path, source_root) + zf.write(full_path, relative_path) + + return zipfile_name + + +@contextmanager +def mktempfile(): + directory = tempfile.gettempdir() + filename = os.path.join(directory, uuid.uuid4().hex) + + try: + with open(filename, "w+") as handle: + yield handle + finally: + if os.path.exists(filename): + os.remove(filename) + + +def copy_to_temp_dir(filepath): + tmp_dir = tempfile.mkdtemp() + dst = os.path.join(tmp_dir, os.path.basename(filepath)) + shutil.copy(filepath, dst) + return tmp_dir + + +class Resource(object): + """ + Base class representing a CloudFormation resource that can be exported + """ + + RESOURCE_TYPE = None + PROPERTY_NAME = None + PACKAGE_NULL_PROPERTY = True + # Set this property to True in base class if you want the exporter to zip + # up the file before uploading This is useful for Lambda functions. + FORCE_ZIP = False + + def __init__(self, uploader): + self.uploader = uploader + + def export(self, resource_id, resource_dict, parent_dir): + if resource_dict is None: + return + + property_value = jmespath.search(self.PROPERTY_NAME, resource_dict) + + if not property_value and not self.PACKAGE_NULL_PROPERTY: + return + + if isinstance(property_value, dict): + LOG.debug("Property {0} of {1} resource is not a URL" + .format(self.PROPERTY_NAME, resource_id)) + return + + # If property is a file but not a zip file, place file in temp + # folder and send the temp folder to be zipped + temp_dir = None + if is_local_file(property_value) and not \ + is_zip_file(property_value) and self.FORCE_ZIP: + temp_dir = copy_to_temp_dir(property_value) + set_value_from_jmespath(resource_dict, self.PROPERTY_NAME, temp_dir) + + try: + self.do_export(resource_id, resource_dict, parent_dir) + + except Exception as ex: + LOG.debug("Unable to export", exc_info=ex) + raise exceptions.ExportFailedError( + resource_id=resource_id, + property_name=self.PROPERTY_NAME, + property_value=property_value, + ex=ex) + finally: + if temp_dir: + shutil.rmtree(temp_dir) + + def do_export(self, resource_id, resource_dict, parent_dir): + """ + Default export action is to upload artifacts and set the property to + S3 URL of the uploaded object + """ + uploaded_url = upload_local_artifacts(resource_id, resource_dict, + self.PROPERTY_NAME, + parent_dir, self.uploader) + set_value_from_jmespath(resource_dict, self.PROPERTY_NAME, uploaded_url) + + +class ResourceWithS3UrlDict(Resource): + """ + Represents CloudFormation resources that need the S3 URL to be specified as + an dict like {Bucket: "", Key: "", Version: ""} + """ + + BUCKET_NAME_PROPERTY = None + OBJECT_KEY_PROPERTY = None + VERSION_PROPERTY = None + + def __init__(self, uploader): + super(ResourceWithS3UrlDict, self).__init__(uploader) + + def do_export(self, resource_id, resource_dict, parent_dir): + """ + Upload to S3 and set property to an dict representing the S3 url + of the uploaded object + """ + + artifact_s3_url = \ + upload_local_artifacts(resource_id, resource_dict, + self.PROPERTY_NAME, + parent_dir, self.uploader) + + parsed_url = parse_s3_url( + artifact_s3_url, + bucket_name_property=self.BUCKET_NAME_PROPERTY, + object_key_property=self.OBJECT_KEY_PROPERTY, + version_property=self.VERSION_PROPERTY) + set_value_from_jmespath(resource_dict, self.PROPERTY_NAME, parsed_url) + + +class ServerlessFunctionResource(Resource): + RESOURCE_TYPE = "AWS::Serverless::Function" + PROPERTY_NAME = "CodeUri" + FORCE_ZIP = True + + +class ServerlessApiResource(Resource): + RESOURCE_TYPE = "AWS::Serverless::Api" + PROPERTY_NAME = "DefinitionUri" + # Don't package the directory if DefinitionUri is omitted. + # Necessary to support DefinitionBody + PACKAGE_NULL_PROPERTY = False + + +class GraphQLSchemaResource(Resource): + RESOURCE_TYPE = "AWS::AppSync::GraphQLSchema" + PROPERTY_NAME = "DefinitionS3Location" + # Don't package the directory if DefinitionS3Location is omitted. + # Necessary to support Definition + PACKAGE_NULL_PROPERTY = False + + +class AppSyncResolverRequestTemplateResource(Resource): + RESOURCE_TYPE = "AWS::AppSync::Resolver" + PROPERTY_NAME = "RequestMappingTemplateS3Location" + # Don't package the directory if RequestMappingTemplateS3Location is omitted. + # Necessary to support RequestMappingTemplate + PACKAGE_NULL_PROPERTY = False + + +class AppSyncResolverResponseTemplateResource(Resource): + RESOURCE_TYPE = "AWS::AppSync::Resolver" + PROPERTY_NAME = "ResponseMappingTemplateS3Location" + # Don't package the directory if ResponseMappingTemplateS3Location is omitted. + # Necessary to support ResponseMappingTemplate + PACKAGE_NULL_PROPERTY = False + + +class AppSyncFunctionConfigurationRequestTemplateResource(Resource): + RESOURCE_TYPE = "AWS::AppSync::FunctionConfiguration" + PROPERTY_NAME = "RequestMappingTemplateS3Location" + # Don't package the directory if RequestMappingTemplateS3Location is omitted. + # Necessary to support RequestMappingTemplate + PACKAGE_NULL_PROPERTY = False + + +class AppSyncFunctionConfigurationResponseTemplateResource(Resource): + RESOURCE_TYPE = "AWS::AppSync::FunctionConfiguration" + PROPERTY_NAME = "ResponseMappingTemplateS3Location" + # Don't package the directory if ResponseMappingTemplateS3Location is omitted. + # Necessary to support ResponseMappingTemplate + PACKAGE_NULL_PROPERTY = False + + +class LambdaFunctionResource(ResourceWithS3UrlDict): + RESOURCE_TYPE = "AWS::Lambda::Function" + PROPERTY_NAME = "Code" + BUCKET_NAME_PROPERTY = "S3Bucket" + OBJECT_KEY_PROPERTY = "S3Key" + VERSION_PROPERTY = "S3ObjectVersion" + FORCE_ZIP = True + + +class ApiGatewayRestApiResource(ResourceWithS3UrlDict): + RESOURCE_TYPE = "AWS::ApiGateway::RestApi" + PROPERTY_NAME = "BodyS3Location" + PACKAGE_NULL_PROPERTY = False + BUCKET_NAME_PROPERTY = "Bucket" + OBJECT_KEY_PROPERTY = "Key" + VERSION_PROPERTY = "Version" + + +class ElasticBeanstalkApplicationVersion(ResourceWithS3UrlDict): + RESOURCE_TYPE = "AWS::ElasticBeanstalk::ApplicationVersion" + PROPERTY_NAME = "SourceBundle" + BUCKET_NAME_PROPERTY = "S3Bucket" + OBJECT_KEY_PROPERTY = "S3Key" + VERSION_PROPERTY = None + + +class LambdaLayerVersionResource(ResourceWithS3UrlDict): + RESOURCE_TYPE = "AWS::Lambda::LayerVersion" + PROPERTY_NAME = "Content" + BUCKET_NAME_PROPERTY = "S3Bucket" + OBJECT_KEY_PROPERTY = "S3Key" + VERSION_PROPERTY = "S3ObjectVersion" + FORCE_ZIP = True + + +class ServerlessLayerVersionResource(Resource): + RESOURCE_TYPE = "AWS::Serverless::LayerVersion" + PROPERTY_NAME = "ContentUri" + FORCE_ZIP = True + + +class ServerlessRepoApplicationReadme(Resource): + RESOURCE_TYPE = "AWS::ServerlessRepo::Application" + PROPERTY_NAME = "ReadmeUrl" + PACKAGE_NULL_PROPERTY = False + + +class ServerlessRepoApplicationLicense(Resource): + RESOURCE_TYPE = "AWS::ServerlessRepo::Application" + PROPERTY_NAME = "LicenseUrl" + PACKAGE_NULL_PROPERTY = False + + +class StepFunctionsStateMachineDefinitionResource(ResourceWithS3UrlDict): + RESOURCE_TYPE = "AWS::StepFunctions::StateMachine" + PROPERTY_NAME = "DefinitionS3Location" + BUCKET_NAME_PROPERTY = "Bucket" + OBJECT_KEY_PROPERTY = "Key" + VERSION_PROPERTY = "Version" + PACKAGE_NULL_PROPERTY = False + + +class ServerlessStateMachineDefinitionResource(ResourceWithS3UrlDict): + RESOURCE_TYPE = "AWS::Serverless::StateMachine" + PROPERTY_NAME = "DefinitionUri" + BUCKET_NAME_PROPERTY = "Bucket" + OBJECT_KEY_PROPERTY = "Key" + VERSION_PROPERTY = "Version" + PACKAGE_NULL_PROPERTY = False + + +class CloudFormationStackResource(Resource): + """ + Represents CloudFormation::Stack resource that can refer to a nested + stack template via TemplateURL property. + """ + RESOURCE_TYPE = "AWS::CloudFormation::Stack" + PROPERTY_NAME = "TemplateURL" + + def __init__(self, uploader): + super(CloudFormationStackResource, self).__init__(uploader) + + def do_export(self, resource_id, resource_dict, parent_dir): + """ + If the nested stack template is valid, this method will + export on the nested template, upload the exported template to S3 + and set property to URL of the uploaded S3 template + """ + + template_path = resource_dict.get(self.PROPERTY_NAME, None) + + if template_path is None or is_s3_url(template_path) or \ + template_path.startswith("http://") or \ + template_path.startswith("https://"): + # Nothing to do + return + + abs_template_path = make_abs_path(parent_dir, template_path) + if not is_local_file(abs_template_path): + raise exceptions.InvalidTemplateUrlParameterError( + property_name=self.PROPERTY_NAME, + resource_id=resource_id, + template_path=abs_template_path) + + exported_template_dict = \ + Template(template_path, parent_dir, self.uploader).export() + + exported_template_str = yaml_dump(exported_template_dict) + + with mktempfile() as temporary_file: + temporary_file.write(exported_template_str) + temporary_file.flush() + + url = self.uploader.upload_with_dedup( + temporary_file.name, "template") + + # TemplateUrl property requires S3 URL to be in path-style format + parts = parse_s3_url(url, version_property="Version") + s3_path_url = self.uploader.to_path_style_s3_url( + parts["Key"], parts.get("Version", None)) + set_value_from_jmespath(resource_dict, self.PROPERTY_NAME, s3_path_url) + + +class ServerlessApplicationResource(CloudFormationStackResource): + """ + Represents Serverless::Application resource that can refer to a nested + app template via Location property. + """ + RESOURCE_TYPE = "AWS::Serverless::Application" + PROPERTY_NAME = "Location" + + + +class GlueJobCommandScriptLocationResource(Resource): + """ + Represents Glue::Job resource. + """ + RESOURCE_TYPE = "AWS::Glue::Job" + # Note the PROPERTY_NAME includes a '.' implying it's nested. + PROPERTY_NAME = "Command.ScriptLocation" + + +class CodeCommitRepositoryS3Resource(ResourceWithS3UrlDict): + """ + Represents CodeCommit::Repository resource. + """ + RESOURCE_TYPE = "AWS::CodeCommit::Repository" + PROPERTY_NAME = "Code.S3" + BUCKET_NAME_PROPERTY = "Bucket" + OBJECT_KEY_PROPERTY = "Key" + VERSION_PROPERTY = "ObjectVersion" + # Don't package the directory if S3 is omitted. + PACKAGE_NULL_PROPERTY = False + FORCE_ZIP = True + + +RESOURCES_EXPORT_LIST = [ + ServerlessFunctionResource, + ServerlessApiResource, + GraphQLSchemaResource, + AppSyncResolverRequestTemplateResource, + AppSyncResolverResponseTemplateResource, + AppSyncFunctionConfigurationRequestTemplateResource, + AppSyncFunctionConfigurationResponseTemplateResource, + ApiGatewayRestApiResource, + LambdaFunctionResource, + ElasticBeanstalkApplicationVersion, + CloudFormationStackResource, + ServerlessApplicationResource, + ServerlessLayerVersionResource, + LambdaLayerVersionResource, + GlueJobCommandScriptLocationResource, + StepFunctionsStateMachineDefinitionResource, + ServerlessStateMachineDefinitionResource, + CodeCommitRepositoryS3Resource +] + +METADATA_EXPORT_LIST = [ + ServerlessRepoApplicationReadme, + ServerlessRepoApplicationLicense +] + + +def include_transform_export_handler(template_dict, uploader, parent_dir): + if template_dict.get("Name", None) != "AWS::Include": + return template_dict + + include_location = template_dict.get("Parameters", {}).get("Location", None) + if not include_location \ + or not is_path_value_valid(include_location) \ + or is_s3_url(include_location): + # `include_location` is either empty, or not a string, or an S3 URI + return template_dict + + # We are confident at this point that `include_location` is a string containing the local path + abs_include_location = os.path.join(parent_dir, include_location) + if is_local_file(abs_include_location): + template_dict["Parameters"]["Location"] = uploader.upload_with_dedup(abs_include_location) + else: + raise exceptions.InvalidLocalPathError( + resource_id="AWS::Include", + property_name="Location", + local_path=abs_include_location) + + return template_dict + + +GLOBAL_EXPORT_DICT = { + "Fn::Transform": include_transform_export_handler +} + + +class Template(object): + """ + Class to export a CloudFormation template + """ + + def __init__(self, template_path, parent_dir, uploader, + resources_to_export=RESOURCES_EXPORT_LIST, + metadata_to_export=METADATA_EXPORT_LIST): + """ + Reads the template and makes it ready for export + """ + + if not (is_local_folder(parent_dir) and os.path.isabs(parent_dir)): + raise ValueError("parent_dir parameter must be " + "an absolute path to a folder {0}" + .format(parent_dir)) + + abs_template_path = make_abs_path(parent_dir, template_path) + template_dir = os.path.dirname(abs_template_path) + + with open(abs_template_path, "r") as handle: + template_str = handle.read() + + self.template_dict = yaml_parse(template_str) + self.template_dir = template_dir + self.resources_to_export = resources_to_export + self.metadata_to_export = metadata_to_export + self.uploader = uploader + + def export_global_artifacts(self, template_dict): + """ + Template params such as AWS::Include transforms are not specific to + any resource type but contain artifacts that should be exported, + here we iterate through the template dict and export params with a + handler defined in GLOBAL_EXPORT_DICT + """ + for key, val in template_dict.items(): + if key in GLOBAL_EXPORT_DICT: + template_dict[key] = GLOBAL_EXPORT_DICT[key](val, self.uploader, self.template_dir) + elif isinstance(val, dict): + self.export_global_artifacts(val) + elif isinstance(val, list): + for item in val: + if isinstance(item, dict): + self.export_global_artifacts(item) + return template_dict + + def export_metadata(self, template_dict): + """ + Exports the local artifacts referenced by the metadata section in + the given template to an s3 bucket. + + :return: The template with references to artifacts that have been + exported to s3. + """ + if "Metadata" not in template_dict: + return template_dict + + for metadata_type, metadata_dict in template_dict["Metadata"].items(): + for exporter_class in self.metadata_to_export: + if exporter_class.RESOURCE_TYPE != metadata_type: + continue + + exporter = exporter_class(self.uploader) + exporter.export(metadata_type, metadata_dict, self.template_dir) + + return template_dict + + def export(self): + """ + Exports the local artifacts referenced by the given template to an + s3 bucket. + + :return: The template with references to artifacts that have been + exported to s3. + """ + self.template_dict = self.export_metadata(self.template_dict) + + if "Resources" not in self.template_dict: + return self.template_dict + + self.template_dict = self.export_global_artifacts(self.template_dict) + + self.export_resources(self.template_dict["Resources"]) + + return self.template_dict + + def export_resources(self, resource_dict): + for resource_id, resource in resource_dict.items(): + + if resource_id.startswith("Fn::ForEach::"): + if not isinstance(resource, list) or len(resource) != 3: + raise exceptions.InvalidForEachIntrinsicFunctionError(resource_id=resource_id) + self.export_resources(resource[2]) + continue + + resource_type = resource.get("Type", None) + resource_dict = resource.get("Properties", None) + + for exporter_class in self.resources_to_export: + if exporter_class.RESOURCE_TYPE != resource_type: + continue + + # Export code resources + exporter = exporter_class(self.uploader) + exporter.export(resource_id, resource_dict, self.template_dir) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/deploy.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/deploy.py new file mode 100644 index 000000000..08a0a5647 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/deploy.py @@ -0,0 +1,433 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import os +import sys +import logging + +from botocore.client import Config + +from awscli.customizations.cloudformation import exceptions +from awscli.customizations.cloudformation.deployer import Deployer +from awscli.customizations.s3uploader import S3Uploader +from awscli.customizations.cloudformation.yamlhelper import yaml_parse + +from awscli.customizations.commands import BasicCommand +from awscli.compat import get_stdout_text_writer +from awscli.customizations.utils import uni_print +from awscli.utils import create_nested_client, write_exception, resolve_v2_debug_mode + +LOG = logging.getLogger(__name__) + + +class DeployCommand(BasicCommand): + + MSG_NO_EXECUTE_CHANGESET = \ + ("Changeset created successfully. Run the following command to " + "review changes:" + "\n" + "aws cloudformation describe-change-set --change-set-name " + "{changeset_id}" + "\n") + + MSG_EXECUTE_SUCCESS = "Successfully created/updated stack - {stack_name}\n" + + PARAMETER_OVERRIDE_CMD = "parameter-overrides" + TAGS_CMD = "tags" + + NAME = 'deploy' + DESCRIPTION = BasicCommand.FROM_FILE("cloudformation", + "_deploy_description.rst") + + ARG_TABLE = [ + { + 'name': 'template-file', + 'required': True, + 'help_text': ( + 'The path where your AWS CloudFormation' + ' template is located.' + ) + }, + { + 'name': 'stack-name', + 'action': 'store', + 'required': True, + 'help_text': ( + 'The name of the AWS CloudFormation stack you\'re deploying to.' + ' If you specify an existing stack, the command updates the' + ' stack. If you specify a new stack, the command creates it.' + ) + }, + { + 'name': 's3-bucket', + 'required': False, + 'help_text': ( + 'The name of the S3 bucket where this command uploads your ' + 'CloudFormation template. This is required the deployments of ' + 'templates sized greater than 51,200 bytes' + ) + }, + { + "name": "force-upload", + "action": "store_true", + "help_text": ( + 'Indicates whether to override existing files in the S3 bucket.' + ' Specify this flag to upload artifacts even if they ' + ' match existing artifacts in the S3 bucket.' + ) + }, + { + 'name': 's3-prefix', + 'help_text': ( + 'A prefix name that the command adds to the' + ' artifacts\' name when it uploads them to the S3 bucket.' + ' The prefix name is a path name (folder name) for' + ' the S3 bucket.' + ) + }, + + { + 'name': 'kms-key-id', + 'help_text': ( + 'The ID of an AWS KMS key that the command uses' + ' to encrypt artifacts that are at rest in the S3 bucket.' + ) + }, + { + 'name': PARAMETER_OVERRIDE_CMD, + 'action': 'store', + 'required': False, + 'schema': { + 'type': 'array', + 'items': { + 'type': 'string' + } + }, + 'default': [], + 'help_text': ( + 'A list of parameter structures that specify input parameters' + ' for your stack template. If you\'re updating a stack and you' + ' don\'t specify a parameter, the command uses the stack\'s' + ' existing value. For new stacks, you must specify' + ' parameters that don\'t have a default value.' + ' Syntax: ParameterKey1=ParameterValue1' + ' ParameterKey2=ParameterValue2 ...' + ) + }, + { + 'name': 'capabilities', + 'action': 'store', + 'required': False, + 'schema': { + 'type': 'array', + 'items': { + 'type': 'string', + 'enum': [ + 'CAPABILITY_IAM', + 'CAPABILITY_NAMED_IAM' + ] + } + }, + 'default': [], + 'help_text': ( + 'A list of capabilities that you must specify before AWS' + ' Cloudformation can create certain stacks. Some stack' + ' templates might include resources that can affect' + ' permissions in your AWS account, for example, by creating' + ' new AWS Identity and Access Management (IAM) users. For' + ' those stacks, you must explicitly acknowledge their' + ' capabilities by specifying this parameter. ' + ' The only valid values are CAPABILITY_IAM and' + ' CAPABILITY_NAMED_IAM. If you have IAM resources, you can' + ' specify either capability. If you have IAM resources with' + ' custom names, you must specify CAPABILITY_NAMED_IAM. If you' + ' don\'t specify this parameter, this action returns an' + ' InsufficientCapabilities error.' + ) + + }, + { + 'name': 'no-execute-changeset', + 'action': 'store_false', + 'dest': 'execute_changeset', + 'required': False, + 'help_text': ( + 'Indicates whether to execute the change set. Specify this' + ' flag if you want to view your stack changes before' + ' executing the change set. The command creates an' + ' AWS CloudFormation change set and then exits without' + ' executing the change set. After you view the change set,' + ' execute it to implement your changes.' + ) + }, + { + 'name': 'disable-rollback', + 'required': False, + 'action': 'store_true', + 'group_name': 'disable-rollback', + 'dest': 'disable_rollback', + 'default': False, + 'help_text': ( + 'Preserve the state of previously provisioned resources when ' + 'the execute-change-set operation fails.' + ) + }, + { + 'name': 'no-disable-rollback', + 'required': False, + 'action': 'store_false', + 'group_name': 'disable-rollback', + 'dest': 'disable_rollback', + 'default': True, + 'help_text': ( + 'Roll back all resource changes when the execute-change-set ' + 'operation fails.' + ) + }, + { + 'name': 'role-arn', + 'required': False, + 'help_text': ( + 'The Amazon Resource Name (ARN) of an AWS Identity and Access ' + 'Management (IAM) role that AWS CloudFormation assumes when ' + 'executing the change set.' + ) + }, + { + 'name': 'notification-arns', + 'required': False, + 'schema': { + 'type': 'array', + 'items': { + 'type': 'string' + } + }, + 'help_text': ( + 'Amazon Simple Notification Service topic Amazon Resource Names' + ' (ARNs) that AWS CloudFormation associates with the stack.' + ) + }, + { + 'name': 'fail-on-empty-changeset', + 'required': False, + 'action': 'store_true', + 'group_name': 'fail-on-empty-changeset', + 'dest': 'fail_on_empty_changeset', + 'default': True, + 'help_text': ( + 'Specify if the CLI should return a non-zero exit code ' + 'when there are no changes to be made to the stack. By ' + 'default, a non-zero exit code is returned, and this is ' + 'the same behavior that occurs when ' + '`--fail-on-empty-changeset` is specified. If ' + '`--no-fail-on-empty-changeset` is specified, then the ' + 'CLI will return a zero exit code.' + ) + }, + { + 'name': 'no-fail-on-empty-changeset', + 'required': False, + 'action': 'store_false', + 'group_name': 'fail-on-empty-changeset', + 'dest': 'fail_on_empty_changeset', + 'default': True, + 'help_text': ( + 'Causes the CLI to return an exit code of 0 if there are no ' + 'changes to be made to the stack.' + ) + }, + { + 'name': TAGS_CMD, + 'action': 'store', + 'required': False, + 'schema': { + 'type': 'array', + 'items': { + 'type': 'string' + } + }, + 'default': [], + 'help_text': ( + 'A list of tags to associate with the stack that is created' + ' or updated. AWS CloudFormation also propagates these tags' + ' to resources in the stack if the resource supports it.' + ' Syntax: TagKey1=TagValue1 TagKey2=TagValue2 ...' + ) + } + ] + + def _run_main(self, parsed_args, parsed_globals): + cloudformation_client = \ + create_nested_client( + self._session, 'cloudformation', region_name=parsed_globals.region, + endpoint_url=parsed_globals.endpoint_url, + verify=parsed_globals.verify_ssl) + + template_path = parsed_args.template_file + if not os.path.isfile(template_path): + raise exceptions.InvalidTemplatePathError( + template_path=template_path) + + # Parse parameters + with open(template_path, "r") as handle: + template_str = handle.read() + + stack_name = parsed_args.stack_name + parameter_overrides = self.parse_key_value_arg( + parsed_args.parameter_overrides, + self.PARAMETER_OVERRIDE_CMD) + + tags_dict = self.parse_key_value_arg(parsed_args.tags, self.TAGS_CMD) + tags = [{"Key": key, "Value": value} + for key, value in tags_dict.items()] + + template_dict = yaml_parse(template_str) + + parameters = self.merge_parameters(template_dict, parameter_overrides) + + template_size = os.path.getsize(parsed_args.template_file) + if template_size > 51200 and not parsed_args.s3_bucket: + raise exceptions.DeployBucketRequiredError() + + bucket = parsed_args.s3_bucket + if bucket: + s3_client = create_nested_client( + self._session, + "s3", + config=Config(signature_version='s3v4'), + region_name=parsed_globals.region, + verify=parsed_globals.verify_ssl) + + s3_uploader = S3Uploader(s3_client, + bucket, + parsed_args.s3_prefix, + parsed_args.kms_key_id, + parsed_args.force_upload) + else: + s3_uploader = None + + deployer = Deployer(cloudformation_client) + v2_debug = resolve_v2_debug_mode(parsed_globals) + return self.deploy(deployer, stack_name, template_str, + parameters, parsed_args.capabilities, + parsed_args.execute_changeset, parsed_args.role_arn, + parsed_args.notification_arns, s3_uploader, + tags, parsed_args.fail_on_empty_changeset, + parsed_args.disable_rollback, v2_debug) + + def deploy(self, deployer, stack_name, template_str, + parameters, capabilities, execute_changeset, role_arn, + notification_arns, s3_uploader, tags, + fail_on_empty_changeset=True, disable_rollback=False, + v2_debug=False): + try: + if v2_debug and fail_on_empty_changeset: + uni_print( + '\nAWS CLI v2 UPGRADE WARNING: In AWS CLI v2, deploying ' + 'an AWS CloudFormation Template that results in an empty ' + 'changeset will NOT result in an error by default. This ' + 'is different from v1 behavior, where empty changesets ' + 'result in an error by default. To migrate to v2 behavior ' + 'and resolve this warning, you can add the ' + '`--no-fail-on-empty-changeset` flag to the command. ' + 'See https://docs.aws.amazon.com/cli/latest/userguide/' + 'cliv2-migration-changes.html#cliv2-migration-cfn.\n', + out_file=sys.stderr + ) + result = deployer.create_and_wait_for_changeset( + stack_name=stack_name, + cfn_template=template_str, + parameter_values=parameters, + capabilities=capabilities, + role_arn=role_arn, + notification_arns=notification_arns, + s3_uploader=s3_uploader, + tags=tags + ) + except exceptions.ChangeEmptyError as ex: + if fail_on_empty_changeset: + raise + write_exception(ex, outfile=get_stdout_text_writer()) + return 0 + + if execute_changeset: + deployer.execute_changeset(result.changeset_id, stack_name, + disable_rollback) + deployer.wait_for_execute(stack_name, result.changeset_type) + sys.stdout.write(self.MSG_EXECUTE_SUCCESS.format( + stack_name=stack_name)) + else: + sys.stdout.write(self.MSG_NO_EXECUTE_CHANGESET.format( + changeset_id=result.changeset_id)) + + sys.stdout.flush() + return 0 + + def merge_parameters(self, template_dict, parameter_overrides): + """ + CloudFormation CreateChangeset requires a value for every parameter + from the template, either specifying a new value or use previous value. + For convenience, this method will accept new parameter values and + generates a dict of all parameters in a format that ChangeSet API + will accept + + :param parameter_overrides: + :return: + """ + parameter_values = [] + + if not isinstance(template_dict.get("Parameters", None), dict): + return parameter_values + + for key, value in template_dict["Parameters"].items(): + + obj = { + "ParameterKey": key + } + + if key in parameter_overrides: + obj["ParameterValue"] = parameter_overrides[key] + else: + obj["UsePreviousValue"] = True + + parameter_values.append(obj) + + return parameter_values + + def parse_key_value_arg(self, arg_value, argname): + """ + Converts arguments that are passed as list of "Key=Value" strings + into a real dictionary. + + :param arg_value list: Array of strings, where each string is of + form Key=Value + :param argname string: Name of the argument that contains the value + :return dict: Dictionary representing the key/value pairs + """ + result = {} + for data in arg_value: + + # Split at first '=' from left + key_value_pair = data.split("=", 1) + + if len(key_value_pair) != 2: + raise exceptions.InvalidKeyValuePairArgumentError( + argname=argname, + value=key_value_pair) + + result[key_value_pair[0]] = key_value_pair[1] + + return result + + + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/deployer.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/deployer.py new file mode 100644 index 000000000..548445b29 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/deployer.py @@ -0,0 +1,232 @@ +# Copyright 2012-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import sys +import time +import logging +import botocore +import collections + +from awscli.compat import get_current_datetime +from awscli.customizations.cloudformation import exceptions +from awscli.customizations.cloudformation.artifact_exporter import mktempfile, parse_s3_url + + +LOG = logging.getLogger(__name__) + +ChangeSetResult = collections.namedtuple( + "ChangeSetResult", ["changeset_id", "changeset_type"]) + + +class Deployer(object): + + def __init__(self, cloudformation_client, + changeset_prefix="awscli-cloudformation-package-deploy-"): + self._client = cloudformation_client + self.changeset_prefix = changeset_prefix + + def has_stack(self, stack_name): + """ + Checks if a CloudFormation stack with given name exists + + :param stack_name: Name or ID of the stack + :return: True if stack exists. False otherwise + """ + try: + resp = self._client.describe_stacks(StackName=stack_name) + if len(resp["Stacks"]) != 1: + return False + + # When you run CreateChangeSet on a a stack that does not exist, + # CloudFormation will create a stack and set it's status + # REVIEW_IN_PROGRESS. However this stack is cannot be manipulated + # by "update" commands. Under this circumstances, we treat like + # this stack does not exist and call CreateChangeSet will + # ChangeSetType set to CREATE and not UPDATE. + stack = resp["Stacks"][0] + return stack["StackStatus"] != "REVIEW_IN_PROGRESS" + + except botocore.exceptions.ClientError as e: + # If a stack does not exist, describe_stacks will throw an + # exception. Unfortunately we don't have a better way than parsing + # the exception msg to understand the nature of this exception. + msg = str(e) + + if "Stack with id {0} does not exist".format(stack_name) in msg: + LOG.debug("Stack with id {0} does not exist".format( + stack_name)) + return False + else: + # We don't know anything about this exception. Don't handle + LOG.debug("Unable to get stack details.", exc_info=e) + raise e + + def create_changeset(self, stack_name, cfn_template, + parameter_values, capabilities, role_arn, + notification_arns, s3_uploader, tags): + """ + Call Cloudformation to create a changeset and wait for it to complete + + :param stack_name: Name or ID of stack + :param cfn_template: CloudFormation template string + :param parameter_values: Template parameters object + :param capabilities: Array of capabilities passed to CloudFormation + :param tags: Array of tags passed to CloudFormation + :return: + """ + + now = get_current_datetime().isoformat() + description = "Created by AWS CLI at {0} UTC".format(now) + + # Each changeset will get a unique name based on time + changeset_name = self.changeset_prefix + str(int(time.time())) + + if not self.has_stack(stack_name): + changeset_type = "CREATE" + # When creating a new stack, UsePreviousValue=True is invalid. + # For such parameters, users should either override with new value, + # or set a Default value in template to successfully create a stack. + parameter_values = [x for x in parameter_values + if not x.get("UsePreviousValue", False)] + else: + changeset_type = "UPDATE" + # UsePreviousValue not valid if parameter is new + summary = self._client.get_template_summary(StackName=stack_name) + existing_parameters = [parameter['ParameterKey'] for parameter in \ + summary['Parameters']] + parameter_values = [x for x in parameter_values + if not (x.get("UsePreviousValue", False) and \ + x["ParameterKey"] not in existing_parameters)] + + kwargs = { + 'ChangeSetName': changeset_name, + 'StackName': stack_name, + 'TemplateBody': cfn_template, + 'ChangeSetType': changeset_type, + 'Parameters': parameter_values, + 'Capabilities': capabilities, + 'Description': description, + 'Tags': tags, + } + + # If an S3 uploader is available, use TemplateURL to deploy rather than + # TemplateBody. This is required for large templates. + if s3_uploader: + with mktempfile() as temporary_file: + temporary_file.write(kwargs.pop('TemplateBody')) + temporary_file.flush() + url = s3_uploader.upload_with_dedup( + temporary_file.name, "template") + # TemplateUrl property requires S3 URL to be in path-style format + parts = parse_s3_url(url, version_property="Version") + kwargs['TemplateURL'] = s3_uploader.to_path_style_s3_url(parts["Key"], parts.get("Version", None)) + + # don't set these arguments if not specified to use existing values + if role_arn is not None: + kwargs['RoleARN'] = role_arn + if notification_arns is not None: + kwargs['NotificationARNs'] = notification_arns + try: + resp = self._client.create_change_set(**kwargs) + return ChangeSetResult(resp["Id"], changeset_type) + except Exception as ex: + LOG.debug("Unable to create changeset", exc_info=ex) + raise ex + + def wait_for_changeset(self, changeset_id, stack_name): + """ + Waits until the changeset creation completes + + :param changeset_id: ID or name of the changeset + :param stack_name: Stack name + :return: Latest status of the create-change-set operation + """ + sys.stdout.write("\nWaiting for changeset to be created..\n") + sys.stdout.flush() + + # Wait for changeset to be created + waiter = self._client.get_waiter("change_set_create_complete") + # Poll every 5 seconds. Changeset creation should be fast + waiter_config = {'Delay': 5} + try: + waiter.wait(ChangeSetName=changeset_id, StackName=stack_name, + WaiterConfig=waiter_config) + except botocore.exceptions.WaiterError as ex: + LOG.debug("Create changeset waiter exception", exc_info=ex) + + resp = ex.last_response + status = resp["Status"] + reason = resp["StatusReason"] + + if status == "FAILED" and \ + "The submitted information didn't contain changes." in reason or \ + "No updates are to be performed" in reason: + raise exceptions.ChangeEmptyError(stack_name=stack_name) + + raise RuntimeError("Failed to create the changeset: {0} " + "Status: {1}. Reason: {2}" + .format(ex, status, reason)) + + def execute_changeset(self, changeset_id, stack_name, + disable_rollback=False): + """ + Calls CloudFormation to execute changeset + + :param changeset_id: ID of the changeset + :param stack_name: Name or ID of the stack + :param disable_rollback: Disable rollback of all resource changes + :return: Response from execute-change-set call + """ + return self._client.execute_change_set( + ChangeSetName=changeset_id, + StackName=stack_name, + DisableRollback=disable_rollback) + + def wait_for_execute(self, stack_name, changeset_type): + + sys.stdout.write("Waiting for stack create/update to complete\n") + sys.stdout.flush() + + # Pick the right waiter + if changeset_type == "CREATE": + waiter = self._client.get_waiter("stack_create_complete") + elif changeset_type == "UPDATE": + waiter = self._client.get_waiter("stack_update_complete") + else: + raise RuntimeError("Invalid changeset type {0}" + .format(changeset_type)) + + # Poll every 30 seconds. Polling too frequently risks hitting rate limits + # on CloudFormation's DescribeStacks API + waiter_config = { + 'Delay': 30, + 'MaxAttempts': 120, + } + + try: + waiter.wait(StackName=stack_name, WaiterConfig=waiter_config) + except botocore.exceptions.WaiterError as ex: + LOG.debug("Execute changeset waiter exception", exc_info=ex) + + raise exceptions.DeployFailedError(stack_name=stack_name) + + def create_and_wait_for_changeset(self, stack_name, cfn_template, + parameter_values, capabilities, role_arn, + notification_arns, s3_uploader, tags): + + result = self.create_changeset( + stack_name, cfn_template, parameter_values, capabilities, + role_arn, notification_arns, s3_uploader, tags) + self.wait_for_changeset(result.changeset_id, stack_name) + + return result diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/exceptions.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/exceptions.py new file mode 100644 index 000000000..b2625cdd2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/exceptions.py @@ -0,0 +1,59 @@ + +class CloudFormationCommandError(Exception): + fmt = 'An unspecified error occurred' + + def __init__(self, **kwargs): + msg = self.fmt.format(**kwargs) + Exception.__init__(self, msg) + self.kwargs = kwargs + + +class InvalidTemplatePathError(CloudFormationCommandError): + fmt = "Invalid template path {template_path}" + + +class ChangeEmptyError(CloudFormationCommandError): + fmt = "No changes to deploy. Stack {stack_name} is up to date" + + +class InvalidLocalPathError(CloudFormationCommandError): + fmt = ("Parameter {property_name} of resource {resource_id} refers " + "to a file or folder that does not exist {local_path}") + + +class InvalidTemplateUrlParameterError(CloudFormationCommandError): + fmt = ("{property_name} parameter of {resource_id} resource is invalid. " + "It must be a S3 URL or path to CloudFormation " + "template file. Actual: {template_path}") + + +class ExportFailedError(CloudFormationCommandError): + fmt = ("Unable to upload artifact {property_value} referenced " + "by {property_name} parameter of {resource_id} resource." + "\n" + "{ex}") + + +class InvalidKeyValuePairArgumentError(CloudFormationCommandError): + fmt = ("{value} value passed to --{argname} must be of format " + "Key=Value") + + +class DeployFailedError(CloudFormationCommandError): + fmt = \ + ("Failed to create/update the stack. Run the following command" + "\n" + "to fetch the list of events leading up to the failure" + "\n" + "aws cloudformation describe-stack-events --stack-name {stack_name}") + +class DeployBucketRequiredError(CloudFormationCommandError): + fmt = \ + ("Templates with a size greater than 51,200 bytes must be deployed " + "via an S3 Bucket. Please add the --s3-bucket parameter to your " + "command. The local template will be copied to that S3 bucket and " + "then deployed.") + + +class InvalidForEachIntrinsicFunctionError(CloudFormationCommandError): + fmt = 'The value of {resource_id} has an invalid "Fn::ForEach::" format: Must be a list of three entries' diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/package.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/package.py new file mode 100644 index 000000000..126a9291c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/package.py @@ -0,0 +1,182 @@ +# Copyright 2012-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import os +import logging +import sys + +import json + +from botocore.client import Config + +from awscli.customizations.cloudformation.artifact_exporter import Template +from awscli.customizations.cloudformation.yamlhelper import yaml_dump +from awscli.customizations.cloudformation import exceptions +from awscli.customizations.commands import BasicCommand +from awscli.customizations.s3uploader import S3Uploader +from awscli.utils import create_nested_client + +LOG = logging.getLogger(__name__) + + +class PackageCommand(BasicCommand): + + MSG_PACKAGED_TEMPLATE_WRITTEN = ( + "Successfully packaged artifacts and wrote output template " + "to file {output_file_name}." + "\n" + "Execute the following command to deploy the packaged template" + "\n" + "aws cloudformation deploy --template-file {output_file_path} " + "--stack-name " + "\n") + + NAME = "package" + + DESCRIPTION = BasicCommand.FROM_FILE("cloudformation", + "_package_description.rst") + + ARG_TABLE = [ + { + 'name': 'template-file', + 'required': True, + 'help_text': ( + 'The path where your AWS CloudFormation' + ' template is located.' + ) + }, + + { + 'name': 's3-bucket', + 'required': True, + 'help_text': ( + 'The name of the S3 bucket where this command uploads' + ' the artifacts that are referenced in your template.' + ) + }, + + { + 'name': 's3-prefix', + 'help_text': ( + 'A prefix name that the command adds to the' + ' artifacts\' name when it uploads them to the S3 bucket.' + ' The prefix name is a path name (folder name) for' + ' the S3 bucket.' + ) + }, + + { + 'name': 'kms-key-id', + 'help_text': ( + 'The ID of an AWS KMS key that the command uses' + ' to encrypt artifacts that are at rest in the S3 bucket.' + ) + }, + + { + "name": "output-template-file", + "help_text": ( + "The path to the file where the command writes the" + " output AWS CloudFormation template. If you don't specify" + " a path, the command writes the template to the standard" + " output." + ) + }, + + { + "name": "use-json", + "action": "store_true", + "help_text": ( + "Indicates whether to use JSON as the format for the output AWS" + " CloudFormation template. YAML is used by default." + ) + }, + + { + "name": "force-upload", + "action": "store_true", + "help_text": ( + 'Indicates whether to override existing files in the S3 bucket.' + ' Specify this flag to upload artifacts even if they ' + ' match existing artifacts in the S3 bucket.' + ) + }, + { + "name": "metadata", + "cli_type_name": "map", + "schema": { + "type": "map", + "key": {"type": "string"}, + "value": {"type": "string"} + }, + "help_text": "A map of metadata to attach to *ALL* the artifacts that" + " are referenced in your template." + } + ] + + def _run_main(self, parsed_args, parsed_globals): + s3_client = create_nested_client( + self._session, "s3", + config=Config(signature_version='s3v4'), + region_name=parsed_globals.region, + verify=parsed_globals.verify_ssl) + + template_path = parsed_args.template_file + if not os.path.isfile(template_path): + raise exceptions.InvalidTemplatePathError( + template_path=template_path) + + bucket = parsed_args.s3_bucket + + self.s3_uploader = S3Uploader(s3_client, + bucket, + parsed_args.s3_prefix, + parsed_args.kms_key_id, + parsed_args.force_upload) + # attach the given metadata to the artifacts to be uploaded + self.s3_uploader.artifact_metadata = parsed_args.metadata + + output_file = parsed_args.output_template_file + use_json = parsed_args.use_json + exported_str = self._export(template_path, use_json) + + sys.stdout.write("\n") + self.write_output(output_file, exported_str) + + if output_file: + msg = self.MSG_PACKAGED_TEMPLATE_WRITTEN.format( + output_file_name=output_file, + output_file_path=os.path.abspath(output_file)) + sys.stdout.write(msg) + + sys.stdout.flush() + return 0 + + def _export(self, template_path, use_json): + template = Template(template_path, os.getcwd(), self.s3_uploader) + exported_template = template.export() + + if use_json: + exported_str = json.dumps(exported_template, indent=4, ensure_ascii=False) + else: + exported_str = yaml_dump(exported_template) + + return exported_str + + def write_output(self, output_file_name, data): + if output_file_name is None: + sys.stdout.write(data) + return + + with open(output_file_name, "w") as fp: + fp.write(data) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/yamlhelper.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/yamlhelper.py new file mode 100644 index 000000000..61603603e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudformation/yamlhelper.py @@ -0,0 +1,104 @@ +# Copyright 2012-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +from botocore.compat import json +from botocore.compat import OrderedDict + +import yaml +from yaml.resolver import ScalarNode, SequenceNode + + +def intrinsics_multi_constructor(loader, tag_prefix, node): + """ + YAML constructor to parse CloudFormation intrinsics. + This will return a dictionary with key being the intrinsic name + """ + + # Get the actual tag name excluding the first exclamation + tag = node.tag[1:] + + # Some intrinsic functions doesn't support prefix "Fn::" + prefix = "Fn::" + if tag in ["Ref", "Condition"]: + prefix = "" + + cfntag = prefix + tag + + if tag == "GetAtt" and isinstance(node.value, str): + # ShortHand notation for !GetAtt accepts Resource.Attribute format + # while the standard notation is to use an array + # [Resource, Attribute]. Convert shorthand to standard format + value = node.value.split(".", 1) + + elif isinstance(node, ScalarNode): + # Value of this node is scalar + value = loader.construct_scalar(node) + + elif isinstance(node, SequenceNode): + # Value of this node is an array (Ex: [1,2]) + value = loader.construct_sequence(node) + + else: + # Value of this node is an mapping (ex: {foo: bar}) + value = loader.construct_mapping(node) + + return {cfntag: value} + + +def _dict_representer(dumper, data): + return dumper.represent_dict(data.items()) + + +def yaml_dump(dict_to_dump): + """ + Dumps the dictionary as a YAML document + :param dict_to_dump: + :return: + """ + FlattenAliasDumper.add_representer(OrderedDict, _dict_representer) + return yaml.dump( + dict_to_dump, + default_flow_style=False, + Dumper=FlattenAliasDumper, + ) + + +def _dict_constructor(loader, node): + # Necessary in order to make yaml merge tags work + loader.flatten_mapping(node) + return OrderedDict(loader.construct_pairs(node)) + + +class SafeLoaderWrapper(yaml.SafeLoader): + """Isolated safe loader to allow for customizations without global changes. + """ + + pass + +def yaml_parse(yamlstr): + """Parse a yaml string""" + try: + # PyYAML doesn't support json as well as it should, so if the input + # is actually just json it is better to parse it with the standard + # json parser. + return json.loads(yamlstr, object_pairs_hook=OrderedDict) + except ValueError: + loader = SafeLoaderWrapper + loader.add_constructor(yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG, + _dict_constructor) + loader.add_multi_constructor("!", intrinsics_multi_constructor) + return yaml.load(yamlstr, loader) + + +class FlattenAliasDumper(yaml.SafeDumper): + def ignore_aliases(self, data): + return True diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudfront.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudfront.py new file mode 100644 index 000000000..72668d2e0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudfront.py @@ -0,0 +1,262 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import sys +import time +import random + +import rsa +from botocore.utils import parse_to_aware_datetime +from botocore.signers import CloudFrontSigner + +from awscli.arguments import CustomArgument +from awscli.customizations.utils import validate_mutually_exclusive_handler +from awscli.customizations.commands import BasicCommand +from awscli.utils import create_nested_client + + +def register(event_handler): + event_handler.register('building-command-table.cloudfront', _add_sign) + + # Provides a simpler --paths for ``aws cloudfront create-invalidation`` + event_handler.register( + 'building-argument-table.cloudfront.create-invalidation', _add_paths) + event_handler.register( + 'operation-args-parsed.cloudfront.create-invalidation', + validate_mutually_exclusive_handler(['invalidation_batch'], ['paths'])) + + event_handler.register( + 'operation-args-parsed.cloudfront.create-distribution', + validate_mutually_exclusive_handler( + ['default_root_object', 'origin_domain_name'], + ['distribution_config'])) + event_handler.register( + 'building-argument-table.cloudfront.create-distribution', + lambda argument_table, **kwargs: argument_table.__setitem__( + 'origin-domain-name', OriginDomainName(argument_table))) + event_handler.register( + 'building-argument-table.cloudfront.create-distribution', + lambda argument_table, **kwargs: argument_table.__setitem__( + 'default-root-object', CreateDefaultRootObject(argument_table))) + + context = {} + event_handler.register( + 'top-level-args-parsed', context.update, unique_id='cloudfront') + event_handler.register( + 'operation-args-parsed.cloudfront.update-distribution', + validate_mutually_exclusive_handler( + ['default_root_object'], ['distribution_config'])) + event_handler.register( + 'building-argument-table.cloudfront.update-distribution', + lambda argument_table, **kwargs: argument_table.__setitem__( + 'default-root-object', UpdateDefaultRootObject( + context=context, argument_table=argument_table))) + + +def unique_string(prefix='cli'): + return '%s-%s-%s' % (prefix, int(time.time()), random.randint(1, 1000000)) + + +def _add_paths(argument_table, **kwargs): + argument_table['invalidation-batch'].required = False + argument_table['paths'] = PathsArgument() + + +class PathsArgument(CustomArgument): + + def __init__(self): + doc = ( + 'The space-separated paths to be invalidated.' + ' Note: --invalidation-batch and --paths are mutually exclusive.' + ) + super(PathsArgument, self).__init__('paths', nargs='+', help_text=doc) + + def add_to_params(self, parameters, value): + if value is not None: + parameters['InvalidationBatch'] = { + "CallerReference": unique_string(), + "Paths": {"Quantity": len(value), "Items": value}, + } + + +class ExclusiveArgument(CustomArgument): + DOC = '%s This argument and --%s are mutually exclusive.' + + def __init__(self, name, argument_table, + exclusive_to='distribution-config', help_text=''): + argument_table[exclusive_to].required = False + super(ExclusiveArgument, self).__init__( + name, help_text=self.DOC % (help_text, exclusive_to)) + + def distribution_config_template(self): + return { + "CallerReference": unique_string(), + "Origins": {"Quantity": 0, "Items": []}, + "DefaultCacheBehavior": { + "TargetOriginId": "placeholder", + "ForwardedValues": { + "QueryString": False, + "Cookies": {"Forward": "none"}, + }, + "TrustedSigners": { + "Enabled": False, + "Quantity": 0 + }, + "ViewerProtocolPolicy": "allow-all", + "MinTTL": 0 + }, + "Enabled": True, + "Comment": "", + } + + +class OriginDomainName(ExclusiveArgument): + def __init__(self, argument_table): + super(OriginDomainName, self).__init__( + 'origin-domain-name', argument_table, + help_text='The domain name for your origin.') + + def add_to_params(self, parameters, value): + if value is None: + return + parameters.setdefault( + 'DistributionConfig', self.distribution_config_template()) + origin_id = unique_string(prefix=value) + item = {"Id": origin_id, "DomainName": value, "OriginPath": ''} + if item['DomainName'].endswith('.s3.amazonaws.com'): + # We do not need to detect '.s3[\w-].amazonaws.com' as S3 buckets, + # because CloudFront treats GovCloud S3 buckets as custom domain. + # http://docs.aws.amazon.com/govcloud-us/latest/UserGuide/setting-up-cloudfront.html + item["S3OriginConfig"] = {"OriginAccessIdentity": ""} + else: + item["CustomOriginConfig"] = { + 'HTTPPort': 80, 'HTTPSPort': 443, + 'OriginProtocolPolicy': 'http-only'} + parameters['DistributionConfig']['Origins'] = { + "Quantity": 1, "Items": [item]} + parameters['DistributionConfig']['DefaultCacheBehavior'][ + 'TargetOriginId'] = origin_id + + +class CreateDefaultRootObject(ExclusiveArgument): + def __init__(self, argument_table, help_text=''): + super(CreateDefaultRootObject, self).__init__( + 'default-root-object', argument_table, help_text=help_text or ( + 'The object that you want CloudFront to return (for example, ' + 'index.html) when a viewer request points to your root URL.')) + + def add_to_params(self, parameters, value): + if value is not None: + parameters.setdefault( + 'DistributionConfig', self.distribution_config_template()) + parameters['DistributionConfig']['DefaultRootObject'] = value + + +class UpdateDefaultRootObject(CreateDefaultRootObject): + def __init__(self, context, argument_table): + super(UpdateDefaultRootObject, self).__init__( + argument_table, help_text=( + 'The object that you want CloudFront to return (for example, ' + 'index.html) when a viewer request points to your root URL. ' + 'CLI will automatically make a get-distribution-config call ' + 'to load and preserve your other settings.')) + self.context = context + + def add_to_params(self, parameters, value): + if value is not None: + client = create_nested_client( + self.context['session'], + 'cloudfront', + region_name=self.context['parsed_args'].region, + endpoint_url=self.context['parsed_args'].endpoint_url, + verify=self.context['parsed_args'].verify_ssl) + response = client.get_distribution_config(Id=parameters['Id']) + parameters['IfMatch'] = response['ETag'] + parameters['DistributionConfig'] = response['DistributionConfig'] + parameters['DistributionConfig']['DefaultRootObject'] = value + + +def _add_sign(command_table, session, **kwargs): + command_table['sign'] = SignCommand(session) + + +class SignCommand(BasicCommand): + NAME = 'sign' + DESCRIPTION = 'Sign a given url.' + DATE_FORMAT = """Supported formats include: + YYYY-MM-DD (which means 0AM UTC of that day), + YYYY-MM-DDThh:mm:ss (with default timezone as UTC), + YYYY-MM-DDThh:mm:ss+hh:mm or YYYY-MM-DDThh:mm:ss-hh:mm (with offset), + or EpochTime (which always means UTC). + Do NOT use YYYYMMDD, because it will be treated as EpochTime.""" + ARG_TABLE = [ + { + 'name': 'url', + 'no_paramfile': True, # To disable the default paramfile behavior + 'required': True, + 'help_text': 'The URL to be signed', + }, + { + 'name': 'key-pair-id', + 'required': True, + 'help_text': ( + "The active CloudFront key pair Id for the key pair " + "that you're using to generate the signature."), + }, + { + 'name': 'private-key', + 'required': True, + 'help_text': 'file://path/to/your/private-key.pem', + }, + { + 'name': 'date-less-than', 'required': True, + 'help_text': + 'The expiration date and time for the URL. ' + DATE_FORMAT, + }, + { + 'name': 'date-greater-than', + 'help_text': + 'An optional start date and time for the URL. ' + DATE_FORMAT, + }, + { + 'name': 'ip-address', + 'help_text': ( + 'An optional IP address or IP address range to allow client ' + 'making the GET request from. Format: x.x.x.x/x or x.x.x.x'), + }, + ] + + def _run_main(self, args, parsed_globals): + signer = CloudFrontSigner( + args.key_pair_id, RSASigner(args.private_key).sign) + date_less_than = parse_to_aware_datetime(args.date_less_than) + date_greater_than = args.date_greater_than + if date_greater_than is not None: + date_greater_than = parse_to_aware_datetime(date_greater_than) + if date_greater_than is not None or args.ip_address is not None: + policy = signer.build_policy( + args.url, date_less_than, date_greater_than=date_greater_than, + ip_address=args.ip_address) + sys.stdout.write(signer.generate_presigned_url( + args.url, policy=policy)) + else: + sys.stdout.write(signer.generate_presigned_url( + args.url, date_less_than=date_less_than)) + return 0 + + +class RSASigner(object): + def __init__(self, private_key): + self.priv_key = rsa.PrivateKey.load_pkcs1(private_key.encode('utf8')) + + def sign(self, message): + return rsa.sign(message, self.priv_key, 'SHA-1') diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudsearch.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudsearch.py new file mode 100644 index 000000000..f1311d723 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudsearch.py @@ -0,0 +1,119 @@ +# Copyright 2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import logging + +from awscli.customizations.flatten import FlattenArguments, SEP +from botocore.compat import OrderedDict + +LOG = logging.getLogger(__name__) + +DEFAULT_VALUE_TYPE_MAP = { + 'Int': int, + 'Double': float, + 'IntArray': int, + 'DoubleArray': float +} + + +def index_hydrate(params, container, cli_type, key, value): + """ + Hydrate an index-field option value to construct something like:: + + { + 'index_field': { + 'DoubleOptions': { + 'DefaultValue': 0.0 + } + } + } + """ + if 'IndexField' not in params: + params['IndexField'] = {} + + if 'IndexFieldType' not in params['IndexField']: + raise RuntimeError('You must pass the --type option.') + + # Find the type and transform it for the type options field name + # E.g: int-array => IntArray + _type = params['IndexField']['IndexFieldType'] + _type = ''.join([i.capitalize() for i in _type.split('-')]) + + # ``index_field`` of type ``latlon`` is mapped to ``Latlon``. + # However, it is defined as ``LatLon`` in the model so it needs to + # be changed. + if _type == 'Latlon': + _type = 'LatLon' + + # Transform string value to the correct type? + if key.split(SEP)[-1] == 'DefaultValue': + value = DEFAULT_VALUE_TYPE_MAP.get(_type, lambda x: x)(value) + + # Set the proper options field + if _type + 'Options' not in params['IndexField']: + params['IndexField'][_type + 'Options'] = {} + + params['IndexField'][_type + 'Options'][key.split(SEP)[-1]] = value + + +FLATTEN_CONFIG = { + "define-expression": { + "expression": { + "keep": False, + "flatten": OrderedDict([ + # Order is crucial here! We're + # flattening ExpressionValue to be "expression", + # but this is the name ("expression") of the our parent + # key, the top level nested param. + ("ExpressionName", {"name": "name"}), + ("ExpressionValue", {"name": "expression"}),]), + } + }, + "define-index-field": { + "index-field": { + "keep": False, + # We use an ordered dict because `type` needs to be parsed before + # any of the Options values. + "flatten": OrderedDict([ + ("IndexFieldName", {"name": "name"}), + ("IndexFieldType", {"name": "type"}), + ("IntOptions.DefaultValue", {"name": "default-value", + "type": "string", + "hydrate": index_hydrate}), + ("IntOptions.FacetEnabled", {"name": "facet-enabled", + "hydrate": index_hydrate }), + ("IntOptions.SearchEnabled", {"name": "search-enabled", + "hydrate": index_hydrate}), + ("IntOptions.ReturnEnabled", {"name": "return-enabled", + "hydrate": index_hydrate}), + ("IntOptions.SortEnabled", {"name": "sort-enabled", + "hydrate": index_hydrate}), + ("IntOptions.SourceField", {"name": "source-field", + "type": "string", + "hydrate": index_hydrate }), + ("TextOptions.HighlightEnabled", {"name": "highlight-enabled", + "hydrate": index_hydrate}), + ("TextOptions.AnalysisScheme", {"name": "analysis-scheme", + "hydrate": index_hydrate}) + ]) + } + } +} + + +def initialize(cli): + """ + The entry point for CloudSearch customizations. + """ + flattened = FlattenArguments('cloudsearch', FLATTEN_CONFIG) + flattened.register(cli) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudsearchdomain.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudsearchdomain.py new file mode 100644 index 000000000..5aebcaf7f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudsearchdomain.py @@ -0,0 +1,29 @@ +# Copyright 2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +"""Customizations for the cloudsearchdomain command. + +This module customizes the cloudsearchdomain command: + + * Add validation that --endpoint-url is required. + +""" + +def register_cloudsearchdomain(cli): + cli.register_last('calling-command.cloudsearchdomain', + validate_endpoint_url) + + +def validate_endpoint_url(parsed_globals, **kwargs): + if parsed_globals.endpoint_url is None: + return ValueError( + "--endpoint-url is required for cloudsearchdomain commands") diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/__init__.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/__init__.py new file mode 100644 index 000000000..78377cb2c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/__init__.py @@ -0,0 +1,32 @@ +# Copyright 2012-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +from .subscribe import CloudTrailSubscribe, CloudTrailUpdate +from .validation import CloudTrailValidateLogs + + +def initialize(cli): + """ + The entry point for CloudTrail high level commands. + """ + cli.register('building-command-table.cloudtrail', inject_commands) + + +def inject_commands(command_table, session, **kwargs): + """ + Called when the CloudTrail command table is being built. Used to inject new + high level commands into the command list. These high level commands + must not collide with existing low-level API call names. + """ + command_table['create-subscription'] = CloudTrailSubscribe(session) + command_table['update-subscription'] = CloudTrailUpdate(session) + command_table['validate-logs'] = CloudTrailValidateLogs(session) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/__pycache__/__init__.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 000000000..5c8042346 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/__pycache__/__init__.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/__pycache__/subscribe.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/__pycache__/subscribe.cpython-312.pyc new file mode 100644 index 000000000..aa302719c Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/__pycache__/subscribe.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/__pycache__/utils.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/__pycache__/utils.cpython-312.pyc new file mode 100644 index 000000000..422ae6314 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/__pycache__/utils.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/__pycache__/validation.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/__pycache__/validation.cpython-312.pyc new file mode 100644 index 000000000..31b486286 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/__pycache__/validation.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/subscribe.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/subscribe.py new file mode 100644 index 000000000..90c3f7b0a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/subscribe.py @@ -0,0 +1,356 @@ +# Copyright 2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import json +import logging +import sys + +from .utils import get_account_id +from awscli.customizations.commands import BasicCommand +from awscli.customizations.utils import s3_bucket_exists +from awscli.utils import create_nested_client +from botocore.exceptions import ClientError + +LOG = logging.getLogger(__name__) +S3_POLICY_TEMPLATE = 'policy/S3/AWSCloudTrail-S3BucketPolicy-2014-12-17.json' +SNS_POLICY_TEMPLATE = 'policy/SNS/AWSCloudTrail-SnsTopicPolicy-2014-12-17.json' + + +class CloudTrailError(Exception): + pass + + +class CloudTrailSubscribe(BasicCommand): + """ + Subscribe/update a user account to CloudTrail, creating the required S3 bucket, + the optional SNS topic, and starting the CloudTrail monitoring and logging. + """ + NAME = 'create-subscription' + DESCRIPTION = ('Creates and configures the AWS resources necessary to use' + ' CloudTrail, creates a trail using those resources, and ' + 'turns on logging.') + SYNOPSIS = ('aws cloudtrail create-subscription' + ' (--s3-use-bucket|--s3-new-bucket) bucket-name' + ' [--sns-new-topic topic-name]\n') + + ARG_TABLE = [ + {'name': 'name', 'required': True, 'help_text': 'Cloudtrail name'}, + {'name': 's3-new-bucket', + 'help_text': 'Create a new S3 bucket with this name'}, + {'name': 's3-use-bucket', + 'help_text': 'Use an existing S3 bucket with this name'}, + {'name': 's3-prefix', 'help_text': 'S3 object prefix'}, + {'name': 'sns-new-topic', + 'help_text': 'Create a new SNS topic with this name'}, + {'name': 'include-global-service-events', + 'help_text': 'Whether to include global service events'}, + {'name': 's3-custom-policy', + 'help_text': 'Custom S3 policy template or URL'}, + {'name': 'sns-custom-policy', + 'help_text': 'Custom SNS policy template or URL'} + ] + UPDATE = False + _UNDOCUMENTED = True + + def _run_main(self, args, parsed_globals): + self.setup_services(args, parsed_globals) + # Run the command and report success + self._call(args, parsed_globals) + + return 0 + + def setup_services(self, args, parsed_globals): + client_args = { + 'region_name': None, + 'verify': None + } + if parsed_globals.region is not None: + client_args['region_name'] = parsed_globals.region + if parsed_globals.verify_ssl is not None: + client_args['verify'] = parsed_globals.verify_ssl + + # Initialize services + LOG.debug('Initializing S3, SNS and CloudTrail...') + self.sts = create_nested_client(self._session, 'sts', **client_args) + self.s3 = create_nested_client(self._session, 's3', **client_args) + self.sns = create_nested_client(self._session, 'sns', **client_args) + self.region_name = self.s3.meta.region_name + + # If the endpoint is specified, it is designated for the cloudtrail + # service. Not all of the other services will use it. + if parsed_globals.endpoint_url is not None: + client_args['endpoint_url'] = parsed_globals.endpoint_url + self.cloudtrail = create_nested_client(self._session, 'cloudtrail', **client_args) + + def _call(self, options, parsed_globals): + """ + Run the command. Calls various services based on input options and + outputs the final CloudTrail configuration. + """ + gse = options.include_global_service_events + if gse: + if gse.lower() == 'true': + gse = True + elif gse.lower() == 'false': + gse = False + else: + raise ValueError('You must pass either true or false to' + ' --include-global-service-events.') + + bucket = options.s3_use_bucket + + if options.s3_new_bucket: + bucket = options.s3_new_bucket + + if self.UPDATE and options.s3_prefix is None: + # Prefix was not passed and this is updating the S3 bucket, + # so let's find the existing prefix and use that if possible + res = self.cloudtrail.describe_trails( + trailNameList=[options.name]) + trail_info = res['trailList'][0] + + if 'S3KeyPrefix' in trail_info: + LOG.debug('Setting S3 prefix to {0}'.format( + trail_info['S3KeyPrefix'])) + options.s3_prefix = trail_info['S3KeyPrefix'] + + self.setup_new_bucket(bucket, options.s3_prefix, + options.s3_custom_policy) + elif not bucket and not self.UPDATE: + # No bucket was passed for creation. + raise ValueError('You must pass either --s3-use-bucket or' + ' --s3-new-bucket to create.') + + if options.sns_new_topic: + try: + topic_result = self.setup_new_topic(options.sns_new_topic, + options.sns_custom_policy) + except Exception: + # Roll back any S3 bucket creation + if options.s3_new_bucket: + self.s3.delete_bucket(Bucket=options.s3_new_bucket) + raise + + try: + cloudtrail_config = self.upsert_cloudtrail_config( + options.name, + bucket, + options.s3_prefix, + options.sns_new_topic, + gse + ) + except Exception: + # Roll back any S3 bucket / SNS topic creations + if options.s3_new_bucket: + self.s3.delete_bucket(Bucket=options.s3_new_bucket) + if options.sns_new_topic: + self.sns.delete_topic(TopicArn=topic_result['TopicArn']) + raise + + sys.stdout.write('CloudTrail configuration:\n{config}\n'.format( + config=json.dumps(cloudtrail_config, indent=2))) + + if not self.UPDATE: + # If the configure call command above completes then this should + # have a really high chance of also completing + self.start_cloudtrail(options.name) + + sys.stdout.write( + 'Logs will be delivered to {bucket}:{prefix}\n'.format( + bucket=bucket, prefix=options.s3_prefix or '')) + + def _get_policy(self, key_name): + try: + data = self.s3.get_object( + Bucket='awscloudtrail-policy-' + self.region_name, + Key=key_name) + return data['Body'].read().decode('utf-8') + except Exception as e: + raise CloudTrailError( + 'Unable to get regional policy template for' + ' region %s: %s. Error: %s', self.region_name, key_name, e) + + def setup_new_bucket(self, bucket, prefix, custom_policy=None): + """ + Creates a new S3 bucket with an appropriate policy to let CloudTrail + write to the prefix path. + """ + sys.stdout.write( + 'Setting up new S3 bucket {bucket}...\n'.format(bucket=bucket)) + + account_id = get_account_id(self.sts) + + # Clean up the prefix - it requires a trailing slash if set + if prefix and not prefix.endswith('/'): + prefix += '/' + + # Fetch policy data from S3 or a custom URL + if custom_policy is not None: + policy = custom_policy + else: + policy = self._get_policy(S3_POLICY_TEMPLATE) + + policy = policy.replace('', bucket)\ + .replace('', account_id) + + if '/' in policy: + policy = policy.replace('/', prefix or '') + else: + policy = policy.replace('', prefix or '') + + LOG.debug('Bucket policy:\n{0}'.format(policy)) + bucket_exists = s3_bucket_exists(self.s3, bucket) + if bucket_exists: + raise Exception('Bucket {bucket} already exists.'.format( + bucket=bucket)) + + # If we are not using the us-east-1 region, then we must set + # a location constraint on the new bucket. + params = {'Bucket': bucket} + if self.region_name != 'us-east-1': + bucket_config = {'LocationConstraint': self.region_name} + params['CreateBucketConfiguration'] = bucket_config + + data = self.s3.create_bucket(**params) + + try: + self.s3.put_bucket_policy(Bucket=bucket, Policy=policy) + except ClientError: + # Roll back bucket creation. + self.s3.delete_bucket(Bucket=bucket) + raise + + return data + + def setup_new_topic(self, topic, custom_policy=None): + """ + Creates a new SNS topic with an appropriate policy to let CloudTrail + post messages to the topic. + """ + sys.stdout.write( + 'Setting up new SNS topic {topic}...\n'.format(topic=topic)) + + account_id = get_account_id(self.sts) + + # Make sure topic doesn't already exist + # Warn but do not fail if ListTopics permissions + # are missing from the IAM role? + try: + topics = self.sns.list_topics()['Topics'] + except Exception: + topics = [] + LOG.warn('Unable to list topics, continuing...') + + if [t for t in topics if t['TopicArn'].split(':')[-1] == topic]: + raise Exception('Topic {topic} already exists.'.format( + topic=topic)) + + region = self.sns.meta.region_name + + # Get the SNS topic policy information to allow CloudTrail + # write-access. + if custom_policy is not None: + policy = custom_policy + else: + policy = self._get_policy(SNS_POLICY_TEMPLATE) + + policy = policy.replace('', region)\ + .replace('', account_id)\ + .replace('', topic) + + topic_result = self.sns.create_topic(Name=topic) + + try: + # Merge any existing topic policy with our new policy statements + topic_attr = self.sns.get_topic_attributes( + TopicArn=topic_result['TopicArn']) + + policy = self.merge_sns_policy(topic_attr['Attributes']['Policy'], + policy) + + LOG.debug('Topic policy:\n{0}'.format(policy)) + + # Set the topic policy + self.sns.set_topic_attributes(TopicArn=topic_result['TopicArn'], + AttributeName='Policy', + AttributeValue=policy) + except Exception: + # Roll back topic creation + self.sns.delete_topic(TopicArn=topic_result['TopicArn']) + raise + + return topic_result + + def merge_sns_policy(self, left, right): + """ + Merge two SNS topic policy documents. The id information from + ``left`` is used in the final document, and the statements + from ``right`` are merged into ``left``. + + http://docs.aws.amazon.com/sns/latest/dg/BasicStructure.html + + :type left: string + :param left: First policy JSON document + :type right: string + :param right: Second policy JSON document + :rtype: string + :return: Merged policy JSON + """ + left_parsed = json.loads(left) + right_parsed = json.loads(right) + left_parsed['Statement'] += right_parsed['Statement'] + return json.dumps(left_parsed) + + def upsert_cloudtrail_config(self, name, bucket, prefix, topic, gse): + """ + Either create or update the CloudTrail configuration depending on + whether this command is a create or update command. + """ + sys.stdout.write('Creating/updating CloudTrail configuration...\n') + config = { + 'Name': name + } + if bucket is not None: + config['S3BucketName'] = bucket + if prefix is not None: + config['S3KeyPrefix'] = prefix + if topic is not None: + config['SnsTopicName'] = topic + if gse is not None: + config['IncludeGlobalServiceEvents'] = gse + if not self.UPDATE: + self.cloudtrail.create_trail(**config) + else: + self.cloudtrail.update_trail(**config) + return self.cloudtrail.describe_trails() + + def start_cloudtrail(self, name): + """ + Start the CloudTrail service, which begins logging. + """ + sys.stdout.write('Starting CloudTrail service...\n') + return self.cloudtrail.start_logging(Name=name) + + +class CloudTrailUpdate(CloudTrailSubscribe): + """ + Like subscribe above, but the update version of the command. + """ + NAME = 'update-subscription' + UPDATE = True + + DESCRIPTION = ('Updates any of the trail configuration settings, and' + ' creates and configures any new AWS resources specified.') + + SYNOPSIS = ('aws cloudtrail update-subscription' + ' [(--s3-use-bucket|--s3-new-bucket) bucket-name]' + ' [--sns-new-topic topic-name]\n') diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/utils.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/utils.py new file mode 100644 index 000000000..2d9495f9e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/utils.py @@ -0,0 +1,32 @@ +# Copyright 2012-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + + +def get_account_id_from_arn(trail_arn): + """Gets the account ID portion of an ARN""" + return trail_arn.split(':')[4] + + +def get_account_id(sts_client): + """Retrieve the AWS account ID for the authenticated user or role""" + response = sts_client.get_caller_identity() + return response['Account'] + + +def get_trail_by_arn(cloudtrail_client, trail_arn): + """Gets trail information based on the trail's ARN""" + trails = cloudtrail_client.describe_trails()['trailList'] + for trail in trails: + if trail.get('TrailARN', None) == trail_arn: + return trail + raise ValueError('A trail could not be found for %s' % trail_arn) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/validation.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/validation.py new file mode 100644 index 000000000..a877ff7df --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/cloudtrail/validation.py @@ -0,0 +1,1258 @@ +# Copyright 2012-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import base64 +import binascii +import hashlib +import json +import logging +import re +import sys +import zlib +from datetime import timedelta +from zlib import error as ZLibError + +import rsa +from botocore.exceptions import ClientError +from dateutil import parser, tz +from pyasn1.error import PyAsn1Error + +from awscli.compat import get_current_datetime +from awscli.customizations.cloudtrail.utils import ( + get_account_id_from_arn, + get_trail_by_arn, +) +from awscli.customizations.commands import BasicCommand +from awscli.schema import ParameterRequiredError +from awscli.utils import create_nested_client + +LOG = logging.getLogger(__name__) +DATE_FORMAT = '%Y%m%dT%H%M%SZ' +DISPLAY_DATE_FORMAT = '%Y-%m-%dT%H:%M:%SZ' + + +def format_date(date): + """Returns a formatted date string in a CloudTrail date format""" + return date.strftime(DATE_FORMAT) + + +def format_display_date(date): + """Returns a formatted date string meant for CLI output""" + return date.strftime(DISPLAY_DATE_FORMAT) + + +def normalize_date(date): + """Returns a normalized date using a UTC timezone""" + return date.replace(tzinfo=tz.tzutc()) + + +def is_backfill_digest_key(digest_key): + """Utility function to determine if a digest key represents a backfill digest file""" + return digest_key.endswith('_backfill.json.gz') + + +def extract_digest_key_date(digest_s3_key): + """Extract the timestamp portion of a manifest file. + + Manifest file names take the following form: + AWSLogs/{account}/CloudTrail-Digest/{region}/{ymd}/{account}_CloudTrail \ + -Digest_{region}_{name}_region_{date}.json.gz + + For backfill files: + AWSLogs/{account}/CloudTrail-Digest/{region}/{ymd}/{account}_CloudTrail \ + -Digest_{region}_{name}_region_{date}_backfill.json.gz + """ + if is_backfill_digest_key(digest_s3_key): + # Backfill files have _backfill suffix before .json.gz + return digest_s3_key[-33:-17] + else: + # Regular digest files + return digest_s3_key[-24:-8] + + +def parse_date(date_string): + try: + return parser.parse(date_string) + except ValueError: + raise ValueError(f'Unable to parse date value: {date_string}') + + +def assert_cloudtrail_arn_is_valid(trail_arn): + """Ensures that the arn looks correct. + + ARNs look like: arn:aws:cloudtrail:us-east-1:123456789012:trail/foo""" + pattern = re.compile(r'arn:.+:cloudtrail:.+:\d{12}:trail/.+') + if not pattern.match(trail_arn): + raise ValueError(f'Invalid trail ARN provided: {trail_arn}') + + +def create_digest_traverser( + cloudtrail_client, + organization_client, + s3_client_provider, + trail_arn, + trail_source_region=None, + on_invalid=None, + on_gap=None, + on_missing=None, + bucket=None, + prefix=None, + account_id=None, +): + """Creates a CloudTrail DigestTraverser and its object graph. + + :type cloudtrail_client: botocore.client.CloudTrail + :param cloudtrail_client: Client used to connect to CloudTrail + :type organization_client: botocore.client.organizations + :param organization_client: Client used to connect to Organizations + :type s3_client_provider: S3ClientProvider + :param s3_client_provider: Used to create Amazon S3 client per/region. + :param trail_arn: CloudTrail trail ARN + :param trail_source_region: The scanned region of a trail. + :param on_invalid: Callback that is invoked when validating a digest fails. + :param on_gap: Callback that is invoked when a digest has no link to the + previous digest, but there are more digests to validate. This can + happen when a trail is disabled for a period of time. + :param on_missing: Callback that is invoked when a digest file has been + deleted from Amazon S3 but is supposed to be present. + :param bucket: Amazon S3 bucket of the trail if it is different than the + bucket that is currently associated with the trail. + :param prefix: bucket: Key prefix prepended to each digest and log placed + in the Amazon S3 bucket if it is different than the prefix that is + currently associated with the trail. + :param account_id: The account id for which the digest files are + validated. For normal trails this is the caller account, for + organization trails it is the member account. + + ``on_gap``, ``on_invalid``, and ``on_missing`` callbacks are invoked with + the following named arguments: + + - ``bucket`: The next S3 bucket. + - ``next_key``: (optional) Next digest key that was found in the bucket. + - ``next_end_date``: (optional) End date of the next found digest. + - ``last_key``: The last digest key that was found. + - ``last_start_date``: (optional) Start date of last found digest. + - ``message``: (optional) Message string about the notification. + """ + assert_cloudtrail_arn_is_valid(trail_arn) + organization_id = None + if bucket is None: + # Determine the bucket and prefix based on the trail arn. + trail_info = get_trail_by_arn(cloudtrail_client, trail_arn) + LOG.debug(f'Loaded trail info: {trail_info}') + bucket = trail_info['S3BucketName'] + prefix = trail_info.get('S3KeyPrefix', None) + is_org_trail = trail_info.get('IsOrganizationTrail') + if is_org_trail: + if not account_id: + raise ParameterRequiredError( + "Missing required parameter for organization " + "trail: '--account-id'" + ) + organization_id = organization_client.describe_organization()[ + 'Organization' + ]['Id'] + + # Determine the region from the ARN (e.g., arn:aws:cloudtrail:REGION:...) + trail_region = trail_arn.split(':')[3] + # Determine the name from the ARN (the last part after "/") + trail_name = trail_arn.split('/')[-1] + # If account id is not specified parse it from trail ARN + if not account_id: + account_id = get_account_id_from_arn(trail_arn) + + digest_provider = DigestProvider( + account_id=account_id, + trail_name=trail_name, + s3_client_provider=s3_client_provider, + trail_source_region=trail_source_region, + trail_home_region=trail_region, + organization_id=organization_id, + ) + return DigestTraverser( + digest_provider=digest_provider, + starting_bucket=bucket, + starting_prefix=prefix, + on_invalid=on_invalid, + on_gap=on_gap, + on_missing=on_missing, + public_key_provider=PublicKeyProvider(cloudtrail_client), + ) + + +class S3ClientProvider: + """Creates Amazon S3 clients and determines the region name of a client. + + This class will cache the location constraints of previously requested + buckets and cache previously created clients for the same region. + """ + + def __init__(self, session, get_bucket_location_region='us-east-1'): + self._session = session + self._get_bucket_location_region = get_bucket_location_region + self._client_cache = {} + self._region_cache = {} + + def get_client(self, bucket_name): + """Creates an S3 client that can work with the given bucket name""" + region_name = self._get_bucket_region(bucket_name) + return self._create_client(region_name) + + def _get_bucket_region(self, bucket_name): + """Returns the region of a bucket""" + if bucket_name not in self._region_cache: + client = self._create_client(self._get_bucket_location_region) + result = client.get_bucket_location(Bucket=bucket_name) + region = result['LocationConstraint'] or 'us-east-1' + self._region_cache[bucket_name] = region + return self._region_cache[bucket_name] + + def _create_client(self, region_name): + """Creates an Amazon S3 client for the given region name""" + if region_name not in self._client_cache: + client = create_nested_client( + self._session, 's3', region_name=region_name + ) + # Remove the CLI error event that prevents exceptions. + self._client_cache[region_name] = client + return self._client_cache[region_name] + + +class DigestError(ValueError): + """Exception raised when a digest fails to validate""" + + pass + + +class DigestSignatureError(DigestError): + """Exception raised when a digest signature is invalid""" + + def __init__(self, bucket, key): + message = ( + f'Digest file\ts3://{bucket}/{key}\tINVALID: signature verification ' + 'failed' + ) + super().__init__(message) + + +class InvalidDigestFormat(DigestError): + """Exception raised when a digest has an invalid format""" + + def __init__(self, bucket, key): + message = f'Digest file\ts3://{bucket}/{key}\tINVALID: invalid format' + super().__init__(message) + + +class PublicKeyProvider: + """Retrieves public keys from CloudTrail within a date range.""" + + def __init__(self, cloudtrail_client): + self._cloudtrail_client = cloudtrail_client + + def get_public_keys(self, start_date, end_date): + """Loads public keys in a date range into a returned dict. + + :type start_date: datetime + :param start_date: Start date of a date range. + :type end_date: datetime + :param end_date: End date of a date range. + :rtype: dict + :return: Returns a dict where each key is the fingerprint of the + public key, and each value is a dict of public key data. + """ + public_keys = self._cloudtrail_client.list_public_keys( + StartTime=start_date, EndTime=end_date + ) + public_keys_in_range = public_keys['PublicKeyList'] + LOG.debug(f'Loaded public keys in range: {public_keys_in_range}') + return dict((key['Fingerprint'], key) for key in public_keys_in_range) + + +class DigestProvider: + """ + Retrieves digest keys and digests from Amazon S3. + + This class is responsible for determining the full list of digest files + in a bucket and loading digests from the bucket into a JSON decoded + dict. This class is not responsible for validation or iterating from + one digest to the next. + """ + + def __init__( + self, + s3_client_provider, + account_id, + trail_name, + trail_home_region, + trail_source_region=None, + organization_id=None, + ): + self._client_provider = s3_client_provider + self.trail_name = trail_name + self.account_id = account_id + self.trail_home_region = trail_home_region + self.trail_source_region = trail_source_region or trail_home_region + self.organization_id = organization_id + self._digest_cache = {} + + def load_all_digest_keys_in_range( + self, bucket, prefix, start_date, end_date + ): + """Load all digest keys and separate into standard and backfill lists. + + Performs a single S3 list operation and separates keys into standard + and backfill digest lists during iteration for optimal performance. + + :param bucket: S3 bucket name + :param prefix: S3 key prefix + :param start_date: Start date for digest range + :param end_date: End date for digest range + :return: Tuple of (standard_digests, backfill_digests) lists + :rtype: tuple + """ + standard_digests = [] + backfill_digests = [] + marker = self._create_digest_key(start_date, prefix) + s3_digest_files_prefix = self._create_digest_prefix(start_date, prefix) + client = self._client_provider.get_client(bucket) + paginator = client.get_paginator('list_objects') + page_iterator = paginator.paginate( + Bucket=bucket, Marker=marker, Prefix=s3_digest_files_prefix + ) + key_filter = page_iterator.search('Contents[*].Key') + # Create a target start end end date + target_start_date = format_date(normalize_date(start_date)) + # Add one hour to the end_date to get logs that spilled over to next. + target_end_date = format_date( + normalize_date(end_date + timedelta(hours=1)) + ) + # Ensure digests are from the same trail. + digest_key_regex = re.compile(self._create_digest_key_regex(prefix)) + for key in key_filter: + if not (key and digest_key_regex.match(key)): + continue + # Use a lexicographic comparison to know when to stop. + extracted_date = extract_digest_key_date(key) + if extracted_date > target_end_date: + break + # Only append digests after the start date. + if extracted_date < target_start_date: + continue + if is_backfill_digest_key(key): + backfill_digests.append(key) + else: + standard_digests.append(key) + return standard_digests, backfill_digests + + def load_digest_keys_in_range( + self, bucket, prefix, start_date, end_date, is_backfill=False + ): + """Returns a list of digest keys in the date range. + + This method uses caching to avoid duplicate S3 list operations. + On first call, it loads all digest keys and caches them separated + by type. Subsequent calls return the appropriate cached list. + + :param bucket: S3 bucket name + :param prefix: S3 key prefix + :param start_date: Start date for digest range + :param end_date: End date for digest range + :param is_backfill: Optional filter - True for backfill digests only, + False for standard digests only + :return: List of digest keys matching the specified type + :rtype: list + """ + cache_key = (bucket, prefix, start_date, end_date) + + if cache_key not in self._digest_cache: + standard_digests, backfill_digests = ( + self.load_all_digest_keys_in_range( + bucket, prefix, start_date, end_date + ) + ) + self._digest_cache[cache_key] = { + 'standard': standard_digests, + 'backfill': backfill_digests, + } + + if is_backfill: + return self._digest_cache[cache_key]['backfill'] + else: + return self._digest_cache[cache_key]['standard'] + + def fetch_digest(self, bucket, key): + """Loads a digest by key from S3. + + Returns the JSON decode data and GZIP inflated raw content. + For backfill digests, also extracts the backfill-generation-timestamp. + """ + client = self._client_provider.get_client(bucket) + result = client.get_object(Bucket=bucket, Key=key) + try: + digest = zlib.decompress( + result['Body'].read(), zlib.MAX_WBITS | 16 + ) + digest_data = json.loads(digest.decode()) + except (ValueError, ZLibError): + # Cannot gzip decode or JSON parse. + raise InvalidDigestFormat(bucket, key) + # Add the expected digest signature and algorithm to the dict. + if ( + 'signature' not in result['Metadata'] + or 'signature-algorithm' not in result['Metadata'] + ): + raise DigestSignatureError(bucket, key) + digest_data['_signature'] = result['Metadata']['signature'] + digest_data['_signature_algorithm'] = result['Metadata'][ + 'signature-algorithm' + ] + + if is_backfill_digest_key(key): + if 'backfill-generation-timestamp' in result['Metadata']: + digest_data['_backfill_generation_timestamp'] = result[ + 'Metadata' + ]['backfill-generation-timestamp'] + else: + raise InvalidDigestFormat(bucket, key) + + return digest_data, digest + + def _create_digest_key(self, start_date, key_prefix): + """Computes an Amazon S3 key based on the provided data. + + The computed is what would have been placed in the S3 bucket if + a log digest were created at a specific time. This computed key + does not have to actually exist as it will only be used to as + a Marker parameter in a list_objects call. + + :return: Returns a computed key as a string. + """ + # Subtract one minute to ensure the dates are inclusive. + date = start_date - timedelta(minutes=1) + account_id = self.account_id + date_str = format_date(date) + ymd = date.strftime('%Y/%m/%d') + source_region = self.trail_source_region + home_region = self.trail_home_region + name = self.trail_name + + if self.organization_id: + organization_id = self.organization_id + key = ( + f'AWSLogs/{organization_id}/{account_id}/CloudTrail-Digest/' + f'{source_region}/{ymd}/{account_id}_CloudTrail-Digest_' + f'{source_region}_{name}_{home_region}_{date_str}.json.gz' + ) + else: + key = ( + f'AWSLogs/{account_id}/CloudTrail-Digest/{source_region}/' + f'{ymd}/{account_id}_CloudTrail-Digest_{source_region}_{name}_' + f'{home_region}_{date_str}.json.gz' + ) + + if key_prefix: + key = key_prefix + '/' + key + return key + + def _create_digest_prefix(self, start_date, key_prefix): + """Creates an S3 prefix to scope listing to trail's region. + + :return: Returns a prefix string to limit S3 listing scope. + """ + template = 'AWSLogs/' + template_params = { + 'account_id': self.account_id, + 'source_region': self.trail_source_region, + } + if self.organization_id: + template += '{organization_id}/' + template_params['organization_id'] = self.organization_id + template += '{account_id}/CloudTrail-Digest/{source_region}' + prefix = template.format(**template_params) + if key_prefix: + prefix = key_prefix + '/' + prefix + return prefix + + def _create_digest_key_regex(self, key_prefix): + """Creates a regular expression used to match against S3 keys for both standard and backfill digests""" + account_id = re.escape(self.account_id) + source_region = re.escape(self.trail_source_region) + home_region = re.escape(self.trail_home_region) + name = re.escape(self.trail_name) + + if self.organization_id: + organization_id = self.organization_id + key = ( + f'AWSLogs/{organization_id}/{account_id}/CloudTrail\\-Digest/' + f'{source_region}/\\d+/\\d+/\\d+/{account_id}_CloudTrail\\-Digest_' + f'{source_region}_{name}_{home_region}_.+(?:_backfill)?\\.json\\.gz' + ) + else: + key = ( + f'AWSLogs/{account_id}/CloudTrail\\-Digest/{source_region}/' + f'\\d+/\\d+/\\d+/{account_id}_CloudTrail\\-Digest_' + f'{source_region}_{name}_{home_region}_.+(?:_backfill)?\\.json\\.gz' + ) + + if key_prefix: + key = re.escape(key_prefix) + '/' + key + return '^' + key + '$' + + +class DigestTraverser: + """Retrieves and validates digests within a date range.""" + + # These keys are required to be present before validating the contents + # of a digest. + required_digest_keys = [ + 'digestPublicKeyFingerprint', + 'digestS3Bucket', + 'digestS3Object', + 'previousDigestSignature', + 'digestEndTime', + 'digestStartTime', + ] + + def __init__( + self, + digest_provider, + starting_bucket, + starting_prefix, + public_key_provider, + digest_validator=None, + on_invalid=None, + on_gap=None, + on_missing=None, + ): + """ + :type digest_provider: DigestProvider + :param digest_provider: DigestProvider object + :param starting_bucket: S3 bucket where the digests are stored. + :param starting_prefix: An optional prefix applied to each S3 key. + :param public_key_provider: Provides public keys for a range. + :param digest_validator: Validates digest using a validate method. + :param on_invalid: Callback invoked when a digest is invalid. + :param on_gap: Callback invoked when a digest has no parent, but + there are still more digests to validate. + :param on_missing: Callback invoked when a digest file is missing. + """ + self.starting_bucket = starting_bucket + self.starting_prefix = starting_prefix + self.digest_provider = digest_provider + self._public_key_provider = public_key_provider + self._on_gap = on_gap + self._on_invalid = on_invalid + self._on_missing = on_missing + if digest_validator is None: + digest_validator = Sha256RSADigestValidator() + self._digest_validator = digest_validator + + def traverse_digests(self, start_date, end_date=None, is_backfill=False): + """Creates and returns a generator that yields validated digest data. + + Each yielded digest dictionary contains information about the digest + and the log file associated with the digest. Digest files are validated + before they are yielded. Whether or not the digest is successfully + validated is stated in the "isValid" key value pair of the yielded + dictionary. + + :type start_date: datetime + :param start_date: Date to start validating from (inclusive). + :type end_date: datetime + :param end_date: Date to stop validating at (inclusive). + :type is_backfill: bool + :param is_backfill: Flag indicating whether to process backfill digests only. + """ + if end_date is None: + end_date = get_current_datetime() + end_date = normalize_date(end_date) + start_date = normalize_date(start_date) + bucket = self.starting_bucket + prefix = self.starting_prefix + + digests = self._load_digests( + bucket, prefix, start_date, end_date, is_backfill=is_backfill + ) + + # For regular digests, pre-load public keys. For backfill, start with empty dict + public_keys = ( + {} + if is_backfill + else self._load_public_keys( + start_date, end_date + timedelta(hours=2) + ) + ) + + yield from self._traverse_digest_chain( + digests, + bucket, + prefix, + start_date, + public_keys, + is_backfill=is_backfill, + ) + + def _traverse_digest_chain( + self, + digests, + bucket, + prefix, + start_date, + public_keys, + is_backfill=False, + ): + """Traverses a single chain of digests + + :param is_backfill: Boolean indicating whether this chain contains backfill digests + """ + key, end_date = self._get_last_digest(digests) + last_start_date = end_date + + while key and start_date <= last_start_date: + try: + digest, end_date = self._load_and_validate_digest( + public_keys, bucket, key, is_backfill=is_backfill + ) + last_start_date = normalize_date( + parse_date(digest['digestStartTime']) + ) + previous_bucket = digest.get('previousDigestS3Bucket', None) + previous_key = digest.get('previousDigestS3Object', None) + yield digest + if previous_bucket is None or previous_key is None: + # The chain is broken, so find next in digest store. + key, end_date = self._find_next_digest( + digests=digests, + bucket=bucket, + last_key=key, + last_start_date=last_start_date, + cb=self._on_gap, + is_cb_conditional=True, + is_backfill=is_backfill, + ) + else: + key = previous_key + if previous_bucket != bucket: + bucket = previous_bucket + # The bucket changed so reload the digest list. + digests = self._load_digests( + bucket, + prefix, + start_date, + end_date, + is_backfill=is_backfill, + ) + except ClientError as e: + if e.response['Error']['Code'] != 'NoSuchKey': + raise e + key, end_date = self._find_next_digest( + digests=digests, + bucket=bucket, + last_key=key, + last_start_date=last_start_date, + cb=self._on_missing, + message=str(e), + is_backfill=is_backfill, + ) + except DigestError as e: + key, end_date = self._find_next_digest( + digests=digests, + bucket=bucket, + last_key=key, + last_start_date=last_start_date, + cb=self._on_invalid, + message=str(e), + is_backfill=is_backfill, + ) + except Exception as e: + # Any other unexpected errors. + key, end_date = self._find_next_digest( + digests=digests, + bucket=bucket, + last_key=key, + last_start_date=last_start_date, + cb=self._on_invalid, + message=f'Digest file\ts3://{bucket}/{key}\tINVALID: {str(e)}', + is_backfill=is_backfill, + ) + + def _load_digests( + self, bucket, prefix, start_date, end_date, is_backfill=False + ): + return self.digest_provider.load_digest_keys_in_range( + bucket=bucket, + prefix=prefix, + start_date=start_date, + end_date=end_date, + is_backfill=is_backfill, + ) + + def _find_next_digest( + self, + digests, + bucket, + last_key, + last_start_date, + cb=None, + is_cb_conditional=False, + message=None, + is_backfill=False, + ): + """Finds the next digest in the bucket and invokes any callback.""" + next_key, next_end_date = self._get_last_digest(digests, last_key) + if cb and (not is_cb_conditional or next_key): + cb( + bucket=bucket, + next_key=next_key, + last_key=last_key, + next_end_date=next_end_date, + last_start_date=last_start_date, + message=message, + is_backfill=is_backfill, + ) + return next_key, next_end_date + + def _get_last_digest(self, digests, before_key=None): + """Finds the previous digest key (either the last or before before_key) + + If no key is provided, the last digest is used. If a digest is found, + the end date of the provider is adjusted to match the found key's end + date. + """ + if not digests: + return None, None + elif before_key is None: + next_key = digests.pop() + next_key_date = normalize_date( + parse_date(extract_digest_key_date(next_key)) + ) + return next_key, next_key_date + # find a key before the given key. + before_key_date = parse_date(extract_digest_key_date(before_key)) + while digests: + next_key = digests.pop() + next_key_date = normalize_date( + parse_date(extract_digest_key_date(next_key)) + ) + if next_key_date < before_key_date: + LOG.debug(f"Next found key: {next_key}") + return next_key, next_key_date + return None, None + + def _load_and_validate_digest( + self, public_keys, bucket, key, is_backfill=False + ): + """Loads and validates a digest from S3. + + :param public_keys: Public key dictionary of fingerprint to dict. + :param bucket: S3 bucket name + :param key: S3 key for the digest file + :param is_backfill: Flag indicating if this is a backfill digest + :return: Returns a tuple of the digest data as a dict and end_date + :rtype: tuple + """ + digest_data, digest = self.digest_provider.fetch_digest(bucket, key) + + # Validate required keys are present + for required_key in self.required_digest_keys: + if required_key not in digest_data: + raise InvalidDigestFormat(bucket, key) + + # Ensure the bucket and key are the same as what's expected + if ( + digest_data['digestS3Bucket'] != bucket + or digest_data['digestS3Object'] != key + ): + raise DigestError( + f'Digest file\ts3://{bucket}/{key}\tINVALID: has been moved from its ' + 'original location' + ) + + fingerprint = digest_data['digestPublicKeyFingerprint'] + if fingerprint not in public_keys and is_backfill: + # Backfill-specific logic to fetch public keys + backfill_timestamp = normalize_date( + parse_date(digest_data['_backfill_generation_timestamp']) + ) + start_time = backfill_timestamp - timedelta(hours=1) + end_time = backfill_timestamp + timedelta(hours=1) + public_keys.update(self._load_public_keys(start_time, end_time)) + + if fingerprint not in public_keys: + error_message = ( + f'Digest file\ts3://{bucket}/{key}\tINVALID: public key not found in ' + f'region {self.digest_provider.trail_home_region} for fingerprint {fingerprint}' + ) + raise DigestError(error_message) + + public_key_hex = public_keys[fingerprint]['Value'] + self._digest_validator.validate( + bucket, key, public_key_hex, digest_data, digest + ) + + end_date = normalize_date(parse_date(digest_data['digestEndTime'])) + return digest_data, end_date + + def _load_public_keys(self, start_date, end_date): + public_keys = self._public_key_provider.get_public_keys( + start_date, end_date + ) + if not public_keys: + raise RuntimeError( + f'No public keys found between {format_display_date(start_date)} and {format_display_date(end_date)}' + ) + return public_keys + + +class Sha256RSADigestValidator: + """ + Validates SHA256withRSA signed digests. + + The result of validating the digest is inserted into the digest_data + dictionary using the isValid key value pair. + """ + + def validate(self, bucket, key, public_key, digest_data, inflated_digest): + """Validates a digest file. + + Throws a DigestError when the digest is invalid. + + :param bucket: Bucket of the digest file + :param key: Key of the digest file + :param public_key: Public key bytes. + :param digest_data: Dict of digest data returned when JSON + decoding a manifest. + :param inflated_digest: Inflated digest file contents as bytes. + """ + try: + decoded_key = base64.b64decode(public_key) + public_key = rsa.PublicKey.load_pkcs1(decoded_key, format='DER') + to_sign = self._create_string_to_sign(digest_data, inflated_digest) + signature_bytes = binascii.unhexlify(digest_data['_signature']) + rsa.verify(to_sign, signature_bytes, public_key) + except PyAsn1Error: + raise DigestError( + f'Digest file\ts3://{bucket}/{key}\tINVALID: Unable to load PKCS #1 key' + f' with fingerprint {digest_data["digestPublicKeyFingerprint"]}' + ) + except rsa.pkcs1.VerificationError: + # Note from the Python-RSA docs: Never display the stack trace of + # a rsa.pkcs1.VerificationError exception. It shows where in the + # code the exception occurred, and thus leaks information about + # the key. + raise DigestSignatureError(bucket, key) + + def _create_string_to_sign(self, digest_data, inflated_digest): + previous_signature = digest_data['previousDigestSignature'] + if previous_signature is None: + # The value must be 'null' to match the Java implementation. + previous_signature = 'null' + + string_to_sign = f"{digest_data['digestEndTime']}\n{digest_data['digestS3Bucket']}/{digest_data['digestS3Object']}\n{hashlib.sha256(inflated_digest).hexdigest()}\n{previous_signature}" + LOG.debug(f'Digest string to sign: {string_to_sign}') + return string_to_sign.encode() + + +class CloudTrailValidateLogs(BasicCommand): + """ + Validates log digests and log files, optionally saving them to disk. + """ + + NAME = 'validate-logs' + DESCRIPTION = """ + Validates CloudTrail logs for a given period of time. + + This command uses the digest files delivered to your S3 bucket to perform + the validation. It supports validation of both digest files and + backfill digest files in a single run. + + The AWS CLI allows you to detect the following types of changes: + + - Modification or deletion of CloudTrail log files. + - Modification or deletion of CloudTrail digest files. + + To validate log files with the AWS CLI, the following preconditions must + be met: + + - You must have online connectivity to AWS. + - You must have read access to the S3 bucket that contains the digest and + log files. + - The digest and log files must not have been moved from the original S3 + location where CloudTrail delivered them. + - For organization trails you must have access to describe-organization to + validate digest files + + When you disable Log File Validation, the chain of digest files is broken + after one hour. CloudTrail will not digest log files that were delivered + during a period in which the Log File Validation feature was disabled. + For example, if you enable Log File Validation on January 1, disable it + on January 2, and re-enable it on January 10, digest files will not be + created for the log files delivered from January 3 to January 9. The same + applies whenever you stop CloudTrail logging or delete a trail. + + .. note:: + + Log files that have been downloaded to local disk cannot be validated + with the AWS CLI. The CLI will download all log files each time this + command is executed. + + .. note:: + + This command requires that the role executing the command has + permission to call ListObjects, GetObject, and GetBucketLocation for + each bucket referenced by the trail. + + """ + + ARG_TABLE = [ + { + 'name': 'trail-arn', + 'required': True, + 'cli_type_name': 'string', + 'help_text': 'Specifies the ARN of the trail to be validated', + }, + { + 'name': 'start-time', + 'required': True, + 'cli_type_name': 'string', + 'help_text': ( + 'Specifies that log files delivered on or after the ' + 'specified UTC timestamp value will be validated. ' + 'Example: "2015-01-08T05:21:42Z".' + ), + }, + { + 'name': 'end-time', + 'cli_type_name': 'string', + 'help_text': ( + 'Optionally specifies that log files delivered on or ' + 'before the specified UTC timestamp value will be ' + 'validated. The default value is the current time. ' + 'Example: "2015-01-08T12:31:41Z".' + ), + }, + { + 'name': 's3-bucket', + 'cli_type_name': 'string', + 'help_text': ( + 'Optionally specifies the S3 bucket where the digest ' + 'files are stored. If a bucket name is not specified, ' + 'the CLI will retrieve it by calling describe_trails' + ), + }, + { + 'name': 's3-prefix', + 'cli_type_name': 'string', + 'help_text': ( + 'Optionally specifies the optional S3 prefix where the ' + 'digest files are stored. If not specified, the CLI ' + 'will determine the prefix automatically by calling ' + 'describe_trails.' + ), + }, + { + 'name': 'account-id', + 'cli_type_name': 'string', + 'help_text': ( + 'Optionally specifies the account for validating logs. ' + 'This parameter is needed for organization trails ' + 'for validating logs for specific account inside an ' + 'organization' + ), + }, + { + 'name': 'verbose', + 'cli_type_name': 'boolean', + 'action': 'store_true', + 'help_text': 'Display verbose log validation information', + }, + ] + + def __init__(self, session): + super().__init__(session) + self.trail_arn = None + self.is_verbose = False + self.start_time = None + self.end_time = None + self.s3_bucket = None + self.s3_prefix = None + self.s3_client_provider = None + self.cloudtrail_client = None + self.account_id = None + self._source_region = None + self._valid_digests = 0 + self._invalid_digests = 0 + self._valid_backfill_digests = 0 + self._invalid_backfill_digests = 0 + self._valid_logs = 0 + self._invalid_logs = 0 + self._is_last_status_double_space = True + self._found_start_time = None + self._found_end_time = None + + def _run_main(self, args, parsed_globals): + self.handle_args(args) + self.setup_services(parsed_globals) + self._call() + total_invalid_digests = ( + self._invalid_digests + self._invalid_backfill_digests + ) + if total_invalid_digests > 0 or self._invalid_logs > 0: + return 1 + return 0 + + def handle_args(self, args): + self.trail_arn = args.trail_arn + self.is_verbose = args.verbose + self.s3_bucket = args.s3_bucket + self.s3_prefix = args.s3_prefix + self.account_id = args.account_id + self.start_time = normalize_date(parse_date(args.start_time)) + if args.end_time: + self.end_time = normalize_date(parse_date(args.end_time)) + else: + self.end_time = normalize_date(get_current_datetime()) + if self.start_time > self.end_time: + raise ValueError( + 'Invalid time range specified: start-time must ' + 'occur before end-time' + ) + + def setup_services(self, parsed_globals): + self._source_region = parsed_globals.region + # Use the the same region as the region of the CLI to get locations. + self.s3_client_provider = S3ClientProvider( + self._session, self._source_region + ) + client_args = { + 'region_name': parsed_globals.region, + 'verify': parsed_globals.verify_ssl, + } + self.organization_client = create_nested_client( + self._session, 'organizations', **client_args + ) + + if parsed_globals.endpoint_url is not None: + client_args['endpoint_url'] = parsed_globals.endpoint_url + self.cloudtrail_client = create_nested_client( + self._session, 'cloudtrail', **client_args + ) + + def _call(self): + traverser = create_digest_traverser( + trail_arn=self.trail_arn, + cloudtrail_client=self.cloudtrail_client, + organization_client=self.organization_client, + trail_source_region=self._source_region, + s3_client_provider=self.s3_client_provider, + bucket=self.s3_bucket, + prefix=self.s3_prefix, + on_missing=self._on_missing_digest, + on_invalid=self._on_invalid_digest, + on_gap=self._on_digest_gap, + account_id=self.account_id, + ) + self._write_startup_text() + + digests = traverser.traverse_digests( + self.start_time, self.end_time, is_backfill=False + ) + for digest in digests: + # Only valid digests are yielded and only valid digests can adjust + # the found times that are reported in the CLI output summary. + self._track_found_times(digest) + + self._valid_digests += 1 + + self._write_status( + f'Digest file\ts3://{digest["digestS3Bucket"]}/{digest["digestS3Object"]}\tvalid' + ) + + if not digest['logFiles']: + continue + for log in digest['logFiles']: + self._download_log(log) + + backfill_digests = traverser.traverse_digests( + self.start_time, self.end_time, is_backfill=True + ) + for digest in backfill_digests: + # Only valid digests are yielded and only valid digests can adjust + # the found times that are reported in the CLI output summary. + self._track_found_times(digest) + + self._valid_backfill_digests += 1 + + self._write_status( + f'(backfill) Digest file\ts3://{digest["digestS3Bucket"]}/{digest["digestS3Object"]}\tvalid' + ) + + if not digest['logFiles']: + continue + for log in digest['logFiles']: + self._download_log(log) + + self._write_summary_text() + + def _track_found_times(self, digest): + # Track the earliest found start time, but do not use a date before + # the user supplied start date. + digest_start_time = parse_date(digest['digestStartTime']) + earliest_start_time = max(digest_start_time, self.start_time) + if ( + not self._found_start_time + or earliest_start_time < self._found_start_time + ): + self._found_start_time = earliest_start_time + # Track the latest found end time from all digest types, but do not exceed + # the user supplied end time (or the current date). + digest_end_time = parse_date(digest['digestEndTime']) + latest_end_time = min(digest_end_time, self.end_time) + if not self._found_end_time or latest_end_time > self._found_end_time: + self._found_end_time = latest_end_time + + def _download_log(self, log): + """Download a log, decompress, and compare SHA256 checksums""" + try: + # Create a client that can work with this bucket. + client = self.s3_client_provider.get_client(log['s3Bucket']) + response = client.get_object( + Bucket=log['s3Bucket'], Key=log['s3Object'] + ) + gzip_inflater = zlib.decompressobj(zlib.MAX_WBITS | 16) + rolling_hash = hashlib.sha256() + for chunk in iter(lambda: response['Body'].read(2048), b""): + data = gzip_inflater.decompress(chunk) + rolling_hash.update(data) + remaining_data = gzip_inflater.flush() + if remaining_data: + rolling_hash.update(remaining_data) + computed_hash = rolling_hash.hexdigest() + if computed_hash != log['hashValue']: + self._on_log_invalid(log) + else: + self._valid_logs += 1 + self._write_status( + f'Log file\ts3://{log["s3Bucket"]}/{log["s3Object"]}\tvalid' + ) + except ClientError as e: + if e.response['Error']['Code'] != 'NoSuchKey': + raise + self._on_missing_log(log) + except Exception: + self._on_invalid_log_format(log) + + def _write_status(self, message, is_error=False): + if is_error: + if self._is_last_status_double_space: + sys.stderr.write(f"{message}\n\n") + else: + sys.stderr.write(f"\n{message}\n\n") + self._is_last_status_double_space = True + elif self.is_verbose: + self._is_last_status_double_space = False + sys.stdout.write(f"{message}\n") + + def _write_startup_text(self): + sys.stdout.write( + f'Validating log files for trail {self.trail_arn} between {format_display_date(self.start_time)} and {format_display_date(self.end_time)}\n\n' + ) + + def _write_summary_text(self): + if not self._is_last_status_double_space: + sys.stdout.write('\n') + sys.stdout.write( + f'Results requested for {format_display_date(self.start_time)} to {format_display_date(self.end_time)}\n' + ) + + total_valid_digests = ( + self._valid_digests + self._valid_backfill_digests + ) + total_invalid_digests = ( + self._invalid_digests + self._invalid_backfill_digests + ) + + if not total_valid_digests and not total_invalid_digests: + sys.stdout.write('No digests found\n') + return + if not self._found_start_time or not self._found_end_time: + sys.stdout.write('No valid digests found in range\n') + else: + sys.stdout.write( + f'Results found for {format_display_date(self._found_start_time)} to {format_display_date(self._found_end_time)}:\n' + ) + + self._write_ratio(self._valid_digests, self._invalid_digests, 'digest') + self._write_ratio( + self._valid_backfill_digests, + self._invalid_backfill_digests, + 'backfill digest', + ) + self._write_ratio(self._valid_logs, self._invalid_logs, 'log') + + sys.stdout.write('\n') + + def _write_ratio(self, valid, invalid, name): + total = valid + invalid + if total > 0: + sys.stdout.write(f'\n{valid}/{total} {name} files valid') + if invalid > 0: + sys.stdout.write(f', {invalid}/{total} {name} files INVALID') + + def _on_missing_digest( + self, bucket, last_key, is_backfill=False, **kwargs + ): + if is_backfill: + self._invalid_backfill_digests += 1 + else: + self._invalid_digests += 1 + digest_type = '(backfill) ' if is_backfill else '' + self._write_status( + f'{digest_type}Digest file\ts3://{bucket}/{last_key}\tINVALID: not found', + True, + ) + + def _on_digest_gap(self, is_backfill=False, **kwargs): + log_type = '(backfill) ' if is_backfill else '' + self._write_status( + f'{log_type}No log files were delivered by CloudTrail between {format_display_date(kwargs["next_end_date"])} and {format_display_date(kwargs["last_start_date"])}', + True, + ) + + def _on_invalid_digest(self, message, is_backfill=False, **kwargs): + if is_backfill: + self._invalid_backfill_digests += 1 + else: + self._invalid_digests += 1 + digest_type = '(backfill) ' if is_backfill else '' + self._write_status(f'{digest_type}{message}', True) + + def _on_invalid_log_format(self, log_data): + self._invalid_logs += 1 + self._write_status( + f'Log file\ts3://{log_data["s3Bucket"]}/{log_data["s3Object"]}\tINVALID: invalid format', + True, + ) + + def _on_log_invalid(self, log_data): + self._invalid_logs += 1 + self._write_status( + f"Log file\ts3://{log_data['s3Bucket']}/{log_data['s3Object']}\tINVALID: hash value doesn't match", + True, + ) + + def _on_missing_log(self, log_data): + self._invalid_logs += 1 + self._write_status( + f'Log file\ts3://{log_data["s3Bucket"]}/{log_data["s3Object"]}\tINVALID: not found', + True, + ) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codeartifact/__init__.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codeartifact/__init__.py new file mode 100644 index 000000000..29d5d90bc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codeartifact/__init__.py @@ -0,0 +1,11 @@ +from awscli.customizations.codeartifact.login import CodeArtifactLogin + + +def register_codeartifact_commands(event_emitter): + event_emitter.register( + 'building-command-table.codeartifact', inject_commands + ) + + +def inject_commands(command_table, session, **kwargs): + command_table['login'] = CodeArtifactLogin(session) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codeartifact/__pycache__/__init__.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codeartifact/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 000000000..d84352775 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codeartifact/__pycache__/__init__.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codeartifact/__pycache__/login.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codeartifact/__pycache__/login.cpython-312.pyc new file mode 100644 index 000000000..335b0dd43 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codeartifact/__pycache__/login.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codeartifact/login.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codeartifact/login.py new file mode 100644 index 000000000..40a6bfc4d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codeartifact/login.py @@ -0,0 +1,833 @@ +import errno +import os +import platform +import sys +import subprocess +import re + +from datetime import datetime +from dateutil.tz import tzutc +from dateutil.relativedelta import relativedelta +from botocore.utils import parse_timestamp + +from awscli.compat import ( + is_windows, urlparse, RawConfigParser, StringIO, + get_stderr_encoding, is_macos +) +from awscli.customizations import utils as cli_utils +from awscli.customizations.commands import BasicCommand +from awscli.customizations.utils import uni_print + + +def get_relative_expiration_time(remaining): + values = [] + prev_non_zero_attr = False + for attr in ["years", "months", "days", "hours", "minutes"]: + value = getattr(remaining, attr) + if value > 0: + if prev_non_zero_attr: + values.append("and") + values.append(str(value)) + values.append(attr[:-1] if value == 1 else attr) + if prev_non_zero_attr: + break + prev_non_zero_attr = value > 0 + + message = " ".join(values) + return message + + +class CommandFailedError(Exception): + def __init__(self, called_process_error, auth_token): + msg = str(called_process_error).replace(auth_token, '******') + if called_process_error.stderr is not None: + msg +=( + f' Stderr from command:\n' + f'{called_process_error.stderr.decode(get_stderr_encoding())}' + ) + Exception.__init__(self, msg) + + +class BaseLogin(object): + _TOOL_NOT_FOUND_MESSAGE = '%s was not found. Please verify installation.' + + def __init__(self, auth_token, expiration, repository_endpoint, + domain, repository, subprocess_utils, namespace=None): + self.auth_token = auth_token + self.expiration = expiration + self.repository_endpoint = repository_endpoint + self.domain = domain + self.repository = repository + self.subprocess_utils = subprocess_utils + self.namespace = namespace + + def login(self, dry_run=False): + raise NotImplementedError('login()') + + def _dry_run_commands(self, tool, commands): + for command in commands: + sys.stdout.write(' '.join(command)) + sys.stdout.write(os.linesep) + sys.stdout.write(os.linesep) + + def _write_success_message(self, tool): + # add extra 30 seconds make expiration more reasonable + # for some corner case + # e.g. 11 hours 59 minutes 31 seconds should output --> 12 hours. + remaining = relativedelta( + self.expiration, datetime.now(tzutc())) + relativedelta(seconds=30) + expiration_message = get_relative_expiration_time(remaining) + + sys.stdout.write('Successfully configured {} to use ' + 'AWS CodeArtifact repository {} ' + .format(tool, self.repository_endpoint)) + sys.stdout.write(os.linesep) + sys.stdout.write('Login expires in {} at {}'.format( + expiration_message, self.expiration)) + sys.stdout.write(os.linesep) + + def _run_commands(self, tool, commands, dry_run=False): + if dry_run: + self._dry_run_commands(tool, commands) + return + + for command in commands: + self._run_command(tool, command) + + self._write_success_message(tool) + + def _run_command(self, tool, command, *, ignore_errors=False): + try: + self.subprocess_utils.run( + command, + capture_output=True, + check=True + ) + except subprocess.CalledProcessError as ex: + if not ignore_errors: + raise CommandFailedError(ex, self.auth_token) + except OSError as ex: + if ex.errno == errno.ENOENT: + raise ValueError( + self._TOOL_NOT_FOUND_MESSAGE % tool + ) + raise ex + + @classmethod + def get_commands(cls, endpoint, auth_token, **kwargs): + raise NotImplementedError('get_commands()') + + +class SwiftLogin(BaseLogin): + + DEFAULT_NETRC_FMT = \ + u'machine {hostname} login token password {auth_token}' + + NETRC_REGEX_FMT = \ + r'(?P\bmachine\s+{escaped_hostname}\s+login\s+\S+\s+password\s+)' \ + r'(?P\S+)' + + def login(self, dry_run=False): + scope = self.get_scope( + self.namespace + ) + commands = self.get_commands( + self.repository_endpoint, self.auth_token, scope=scope + ) + + if not is_macos: + hostname = urlparse.urlparse(self.repository_endpoint).hostname + new_entry = self.DEFAULT_NETRC_FMT.format( + hostname=hostname, + auth_token=self.auth_token + ) + if dry_run: + self._display_new_netrc_entry(new_entry, self.get_netrc_path()) + else: + self._update_netrc_entry(hostname, new_entry, self.get_netrc_path()) + + self._run_commands('swift', commands, dry_run) + + def _display_new_netrc_entry(self, new_entry, netrc_path): + sys.stdout.write('Dryrun mode is enabled, not writing to netrc.') + sys.stdout.write(os.linesep) + sys.stdout.write( + f'The following line would have been written to {netrc_path}:' + ) + sys.stdout.write(os.linesep) + sys.stdout.write(os.linesep) + sys.stdout.write(new_entry) + sys.stdout.write(os.linesep) + sys.stdout.write(os.linesep) + sys.stdout.write('And would have run the following commands:') + sys.stdout.write(os.linesep) + sys.stdout.write(os.linesep) + + def _update_netrc_entry(self, hostname, new_entry, netrc_path): + pattern = re.compile( + self.NETRC_REGEX_FMT.format(escaped_hostname=re.escape(hostname)), + re.M + ) + if not os.path.isfile(netrc_path): + self._create_netrc_file(netrc_path, new_entry) + else: + with open(netrc_path, 'r') as f: + contents = f.read() + escaped_auth_token = self.auth_token.replace('\\', r'\\') + new_contents = re.sub( + pattern, + rf"\g{escaped_auth_token}", + contents + ) + + if new_contents == contents: + new_contents = self._append_netrc_entry(new_contents, new_entry) + + fd = os.open(netrc_path, + os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o600) + + try: + os.chmod(netrc_path, 0o600) # Ensure secure perms on pre-existing files + except OSError as e: + uni_print('Unable to set file permissions ' + 'for %s: %s%s' % (netrc_path, e, os.linesep), + sys.stderr) + + with os.fdopen(fd, 'w') as f: + f.write(new_contents) + + def _create_netrc_file(self, netrc_path, new_entry): + dirname = os.path.split(netrc_path)[0] + if not os.path.isdir(dirname): + os.makedirs(dirname) + with os.fdopen(os.open(netrc_path, + os.O_WRONLY | os.O_CREAT, 0o600), 'w') as f: + f.write(new_entry + '\n') + + def _append_netrc_entry(self, contents, new_entry): + if contents.endswith('\n'): + return contents + new_entry + '\n' + else: + return contents + '\n' + new_entry + '\n' + + @classmethod + def get_netrc_path(cls): + return os.path.join(os.path.expanduser("~"), ".netrc") + + @classmethod + def get_scope(cls, namespace): + # Regex for valid scope name + valid_scope_name = re.compile( + r'\A[a-zA-Z0-9](?:[a-zA-Z0-9]|-(?=[a-zA-Z0-9])){0,38}\Z' + ) + + if namespace is None: + return namespace + + if not valid_scope_name.match(namespace): + raise ValueError( + 'Invalid scope name, scope must contain URL-safe ' + 'characters, no leading dots or underscores and no ' + 'more than 39 characters' + ) + + return namespace + + @classmethod + def get_commands(cls, endpoint, auth_token, **kwargs): + commands = [] + scope = kwargs.get('scope') + + # Set up the codeartifact repository as the swift registry. + set_registry_command = [ + 'swift', 'package-registry', 'set', endpoint + ] + if scope is not None: + set_registry_command.extend(['--scope', scope]) + commands.append(set_registry_command) + + # Authenticate against the repository. + # We will write token to .netrc for Linux and Windows + # MacOS will store the token from command line option to Keychain + login_registry_command = [ + 'swift', 'package-registry', 'login', f'{endpoint}login' + ] + if is_macos: + login_registry_command.extend(['--token', auth_token]) + commands.append(login_registry_command) + + return commands + + +class NuGetBaseLogin(BaseLogin): + _NUGET_INDEX_URL_FMT = '{endpoint}v3/index.json' + + # When adding new sources we can specify that we added the source to the + # user level NuGet.Config file. However, when updating an existing source + # we cannot be specific about which level NuGet.Config file was updated + # because it is possible that the existing source was not in the user + # level NuGet.Config. The source listing command returns all configured + # sources from all NuGet.Config levels. The update command updates the + # source in whichever NuGet.Config file the source was found. + _SOURCE_ADDED_MESSAGE = 'Added source %s to the user level NuGet.Config\n' + _SOURCE_UPDATED_MESSAGE = 'Updated source %s in the NuGet.Config\n' + # Example line the below regex should match: + # 1. nuget.org [Enabled] + _SOURCE_REGEX = re.compile(r'^\d+\.\s(?P.+)\s\[.*\]') + + def login(self, dry_run=False): + try: + source_to_url_dict = self._get_source_to_url_dict() + except OSError as ex: + if ex.errno == errno.ENOENT: + raise ValueError( + self._TOOL_NOT_FOUND_MESSAGE % self._get_tool_name() + ) + raise ex + + nuget_index_url = self._NUGET_INDEX_URL_FMT.format( + endpoint=self.repository_endpoint + ) + source_name, already_exists = self._get_source_name( + nuget_index_url, source_to_url_dict + ) + + if already_exists: + command = self._get_configure_command( + 'update', nuget_index_url, source_name + ) + source_configured_message = self._SOURCE_UPDATED_MESSAGE + else: + command = self._get_configure_command('add', nuget_index_url, source_name) + source_configured_message = self._SOURCE_ADDED_MESSAGE + + if dry_run: + dry_run_command = ' '.join([str(cd) for cd in command]) + uni_print(dry_run_command) + uni_print('\n') + return + + try: + self.subprocess_utils.run( + command, + capture_output=True, + check=True + ) + except subprocess.CalledProcessError as e: + uni_print('Failed to update the NuGet.Config\n') + raise CommandFailedError(e, self.auth_token) + + uni_print(source_configured_message % source_name) + self._write_success_message('nuget') + + def _get_source_to_url_dict(self): + """ + Parses the output of the nuget sources list command. + + A dict is created where the keys are the source names + and the values the corresponding URL. + + The output of the command can contain header and footer information + around the 'Registered Sources' section, which is ignored. + + Example output that is parsed: + + Registered Sources: + + 1. Source Name 1 [Enabled] + https://source1.com/index.json + 2. Source Name 2 [Disabled] + https://source2.com/index.json + 100. Source Name 100 [Activé] + https://source100.com/index.json + """ + response = self.subprocess_utils.check_output( + self._get_list_command(), + stderr=self.subprocess_utils.PIPE + ) + + lines = response.decode(os.device_encoding(1) or "utf-8").splitlines() + lines = [line for line in lines if line.strip() != ''] + + source_to_url_dict = {} + for i in range(len(lines)): + result = self._SOURCE_REGEX.match(lines[i].strip()) + if result: + source_to_url_dict[result["source_name"].strip()] = \ + lines[i + 1].strip() + + return source_to_url_dict + + def _get_source_name(self, codeartifact_url, source_dict): + default_name = '{}/{}'.format(self.domain, self.repository) + + # Check if the CodeArtifact URL is already present in the + # NuGet.Config file. If the URL already exists, use the source name + # already assigned to the CodeArtifact URL. + for source_name, source_url in source_dict.items(): + if source_url == codeartifact_url: + return source_name, True + + # If the CodeArtifact URL is not present in the NuGet.Config file, + # check if the default source name already exists so we can know + # whether we need to add a new entry or update the existing entry. + for source_name in source_dict.keys(): + if source_name == default_name: + return source_name, True + + # If neither the source url nor the source name already exist in the + # NuGet.Config file, use the default source name. + return default_name, False + + def _get_tool_name(self): + raise NotImplementedError('_get_tool_name()') + + def _get_list_command(self): + raise NotImplementedError('_get_list_command()') + + def _get_configure_command(self, operation, nuget_index_url, source_name): + raise NotImplementedError('_get_configure_command()') + + +class NuGetLogin(NuGetBaseLogin): + + def _get_tool_name(self): + return 'nuget' + + def _get_list_command(self): + return ['nuget', 'sources', 'list', '-format', 'detailed'] + + def _get_configure_command(self, operation, nuget_index_url, source_name): + return [ + 'nuget', 'sources', operation, + '-name', source_name, + '-source', nuget_index_url, + '-username', 'aws', + '-password', self.auth_token + ] + + +class DotNetLogin(NuGetBaseLogin): + + def _get_tool_name(self): + return 'dotnet' + + def _get_list_command(self): + return ['dotnet', 'nuget', 'list', 'source', '--format', 'detailed'] + + def _get_configure_command(self, operation, nuget_index_url, source_name): + command = ['dotnet', 'nuget', operation, 'source'] + + if operation == 'add': + command.append(nuget_index_url) + command += ['--name', source_name] + else: + command.append(source_name) + command += ['--source', nuget_index_url] + + command += [ + '--username', 'aws', + '--password', self.auth_token + ] + + # Encryption is not supported on non-Windows platforms. + if not is_windows: + command.append('--store-password-in-clear-text') + + return command + + +class NpmLogin(BaseLogin): + + # On Windows we need to be explicit about the .cmd file to execute + # (unless we execute through the shell, i.e. with shell=True). + NPM_CMD = 'npm.cmd' if platform.system().lower() == 'windows' else 'npm' + + def login(self, dry_run=False): + scope = self.get_scope( + self.namespace + ) + commands = self.get_commands( + self.repository_endpoint, self.auth_token, scope=scope + ) + self._run_commands('npm', commands, dry_run) + + def _run_command(self, tool, command): + ignore_errors = any('always-auth' in arg for arg in command) + super()._run_command(tool, command, ignore_errors=ignore_errors) + + @classmethod + def get_scope(cls, namespace): + # Regex for valid scope name + valid_scope_name = re.compile('^(@[a-z0-9-~][a-z0-9-._~]*)') + + if namespace is None: + return namespace + + # Add @ prefix to scope if it doesn't exist + if namespace.startswith('@'): + scope = namespace + else: + scope = '@{}'.format(namespace) + + if not valid_scope_name.match(scope): + raise ValueError( + 'Invalid scope name, scope must contain URL-safe ' + 'characters, no leading dots or underscores' + ) + + return scope + + @classmethod + def get_commands(cls, endpoint, auth_token, **kwargs): + commands = [] + scope = kwargs.get('scope') + + # prepend scope if it exists + registry = '{}:registry'.format(scope) if scope else 'registry' + + # set up the codeartifact repository as the npm registry. + commands.append( + [cls.NPM_CMD, 'config', 'set', registry, endpoint] + ) + + repo_uri = urlparse.urlsplit(endpoint) + + # configure npm to always require auth for the repository. + always_auth_config = '//{}{}:always-auth'.format( + repo_uri.netloc, repo_uri.path + ) + commands.append( + [cls.NPM_CMD, 'config', 'set', always_auth_config, 'true'] + ) + + # set auth info for the repository. + auth_token_config = '//{}{}:_authToken'.format( + repo_uri.netloc, repo_uri.path + ) + commands.append( + [cls.NPM_CMD, 'config', 'set', auth_token_config, auth_token] + ) + + return commands + + +class PipLogin(BaseLogin): + + PIP_INDEX_URL_FMT = '{scheme}://aws:{auth_token}@{netloc}{path}simple/' + + def login(self, dry_run=False): + commands = self.get_commands( + self.repository_endpoint, self.auth_token + ) + self._run_commands('pip', commands, dry_run) + + @classmethod + def get_commands(cls, endpoint, auth_token, **kwargs): + repo_uri = urlparse.urlsplit(endpoint) + pip_index_url = cls.PIP_INDEX_URL_FMT.format( + scheme=repo_uri.scheme, + auth_token=auth_token, + netloc=repo_uri.netloc, + path=repo_uri.path + ) + + return [['pip', 'config', 'set', 'global.index-url', pip_index_url]] + + +class TwineLogin(BaseLogin): + + DEFAULT_PYPI_RC_FMT = u'''\ +[distutils] +index-servers= + pypi + codeartifact + +[codeartifact] +repository: {repository_endpoint} +username: aws +password: {auth_token}''' + + def __init__( + self, + auth_token, + expiration, + repository_endpoint, + domain, + repository, + subprocess_utils, + pypi_rc_path=None + ): + if pypi_rc_path is None: + pypi_rc_path = self.get_pypi_rc_path() + self.pypi_rc_path = pypi_rc_path + super(TwineLogin, self).__init__( + auth_token, expiration, repository_endpoint, + domain, repository, subprocess_utils) + + @classmethod + def get_commands(cls, endpoint, auth_token, **kwargs): + # TODO(ujjwalpa@): We don't really have a command to execute for Twine + # as we directly write to the pypirc file (or to stdout for dryrun) + # with python itself instead. Nevertheless, we're using this method for + # testing so we'll keep the interface for now but return a string with + # the expected pypirc content instead of a list of commands to + # execute. This definitely reeks of code smell and there is probably + # room for rethinking and refactoring the interfaces of these adapter + # helper classes in the future. + + assert 'pypi_rc_path' in kwargs, 'pypi_rc_path must be provided.' + pypi_rc_path = kwargs['pypi_rc_path'] + + default_pypi_rc = cls.DEFAULT_PYPI_RC_FMT.format( + repository_endpoint=endpoint, + auth_token=auth_token + ) + + pypi_rc = RawConfigParser() + if os.path.exists(pypi_rc_path): + try: + pypi_rc.read(pypi_rc_path) + index_servers = pypi_rc.get('distutils', 'index-servers') + servers = [ + server.strip() + for server in index_servers.split('\n') + if server.strip() != '' + ] + + if 'codeartifact' not in servers: + servers.append('codeartifact') + pypi_rc.set( + 'distutils', 'index-servers', '\n' + '\n'.join(servers) + ) + + if 'codeartifact' not in pypi_rc.sections(): + pypi_rc.add_section('codeartifact') + + pypi_rc.set('codeartifact', 'repository', endpoint) + pypi_rc.set('codeartifact', 'username', 'aws') + pypi_rc.set('codeartifact', 'password', auth_token) + except Exception as e: # invalid .pypirc file + sys.stdout.write('%s is in an invalid state.' % pypi_rc_path) + sys.stdout.write(os.linesep) + raise e + else: + pypi_rc.read_string(default_pypi_rc) + + pypi_rc_stream = StringIO() + pypi_rc.write(pypi_rc_stream) + pypi_rc_str = pypi_rc_stream.getvalue() + pypi_rc_stream.close() + + return pypi_rc_str + + def login(self, dry_run=False): + # No command to execute for Twine, we get the expected pypirc content + # instead. + pypi_rc_str = self.get_commands( + self.repository_endpoint, + self.auth_token, + pypi_rc_path=self.pypi_rc_path + ) + + if dry_run: + sys.stdout.write('Dryrun mode is enabled, not writing to pypirc.') + sys.stdout.write(os.linesep) + sys.stdout.write( + '%s would have been set to the following:' % self.pypi_rc_path + ) + sys.stdout.write(os.linesep) + sys.stdout.write(os.linesep) + sys.stdout.write(pypi_rc_str) + sys.stdout.write(os.linesep) + else: + fd = os.open(self.pypi_rc_path, + os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o600) + + try: + os.chmod(self.pypi_rc_path, 0o600) # Ensure secure perms on pre-existing files + except OSError as e: + uni_print('Unable to set file permissions ' + 'for %s: %s%s' % (self.pypi_rc_path, e, os.linesep), + sys.stderr) + + with os.fdopen(fd, 'w') as fp: + fp.write(pypi_rc_str) + + self._write_success_message('twine') + + @classmethod + def get_pypi_rc_path(cls): + return os.path.join(os.path.expanduser("~"), ".pypirc") + + +class CodeArtifactLogin(BasicCommand): + '''Log in to the idiomatic tool for the requested package format.''' + + TOOL_MAP = { + 'swift': { + 'package_format': 'swift', + 'login_cls': SwiftLogin, + 'namespace_support': True, + }, + 'nuget': { + 'package_format': 'nuget', + 'login_cls': NuGetLogin, + 'namespace_support': False, + }, + 'dotnet': { + 'package_format': 'nuget', + 'login_cls': DotNetLogin, + 'namespace_support': False, + }, + 'npm': { + 'package_format': 'npm', + 'login_cls': NpmLogin, + 'namespace_support': True, + }, + 'pip': { + 'package_format': 'pypi', + 'login_cls': PipLogin, + 'namespace_support': False, + }, + 'twine': { + 'package_format': 'pypi', + 'login_cls': TwineLogin, + 'namespace_support': False, + } + } + + NAME = 'login' + + DESCRIPTION = ( + 'Sets up the idiomatic tool for your package format to use your ' + 'CodeArtifact repository. Your login information is valid for up ' + 'to 12 hours after which you must login again.' + ) + + ARG_TABLE = [ + { + 'name': 'tool', + 'help_text': 'The tool you want to connect with your repository', + 'choices': list(TOOL_MAP.keys()), + 'required': True, + }, + { + 'name': 'domain', + 'help_text': 'Your CodeArtifact domain name', + 'required': True, + }, + { + 'name': 'domain-owner', + 'help_text': 'The AWS account ID that owns your CodeArtifact ' + 'domain', + 'required': False, + }, + { + 'name': 'namespace', + 'help_text': 'Associates a namespace with your repository tool', + 'required': False, + }, + { + 'name': 'duration-seconds', + 'cli_type_name': 'integer', + 'help_text': 'The time, in seconds, that the login information ' + 'is valid', + 'required': False, + }, + { + 'name': 'repository', + 'help_text': 'Your CodeArtifact repository name', + 'required': True, + }, + { + 'name': 'endpoint-type', + 'help_text': 'The type of endpoint you want the tool to interact with', + 'required': False + }, + { + 'name': 'dry-run', + 'action': 'store_true', + 'help_text': 'Only print the commands that would be executed ' + 'to connect your tool with your repository without ' + 'making any changes to your configuration. Note that ' + 'this prints the unredacted auth token as part of the output', + 'required': False, + 'default': False + }, + ] + + def _get_namespace(self, tool, parsed_args): + namespace_compatible = self.TOOL_MAP[tool]['namespace_support'] + + if not namespace_compatible and parsed_args.namespace: + raise ValueError( + 'Argument --namespace is not supported for {}'.format(tool) + ) + else: + return parsed_args.namespace + + def _get_repository_endpoint( + self, codeartifact_client, parsed_args, package_format + ): + kwargs = { + 'domain': parsed_args.domain, + 'repository': parsed_args.repository, + 'format': package_format + } + if parsed_args.endpoint_type: + kwargs['endpointType'] = parsed_args.endpoint_type + if parsed_args.domain_owner: + kwargs['domainOwner'] = parsed_args.domain_owner + + get_repository_endpoint_response = \ + codeartifact_client.get_repository_endpoint(**kwargs) + + return get_repository_endpoint_response['repositoryEndpoint'] + + def _get_authorization_token(self, codeartifact_client, parsed_args): + kwargs = { + 'domain': parsed_args.domain + } + if parsed_args.domain_owner: + kwargs['domainOwner'] = parsed_args.domain_owner + + if parsed_args.duration_seconds: + kwargs['durationSeconds'] = parsed_args.duration_seconds + + get_authorization_token_response = \ + codeartifact_client.get_authorization_token(**kwargs) + + return get_authorization_token_response + + def _run_main(self, parsed_args, parsed_globals): + tool = parsed_args.tool.lower() + + package_format = self.TOOL_MAP[tool]['package_format'] + + codeartifact_client = cli_utils.create_client_from_parsed_globals( + self._session, 'codeartifact', parsed_globals + ) + + auth_token_res = self._get_authorization_token( + codeartifact_client, parsed_args + ) + + repository_endpoint = self._get_repository_endpoint( + codeartifact_client, parsed_args, package_format + ) + + domain = parsed_args.domain + repository = parsed_args.repository + namespace = self._get_namespace(tool, parsed_args) + + auth_token = auth_token_res['authorizationToken'] + expiration = parse_timestamp(auth_token_res['expiration']) + login = self.TOOL_MAP[tool]['login_cls']( + auth_token, expiration, repository_endpoint, + domain, repository, subprocess, namespace + ) + + login.login(parsed_args.dry_run) + + return 0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codecommit.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codecommit.py new file mode 100644 index 000000000..f9c6ad731 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codecommit.py @@ -0,0 +1,192 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import os +import re +import sys +import logging +import fileinput + +from botocore.auth import SigV4Auth +from botocore.awsrequest import AWSRequest +from botocore.compat import urlsplit +from awscli.customizations.commands import BasicCommand +from awscli.compat import NonTranslatedStdout, get_current_datetime + +logger = logging.getLogger('botocore.credentials') + + +def initialize(cli): + """ + The entry point for the credential helper + """ + cli.register('building-command-table.codecommit', inject_commands) + + +def inject_commands(command_table, session, **kwargs): + """ + Injects new commands into the codecommit subcommand. + """ + command_table['credential-helper'] = CodeCommitCommand(session) + + +class CodeCommitNoOpStoreCommand(BasicCommand): + NAME = 'store' + DESCRIPTION = ('This operation does nothing, credentials' + ' are calculated each time') + SYNOPSIS = ('aws codecommit credential-helper store') + EXAMPLES = '' + _UNDOCUMENTED = True + + def _run_main(self, args, parsed_globals): + return 0 + + +class CodeCommitNoOpEraseCommand(BasicCommand): + NAME = 'erase' + DESCRIPTION = ('This operation does nothing, no credentials' + ' are ever stored') + SYNOPSIS = ('aws codecommit credential-helper erase') + EXAMPLES = '' + _UNDOCUMENTED = True + + def _run_main(self, args, parsed_globals): + return 0 + + +class CodeCommitGetCommand(BasicCommand): + NAME = 'get' + DESCRIPTION = ('get a username SigV4 credential pair' + ' based on protocol, host and path provided' + ' from standard in. This is primarily' + ' called by git to generate credentials to' + ' authenticate against AWS CodeCommit') + SYNOPSIS = ('aws codecommit credential-helper get') + EXAMPLES = (r'echo -e "protocol=https\\n' + r'path=/v1/repos/myrepo\\n' + 'host=git-codecommit.us-east-1.amazonaws.com"' + ' | aws codecommit credential-helper get') + ARG_TABLE = [ + { + 'name': 'ignore-host-check', + 'action': 'store_true', + 'default': False, + 'group_name': 'ignore-host-check', + 'help_text': ( + 'Optional. Generate credentials regardless of whether' + ' the domain is an Amazon domain.' + ) + } + ] + + def __init__(self, session): + super(CodeCommitGetCommand, self).__init__(session) + + def _run_main(self, args, parsed_globals): + git_parameters = self.read_git_parameters() + if ('amazon.com' in git_parameters['host'] or + 'amazonaws.com' in git_parameters['host'] or + args.ignore_host_check): + theUrl = self.extract_url(git_parameters) + region = self.extract_region(git_parameters, parsed_globals) + signature = self.sign_request(region, theUrl) + self.write_git_parameters(signature) + return 0 + + def write_git_parameters(self, signature): + username = self._session.get_credentials().access_key + if self._session.get_credentials().token is not None: + username += "%" + self._session.get_credentials().token + # Python will add a \r to the line ending for a text stdout in Windows. + # Git does not like the \r, so switch to binary + with NonTranslatedStdout() as binary_stdout: + binary_stdout.write('username={0}\n'.format(username)) + logger.debug('username\n%s', username) + binary_stdout.write('password={0}\n'.format(signature)) + # need to explicitly flush the buffer here, + # before we turn the stream back to text for windows + binary_stdout.flush() + logger.debug('signature\n%s', signature) + + def read_git_parameters(self): + parsed = {} + for line in sys.stdin: + line = line.strip() + if line: + key, value = line.split('=', 1) + parsed[key] = value + return parsed + + def extract_url(self, parameters): + url = '{0}://{1}/{2}'.format(parameters['protocol'], + parameters['host'], + parameters['path']) + return url + + def extract_region(self, parameters, parsed_globals): + match = re.match(r'(vpce-.+\.)?git-codecommit(-fips)?\.([^.]+)\.(vpce\.)?amazonaws\.com', + parameters['host']) + if match is not None: + return match.group(3) + elif parsed_globals.region is not None: + return parsed_globals.region + else: + return self._session.get_config_variable('region') + + def sign_request(self, region, url_to_sign): + credentials = self._session.get_credentials() + signer = SigV4Auth(credentials, 'codecommit', region) + request = AWSRequest() + request.url = url_to_sign + request.method = 'GIT' + now = get_current_datetime() + request.context['timestamp'] = now.strftime('%Y%m%dT%H%M%S') + split = urlsplit(request.url) + # we don't want to include the port number in the signature + hostname = split.netloc.split(':')[0] + canonical_request = '{0}\n{1}\n\nhost:{2}\n\nhost\n'.format( + request.method, + split.path, + hostname) + logger.debug("Calculating signature using v4 auth.") + logger.debug('CanonicalRequest:\n%s', canonical_request) + string_to_sign = signer.string_to_sign(request, canonical_request) + logger.debug('StringToSign:\n%s', string_to_sign) + signature = signer.signature(string_to_sign, request) + logger.debug('Signature:\n%s', signature) + return '{0}Z{1}'.format(request.context['timestamp'], signature) + + +class CodeCommitCommand(BasicCommand): + NAME = 'credential-helper' + SYNOPSIS = ('aws codecommit credential-helper') + EXAMPLES = '' + + SUBCOMMANDS = [ + {'name': 'get', 'command_class': CodeCommitGetCommand}, + {'name': 'store', 'command_class': CodeCommitNoOpStoreCommand}, + {'name': 'erase', 'command_class': CodeCommitNoOpEraseCommand}, + ] + DESCRIPTION = ('Provide a SigV4 compatible user name and' + ' password for git smart HTTP ' + ' These commands are consumed by git and' + ' should not used directly. Erase and Store' + ' are no-ops. Get is operation to generate' + ' credentials to authenticate AWS CodeCommit.' + ' Run \"aws codecommit credential-helper help\"' + ' for details') + + def _run_main(self, args, parsed_globals): + raise ValueError('usage: aws [options] codecommit' + ' credential-helper ' + '[parameters]\naws: error: too few arguments') diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__init__.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__init__.py new file mode 100644 index 000000000..d16f112a1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__init__.py @@ -0,0 +1,12 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/__init__.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 000000000..5ad77e10e Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/__init__.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/codedeploy.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/codedeploy.cpython-312.pyc new file mode 100644 index 000000000..bcc0e49a7 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/codedeploy.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/deregister.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/deregister.cpython-312.pyc new file mode 100644 index 000000000..9a6e8550d Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/deregister.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/install.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/install.cpython-312.pyc new file mode 100644 index 000000000..f23a23e20 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/install.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/locationargs.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/locationargs.cpython-312.pyc new file mode 100644 index 000000000..cbd72fe93 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/locationargs.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/push.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/push.cpython-312.pyc new file mode 100644 index 000000000..4da285899 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/push.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/register.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/register.cpython-312.pyc new file mode 100644 index 000000000..7077a2c18 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/register.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/systems.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/systems.cpython-312.pyc new file mode 100644 index 000000000..ea50879d9 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/systems.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/uninstall.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/uninstall.cpython-312.pyc new file mode 100644 index 000000000..6e9606d60 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/uninstall.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/utils.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/utils.cpython-312.pyc new file mode 100644 index 000000000..5cecb5219 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/__pycache__/utils.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/codedeploy.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/codedeploy.py new file mode 100644 index 000000000..df6d2f5be --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/codedeploy.py @@ -0,0 +1,65 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +from awscli.customizations import utils +from awscli.customizations.codedeploy.locationargs import \ + modify_revision_arguments +from awscli.customizations.codedeploy.push import Push +from awscli.customizations.codedeploy.register import Register +from awscli.customizations.codedeploy.deregister import Deregister +from awscli.customizations.codedeploy.install import Install +from awscli.customizations.codedeploy.uninstall import Uninstall + + +def initialize(cli): + """ + The entry point for CodeDeploy high level commands. + """ + cli.register( + 'building-command-table.main', + change_name + ) + cli.register( + 'building-command-table.deploy', + inject_commands + ) + cli.register( + 'building-argument-table.deploy.get-application-revision', + modify_revision_arguments + ) + cli.register( + 'building-argument-table.deploy.register-application-revision', + modify_revision_arguments + ) + cli.register( + 'building-argument-table.deploy.create-deployment', + modify_revision_arguments + ) + + +def change_name(command_table, session, **kwargs): + """ + Change all existing 'aws codedeploy' commands to 'aws deploy' commands. + """ + utils.rename_command(command_table, 'codedeploy', 'deploy') + + +def inject_commands(command_table, session, **kwargs): + """ + Inject custom 'aws deploy' commands. + """ + command_table['push'] = Push(session) + command_table['register'] = Register(session) + command_table['deregister'] = Deregister(session) + command_table['install'] = Install(session) + command_table['uninstall'] = Uninstall(session) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/deregister.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/deregister.py new file mode 100644 index 000000000..b1b300e74 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/deregister.py @@ -0,0 +1,169 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import sys + +from botocore.exceptions import ClientError + +from awscli.customizations.commands import BasicCommand +from awscli.customizations.codedeploy.utils import \ + validate_region, validate_instance_name, INSTANCE_NAME_ARG +from awscli.utils import create_nested_client + + +class Deregister(BasicCommand): + NAME = 'deregister' + + DESCRIPTION = ( + 'Removes any tags from the on-premises instance; deregisters the ' + 'on-premises instance from AWS CodeDeploy; and, unless requested ' + 'otherwise, deletes the IAM user for the on-premises instance.' + ) + + ARG_TABLE = [ + INSTANCE_NAME_ARG, + { + 'name': 'no-delete-iam-user', + 'action': 'store_true', + 'default': False, + 'help_text': ( + 'Optional. Do not delete the IAM user for the registered ' + 'on-premises instance.' + ) + } + ] + + def _run_main(self, parsed_args, parsed_globals): + params = parsed_args + params.session = self._session + validate_region(params, parsed_globals) + validate_instance_name(params) + + self.codedeploy = create_nested_client( + self._session, + 'codedeploy', + region_name=params.region, + endpoint_url=parsed_globals.endpoint_url, + verify=parsed_globals.verify_ssl + ) + self.iam = create_nested_client( + self._session, + 'iam', + region_name=params.region + ) + + try: + self._get_instance_info(params) + if params.tags: + self._remove_tags(params) + self._deregister_instance(params) + if not params.no_delete_iam_user: + self._delete_user_policy(params) + self._delete_access_key(params) + self._delete_iam_user(params) + sys.stdout.write( + 'Run the following command on the on-premises instance to ' + 'uninstall the codedeploy-agent:\n' + 'aws deploy uninstall\n' + ) + except Exception as e: + sys.stdout.flush() + sys.stderr.write( + 'ERROR\n' + '{0}\n' + 'Deregister the on-premises instance by following the ' + 'instructions in "Configure Existing On-Premises Instances by ' + 'Using AWS CodeDeploy" in the AWS CodeDeploy User ' + 'Guide.\n'.format(e) + ) + + def _get_instance_info(self, params): + sys.stdout.write('Retrieving on-premises instance information... ') + response = self.codedeploy.get_on_premises_instance( + instanceName=params.instance_name + ) + params.iam_user_arn = response['instanceInfo']['iamUserArn'] + start = params.iam_user_arn.rfind('/') + 1 + params.user_name = params.iam_user_arn[start:] + params.tags = response['instanceInfo']['tags'] + sys.stdout.write( + 'DONE\n' + 'IamUserArn: {0}\n'.format( + params.iam_user_arn + ) + ) + if params.tags: + sys.stdout.write('Tags:') + for tag in params.tags: + sys.stdout.write( + ' Key={0},Value={1}'.format(tag['Key'], tag['Value']) + ) + sys.stdout.write('\n') + + def _remove_tags(self, params): + sys.stdout.write('Removing tags from the on-premises instance... ') + self.codedeploy.remove_tags_from_on_premises_instances( + tags=params.tags, + instanceNames=[params.instance_name] + ) + sys.stdout.write('DONE\n') + + def _deregister_instance(self, params): + sys.stdout.write('Deregistering the on-premises instance... ') + self.codedeploy.deregister_on_premises_instance( + instanceName=params.instance_name + ) + sys.stdout.write('DONE\n') + + def _delete_user_policy(self, params): + sys.stdout.write('Deleting the IAM user policies... ') + list_user_policies = self.iam.get_paginator('list_user_policies') + try: + for response in list_user_policies.paginate( + UserName=params.user_name): + for policy_name in response['PolicyNames']: + self.iam.delete_user_policy( + UserName=params.user_name, + PolicyName=policy_name + ) + except ClientError as e: + if e.response.get('Error', {}).get('Code') != 'NoSuchEntity': + raise e + sys.stdout.write('DONE\n') + + def _delete_access_key(self, params): + sys.stdout.write('Deleting the IAM user access keys... ') + list_access_keys = self.iam.get_paginator('list_access_keys') + try: + for response in list_access_keys.paginate( + UserName=params.user_name): + for access_key in response['AccessKeyMetadata']: + self.iam.delete_access_key( + UserName=params.user_name, + AccessKeyId=access_key['AccessKeyId'] + ) + except ClientError as e: + if e.response.get('Error', {}).get('Code') != 'NoSuchEntity': + raise e + sys.stdout.write('DONE\n') + + def _delete_iam_user(self, params): + sys.stdout.write('Deleting the IAM user ({0})... '.format( + params.user_name + )) + try: + self.iam.delete_user(UserName=params.user_name) + except ClientError as e: + if e.response.get('Error', {}).get('Code') != 'NoSuchEntity': + raise e + sys.stdout.write('DONE\n') diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/install.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/install.py new file mode 100644 index 000000000..c729af791 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/install.py @@ -0,0 +1,120 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import errno +import os +import shutil +import sys + +from awscli.customizations.commands import BasicCommand +from awscli.customizations.codedeploy.utils import \ + validate_region, validate_s3_location, validate_instance + + +class Install(BasicCommand): + NAME = 'install' + + DESCRIPTION = ( + 'Configures and installs the AWS CodeDeploy Agent on the on-premises ' + 'instance.' + ) + + ARG_TABLE = [ + { + 'name': 'config-file', + 'synopsis': '--config-file ', + 'required': True, + 'help_text': ( + 'Required. The path to the on-premises instance configuration ' + 'file.' + ) + }, + { + 'name': 'override-config', + 'action': 'store_true', + 'default': False, + 'help_text': ( + 'Optional. Overrides the on-premises instance configuration ' + 'file.' + ) + }, + { + 'name': 'agent-installer', + 'synopsis': '--agent-installer ', + 'required': False, + 'help_text': ( + 'Optional. The AWS CodeDeploy Agent installer file.' + ) + } + ] + + def _run_main(self, parsed_args, parsed_globals): + params = parsed_args + params.session = self._session + validate_region(params, parsed_globals) + validate_instance(params) + params.system.validate_administrator() + self._validate_override_config(params) + self._validate_agent_installer(params) + + try: + self._create_config(params) + self._install_agent(params) + except Exception as e: + sys.stdout.flush() + sys.stderr.write( + 'ERROR\n' + '{0}\n' + 'Install the AWS CodeDeploy Agent on the on-premises instance ' + 'by following the instructions in "Configure Existing ' + 'On-Premises Instances by Using AWS CodeDeploy" in the AWS ' + 'CodeDeploy User Guide.\n'.format(e) + ) + + def _validate_override_config(self, params): + if os.path.isfile(params.system.CONFIG_PATH) and \ + not params.override_config: + raise RuntimeError( + 'The on-premises instance configuration file already exists. ' + 'Specify --override-config to update the existing on-premises ' + 'instance configuration file.' + ) + + def _validate_agent_installer(self, params): + validate_s3_location(params, 'agent_installer') + if 'bucket' not in params: + params.bucket = 'aws-codedeploy-{0}'.format(params.region) + if 'key' not in params: + params.key = 'latest/{0}'.format(params.system.INSTALLER) + params.installer = params.system.INSTALLER + else: + start = params.key.rfind('/') + 1 + params.installer = params.key[start:] + + def _create_config(self, params): + sys.stdout.write( + 'Creating the on-premises instance configuration file... ' + ) + try: + os.makedirs(params.system.CONFIG_DIR) + except OSError as e: + if e.errno != errno.EEXIST: + raise e + if params.config_file != params.system.CONFIG_PATH: + shutil.copyfile(params.config_file, params.system.CONFIG_PATH) + sys.stdout.write('DONE\n') + + def _install_agent(self, params): + sys.stdout.write('Installing the AWS CodeDeploy Agent... ') + params.system.install(params) + sys.stdout.write('DONE\n') diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/locationargs.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/locationargs.py new file mode 100644 index 000000000..b1ac405f2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/locationargs.py @@ -0,0 +1,175 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +from awscli.argprocess import unpack_cli_arg +from awscli.arguments import CustomArgument +from awscli.arguments import create_argument_model_from_schema + +S3_LOCATION_ARG_DESCRIPTION = { + 'name': 's3-location', + 'required': False, + 'help_text': ( + 'Information about the location of the application revision in Amazon ' + 'S3. You must specify the bucket, the key, and bundleType. ' + 'Optionally, you can also specify an eTag and version.' + ) +} + +S3_LOCATION_SCHEMA = { + "type": "object", + "properties": { + "bucket": { + "type": "string", + "description": "The Amazon S3 bucket name.", + "required": True + }, + "key": { + "type": "string", + "description": "The Amazon S3 object key name.", + "required": True + }, + "bundleType": { + "type": "string", + "description": "The format of the bundle stored in Amazon S3.", + "enum": ["tar", "tgz", "zip"], + "required": True + }, + "eTag": { + "type": "string", + "description": "The Amazon S3 object eTag.", + "required": False + }, + "version": { + "type": "string", + "description": "The Amazon S3 object version.", + "required": False + } + } +} + +GITHUB_LOCATION_ARG_DESCRIPTION = { + 'name': 'github-location', + 'required': False, + 'help_text': ( + 'Information about the location of the application revision in ' + 'GitHub. You must specify the repository and commit ID that ' + 'references the application revision. For the repository, use the ' + 'format GitHub-account/repository-name or GitHub-org/repository-name. ' + 'For the commit ID, use the SHA1 Git commit reference.' + ) +} + +GITHUB_LOCATION_SCHEMA = { + "type": "object", + "properties": { + "repository": { + "type": "string", + "description": ( + "The GitHub account or organization and repository. Specify " + "as GitHub-account/repository or GitHub-org/repository." + ), + "required": True + }, + "commitId": { + "type": "string", + "description": "The SHA1 Git commit reference.", + "required": True + } + } +} + + +def modify_revision_arguments(argument_table, session, **kwargs): + s3_model = create_argument_model_from_schema(S3_LOCATION_SCHEMA) + argument_table[S3_LOCATION_ARG_DESCRIPTION['name']] = ( + S3LocationArgument( + argument_model=s3_model, + session=session, + **S3_LOCATION_ARG_DESCRIPTION + ) + ) + github_model = create_argument_model_from_schema(GITHUB_LOCATION_SCHEMA) + argument_table[GITHUB_LOCATION_ARG_DESCRIPTION['name']] = ( + GitHubLocationArgument( + argument_model=github_model, + session=session, + **GITHUB_LOCATION_ARG_DESCRIPTION + ) + ) + argument_table['revision'].required = False + + +class LocationArgument(CustomArgument): + def __init__(self, session, *args, **kwargs): + super(LocationArgument, self).__init__(*args, **kwargs) + self._session = session + + def add_to_params(self, parameters, value): + if value is None: + return + parsed = self._session.emit_first_non_none_response( + 'process-cli-arg.codedeploy.%s' % self.name, + param=self.argument_model, + cli_argument=self, + value=value, + operation=None + ) + if parsed is None: + parsed = unpack_cli_arg(self, value) + parameters['revision'] = self.build_revision_location(parsed) + + def build_revision_location(self, value_dict): + """ + Repack the input structure into a revisionLocation. + """ + raise NotImplementedError("build_revision_location") + + +class S3LocationArgument(LocationArgument): + def build_revision_location(self, value_dict): + required = ['bucket', 'key', 'bundleType'] + valid = lambda k: value_dict.get(k, False) + if not all(map(valid, required)): + raise RuntimeError( + '--s3-location must specify bucket, key and bundleType.' + ) + revision = { + "revisionType": "S3", + "s3Location": { + "bucket": value_dict['bucket'], + "key": value_dict['key'], + "bundleType": value_dict['bundleType'] + } + } + if 'eTag' in value_dict: + revision['s3Location']['eTag'] = value_dict['eTag'] + if 'version' in value_dict: + revision['s3Location']['version'] = value_dict['version'] + return revision + + +class GitHubLocationArgument(LocationArgument): + def build_revision_location(self, value_dict): + required = ['repository', 'commitId'] + valid = lambda k: value_dict.get(k, False) + if not all(map(valid, required)): + raise RuntimeError( + '--github-location must specify repository and commitId.' + ) + return { + "revisionType": "GitHub", + "gitHubLocation": { + "repository": value_dict['repository'], + "commitId": value_dict['commitId'] + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/push.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/push.py new file mode 100644 index 000000000..fc92f535e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/push.py @@ -0,0 +1,287 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import os +import sys +import zipfile +import tempfile +import contextlib + +from botocore.exceptions import ClientError + +from awscli.customizations.codedeploy.utils import validate_s3_location +from awscli.customizations.commands import BasicCommand +from awscli.compat import BytesIO, ZIP_COMPRESSION_MODE, get_current_datetime +from awscli.utils import create_nested_client + +ONE_MB = 1 << 20 +MULTIPART_LIMIT = 6 * ONE_MB + + +class Push(BasicCommand): + NAME = 'push' + + DESCRIPTION = ( + 'Bundles and uploads to Amazon Simple Storage Service (Amazon S3) an ' + 'application revision, which is a zip archive file that contains ' + 'deployable content and an accompanying Application Specification ' + 'file (AppSpec file). If the upload is successful, a message is ' + 'returned that describes how to call the create-deployment command to ' + 'deploy the application revision from Amazon S3 to target Amazon ' + 'Elastic Compute Cloud (Amazon EC2) instances.' + ) + + ARG_TABLE = [ + { + 'name': 'application-name', + 'synopsis': '--application-name ', + 'required': True, + 'help_text': ( + 'Required. The name of the AWS CodeDeploy application to be ' + 'associated with the application revision.' + ) + }, + { + 'name': 's3-location', + 'synopsis': '--s3-location s3:///', + 'required': True, + 'help_text': ( + 'Required. Information about the location of the application ' + 'revision to be uploaded to Amazon S3. You must specify both ' + 'a bucket and a key that represent the Amazon S3 bucket name ' + 'and the object key name. Content will be zipped before ' + 'uploading. Use the format s3:///' + ), + }, + { + 'name': 'ignore-hidden-files', + 'action': 'store_true', + 'default': False, + 'group_name': 'ignore-hidden-files', + 'help_text': ( + 'Optional. Set the --ignore-hidden-files flag to not bundle ' + 'and upload hidden files to Amazon S3; otherwise, set the ' + '--no-ignore-hidden-files flag (the default) to bundle and ' + 'upload hidden files to Amazon S3.' + ) + }, + { + 'name': 'no-ignore-hidden-files', + 'action': 'store_true', + 'default': False, + 'group_name': 'ignore-hidden-files' + }, + { + 'name': 'source', + 'synopsis': '--source ', + 'default': '.', + 'help_text': ( + 'Optional. The location of the deployable content and the ' + 'accompanying AppSpec file on the development machine to be ' + 'zipped and uploaded to Amazon S3. If not specified, the ' + 'current directory is used.' + ) + }, + { + 'name': 'description', + 'synopsis': '--description ', + 'help_text': ( + 'Optional. A comment that summarizes the application ' + 'revision. If not specified, the default string "Uploaded by ' + 'AWS CLI \'time\' UTC" is used, where \'time\' is the current ' + 'system time in Coordinated Universal Time (UTC).' + ) + } + ] + + def _run_main(self, parsed_args, parsed_globals): + self._validate_args(parsed_args) + self.codedeploy = create_nested_client( + self._session, + 'codedeploy', + region_name=parsed_globals.region, + endpoint_url=parsed_globals.endpoint_url, + verify=parsed_globals.verify_ssl + ) + self.s3 = create_nested_client( + self._session, + 's3', + region_name=parsed_globals.region + ) + self._push(parsed_args) + + def _validate_args(self, parsed_args): + validate_s3_location(parsed_args, 's3_location') + if parsed_args.ignore_hidden_files \ + and parsed_args.no_ignore_hidden_files: + raise RuntimeError( + 'You cannot specify both --ignore-hidden-files and ' + '--no-ignore-hidden-files.' + ) + if not parsed_args.description: + parsed_args.description = ( + 'Uploaded by AWS CLI {0} UTC'.format( + get_current_datetime().isoformat() + ) + ) + + def _push(self, params): + with self._compress( + params.source, + params.ignore_hidden_files + ) as bundle: + try: + upload_response = self._upload_to_s3(params, bundle) + params.eTag = upload_response['ETag'].replace('"', "") + if 'VersionId' in upload_response: + params.version = upload_response['VersionId'] + except Exception as e: + raise RuntimeError( + 'Failed to upload \'%s\' to \'%s\': %s' % + (params.source, + params.s3_location, + str(e)) + ) + self._register_revision(params) + + if 'version' in params: + version_string = ',version={0}'.format(params.version) + else: + version_string = '' + s3location_string = ( + '--s3-location bucket={0},key={1},' + 'bundleType=zip,eTag={2}{3}'.format( + params.bucket, + params.key, + params.eTag, + version_string + ) + ) + sys.stdout.write( + 'To deploy with this revision, run:\n' + 'aws deploy create-deployment ' + '--application-name {0} {1} ' + '--deployment-group-name ' + '--deployment-config-name ' + '--description \n'.format( + params.application_name, + s3location_string + ) + ) + + @contextlib.contextmanager + def _compress(self, source, ignore_hidden_files=False): + source_path = os.path.abspath(source) + appspec_path = os.path.sep.join([source_path, 'appspec.yml']) + with tempfile.TemporaryFile('w+b') as tf: + zf = zipfile.ZipFile(tf, 'w', allowZip64=True) + # Using 'try'/'finally' instead of 'with' statement since ZipFile + # does not have support context manager in Python 2.6. + try: + contains_appspec = False + for root, dirs, files in os.walk(source, topdown=True): + if ignore_hidden_files: + files = [fn for fn in files if not fn.startswith('.')] + dirs[:] = [dn for dn in dirs if not dn.startswith('.')] + for fn in files: + filename = os.path.join(root, fn) + filename = os.path.abspath(filename) + arcname = filename[len(source_path) + 1:] + if filename == appspec_path: + contains_appspec = True + zf.write(filename, arcname, ZIP_COMPRESSION_MODE) + if not contains_appspec: + raise RuntimeError( + '{0} was not found'.format(appspec_path) + ) + finally: + zf.close() + yield tf + + def _upload_to_s3(self, params, bundle): + size_remaining = self._bundle_size(bundle) + if size_remaining < MULTIPART_LIMIT: + return self.s3.put_object( + Bucket=params.bucket, + Key=params.key, + Body=bundle + ) + else: + return self._multipart_upload_to_s3( + params, + bundle, + size_remaining + ) + + def _bundle_size(self, bundle): + bundle.seek(0, 2) + size = bundle.tell() + bundle.seek(0) + return size + + def _multipart_upload_to_s3(self, params, bundle, size_remaining): + create_response = self.s3.create_multipart_upload( + Bucket=params.bucket, + Key=params.key + ) + upload_id = create_response['UploadId'] + try: + part_num = 1 + multipart_list = [] + bundle.seek(0) + while size_remaining > 0: + data = bundle.read(MULTIPART_LIMIT) + upload_response = self.s3.upload_part( + Bucket=params.bucket, + Key=params.key, + UploadId=upload_id, + PartNumber=part_num, + Body=BytesIO(data) + ) + multipart_list.append({ + 'PartNumber': part_num, + 'ETag': upload_response['ETag'] + }) + part_num += 1 + size_remaining -= len(data) + return self.s3.complete_multipart_upload( + Bucket=params.bucket, + Key=params.key, + UploadId=upload_id, + MultipartUpload={'Parts': multipart_list} + ) + except ClientError as e: + self.s3.abort_multipart_upload( + Bucket=params.bucket, + Key=params.key, + UploadId=upload_id + ) + raise e + + def _register_revision(self, params): + revision = { + 'revisionType': 'S3', + 's3Location': { + 'bucket': params.bucket, + 'key': params.key, + 'bundleType': 'zip', + 'eTag': params.eTag + } + } + if 'version' in params: + revision['s3Location']['version'] = params.version + self.codedeploy.register_application_revision( + applicationName=params.application_name, + revision=revision, + description=params.description + ) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/register.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/register.py new file mode 100644 index 000000000..80dfc9f35 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/register.py @@ -0,0 +1,203 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import os +import sys + +from awscli.customizations.codedeploy.systems import DEFAULT_CONFIG_FILE +from awscli.customizations.codedeploy.utils import ( + IAM_USER_ARN_ARG, + INSTANCE_NAME_ARG, + validate_iam_user_arn, + validate_instance_name, + validate_region, + validate_tags, +) +from awscli.customizations.commands import BasicCommand +from awscli.utils import create_nested_client + + +class Register(BasicCommand): + NAME = 'register' + + DESCRIPTION = ( + "Creates an IAM user for the on-premises instance, if not provided, " + "and saves the user's credentials to an on-premises instance " + "configuration file; registers the on-premises instance with AWS " + "CodeDeploy; and optionally adds tags to the on-premises instance." + ) + + TAGS_SCHEMA = { + "type": "array", + "items": { + "type": "object", + "properties": { + "Key": { + "description": "The tag key.", + "type": "string", + "required": True, + }, + "Value": { + "description": "The tag value.", + "type": "string", + "required": True, + }, + }, + }, + } + + ARG_TABLE = [ + INSTANCE_NAME_ARG, + { + 'name': 'tags', + 'synopsis': '--tags ', + 'required': False, + 'nargs': '+', + 'schema': TAGS_SCHEMA, + 'help_text': ( + 'Optional. The list of key/value pairs to tag the on-premises ' + 'instance.' + ), + }, + IAM_USER_ARN_ARG, + ] + + def _run_main(self, parsed_args, parsed_globals): + params = parsed_args + params.session = self._session + validate_region(params, parsed_globals) + validate_instance_name(params) + validate_tags(params) + validate_iam_user_arn(params) + + self.codedeploy = create_nested_client( + self._session, + 'codedeploy', + region_name=params.region, + endpoint_url=parsed_globals.endpoint_url, + verify=parsed_globals.verify_ssl, + ) + self.iam = create_nested_client( + self._session, 'iam', region_name=params.region + ) + + try: + if not params.iam_user_arn: + self._create_iam_user(params) + self._create_access_key(params) + self._create_user_policy(params) + self._create_config(params) + self._register_instance(params) + if params.tags: + self._add_tags(params) + sys.stdout.write( + f'Copy the on-premises configuration file named {DEFAULT_CONFIG_FILE} to the ' + 'on-premises instance, and run the following command on the ' + 'on-premises instance to install and configure the AWS ' + 'CodeDeploy Agent:\n' + f'aws deploy install --config-file {DEFAULT_CONFIG_FILE}\n' + ) + except Exception as e: + sys.stdout.flush() + sys.stderr.write( + 'ERROR\n' + f'{e}\n' + 'Register the on-premises instance by following the ' + 'instructions in "Configure Existing On-Premises Instances by ' + 'Using AWS CodeDeploy" in the AWS CodeDeploy User ' + 'Guide.\n' + ) + + def _create_iam_user(self, params): + sys.stdout.write('Creating the IAM user... ') + params.user_name = params.instance_name + response = self.iam.create_user( + Path='/AWS/CodeDeploy/', UserName=params.user_name + ) + params.iam_user_arn = response['User']['Arn'] + sys.stdout.write('DONE\n' f'IamUserArn: {params.iam_user_arn}\n') + + def _create_access_key(self, params): + sys.stdout.write('Creating the IAM user access key... ') + response = self.iam.create_access_key(UserName=params.user_name) + params.access_key_id = response['AccessKey']['AccessKeyId'] + params.secret_access_key = response['AccessKey']['SecretAccessKey'] + sys.stdout.write( + 'DONE\n' + f'AccessKeyId: {params.access_key_id}\n' + f'SecretAccessKey: {params.secret_access_key}\n' + ) + + def _create_user_policy(self, params): + sys.stdout.write('Creating the IAM user policy... ') + params.policy_name = 'codedeploy-agent' + params.policy_document = ( + '{\n' + ' "Version": "2012-10-17",\n' + ' "Statement": [ {\n' + ' "Action": [ "s3:Get*", "s3:List*" ],\n' + ' "Effect": "Allow",\n' + ' "Resource": "*"\n' + ' } ]\n' + '}' + ) + self.iam.put_user_policy( + UserName=params.user_name, + PolicyName=params.policy_name, + PolicyDocument=params.policy_document, + ) + sys.stdout.write( + 'DONE\n' + f'PolicyName: {params.policy_name}\n' + f'PolicyDocument: {params.policy_document}\n' + ) + + def _create_config(self, params): + sys.stdout.write( + f'Creating the on-premises instance configuration file named {DEFAULT_CONFIG_FILE}' + '...' + ) + try: + fd = os.open( + DEFAULT_CONFIG_FILE, + os.O_WRONLY | os.O_CREAT | os.O_TRUNC, + 0o600, + ) + with os.fdopen(fd, 'w') as f: + os.chmod(DEFAULT_CONFIG_FILE, 0o600) + f.write( + '---\n' + f'region: {params.region}\n' + f'iam_user_arn: {params.iam_user_arn}\n' + f'aws_access_key_id: {params.access_key_id}\n' + f'aws_secret_access_key: {params.secret_access_key}\n' + ) + except OSError as e: + raise RuntimeError( + f'Failed to create config file {DEFAULT_CONFIG_FILE}: {e}' + ) + sys.stdout.write('DONE\n') + + def _register_instance(self, params): + sys.stdout.write('Registering the on-premises instance... ') + self.codedeploy.register_on_premises_instance( + instanceName=params.instance_name, iamUserArn=params.iam_user_arn + ) + sys.stdout.write('DONE\n') + + def _add_tags(self, params): + sys.stdout.write('Adding tags to the on-premises instance... ') + self.codedeploy.add_tags_to_on_premises_instances( + tags=params.tags, instanceNames=[params.instance_name] + ) + sys.stdout.write('DONE\n') diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/systems.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/systems.py new file mode 100644 index 000000000..19e24f6fb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/systems.py @@ -0,0 +1,237 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import ctypes +import os +import subprocess +from awscli.utils import create_nested_client + +DEFAULT_CONFIG_FILE = 'codedeploy.onpremises.yml' + + +class System: + UNSUPPORTED_SYSTEM_MSG = ( + 'Only Ubuntu Server, Red Hat Enterprise Linux Server and ' + 'Windows Server operating systems are supported.' + ) + + def __init__(self, params): + self.session = params.session + self.s3 = create_nested_client( + self.session, + 's3', + region_name=params.region + ) + + def validate_administrator(self): + raise NotImplementedError('validate_administrator') + + def install(self, params): + raise NotImplementedError('install') + + def uninstall(self, params): + raise NotImplementedError('uninstall') + + +class Windows(System): + CONFIG_DIR = r'C:\ProgramData\Amazon\CodeDeploy' + CONFIG_FILE = 'conf.onpremises.yml' + CONFIG_PATH = r'{0}\{1}'.format(CONFIG_DIR, CONFIG_FILE) + INSTALLER = 'codedeploy-agent.msi' + + def validate_administrator(self): + if not ctypes.windll.shell32.IsUserAnAdmin(): + raise RuntimeError( + 'You must run this command as an Administrator.' + ) + + def install(self, params): + if 'installer' in params: + self.INSTALLER = params.installer + + process = subprocess.Popen( + [ + 'powershell.exe', + '-Command', 'Stop-Service', + '-Name', 'codedeployagent' + ], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE + ) + (output, error) = process.communicate() + not_found = ( + "Cannot find any service with service name 'codedeployagent'" + ) + if process.returncode != 0 and not_found not in error: + raise RuntimeError( + 'Failed to stop the AWS CodeDeploy Agent:\n{0}'.format(error) + ) + + response = self.s3.get_object(Bucket=params.bucket, Key=params.key) + with open(self.INSTALLER, 'wb') as f: + f.write(response['Body'].read()) + + subprocess.check_call( + [ + r'.\{0}'.format(self.INSTALLER), + '/quiet', + '/l', r'.\codedeploy-agent-install-log.txt' + ], + shell=True + ) + subprocess.check_call([ + 'powershell.exe', + '-Command', 'Restart-Service', + '-Name', 'codedeployagent' + ]) + + process = subprocess.Popen( + [ + 'powershell.exe', + '-Command', 'Get-Service', + '-Name', 'codedeployagent' + ], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE + ) + (output, error) = process.communicate() + if "Running" not in output: + raise RuntimeError( + 'The AWS CodeDeploy Agent did not start after installation.' + ) + + def uninstall(self, params): + process = subprocess.Popen( + [ + 'powershell.exe', + '-Command', 'Stop-Service', + '-Name', 'codedeployagent' + ], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE + ) + (output, error) = process.communicate() + not_found = ( + "Cannot find any service with service name 'codedeployagent'" + ) + if process.returncode == 0: + self._remove_agent() + elif not_found not in error: + raise RuntimeError( + 'Failed to stop the AWS CodeDeploy Agent:\n{0}'.format(error) + ) + + def _remove_agent(self): + process = subprocess.Popen( + [ + 'wmic', + 'product', 'where', 'name="CodeDeploy Host Agent"', + 'call', 'uninstall', '/nointeractive' + ], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE + ) + (output, error) = process.communicate() + if process.returncode != 0: + raise RuntimeError( + 'Failed to uninstall the AWS CodeDeploy Agent:\n{0}'.format( + error + ) + ) + + +class Linux(System): + CONFIG_DIR = '/etc/codedeploy-agent/conf' + CONFIG_FILE = DEFAULT_CONFIG_FILE + CONFIG_PATH = '{0}/{1}'.format(CONFIG_DIR, CONFIG_FILE) + INSTALLER = 'install' + + def validate_administrator(self): + if os.geteuid() != 0: + raise RuntimeError('You must run this command as sudo.') + + def install(self, params): + if 'installer' in params: + self.INSTALLER = params.installer + + self._update_system(params) + self._stop_agent(params) + + response = self.s3.get_object(Bucket=params.bucket, Key=params.key) + with open(self.INSTALLER, 'wb') as f: + f.write(response['Body'].read()) + + subprocess.check_call( + ['chmod', '+x', './{0}'.format(self.INSTALLER)] + ) + + credentials = self.session.get_credentials() + environment = os.environ.copy() + environment['AWS_REGION'] = params.region + environment['AWS_ACCESS_KEY_ID'] = credentials.access_key + environment['AWS_SECRET_ACCESS_KEY'] = credentials.secret_key + if credentials.token is not None: + environment['AWS_SESSION_TOKEN'] = credentials.token + subprocess.check_call( + ['./{0}'.format(self.INSTALLER), 'auto'], + env=environment + ) + + def uninstall(self, params): + process = self._stop_agent(params) + if process.returncode == 0: + self._remove_agent(params) + + def _update_system(self, params): + raise NotImplementedError('preinstall') + + def _remove_agent(self, params): + raise NotImplementedError('remove_agent') + + def _stop_agent(self, params): + process = subprocess.Popen( + ['service', 'codedeploy-agent', 'stop'], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE + ) + (output, error) = process.communicate() + if process.returncode != 0 and params.not_found_msg not in error: + raise RuntimeError( + 'Failed to stop the AWS CodeDeploy Agent:\n{0}'.format(error) + ) + return process + + +class Ubuntu(Linux): + def _update_system(self, params): + subprocess.check_call(['apt-get', '-y', 'update']) + subprocess.check_call(['apt-get', '-y', 'install', 'ruby2.0']) + + def _remove_agent(self, params): + subprocess.check_call(['dpkg', '-r', 'codedeploy-agent']) + + def _stop_agent(self, params): + params.not_found_msg = 'codedeploy-agent: unrecognized service' + return Linux._stop_agent(self, params) + + +class RHEL(Linux): + def _update_system(self, params): + subprocess.check_call(['yum', '-y', 'install', 'ruby']) + + def _remove_agent(self, params): + subprocess.check_call(['yum', '-y', 'erase', 'codedeploy-agent']) + + def _stop_agent(self, params): + params.not_found_msg = 'Redirecting to /bin/systemctl stop codedeploy-agent.service' + return Linux._stop_agent(self, params) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/uninstall.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/uninstall.py new file mode 100644 index 000000000..c007ef512 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/uninstall.py @@ -0,0 +1,63 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import os +import sys +import errno + +from awscli.customizations.codedeploy.utils import validate_instance, \ + validate_region +from awscli.customizations.commands import BasicCommand + + +class Uninstall(BasicCommand): + NAME = 'uninstall' + + DESCRIPTION = ( + 'Uninstalls the AWS CodeDeploy Agent from the on-premises instance.' + ) + + def _run_main(self, parsed_args, parsed_globals): + params = parsed_args + params.session = self._session + validate_region(params, parsed_globals) + validate_instance(params) + params.system.validate_administrator() + + try: + self._uninstall_agent(params) + self._delete_config_file(params) + except Exception as e: + sys.stdout.flush() + sys.stderr.write( + 'ERROR\n' + '{0}\n' + 'Uninstall the AWS CodeDeploy Agent on the on-premises ' + 'instance by following the instructions in "Configure ' + 'Existing On-Premises Instances by Using AWS CodeDeploy" in ' + 'the AWS CodeDeploy User Guide.\n'.format(e) + ) + + def _uninstall_agent(self, params): + sys.stdout.write('Uninstalling the AWS CodeDeploy Agent... ') + params.system.uninstall(params) + sys.stdout.write('DONE\n') + + def _delete_config_file(self, params): + sys.stdout.write('Deleting the on-premises instance configuration... ') + try: + os.remove(params.system.CONFIG_PATH) + except OSError as e: + if e.errno != errno.ENOENT: + raise e + sys.stdout.write('DONE\n') diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/utils.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/utils.py new file mode 100644 index 000000000..75c59dcac --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/codedeploy/utils.py @@ -0,0 +1,137 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import platform +import re + +import awscli.compat +from awscli.compat import urlopen, URLError +from awscli.customizations.codedeploy.systems import System, Ubuntu, Windows, RHEL +from socket import timeout + + +MAX_INSTANCE_NAME_LENGTH = 100 +MAX_TAGS_PER_INSTANCE = 10 +MAX_TAG_KEY_LENGTH = 128 +MAX_TAG_VALUE_LENGTH = 256 + +INSTANCE_NAME_PATTERN = r'^[A-Za-z0-9+=,.@_-]+$' +IAM_USER_ARN_PATTERN = r'^arn:aws:iam::[0-9]{12}:user/[A-Za-z0-9/+=,.@_-]+$' + +INSTANCE_NAME_ARG = { + 'name': 'instance-name', + 'synopsis': '--instance-name ', + 'required': True, + 'help_text': ( + 'Required. The name of the on-premises instance.' + ) +} + +IAM_USER_ARN_ARG = { + 'name': 'iam-user-arn', + 'synopsis': '--iam-user-arn ', + 'required': False, + 'help_text': ( + 'Optional. The IAM user associated with the on-premises instance.' + ) +} + + +def validate_region(params, parsed_globals): + if parsed_globals.region: + params.region = parsed_globals.region + else: + params.region = params.session.get_config_variable('region') + if not params.region: + raise RuntimeError('Region not specified.') + + +def validate_instance_name(params): + if params.instance_name: + if not re.match(INSTANCE_NAME_PATTERN, params.instance_name): + raise ValueError('Instance name contains invalid characters.') + if params.instance_name.startswith('i-'): + raise ValueError('Instance name cannot start with \'i-\'.') + if len(params.instance_name) > MAX_INSTANCE_NAME_LENGTH: + raise ValueError( + 'Instance name cannot be longer than {0} characters.'.format( + MAX_INSTANCE_NAME_LENGTH + ) + ) + + +def validate_tags(params): + if params.tags: + if len(params.tags) > MAX_TAGS_PER_INSTANCE: + raise ValueError( + 'Instances can only have a maximum of {0} tags.'.format( + MAX_TAGS_PER_INSTANCE + ) + ) + for tag in params.tags: + if len(tag['Key']) > MAX_TAG_KEY_LENGTH: + raise ValueError( + 'Tag Key cannot be longer than {0} characters.'.format( + MAX_TAG_KEY_LENGTH + ) + ) + if len(tag['Value']) > MAX_TAG_VALUE_LENGTH: + raise ValueError( + 'Tag Value cannot be longer than {0} characters.'.format( + MAX_TAG_VALUE_LENGTH + ) + ) + + +def validate_iam_user_arn(params): + if params.iam_user_arn and \ + not re.match(IAM_USER_ARN_PATTERN, params.iam_user_arn): + raise ValueError('Invalid IAM user ARN.') + + +def validate_instance(params): + if platform.system() == 'Linux': + distribution = awscli.compat.linux_distribution()[0] + if 'Ubuntu' in distribution: + params.system = Ubuntu(params) + if 'Red Hat Enterprise Linux Server' in distribution: + params.system = RHEL(params) + elif platform.system() == 'Windows': + params.system = Windows(params) + if 'system' not in params: + raise RuntimeError( + System.UNSUPPORTED_SYSTEM_MSG + ) + try: + urlopen('http://169.254.169.254/latest/meta-data/', timeout=1) + raise RuntimeError('Amazon EC2 instances are not supported.') + except (URLError, timeout): + pass + + +def validate_s3_location(params, arg_name): + arg_name = arg_name.replace('-', '_') + if arg_name in params: + s3_location = getattr(params, arg_name) + if s3_location: + matcher = re.match('s3://(.+?)/(.+)', str(s3_location)) + if matcher: + params.bucket = matcher.group(1) + params.key = matcher.group(2) + else: + raise ValueError( + '--{0} must specify the Amazon S3 URL format as ' + 's3:///.'.format( + arg_name.replace('_', '-') + ) + ) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/commands.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/commands.py new file mode 100644 index 000000000..8bec70177 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/commands.py @@ -0,0 +1,444 @@ +import logging +import os + +from botocore import model +from botocore.compat import OrderedDict +from botocore.validate import validate_parameters + +import awscli +from awscli.argparser import ArgTableArgParser +from awscli.argprocess import unpack_argument, unpack_cli_arg +from awscli.arguments import CustomArgument, create_argument_model_from_schema +from awscli.clidocs import OperationDocumentEventHandler +from awscli.clidriver import CLICommand +from awscli.bcdoc import docevents +from awscli.help import HelpCommand +from awscli.schema import SchemaTransformer + +LOG = logging.getLogger(__name__) +_open = open + + +class _FromFile(object): + + def __init__(self, *paths, **kwargs): + """ + ``**kwargs`` can contain a ``root_module`` argument + that contains the root module where the file contents + should be searched. This is an optional argument, and if + no value is provided, will default to ``awscli``. This means + that by default we look for examples in the ``awscli`` module. + + """ + self.filename = None + if paths: + self.filename = os.path.join(*paths) + if 'root_module' in kwargs: + self.root_module = kwargs['root_module'] + else: + self.root_module = awscli + + +class BasicCommand(CLICommand): + + """Basic top level command with no subcommands. + + If you want to create a new command, subclass this and + provide the values documented below. + + """ + + # This is the name of your command, so if you want to + # create an 'aws mycommand ...' command, the NAME would be + # 'mycommand' + NAME = 'commandname' + # This is the description that will be used for the 'help' + # command. + DESCRIPTION = 'describe the command' + # This is optional, if you are fine with the default synopsis + # (the way all the built in operations are documented) then you + # can leave this empty. + SYNOPSIS = '' + # If you want to provide some hand written examples, you can do + # so here. This is written in RST format. This is optional, + # you don't have to provide any examples, though highly encouraged! + EXAMPLES = '' + # If your command has arguments, you can specify them here. This is + # somewhat of an implementation detail, but this is a list of dicts + # where the dicts match the kwargs of the CustomArgument's __init__. + # For example, if I want to add a '--argument-one' and an + # '--argument-two' command, I'd say: + # + # ARG_TABLE = [ + # {'name': 'argument-one', 'help_text': 'This argument does foo bar.', + # 'action': 'store', 'required': False, 'cli_type_name': 'string',}, + # {'name': 'argument-two', 'help_text': 'This argument does some other thing.', + # 'action': 'store', 'choices': ['a', 'b', 'c']}, + # ] + # + # A `schema` parameter option is available to accept a custom JSON + # structure as input. See the file `awscli/schema.py` for more info. + ARG_TABLE = [] + # If you want the command to have subcommands, you can provide a list of + # dicts. We use a list here because we want to allow a user to provide + # the order they want to use for subcommands. + # SUBCOMMANDS = [ + # {'name': 'subcommand1', 'command_class': SubcommandClass}, + # {'name': 'subcommand2', 'command_class': SubcommandClass2}, + # ] + # The command_class must subclass from ``BasicCommand``. + SUBCOMMANDS = [] + + FROM_FILE = _FromFile + # You can set the DESCRIPTION, SYNOPSIS, and EXAMPLES to FROM_FILE + # and we'll automatically read in that data from the file. + # This is useful if you have a lot of content and would prefer to keep + # the docs out of the class definition. For example: + # + # DESCRIPTION = FROM_FILE + # + # will set the DESCRIPTION value to the contents of + # awscli/examples//_description.rst + # The naming conventions for these attributes are: + # + # DESCRIPTION = awscli/examples//_description.rst + # SYNOPSIS = awscli/examples//_synopsis.rst + # EXAMPLES = awscli/examples//_examples.rst + # + # You can also provide a relative path and we'll load the file + # from the specified location: + # + # DESCRIPTION = awscli/examples/ + # + # For example: + # + # DESCRIPTION = FROM_FILE('command, 'subcommand, '_description.rst') + # DESCRIPTION = 'awscli/examples/command/subcommand/_description.rst' + # + + # At this point, the only other thing you have to implement is a _run_main + # method (see the method for more information). + + def __init__(self, session): + self._session = session + self._arg_table = None + self._subcommand_table = None + self._lineage = [self] + + def __call__(self, args, parsed_globals): + # args is the remaining unparsed args. + # We might be able to parse these args so we need to create + # an arg parser and parse them. + self._subcommand_table = self._build_subcommand_table() + self._arg_table = self._build_arg_table() + event = 'before-building-argument-table-parser.%s' % \ + ".".join(self.lineage_names) + self._session.emit(event, argument_table=self._arg_table, args=args, + session=self._session, parsed_globals=parsed_globals) + parser = ArgTableArgParser(self.arg_table, self.subcommand_table) + parsed_args, remaining = parser.parse_known_args(args) + + # Unpack arguments + for key, value in vars(parsed_args).items(): + cli_argument = None + + # Convert the name to use dashes instead of underscore + # as these are how the parameters are stored in the + # `arg_table`. + xformed = key.replace('_', '-') + if xformed in self.arg_table: + cli_argument = self.arg_table[xformed] + + value = unpack_argument( + self._session, + 'custom', + self.name, + cli_argument, + value, + parsed_globals + ) + + # If this parameter has a schema defined, then allow plugins + # a chance to process and override its value. + if self._should_allow_plugins_override(cli_argument, value): + override = self._session\ + .emit_first_non_none_response( + 'process-cli-arg.%s.%s' % ('custom', self.name), + cli_argument=cli_argument, value=value, operation=None) + + if override is not None: + # A plugin supplied a conversion + value = override + else: + # Unpack the argument, which is a string, into the + # correct Python type (dict, list, etc) + value = unpack_cli_arg(cli_argument, value) + self._validate_value_against_schema( + cli_argument.argument_model, value) + + setattr(parsed_args, key, value) + + if hasattr(parsed_args, 'help'): + self._display_help(parsed_args, parsed_globals) + elif getattr(parsed_args, 'subcommand', None) is None: + # No subcommand was specified so call the main + # function for this top level command. + if remaining: + raise ValueError("Unknown options: %s" % ','.join(remaining)) + return self._run_main(parsed_args, parsed_globals) + else: + return self.subcommand_table[parsed_args.subcommand](remaining, + parsed_globals) + + def _validate_value_against_schema(self, model, value): + validate_parameters(value, model) + + def _should_allow_plugins_override(self, param, value): + if (param and param.argument_model is not None and + value is not None): + return True + return False + + def _run_main(self, parsed_args, parsed_globals): + # Subclasses should implement this method. + # parsed_globals are the parsed global args (things like region, + # profile, output, etc.) + # parsed_args are any arguments you've defined in your ARG_TABLE + # that are parsed. These will come through as whatever you've + # provided as the 'dest' key. Otherwise they default to the + # 'name' key. For example: ARG_TABLE[0] = {"name": "foo-arg", ...} + # can be accessed by ``parsed_args.foo_arg``. + raise NotImplementedError("_run_main") + + def _build_subcommand_table(self): + subcommand_table = OrderedDict() + for subcommand in self.SUBCOMMANDS: + subcommand_name = subcommand['name'] + subcommand_class = subcommand['command_class'] + subcommand_table[subcommand_name] = subcommand_class(self._session) + self._session.emit('building-command-table.%s' % self.NAME, + command_table=subcommand_table, + session=self._session, + command_object=self) + self._add_lineage(subcommand_table) + return subcommand_table + + def _display_help(self, parsed_args, parsed_globals): + help_command = self.create_help_command() + help_command(parsed_args, parsed_globals) + + def create_help_command(self): + command_help_table = {} + if self.SUBCOMMANDS: + command_help_table = self.create_help_command_table() + return BasicHelp(self._session, self, command_table=command_help_table, + arg_table=self.arg_table) + + def create_help_command_table(self): + """ + Create the command table into a form that can be handled by the + BasicDocHandler. + """ + commands = {} + for command in self.SUBCOMMANDS: + commands[command['name']] = command['command_class'](self._session) + self._add_lineage(commands) + return commands + + def _build_arg_table(self): + arg_table = OrderedDict() + self._session.emit('building-arg-table.%s' % self.NAME, + arg_table=self.ARG_TABLE) + for arg_data in self.ARG_TABLE: + + # If a custom schema was passed in, create the argument_model + # so that it can be validated and docs can be generated. + if 'schema' in arg_data: + argument_model = create_argument_model_from_schema( + arg_data.pop('schema')) + arg_data['argument_model'] = argument_model + custom_argument = CustomArgument(**arg_data) + + arg_table[arg_data['name']] = custom_argument + return arg_table + + def _add_lineage(self, command_table): + for command in command_table: + command_obj = command_table[command] + command_obj.lineage = self.lineage + [command_obj] + + @property + def arg_table(self): + if self._arg_table is None: + self._arg_table = self._build_arg_table() + return self._arg_table + + @property + def subcommand_table(self): + if self._subcommand_table is None: + self._subcommand_table = self._build_subcommand_table() + return self._subcommand_table + + @classmethod + def add_command(cls, command_table, session, **kwargs): + command_table[cls.NAME] = cls(session) + + @property + def name(self): + return self.NAME + + @property + def lineage(self): + return self._lineage + + @lineage.setter + def lineage(self, value): + self._lineage = value + + +class BasicHelp(HelpCommand): + + def __init__(self, session, command_object, command_table, arg_table, + event_handler_class=None): + super(BasicHelp, self).__init__(session, command_object, + command_table, arg_table) + # This is defined in HelpCommand so we're matching the + # casing here. + if event_handler_class is None: + event_handler_class = BasicDocHandler + self.EventHandlerClass = event_handler_class + + # These are public attributes that are mapped from the command + # object. These are used by the BasicDocHandler below. + self._description = command_object.DESCRIPTION + self._synopsis = command_object.SYNOPSIS + self._examples = command_object.EXAMPLES + + @property + def name(self): + return self.obj.NAME + + @property + def description(self): + return self._get_doc_contents('_description') + + @property + def synopsis(self): + return self._get_doc_contents('_synopsis') + + @property + def examples(self): + return self._get_doc_contents('_examples') + + @property + def event_class(self): + return '.'.join(self.obj.lineage_names) + + def _get_doc_contents(self, attr_name): + value = getattr(self, attr_name) + if isinstance(value, BasicCommand.FROM_FILE): + if value.filename is not None: + trailing_path = value.filename + else: + trailing_path = os.path.join(self.name, attr_name + '.rst') + root_module = value.root_module + doc_path = os.path.join( + os.path.abspath(os.path.dirname(root_module.__file__)), + 'examples', trailing_path) + with _open(doc_path) as f: + return f.read() + else: + return value + + def __call__(self, args, parsed_globals): + # Create an event handler for a Provider Document + instance = self.EventHandlerClass(self) + # Now generate all of the events for a Provider document. + # We pass ourselves along so that we can, in turn, get passed + # to all event handlers. + docevents.generate_events(self.session, self) + self.renderer.render(self.doc.getvalue()) + instance.unregister() + + +class BasicDocHandler(OperationDocumentEventHandler): + + def __init__(self, help_command): + super(BasicDocHandler, self).__init__(help_command) + self.doc = help_command.doc + + def doc_description(self, help_command, **kwargs): + self.doc.style.h2('Description') + self.doc.write(help_command.description) + self.doc.style.new_paragraph() + + def doc_synopsis_start(self, help_command, **kwargs): + if not help_command.synopsis: + super(BasicDocHandler, self).doc_synopsis_start( + help_command=help_command, **kwargs) + else: + self.doc.style.h2('Synopsis') + self.doc.style.start_codeblock() + self.doc.writeln(help_command.synopsis) + + def doc_synopsis_option(self, arg_name, help_command, **kwargs): + if not help_command.synopsis: + doc = help_command.doc + argument = help_command.arg_table[arg_name] + if argument.synopsis: + option_str = argument.synopsis + elif argument.group_name in self._arg_groups: + if argument.group_name in self._documented_arg_groups: + # This arg is already documented so we can move on. + return + option_str = ' | '.join( + [a.cli_name for a in + self._arg_groups[argument.group_name]]) + self._documented_arg_groups.append(argument.group_name) + elif argument.cli_type_name == 'boolean': + option_str = '%s' % argument.cli_name + elif argument.nargs == '+': + option_str = "%s [...]" % argument.cli_name + else: + option_str = '%s ' % argument.cli_name + if not (argument.required or argument.positional_arg): + option_str = '[%s]' % option_str + doc.writeln('%s' % option_str) + + else: + # A synopsis has been provided so we don't need to write + # anything here. + pass + + def doc_synopsis_end(self, help_command, **kwargs): + if not help_command.synopsis and not help_command.command_table: + super(BasicDocHandler, self).doc_synopsis_end( + help_command=help_command, **kwargs) + else: + self.doc.style.end_codeblock() + + def doc_global_option(self, help_command, **kwargs): + if not help_command.command_table: + super().doc_global_option(help_command, **kwargs) + + def doc_examples(self, help_command, **kwargs): + if help_command.examples: + self.doc.style.h2('Examples') + self.doc.write(help_command.examples) + + def doc_subitems_start(self, help_command, **kwargs): + if help_command.command_table: + doc = help_command.doc + doc.style.h2('Available Commands') + doc.style.toctree() + + def doc_subitem(self, command_name, help_command, **kwargs): + if help_command.command_table: + doc = help_command.doc + doc.style.tocitem(command_name) + + def doc_subitems_end(self, help_command, **kwargs): + pass + + def doc_output(self, help_command, event_name, **kwargs): + pass diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/__init__.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/__init__.py new file mode 100644 index 000000000..9983f33ea --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/__init__.py @@ -0,0 +1,12 @@ +# Copyright 2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/__pycache__/__init__.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 000000000..cb16fe17f Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/__pycache__/__init__.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/__pycache__/getstatus.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/__pycache__/getstatus.cpython-312.pyc new file mode 100644 index 000000000..f32bd2276 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/__pycache__/getstatus.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/__pycache__/putconfigurationrecorder.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/__pycache__/putconfigurationrecorder.cpython-312.pyc new file mode 100644 index 000000000..a3b5577ce Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/__pycache__/putconfigurationrecorder.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/__pycache__/rename_cmd.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/__pycache__/rename_cmd.cpython-312.pyc new file mode 100644 index 000000000..c791dc3a7 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/__pycache__/rename_cmd.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/__pycache__/subscribe.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/__pycache__/subscribe.cpython-312.pyc new file mode 100644 index 000000000..7eb146d8a Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/__pycache__/subscribe.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/getstatus.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/getstatus.py new file mode 100644 index 000000000..da5119890 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/getstatus.py @@ -0,0 +1,101 @@ +# Copyright 2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import sys + +from awscli.customizations.commands import BasicCommand +from awscli.utils import create_nested_client + +def register_get_status(cli): + cli.register('building-command-table.configservice', add_get_status) + + +def add_get_status(command_table, session, **kwargs): + command_table['get-status'] = GetStatusCommand(session) + + +class GetStatusCommand(BasicCommand): + NAME = 'get-status' + DESCRIPTION = ('Reports the status of all of configuration ' + 'recorders and delivery channels.') + + def __init__(self, session): + self._config_client = None + super(GetStatusCommand, self).__init__(session) + + def _run_main(self, parsed_args, parsed_globals): + self._setup_client(parsed_globals) + self._check_configuration_recorders() + self._check_delivery_channels() + return 0 + + def _setup_client(self, parsed_globals): + client_args = { + 'verify': parsed_globals.verify_ssl, + 'region_name': parsed_globals.region, + 'endpoint_url': parsed_globals.endpoint_url + } + self._config_client = create_nested_client(self._session, 'config', + **client_args) + + def _check_configuration_recorders(self): + status = self._config_client.describe_configuration_recorder_status() + sys.stdout.write('Configuration Recorders:\n\n') + for configuration_recorder in status['ConfigurationRecordersStatus']: + self._check_configure_recorder_status(configuration_recorder) + sys.stdout.write('\n') + + def _check_configure_recorder_status(self, configuration_recorder): + # Get the name of the recorder and print it out. + name = configuration_recorder['name'] + sys.stdout.write('name: %s\n' % name) + + # Get the recording status and print it out. + recording = configuration_recorder['recording'] + recording_map = {False: 'OFF', True: 'ON'} + sys.stdout.write('recorder: %s\n' % recording_map[recording]) + + # If the recorder is on, get the last status and print it out. + if recording: + self._check_last_status(configuration_recorder) + + def _check_delivery_channels(self): + status = self._config_client.describe_delivery_channel_status() + sys.stdout.write('Delivery Channels:\n\n') + for delivery_channel in status['DeliveryChannelsStatus']: + self._check_delivery_channel_status(delivery_channel) + sys.stdout.write('\n') + + def _check_delivery_channel_status(self, delivery_channel): + # Get the name of the delivery channel and print it out. + name = delivery_channel['name'] + sys.stdout.write('name: %s\n' % name) + + # Obtain the various delivery statuses. + stream_delivery = delivery_channel['configStreamDeliveryInfo'] + history_delivery = delivery_channel['configHistoryDeliveryInfo'] + snapshot_delivery = delivery_channel['configSnapshotDeliveryInfo'] + + # Print the statuses out if they exist. + if stream_delivery: + self._check_last_status(stream_delivery, 'stream delivery ') + if history_delivery: + self._check_last_status(history_delivery, 'history delivery ') + if snapshot_delivery: + self._check_last_status(snapshot_delivery, 'snapshot delivery ') + + def _check_last_status(self, status, status_name=''): + last_status = status['lastStatus'] + sys.stdout.write('last %sstatus: %s\n' % (status_name, last_status)) + if last_status == "FAILURE": + sys.stdout.write('error code: %s\n' % status['lastErrorCode']) + sys.stdout.write('message: %s\n' % status['lastErrorMessage']) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/putconfigurationrecorder.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/putconfigurationrecorder.py new file mode 100644 index 000000000..7e8bc4a23 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/putconfigurationrecorder.py @@ -0,0 +1,78 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import copy + +from awscli.arguments import CLIArgument + + +def register_modify_put_configuration_recorder(cli): + cli.register( + 'building-argument-table.configservice.put-configuration-recorder', + extract_recording_group) + + +def extract_recording_group(session, argument_table, **kwargs): + # The purpose of this customization is to extract the recordingGroup + # member from ConfigurationRecorder into its own argument. + # This customization is needed because the recordingGroup member + # breaks the shorthand syntax as it is a structure and not a scalar value. + configuration_recorder_argument = argument_table['configuration-recorder'] + + configuration_recorder_model = copy.deepcopy( + configuration_recorder_argument.argument_model) + recording_group_model = copy.deepcopy( + configuration_recorder_argument.argument_model. + members['recordingGroup']) + + del configuration_recorder_model.members['recordingGroup'] + argument_table['configuration-recorder'] = ConfigurationRecorderArgument( + name='configuration-recorder', + argument_model=configuration_recorder_model, + operation_model=configuration_recorder_argument._operation_model, + is_required=True, + event_emitter=session.get_component('event_emitter'), + serialized_name='ConfigurationRecorder' + ) + + argument_table['recording-group'] = RecordingGroupArgument( + name='recording-group', + argument_model=recording_group_model, + operation_model=configuration_recorder_argument._operation_model, + is_required=False, + event_emitter=session.get_component('event_emitter'), + serialized_name='recordingGroup' + ) + + +class ConfigurationRecorderArgument(CLIArgument): + def add_to_params(self, parameters, value): + if value is None: + return + unpacked = self._unpack_argument(value) + if 'ConfigurationRecorder' in parameters: + current_value = parameters['ConfigurationRecorder'] + current_value.update(unpacked) + else: + parameters['ConfigurationRecorder'] = unpacked + + +class RecordingGroupArgument(CLIArgument): + def add_to_params(self, parameters, value): + if value is None: + return + unpacked = self._unpack_argument(value) + if 'ConfigurationRecorder' in parameters: + parameters['ConfigurationRecorder']['recordingGroup'] = unpacked + else: + parameters['ConfigurationRecorder'] = {} + parameters['ConfigurationRecorder']['recordingGroup'] = unpacked diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/rename_cmd.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/rename_cmd.py new file mode 100644 index 000000000..b56b25c14 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/rename_cmd.py @@ -0,0 +1,25 @@ +# Copyright 2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +from awscli.customizations import utils + + +def register_rename_config(cli): + cli.register('building-command-table.main', change_name) + + +def change_name(command_table, session, **kwargs): + """ + Change all existing ``aws config`` commands to ``aws configservice`` + commands. + """ + utils.rename_command(command_table, 'config', 'configservice') diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/subscribe.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/subscribe.py new file mode 100644 index 000000000..38a391efa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configservice/subscribe.py @@ -0,0 +1,178 @@ +# Copyright 2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import json +import sys + +from awscli.customizations.commands import BasicCommand +from awscli.customizations.utils import s3_bucket_exists +from awscli.customizations.s3.utils import find_bucket_key + + +S3_BUCKET = {'name': 's3-bucket', 'required': True, + 'help_text': ('The S3 bucket that the AWS Config delivery channel' + ' will use. If the bucket does not exist, it will ' + 'be automatically created. The value for this ' + 'argument should follow the form ' + 'bucket/prefix. Note that the prefix is optional.')} + +SNS_TOPIC = {'name': 'sns-topic', 'required': True, + 'help_text': ('The SNS topic that the AWS Config delivery channel' + ' will use. If the SNS topic does not exist, it ' + 'will be automatically created. Value for this ' + 'should be a valid SNS topic name or the ARN of an ' + 'existing SNS topic.')} + +IAM_ROLE = {'name': 'iam-role', 'required': True, + 'help_text': ('The IAM role that the AWS Config configuration ' + 'recorder will use to record current resource ' + 'configurations. Value for this should be the ' + 'ARN of the desired IAM role.')} + + +def register_subscribe(cli): + cli.register('building-command-table.configservice', add_subscribe) + + +def add_subscribe(command_table, session, **kwargs): + command_table['subscribe'] = SubscribeCommand(session) + + +class SubscribeCommand(BasicCommand): + NAME = 'subscribe' + DESCRIPTION = ('Subscribes user to AWS Config by creating an AWS Config ' + 'delivery channel and configuration recorder to track ' + 'AWS resource configurations. The names of the default ' + 'channel and configuration recorder will be default.') + ARG_TABLE = [S3_BUCKET, SNS_TOPIC, IAM_ROLE] + + def __init__(self, session): + self._s3_client = None + self._sns_client = None + self._config_client = None + super(SubscribeCommand, self).__init__(session) + + def _run_main(self, parsed_args, parsed_globals): + # Setup the necessary all of the necessary clients. + self._setup_clients(parsed_globals) + + # Prepare a s3 bucket for use. + s3_bucket_helper = S3BucketHelper(self._s3_client) + bucket, prefix = s3_bucket_helper.prepare_bucket(parsed_args.s3_bucket) + + # Prepare a sns topic for use. + sns_topic_helper = SNSTopicHelper(self._sns_client) + sns_topic_arn = sns_topic_helper.prepare_topic(parsed_args.sns_topic) + + name = 'default' + + # Create a configuration recorder. + self._config_client.put_configuration_recorder( + ConfigurationRecorder={ + 'name': name, + 'roleARN': parsed_args.iam_role + } + ) + + # Create a delivery channel. + delivery_channel = { + 'name': name, + 's3BucketName': bucket, + 'snsTopicARN': sns_topic_arn + } + + if prefix: + delivery_channel['s3KeyPrefix'] = prefix + + self._config_client.put_delivery_channel( + DeliveryChannel=delivery_channel) + + # Start the configuration recorder. + self._config_client.start_configuration_recorder( + ConfigurationRecorderName=name + ) + + # Describe the configuration recorders + sys.stdout.write('Subscribe succeeded:\n\n') + sys.stdout.write('Configuration Recorders: ') + response = self._config_client.describe_configuration_recorders() + sys.stdout.write( + json.dumps(response['ConfigurationRecorders'], indent=4)) + sys.stdout.write('\n\n') + + # Describe the delivery channels + sys.stdout.write('Delivery Channels: ') + response = self._config_client.describe_delivery_channels() + sys.stdout.write(json.dumps(response['DeliveryChannels'], indent=4)) + sys.stdout.write('\n') + + return 0 + + def _setup_clients(self, parsed_globals): + client_args = { + 'verify': parsed_globals.verify_ssl, + 'region_name': parsed_globals.region + } + self._s3_client = self._session.create_client('s3', **client_args) + self._sns_client = self._session.create_client('sns', **client_args) + # Use the specified endpoint only for config related commands. + client_args['endpoint_url'] = parsed_globals.endpoint_url + self._config_client = self._session.create_client('config', + **client_args) + + +class S3BucketHelper(object): + def __init__(self, s3_client): + self._s3_client = s3_client + + def prepare_bucket(self, s3_path): + bucket, key = find_bucket_key(s3_path) + bucket_exists = self._check_bucket_exists(bucket) + if not bucket_exists: + self._create_bucket(bucket) + sys.stdout.write('Using new S3 bucket: %s\n' % bucket) + else: + sys.stdout.write('Using existing S3 bucket: %s\n' % bucket) + return bucket, key + + def _check_bucket_exists(self, bucket): + return s3_bucket_exists(self._s3_client, bucket) + + def _create_bucket(self, bucket): + region_name = self._s3_client.meta.region_name + params = { + 'Bucket': bucket + } + bucket_config = {'LocationConstraint': region_name} + if region_name != 'us-east-1': + params['CreateBucketConfiguration'] = bucket_config + self._s3_client.create_bucket(**params) + + +class SNSTopicHelper(object): + def __init__(self, sns_client): + self._sns_client = sns_client + + def prepare_topic(self, sns_topic): + sns_topic_arn = sns_topic + # Create the topic if a name is given. + if not self._check_is_arn(sns_topic): + response = self._sns_client.create_topic(Name=sns_topic) + sns_topic_arn = response['TopicArn'] + sys.stdout.write('Using new SNS topic: %s\n' % sns_topic_arn) + else: + sys.stdout.write('Using existing SNS topic: %s\n' % sns_topic_arn) + return sns_topic_arn + + def _check_is_arn(self, sns_topic): + # The name of topic cannot contain a colon only arns have colons. + return ':' in sns_topic diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__init__.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__init__.py new file mode 100644 index 000000000..46aeed5f5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__init__.py @@ -0,0 +1,49 @@ +# Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import string +from awscli.compat import shlex + +NOT_SET = '' +PREDEFINED_SECTION_NAMES = ('preview', 'plugins') +_WHITESPACE = ' \t' + + +class ConfigValue(object): + + def __init__(self, value, config_type, config_variable): + self.value = value + self.config_type = config_type + self.config_variable = config_variable + + def mask_value(self): + if self.value is NOT_SET: + return + self.value = mask_value(self.value) + + +class SectionNotFoundError(Exception): + pass + + +def mask_value(current_value): + if current_value is None: + return 'None' + else: + return ('*' * 16) + current_value[-4:] + + +def profile_to_section(profile_name): + """Converts a profile name to a section header to be used in the config.""" + if any(c in _WHITESPACE for c in profile_name): + profile_name = shlex.quote(profile_name) + return 'profile %s' % profile_name diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__pycache__/__init__.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 000000000..c4e4d62a6 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__pycache__/__init__.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__pycache__/addmodel.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__pycache__/addmodel.cpython-312.pyc new file mode 100644 index 000000000..c2ec676bd Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__pycache__/addmodel.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__pycache__/configure.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__pycache__/configure.cpython-312.pyc new file mode 100644 index 000000000..2afe13bd6 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__pycache__/configure.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__pycache__/get.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__pycache__/get.cpython-312.pyc new file mode 100644 index 000000000..b32e39894 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__pycache__/get.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__pycache__/list.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__pycache__/list.cpython-312.pyc new file mode 100644 index 000000000..146123bd6 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__pycache__/list.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__pycache__/set.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__pycache__/set.cpython-312.pyc new file mode 100644 index 000000000..7ebe65464 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__pycache__/set.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__pycache__/writer.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__pycache__/writer.cpython-312.pyc new file mode 100644 index 000000000..fe6f689e3 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/__pycache__/writer.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/addmodel.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/addmodel.py new file mode 100644 index 000000000..566ae9dfc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/addmodel.py @@ -0,0 +1,120 @@ +# Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import json +import os + +from botocore.model import ServiceModel + +from awscli.customizations.commands import BasicCommand + + +def _get_endpoint_prefix_to_name_mappings(session): + # Get the mappings of endpoint prefixes to service names from the + # available service models. + prefixes_to_services = {} + for service_name in session.get_available_services(): + service_model = session.get_service_model(service_name) + prefixes_to_services[service_model.endpoint_prefix] = service_name + return prefixes_to_services + + +def _get_service_name(session, endpoint_prefix): + if endpoint_prefix in session.get_available_services(): + # Check if the endpoint prefix is a pre-existing service. + # If it is, use that endpoint prefix as the service name. + return endpoint_prefix + else: + # The service may have a different endpoint prefix than its name + # So we need to determine what the correct mapping may be. + + # Figure out the mappings of endpoint prefix to service names. + name_mappings = _get_endpoint_prefix_to_name_mappings(session) + # Determine the service name from the mapping. + # If it does not exist in the mapping, return the original endpoint + # prefix. + return name_mappings.get(endpoint_prefix, endpoint_prefix) + + +def get_model_location(session, service_definition, service_name=None): + """Gets the path of where a service-2.json file should go in ~/.aws/models + + :type session: botocore.session.Session + :param session: A session object + + :type service_definition: dict + :param service_definition: The json loaded service definition + + :type service_name: str + :param service_name: The service name to use. If this not provided, + this will be determined from a combination of available services + and the service definition. + + :returns: The path to where are model should be placed based on + the service definition and the current services in botocore. + """ + # Add the ServiceModel abstraction over the service json definition to + # make it easier to work with. + service_model = ServiceModel(service_definition) + + # Determine the service_name if not provided + if service_name is None: + endpoint_prefix = service_model.endpoint_prefix + service_name = _get_service_name(session, endpoint_prefix) + api_version = service_model.api_version + + # For the model location we only want the custom data path (~/.aws/models + # not the one set by AWS_DATA_PATH) + data_path = session.get_component('data_loader').CUSTOMER_DATA_PATH + # Use the version of the model to determine the file's naming convention. + service_model_name = ( + 'service-%d.json' % int( + float(service_definition.get('version', '2.0')))) + return os.path.join(data_path, service_name, api_version, + service_model_name) + + +class AddModelCommand(BasicCommand): + NAME = 'add-model' + DESCRIPTION = ( + 'Adds a service JSON model to the appropriate location in ' + '~/.aws/models. Once the model gets added, CLI commands and Boto3 ' + 'clients will be immediately available for the service JSON model ' + 'provided.' + ) + ARG_TABLE = [ + {'name': 'service-model', 'required': True, 'help_text': ( + 'The contents of the service JSON model.')}, + {'name': 'service-name', 'help_text': ( + 'Overrides the default name used by the service JSON ' + 'model to generate CLI service commands and Boto3 clients.')} + ] + + def _run_main(self, parsed_args, parsed_globals): + service_definition = json.loads(parsed_args.service_model) + + # Get the path to where the model should be written + model_location = get_model_location( + self._session, service_definition, parsed_args.service_name + ) + + # If the service_name/api_version directories do not exist, + # then create them. + model_directory = os.path.dirname(model_location) + if not os.path.exists(model_directory): + os.makedirs(model_directory) + + # Write the model to the specified location + with open(model_location, 'wb') as f: + f.write(parsed_args.service_model.encode('utf-8')) + + return 0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/configure.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/configure.py new file mode 100644 index 000000000..1f2302167 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/configure.py @@ -0,0 +1,141 @@ +# Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import os +import logging + +from botocore.exceptions import ProfileNotFound + +from awscli.compat import compat_input +from awscli.customizations.commands import BasicCommand +from awscli.customizations.configure.addmodel import AddModelCommand +from awscli.customizations.configure.set import ConfigureSetCommand +from awscli.customizations.configure.get import ConfigureGetCommand +from awscli.customizations.configure.list import ConfigureListCommand +from awscli.customizations.configure.writer import ConfigFileWriter + +from . import mask_value, profile_to_section + + +logger = logging.getLogger(__name__) + + +def register_configure_cmd(cli): + cli.register('building-command-table.main', + ConfigureCommand.add_command) + + +class InteractivePrompter(object): + + def get_value(self, current_value, config_name, prompt_text=''): + if config_name in ('aws_access_key_id', 'aws_secret_access_key'): + current_value = mask_value(current_value) + response = compat_input("%s [%s]: " % (prompt_text, current_value)) + if not response: + # If the user hits enter, we return a value of None + # instead of an empty string. That way we can determine + # whether or not a value has changed. + response = None + return response + + +class ConfigureCommand(BasicCommand): + NAME = 'configure' + DESCRIPTION = BasicCommand.FROM_FILE() + SYNOPSIS = ('aws configure [--profile profile-name]') + EXAMPLES = ( + 'To create a new configuration::\n' + '\n' + ' $ aws configure\n' + ' AWS Access Key ID [None]: accesskey\n' + ' AWS Secret Access Key [None]: secretkey\n' + ' Default region name [None]: us-west-2\n' + ' Default output format [None]:\n' + '\n' + 'To update just the region name::\n' + '\n' + ' $ aws configure\n' + ' AWS Access Key ID [****]:\n' + ' AWS Secret Access Key [****]:\n' + ' Default region name [us-west-1]: us-west-2\n' + ' Default output format [None]:\n' + ) + SUBCOMMANDS = [ + {'name': 'list', 'command_class': ConfigureListCommand}, + {'name': 'get', 'command_class': ConfigureGetCommand}, + {'name': 'set', 'command_class': ConfigureSetCommand}, + {'name': 'add-model', 'command_class': AddModelCommand} + ] + + # If you want to add new values to prompt, update this list here. + VALUES_TO_PROMPT = [ + # (logical_name, config_name, prompt_text) + ('aws_access_key_id', "AWS Access Key ID"), + ('aws_secret_access_key', "AWS Secret Access Key"), + ('region', "Default region name"), + ('output', "Default output format"), + ] + + def __init__(self, session, prompter=None, config_writer=None): + super(ConfigureCommand, self).__init__(session) + if prompter is None: + prompter = InteractivePrompter() + self._prompter = prompter + if config_writer is None: + config_writer = ConfigFileWriter() + self._config_writer = config_writer + + def _run_main(self, parsed_args, parsed_globals): + # Called when invoked with no args "aws configure" + new_values = {} + # This is the config from the config file scoped to a specific + # profile. + try: + config = self._session.get_scoped_config() + except ProfileNotFound: + config = {} + for config_name, prompt_text in self.VALUES_TO_PROMPT: + current_value = config.get(config_name) + new_value = self._prompter.get_value(current_value, config_name, + prompt_text) + if new_value is not None and new_value != current_value: + new_values[config_name] = new_value + config_filename = os.path.expanduser( + self._session.get_config_variable('config_file')) + if new_values: + profile = self._session.profile + self._write_out_creds_file_values(new_values, profile) + if profile is not None: + section = profile_to_section(profile) + new_values['__section__'] = section + self._config_writer.update_config(new_values, config_filename) + + def _write_out_creds_file_values(self, new_values, profile_name): + # The access_key/secret_key are now *always* written to the shared + # credentials file (~/.aws/credentials), see aws/aws-cli#847. + # post-conditions: ~/.aws/credentials will have the updated credential + # file values and new_values will have the cred vars removed. + credential_file_values = {} + if 'aws_access_key_id' in new_values: + credential_file_values['aws_access_key_id'] = new_values.pop( + 'aws_access_key_id') + if 'aws_secret_access_key' in new_values: + credential_file_values['aws_secret_access_key'] = new_values.pop( + 'aws_secret_access_key') + if credential_file_values: + if profile_name is not None: + credential_file_values['__section__'] = profile_name + shared_credentials_filename = os.path.expanduser( + self._session.get_config_variable('credentials_file')) + self._config_writer.update_config( + credential_file_values, + shared_credentials_filename) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/get.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/get.py new file mode 100644 index 000000000..1d48e06fa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/get.py @@ -0,0 +1,115 @@ +# Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import sys +import logging + +from awscli.customizations.commands import BasicCommand + +from . import PREDEFINED_SECTION_NAMES + +LOG = logging.getLogger(__name__) + + +class ConfigureGetCommand(BasicCommand): + NAME = 'get' + DESCRIPTION = BasicCommand.FROM_FILE('configure', 'get', + '_description.rst') + SYNOPSIS = 'aws configure get varname [--profile profile-name]' + EXAMPLES = BasicCommand.FROM_FILE('configure', 'get', '_examples.rst') + ARG_TABLE = [ + {'name': 'varname', + 'help_text': 'The name of the config value to retrieve.', + 'action': 'store', + 'cli_type_name': 'string', 'positional_arg': True}, + ] + + def __init__(self, session, stream=None, error_stream=None): + super(ConfigureGetCommand, self).__init__(session) + if stream is None: + stream = sys.stdout + if error_stream is None: + error_stream = sys.stderr + self._stream = stream + self._error_stream = error_stream + + def _run_main(self, args, parsed_globals): + varname = args.varname + + if '.' not in varname: + # get_scoped_config() returns the config variables in the config + # file (not the logical_var names), which is what we want. + config = self._session.get_scoped_config() + value = config.get(varname) + else: + value = self._get_dotted_config_value(varname) + + LOG.debug(u'Config value retrieved: %s' % value) + + if isinstance(value, str): + self._stream.write(value) + self._stream.write('\n') + return 0 + elif isinstance(value, dict): + # TODO: add support for this. We would need to print it off in + # the same format as the config file. + self._error_stream.write( + 'varname (%s) must reference a value, not a section or ' + 'sub-section.' % varname + ) + return 1 + else: + return 1 + + def _get_dotted_config_value(self, varname): + parts = varname.split('.') + num_dots = varname.count('.') + + # Logic to deal with predefined sections like [preview], [plugin] and + # etc. + if num_dots == 1 and parts[0] in PREDEFINED_SECTION_NAMES: + full_config = self._session.full_config + section, config_name = varname.split('.') + value = full_config.get(section, {}).get(config_name) + if value is None: + # Try to retrieve it from the profile config. + value = full_config['profiles'].get( + section, {}).get(config_name) + return value + + if parts[0] == 'profile': + profile_name = parts[1] + config_name = parts[2] + remaining = parts[3:] + # Check if varname starts with 'default' profile (e.g. + # default.emr-dev.emr.instance_profile) If not, go further to check + # if varname starts with a known profile name + elif parts[0] == 'default' or ( + parts[0] in self._session.full_config['profiles']): + profile_name = parts[0] + config_name = parts[1] + remaining = parts[2:] + else: + profile_name = self._session.get_config_variable('profile') + if profile_name is None: + profile_name = 'default' + config_name = parts[0] + remaining = parts[1:] + + value = self._session.full_config['profiles'].get( + profile_name, {}).get(config_name) + if len(remaining) == 1: + try: + value = value.get(remaining[-1]) + except AttributeError: + value = None + return value diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/list.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/list.py new file mode 100644 index 000000000..b703453e3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/list.py @@ -0,0 +1,127 @@ +# Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import sys + +from awscli.customizations.commands import BasicCommand + +from . import ConfigValue, NOT_SET + + +class ConfigureListCommand(BasicCommand): + NAME = 'list' + DESCRIPTION = ( + 'Lists the profile, access key, secret key, and region configuration ' + 'information used for the specified profile. For each configuration ' + 'item, it shows the value, where the configuration value ' + 'was retrieved, and the configuration variable name.\n' + '\n' + 'For example, ' + 'if you provide the AWS region in an environment variable, this ' + 'command shows you the name of the region you\'ve configured, ' + 'that this value came from an environment ' + 'variable, and the name of the environment ' + 'variable.\n' + '\n' + 'For temporary credential methods such as roles and IAM Identity ' + 'Center, this command displays the temporarily cached access key and ' + 'secret access key is displayed.\n' + ) + SYNOPSIS = 'aws configure list [--profile profile-name]' + EXAMPLES = ( + 'To show your current configuration values::\n' + '\n' + ' $ aws configure list\n' + ' Name Value Type Location\n' + ' ---- ----- ---- --------\n' + ' profile None None\n' + ' access_key ****************ABCD config_file ~/.aws/config\n' + ' secret_key ****************ABCD config_file ~/.aws/config\n' + ' region us-west-2 env AWS_DEFAULT_REGION\n' + '\n' + ) + + def __init__(self, session, stream=None): + super(ConfigureListCommand, self).__init__(session) + if stream is None: + stream = sys.stdout + self._stream = stream + + def _run_main(self, args, parsed_globals): + self._display_config_value(ConfigValue('Value', 'Type', 'Location'), + 'Name') + self._display_config_value(ConfigValue('-----', '----', '--------'), + '----') + + if parsed_globals and parsed_globals.profile is not None: + profile = ConfigValue(self._session.profile, 'manual', '--profile') + else: + profile = self._lookup_config('profile') + self._display_config_value(profile, 'profile') + + access_key, secret_key = self._lookup_credentials() + self._display_config_value(access_key, 'access_key') + self._display_config_value(secret_key, 'secret_key') + + region = self._lookup_config('region') + self._display_config_value(region, 'region') + return 0 + + def _display_config_value(self, config_value, config_name): + self._stream.write('%10s %24s %16s %s\n' % ( + config_name, config_value.value, config_value.config_type, + config_value.config_variable)) + + def _lookup_credentials(self): + # First try it with _lookup_config. It's possible + # that we don't find credentials this way (for example, + # if we're using an IAM role). + access_key = self._lookup_config('access_key') + if access_key.value is not NOT_SET: + secret_key = self._lookup_config('secret_key') + access_key.mask_value() + secret_key.mask_value() + return access_key, secret_key + else: + # Otherwise we can try to use get_credentials(). + # This includes a few more lookup locations + # (IAM roles, some of the legacy configs, etc.) + credentials = self._session.get_credentials() + if credentials is None: + no_config = ConfigValue(NOT_SET, None, None) + return no_config, no_config + else: + # For the ConfigValue, we don't track down the + # config_variable because that info is not + # visible from botocore.credentials. I think + # the credentials.method is sufficient to show + # where the credentials are coming from. + access_key = ConfigValue(credentials.access_key, + credentials.method, '') + secret_key = ConfigValue(credentials.secret_key, + credentials.method, '') + access_key.mask_value() + secret_key.mask_value() + return access_key, secret_key + + def _lookup_config(self, name): + # First try to look up the variable in the env. + value = self._session.get_config_variable(name, methods=('env',)) + if value is not None: + return ConfigValue(value, 'env', self._session.session_var_map[name][1]) + # Then try to look up the variable in the config file. + value = self._session.get_config_variable(name, methods=('config',)) + if value is not None: + return ConfigValue(value, 'config-file', + self._session.get_config_variable('config_file')) + else: + return ConfigValue(NOT_SET, None, None) diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/set.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/set.py new file mode 100644 index 000000000..9d4c441ac --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/set.py @@ -0,0 +1,108 @@ +# Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import os + +from awscli.customizations.commands import BasicCommand +from awscli.customizations.configure.writer import ConfigFileWriter + +from . import PREDEFINED_SECTION_NAMES, profile_to_section + + +class ConfigureSetCommand(BasicCommand): + NAME = 'set' + DESCRIPTION = BasicCommand.FROM_FILE('configure', 'set', + '_description.rst') + SYNOPSIS = 'aws configure set varname value [--profile profile-name]' + EXAMPLES = BasicCommand.FROM_FILE('configure', 'set', '_examples.rst') + ARG_TABLE = [ + {'name': 'varname', + 'help_text': 'The name of the config value to set.', + 'action': 'store', + 'cli_type_name': 'string', 'positional_arg': True}, + {'name': 'value', + 'help_text': 'The value to set.', + 'action': 'store', + 'no_paramfile': True, # To disable the default paramfile behavior + 'cli_type_name': 'string', 'positional_arg': True}, + ] + # Any variables specified in this list will be written to + # the ~/.aws/credentials file instead of ~/.aws/config. + _WRITE_TO_CREDS_FILE = ['aws_access_key_id', 'aws_secret_access_key', + 'aws_session_token'] + + def __init__(self, session, config_writer=None): + super(ConfigureSetCommand, self).__init__(session) + if config_writer is None: + config_writer = ConfigFileWriter() + self._config_writer = config_writer + + def _get_config_file(self, path): + config_path = self._session.get_config_variable(path) + return os.path.expanduser(config_path) + + def _run_main(self, args, parsed_globals): + varname = args.varname + value = args.value + profile = 'default' + # Before handing things off to the config writer, + # we need to find out three things: + # 1. What section we're writing to (profile). + # 2. The name of the config key (varname) + # 3. The actual value (value). + if '.' not in varname: + # unqualified name, scope it to the current + # profile (or leave it as the 'default' section if + # no profile is set). + if self._session.profile is not None: + profile = self._session.profile + else: + # First figure out if it's been scoped to a profile. + parts = varname.split('.') + if parts[0] in ('default', 'profile'): + # Then we know we're scoped to a profile. + if parts[0] == 'default': + profile = 'default' + remaining = parts[1:] + else: + # [profile, profile_name, ...] + profile = parts[1] + remaining = parts[2:] + varname = remaining[0] + if len(remaining) == 2: + value = {remaining[1]: value} + elif parts[0] not in PREDEFINED_SECTION_NAMES: + if self._session.profile is not None: + profile = self._session.profile + else: + profile_name = self._session.get_config_variable('profile') + if profile_name is not None: + profile = profile_name + varname = parts[0] + if len(parts) == 2: + value = {parts[1]: value} + elif len(parts) == 2: + # Otherwise it's something like "set preview.service true" + # of something in the [plugin] section. + profile, varname = parts + config_filename = self._get_config_file('config_file') + if varname in self._WRITE_TO_CREDS_FILE: + # When writing to the creds file, the section is just the profile + section = profile + config_filename = self._get_config_file('credentials_file') + elif profile in PREDEFINED_SECTION_NAMES or profile == 'default': + section = profile + else: + section = profile_to_section(profile) + updated_config = {'__section__': section, varname: value} + self._config_writer.update_config(updated_config, config_filename) + return 0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/writer.py b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/writer.py new file mode 100644 index 000000000..06808e056 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/customizations/configure/writer.py @@ -0,0 +1,256 @@ +# Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import os +import re + +from . import SectionNotFoundError + + +class ConfigFileWriter(object): + SECTION_REGEX = re.compile(r'^\s*\[(?P
[^]]+)\]') + OPTION_REGEX = re.compile( + r'(?P
\n ... more content ... \n", + "versionRevision": "Ciqe5/9yicvkJT13b5/LdLpCyE6fqA7poa9qp+FilPs=" + } + +For more information, see `View package version readme file `__ in the *AWS CodeArtifact User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/get-repository-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/get-repository-endpoint.rst new file mode 100644 index 000000000..7127a75c8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/get-repository-endpoint.rst @@ -0,0 +1,16 @@ +**To get a repository's URL endpoint** + +The following ``get-repository-endpoint`` example returns the npm endpoint for the test-repo repository. :: + + aws codeartifact get-repository-endpoint \ + --domain test-domain \ + --repository test-repo \ + --format npm + +Output:: + + { + "repositoryEndpoint": "https://test-domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/test-repo/" + } + +For more information, see `Connect to a repository `__ in the *AWS CodeArtifact User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/get-repository-permissions-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/get-repository-permissions-policy.rst new file mode 100644 index 000000000..956c61449 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/get-repository-permissions-policy.rst @@ -0,0 +1,35 @@ +**To get the permissions policy document for a repository** + +The following ``get-repository-permissions-policy`` example gets the permission policy attached to a repository named test-repo. :: + + aws codeartifact get-repository-permissions-policy \ + --domain test-domain \ + --repository test-repo + +Output:: + + { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "AWS": "arn:aws:iam::111122223333:root" + }, + "Action": [ + "codeartifact:DescribePackageVersion", + "codeartifact:DescribeRepository", + "codeartifact:GetPackageVersionReadme", + "codeartifact:GetRepositoryEndpoint", + "codeartifact:ListPackages", + "codeartifact:ListPackageVersions", + "codeartifact:ListPackageVersionAssets", + "codeartifact:ListPackageVersionDependencies", + "codeartifact:ReadFromRepository" + ], + "Resource": "*" + } + ] + } + +For more information, see `Read a policy `__ in the *AWS CodeArtifact User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/list-domains.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/list-domains.rst new file mode 100644 index 000000000..f2933ae09 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/list-domains.rst @@ -0,0 +1,26 @@ +**To list domains** + +The following ``list-domains`` example returns a summary of all domains owned by the AWS account that makes the call. :: + + aws codeartifact list-domains + +Output:: + + { + "domains": [ + { + "name": "my-domain", + "owner": "111122223333", + "status": "Active", + "encryptionKey": "arn:aws:kms:us-west-2:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + }, + { + "name": "test-domain", + "owner": "111122223333", + "status": "Active", + "encryptionKey": "arn:aws:kms:us-west-2:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" + } + ] + } + +For more information, see `Working with domains in CodeArtifact `__ in the *AWS CodeArtifact User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/list-package-version-assets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/list-package-version-assets.rst new file mode 100644 index 000000000..72fe12e57 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/list-package-version-assets.rst @@ -0,0 +1,33 @@ +**To view a package version's assets** + +The following ``list-package-version-assets`` example retrieves the assets for version 4.0.0 of an npm package named test-package. :: + + aws codeartifact list-package-version-assets \ + --domain test-domain \ + --repo test-repo \ + --format npm \ + --package test-package \ + --package-version 4.0.0 + +Output:: + + { + "format": "npm", + "package": "test-package", + "version": "4.0.0", + "versionRevision": "Ciqe5/9yicvkJT13b5/LdLpCyE6fqA7poa9qp+FilPs=", + "assets": [ + { + "name": "package.tgz", + "size": 316680, + "hashes": { + "MD5": "60078ec6d9e76b89fb55c860832742b2", + "SHA-1": "b44a9b6297bcb698f1c51a3545a2b3b368d59c52", + "SHA-256": "d2aa8c6afc3c8591765785a37d1c5acae482a8eb3ab9729ed28922692454f2e2", + "SHA-512": "3e585d15c8a594e20d7de57b362ea81754c011acb2641a19f1b72c8531ea39825896bab344ae616a0a5a824cb9a381df0b3cddd534645cf305aba70a93dac698" + } + } + ] + } + +For more information, see `List package version assets `__ in the *AWS CodeArtifact User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/list-package-version-dependencies.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/list-package-version-dependencies.rst new file mode 100644 index 000000000..75d02dbf3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/list-package-version-dependencies.rst @@ -0,0 +1,35 @@ +**To view a package version's dependencies** + +The following ``list-package-version-dependencies`` example retrieves the dependencies for version 4.0.0 of an npm package named test-package. :: + + aws codeartifact list-package-version-dependencies \ + --domain test-domain \ + --repo test-repo \ + --format npm \ + --package test-package \ + --package-version 4.0.0 + +Output:: + + { + "format": "npm", + "package": "test-package", + "version": "4.0.0", + "versionRevision": "Ciqe5/9yicvkJT13b5/LdLpCyE6fqA7poa9qp+FilPs=", + "dependencies": [ + { + "namespace": "testns", + "package": "testdep1", + "dependencyType": "regular", + "versionRequirement": "1.8.5" + }, + { + "namespace": "testns", + "package": "testdep2", + "dependencyType": "regular", + "versionRequirement": "1.8.5" + } + ] + } + +For more information, see `View and update package version details and dependencies `__ in the *AWS CodeArtifact User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/list-package-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/list-package-versions.rst new file mode 100644 index 000000000..12e67c851 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/list-package-versions.rst @@ -0,0 +1,46 @@ +**To list package versions for a package** + +The following ``list-package-versions`` example returns a list of package versions for a package named ``kind-of``. :: + + aws codeartifact list-package-versions \ + --package kind-of \ + --domain test-domain \ + --repository test-repo \ + --format npm + +Output:: + + { + "defaultDisplayVersion": "1.0.1", + "format": "npm", + "package": "kind-of", + "versions": [ + { + "version": "1.0.1", + "revision": "REVISION-SAMPLE-1-C7F4S5E9B772FC", + "status": "Published" + }, + { + "version": "1.0.0", + "revision": "REVISION-SAMPLE-2-C752BEEF6D2CFC", + "status": "Published" + }, + { + "version": "0.1.2", + "revision": "REVISION-SAMPLE-3-654S65A5C5E1FC", + "status": "Published" + }, + { + "version": "0.1.1", + "revision": "REVISION-SAMPLE-1-C7F4S5E9B772FC"", + "status": "Published" + }, + { + "version": "0.1.0", + "revision": "REVISION-SAMPLE-4-AF669139B772FC", + "status": "Published" + } + ] + } + +For more information, see `List package versions `__ in the *AWS CodeArtifact User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/list-packages.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/list-packages.rst new file mode 100644 index 000000000..00790a065 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/list-packages.rst @@ -0,0 +1,24 @@ +**To list packages in a repository** + +The following ``list-packages`` example list packages in a repository named ``test-repo`` in a domain named ``test-domain``. :: + + aws codeartifact list-packages \ + --domain test-domain \ + --repository test-repo + +Output:: + + { + "packages": [ + { + "format": "npm", + "package": "lodash" + } + { + "format": "python", + "package": "test-package" + } + ] + } + +For more information, see `List package names `__ in the *AWS CodeArtifact User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/list-repositories-in-domain.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/list-repositories-in-domain.rst new file mode 100644 index 000000000..e136124ab --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/list-repositories-in-domain.rst @@ -0,0 +1,31 @@ +**To list repositories in a domain** + +The following ``list-repositories-in-domain`` example returns a summary of all repositories in the test-domain domain. :: + + aws codeartifact list-repositories-in-domain \ + --domain test-domain + +Output:: + + { + "repositories": [ + { + "name": "test-repo", + "administratorAccount": "111122223333", + "domainName": "test-domain", + "domainOwner": "111122223333", + "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/test-domain/test-repo", + "description": "This is a test repository." + }, + { + "name": "test-repo2", + "administratorAccount": "111122223333", + "domainName": "test-domain", + "domainOwner": "111122223333", + "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/test-domain/test-repo2", + "description": "This is a test repository." + } + ] + } + +For more information, see `List repositories `__ in the *AWS CodeArtifact User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/list-repositories.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/list-repositories.rst new file mode 100644 index 000000000..e9d99fac2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/list-repositories.rst @@ -0,0 +1,38 @@ +**To list repositories** + +The following ``list-repositories`` example returns a summary of all repositories in domain owned by the AWS account that makes the call. :: + + aws codeartifact list-repositories + +Output:: + + { + "repositories": [ + { + "name": "npm-store", + "administratorAccount": "111122223333", + "domainName": "my-domain", + "domainOwner": "111122223333", + "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/my-domain/npm-store", + "description": "Provides npm artifacts from npm, Inc." + }, + { + "name": "target-repo", + "administratorAccount": "111122223333", + "domainName": "my-domain", + "domainOwner": "111122223333", + "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/my-domain/target-repo", + "description": "test target repo" + }, + { + "name": "test-repo2", + "administratorAccount": "111122223333", + "domainName": "test-domain", + "domainOwner": "111122223333", + "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/test-domain/test-repo2", + "description": "This is a test repository." + } + ] + } + +For more information, see `List repositories `__ in the *AWS CodeArtifact User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/login.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/login.rst new file mode 100644 index 000000000..c0e27bea9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/login.rst @@ -0,0 +1,15 @@ +**To configure authentication to your repository with the login command** + +The following ``login`` example configures the npm package manager with a repository named test-repo in a domain named test-domain. :: + + aws codeartifact login \ + --domain test-domain \ + --repository test-repo \ + --tool npm + +Output:: + + Successfully configured npm to use AWS CodeArtifact repository https://test-domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/test-repo/ + Login expires in 12 hours at 2020-11-12 01:53:16-05:00 + +For more information, see `Getting started with the AWS CLI `__ in the *AWS CodeArtifact User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/put-domain-permissions-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/put-domain-permissions-policy.rst new file mode 100644 index 000000000..9fe5650ec --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/put-domain-permissions-policy.rst @@ -0,0 +1,19 @@ +**To attach a permissions policy to a domain** + +The following ``put-domain-permissions-policy`` example attaches a permission policy that is defined in the policy.json file to a domain named test-domain. :: + + aws codeartifact put-domain-permissions-policy \ + --domain test-domain \ + --policy-document file://PATH/TO/policy.json + +Output:: + + { + "policy": { + "resourceArn": "arn:aws:codeartifact:region-id:111122223333:domain/test-domain", + "document": "{ ...policy document content...}", + "revision": "MQlyyTQRASRU3HB58gBtSDHXG7Q3hvxxxxxxx=" + } + } + +For more information, see `Set a domain policy `__ in the *AWS CodeArtifact User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/put-repository-permissions-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/put-repository-permissions-policy.rst new file mode 100644 index 000000000..1e8833b0b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/put-repository-permissions-policy.rst @@ -0,0 +1,20 @@ +**To attach a permissions policy to a repository** + +The following ``put-repository-permissions-policy`` example attaches a permission policy that is defined in the policy.json file to a repository named test-repo. :: + + aws codeartifact put-repository-permissions-policy \ + --domain test-domain \ + --repository test-repo \ + --policy-document file://PATH/TO/policy.json + +Output:: + + { + "policy": { + "resourceArn": "arn:aws:codeartifact:region-id:111122223333:repository/test-domain/test-repo", + "document": "{ ...policy document content...}", + "revision": "MQlyyTQRASRU3HB58gBtSDHXG7Q3hvxxxxxxx=" + } + } + +For more information, see `Set a policy `__ in the *AWS CodeArtifact User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/update-package-versions-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/update-package-versions-status.rst new file mode 100644 index 000000000..866f79114 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/update-package-versions-status.rst @@ -0,0 +1,25 @@ +**To update package version status** + +The following ``update-package-versions-status`` example updates the status of version 4.0.0 of the test-package package to Archived. :: + + aws codeartifact update-package-versions-status \ + --domain test-domain \ + --repo test-repo \ + --format npm \ + --package test-package \ + --versions 4.0.0 \ + --target-status Archived + +Output:: + + { + "successfulVersions": { + "4.0.0": { + "revision": "Ciqe5/9yicvkJT13b5/LdLpCyE6fqA7poa9qp+FilPs=", + "status": "Archived" + } + }, + "failedVersions": {} + } + +For more information, see `Update package version status `__ in the *AWS CodeArtifact User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/update-repository.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/update-repository.rst new file mode 100644 index 000000000..a5b0a0781 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeartifact/update-repository.rst @@ -0,0 +1,25 @@ +**To update a repository** + +The following ``update-repository`` example updates the description of a repo named test-repo in a domain named test-domain to "this is an updated description". :: + + aws codeartifact update-repository \ + --domain test-domain \ + --repository test-repo \ + --description "this is an updated description" + +Output:: + + { + "repository": { + "name": "test-repo", + "administratorAccount": "111122223333", + "domainName": "test-domain", + "domainOwner": "111122223333", + "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/test-domain/test-repo", + "description": "this is an updated description", + "upstreams": [], + "externalConnections": [] + } + } + +For more information, see `View or modify a repository configuration `__ in the *AWS CodeArtifact User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/batch-delete-builds.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/batch-delete-builds.rst new file mode 100644 index 000000000..6b94a52b6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/batch-delete-builds.rst @@ -0,0 +1,22 @@ +**To delete builds in AWS CodeBuild.** + +The following ``batch-delete-builds`` example deletes builds in CodeBuild with the specified IDs. :: + + aws codebuild batch-delete-builds --ids my-build-project-one:a1b2c3d4-5678-9012-abcd-11111EXAMPLE my-build-project-two:a1b2c3d4-5678-9012-abcd-22222EXAMPLE + +Output:: + + { + "buildsNotDeleted": [ + { + "id": "arn:aws:codebuild:us-west-2:123456789012:build/my-build-project-one:a1b2c3d4-5678-9012-abcd-11111EXAMPLE", + "statusCode": "BUILD_IN_PROGRESS" + } + ], + "buildsDeleted": [ + "arn:aws:codebuild:us-west-2:123456789012:build/my-build-project-two:a1b2c3d4-5678-9012-abcd-22222EXAMPLE" + ] + } + +For more information, see `Delete Builds (AWS CLI) `_ in the *AWS CodeBuild User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/batch-get-build-batches.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/batch-get-build-batches.rst new file mode 100644 index 000000000..b21892663 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/batch-get-build-batches.rst @@ -0,0 +1,174 @@ +**To view details of builds in AWS CodeBuild.** + +The following ``batch-get-build-batches`` example gets information about build batches in CodeBuild with the specified IDs. :: + + aws codebuild batch-get-build-batches \ + --ids codebuild-demo-project:e9c4f4df-3f43-41d2-ab3a-60fe2EXAMPLE + +Output:: + + { + "buildBatches": [ + { + "id": "codebuild-demo-project:e9c4f4df-3f43-41d2-ab3a-60fe2EXAMPLE", + "arn": "arn:aws:codebuild:us-west-2:123456789012:build-batch/codebuild-demo-project:e9c4f4df-3f43-41d2-ab3a-60fe2EXAMPLE", + "startTime": "2020-11-03T21:52:20.775000+00:00", + "endTime": "2020-11-03T21:56:59.784000+00:00", + "currentPhase": "SUCCEEDED", + "buildBatchStatus": "SUCCEEDED", + "resolvedSourceVersion": "0a6546f68309560d08a310daac92314c4d378f6b", + "projectName": "codebuild-demo-project", + "phases": [ + { + "phaseType": "SUBMITTED", + "phaseStatus": "SUCCEEDED", + "startTime": "2020-11-03T21:52:20.775000+00:00", + "endTime": "2020-11-03T21:52:20.976000+00:00", + "durationInSeconds": 0 + }, + { + "phaseType": "DOWNLOAD_BATCHSPEC", + "phaseStatus": "SUCCEEDED", + "startTime": "2020-11-03T21:52:20.976000+00:00", + "endTime": "2020-11-03T21:52:57.401000+00:00", + "durationInSeconds": 36 + }, + { + "phaseType": "IN_PROGRESS", + "phaseStatus": "SUCCEEDED", + "startTime": "2020-11-03T21:52:57.401000+00:00", + "endTime": "2020-11-03T21:56:59.751000+00:00", + "durationInSeconds": 242 + }, + { + "phaseType": "COMBINE_ARTIFACTS", + "phaseStatus": "SUCCEEDED", + "startTime": "2020-11-03T21:56:59.751000+00:00", + "endTime": "2020-11-03T21:56:59.784000+00:00", + "durationInSeconds": 0 + }, + { + "phaseType": "SUCCEEDED", + "startTime": "2020-11-03T21:56:59.784000+00:00" + } + ], + "source": { + "type": "GITHUB", + "location": "https://github.com/my-repo/codebuild-demo-project.git", + "gitCloneDepth": 1, + "gitSubmodulesConfig": { + "fetchSubmodules": false + }, + "reportBuildStatus": false, + "insecureSsl": false + }, + "secondarySources": [], + "secondarySourceVersions": [], + "artifacts": { + "location": "" + }, + "secondaryArtifacts": [], + "cache": { + "type": "NO_CACHE" + }, + "environment": { + "type": "LINUX_CONTAINER", + "image": "aws/codebuild/amazonlinux2-x86_64-standard:3.0", + "computeType": "BUILD_GENERAL1_SMALL", + "environmentVariables": [], + "privilegedMode": false, + "imagePullCredentialsType": "CODEBUILD" + }, + "logConfig": { + "cloudWatchLogs": { + "status": "ENABLED" + }, + "s3Logs": { + "status": "DISABLED", + "encryptionDisabled": false + } + }, + "buildTimeoutInMinutes": 60, + "queuedTimeoutInMinutes": 480, + "complete": true, + "initiator": "Strohm", + "encryptionKey": "arn:aws:kms:us-west-2:123456789012:alias/aws/s3", + "buildBatchNumber": 6, + "buildBatchConfig": { + "serviceRole": "arn:aws:iam::123456789012:role/service-role/codebuild-demo-project", + "restrictions": { + "maximumBuildsAllowed": 100 + }, + "timeoutInMins": 480 + }, + "buildGroups": [ + { + "identifier": "DOWNLOAD_SOURCE", + "ignoreFailure": false, + "currentBuildSummary": { + "arn": "arn:aws:codebuild:us-west-2:123456789012:build/codebuild-demo-project:379737d8-bc35-48ec-97fd-776d27545315", + "requestedOn": "2020-11-03T21:52:21.394000+00:00", + "buildStatus": "SUCCEEDED", + "primaryArtifact": { + "type": "no_artifacts", + "identifier": "DOWNLOAD_SOURCE" + }, + "secondaryArtifacts": [] + } + }, + { + "identifier": "linux_small", + "dependsOn": [], + "ignoreFailure": false, + "currentBuildSummary": { + "arn": "arn:aws:codebuild:us-west-2:123456789012:build/codebuild-demo-project:dd785171-ed84-4bb6-8ede-ceeb86e54bdb", + "requestedOn": "2020-11-03T21:52:57.604000+00:00", + "buildStatus": "SUCCEEDED", + "primaryArtifact": { + "type": "no_artifacts", + "identifier": "linux_small" + }, + "secondaryArtifacts": [] + } + }, + { + "identifier": "linux_medium", + "dependsOn": [ + "linux_small" + ], + "ignoreFailure": false, + "currentBuildSummary": { + "arn": "arn:aws:codebuild:us-west-2:123456789012:build/codebuild-demo-project:97cf7bd4-5313-4786-8243-4aef350a1267", + "requestedOn": "2020-11-03T21:54:18.474000+00:00", + "buildStatus": "SUCCEEDED", + "primaryArtifact": { + "type": "no_artifacts", + "identifier": "linux_medium" + }, + "secondaryArtifacts": [] + } + }, + { + "identifier": "linux_large", + "dependsOn": [ + "linux_medium" + ], + "ignoreFailure": false, + "currentBuildSummary": { + "arn": "arn:aws:codebuild:us-west-2:123456789012:build/codebuild-demo-project:60a194cd-0d03-4337-9db1-d41476a17d27", + "requestedOn": "2020-11-03T21:55:39.203000+00:00", + "buildStatus": "SUCCEEDED", + "primaryArtifact": { + "type": "no_artifacts", + "identifier": "linux_large" + }, + "secondaryArtifacts": [] + } + } + ] + } + ], + "buildBatchesNotFound": [] + } + +For more information, see `Batch builds in AWS CodeBuild `)__ in the *AWS CodeBuild User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/batch-get-builds.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/batch-get-builds.rst new file mode 100644 index 000000000..80e00f20a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/batch-get-builds.rst @@ -0,0 +1,369 @@ +**To view details of builds in AWS CodeBuild.** + +The following ``batch-get-builds`` example gets information about builds in CodeBuild with the specified IDs. :: + + aws codebuild batch-get-builds --ids codebuild-demo-project:e9c4f4df-3f43-41d2-ab3a-60fe2EXAMPLE codebuild-demo-project:815e755f-bade-4a7e-80f0-efe51EXAMPLE + +Output:: + + { + "buildsNotFound": [], + "builds": [ + { + "artifacts": { + "md5sum": "0e95edf915048a0c22efe6d139fff837", + "location": "arn:aws:s3:::codepipeline-us-west-2-820783811474/CodeBuild-Python-Pip/BuildArtif/6DJsqQa", + "encryptionDisabled": false, + "sha256sum": "cfa0df33a090966a737f64ae4fe498969fdc842a0c9aec540bf93c37ac0d05a2" + }, + "logs": { + "cloudWatchLogs": { + "status": "ENABLED" + }, + "s3Logs": { + "status": "DISABLED" + }, + "streamName": "46472baf-8f6b-43c2-9255-b3b963af2732", + "groupName": "/aws/codebuild/codebuild-demo-project", + "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logEvent:group=/aws/codebuild/codebuild-demo-project;stream=46472baf-8f6b-43c2-9255-b3b963af2732" + }, + "timeoutInMinutes": 60, + "environment": { + "privilegedMode": false, + "computeType": "BUILD_GENERAL1_MEDIUM", + "image": "aws/codebuild/windows-base:1.0", + "environmentVariables": [], + "type": "WINDOWS_CONTAINER" + }, + "projectName": "codebuild-demo-project", + "buildComplete": true, + "source": { + "gitCloneDepth": 1, + "insecureSsl": false, + "type": "CODEPIPELINE" + }, + "buildStatus": "SUCCEEDED", + "secondaryArtifacts": [], + "phases": [ + { + "durationInSeconds": 0, + "startTime": 1548717462.122, + "phaseType": "SUBMITTED", + "endTime": 1548717462.484, + "phaseStatus": "SUCCEEDED" + }, + { + "durationInSeconds": 0, + "startTime": 1548717462.484, + "phaseType": "QUEUED", + "endTime": 1548717462.775, + "phaseStatus": "SUCCEEDED" + }, + { + "durationInSeconds": 34, + "endTime": 1548717496.909, + "contexts": [ + { + "statusCode": "", + "message": "" + } + ], + "startTime": 1548717462.775, + "phaseType": "PROVISIONING", + "phaseStatus": "SUCCEEDED" + }, + { + "durationInSeconds": 15, + "endTime": 1548717512.555, + "contexts": [ + { + "statusCode": "", + "message": "" + } + ], + "startTime": 1548717496.909, + "phaseType": "DOWNLOAD_SOURCE", + "phaseStatus": "SUCCEEDED" + }, + { + "durationInSeconds": 0, + "endTime": 1548717512.734, + "contexts": [ + { + "statusCode": "", + "message": "" + } + ], + "startTime": 1548717512.555, + "phaseType": "INSTALL", + "phaseStatus": "SUCCEEDED" + }, + { + "durationInSeconds": 0, + "endTime": 1548717512.924, + "contexts": [ + { + "statusCode": "", + "message": "" + } + ], + "startTime": 1548717512.734, + "phaseType": "PRE_BUILD", + "phaseStatus": "SUCCEEDED" + }, + { + "durationInSeconds": 9, + "endTime": 1548717522.254, + "contexts": [ + { + "statusCode": "", + "message": "" + } + ], + "startTime": 1548717512.924, + "phaseType": "BUILD", + "phaseStatus": "SUCCEEDED" + }, + { + "durationInSeconds": 3, + "endTime": 1548717525.498, + "contexts": [ + { + "statusCode": "", + "message": "" + } + ], + "startTime": 1548717522.254, + "phaseType": "POST_BUILD", + "phaseStatus": "SUCCEEDED" + }, + { + "durationInSeconds": 9, + "endTime": 1548717534.646, + "contexts": [ + { + "statusCode": "", + "message": "" + } + ], + "startTime": 1548717525.498, + "phaseType": "UPLOAD_ARTIFACTS", + "phaseStatus": "SUCCEEDED" + }, + { + "durationInSeconds": 2, + "endTime": 1548717536.846, + "contexts": [ + { + "statusCode": "", + "message": "" + } + ], + "startTime": 1548717534.646, + "phaseType": "FINALIZING", + "phaseStatus": "SUCCEEDED" + }, + { + "startTime": 1548717536.846, + "phaseType": "COMPLETED" + } + ], + "startTime": 1548717462.122, + "encryptionKey": "arn:aws:kms:us-west-2:123456789012:alias/aws/s3", + "initiator": "codepipeline/CodeBuild-Pipeline", + "secondarySources": [], + "serviceRole": "arn:aws:iam::123456789012:role/service-role/my-codebuild-service-role", + "currentPhase": "COMPLETED", + "id": "codebuild-demo-project:e9c4f4df-3f43-41d2-ab3a-60fe2EXAMPLE", + "cache": { + "type": "NO_CACHE" + }, + "sourceVersion": "arn:aws:s3:::codepipeline-us-west-2-820783811474/CodeBuild-Python-Pip/SourceArti/1TspnN3.zip", + "endTime": 1548717536.846, + "arn": "arn:aws:codebuild:us-west-2:123456789012:build/codebuild-demo-project:e9c4f4df-3f43-41d2-ab3a-60fe2EXAMPLE", + "queuedTimeoutInMinutes": 480, + "resolvedSourceVersion": "f2194c1757bbdcb0f8f229254a4b3c8b27d43e0b" + }, + { + "artifacts": { + "md5sum": "", + "overrideArtifactName": false, + "location": "arn:aws:s3:::my-artifacts/codebuild-demo-project", + "encryptionDisabled": false, + "sha256sum": "" + }, + "logs": { + "cloudWatchLogs": { + "status": "ENABLED" + }, + "s3Logs": { + "status": "DISABLED" + }, + "streamName": "4dea3ca4-20ec-4898-b22a-a9eb9292775d", + "groupName": "/aws/codebuild/codebuild-demo-project", + "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logEvent:group=/aws/codebuild/codebuild-demo-project;stream=4dea3ca4-20ec-4898-b22a-a9eb9292775d" + }, + "timeoutInMinutes": 60, + "environment": { + "privilegedMode": false, + "computeType": "BUILD_GENERAL1_MEDIUM", + "image": "aws/codebuild/windows-base:1.0", + "environmentVariables": [], + "type": "WINDOWS_CONTAINER" + }, + "projectName": "codebuild-demo-project", + "buildComplete": true, + "source": { + "gitCloneDepth": 1, + "location": "https://github.com/my-repo/codebuild-demo-project.git", + "insecureSsl": false, + "reportBuildStatus": false, + "type": "GITHUB" + }, + "buildStatus": "SUCCEEDED", + "secondaryArtifacts": [], + "phases": [ + { + "durationInSeconds": 0, + "startTime": 1548716241.89, + "phaseType": "SUBMITTED", + "endTime": 1548716242.241, + "phaseStatus": "SUCCEEDED" + }, + { + "durationInSeconds": 0, + "startTime": 1548716242.241, + "phaseType": "QUEUED", + "endTime": 1548716242.536, + "phaseStatus": "SUCCEEDED" + }, + { + "durationInSeconds": 33, + "endTime": 1548716276.171, + "contexts": [ + { + "statusCode": "", + "message": "" + } + ], + "startTime": 1548716242.536, + "phaseType": "PROVISIONING", + "phaseStatus": "SUCCEEDED" + }, + { + "durationInSeconds": 15, + "endTime": 1548716291.809, + "contexts": [ + { + "statusCode": "", + "message": "" + } + ], + "startTime": 1548716276.171, + "phaseType": "DOWNLOAD_SOURCE", + "phaseStatus": "SUCCEEDED" + }, + { + "durationInSeconds": 0, + "endTime": 1548716291.993, + "contexts": [ + { + "statusCode": "", + "message": "" + } + ], + "startTime": 1548716291.809, + "phaseType": "INSTALL", + "phaseStatus": "SUCCEEDED" + }, + { + "durationInSeconds": 0, + "endTime": 1548716292.191, + "contexts": [ + { + "statusCode": "", + "message": "" + } + ], + "startTime": 1548716291.993, + "phaseType": "PRE_BUILD", + "phaseStatus": "SUCCEEDED" + }, + { + "durationInSeconds": 9, + "endTime": 1548716301.622, + "contexts": [ + { + "statusCode": "", + "message": "" + } + ], + "startTime": 1548716292.191, + "phaseType": "BUILD", + "phaseStatus": "SUCCEEDED" + }, + { + "durationInSeconds": 3, + "endTime": 1548716304.783, + "contexts": [ + { + "statusCode": "", + "message": "" + } + ], + "startTime": 1548716301.622, + "phaseType": "POST_BUILD", + "phaseStatus": "SUCCEEDED" + }, + { + "durationInSeconds": 8, + "endTime": 1548716313.775, + "contexts": [ + { + "statusCode": "", + "message": "" + } + ], + "startTime": 1548716304.783, + "phaseType": "UPLOAD_ARTIFACTS", + "phaseStatus": "SUCCEEDED" + }, + { + "durationInSeconds": 2, + "endTime": 1548716315.935, + "contexts": [ + { + "statusCode": "", + "message": "" + } + ], + "startTime": 1548716313.775, + "phaseType": "FINALIZING", + "phaseStatus": "SUCCEEDED" + }, + { + "startTime": 1548716315.935, + "phaseType": "COMPLETED" + } + ], + "startTime": 1548716241.89, + "secondarySourceVersions": [], + "initiator": "my-codebuild-project", + "arn": "arn:aws:codebuild:us-west-2:123456789012:build/codebuild-demo-project:815e755f-bade-4a7e-80f0-efe51EXAMPLE", + "encryptionKey": "arn:aws:kms:us-west-2:123456789012:alias/aws/s3", + "serviceRole": "arn:aws:iam::123456789012:role/service-role/my-codebuild-service-role", + "currentPhase": "COMPLETED", + "id": "codebuild-demo-project:815e755f-bade-4a7e-80f0-efe51EXAMPLE", + "cache": { + "type": "NO_CACHE" + }, + "endTime": 1548716315.935, + "secondarySources": [], + "queuedTimeoutInMinutes": 480, + "resolvedSourceVersion": "f2194c1757bbdcb0f8f229254a4b3c8b27d43e0b" + } + ] + } + +For more information, see `View Build Details (AWS CLI) `_ in the *AWS CodeBuild User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/batch-get-projects.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/batch-get-projects.rst new file mode 100644 index 000000000..b54ff61c1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/batch-get-projects.rst @@ -0,0 +1,89 @@ +**To get a list of AWS CodeBuild build project names.** + +The following ``batch-get-projects`` example gets a list of CodeBuild build projects specified by name. :: + + aws codebuild batch-get-projects --names codebuild-demo-project codebuild-demo-project2 my-other-demo-project + +In the following output, the ``projectsNotFound`` array lists any build project names that were specified, but not found. The ``projects`` array lists details for each build project where information was found. :: + + { + "projectsNotFound": [], + "projects": [ + { + "encryptionKey": "arn:aws:kms:us-west-2:123456789012:alias/aws/s3", + "name": "codebuild-demo-project2", + "queuedTimeoutInMinutes": 480, + "timeoutInMinutes": 60, + "source": { + "buildspec": "version: 0.2\n\n#env:\n #variables:\n # key: \"value\"\n # key: \"value\"\n #parameter-store:\n # key: \"value\"\n # key:\"value\"\n\nphases:\n #install:\n #commands:\n # - command\n # - command\n #pre_build:\n #commands:\n # - command\n # - command\n build:\n commands:\n # - command\n # - command\n #post_build:\n #commands:\n # - command\n # - command\n#artifacts:\n #files:\n # - location\n # - location\n #name: $(date +%Y-%m-%d)\n #discard-paths: yes\n #base-directory: location\n#cache:\n #paths:\n # - paths", + "type": "NO_SOURCE", + "insecureSsl": false, + "gitCloneDepth": 1 + }, + "artifacts": { + "type": "NO_ARTIFACTS" + }, + "badge": { + "badgeEnabled": false + }, + "lastModified": 1540588091.108, + "created": 1540588091.108, + "arn": "arn:aws:codebuild:us-west-2:123456789012:project/test-for-sample", + "secondarySources": [], + "secondaryArtifacts": [], + "cache": { + "type": "NO_CACHE" + }, + "serviceRole": "arn:aws:iam::123456789012:role/service-role/my-test-role", + "environment": { + "image": "aws/codebuild/java:openjdk-8", + "privilegedMode": true, + "type": "LINUX_CONTAINER", + "computeType": "BUILD_GENERAL1_SMALL", + "environmentVariables": [] + }, + "tags": [] + }, + { + "encryptionKey": "arn:aws:kms:us-west-2:123456789012:alias/aws/s3", + "name": "my-other-demo-project", + "queuedTimeoutInMinutes": 480, + "timeoutInMinutes": 60, + "source": { + "location": "https://github.com/iversonic/codedeploy-sample.git", + "reportBuildStatus": false, + "buildspec": "buildspec.yml", + "insecureSsl": false, + "gitCloneDepth": 1, + "type": "GITHUB", + "auth": { + "type": "OAUTH" + } + }, + "artifacts": { + "type": "NO_ARTIFACTS" + }, + "badge": { + "badgeEnabled": false + }, + "lastModified": 1523401711.73, + "created": 1523401711.73, + "arn": "arn:aws:codebuild:us-west-2:123456789012:project/Project2", + "cache": { + "type": "NO_CACHE" + }, + "serviceRole": "arn:aws:iam::123456789012:role/service-role/codebuild-Project2-service-role", + "environment": { + "image": "aws/codebuild/nodejs:4.4.7", + "privilegedMode": false, + "type": "LINUX_CONTAINER", + "computeType": "BUILD_GENERAL1_SMALL", + "environmentVariables": [] + }, + "tags": [] + } + ] + } + +For more information, see `View a Build Project's Details (AWS CLI) `_ in the *AWS CodeBuild User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/batch-get-report-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/batch-get-report-groups.rst new file mode 100644 index 000000000..adbf63fef --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/batch-get-report-groups.rst @@ -0,0 +1,27 @@ +**To get information about one or more report groups in AWS CodeBuild.** + +The following ``batch-get-report-groups`` example retrieves information about the report group with the specified ARN. :: + + aws codebuild batch-get-report-groups \ + --report-group-arns arn:aws:codebuild:::report-group/ + +Output:: + + { + "reportGroups": [ + { + "arn": "arn:aws:codebuild:::report-group/", + "name": "report-group-name", + "type": "TEST", + "exportConfig": { + "exportConfigType": "NO_EXPORT" + }, + "created": "2020-10-01T18:04:08.466000+00:00", + "lastModified": "2020-10-01T18:04:08.466000+00:00", + "tags": [] + } + ], + "reportGroupsNotFound": [] + } + +For more information, see `Working with report groups `__ in the *AWS CodeBuild User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/batch-get-reports.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/batch-get-reports.rst new file mode 100644 index 000000000..3d97da8f7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/batch-get-reports.rst @@ -0,0 +1,67 @@ +**To get information about one or more reports in AWS CodeBuild.** + +The following ``batch-get-reports`` example retrieves information about the reports with the specified ARNs. :: + + aws codebuild batch-get-reports \ + --report-arns arn:aws:codebuild:::report/: arn:aws:codebuild:::report/: + +Output:: + + { + "reports": [ + { + "arn": "arn:aws:codebuild:::report/:", + "type": "TEST", + "name": "", + "reportGroupArn": "arn:aws:codebuild:::report-group/", + "executionId": "arn:aws:codebuild:::build/test-reports:", + "status": "FAILED", + "created": "2020-10-01T11:25:22.531000-07:00", + "expired": "2020-10-31T11:25:22-07:00", + "exportConfig": { + "exportConfigType": "NO_EXPORT" + }, + "truncated": false, + "testSummary": { + "total": 28, + "statusCounts": { + "ERROR": 5, + "FAILED": 1, + "SKIPPED": 4, + "SUCCEEDED": 18, + "UNKNOWN": 0 + }, + "durationInNanoSeconds": 94000000 + } + }, + { + "arn": "arn:aws:codebuild:::report/:", + "type": "TEST", + "name": "", + "reportGroupArn": "arn:aws:codebuild:::report-group/", + "executionId": "arn:aws:codebuild:::build/test-reports:", + "status": "FAILED", + "created": "2020-10-01T11:13:05.816000-07:00", + "expired": "2020-10-31T11:13:05-07:00", + "exportConfig": { + "exportConfigType": "NO_EXPORT" + }, + "truncated": false, + "testSummary": { + "total": 28, + "statusCounts": { + "ERROR": 5, + "FAILED": 1, + "SKIPPED": 4, + "SUCCEEDED": 18, + "UNKNOWN": 0 + }, + "durationInNanoSeconds": 94000000 + } + } + ], + "reportsNotFound": [] + } + +For more information, see `Working with reports `__ in the *AWS CodeBuild User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/create-project.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/create-project.rst new file mode 100755 index 000000000..e500233b0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/create-project.rst @@ -0,0 +1,112 @@ +**Example 1: To create an AWS CodeBuild build project** + +The following ``create-project`` example creates a CodeBuild build project using source files from an S3 bucket :: + + aws codebuild create-project \ + --name "my-demo-project" \ + --source "{\"type\": \"S3\",\"location\": \"codebuild-us-west-2-123456789012-input-bucket/my-source.zip\"}" \ + --artifacts {"\"type\": \"S3\",\"location\": \"codebuild-us-west-2-123456789012-output-bucket\""} \ + --environment "{\"type\": \"LINUX_CONTAINER\",\"image\": \"aws/codebuild/standard:1.0\",\"computeType\": \"BUILD_GENERAL1_SMALL\"}" \ + --service-role "arn:aws:iam::123456789012:role/service-role/my-codebuild-service-role" + +Output:: + + { + "project": { + "arn": "arn:aws:codebuild:us-west-2:123456789012:project/my-demo-project", + "name": "my-cli-demo-project", + "encryptionKey": "arn:aws:kms:us-west-2:123456789012:alias/aws/s3", + "serviceRole": "arn:aws:iam::123456789012:role/service-role/my-codebuild-service-role", + "lastModified": 1556839783.274, + "badge": { + "badgeEnabled": false + }, + "queuedTimeoutInMinutes": 480, + "environment": { + "image": "aws/codebuild/standard:1.0", + "computeType": "BUILD_GENERAL1_SMALL", + "type": "LINUX_CONTAINER", + "imagePullCredentialsType": "CODEBUILD", + "privilegedMode": false, + "environmentVariables": [] + }, + "artifacts": { + "location": "codebuild-us-west-2-123456789012-output-bucket", + "name": "my-cli-demo-project", + "namespaceType": "NONE", + "type": "S3", + "packaging": "NONE", + "encryptionDisabled": false + }, + "source": { + "type": "S3", + "location": "codebuild-us-west-2-123456789012-input-bucket/my-source.zip", + "insecureSsl": false + }, + "timeoutInMinutes": 60, + "cache": { + "type": "NO_CACHE" + }, + "created": 1556839783.274 + } + } + +**Example 2: To create an AWS CodeBuild build project using a JSON input file for the parameters** + +The following ``create-project`` example creates a CodeBuild build project by passing all of the required parameters in a JSON input file. Create the input file template by running the command with only the ``--generate-cli-skeleton parameter``. :: + + aws codebuild create-project --cli-input-json file://create-project.json + +The input JSON file ``create-project.json`` contains the following content:: + + { + "name": "codebuild-demo-project", + "source": { + "type": "S3", + "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip" + }, + "artifacts": { + "type": "S3", + "location": "codebuild-region-ID-account-ID-output-bucket" + }, + "environment": { + "type": "LINUX_CONTAINER", + "image": "aws/codebuild/standard:1.0", + "computeType": "BUILD_GENERAL1_SMALL" + }, + "serviceRole": "serviceIAMRole" + } + +Output:: + + { + "project": { + "name": "codebuild-demo-project", + "serviceRole": "serviceIAMRole", + "tags": [], + "artifacts": { + "packaging": "NONE", + "type": "S3", + "location": "codebuild-region-ID-account-ID-output-bucket", + "name": "message-util.zip" + }, + "lastModified": 1472661575.244, + "timeoutInMinutes": 60, + "created": 1472661575.244, + "environment": { + "computeType": "BUILD_GENERAL1_SMALL", + "image": "aws/codebuild/standard:1.0", + "type": "LINUX_CONTAINER", + "environmentVariables": [] + }, + "source": { + "type": "S3", + "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip" + }, + "encryptionKey": "arn:aws:kms:region-ID:account-ID:alias/aws/s3", + "arn": "arn:aws:codebuild:region-ID:account-ID:project/codebuild-demo-project" + } + } + +For more information, see `Create a Build Project (AWS CLI) `_ in the *AWS CodeBuild User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/create-report-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/create-report-group.rst new file mode 100644 index 000000000..f94266b40 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/create-report-group.rst @@ -0,0 +1,45 @@ +**To create a report group in AWS CodeBuild.** + +The following ``create-report-group`` example creates a new report group. :: + + aws codebuild create-report-group \ + --cli-input-json file://create-report-group-source.json + +Contents of create-report-group-source.json:: + + { + "name": "cli-created-report-group", + "type": "TEST", + "exportConfig": { + "exportConfigType": "S3", + "s3Destination": { + "bucket": "amzn-s3-demo-bucket", + "path": "", + "packaging": "ZIP", + "encryptionDisabled": true + } + } + } + +Output:: + + { + "reportGroup": { + "arn": "arn:aws:codebuild:::report-group/cli-created-report-group", + "name": "cli-created-report-group", + "type": "TEST", + "exportConfig": { + "exportConfigType": "S3", + "s3Destination": { + "bucket": "amzn-s3-demo-bucket", + "path": "", + "packaging": "ZIP", + "encryptionDisabled": true + } + }, + "created": 1602020026.775, + "lastModified": 1602020026.775 + } + } + +For more information, see `Working with report groups `__ in the *AWS CodeBuild User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/create-webhook.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/create-webhook.rst new file mode 100755 index 000000000..449fcd38e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/create-webhook.rst @@ -0,0 +1,50 @@ +**To create webhook filters for an AWS CodeBuild project** + +The following ``create-webhook`` example creates a webhook for a CodeBuild project named ``my-project`` that has two filter groups. The first filter group specifies pull requests that are created, updated, or reopened on branches with Git reference names that match the regular expression ``^refs/heads/master$`` and head references that match ``^refs/heads/myBranch$``. The second filter group specifies push requests on branches with Git reference names that do not match the regular expression ``^refs/heads/myBranch$``. :: + + aws codebuild create-webhook \ + --project-name my-project \ + --filter-groups "[[{\"type\":\"EVENT\",\"pattern\":\"PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED\"},{\"type\":\"HEAD_REF\",\"pattern\":\"^refs/heads/myBranch$\",\"excludeMatchedPattern\":true},{\"type\":\"BASE_REF\",\"pattern\":\"^refs/heads/master$\",\"excludeMatchedPattern\":true}],[{\"type\":\"EVENT\",\"pattern\":\"PUSH\"},{\"type\":\"HEAD_REF\",\"pattern\":\"^refs/heads/myBranch$\",\"excludeMatchedPattern\":true}]]" + +Output:: + + { + "webhook": { + "payloadUrl": "https://codebuild.us-west-2.amazonaws.com/webhooks?t=eyJlbmNyeXB0ZWREYXRhIjoiVVl5MGtoeGRwSzZFRXl2Wnh4bld1Z0tKZ291TVpQNEtFamQ3RDlDYWpRaGIreVFrdm9EQktIVk1NeHJEWEpmUDUrVUNOMUIyRHJRc1VxcHJ6QlNDSnljPSIsIml2UGFyYW1ldGVyU3BlYyI6InN4Tm1SeUt5MUhaUVRWbGciLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&v=1", + "url": "https://api.github.com/repos/iversonic/codedeploy-sample/hooks/105190656", + "lastModifiedSecret": 1556311319.069, + "filterGroups": [ + [ + { + "type": "EVENT", + "pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED", + "excludeMatchedPattern": false + }, + { + "type": "HEAD_REF", + "pattern": "refs/heads/myBranch$", + "excludeMatchedPattern": true + }, + { + "type": "BASE_REF", + "pattern": "refs/heads/master$", + "excludeMatchedPattern": true + } + ], + [ + { + "type": "EVENT", + "pattern": "PUSH", + "excludeMatchedPattern": false + }, + { + "type": "HEAD_REF", + "pattern": "refs/heads/myBranch$", + "excludeMatchedPattern": true + } + ] + ] + } + } + +For more information, see `Filter GitHub Webhook Events (SDK) `_ in the *AWS CodeBuild User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/delete-build-batch.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/delete-build-batch.rst new file mode 100644 index 000000000..ec12a049f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/delete-build-batch.rst @@ -0,0 +1,22 @@ +**To delete a batch build in AWS CodeBuild.** + +The following ``delete-build-batch`` example deletes the specified batch build. :: + + aws codebuild delete-build-batch \ + --id : + +Output:: + + { + "statusCode": "BATCH_DELETED", + "buildsDeleted": [ + "arn:aws:codebuild:::build/:", + "arn:aws:codebuild:::build/:", + "arn:aws:codebuild:::build/:", + "arn:aws:codebuild:::build/:" + ], + "buildsNotDeleted": [] + } + +For more information, see `Batch builds in AWS CodeBuild `__ in the *AWS CodeBuild User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/delete-project.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/delete-project.rst new file mode 100755 index 000000000..6260cabe4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/delete-project.rst @@ -0,0 +1,9 @@ +**To delete an AWS CodeBuild build project** + +The following ``delete-project`` example deletes the specified CodeBuild build project. :: + + aws codebuild delete-project --name my-project + +This command produces no output. + +For more information, see `Delete a Build Project (AWS CLI) `_ in the *AWS CodeBuild User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/delete-report-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/delete-report-group.rst new file mode 100644 index 000000000..cd840bbb0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/delete-report-group.rst @@ -0,0 +1,10 @@ +**To delete a report groups in AWS CodeBuild.** + +The following ``delete-report-group`` example deletes the report group with the specified ARN. :: + + aws codebuild delete-report-group \ + --arn arn:aws:codebuild:::report-group/ + +This command produces no output. + +For more information, see `Working with report groups `__ in the *AWS CodeBuild User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/delete-report.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/delete-report.rst new file mode 100644 index 000000000..3ed905eb1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/delete-report.rst @@ -0,0 +1,10 @@ +**To delete a report in AWS CodeBuild.** + +The following ``delete-report`` example deletes the specified report. :: + + aws codebuild delete-report \ + --arn arn:aws:codebuild:::report/: + +This command produces no output. + +For more information, see `Working with reports `__ in the *AWS CodeBuild User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/delete-source-credentials.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/delete-source-credentials.rst new file mode 100755 index 000000000..3d3033642 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/delete-source-credentials.rst @@ -0,0 +1,13 @@ +**To disconnect from a source provider and remove its access tokens.** + +The following ``delete-source-credentials`` example disconnects from a source provider and removes its tokens. The ARN of source credentials used to connect to the source provider determines which source credentials. :: + + aws codebuild delete-source-credentials --arn arn-of-your-credentials + +Output:: + + { + "arn": "arn:aws:codebuild:your-region:your-account-id:token/your-server-type" + } + +For more information, see `Connect Source Providers with Access Tokens (CLI) `_ in the *AWS CodeBuild User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/delete-webhook.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/delete-webhook.rst new file mode 100755 index 000000000..b5f0afd23 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/delete-webhook.rst @@ -0,0 +1,9 @@ +**To delete a webhook filter from an AWS CodeBuild project** + +The following ``delete-webhook`` example deletes a webhook from the specified CodeBuild project. :: + + aws codebuild delete-webhook --project-name my-project + +This command produces no output. + +For more information, see `Stop Running Builds Automatically (AWS CLI) `_ in the *AWS CodeBuild User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/describe-code-coverages.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/describe-code-coverages.rst new file mode 100644 index 000000000..b9b5f52ab --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/describe-code-coverages.rst @@ -0,0 +1,39 @@ +**To get detailed information about code coverage test results in AWS CodeBuild.** + +The following ``describe-code-coverages`` example gets information about the code coverage test results in the specified report. :: + + aws codebuild describe-code-coverages \ + --report-arn arn:aws:codebuild:::report/: + +Output:: + + { + "codeCoverages": [ + { + "id": "20a0adcc-db13-4b66-804b-ecaf9f852855", + "reportARN": "arn:aws:codebuild::972506530580:report/:", + "filePath": "", + "lineCoveragePercentage": 83.33, + "linesCovered": 5, + "linesMissed": 1, + "branchCoveragePercentage": 50.0, + "branchesCovered": 1, + "branchesMissed": 1, + "expired": "2020-11-20T21:22:45+00:00" + }, + { + "id": "0887162d-bf57-4cf1-a164-e432373d1a83", + "reportARN": "arn:aws:codebuild::972506530580:report/:", + "filePath": "", + "lineCoveragePercentage": 90.9, + "linesCovered": 10, + "linesMissed": 1, + "branchCoveragePercentage": 50.0, + "branchesCovered": 1, + "branchesMissed": 1, + "expired": "2020-11-20T21:22:45+00:00" + } + ] + } + +For more information, see `Code coverage reports `__ in the *AWS CodeBuild User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/describe-test-cases.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/describe-test-cases.rst new file mode 100644 index 000000000..81eb3cb12 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/describe-test-cases.rst @@ -0,0 +1,35 @@ +**To get detailed information about test cases in AWS CodeBuild.** + +The following ``describe-test-cases`` example gets information about the test cases in the specified report. :: + + aws codebuild describe-test-cases \ + --report-arn arn:aws:codebuild:::report/: + +Output:: + + { + "testCases": [ + { + "reportArn": "arn:aws:codebuild:::report/:", + "testRawDataPath": "", + "prefix": "NUnit.Tests.Assemblies.MockTestFixture", + "name": "NUnit.Tests.Assemblies.MockTestFixture.NotRunnableTest", + "status": "ERROR", + "durationInNanoSeconds": 0, + "message": "No arguments were provided\n", + "expired": "2020-11-20T17:52:10+00:00" + }, + { + "reportArn": "arn:aws:codebuild:::report/:", + "testRawDataPath": "", + "prefix": "NUnit.Tests.Assemblies.MockTestFixture", + "name": "NUnit.Tests.Assemblies.MockTestFixture.TestWithException", + "status": "ERROR", + "durationInNanoSeconds": 0, + "message": "System.ApplicationException : Intentional Exception\nat NUnit.Tests.Assemblies.MockTestFixture.MethodThrowsException()\nat NUnit.Tests.Assemblies.MockTestFixture.TestWithException()\n\n", + "expired": "2020-11-20T17:52:10+00:00" + } + ] + } + +For more information, see `Working with test reporting in AWS CodeBuild `__ in the *AWS CodeBuild User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/import-source-credentials.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/import-source-credentials.rst new file mode 100755 index 000000000..69b0f186b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/import-source-credentials.rst @@ -0,0 +1,13 @@ +**Connect an AWS CodeBuild user to a source provider by importing credentials for the source provider.** + +The following ``import-source-credentials`` example imports a token for a Bitbucket repository that uses BASIC_AUTH for its authentication type. :: + + aws codebuild import-source-credentials --server-type BITBUCKET --auth-type BASIC_AUTH --token my-Bitbucket-password --username my-Bitbucket-username + +Output:: + + { + "arn": "arn:aws:codebuild:us-west-2:123456789012:token/bitbucket" + } + +For more information, see `Connect Source Providers with Access Tokens (CLI) `_ in the *AWS CodeBuild User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/invalidate-project-cache.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/invalidate-project-cache.rst new file mode 100755 index 000000000..26436b1dd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/invalidate-project-cache.rst @@ -0,0 +1,9 @@ +**To reset the cache for an AWS CodeBuild build project.** + +The following ``invalidate-project-cache`` example resets the cache for the specified CodeBuild project. :: + + aws codebuild invalidate-project-cache --project-name my-project + +This command produces no output. + +For more information, see `Build Caching in CodeBuild `_ in the *AWS CodeBuild User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-build-batches-for-project.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-build-batches-for-project.rst new file mode 100644 index 000000000..b3b73e385 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-build-batches-for-project.rst @@ -0,0 +1,18 @@ +**To list batch builds for a specific build project in AWS CodeBuild.** + +The following ``list-build-batches-for-project`` example lists the CodeBuild batch builds for the specified project. :: + + aws codebuild list-build-batches-for-project \ + --project-name "" + +Output:: + + { + "ids": [ + ":", + ":" + ] + } + +For more information, see `Batch builds in AWS CodeBuild `__ in the *AWS CodeBuild User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-build-batches.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-build-batches.rst new file mode 100644 index 000000000..2fdf1888f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-build-batches.rst @@ -0,0 +1,17 @@ +**To list batch builds in AWS CodeBuild.** + +The following ``list-build-batches`` example lists the CodeBuild batch builds for the current account. :: + + aws codebuild list-build-batches + +Output:: + + { + "ids": [ + ":", + ":" + ] + } + +For more information, see `Batch builds in AWS CodeBuild `)__ in the *AWS CodeBuild User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-builds-for-project.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-builds-for-project.rst new file mode 100755 index 000000000..4db3478f7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-builds-for-project.rst @@ -0,0 +1,19 @@ +**To view a list of builds for an AWS CodeBuild build project.** + +The following ``list-builds-for-project`` example lists the build IDs in descending order for the specified CodeBuild build project. :: + + aws codebuild list-builds-for-project --project-name codebuild-demo-project --sort-order DESCENDING + +Output:: + + { + "ids": [ + "codebuild-demo-project:1a2b3c4d-5678-90ab-cdef-11111example", + "codebuild-demo-project:1a2b3c4d-5678-90ab-cdef-22222example", + "codebuild-demo-project:1a2b3c4d-5678-90ab-cdef-33333example", + "codebuild-demo-project:1a2b3c4d-5678-90ab-cdef-44444example", + "codebuild-demo-project:1a2b3c4d-5678-90ab-cdef-55555example" + ] + } + +For more information, see `View a List of Build IDs for a Build Project (AWS CLI) `_ in the *AWS CodeBuild User Guide* diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-builds.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-builds.rst new file mode 100755 index 000000000..d9ae898fa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-builds.rst @@ -0,0 +1,35 @@ +**To get a list of AWS CodeBuild builds IDs.** + +The following ``list-builds`` example gets a list of CodeBuild IDs sorted in ascending order. :: + + aws codebuild list-builds --sort-order ASCENDING + +The output includes a ``nextToken`` value which indicates that there is more output available. :: + + { + "nextToken": "4AEA6u7J...The full token has been omitted for brevity...MzY2OA==", + "ids": [ + "codebuild-demo-project:815e755f-bade-4a7e-80f0-efe51EXAMPLE" + "codebuild-demo-project:84a7f3d1-d40e-4956-b4cf-7a9d4EXAMPLE" + ... The full list of build IDs has been omitted for brevity ... + "codebuild-demo-project:931d0b72-bf6f-4040-a472-5c707EXAMPLE" + ] + } + +Run this command again and provide the ``nextToken`` value in the previous response as a parameter to get the next part of the output. Repeat until you don't receive a ``nextToken`` value in the response. :: + + aws codebuild list-builds --sort-order ASCENDING --next-token 4AEA6u7J...The full token has been omitted for brevity...MzY2OA== + +Next part of the output:: + + { + "ids": [ + "codebuild-demo-project:49015049-21cf-4b50-9708-df115EXAMPLE", + "codebuild-demo-project:543e7206-68a3-46d6-a4da-759abEXAMPLE", + ... The full list of build IDs has been omitted for brevity ... + "codebuild-demo-project:c282f198-4582-4b38-bdc0-26f96EXAMPLE" + ] + } + +For more information, see `View a List of Build IDs (AWS CLI) `_ in the *AWS CodeBuild User Guide* + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-curated-environment-images.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-curated-environment-images.rst new file mode 100755 index 000000000..f1b975a17 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-curated-environment-images.rst @@ -0,0 +1,40 @@ +**To get a list of Docker images managed by AWS CodeBuild that you can use for your builds.** + +The following ``list-curated-environment-images`` example lists the Docker images managed by CodeBuild that can be used for builds.:: + + aws codebuild list-curated-environment-images + +Output:: + + { + "platforms": [ + { + "platform": "AMAZON_LINUX", + "languages": [ + { + "language": "JAVA", + "images": [ + { + "description": "AWS ElasticBeanstalk - Java 7 Running on Amazon Linux 64bit v2.1.3", + "name": "aws/codebuild/eb-java-7-amazonlinux-64:2.1.3", + "versions": [ + "aws/codebuild/eb-java-7-amazonlinux-64:2.1.3-1.0.0" + ] + }, + { + "description": "AWS ElasticBeanstalk - Java 8 Running on Amazon Linux 64bit v2.1.3", + "name": "aws/codebuild/eb-java-8-amazonlinux-64:2.1.3", + "versions": [ + "aws/codebuild/eb-java-8-amazonlinux-64:2.1.3-1.0.0" + ] + }, + ... LIST TRUNCATED FOR BREVITY ... + ] + } + ] + } + ] + } + + +For more information, see `Docker Images Provided by CodeBuild `_ in the *AWS CodeBuild User Guide* diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-projects.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-projects.rst new file mode 100755 index 000000000..13e7f903b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-projects.rst @@ -0,0 +1,33 @@ +**To get a list of AWS CodeBuild build project names.** + +The following ``list-projects`` example gets a list of CodeBuild build projects sorted by name in ascending order. :: + + aws codebuild list-projects --sort-by NAME --sort-order ASCENDING + +The output includes a ``nextToken`` value which indicates that there is more output available. :: + + { + "nextToken": "Ci33ACF6...The full token has been omitted for brevity...U+AkMx8=", + "projects": [ + "codebuild-demo-project", + "codebuild-demo-project2", + ... The full list of build project names has been omitted for brevity ... + "codebuild-demo-project99" + ] + } + +Run this command again and provide the ``nextToken`` value from the previous response as a parameter to get the next part of the output. Repeat until you don't receive a ``nextToken`` value in the response. :: + + aws codebuild list-projects --sort-by NAME --sort-order ASCENDING --next-token Ci33ACF6...The full token has been omitted for brevity...U+AkMx8= + + { + "projects": [ + "codebuild-demo-project100", + "codebuild-demo-project101", + ... The full list of build project names has been omitted for brevity ... + "codebuild-demo-project122" + ] + } + +For more information, see `View a List of Build Project Names (AWS CLI) `_ in the *AWS CodeBuild User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-report-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-report-groups.rst new file mode 100644 index 000000000..67d54985c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-report-groups.rst @@ -0,0 +1,17 @@ +**To get a list of the report group ARNs in AWS CodeBuild.** + +The following ``list-report-groups`` example retrieves the report group ARNs for the account in the region. :: + + aws codebuild list-report-groups + +Output:: + + { + "reportGroups": [ + "arn:aws:codebuild:::report-group/report-group-1", + "arn:aws:codebuild:::report-group/report-group-2", + "arn:aws:codebuild:::report-group/report-group-3" + ] + } + +For more information, see `Working with report groups `__ in the *AWS CodeBuild User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-reports-for-report-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-reports-for-report-group.rst new file mode 100644 index 000000000..6cabc5063 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-reports-for-report-group.rst @@ -0,0 +1,18 @@ +**To get a list of the reports in a report group in AWS CodeBuild.** + +The following ``list-report-for-report-groups`` example retrieves the reports in the specified report group for the account in the region. :: + + aws codebuild list-reports-for-report-group \ + --report-group-arn arn:aws:codebuild:::report-group/ + +Output:: + + { + "reports": [ + "arn:aws:codebuild:::report/report-1", + "arn:aws:codebuild:::report/report-2", + "arn:aws:codebuild:::report/report-3" + ] + } + +For more information, see `Working with report groups `__ in the *AWS CodeBuild User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-reports.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-reports.rst new file mode 100644 index 000000000..8638ac660 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-reports.rst @@ -0,0 +1,17 @@ +**To get a list of the reports for the current account in AWS CodeBuild.** + +The following ``list-reports`` example retrieves the ARNs of the reports for the current account. :: + + aws codebuild list-reports + +Output:: + + { + "reports": [ + "arn:aws:codebuild:::report/:", + "arn:aws:codebuild:::report/:", + "arn:aws:codebuild:::report/:" + ] + } + +For more information, see `Working with reports `__ in the *AWS CodeBuild User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-shared-projects.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-shared-projects.rst new file mode 100644 index 000000000..5f0756d7d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-shared-projects.rst @@ -0,0 +1,16 @@ +**To list the shared project in AWS CodeBuild.** + +The following ``list-shared-projects`` example lists the CodeBuild shared projects that are available to the current account. :: + + aws codebuild list-shared-projects + +Output:: + + { + "projects": [ + "arn:aws:codebuild:::project/", + "arn:aws:codebuild:::project/" + ] + } + +For more information, see `Working with shared projects `__ in the *AWS CodeBuild User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-shared-report-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-shared-report-groups.rst new file mode 100644 index 000000000..8e63678b9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-shared-report-groups.rst @@ -0,0 +1,17 @@ +**To get a list of the shared report group ARNs in AWS CodeBuild.** + +The following ``list-shared-report-groups`` example retrieves the report group ARNs for the account in the region. :: + + aws codebuild list-shared-report-groups + +Output:: + + { + "reportGroups": [ + "arn:aws:codebuild:::report-group/report-group-1", + "arn:aws:codebuild:::report-group/report-group-2", + "arn:aws:codebuild:::report-group/report-group-3" + ] + } + +For more information, see `Working with report groups `__ in the *AWS CodeBuild User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-source-credentials.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-source-credentials.rst new file mode 100755 index 000000000..0eca272d6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/list-source-credentials.rst @@ -0,0 +1,24 @@ +**To view a list of sourceCredentialsObjects** + +The following ``list-source-credentials`` example lists tokens for an AWS account connected to one Bitbucket account and one GitHub account. Each ``sourceCredentialsInfos`` object in the response contains connected source credentials information. :: + + aws codebuild list-source-credentials + +Output:: + + { + "sourceCredentialsInfos": [ + { + "serverType": "BITBUCKET", + "arn": "arn:aws:codebuild:us-west-2:123456789012:token/bitbucket", + "authType": "BASIC_AUTH" + }, + { + "serverType": "GITHUB", + "arn": "arn:aws:codebuild:us-west-2:123456789012:token/github", + "authType": "OAUTH" + } + ] + } + +For more information, see `Connect Source Providers with Access Tokens (CLI) `_ in the *AWS CodeBuild User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/retry-build-batch.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/retry-build-batch.rst new file mode 100644 index 000000000..85594a537 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/retry-build-batch.rst @@ -0,0 +1,161 @@ +**To retry a failed batch build in AWS CodeBuild.** + +The following ``retry-build-batch`` example restarts the specified batch build. :: + + aws codebuild retry-build-batch \ + --id : + +Output:: + + { + "buildBatch": { + "id": ":", + "arn": "arn:aws:codebuild:::build-batch/:", + "startTime": "2020-10-21T17:26:23.099000+00:00", + "currentPhase": "SUBMITTED", + "buildBatchStatus": "IN_PROGRESS", + "resolvedSourceVersion": "3a9e11cb419e8fff14b03883dc4e64f6155aaa7e", + "projectName": "", + "phases": [ + { + "phaseType": "SUBMITTED", + "phaseStatus": "SUCCEEDED", + "startTime": "2020-10-21T17:26:23.099000+00:00", + "endTime": "2020-10-21T17:26:23.457000+00:00", + "durationInSeconds": 0 + }, + { + "phaseType": "DOWNLOAD_BATCHSPEC", + "phaseStatus": "SUCCEEDED", + "startTime": "2020-10-21T17:26:23.457000+00:00", + "endTime": "2020-10-21T17:26:54.902000+00:00", + "durationInSeconds": 31 + }, + { + "phaseType": "IN_PROGRESS", + "phaseStatus": "CLIENT_ERROR", + "startTime": "2020-10-21T17:26:54.902000+00:00", + "endTime": "2020-10-21T17:28:16.060000+00:00", + "durationInSeconds": 81 + }, + { + "phaseType": "FAILED", + "phaseStatus": "RETRY", + "startTime": "2020-10-21T17:28:16.060000+00:00", + "endTime": "2020-10-21T17:29:39.709000+00:00", + "durationInSeconds": 83 + }, + { + "phaseType": "SUBMITTED", + "startTime": "2020-10-21T17:29:39.709000+00:00" + } + ], + "source": { + "type": "GITHUB", + "location": "https://github.com/strohm-a/-graph.git", + "gitCloneDepth": 1, + "gitSubmodulesConfig": { + "fetchSubmodules": false + }, + "reportBuildStatus": false, + "insecureSsl": false + }, + "secondarySources": [], + "secondarySourceVersions": [], + "artifacts": { + "location": "" + }, + "secondaryArtifacts": [], + "cache": { + "type": "NO_CACHE" + }, + "environment": { + "type": "LINUX_CONTAINER", + "image": "aws/codebuild/amazonlinux2-x86_64-standard:3.0", + "computeType": "BUILD_GENERAL1_SMALL", + "environmentVariables": [], + "privilegedMode": false, + "imagePullCredentialsType": "CODEBUILD" + }, + "logConfig": { + "cloudWatchLogs": { + "status": "ENABLED" + }, + "s3Logs": { + "status": "DISABLED", + "encryptionDisabled": false + } + }, + "buildTimeoutInMinutes": 60, + "queuedTimeoutInMinutes": 480, + "complete": false, + "initiator": "", + "encryptionKey": "arn:aws:kms:::alias/aws/s3", + "buildBatchNumber": 4, + "buildBatchConfig": { + "serviceRole": "arn:aws:iam:::role/service-role/", + "restrictions": { + "maximumBuildsAllowed": 100 + }, + "timeoutInMins": 480 + }, + "buildGroups": [ + { + "identifier": "DOWNLOAD_SOURCE", + "ignoreFailure": false, + "currentBuildSummary": { + "arn": "arn:aws:codebuild:::build/:", + "requestedOn": "2020-10-21T17:26:23.889000+00:00", + "buildStatus": "SUCCEEDED", + "primaryArtifact": { + "type": "no_artifacts", + "identifier": "DOWNLOAD_SOURCE" + }, + "secondaryArtifacts": [] + } + }, + { + "identifier": "linux_small", + "dependsOn": [], + "ignoreFailure": false, + "currentBuildSummary": { + "arn": "arn:aws:codebuild:::build/:", + "requestedOn": "2020-10-21T17:26:55.115000+00:00", + "buildStatus": "FAILED", + "primaryArtifact": { + "type": "no_artifacts", + "identifier": "linux_small" + }, + "secondaryArtifacts": [] + } + }, + { + "identifier": "linux_medium", + "dependsOn": [ + "linux_small" + ], + "ignoreFailure": false, + "currentBuildSummary": { + "arn": "arn:aws:codebuild:::build/:", + "requestedOn": "2020-10-21T17:26:54.594000+00:00", + "buildStatus": "STOPPED" + } + }, + { + "identifier": "linux_large", + "dependsOn": [ + "linux_medium" + ], + "ignoreFailure": false, + "currentBuildSummary": { + "arn": "arn:aws:codebuild:::build/:", + "requestedOn": "2020-10-21T17:26:54.701000+00:00", + "buildStatus": "STOPPED" + } + } + ] + } + } + +For more information, see `Batch builds in AWS CodeBuild `__ in the *AWS CodeBuild User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/retry-build.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/retry-build.rst new file mode 100644 index 000000000..328d50ac6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/retry-build.rst @@ -0,0 +1,80 @@ +**To retry a failed build in AWS CodeBuild.** + +The following ``retry-build`` example restarts the specified build. :: + + aws codebuild retry-build \ + --id : + +Output:: + + { + "build": { + "id": ":", + "arn": "arn:aws:codebuild:::build/:", + "buildNumber": 9, + "startTime": "2020-10-21T17:51:38.161000+00:00", + "currentPhase": "QUEUED", + "buildStatus": "IN_PROGRESS", + "projectName": "", + "phases": [ + { + "phaseType": "SUBMITTED", + "phaseStatus": "SUCCEEDED", + "startTime": "2020-10-21T17:51:38.161000+00:00", + "endTime": "2020-10-21T17:51:38.210000+00:00", + "durationInSeconds": 0 + }, + { + "phaseType": "QUEUED", + "startTime": "2020-10-21T17:51:38.210000+00:00" + } + ], + "source": { + "type": "GITHUB", + "location": "", + "gitCloneDepth": 1, + "gitSubmodulesConfig": { + "fetchSubmodules": false + }, + "reportBuildStatus": false, + "insecureSsl": false + }, + "secondarySources": [], + "secondarySourceVersions": [], + "artifacts": { + "location": "" + }, + "secondaryArtifacts": [], + "cache": { + "type": "NO_CACHE" + }, + "environment": { + "type": "LINUX_CONTAINER", + "image": "aws/codebuild/amazonlinux2-x86_64-standard:3.0", + "computeType": "BUILD_GENERAL1_SMALL", + "environmentVariables": [], + "privilegedMode": false, + "imagePullCredentialsType": "CODEBUILD" + }, + "serviceRole": "arn:aws:iam:::role/service-role/", + "logs": { + "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=#logEvent:group=null;stream=null", + "cloudWatchLogsArn": "arn:aws:logs:::log-group:null:log-stream:null", + "cloudWatchLogs": { + "status": "ENABLED" + }, + "s3Logs": { + "status": "DISABLED", + "encryptionDisabled": false + } + }, + "timeoutInMinutes": 60, + "queuedTimeoutInMinutes": 480, + "buildComplete": false, + "initiator": "", + "encryptionKey": "arn:aws:kms:::alias/aws/s3" + } + } + +For more information, see `Batch builds in AWS CodeBuild `__ in the *AWS CodeBuild User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/start-build-batch.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/start-build-batch.rst new file mode 100644 index 000000000..2afdc6571 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/start-build-batch.rst @@ -0,0 +1,71 @@ +**To start a batch build in AWS CodeBuild.** + +The following ``start-build-batch`` example starts a batch build of the specified project. :: + + aws codebuild start-build-batch \ + --project-name + +Output:: + + { + "buildBatch": { + "id": ":", + "arn": "arn:aws:codebuild:::build-batch/:", + "startTime": "2020-10-21T16:54:24.740000+00:00", + "currentPhase": "SUBMITTED", + "buildBatchStatus": "IN_PROGRESS", + "projectName": "", + "source": { + "type": "GITHUB", + "location": "", + "gitCloneDepth": 1, + "gitSubmodulesConfig": { + "fetchSubmodules": false + }, + "reportBuildStatus": false, + "insecureSsl": false + }, + "secondarySources": [], + "secondarySourceVersions": [], + "artifacts": { + "location": "" + }, + "secondaryArtifacts": [], + "cache": { + "type": "NO_CACHE" + }, + "environment": { + "type": "LINUX_CONTAINER", + "image": "aws/codebuild/amazonlinux2-x86_64-standard:3.0", + "computeType": "BUILD_GENERAL1_SMALL", + "environmentVariables": [], + "privilegedMode": false, + "imagePullCredentialsType": "CODEBUILD" + }, + "logConfig": { + "cloudWatchLogs": { + "status": "ENABLED" + }, + "s3Logs": { + "status": "DISABLED", + "encryptionDisabled": false + } + }, + "buildTimeoutInMinutes": 60, + "queuedTimeoutInMinutes": 480, + "complete": false, + "initiator": "", + "encryptionKey": "arn:aws:kms:::alias/aws/s3", + "buildBatchNumber": 3, + "buildBatchConfig": { + "serviceRole": "arn:aws:iam:::role/service-role/", + "restrictions": { + "maximumBuildsAllowed": 100 + }, + "timeoutInMins": 480 + } + } + } + +For more information, see `Batch builds in AWS CodeBuild `__ in the *AWS CodeBuild User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/start-build.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/start-build.rst new file mode 100755 index 000000000..b12d87fb1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/start-build.rst @@ -0,0 +1,66 @@ +**To start running a build of an AWS CodeBuild build project.** + +The following ``start-build`` example starts a build for the specified CodeBuild project. The build overrides both the project's setting for the number of minutes the build is allowed to be queued before it times out and the project's artifact settings. :: + + aws codebuild start-build \ + --project-name "my-demo-project" \ + --queued-timeout-in-minutes-override 5 \ + --artifacts-override {"\"type\": \"S3\",\"location\": \"arn:aws:s3:::artifacts-override\",\"overrideArtifactName\":true"} + +Output:: + + { + "build": { + "serviceRole": "arn:aws:iam::123456789012:role/service-role/my-codebuild-service-role", + "buildStatus": "IN_PROGRESS", + "buildComplete": false, + "projectName": "my-demo-project", + "timeoutInMinutes": 60, + "source": { + "insecureSsl": false, + "type": "S3", + "location": "codebuild-us-west-2-123456789012-input-bucket/my-source.zip" + }, + "queuedTimeoutInMinutes": 5, + "encryptionKey": "arn:aws:kms:us-west-2:123456789012:alias/aws/s3", + "currentPhase": "QUEUED", + "startTime": 1556905683.568, + "environment": { + "computeType": "BUILD_GENERAL1_MEDIUM", + "environmentVariables": [], + "type": "LINUX_CONTAINER", + "privilegedMode": false, + "image": "aws/codebuild/standard:1.0", + "imagePullCredentialsType": "CODEBUILD" + }, + "phases": [ + { + "phaseStatus": "SUCCEEDED", + "startTime": 1556905683.568, + "phaseType": "SUBMITTED", + "durationInSeconds": 0, + "endTime": 1556905684.524 + }, + { + "startTime": 1556905684.524, + "phaseType": "QUEUED" + } + ], + "logs": { + "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logEvent:group=null;stream=null" + }, + "artifacts": { + "encryptionDisabled": false, + "location": "arn:aws:s3:::artifacts-override/my-demo-project", + "overrideArtifactName": true + }, + "cache": { + "type": "NO_CACHE" + }, + "id": "my-demo-project::12345678-a1b2-c3d4-e5f6-11111EXAMPLE", + "initiator": "my-aws-account-name", + "arn": "arn:aws:codebuild:us-west-2:123456789012:build/my-demo-project::12345678-a1b2-c3d4-e5f6-11111EXAMPLE" + } + } + +For more information, see `Run a Build (AWS CLI) `_ in the *AWS CodeBuild User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/stop-build-batch.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/stop-build-batch.rst new file mode 100644 index 000000000..588f3b47c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/stop-build-batch.rst @@ -0,0 +1,150 @@ +**To stop an in-progress batch build in AWS CodeBuild.** + +The following ``stop-build-batch`` example stops the specified batch build. :: + + aws codebuild stop-build-batch \ + --id : + +Output:: + + { + "buildBatch": { + "id": ":", + "arn": "arn:aws:codebuild:::build-batch/:", + "startTime": "2020-10-21T16:54:24.740000+00:00", + "endTime": "2020-10-21T16:56:05.152000+00:00", + "currentPhase": "STOPPED", + "buildBatchStatus": "STOPPED", + "resolvedSourceVersion": "aef7744ed069c51098e15c360f4102cd2cd1ad64", + "projectName": "", + "phases": [ + { + "phaseType": "SUBMITTED", + "phaseStatus": "SUCCEEDED", + "startTime": "2020-10-21T16:54:24.740000+00:00", + "endTime": "2020-10-21T16:54:25.039000+00:00", + "durationInSeconds": 0 + }, + { + "phaseType": "DOWNLOAD_BATCHSPEC", + "phaseStatus": "SUCCEEDED", + "startTime": "2020-10-21T16:54:25.039000+00:00", + "endTime": "2020-10-21T16:54:56.583000+00:00", + "durationInSeconds": 31 + }, + { + "phaseType": "IN_PROGRESS", + "phaseStatus": "STOPPED", + "startTime": "2020-10-21T16:54:56.583000+00:00", + "endTime": "2020-10-21T16:56:05.152000+00:00", + "durationInSeconds": 68 + }, + { + "phaseType": "STOPPED", + "startTime": "2020-10-21T16:56:05.152000+00:00" + } + ], + "source": { + "type": "GITHUB", + "location": "", + "gitCloneDepth": 1, + "gitSubmodulesConfig": { + "fetchSubmodules": false + }, + "reportBuildStatus": false, + "insecureSsl": false + }, + "secondarySources": [], + "secondarySourceVersions": [], + "artifacts": { + "location": "" + }, + "secondaryArtifacts": [], + "cache": { + "type": "NO_CACHE" + }, + "environment": { + "type": "LINUX_CONTAINER", + "image": "aws/codebuild/amazonlinux2-x86_64-standard:3.0", + "computeType": "BUILD_GENERAL1_SMALL", + "environmentVariables": [], + "privilegedMode": false, + "imagePullCredentialsType": "CODEBUILD" + }, + "logConfig": { + "cloudWatchLogs": { + "status": "ENABLED" + }, + "s3Logs": { + "status": "DISABLED", + "encryptionDisabled": false + } + }, + "buildTimeoutInMinutes": 60, + "queuedTimeoutInMinutes": 480, + "complete": true, + "initiator": "Strohm", + "encryptionKey": "arn:aws:kms:::alias/aws/s3", + "buildBatchNumber": 3, + "buildBatchConfig": { + "serviceRole": "arn:aws:iam:::role/service-role/", + "restrictions": { + "maximumBuildsAllowed": 100 + }, + "timeoutInMins": 480 + }, + "buildGroups": [ + { + "identifier": "DOWNLOAD_SOURCE", + "ignoreFailure": false, + "currentBuildSummary": { + "arn": "arn:aws:codebuild:::build/:", + "requestedOn": "2020-10-21T16:54:25.468000+00:00", + "buildStatus": "SUCCEEDED", + "primaryArtifact": { + "type": "no_artifacts", + "identifier": "DOWNLOAD_SOURCE" + }, + "secondaryArtifacts": [] + } + }, + { + "identifier": "linux_small", + "dependsOn": [], + "ignoreFailure": false, + "currentBuildSummary": { + "arn": "arn:aws:codebuild:::build/:", + "requestedOn": "2020-10-21T16:54:56.833000+00:00", + "buildStatus": "IN_PROGRESS" + } + }, + { + "identifier": "linux_medium", + "dependsOn": [ + "linux_small" + ], + "ignoreFailure": false, + "currentBuildSummary": { + "arn": "arn:aws:codebuild:::build/:", + "requestedOn": "2020-10-21T16:54:56.211000+00:00", + "buildStatus": "PENDING" + } + }, + { + "identifier": "linux_large", + "dependsOn": [ + "linux_medium" + ], + "ignoreFailure": false, + "currentBuildSummary": { + "arn": "arn:aws:codebuild:::build/:", + "requestedOn": "2020-10-21T16:54:56.330000+00:00", + "buildStatus": "PENDING" + } + } + ] + } + } + +For more information, see `Batch builds in AWS CodeBuild `__ in the *AWS CodeBuild User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/stop-build.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/stop-build.rst new file mode 100755 index 000000000..0c519d8c0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/stop-build.rst @@ -0,0 +1,132 @@ +**To stop a build of an AWS CodeBuild build project.** + +The following ``stop-build`` example stops the specified CodeBuild build. :: + + aws codebuild stop-build --id my-demo-project:12345678-a1b2-c3d4-e5f6-11111EXAMPLE + +Output:: + + { + "build": { + "startTime": 1556906956.318, + "initiator": "my-aws-account-name", + "projectName": "my-demo-project", + "currentPhase": "COMPLETED", + "cache": { + "type": "NO_CACHE" + }, + "source": { + "insecureSsl": false, + "location": "codebuild-us-west-2-123456789012-input-bucket/my-source.zip", + "type": "S3" + }, + "id": "my-demo-project:1a2b3c4d-5678-90ab-cdef-11111EXAMPLE", + "endTime": 1556906974.781, + "phases": [ + { + "durationInSeconds": 0, + "phaseType": "SUBMITTED", + "endTime": 1556906956.935, + "phaseStatus": "SUCCEEDED", + "startTime": 1556906956.318 + }, + { + "durationInSeconds": 1, + "phaseType": "QUEUED", + "endTime": 1556906958.272, + "phaseStatus": "SUCCEEDED", + "startTime": 1556906956.935 + }, + { + "phaseType": "PROVISIONING", + "phaseStatus": "SUCCEEDED", + "durationInSeconds": 14, + "contexts": [ + { + "message": "", + "statusCode": "" + } + ], + "endTime": 1556906972.847, + "startTime": 1556906958.272 + }, + { + "phaseType": "DOWNLOAD_SOURCE", + "phaseStatus": "SUCCEEDED", + "durationInSeconds": 0, + "contexts": [ + { + "message": "", + "statusCode": "" + } + ], + "endTime": 1556906973.552, + "startTime": 1556906972.847 + }, + { + "phaseType": "INSTALL", + "phaseStatus": "SUCCEEDED", + "durationInSeconds": 0, + "contexts": [ + { + "message": "", + "statusCode": "" + } + ], + "endTime": 1556906973.75, + "startTime": 1556906973.552 + }, + { + "phaseType": "PRE_BUILD", + "phaseStatus": "SUCCEEDED", + "durationInSeconds": 0, + "contexts": [ + { + "message": "", + "statusCode": "" + } + ], + "endTime": 1556906973.937, + "startTime": 1556906973.75 + }, + { + "durationInSeconds": 0, + "phaseType": "BUILD", + "endTime": 1556906974.781, + "phaseStatus": "STOPPED", + "startTime": 1556906973.937 + }, + { + "phaseType": "COMPLETED", + "startTime": 1556906974.781 + } + ], + "artifacts": { + "location": "arn:aws:s3:::artifacts-override/my-demo-project", + "encryptionDisabled": false, + "overrideArtifactName": true + }, + "buildComplete": true, + "buildStatus": "STOPPED", + "encryptionKey": "arn:aws:kms:us-west-2:123456789012:alias/aws/s3", + "serviceRole": "arn:aws:iam::123456789012:role/service-role/my-codebuild-service-role", + "queuedTimeoutInMinutes": 5, + "timeoutInMinutes": 60, + "environment": { + "type": "LINUX_CONTAINER", + "environmentVariables": [], + "computeType": "BUILD_GENERAL1_MEDIUM", + "privilegedMode": false, + "image": "aws/codebuild/standard:1.0", + "imagePullCredentialsType": "CODEBUILD" + }, + "logs": { + "streamName": "1a2b3c4d-5678-90ab-cdef-11111EXAMPLE", + "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logEvent:group=/aws/codebuild/my-demo-project;stream=1a2b3c4d-5678-90ab-cdef-11111EXAMPLE", + "groupName": "/aws/codebuild/my-demo-project" + }, + "arn": "arn:aws:codebuild:us-west-2:123456789012:build/my-demo-project:1a2b3c4d-5678-90ab-cdef-11111EXAMPLE" + } + } + +For more information, see `Stop a Build (AWS CLI) `_ in the *AWS CodeBuild User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/update-project.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/update-project.rst new file mode 100755 index 000000000..aeee91a46 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/update-project.rst @@ -0,0 +1,56 @@ +**To change an AWS CodeBuild build project's settings.** + +The following ``update-project`` example changes the settings of the specified CodeBuild build project named my-demo-project. :: + + aws codebuild update-project --name "my-demo-project" \ + --description "This project is updated" \ + --source "{\"type\": \"S3\",\"location\": \"codebuild-us-west-2-123456789012-input-bucket/my-source-2.zip\"}" \ + --artifacts {"\"type\": \"S3\",\"location\": \"codebuild-us-west-2-123456789012-output-bucket-2\""} \ + --environment "{\"type\": \"LINUX_CONTAINER\",\"image\": \"aws/codebuild/standard:1.0\",\"computeType\": \"BUILD_GENERAL1_MEDIUM\"}" \ + --service-role "arn:aws:iam::123456789012:role/service-role/my-codebuild-service-role" + +The output displays the updated settings. :: + + { + "project": { + "arn": "arn:aws:codebuild:us-west-2:123456789012:project/my-demo-project", + "environment": { + "privilegedMode": false, + "environmentVariables": [], + "type": "LINUX_CONTAINER", + "image": "aws/codebuild/standard:1.0", + "computeType": "BUILD_GENERAL1_MEDIUM", + "imagePullCredentialsType": "CODEBUILD" + }, + "queuedTimeoutInMinutes": 480, + "description": "This project is updated", + "artifacts": { + "packaging": "NONE", + "name": "my-demo-project", + "type": "S3", + "namespaceType": "NONE", + "encryptionDisabled": false, + "location": "codebuild-us-west-2-123456789012-output-bucket-2" + }, + "encryptionKey": "arn:aws:kms:us-west-2:123456789012:alias/aws/s3", + "badge": { + "badgeEnabled": false + }, + "serviceRole": "arn:aws:iam::123456789012:role/service-role/my-codebuild-service-role", + "lastModified": 1556840545.967, + "tags": [], + "timeoutInMinutes": 60, + "created": 1556839783.274, + "name": "my-demo-project", + "cache": { + "type": "NO_CACHE" + }, + "source": { + "type": "S3", + "insecureSsl": false, + "location": "codebuild-us-west-2-123456789012-input-bucket/my-source-2.zip" + } + } + } + +For more information, see `Change a Build Project's Settings (AWS CLI) `_ in the *AWS CodeBuild User Guide* diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/update-report-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/update-report-group.rst new file mode 100644 index 000000000..f4afde3e4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/update-report-group.rst @@ -0,0 +1,25 @@ +**To update a report group in AWS CodeBuild.** + +The following ``update-report-group`` example changes the export type of the report group to "NO_EXPORT". :: + + aws codebuild update-report-group \ + --arn arn:aws:codebuild:::report-group/cli-created-report-group \ + --export-config="exportConfigType=NO_EXPORT" + +Output:: + + { + "reportGroup": { + "arn": "arn:aws:codebuild:::report-group/cli-created-report-group", + "name": "cli-created-report-group", + "type": "TEST", + "exportConfig": { + "exportConfigType": "NO_EXPORT" + }, + "created": 1602020686.009, + "lastModified": 1602021033.454, + "tags": [] + } + } + +For more information, see `Working with report groups `__ in the *AWS CodeBuild User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/update-webhook.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/update-webhook.rst new file mode 100755 index 000000000..ff3db7618 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codebuild/update-webhook.rst @@ -0,0 +1,47 @@ +**To update the webhook for an AWS CodeBuild project** + +The following ``update-webhook`` example updates a webhook for the specified CodeBuild project with two filter groups. The ``--rotate-secret`` parameter specifies that GitHub rotate the project's secret key every time a code change triggers a build. The first filter group specifies pull requests that are created, updated, or reopened on branches with Git reference names that match the regular expression ``^refs/heads/master$`` and head references that match ``^refs/heads/myBranch$``. The second filter group specifies push requests on branches with Git reference names that do not match the regular expression ``^refs/heads/myBranch$``. :: + + aws codebuild update-webhook \ + --project-name Project2 \ + --rotate-secret \ + --filter-groups "[[{\"type\":\"EVENT\",\"pattern\":\"PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED\"},{\"type\":\"HEAD_REF\",\"pattern\":\"^refs/heads/myBranch$\",\"excludeMatchedPattern\":true},{\"type\":\"BASE_REF\",\"pattern\":\"^refs/heads/master$\",\"excludeMatchedPattern\":true}],[{\"type\":\"EVENT\",\"pattern\":\"PUSH\"},{\"type\":\"HEAD_REF\",\"pattern\":\"^refs/heads/myBranch$\",\"excludeMatchedPattern\":true}]]" + +Output:: + + { + "webhook": { + "filterGroups": [ + [ + { + "pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED", + "type": "EVENT" + }, + { + "excludeMatchedPattern": true, + "pattern": "refs/heads/myBranch$", + "type": "HEAD_REF" + }, + { + "excludeMatchedPattern": true, + "pattern": "refs/heads/master$", + "type": "BASE_REF" + } + ], + [ + { + "pattern": "PUSH", + "type": "EVENT" + }, + { + "excludeMatchedPattern": true, + "pattern": "refs/heads/myBranch$", + "type": "HEAD_REF" + } + ] + ], + "lastModifiedSecret": 1556312220.133 + } + } + +For more information, see `Change a Build Project's Settings (AWS CLI) `_ in the *AWS CodeBuild User Guide* diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/associate-approval-rule-template-with-repository.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/associate-approval-rule-template-with-repository.rst new file mode 100644 index 000000000..ee65b5782 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/associate-approval-rule-template-with-repository.rst @@ -0,0 +1,11 @@ +**To associate an approval rule template with a repository** + +The following ``associate-approval-rule-template-with-repository`` example associates the specified approval rule template with a repository named ``MyDemoRepo``. :: + + aws codecommit associate-approval-rule-template-with-repository \ + --repository-name MyDemoRepo \ + --approval-rule-template-name 2-approver-rule-for-main + +This command produces no output. + +For more information, see `Associate an Approval Rule Template with a Repository `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/batch-associate-approval-rule-template-with-repositories.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/batch-associate-approval-rule-template-with-repositories.rst new file mode 100644 index 000000000..a3c5ff892 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/batch-associate-approval-rule-template-with-repositories.rst @@ -0,0 +1,21 @@ +**To associate an approval rule template with multiple repositories in a single operation** + +The following ``batch-associate-approval-rule-template-with-repositories`` example associates the specified approval rule template with repositories named ``MyDemoRepo`` and ``MyOtherDemoRepo``. + +Note: Approval rule templates are specific to the AWS Region where they are created. They can only be associated with repositories in that AWS Region. :: + + aws codecommit batch-associate-approval-rule-template-with-repositories \ + --repository-names MyDemoRepo, MyOtherDemoRepo \ + --approval-rule-template-name 2-approver-rule-for-main + +Output:: + + { + "associatedRepositoryNames": [ + "MyDemoRepo", + "MyOtherDemoRepo" + ], + "errors": [] + } + +For more information, see `Associate an Approval Rule Template with a Repository `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/batch-describe-merge-conflicts.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/batch-describe-merge-conflicts.rst new file mode 100644 index 000000000..1218d959c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/batch-describe-merge-conflicts.rst @@ -0,0 +1,70 @@ +**To get information about merge conflicts in all files or a subset of files in a merge between two commit specifiers** + +The following ``batch-describe-merge-conflicts`` example determines the merge conflicts for merging a source branch named ``feature-randomizationfeature`` with a destination branch named ``main`` using the ``THREE_WAY_MERGE`` strategy in a repository named ``MyDemoRepo``. :: + + aws codecommit batch-describe-merge-conflicts \ + --source-commit-specifier feature-randomizationfeature \ + --destination-commit-specifier main \ + --merge-option THREE_WAY_MERGE \ + --repository-name MyDemoRepo + +Output:: + + { + "conflicts": [ + { + "conflictMetadata": { + "filePath": "readme.md", + "fileSizes": { + "source": 139, + "destination": 230, + "base": 85 + }, + "fileModes": { + "source": "NORMAL", + "destination": "NORMAL", + "base": "NORMAL" + }, + "objectTypes": { + "source": "FILE", + "destination": "FILE", + "base": "FILE" + }, + "numberOfConflicts": 1, + "isBinaryFile": { + "source": false, + "destination": false, + "base": false + }, + "contentConflict": true, + "fileModeConflict": false, + "objectTypeConflict": false, + "mergeOperations": { + "source": "M", + "destination": "M" + } + }, + "mergeHunks": [ + { + "isConflict": true, + "source": { + "startLine": 0, + "endLine": 3, + "hunkContent": "VGhpcyBpEXAMPLE==" + }, + "destination": { + "startLine": 0, + "endLine": 1, + "hunkContent": "VXNlIHRoEXAMPLE=" + } + } + ] + } + ], + "errors": [], + "destinationCommitId": "86958e0aEXAMPLE", + "sourceCommitId": "6ccd57fdEXAMPLE", + "baseCommitId": "767b6958EXAMPLE" + } + +For more information, see `Resolve Conflicts in a Pull Request `__ in the *AWS CodeCommit User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/batch-disassociate-approval-rule-template-from-repositories.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/batch-disassociate-approval-rule-template-from-repositories.rst new file mode 100644 index 000000000..4971615cf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/batch-disassociate-approval-rule-template-from-repositories.rst @@ -0,0 +1,19 @@ +**To disassociate an approval rule template from multiple repositories in a single operation** + +The following ``batch-disassociate-approval-rule-template-from-repositories`` example disassociates the specified approval rule template from repositories named ``MyDemoRepo`` and ``MyOtherDemoRepo``. :: + + aws codecommit batch-disassociate-approval-rule-template-from-repositories \ + --repository-names MyDemoRepo, MyOtherDemoRepo \ + --approval-rule-template-name 1-approval-rule-for-all pull requests + +Output:: + + { + "disassociatedRepositoryNames": [ + "MyDemoRepo", + "MyOtherDemoRepo" + ], + "errors": [] + } + +For more information, see `Disassociate an Approval Rule Template `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/batch-get-commits.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/batch-get-commits.rst new file mode 100644 index 000000000..94a3a5a22 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/batch-get-commits.rst @@ -0,0 +1,54 @@ +**To view information about multiple commits** + +The following ``batch-get-commits`` example displays details about the specified commits. :: + + aws codecommit batch-get-commits \ + --repository-name MyDemoRepo \ + --commit-ids 317f8570EXAMPLE 4c925148EXAMPLE + +Output:: + + { + "commits": [ + { + "additionalData": "", + "committer": { + "date": "1508280564 -0800", + "name": "Mary Major", + "email": "mary_major@example.com" + }, + "author": { + "date": "1508280564 -0800", + "name": "Mary Major", + "email": "mary_major@example.com" + }, + "commitId": "317f8570EXAMPLE", + "treeId": "1f330709EXAMPLE", + "parents": [ + "6e147360EXAMPLE" + ], + "message": "Change variable name and add new response element" + }, + { + "additionalData": "", + "committer": { + "date": "1508280542 -0800", + "name": "Li Juan", + "email": "li_juan@example.com" + }, + "author": { + "date": "1508280542 -0800", + "name": "Li Juan", + "email": "li_juan@example.com" + }, + "commitId": "4c925148EXAMPLE", + "treeId": "1f330709EXAMPLE", + "parents": [ + "317f8570EXAMPLE" + ], + "message": "Added new class" + } + } + + +For more information, see `View Commit Details `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/batch-get-repositories.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/batch-get-repositories.rst new file mode 100644 index 000000000..f9e41d48a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/batch-get-repositories.rst @@ -0,0 +1,39 @@ +**To view details about multiple repositories** + +This example shows details about multiple AWS CodeCommit repositories. :: + + aws codecommit batch-get-repositories \ + --repository-names MyDemoRepo MyOtherDemoRepo + +Output:: + + { + "repositoriesNotFound": [], + "repositories": [ + { + "creationDate": 1429203623.625, + "defaultBranch": "main", + "repositoryName": "MyDemoRepo", + "cloneUrlSsh": "ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo", + "lastModifiedDate": 1430783812.0869999, + "repositoryDescription": "My demonstration repository", + "cloneUrlHttp": "https://codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo", + "repositoryId": "f7579e13-b83e-4027-aaef-650c0EXAMPLE", + "Arn": "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo" + "accountId": "111111111111" + }, + { + "creationDate": 1429203623.627, + "defaultBranch": "main", + "repositoryName": "MyOtherDemoRepo", + "cloneUrlSsh": "ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyOtherDemoRepo", + "lastModifiedDate": 1430783812.0889999, + "repositoryDescription": "My other demonstration repository", + "cloneUrlHttp": "https://codecommit.us-east-2.amazonaws.com/v1/repos/MyOtherDemoRepo", + "repositoryId": "cfc29ac4-b0cb-44dc-9990-f6f51EXAMPLE", + "Arn": "arn:aws:codecommit:us-east-2:111111111111:MyOtherDemoRepo" + "accountId": "111111111111" + } + ], + "repositoriesNotFound": [] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/create-approval-rule-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/create-approval-rule-template.rst new file mode 100644 index 000000000..bd5b7b743 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/create-approval-rule-template.rst @@ -0,0 +1,25 @@ +**To create an approval rule template** + +The following ``create-approval-rule-template`` example creates an approval rule template named ``2-approver-rule-for-main ``. The template requires two users who assume the role of ``CodeCommitReview`` to approve any pull request before it can be merged to the ``main`` branch. :: + + aws codecommit create-approval-rule-template \ + --approval-rule-template-name 2-approver-rule-for-main \ + --approval-rule-template-description "Requires two developers from the team to approve the pull request if the destination branch is main" \ + --approval-rule-template-content "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}" + +Output:: + + { + "approvalRuleTemplate": { + "approvalRuleTemplateName": "2-approver-rule-for-main", + "creationDate": 1571356106.936, + "approvalRuleTemplateId": "dd8b17fe-EXAMPLE", + "approvalRuleTemplateContent": "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}", + "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major", + "approvalRuleTemplateDescription": "Requires two developers from the team to approve the pull request if the destination branch is main", + "lastModifiedDate": 1571356106.936, + "ruleContentSha256": "4711b576EXAMPLE" + } + } + +For more information, see `Create an Approval Rule Template `__ in the *AWS CodeCommit User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/create-branch.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/create-branch.rst new file mode 100644 index 000000000..ea0964e5c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/create-branch.rst @@ -0,0 +1,11 @@ +**To create a branch** + +This example creates a branch in an AWS CodeCommit repository. This command produces output only if there are errors. + +Command:: + + aws codecommit create-branch --repository-name MyDemoRepo --branch-name MyNewBranch --commit-id 317f8570EXAMPLE + +Output:: + + None. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/create-commit.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/create-commit.rst new file mode 100755 index 000000000..0e9aba14d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/create-commit.rst @@ -0,0 +1,26 @@ +**To create a commit** + +The following ``create-commit`` example demonstrates how to create an initial commit for a repository that adds a ``readme.md`` file to a repository named ``MyDemoRepo`` in the ``main`` branch. :: + + aws codecommit create-commit \ + --repository-name MyDemoRepo \ + --branch-name main \ + --put-files "filePath=readme.md,fileContent='Welcome to our team repository.'" + +Output:: + + { + "filesAdded": [ + { + "blobId": "5e1c309d-EXAMPLE", + "absolutePath": "readme.md", + "fileMode": "NORMAL" + } + ], + "commitId": "4df8b524-EXAMPLE", + "treeId": "55b57003-EXAMPLE", + "filesDeleted": [], + "filesUpdated": [] + } + +For more information, see `Create a Commit in AWS CodeCommit `__ in the *AWS CodeCommit User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/create-pull-request-approval-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/create-pull-request-approval-rule.rst new file mode 100644 index 000000000..90222f834 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/create-pull-request-approval-rule.rst @@ -0,0 +1,23 @@ +**To create an approval rule for a pull request** + +The following ``create-pull-request-approval-rule`` example creates an approval rule named ``Require two approved approvers`` for the specified pull request. The rule specifies that two approvals are required from an approval pool. The pool includes all users who access CodeCommit by assuming the role of ``CodeCommitReview`` in the ``123456789012`` AWS account. It also includes either an IAM user or federated user named ``Nikhil_Jayashankar`` from the same AWS account. :: + + aws codecommit create-pull-request-approval-rule \ + --approval-rule-name "Require two approved approvers" \ + --approval-rule-content "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"CodeCommitApprovers:123456789012:Nikhil_Jayashankar\", \"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}" + +Output:: + + { + "approvalRule": { + "approvalRuleName": "Require two approved approvers", + "lastModifiedDate": 1570752871.932, + "ruleContentSha256": "7c44e6ebEXAMPLE", + "creationDate": 1570752871.932, + "approvalRuleId": "aac33506-EXAMPLE", + "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"CodeCommitApprovers:123456789012:Nikhil_Jayashankar\", \"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}", + "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major" + } + } + +For more information, see `Create an Approval Rule `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/create-pull-request.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/create-pull-request.rst new file mode 100644 index 000000000..edeb17d3c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/create-pull-request.rst @@ -0,0 +1,51 @@ +**To create a pull request** + +The following ``create-pull-request`` example creates a pull request named 'Pronunciation difficulty analyzer' with a description of 'Please review these changes by Tuesday' that targets the 'jane-branch' source branch and is to be merged to the default branch 'main' in an AWS CodeCommit repository named 'MyDemoRepo'. :: + + aws codecommit create-pull-request \ + --title "My Pull Request" \ + --description "Please review these changes by Tuesday" \ + --client-request-token 123Example \ + --targets repositoryName=MyDemoRepo,sourceReference=MyNewBranch + +Output:: + + { + "pullRequest": { + "approvalRules": [ + { + "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}", + "approvalRuleId": "dd8b17fe-EXAMPLE", + "approvalRuleName": "2-approver-rule-for-main", + "creationDate": 1571356106.936, + "lastModifiedDate": 571356106.936, + "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major", + "originApprovalRuleTemplate": { + "approvalRuleTemplateId": "dd3d22fe-EXAMPLE", + "approvalRuleTemplateName": "2-approver-rule-for-main" + }, + "ruleContentSha256": "4711b576EXAMPLE" + } + ], + "authorArn": "arn:aws:iam::111111111111:user/Jane_Doe", + "description": "Please review these changes by Tuesday", + "title": "Pronunciation difficulty analyzer", + "pullRequestTargets": [ + { + "destinationCommit": "5d036259EXAMPLE", + "destinationReference": "refs/heads/main", + "repositoryName": "MyDemoRepo", + "sourceCommit": "317f8570EXAMPLE", + "sourceReference": "refs/heads/jane-branch", + "mergeMetadata": { + "isMerged": false + } + } + ], + "lastActivityDate": 1508962823.285, + "pullRequestId": "42", + "clientRequestToken": "123Example", + "pullRequestStatus": "OPEN", + "creationDate": 1508962823.285 + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/create-repository.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/create-repository.rst new file mode 100644 index 000000000..1e9685dcb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/create-repository.rst @@ -0,0 +1,22 @@ +**To create a repository** + +This example creates a repository and associates it with the user's AWS account. + +Command:: + + aws codecommit create-repository --repository-name MyDemoRepo --repository-description "My demonstration repository" + +Output:: + + { + "repositoryMetadata": { + "repositoryName": "MyDemoRepo", + "cloneUrlSsh": "ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/MyDemoRepo", + "lastModifiedDate": 1444766838.027, + "repositoryDescription": "My demonstration repository", + "cloneUrlHttp": "https://git-codecommit.us-east-1.amazonaws.com/v1/repos/MyDemoRepo", + "repositoryId": "f7579e13-b83e-4027-aaef-650c0EXAMPLE", + "Arn": "arn:aws:codecommit:us-east-1:111111111111EXAMPLE:MyDemoRepo", + "accountId": "111111111111" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/create-unreferenced-merge-commit.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/create-unreferenced-merge-commit.rst new file mode 100644 index 000000000..f9ca3f2dd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/create-unreferenced-merge-commit.rst @@ -0,0 +1,21 @@ +**To create an unreferenced commit that represents the result of merging two commit specifiers** + +The following ``create-unreferenced-merge-commit`` example creates a commit that represents the results of a merge between a source branch named ``bugfix-1234`` with a destination branch named ``main`` using the THREE_WAY_MERGE strategy in a repository named ``MyDemoRepo``. :: + + aws codecommit create-unreferenced-merge-commit \ + --source-commit-specifier bugfix-1234 \ + --destination-commit-specifier main \ + --merge-option THREE_WAY_MERGE \ + --repository-name MyDemoRepo \ + --name "Maria Garcia" \ + --email "maria_garcia@example.com" \ + --commit-message "Testing the results of this merge." + +Output:: + + { + "commitId": "4f178133EXAMPLE", + "treeId": "389765daEXAMPLE" + } + +For more information, see `Resolve Conflicts in a Pull Request `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/credential-helper.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/credential-helper.rst new file mode 100755 index 000000000..017d93abb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/credential-helper.rst @@ -0,0 +1,18 @@ +**To set up the credential helper included in the AWS CLI with AWS CodeCommit** + +The ``credential-helper`` utility is not designed to be called directly from the AWS CLI. Instead it is intended to be used as a parameter with the ``git config`` command to set up your local computer. It enables Git to use HTTPS and a cryptographically signed version of your IAM user credentials or Amazon EC2 instance role whenever Git needs to authenticate with AWS to interact with CodeCommit repositories. :: + + git config --global credential.helper '!aws codecommit credential-helper $@' + git config --global credential.UseHttpPath true + +Output:: + + [credential] + helper = !aws codecommit credential-helper $@ + UseHttpPath = true + +For more information, see `Setting up for AWS CodeCommit Using Other Methods`_ in the *AWS CodeCommit User Guide*. Review the content carefully, and then follow the procedures in one of the following topics: `For HTTPS Connections on Linux, macOS, or Unix`_ or `For HTTPS Connections on Windows`_ in the *AWS CodeCommit User Guide*. + +.. _`Setting up for AWS CodeCommit Using Other Methods`: https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up.html?shortFooter=true#setting-up-other +.. _`For HTTPS Connections on Linux, macOS, or Unix`: https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-https-unixes.html +.. _`For HTTPS Connections on Windows`: https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-https-windows.html \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/delete-approval-rule-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/delete-approval-rule-template.rst new file mode 100644 index 000000000..8d959ac18 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/delete-approval-rule-template.rst @@ -0,0 +1,14 @@ +**To delete an approval rule template** + +The following ``delete-approval-rule-template`` example deletes the specified approval rule template. :: + + aws codecommit delete-approval-rule-template \ + --approval-rule-template-name 1-approver-for-all-pull-requests + +Output:: + + { + "approvalRuleTemplateId": "41de97b7-EXAMPLE" + } + +For more information, see `Delete an Approval Rule Template `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/delete-branch.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/delete-branch.rst new file mode 100644 index 000000000..72c287795 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/delete-branch.rst @@ -0,0 +1,16 @@ +**To delete a branch** + +This example shows how to delete a branch in an AWS CodeCommit repository. + +Command:: + + aws codecommit delete-branch --repository-name MyDemoRepo --branch-name MyNewBranch + +Output:: + + { + "branch": { + "commitId": "317f8570EXAMPLE", + "branchName": "MyNewBranch" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/delete-comment-content.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/delete-comment-content.rst new file mode 100644 index 000000000..b3168f87d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/delete-comment-content.rst @@ -0,0 +1,24 @@ +**To delete the content of a comment** + +You can only delete the content of a comment if you created the comment. This example demonstrates how to delete the content of a comment with the system-generated ID of ``ff30b348EXAMPLEb9aa670f``. :: + + aws codecommit delete-comment-content \ + --comment-id ff30b348EXAMPLEb9aa670f + +Output:: + + { + "comment": { + "creationDate": 1508369768.142, + "deleted": true, + "lastModifiedDate": 1508369842.278, + "clientRequestToken": "123Example", + "commentId": "ff30b348EXAMPLEb9aa670f", + "authorArn": "arn:aws:iam::111111111111:user/Li_Juan", + "callerReactions": [], + "reactionCounts": + { + "CLAP" : 1 + } + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/delete-file.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/delete-file.rst new file mode 100755 index 000000000..992f69092 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/delete-file.rst @@ -0,0 +1,20 @@ +**To delete a file** + +The following ``delete-file`` example demonstrates how to delete a file named ``README.md`` from a branch named ``main`` with a most recent commit ID of ``c5709475EXAMPLE`` in a repository named ``MyDemoRepo``. :: + + aws codecommit delete-file \ + --repository-name MyDemoRepo \ + --branch-name main \ + --file-path README.md \ + --parent-commit-id c5709475EXAMPLE + +Output:: + + { + "blobId":"559b44fEXAMPLE", + "commitId":"353cf655EXAMPLE", + "filePath":"README.md", + "treeId":"6bc824cEXAMPLE" + } + +For more information, see `Edit or Delete a File in AWS CodeCommit `__ in the *AWS CodeCommit API Reference* guide. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/delete-pull-request-approval-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/delete-pull-request-approval-rule.rst new file mode 100644 index 000000000..b253f2d30 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/delete-pull-request-approval-rule.rst @@ -0,0 +1,15 @@ +**To delete an approval rule for a pull request** + +The following ``delete-pull-request-approval-rule`` example deletes the approval rule named ``My Approval Rule`` for the specified pull request. :: + + aws codecommit delete-pull-request-approval-rule \ + --approval-rule-name "My Approval Rule" \ + --pull-request-id 15 + +Output:: + + { + "approvalRuleId": "077d8e8a8-EXAMPLE" + } + +For more information, see `Edit or Delete an Approval Rule `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/delete-repository.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/delete-repository.rst new file mode 100644 index 000000000..c3232814e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/delete-repository.rst @@ -0,0 +1,13 @@ +**To delete a repository** + +This example shows how to delete an AWS CodeCommit repository. + +Command:: + + aws codecommit delete-repository --repository-name MyDemoRepo + +Output:: + + { + "repositoryId": "f7579e13-b83e-4027-aaef-650c0EXAMPLE" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/describe-merge-conflicts.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/describe-merge-conflicts.rst new file mode 100644 index 000000000..1bd3ead9b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/describe-merge-conflicts.rst @@ -0,0 +1,66 @@ +**To get detailed information about merge conflicts** + +The following ``describe-merge-conflicts`` example determines the merge conflicts for a file named ``readme.md`` in the specified source branch and destination branch using the THREE_WAY_MERGE strategy. :: + + aws codecommit describe-merge-conflicts \ + --source-commit-specifier feature-randomizationfeature \ + --destination-commit-specifier main \ + --merge-option THREE_WAY_MERGE \ + --file-path readme.md \ + --repository-name MyDemoRepo + +Output:: + + { + "conflictMetadata": { + "filePath": "readme.md", + "fileSizes": { + "source": 139, + "destination": 230, + "base": 85 + }, + "fileModes": { + "source": "NORMAL", + "destination": "NORMAL", + "base": "NORMAL" + }, + "objectTypes": { + "source": "FILE", + "destination": "FILE", + "base": "FILE" + }, + "numberOfConflicts": 1, + "isBinaryFile": { + "source": false, + "destination": false, + "base": false + }, + "contentConflict": true, + "fileModeConflict": false, + "objectTypeConflict": false, + "mergeOperations": { + "source": "M", + "destination": "M" + } + }, + "mergeHunks": [ + { + "isConflict": true, + "source": { + "startLine": 0, + "endLine": 3, + "hunkContent": "VGhpcyBpEXAMPLE=" + }, + "destination": { + "startLine": 0, + "endLine": 1, + "hunkContent": "VXNlIHRoEXAMPLE=" + } + } + ], + "destinationCommitId": "86958e0aEXAMPLE", + "sourceCommitId": "6ccd57fdEXAMPLE", + "baseCommitId": "767b69580EXAMPLE" + } + +For more information, see `Resolve Conflicts in a Pull Request `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/describe-pull-request-events.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/describe-pull-request-events.rst new file mode 100644 index 000000000..7297bc084 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/describe-pull-request-events.rst @@ -0,0 +1,27 @@ +**To view events in a pull request** + +The following ``describe-pull-request-events`` example retrieves the events for a pull request with the ID of '8'. :: + + aws codecommit describe-pull-request-events --pull-request-id 8 + +Output:: + + { + "pullRequestEvents": [ + { + "pullRequestId": "8", + "pullRequestEventType": "PULL_REQUEST_CREATED", + "eventDate": 1510341779.53, + "actor": "arn:aws:iam::111111111111:user/Zhang_Wei" + }, + { + "pullRequestStatusChangedEventMetadata": { + "pullRequestStatus": "CLOSED" + }, + "pullRequestId": "8", + "pullRequestEventType": "PULL_REQUEST_STATUS_CHANGED", + "eventDate": 1510341930.72, + "actor": "arn:aws:iam::111111111111:user/Jane_Doe" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/disassociate-approval-rule-template-from-repository.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/disassociate-approval-rule-template-from-repository.rst new file mode 100644 index 000000000..f3bc9ba67 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/disassociate-approval-rule-template-from-repository.rst @@ -0,0 +1,11 @@ +**To disassociate an approval rule template from a repository** + +The following ``disassociate-approval-rule-template-from-repository`` example disassociates the specified approval rule template from a repository named ``MyDemoRepo``. :: + + aws codecommit disassociate-approval-rule-template-from-repository \ + --repository-name MyDemoRepo \ + --approval-rule-template-name 1-approver-rule-for-all-pull-requests + +This command produces no output. + +For more information, see `Disassociate an Approval Rule Template `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/evaluate-pull-request-approval-rules.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/evaluate-pull-request-approval-rules.rst new file mode 100644 index 000000000..18a3d2c45 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/evaluate-pull-request-approval-rules.rst @@ -0,0 +1,24 @@ +**To evaluate whether a pull request has all of its approval rules satisfied** + +The following ``evaluate-pull-request-approval-rules`` example evaluates the state of approval rules on the specified pull request. In this example, an approval rule has not been satisfied for the pull request, so the output of the command shows an ``approved`` value of ``false``. :: + + aws codecommit evaluate-pull-request-approval-rules \ + --pull-request-id 27 \ + --revision-id 9f29d167EXAMPLE + +Output:: + + { + "evaluation": { + "approved": false, + "approvalRulesNotSatisfied": [ + "Require two approved approvers" + ], + "overridden": false, + "approvalRulesSatisfied": [] + } + } + + + +For more information, see `Merge a Pull Request `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-approval-rule-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-approval-rule-template.rst new file mode 100644 index 000000000..8fbd4dcf9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-approval-rule-template.rst @@ -0,0 +1,24 @@ +**To get the content of an approval rule template** + +The following ``get-approval-rule-template`` example gets the content of an approval rule template named ``1-approver-rule-for-all-pull-requests``. :: + + aws codecommit get-approval-rule-template \ + --approval-rule-template-name 1-approver-rule-for-all-pull-requests + +Output:: + + { + "approvalRuleTemplate": { + "approvalRuleTemplateContent": "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 1,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}", + "ruleContentSha256": "621181bbEXAMPLE", + "lastModifiedDate": 1571356106.936, + "creationDate": 1571356106.936, + "approvalRuleTemplateName": "1-approver-rule-for-all-pull-requests", + "lastModifiedUser": "arn:aws:iam::123456789012:user/Li_Juan", + "approvalRuleTemplateId": "a29abb15-EXAMPLE", + "approvalRuleTemplateDescription": "All pull requests must be approved by one developer on the team." + } + } + + +For more information, see `Manage Approval Rule Templates `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-blob.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-blob.rst new file mode 100644 index 000000000..6588a0a0e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-blob.rst @@ -0,0 +1,11 @@ +**To view information about a Git blob object** + +The following ``get-blob`` example retrieves information about a Git blob with the ID of '2eb4af3bEXAMPLE' in an AWS CodeCommit repository named 'MyDemoRepo'. :: + + aws codecommit get-blob --repository-name MyDemoRepo --blob-id 2eb4af3bEXAMPLE + +Output:: + + { + "content": "QSBCaW5hcnkgTGFyToEXAMPLE=" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-branch.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-branch.rst new file mode 100644 index 000000000..1100d3347 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-branch.rst @@ -0,0 +1,16 @@ +**To get information about a branch** + +This example gets information about a branch in an AWS CodeCommit repository. + +Command:: + + aws codecommit get-branch --repository-name MyDemoRepo --branch-name MyNewBranch + +Output:: + + { + "BranchInfo": { + "commitID": "317f8570EXAMPLE", + "branchName": "MyNewBranch" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-comment-reactions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-comment-reactions.rst new file mode 100644 index 000000000..ea4ddd44c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-comment-reactions.rst @@ -0,0 +1,49 @@ +**To view emoji reactions to a comment** + +The following ``get-comment-reactions`` example lists all emoji reactions to a comment with the ID of ``abcd1234EXAMPLEb5678efgh``. If the font for your shell supports displaying Emoji Version 1.0, then in the output for ``emoji`` the emoji is displayed. :: + + aws codecommit get-comment-reactions \ + --comment-id abcd1234EXAMPLEb5678efgh + +Output:: + + { + "reactionsForComment": { + [ + { + "reaction": { + "emoji:"??", + "shortCode": "thumbsup", + "unicode": "U+1F44D" + }, + "users": [ + "arn:aws:iam::123456789012:user/Li_Juan", + "arn:aws:iam::123456789012:user/Mary_Major", + "arn:aws:iam::123456789012:user/Jorge_Souza" + ] + }, + { + "reaction": { + "emoji": "??", + "shortCode": "thumbsdown", + "unicode": "U+1F44E" + }, + "users": [ + "arn:aws:iam::123456789012:user/Nikhil_Jayashankar" + ] + }, + { + "reaction": { + "emoji": "??", + "shortCode": "confused", + "unicode": "U+1F615" + }, + "users": [ + "arn:aws:iam::123456789012:user/Saanvi_Sarkar" + ] + } + ] + } + } + +For more information, see `Comment on a commit in AWS CodeCommit `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-comment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-comment.rst new file mode 100644 index 000000000..0983b0439 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-comment.rst @@ -0,0 +1,27 @@ +**To view details of a comment** + +This example demonstrates how to view details of a comment with the system-generated comment ID of ``ff30b348EXAMPLEb9aa670f``. :: + + aws codecommit get-comment \ + --comment-id ff30b348EXAMPLEb9aa670f + +Output:: + + { + "comment": { + "authorArn": "arn:aws:iam::111111111111:user/Li_Juan", + "clientRequestToken": "123Example", + "commentId": "ff30b348EXAMPLEb9aa670f", + "content": "Whoops - I meant to add this comment to the line, but I don't see how to delete it.", + "creationDate": 1508369768.142, + "deleted": false, + "commentId": "", + "lastModifiedDate": 1508369842.278, + "callerReactions": [], + "reactionCounts": + { + "SMILE" : 6, + "THUMBSUP" : 1 + } + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-comments-for-compared-commit.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-comments-for-compared-commit.rst new file mode 100644 index 000000000..bd4d68c4a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-comments-for-compared-commit.rst @@ -0,0 +1,61 @@ +**To view comments on a commit** + +This example demonstrates how to view view comments made on the comparison between two commits in a repository named ``MyDemoRepo``. :: + + aws codecommit get-comments-for-compared-commit \ + --repository-name MyDemoRepo \ + --before-commit-ID 6e147360EXAMPLE \ + --after-commit-id 317f8570EXAMPLE + +Output:: + + { + "commentsForComparedCommitData": [ + { + "afterBlobId": "1f330709EXAMPLE", + "afterCommitId": "317f8570EXAMPLE", + "beforeBlobId": "80906a4cEXAMPLE", + "beforeCommitId": "6e147360EXAMPLE", + "comments": [ + { + "authorArn": "arn:aws:iam::111111111111:user/Li_Juan", + "clientRequestToken": "123Example", + "commentId": "ff30b348EXAMPLEb9aa670f", + "content": "Whoops - I meant to add this comment to the line, not the file, but I don't see how to delete it.", + "creationDate": 1508369768.142, + "deleted": false, + "CommentId": "123abc-EXAMPLE", + "lastModifiedDate": 1508369842.278, + "callerReactions": [], + "reactionCounts": + { + "SMILE" : 6, + "THUMBSUP" : 1 + } + }, + { + "authorArn": "arn:aws:iam::111111111111:user/Li_Juan", + "clientRequestToken": "123Example", + "commentId": "553b509bEXAMPLE56198325", + "content": "Can you add a test case for this?", + "creationDate": 1508369612.240, + "deleted": false, + "commentId": "456def-EXAMPLE", + "lastModifiedDate": 1508369612.240, + "callerReactions": [], + "reactionCounts": + { + "THUMBSUP" : 2 + } + } + ], + "location": { + "filePath": "cl_sample.js", + "filePosition": 1232, + "relativeFileVersion": "after" + }, + "repositoryName": "MyDemoRepo" + } + ], + "nextToken": "exampleToken" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-comments-for-pull-request.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-comments-for-pull-request.rst new file mode 100644 index 000000000..7a1fde02d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-comments-for-pull-request.rst @@ -0,0 +1,60 @@ +**To view comments for a pull request** + +This example demonstrates how to view comments for a pull request in a repository named ``MyDemoRepo``. :: + + aws codecommit get-comments-for-pull-request \ + --repository-name MyDemoRepo \ + --before-commit-ID 317f8570EXAMPLE \ + --after-commit-id 5d036259EXAMPLE + +Output:: + + { + "commentsForPullRequestData": [ + { + "afterBlobId": "1f330709EXAMPLE", + "afterCommitId": "5d036259EXAMPLE", + "beforeBlobId": "80906a4cEXAMPLE", + "beforeCommitId": "317f8570EXAMPLE", + "comments": [ + { + "authorArn": "arn:aws:iam::111111111111:user/Saanvi_Sarkar", + "clientRequestToken": "", + "commentId": "abcd1234EXAMPLEb5678efgh", + "content": "These don't appear to be used anywhere. Can we remove them?", + "creationDate": 1508369622.123, + "deleted": false, + "lastModifiedDate": 1508369622.123, + "callerReactions": [], + "reactionCounts": + { + "THUMBSUP" : 6, + "CONFUSED" : 1 + } + }, + { + "authorArn": "arn:aws:iam::111111111111:user/Li_Juan", + "clientRequestToken": "", + "commentId": "442b498bEXAMPLE5756813", + "content": "Good catch. I'll remove them.", + "creationDate": 1508369829.104, + "deleted": false, + "lastModifiedDate": 150836912.273, + "callerReactions": ["THUMBSUP"] + "reactionCounts": + { + "THUMBSUP" : 14 + } + } + ], + "location": { + "filePath": "ahs_count.py", + "filePosition": 367, + "relativeFileVersion": "AFTER" + }, + "repositoryName": "MyDemoRepo", + "pullRequestId": "42" + } + ], + "nextToken": "exampleToken" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-commit.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-commit.rst new file mode 100644 index 000000000..3453d3c89 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-commit.rst @@ -0,0 +1,30 @@ +**To view information about a commit in a repository** + +This example shows details about a commit with the system-generated ID of '7e9fd3091thisisanexamplethisisanexample1' in an AWS CodeCommit repository named 'MyDemoRepo'. + +Command:: + + aws codecommit get-commit --repository-name MyDemoRepo --commit-id 7e9fd3091thisisanexamplethisisanexample1 + +Output:: + + { + "commit": { + "additionalData": "", + "committer": { + "date": "1484167798 -0800", + "name": "Mary Major", + "email": "mary_major@example.com" + }, + "author": { + "date": "1484167798 -0800", + "name": "Mary Major", + "email": "mary_major@example.com" + }, + "treeId": "347a3408thisisanexampletreeidexample", + "parents": [ + "7aa87a031thisisanexamplethisisanexample1" + ], + "message": "Fix incorrect variable name" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-differences.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-differences.rst new file mode 100644 index 000000000..f60f40333 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-differences.rst @@ -0,0 +1,27 @@ +**To get information about differences for a commit specifier in a repository** + +This example shows view metadata information about changes between two commit specifiers (branch, tag, HEAD, or other fully qualified references, such as commit IDs) in a renamed folder in AWS CodeCommit repository named MyDemoRepo. The example includes several options that are not required, including --before-commit-specifier, --before-path, and --after-path, in order to more fully illustrate how you can use these options to limit the results. The response includes file mode permissions. + +Command:: + + aws codecommit get-differences --repository-name MyDemoRepo --before-commit-specifier 955bba12thisisanexamplethisisanexample --after-commit-specifier 14a95463thisisanexamplethisisanexample --before-path tmp/example-folder --after-path tmp/renamed-folder + +Output:: + + { + "differences": [ + { + "afterBlob": { + "path": "blob.txt", + "blobId": "2eb4af3b1thisisanexamplethisisanexample1", + "mode": "100644" + }, + "changeType": "M", + "beforeBlob": { + "path": "blob.txt", + "blobId": "bf7fcf281thisisanexamplethisisanexample1", + "mode": "100644" + } + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-file.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-file.rst new file mode 100755 index 000000000..5306d5532 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-file.rst @@ -0,0 +1,21 @@ +**To get the base-64 encoded contents of a file in an AWS CodeCommit repository** + +The following ``get-file`` example demonstrates how to get the base-64 encoded contents of a file named ``README.md`` from a branch named ``main`` in a repository named ``MyDemoRepo``. :: + + aws codecommit get-file \ + --repository-name MyDemoRepo \ + --commit-specifier main \ + --file-path README.md + +Output:: + + { + "blobId":"559b44fEXAMPLE", + "commitId":"c5709475EXAMPLE", + "fileContent":"IyBQaHVzEXAMPLE", + "filePath":"README.md", + "fileMode":"NORMAL", + "fileSize":1563 + } + +For more information, see `GetFile `__ in the *AWS CodeCommit API Reference* guide. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-folder.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-folder.rst new file mode 100755 index 000000000..011992d12 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-folder.rst @@ -0,0 +1,63 @@ +**To get the contents of a folder in an AWS CodeCommit repository** + +The following ``get-folder`` example demonstrates how to get the contents of a top-level folder from a repository named ``MyDemoRepo``. :: + + aws codecommit get-folder --repository-name MyDemoRepo --folder-path "" + +Output:: + + { + "commitId":"c5709475EXAMPLE", + "files":[ + { + "absolutePath":".gitignore", + "blobId":"74094e8bEXAMPLE", + "fileMode":"NORMAL", + "relativePath":".gitignore" + }, + { + "absolutePath":"Gemfile", + "blobId":"9ceb72f6EXAMPLE", + "fileMode":"NORMAL", + "relativePath":"Gemfile" + }, + { + "absolutePath":"Gemfile.lock", + "blobId":"795c4a2aEXAMPLE", + "fileMode":"NORMAL", + "relativePath":"Gemfile.lock" + }, + { + "absolutePath":"LICENSE.txt", + "blobId":"0c7932c8EXAMPLE", + "fileMode":"NORMAL", + "relativePath":"LICENSE.txt" + }, + { + "absolutePath":"README.md", + "blobId":"559b44feEXAMPLE", + "fileMode":"NORMAL", + "relativePath":"README.md" + } + ], + "folderPath":"", + "subFolders":[ + { + "absolutePath":"public", + "relativePath":"public", + "treeId":"d5e92ae3aEXAMPLE" + }, + { + "absolutePath":"tmp", + "relativePath":"tmp", + "treeId":"d564d0bcEXAMPLE" + } + ], + "subModules":[], + "symbolicLinks":[], + "treeId":"7b3c4dadEXAMPLE" + } + +For more information, see `GetFolder`_ in the *AWS CodeCommit API Reference* guide. + +.. _`GetFolder`: https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetFolder.html diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-merge-commit.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-merge-commit.rst new file mode 100644 index 000000000..84fd5fcb9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-merge-commit.rst @@ -0,0 +1,19 @@ +**To get detailed information about a merge commit** + +The following ``get-merge-commit`` example displays details about a merge commit for the source branch named ``bugfix-bug1234`` with a destination branch named ``main`` in a repository named ``MyDemoRepo``. :: + + aws codecommit get-merge-commit \ + --source-commit-specifier bugfix-bug1234 \ + --destination-commit-specifier main \ + --repository-name MyDemoRepo + +Output:: + + { + "sourceCommitId": "c5709475EXAMPLE", + "destinationCommitId": "317f8570EXAMPLE", + "baseCommitId": "fb12a539EXAMPLE", + "mergeCommitId": "ffc4d608eEXAMPLE" + } + +For more information, see `View Commit Details `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-merge-conflicts.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-merge-conflicts.rst new file mode 100644 index 000000000..e09b0d7db --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-merge-conflicts.rst @@ -0,0 +1,51 @@ +**To view whether there are any merge conflicts for a pull request** + +The following ``get-merge-conflicts`` example displays whether there are any merge conflicts between the tip of a source branch named ``feature-randomizationfeature`` and a destination branch named 'main' in a repository named ``MyDemoRepo``. :: + + aws codecommit get-merge-conflicts \ + --repository-name MyDemoRepo \ + --source-commit-specifier feature-randomizationfeature \ + --destination-commit-specifier main \ + --merge-option THREE_WAY_MERGE + +Output:: + + { + "mergeable": false, + "destinationCommitId": "86958e0aEXAMPLE", + "sourceCommitId": "6ccd57fdEXAMPLE", + "baseCommitId": "767b6958EXAMPLE", + "conflictMetadataList": [ + { + "filePath": "readme.md", + "fileSizes": { + "source": 139, + "destination": 230, + "base": 85 + }, + "fileModes": { + "source": "NORMAL", + "destination": "NORMAL", + "base": "NORMAL" + }, + "objectTypes": { + "source": "FILE", + "destination": "FILE", + "base": "FILE" + }, + "numberOfConflicts": 1, + "isBinaryFile": { + "source": false, + "destination": false, + "base": false + }, + "contentConflict": true, + "fileModeConflict": false, + "objectTypeConflict": false, + "mergeOperations": { + "source": "M", + "destination": "M" + } + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-merge-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-merge-options.rst new file mode 100644 index 000000000..a7c47920c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-merge-options.rst @@ -0,0 +1,23 @@ +**To get information about the merge options available for merging two specified branches** + +The following ``get-merge-options`` example determines the merge options available for merging a source branch named ``bugfix-bug1234`` with a destination branch named ``main`` in a repository named ``MyDemoRepo``. :: + + aws codecommit get-merge-options \ + --source-commit-specifier bugfix-bug1234 \ + --destination-commit-specifier main \ + --repository-name MyDemoRepo + +Output:: + + { + "mergeOptions": [ + "FAST_FORWARD_MERGE", + "SQUASH_MERGE", + "THREE_WAY_MERGE" + ], + "sourceCommitId": "18059494EXAMPLE", + "destinationCommitId": "ffd3311dEXAMPLE", + "baseCommitId": "ffd3311dEXAMPLE" + } + +For more information, see `Resolve Conflicts in a Pull Request `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-pull-request-approval-states.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-pull-request-approval-states.rst new file mode 100644 index 000000000..eca46826c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-pull-request-approval-states.rst @@ -0,0 +1,20 @@ +**To view approvals on a pull request** + +The following ``get-pull-request-approval-states`` example returns approvals for the specified pull request. :: + + aws codecommit get-pull-request-approval-states \ + --pull-request-id 8 \ + --revision-id 9f29d167EXAMPLE + +Output:: + + { + "approvals": [ + { + "userArn": "arn:aws:iam::123456789012:user/Mary_Major", + "approvalState": "APPROVE" + } + ] + } + +For more information, see `View Pull Requests `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-pull-request-override-state.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-pull-request-override-state.rst new file mode 100644 index 000000000..6b7e0641f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-pull-request-override-state.rst @@ -0,0 +1,16 @@ +**To get information about the override status of a pull request** + +The following ``get-pull-request-override-state`` example returns the override state for the specified pull request. In this example, the approval rules for the pull request were overridden by a user named Mary Major, so the output returns a value of ``true``.:: + + aws codecommit get-pull-request-override-state \ + --pull-request-id 34 \ + --revision-id 9f29d167EXAMPLE + +Output:: + + { + "overridden": true, + "overrider": "arn:aws:iam::123456789012:user/Mary_Major" + } + +For more information, see `Override Approval Rules on a Pull Request `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-pull-request.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-pull-request.rst new file mode 100644 index 000000000..d3463d785 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-pull-request.rst @@ -0,0 +1,45 @@ +**To view details of a pull request** + +This example demonstrates how to view information about a pull request with the ID of ``27``. :: + + aws codecommit get-pull-request \ + --pull-request-id 27 + +Output:: + + { + "pullRequest": { + "approvalRules": [ + { + "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}", + "approvalRuleId": "dd8b17fe-EXAMPLE", + "approvalRuleName": "2-approver-rule-for-main", + "creationDate": 1571356106.936, + "lastModifiedDate": 571356106.936, + "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major", + "ruleContentSha256": "4711b576EXAMPLE" + } + ], + "lastActivityDate": 1562619583.565, + "pullRequestTargets": [ + { + "sourceCommit": "ca45e279EXAMPLE", + "sourceReference": "refs/heads/bugfix-1234", + "mergeBase": "a99f5ddbEXAMPLE", + "destinationReference": "refs/heads/main", + "mergeMetadata": { + "isMerged": false + }, + "destinationCommit": "2abfc6beEXAMPLE", + "repositoryName": "MyDemoRepo" + } + ], + "revisionId": "e47def21EXAMPLE", + "title": "Quick fix for bug 1234", + "authorArn": "arn:aws:iam::123456789012:user/Nikhil_Jayashankar", + "clientRequestToken": "d8d7612e-EXAMPLE", + "creationDate": 1562619583.565, + "pullRequestId": "27", + "pullRequestStatus": "OPEN" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-repository-triggers.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-repository-triggers.rst new file mode 100644 index 000000000..7e92b30bb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-repository-triggers.rst @@ -0,0 +1,35 @@ +**To get information about triggers in a repository** + +This example shows details about triggers configured for an AWS CodeCommit repository named ``MyDemoRepo``. :: + + aws codecommit get-repository-triggers \ + --repository-name MyDemoRepo + +Output:: + + { + "configurationId": "f7579e13-b83e-4027-aaef-650c0EXAMPLE", + "triggers": [ + { + "destinationArn": "arn:aws:sns:us-east-1:111111111111:MyCodeCommitTopic", + "branches": [ + "main", + "preprod" + ], + "name": "MyFirstTrigger", + "customData": "", + "events": [ + "all" + ] + }, + { + "destinationArn": "arn:aws:lambda:us-east-1:111111111111:function:MyCodeCommitPythonFunction", + "branches": [], + "name": "MySecondTrigger", + "customData": "EXAMPLE", + "events": [ + "all" + ] + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-repository.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-repository.rst new file mode 100644 index 000000000..cae30a630 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/get-repository.rst @@ -0,0 +1,23 @@ +**To get information about a repository** + +This example shows details about an AWS CodeCommit repository. :: + + aws codecommit get-repository \ + --repository-name MyDemoRepo + +Output:: + + { + "repositoryMetadata": { + "creationDate": 1429203623.625, + "defaultBranch": "main", + "repositoryName": "MyDemoRepo", + "cloneUrlSsh": "ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/v1/repos/MyDemoRepo", + "lastModifiedDate": 1430783812.0869999, + "repositoryDescription": "My demonstration repository", + "cloneUrlHttp": "https://codecommit.us-east-1.amazonaws.com/v1/repos/MyDemoRepo", + "repositoryId": "f7579e13-b83e-4027-aaef-650c0EXAMPLE", + "Arn": "arn:aws:codecommit:us-east-1:80398EXAMPLE:MyDemoRepo + "accountId": "111111111111" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/list-approval-rule-templates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/list-approval-rule-templates.rst new file mode 100644 index 000000000..9139121ca --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/list-approval-rule-templates.rst @@ -0,0 +1,17 @@ +**To list all approval rule templates in an AWS Region** + +The following ``list-approval-rule-templates`` example lists all approval rule templates in the specified Region. If no AWS Region is specified as a parameter, the command returns approval rule templates for the region specified in the AWS CLI profile used to run the command. :: + + aws codecommit list-approval-rule-templates \ + --region us-east-2 + +Output:: + + { + "approvalRuleTemplateNames": [ + "2-approver-rule-for-main", + "1-approver-rule-for-all-pull-requests" + ] + } + +For more information, see `Manage Approval Rule Templates `__ in the *AWS CodeCommit User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/list-associated-approval-rule-templates-for-repository.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/list-associated-approval-rule-templates-for-repository.rst new file mode 100644 index 000000000..89d1d8088 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/list-associated-approval-rule-templates-for-repository.rst @@ -0,0 +1,17 @@ +**To list all templates associated with a repository** + +The following ``list-associated-approval-rule-templates-for-repository`` example lists all approval rule templates associated with a repository named ``MyDemoRepo``. :: + + aws codecommit list-associated-approval-rule-templates-for-repository \ + --repository-name MyDemoRepo + +Output:: + + { + "approvalRuleTemplateNames": [ + "2-approver-rule-for-main", + "1-approver-rule-for-all-pull-requests" + ] + } + +For more information, see `Manage Approval Rule Templates `__ in the *AWS CodeCommit User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/list-branches.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/list-branches.rst new file mode 100644 index 000000000..510fc7a5b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/list-branches.rst @@ -0,0 +1,15 @@ +**To view a list of branch names** + +This example lists all branch names in an AWS CodeCommit repository. :: + + aws codecommit list-branches \ + --repository-name MyDemoRepo + +Output:: + + { + "branches": [ + "MyNewBranch", + "main" + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/list-pull-requests.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/list-pull-requests.rst new file mode 100644 index 000000000..314a0c120 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/list-pull-requests.rst @@ -0,0 +1,12 @@ +**To view a list of pull requests in a repository** + +This example demonstrates how to list pull requests created by an IAM user with the ARN 'arn:aws:iam::111111111111:user/Li_Juan' and the status of 'CLOSED' in an AWS CodeCommit repository named 'MyDemoRepo':: + + aws codecommit list-pull-requests --author-arn arn:aws:iam::111111111111:user/Li_Juan --pull-request-status CLOSED --repository-name MyDemoRepo + +Output:: + + { + "nextToken": "", + "pullRequestIds": ["2","12","16","22","23","35","30","39","47"] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/list-repositories-for-approval-rule-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/list-repositories-for-approval-rule-template.rst new file mode 100644 index 000000000..dc75aa2d9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/list-repositories-for-approval-rule-template.rst @@ -0,0 +1,17 @@ +**To list all repositories associated with a template** + +The following ``list-repositories-for-approval-rule-template`` example lists all repositories associated with the specified approval rule template. :: + + aws codecommit list-repositories-for-approval-rule-template \ + --approval-rule-template-name 2-approver-rule-for-main + +Output:: + + { + "repositoryNames": [ + "MyDemoRepo", + "MyClonedRepo" + ] + } + +For more information, see `Manage Approval Rule Templates `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/list-repositories.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/list-repositories.rst new file mode 100644 index 000000000..7c37e0c2a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/list-repositories.rst @@ -0,0 +1,22 @@ +**To view a list of repositories** + +This example lists all AWS CodeCommit repositories associated with the user's AWS account. + +Command:: + + aws codecommit list-repositories + +Output:: + + { + "repositories": [ + { + "repositoryName": "MyDemoRepo" + "repositoryId": "f7579e13-b83e-4027-aaef-650c0EXAMPLE", + }, + { + "repositoryName": "MyOtherDemoRepo" + "repositoryId": "cfc29ac4-b0cb-44dc-9990-f6f51EXAMPLE" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/list-tags-for-resource.rst new file mode 100644 index 000000000..e1d31595f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/list-tags-for-resource.rst @@ -0,0 +1,18 @@ +**To view the AWS tags for a repository** + +The following ``list-tags-for-resource`` example lists tag keys and tag values for the specified repository. :: + + aws codecommit list-tags-for-resource \ + --resource-arn arn:aws:codecommit:us-west-2:111111111111:MyDemoRepo + +Output:: + + { + "tags": { + "Status": "Secret", + "Team": "Saanvi" + } + } + + +For more information, see `View Tags for a Repository `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/merge-branches-by-fast-forward.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/merge-branches-by-fast-forward.rst new file mode 100644 index 000000000..06e051d54 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/merge-branches-by-fast-forward.rst @@ -0,0 +1,17 @@ +**To merge two branches using the fast-forward merge strategy** + +The following ``merge-branches-by-fast-forward`` example merges the specified source branch with the specified destination branch in a repository named ``MyDemoRepo``. :: + + aws codecommit merge-branches-by-fast-forward \ + --source-commit-specifier bugfix-bug1234 \ + --destination-commit-specifier bugfix-bug1233 \ + --repository-name MyDemoRepo + +Output:: + + { + "commitId": "4f178133EXAMPLE", + "treeId": "389765daEXAMPLE" + } + +For more information, see `Compare and Merge Branches `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/merge-branches-by-squash.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/merge-branches-by-squash.rst new file mode 100644 index 000000000..8f2a46a01 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/merge-branches-by-squash.rst @@ -0,0 +1,21 @@ +**To merge two branches using the squash merge strategy** + +The following ``merge-branches-by-squash`` example merges the specified source branch with the specified destination branch in a repository named ``MyDemoRepo``. :: + + aws codecommit merge-branches-by-squash \ + --source-commit-specifier bugfix-bug1234 \ + --destination-commit-specifier bugfix-bug1233 \ + --author-name "Maria Garcia" \ + --email "maria_garcia@example.com" \ + --commit-message "Merging two fix branches to prepare for a general patch." \ + --repository-name MyDemoRepo + +Output:: + + { + "commitId": "4f178133EXAMPLE", + "treeId": "389765daEXAMPLE" + } + + +For more information, see `Compare and Merge Branches `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/merge-branches-by-three-way.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/merge-branches-by-three-way.rst new file mode 100644 index 000000000..e24f61433 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/merge-branches-by-three-way.rst @@ -0,0 +1,19 @@ +**To merge two branches using the three-way merge strategy** + +The following ``merge-branches-by-three-way`` example merges the specified source branch with the specified destination branch in a repository named ``MyDemoRepo``. :: + + aws codecommit merge-branches-by-three-way \ + --source-commit-specifier main \ + --destination-commit-specifier bugfix-bug1234 \ + --author-name "Jorge Souza" --email "jorge_souza@example.com" \ + --commit-message "Merging changes from main to bugfix branch before additional testing." \ + --repository-name MyDemoRepo + +Output:: + + { + "commitId": "4f178133EXAMPLE", + "treeId": "389765daEXAMPLE" + } + +For more information, see `Compare and Merge Branches `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/merge-pull-request-by-fast-forward.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/merge-pull-request-by-fast-forward.rst new file mode 100644 index 000000000..f7c5c1d70 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/merge-pull-request-by-fast-forward.rst @@ -0,0 +1,49 @@ +**To merge and close a pull request** + +This example demonstrates how to merge and close a pull request with the ID of '47' and a source commit ID of '99132ab0EXAMPLE' in a repository named ``MyDemoRepo``. :: + + aws codecommit merge-pull-request-by-fast-forward \ + --pull-request-id 47 \ + --source-commit-id 99132ab0EXAMPLE \ + --repository-name MyDemoRepo + +Output:: + + { + "pullRequest": { + "approvalRules": [ + { + "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 1,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}", + "approvalRuleId": "dd8b17fe-EXAMPLE", + "approvalRuleName": "I want one approver for this pull request", + "creationDate": 1571356106.936, + "lastModifiedDate": 571356106.936, + "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major", + "ruleContentSha256": "4711b576EXAMPLE" + } + ], + "authorArn": "arn:aws:iam::123456789012:user/Li_Juan", + "clientRequestToken": "", + "creationDate": 1508530823.142, + "description": "Review the latest changes and updates to the global variables", + "lastActivityDate": 1508887223.155, + "pullRequestId": "47", + "pullRequestStatus": "CLOSED", + "pullRequestTargets": [ + { + "destinationCommit": "9f31c968EXAMPLE", + "destinationReference": "refs/heads/main", + "mergeMetadata": { + "isMerged": true, + "mergedBy": "arn:aws:iam::123456789012:user/Mary_Major" + }, + "repositoryName": "MyDemoRepo", + "sourceCommit": "99132ab0EXAMPLE", + "sourceReference": "refs/heads/variables-branch" + } + ], + "title": "Consolidation of global variables" + } + } + +For more information, see `Merge a Pull Request `__ in the *AWS CodeCommit User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/merge-pull-request-by-squash.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/merge-pull-request-by-squash.rst new file mode 100644 index 000000000..854625dfe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/merge-pull-request-by-squash.rst @@ -0,0 +1,57 @@ +**To merge a pull request using the squash merge strategy** + +The following ``merge-pull-request-by-squash`` example merges and closes the specified pull request using the conflict resolution strategy of ACCEPT_SOURCE in a repository named ``MyDemoRepo``. :: + + aws codecommit merge-pull-request-by-squash \ + --pull-request-id 47 \ + --source-commit-id 99132ab0EXAMPLE \ + --repository-name MyDemoRepo \ + --conflict-detail-level LINE_LEVEL \ + --conflict-resolution-strategy ACCEPT_SOURCE \ + --name "Jorge Souza" --email "jorge_souza@example.com" \ + --commit-message "Merging pull request 47 by squash and accepting source in merge conflicts" + +Output:: + + { + "pullRequest": { + "approvalRules": [ + { + "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}", + "approvalRuleId": "dd8b17fe-EXAMPLE", + "approvalRuleName": "2-approver-rule-for-main", + "creationDate": 1571356106.936, + "lastModifiedDate": 571356106.936, + "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major", + "originApprovalRuleTemplate": { + "approvalRuleTemplateId": "dd8b17fe-EXAMPLE", + "approvalRuleTemplateName": "2-approver-rule-for-main" + }, + "ruleContentSha256": "4711b576EXAMPLE" + } + ], + "authorArn": "arn:aws:iam::123456789012:user/Li_Juan", + "clientRequestToken": "", + "creationDate": 1508530823.142, + "description": "Review the latest changes and updates to the global variables", + "lastActivityDate": 1508887223.155, + "pullRequestId": "47", + "pullRequestStatus": "CLOSED", + "pullRequestTargets": [ + { + "destinationCommit": "9f31c968EXAMPLE", + "destinationReference": "refs/heads/main", + "mergeMetadata": { + "isMerged": true, + "mergedBy": "arn:aws:iam::123456789012:user/Mary_Major" + }, + "repositoryName": "MyDemoRepo", + "sourceCommit": "99132ab0EXAMPLE", + "sourceReference": "refs/heads/variables-branch" + } + ], + "title": "Consolidation of global variables" + } + } + +For more information, see `Merge a Pull Request `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/merge-pull-request-by-three-way.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/merge-pull-request-by-three-way.rst new file mode 100644 index 000000000..692389251 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/merge-pull-request-by-three-way.rst @@ -0,0 +1,56 @@ +**To merge a pull request using the three-way merge strategy** + +The following ``merge-pull-request-by-three-way`` example merges and closes the specified pull request using the default options for conflict detail and conflict resolution strategy in a repository named ``MyDemoRepo``. :: + + aws codecommit merge-pull-request-by-three-way \ + --pull-request-id 47 \ + --source-commit-id 99132ab0EXAMPLE \ + --repository-name MyDemoRepo \ + --name "Maria Garcia" \ + --email "maria_garcia@example.com" \ + --commit-message "Merging pull request 47 by three-way with default options" + +Output:: + + { + "pullRequest": { + "approvalRules": [ + { + "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}", + "approvalRuleId": "dd8b17fe-EXAMPLE", + "approvalRuleName": "2-approver-rule-for-main", + "creationDate": 1571356106.936, + "lastModifiedDate": 571356106.936, + "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major", + "originApprovalRuleTemplate": { + "approvalRuleTemplateId": "dd8b17fe-EXAMPLE", + "approvalRuleTemplateName": "2-approver-rule-for-main" + }, + "ruleContentSha256": "4711b576EXAMPLE" + } + ], + "authorArn": "arn:aws:iam::123456789012:user/Li_Juan", + "clientRequestToken": "", + "creationDate": 1508530823.142, + "description": "Review the latest changes and updates to the global variables", + "lastActivityDate": 1508887223.155, + "pullRequestId": "47", + "pullRequestStatus": "CLOSED", + "pullRequestTargets": [ + { + "destinationCommit": "9f31c968EXAMPLE", + "destinationReference": "refs/heads/main", + "mergeMetadata": { + "isMerged": true, + "mergedBy": "arn:aws:iam::123456789012:user/Mary_Major" + }, + "repositoryName": "MyDemoRepo", + "sourceCommit": "99132ab0EXAMPLE", + "sourceReference": "refs/heads/variables-branch" + } + ], + "title": "Consolidation of global variables" + } + } + +For more information, see `Merge a Pull Request `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/override-pull-request-approval-rules.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/override-pull-request-approval-rules.rst new file mode 100644 index 000000000..eca56fa04 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/override-pull-request-approval-rules.rst @@ -0,0 +1,12 @@ +**To override approval rule requirements on a pull request** + +The following ``override-pull-request-approval-rules`` example overrides approval rules on the specified pull request. To revoke an override instead, set the ``--override-status`` parameter value to ``REVOKE``. :: + + aws codecommit override-pull-request-approval-rules \ + --pull-request-id 34 \ + --revision-id 927df8d8EXAMPLE \ + --override-status OVERRIDE + +This command produces no output. + +For more information, see `Override Approval Rules on a Pull Request `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/post-comment-for-compared-commit.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/post-comment-for-compared-commit.rst new file mode 100644 index 000000000..d478788e4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/post-comment-for-compared-commit.rst @@ -0,0 +1,39 @@ +**To create a comment on a commit** + +This example demonstrates how to add the comment ``"Can you add a test case for this?"`` on the change to the ``cl_sample.js`` file in the comparison between two commits in a repository named ``MyDemoRepo``. :: + + aws codecommit post-comment-for-compared-commit \ + --repository-name MyDemoRepo \ + --before-commit-id 317f8570EXAMPLE \ + --after-commit-id 5d036259EXAMPLE \ + --client-request-token 123Example \ + --content "Can you add a test case for this?" \ + --location filePath=cl_sample.js,filePosition=1232,relativeFileVersion=AFTER + +Output:: + + { + "afterBlobId": "1f330709EXAMPLE", + "afterCommitId": "317f8570EXAMPLE", + "beforeBlobId": "80906a4cEXAMPLE", + "beforeCommitId": "6e147360EXAMPLE", + "comment": { + "authorArn": "arn:aws:iam::111111111111:user/Li_Juan", + "clientRequestToken": "", + "commentId": "553b509bEXAMPLE56198325", + "content": "Can you add a test case for this?", + "creationDate": 1508369612.203, + "deleted": false, + "commentId": "abc123-EXAMPLE", + "lastModifiedDate": 1508369612.203, + "callerReactions": [], + "reactionCounts": [] + }, + "location": { + "filePath": "cl_sample.js", + "filePosition": 1232, + "relativeFileVersion": "AFTER" + , + "repositoryName": "MyDemoRepo" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/post-comment-for-pull-request.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/post-comment-for-pull-request.rst new file mode 100644 index 000000000..601332070 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/post-comment-for-pull-request.rst @@ -0,0 +1,40 @@ +**To add a comment to a pull request** + +The following ``post-comment-for-pull-request`` example adds the comment "These don't appear to be used anywhere. Can we remove them?" on the change to the ``ahs_count.py`` file in a pull request with the ID of ``47`` in a repository named ``MyDemoRepo``. :: + + aws codecommit post-comment-for-pull-request \ + --pull-request-id "47" \ + --repository-name MyDemoRepo \ + --before-commit-id 317f8570EXAMPLE \ + --after-commit-id 5d036259EXAMPLE \ + --client-request-token 123Example \ + --content "These don't appear to be used anywhere. Can we remove them?" \ + --location filePath=ahs_count.py,filePosition=367,relativeFileVersion=AFTER + +Output:: + + { + "afterBlobId": "1f330709EXAMPLE", + "afterCommitId": "5d036259EXAMPLE", + "beforeBlobId": "80906a4cEXAMPLE", + "beforeCommitId": "317f8570EXAMPLE", + "comment": { + "authorArn": "arn:aws:iam::111111111111:user/Saanvi_Sarkar", + "clientRequestToken": "123Example", + "commentId": "abcd1234EXAMPLEb5678efgh", + "content": "These don't appear to be used anywhere. Can we remove them?", + "creationDate": 1508369622.123, + "deleted": false, + "CommentId": "", + "lastModifiedDate": 1508369622.123, + "callerReactions": [], + "reactionCounts": [] + }, + "location": { + "filePath": "ahs_count.py", + "filePosition": 367, + "relativeFileVersion": "AFTER" + }, + "repositoryName": "MyDemoRepo", + "pullRequestId": "47" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/post-comment-reply.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/post-comment-reply.rst new file mode 100644 index 000000000..c72a0d549 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/post-comment-reply.rst @@ -0,0 +1,25 @@ +**To reply to a comment on a commit or in a pull request** + +This example demonstrates how to add the reply ``"Good catch. I'll remove them."`` to the comment with the system-generated ID of ``abcd1234EXAMPLEb5678efgh``. :: + + aws codecommit post-comment-reply \ + --in-reply-to abcd1234EXAMPLEb5678efgh \ + --content "Good catch. I'll remove them." \ + --client-request-token 123Example + +Output:: + + { + "comment": { + "authorArn": "arn:aws:iam::111111111111:user/Li_Juan", + "clientRequestToken": "123Example", + "commentId": "442b498bEXAMPLE5756813", + "content": "Good catch. I'll remove them.", + "creationDate": 1508369829.136, + "deleted": false, + "CommentId": "abcd1234EXAMPLEb5678efgh", + "lastModifiedDate": 150836912.221, + "callerReactions": [], + "reactionCounts": [] + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/put-comment-reaction.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/put-comment-reaction.rst new file mode 100644 index 000000000..de271d1a3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/put-comment-reaction.rst @@ -0,0 +1,11 @@ +**To reply to a comment on a commit with an emoji** + +The following ``put-comment-reaction`` example replies to a comment with the ID of ``abcd1234EXAMPLEb5678efgh`` with an emoji reaction value of ``:thumbsup:``. :: + + aws codecommit put-comment-reaction \ + --comment-id abcd1234EXAMPLEb5678efgh \ + --reaction-value :thumbsup: + +This command produces no output. + +For more information, see `Comment on a commit in AWS CodeCommit `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/put-file.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/put-file.rst new file mode 100644 index 000000000..ff9c8a414 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/put-file.rst @@ -0,0 +1,21 @@ +**To add a file to a repository** + +The following ``put-file`` example adds a file named 'ExampleSolution.py' to a repository named 'MyDemoRepo' to a branch named 'feature-randomizationfeature' whose most recent commit has an ID of '4c925148EXAMPLE'. :: + + aws codecommit put-file \ + --repository-name MyDemoRepo \ + --branch-name feature-randomizationfeature \ + --file-content file://MyDirectory/ExampleSolution.py \ + --file-path /solutions/ExampleSolution.py \ + --parent-commit-id 4c925148EXAMPLE \ + --name "Maria Garcia" \ + --email "maria_garcia@example.com" \ + --commit-message "I added a third randomization routine." + +Output:: + + { + "blobId": "2eb4af3bEXAMPLE", + "commitId": "317f8570EXAMPLE", + "treeId": "347a3408EXAMPLE" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/put-repository-triggers.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/put-repository-triggers.rst new file mode 100644 index 000000000..aa42a73d2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/put-repository-triggers.rst @@ -0,0 +1,41 @@ +**To add or update a trigger in a repository** + +This example demonstrates how to update triggers named 'MyFirstTrigger' and 'MySecondTrigger' using an already-created JSON file (here named MyTriggers.json) that contains the structure of all the triggers for a repository named MyDemoRepo. To learn how to get the JSON for existing triggers, see the get-repository-triggers command. :: + + aws codecommit put-repository-triggers \ + --repository-name MyDemoRepo file://MyTriggers.json + +Contents of ``MyTriggers.json``:: + + { + "repositoryName": "MyDemoRepo", + "triggers": [ + { + "destinationArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MyCodeCommitTopic", + "branches": [ + "main", + "preprod" + ], + "name": "MyFirstTrigger", + "customData": "", + "events": [ + "all" + ] + }, + { + "destinationArn": "arn:aws:lambda:us-east-1:111111111111:function:MyCodeCommitPythonFunction", + "branches": [], + "name": "MySecondTrigger", + "customData": "EXAMPLE", + "events": [ + "all" + ] + } + ] + } + +Output:: + + { + "configurationId": "6fa51cd8-35c1-EXAMPLE" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/tag-resource.rst new file mode 100644 index 000000000..76518a756 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/tag-resource.rst @@ -0,0 +1,11 @@ +**To add AWS tags to an existing repository** + +The following ``tag-resource`` example tags the specified repository with two tags. :: + + aws codecommit tag-resource \ + --resource-arn arn:aws:codecommit:us-west-2:111111111111:MyDemoRepo \ + --tags Status=Secret,Team=Saanvi + +This command produces no output. + +For more information, see `Add a Tag to a Repository `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/test-repository-triggers.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/test-repository-triggers.rst new file mode 100644 index 000000000..b18fd097e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/test-repository-triggers.rst @@ -0,0 +1,18 @@ +**To test triggers in a repository** + +This example demonstrates how to test a trigger named 'MyFirstTrigger' in an AWS CodeCommit repository named MyDemoRepo. In this example, events in the repository trigger notifications +from an Amazon Simple Notification Service (Amazon SNS) topic. + + +Command:: + + aws codecommit test-repository-triggers --repository-name MyDemoRepo --triggers name=MyFirstTrigger,destinationArn=arn:aws:sns:us-east-1:111111111111:MyCodeCommitTopic,branches=mainline,preprod,events=all + +Output:: + + { + "successfulExecutions": [ + "MyFirstTrigger" + ], + "failedExecutions": [] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/untag-resource.rst new file mode 100644 index 000000000..0661008e2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove AWS tags from a repository** + +The following ``untag-resource`` example removes the tag with the specified key from the repository named ``MyDemoRepo``. :: + + aws codecommit untag-resource \ + --resource-arn arn:aws:codecommit:us-west-2:111111111111:MyDemoRepo \ + --tag-keys Status + +This command produces no output. + +For more information, see `Remove a Tag from a Repository `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-approval-rule-template-content.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-approval-rule-template-content.rst new file mode 100644 index 000000000..f5819ea53 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-approval-rule-template-content.rst @@ -0,0 +1,24 @@ +**To update the content of an approval rule template** + +The following ``update-approval-rule-template-content`` example changes the content of the specified approval rule template to redefine the approval pool to users who assume the role of ``CodeCommitReview``. :: + + aws codecommit update-approval-rule-template-content \ + --approval-rule-template-name 1-approver-rule \ + --new-rule-content "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}" + +Output:: + + { + "approvalRuleTemplate": { + "creationDate": 1571352720.773, + "approvalRuleTemplateDescription": "Requires 1 approval for all pull requests from the CodeCommitReview pool", + "lastModifiedDate": 1571358728.41, + "approvalRuleTemplateId": "41de97b7-EXAMPLE", + "approvalRuleTemplateContent": "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 1,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}", + "approvalRuleTemplateName": "1-approver-rule-for-all-pull-requests", + "ruleContentSha256": "2f6c21a5EXAMPLE", + "lastModifiedUser": "arn:aws:iam::123456789012:user/Li_Juan" + } + } + +For more information, see `Manage Approval Rule Templates `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-approval-rule-template-description.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-approval-rule-template-description.rst new file mode 100644 index 000000000..00c853c37 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-approval-rule-template-description.rst @@ -0,0 +1,24 @@ +**To update the description of an approval rule template** + +The following ``update-approval-rule-template-description`` example changes the description of the specified approval rule template to ``Requires 1 approval for all pull requests from the CodeCommitReview pool``.:: + + aws codecommit update-approval-rule-template-description \ + --approval-rule-template-name 1-approver-rule-for-all-pull-requests \ + --approval-rule-template-description "Requires 1 approval for all pull requests from the CodeCommitReview pool" + +Output:: + + { + "approvalRuleTemplate": { + "creationDate": 1571352720.773, + "approvalRuleTemplateDescription": "Requires 1 approval for all pull requests from the CodeCommitReview pool", + "lastModifiedDate": 1571358728.41, + "approvalRuleTemplateId": "41de97b7-EXAMPLE", + "approvalRuleTemplateContent": "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 1,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}", + "approvalRuleTemplateName": "1-approver-rule-for-all-pull-requests", + "ruleContentSha256": "2f6c21a5EXAMPLE", + "lastModifiedUser": "arn:aws:iam::123456789012:user/Li_Juan" + } + } + +For more information, see `Manage Approval Rule Templates `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-approval-rule-template-name.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-approval-rule-template-name.rst new file mode 100644 index 000000000..3119c1250 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-approval-rule-template-name.rst @@ -0,0 +1,24 @@ +**To update the name of an approval rule template** + +The following ``update-approval-rule-template-name`` example changes the name of an approval rule template from ``1-approver-rule`` to `1-approver-rule-for-all-pull-requests``. :: + + aws codecommit update-approval-rule-template-name \ + --old-approval-rule-template-name 1-approver-rule \ + --new-approval-rule-template-name 1-approver-rule-for-all-pull-requests + +Output:: + + { + "approvalRuleTemplate": { + "approvalRuleTemplateName": "1-approver-rule-for-all-pull-requests", + "lastModifiedDate": 1571358241.619, + "approvalRuleTemplateId": "41de97b7-EXAMPLE", + "approvalRuleTemplateContent": "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 1,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}", + "creationDate": 1571352720.773, + "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major", + "approvalRuleTemplateDescription": "All pull requests must be approved by one developer on the team.", + "ruleContentSha256": "2f6c21a5cEXAMPLE" + } + } + +For more information, see `Manage Approval Rule Templates `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-comment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-comment.rst new file mode 100644 index 000000000..9ceed362b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-comment.rst @@ -0,0 +1,26 @@ +**To update a comment on a commit** + +This example demonstrates how to add the content ``"Fixed as requested. I'll update the pull request."`` to a comment with an ID of ``442b498bEXAMPLE5756813``. :: + + aws codecommit update-comment \ + --comment-id 442b498bEXAMPLE5756813 \ + --content "Fixed as requested. I'll update the pull request." + +Output:: + + { + "comment": { + "authorArn": "arn:aws:iam::111111111111:user/Li_Juan", + "clientRequestToken": "", + "commentId": "442b498bEXAMPLE5756813", + "content": "Fixed as requested. I'll update the pull request.", + "creationDate": 1508369929.783, + "deleted": false, + "lastModifiedDate": 1508369929.287, + "callerReactions": [], + "reactionCounts": + { + "THUMBSUP" : 2 + } + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-default-branch.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-default-branch.rst new file mode 100644 index 000000000..30ba4f5a1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-default-branch.rst @@ -0,0 +1,11 @@ +**To change the default branch for a repository** + +This example changes the default branch for an AWS CodeCommit repository. This command produces output only if there are errors. + +Command:: + + aws codecommit update-default-branch --repository-name MyDemoRepo --default-branch-name MyNewBranch + +Output:: + + None. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-pull-request-approval-rule-content.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-pull-request-approval-rule-content.rst new file mode 100644 index 000000000..c18d01fbe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-pull-request-approval-rule-content.rst @@ -0,0 +1,25 @@ +**To edit an approval rule for a pull request** + +The following ``update-pull-request-approval-rule-content`` example updates she specified approval rule to require one user approval from an approval pool that includes any IAM user in the ``123456789012`` AWS account. :: + + aws codecommit update-pull-request-approval-rule-content \ + --pull-request-id 27 \ + --approval-rule-name "Require two approved approvers" \ + --approval-rule-content "{Version: 2018-11-08, Statements: [{Type: \"Approvers\", NumberOfApprovalsNeeded: 1, ApprovalPoolMembers:[\"CodeCommitApprovers:123456789012:user/*\"]}]}}" + +Output:: + + { + "approvalRule": { + "approvalRuleContent": "{Version: 2018-11-08, Statements: [{Type: \"Approvers\", NumberOfApprovalsNeeded: 1, ApprovalPoolMembers:[\"CodeCommitApprovers:123456789012:user/*\"]}]}}", + "approvalRuleId": "aac33506-EXAMPLE", + "originApprovalRuleTemplate": {}, + "creationDate": 1570752871.932, + "lastModifiedDate": 1570754058.333, + "approvalRuleName": Require two approved approvers", + "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major", + "ruleContentSha256": "cd93921cEXAMPLE", + } + } + +For more information, see `Edit or Delete an Approval Rule `__ in the *AWS CodeCommit User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-pull-request-approval-state.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-pull-request-approval-state.rst new file mode 100644 index 000000000..13224ea04 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-pull-request-approval-state.rst @@ -0,0 +1,12 @@ +**To approve or revoke approval for a pull request** + +The following ``update-pull-request-approval-state`` example approves a pull request with the ID of ``27`` and a revision ID of ``9f29d167EXAMPLE``. If you wanted to revoke approval instead, then set the ``--approval-state`` parameter value to ``REVOKE``. :: + + aws codecommit update-pull-request-approval-state \ + --pull-request-id 27 \ + --revision-id 9f29d167EXAMPLE \ + --approval-state "APPROVE" + +This command produces no output. + +For more information, see `Review a Pull Request `__ in the *AWS CodeCommit User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-pull-request-description.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-pull-request-description.rst new file mode 100644 index 000000000..544e559da --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-pull-request-description.rst @@ -0,0 +1,34 @@ +**To change the description of a pull request** + +This example demonstrates how to change the description of a pull request with the ID of ``47``. :: + + aws codecommit update-pull-request-description \ + --pull-request-id 47 \ + --description "Updated the pull request to remove unused global variable." + +Output:: + + { + "pullRequest": { + "authorArn": "arn:aws:iam::111111111111:user/Li_Juan", + "clientRequestToken": "", + "creationDate": 1508530823.155, + "description": "Updated the pull request to remove unused global variable.", + "lastActivityDate": 1508372423.204, + "pullRequestId": "47", + "pullRequestStatus": "OPEN", + "pullRequestTargets": [ + { + "destinationCommit": "9f31c968EXAMPLE", + "destinationReference": "refs/heads/main", + "mergeMetadata": { + "isMerged": false, + }, + "repositoryName": "MyDemoRepo", + "sourceCommit": "99132ab0EXAMPLE", + "sourceReference": "refs/heads/variables-branch" + } + ], + "title": "Consolidation of global variables" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-pull-request-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-pull-request-status.rst new file mode 100644 index 000000000..291c74b31 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-pull-request-status.rst @@ -0,0 +1,45 @@ +**To change the status of a pull request** + +This example demonstrates how to to change the status of a pull request with the ID of ``42`` to a status of ``CLOSED`` in an AWS CodeCommit repository named ``MyDemoRepo``. :: + + aws codecommit update-pull-request-status \ + --pull-request-id 42 \ + --pull-request-status CLOSED + +Output:: + + { + "pullRequest": { + "approvalRules": [ + { + "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}", + "approvalRuleId": "dd8b17fe-EXAMPLE", + "approvalRuleName": "2-approvers-needed-for-this-change", + "creationDate": 1571356106.936, + "lastModifiedDate": 571356106.936, + "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major", + "ruleContentSha256": "4711b576EXAMPLE" + } + ], + "authorArn": "arn:aws:iam::123456789012:user/Li_Juan", + "clientRequestToken": "", + "creationDate": 1508530823.165, + "description": "Updated the pull request to remove unused global variable.", + "lastActivityDate": 1508372423.12, + "pullRequestId": "47", + "pullRequestStatus": "CLOSED", + "pullRequestTargets": [ + { + "destinationCommit": "9f31c968EXAMPLE", + "destinationReference": "refs/heads/main", + "mergeMetadata": { + "isMerged": false, + }, + "repositoryName": "MyDemoRepo", + "sourceCommit": "99132ab0EXAMPLE", + "sourceReference": "refs/heads/variables-branch" + } + ], + "title": "Consolidation of global variables" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-pull-request-title.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-pull-request-title.rst new file mode 100644 index 000000000..dc9f64063 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-pull-request-title.rst @@ -0,0 +1,49 @@ +**To change the title of a pull request** + +This example demonstrates how to change the title of a pull request with the ID of ``47``. :: + + aws codecommit update-pull-request-title \ + --pull-request-id 47 \ + --title "Consolidation of global variables - updated review" + +Output:: + + { + "pullRequest": { + "approvalRules": [ + { + "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}", + "approvalRuleId": "dd8b17fe-EXAMPLE", + "approvalRuleName": "2-approver-rule-for-main", + "creationDate": 1571356106.936, + "lastModifiedDate": 571356106.936, + "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major", + "originApprovalRuleTemplate": { + "approvalRuleTemplateId": "dd8b26gr-EXAMPLE", + "approvalRuleTemplateName": "2-approver-rule-for-main" + }, + "ruleContentSha256": "4711b576EXAMPLE" + } + ], + "authorArn": "arn:aws:iam::123456789012:user/Li_Juan", + "clientRequestToken": "", + "creationDate": 1508530823.12, + "description": "Review the latest changes and updates to the global variables. I have updated this request with some changes, including removing some unused variables.", + "lastActivityDate": 1508372657.188, + "pullRequestId": "47", + "pullRequestStatus": "OPEN", + "pullRequestTargets": [ + { + "destinationCommit": "9f31c968EXAMPLE", + "destinationReference": "refs/heads/main", + "mergeMetadata": { + "isMerged": false, + }, + "repositoryName": "MyDemoRepo", + "sourceCommit": "99132ab0EXAMPLE", + "sourceReference": "refs/heads/variables-branch" + } + ], + "title": "Consolidation of global variables - updated review" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-repository-description.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-repository-description.rst new file mode 100644 index 000000000..86cf41937 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-repository-description.rst @@ -0,0 +1,11 @@ +**To change the description for a repository** + +This example changes the description for an AWS CodeCommit repository. This command produces output only if there are errors. + +Command:: + + aws codecommit update-repository-description --repository-name MyDemoRepo --repository-description "This description was changed" + +Output:: + + None. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-repository-name.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-repository-name.rst new file mode 100644 index 000000000..da174fc94 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codecommit/update-repository-name.rst @@ -0,0 +1,11 @@ +**To change the name of a repository** + +This example changes the name of an AWS CodeCommit repository. This command produces output only if there are errors. Changing the name of the AWS CodeCommit repository will change the SSH and HTTPS URLs that users need to connect to the repository. Users will not be able to connect to this repository until they update their connection settings. Also, because the repository's ARN will change, changing the repository name will invalidate any IAM user policies that rely on this repository's ARN. + +Command:: + + aws codecommit update-repository-name --old-name MyDemoRepo --new-name MyRenamedDemoRepo + +Output:: + + None. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/associate-repository.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/associate-repository.rst new file mode 100644 index 000000000..6e41087ae --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/associate-repository.rst @@ -0,0 +1,76 @@ +**Example 1: To create a Bitbucket repository association** + +The following ``associate-repository`` example creates a repository association using an existing Bitbucket repository. :: + + aws codeguru-reviewer associate-repository \ + --repository 'Bitbucket={Owner=sample-owner, Name=mySampleRepo, ConnectionArn=arn:aws:codestar-connections:us-west-2:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 }' + +Output:: + + { + "RepositoryAssociation": { + "ProviderType": "Bitbucket", + "Name": "mySampleRepo", + "LastUpdatedTimeStamp": 1596216896.979, + "AssociationId": "association:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "CreatedTimeStamp": 1596216896.979, + "ConnectionArn": "arn:aws:codestar-connections:us-west-2:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "State": "Associating", + "StateReason": "Pending Repository Association", + "AssociationArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "Owner": "sample-owner" + } + } + +For more information, see `Create a Bitbucket repository association in Amazon CodeGuru Reviewer `__ in the *Amazon CodeGuru Reviewer User Guide*. + +**Example 2: To create a GitHub Enterprise repository association** + +The following ``associate-repository`` example creates a repository association using an existing GitHub Enterprise repository. :: + + aws codeguru-reviewer associate-repository \ + --repository 'GitHubEnterpriseServer={Owner=sample-owner, Name=mySampleRepo, ConnectionArn=arn:aws:codestar-connections:us-west-2:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 }' + +Output:: + + { + "RepositoryAssociation": { + "ProviderType": "GitHubEnterpriseServer", + "Name": "mySampleRepo", + "LastUpdatedTimeStamp": 1596216896.979, + "AssociationId": "association:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "CreatedTimeStamp": 1596216896.979, + "ConnectionArn": "arn:aws:codestar-connections:us-west-2:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "State": "Associating", + "StateReason": "Pending Repository Association", + "AssociationArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "Owner": "sample-owner" + } + } + +For more information, see `Create a GitHub Enterprise Server repository association in Amazon CodeGuru Reviewer `__ in the *Amazon Codeguru Reviewer User Guide*. + +**Example 3: To create an AWS CodeCommit repository association** + +The following ``associate-repository`` example creates a repository association using an existing AWS CodeCommit repository. :: + + aws codeguru-reviewer associate-repository \ + --repository CodeCommit={Name=mySampleRepo} + +Output:: + + { + "RepositoryAssociation": { + "AssociationId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "Name": "My-ecs-beta-repo", + "LastUpdatedTimeStamp": 1595634764.029, + "ProviderType": "CodeCommit", + "CreatedTimeStamp": 1595634764.029, + "Owner": "544120495673", + "State": "Associating", + "StateReason": "Pending Repository Association", + "AssociationArn": "arn:aws:codeguru-reviewer:us-west-2:544120495673:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + } + } + +For more information, see `Create an AWS CodeCommit repository association in Amazon CodeGuru Reviewer `__ in the *Amazon CodeGuru Reviewer User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/create-code-review.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/create-code-review.rst new file mode 100644 index 000000000..d5c2eb4f3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/create-code-review.rst @@ -0,0 +1,33 @@ +**To create a code review.** + +The following ``create-code-review`` creates a review of code in the ``mainline`` branch of an AWS CodeCommit repository that is named ``my-repository-name``. :: + + aws codeguru-reviewer create-code-review \ + --name my-code-review \ + --repository-association-arn arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ + --type '{"RepositoryAnalysis": {"RepositoryHead": {"BranchName": "mainline"}}}' + +Output:: + + { + "CodeReview": { + "Name": "my-code-review", + "CodeReviewArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222:code-review:RepositoryAnalysis-my-code-review", + "RepositoryName": "my-repository-name", + "Owner": "123456789012", + "ProviderType": "CodeCommit", + "State": "Pending", + "StateReason": "CodeGuru Reviewer has received the request, and a code review is scheduled.", + "CreatedTimeStamp": 1618873489.195, + "LastUpdatedTimeStamp": 1618873489.195, + "Type": "RepositoryAnalysis", + "SourceCodeType": { + "RepositoryHead": { + "BranchName": "mainline" + } + }, + "AssociationArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + } + } + +For more information, see `Create code reviews in Amazon CodeGuru Reviewer `__ in the *Amazon CodeGuru Reviewer User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/describe-code-review.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/describe-code-review.rst new file mode 100644 index 000000000..4962d759a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/describe-code-review.rst @@ -0,0 +1,33 @@ +**List details about a code review.** + +The following ``describe-code-review`` lists information about a review of code in the "mainline" branch of an AWS CodeCommit repository that is named "my-repo-name". :: + + aws codeguru-reviewer put-recommendation-feedback \ + --code-review-arn arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:code-review:RepositoryAnalysis-my-repository-name-branch-abcdefgh12345678 \ + --recommendation-id 3be1b2e5d7ef6e298a06499379ee290c9c596cf688fdcadb08285ddb0dd390eb \ + --reactions ThumbsUp + +Output :: + + { + "CodeReview": { + "Name": "My-ecs-beta-repo-master-xs6di4kfd4j269dz", + "CodeReviewArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222:code-review:RepositoryAnalysis-my-repo-name", + "RepositoryName": "My-ecs-beta-repo", + "Owner": "123456789012", + "ProviderType": "CodeCommit", + "State": "Pending", + "StateReason": "CodeGuru Reviewer is reviewing the source code.", + "CreatedTimeStamp": 1618874226.226, + "LastUpdatedTimeStamp": 1618874233.689, + "Type": "RepositoryAnalysis", + "SourceCodeType": { + "RepositoryHead": { + "BranchName": "mainline" + } + }, + "AssociationArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + } + } + +For more information, see `View code review details `__ in the *Amazon CodeGuru Reviewer User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/describe-recommendation-feedback.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/describe-recommendation-feedback.rst new file mode 100644 index 000000000..1a9229cdc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/describe-recommendation-feedback.rst @@ -0,0 +1,24 @@ +**To view information about feedback on a recommendation** + +The following ``describe-recommendation-feedback`` displays information about feedback on a recommendation. This recommendation has one ``ThumbsUp`` reaction. :: + + aws codeguru-reviewer describe-recommendation-feedback \ + --code-review-arn arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:code-review:RepositoryAnalysis-my-repository-name-branch-abcdefgh12345678 \ + --recommendation-id 3be1b2e5d7ef6e298a06499379ee290c9c596cf688fdcadb08285ddb0dd390eb + +Output:: + + { + "RecommendationFeedback": { + "CodeReviewArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:code-review:RepositoryAnalysis-my-repository-name-branch-abcdefgh12345678", + "RecommendationId": "3be1b2e5d7ef6e298a06499379ee290c9c596cf688fdcadb08285ddb0dd390eb", + "Reactions": [ + "ThumbsUp" + ], + "UserId": "aws-user-id", + "CreatedTimeStamp": 1618877070.313, + "LastUpdatedTimeStamp": 1618877948.881 + } + } + +For more information, see `View recommendations and provide feedback `__ and `Step 4: Provide feedback `__ in the *Amazon CodeGuru Reviewer User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/describe-repository-association.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/describe-repository-association.rst new file mode 100644 index 000000000..56d470699 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/describe-repository-association.rst @@ -0,0 +1,76 @@ +**Example 1: To return information about a GitHub repository association** + +The following ``describe-repository-association`` example returns information about a repository association that uses a GitHub Enterprise repository and is in the ``Associated`` state. :: + + aws codeguru-reviewer describe-repository-association \ + --association-arn arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "RepositoryAssociation": { + "AssociationId": "b822717e-0711-4e8a-bada-0e738289c75e", + "Name": "mySampleRepo", + "LastUpdatedTimeStamp": 1588102637.649, + "ProviderType": "GitHub", + "CreatedTimeStamp": 1588102615.636, + "Owner": "sample-owner", + "State": "Associated", + "StateReason": "Pull Request Notification configuration successful", + "AssociationArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + } + } + +For more information, see `Create a GitHub Enterprise Server repository association in Amazon CodeGuru Reviewer `__ in the *Amazon CodeGuru Reviewer User Guide*. + +**Example 2: To return information about a failed repository association** + +The following ``describe-repository-association`` example returns information about a repository association that uses a GitHub Enterprise repository and is in the ``Failed`` state. :: + + aws codeguru-reviewer describe-repository-association \ + --association-arn arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "RepositoryAssociation": { + "ProviderType": "GitHubEnterpriseServer", + "Name": "mySampleRepo", + "LastUpdatedTimeStamp": 1596217036.892, + "AssociationId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "CreatedTimeStamp": 1596216896.979, + "ConnectionArn": "arn:aws:codestar-connections:us-west-2:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "State": "Failed", + "StateReason": "Failed, Please retry.", + "AssociationArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", + "Owner": "sample-owner" + } + } + +For more information, see `Create a GitHub Enterprise Server repository association in Amazon CodeGuru Reviewer `__ in the *Amazon CodeGuru Reviewer User Guide*. + +**Example 3: To return information about a disassociating repository association** + +The following ``describe-repository-association`` example returns information about a repository association that uses a GitHub Enterprise repository and is in the ``Disassociating`` state. :: + + aws codeguru-reviewer describe-repository-association \ + --association-arn arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "RepositoryAssociation": { + "ProviderType": "GitHubEnterpriseServer", + "Name": "mySampleRepo", + "LastUpdatedTimeStamp": 1596217036.892, + "AssociationId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "CreatedTimeStamp": 1596216896.979, + "ConnectionArn": "arn:aws:codestar-connections:us-west-2:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "State": "Disassociating", + "StateReason": "Source code access removal in progress", + "AssociationArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", + "Owner": "sample-owner" + } + } + +For more information, see `Create a GitHub Enterprise Server repository association in Amazon CodeGuru Reviewer `__ in the *Amazon CodeGuru Reviewer User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/disassociate-repository.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/disassociate-repository.rst new file mode 100644 index 000000000..31c43badc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/disassociate-repository.rst @@ -0,0 +1,27 @@ +**To disassociate a repository association** + +The following ``disassociate-repository`` disassociates a repository association that is using an AWS CodeCommit repository. :: + + aws codeguru-reviewer disassociate-repository \ + --association-arn arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "RepositoryAssociation": { + "AssociationId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "AssociationArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "Name": "my-repository", + "Owner": "123456789012", + "ProviderType": "CodeCommit", + "State": "Disassociating", + "LastUpdatedTimeStamp": 1618939174.759, + "CreatedTimeStamp": 1595636947.096 + }, + "Tags": { + "Status": "Secret", + "Team": "Saanvi" + } + } + +For more information, see `Disassociate a repository in CodeGuru Reviewer `__ in the *Amazon CodeGuru Reviewer User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/list-code-reviews.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/list-code-reviews.rst new file mode 100644 index 000000000..1c5f866c5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/list-code-reviews.rst @@ -0,0 +1,111 @@ +**To list code reviews created in your AWS account in the last 90 days.** + +The following ``list-code-reviews`` example lists the code reviews created in the last 90 days using pull requests. :: + + aws codeguru-reviewer list-code-reviews \ + --type PullRequest + +Output:: + + { + "CodeReviewSummaries": [ + { + "LastUpdatedTimeStamp": 1588897288.054, + "Name": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "ProviderType": "GitHub", + "PullRequestId": "5", + "MetricsSummary": { + "MeteredLinesOfCodeCount": 24, + "FindingsCount": 1 + }, + "CreatedTimeStamp": 1588897068.512, + "State": "Completed", + "CodeReviewArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:code-review:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "Owner": "sample-owner", + "RepositoryName": "sample-repository-name", + "Type": "PullRequest" + }, + { + "LastUpdatedTimeStamp": 1588869793.263, + "Name": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "ProviderType": "GitHub", + "PullRequestId": "4", + "MetricsSummary": { + "MeteredLinesOfCodeCount": 29, + "FindingsCount": 0 + }, + "CreatedTimeStamp": 1588869575.949, + "State": "Completed", + "CodeReviewArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:code-review:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "Owner": "sample-owner", + "RepositoryName": "sample-repository-name", + "Type": "PullRequest" + }, + { + "LastUpdatedTimeStamp": 1588870511.211, + "Name": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", + "ProviderType": "GitHub", + "PullRequestId": "4", + "MetricsSummary": { + "MeteredLinesOfCodeCount": 2, + "FindingsCount": 0 + }, + "CreatedTimeStamp": 1588870292.425, + "State": "Completed", + "CodeReviewArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:code-review:a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", + "Owner": "sample-owner", + "RepositoryName": "sample-repository-name", + "Type": "PullRequest" + }, + { + "LastUpdatedTimeStamp": 1588118522.452, + "Name": "a1b2c3d4-5678-90ab-cdef-EXAMPLE44444", + "ProviderType": "GitHub", + "PullRequestId": "3", + "MetricsSummary": { + "MeteredLinesOfCodeCount": 29, + "FindingsCount": 0 + }, + "CreatedTimeStamp": 1588118301.131, + "State": "Completed", + "CodeReviewArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:code-review:a1b2c3d4-5678-90ab-cdef-EXAMPLE44444", + "Owner": "sample-owner", + "RepositoryName": "sample-repository-name", + "Type": "PullRequest" + }, + { + "LastUpdatedTimeStamp": 1588112205.207, + "Name": "a1b2c3d4-5678-90ab-cdef-EXAMPLE55555", + "ProviderType": "GitHub", + "PullRequestId": "2", + "MetricsSummary": { + "MeteredLinesOfCodeCount": 25, + "FindingsCount": 0 + }, + "CreatedTimeStamp": 1588111987.443, + "State": "Completed", + "CodeReviewArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:code-review:a1b2c3d4-5678-90ab-cdef-EXAMPLE55555", + "Owner": "sample-owner", + "RepositoryName": "sample-repository-name", + "Type": "PullRequest" + }, + { + "LastUpdatedTimeStamp": 1588104489.981, + "Name": "a1b2c3d4-5678-90ab-cdef-EXAMPLE66666", + "ProviderType": "GitHub", + "PullRequestId": "1", + "MetricsSummary": { + "MeteredLinesOfCodeCount": 25, + "FindingsCount": 0 + }, + "CreatedTimeStamp": 1588104270.223, + "State": "Completed", + "CodeReviewArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:code-review:a1b2c3d4-5678-90ab-cdef-EXAMPLE66666", + "Owner": "sample-owner", + "RepositoryName": "sample-repository-name", + "Type": "PullRequest" + } + ] + } + +For more information, see `View all code reviews `__ in the *Amazon CodeGuru Reviewer User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/list-recommendation-feedback.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/list-recommendation-feedback.rst new file mode 100644 index 000000000..3828503cb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/list-recommendation-feedback.rst @@ -0,0 +1,22 @@ +**To list customer recommendation feedback for a recommendation on an associated repository** + +The following ``list-recommendation-feedback`` Lists customer feedback on all recommendations on a code review. This code review has one piece of feedback, a "ThumbsUp", from a customer. :: + + aws codeguru-reviewer list-recommendation-feedback \ + --code-review-arn arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:code-review:RepositoryAnalysis-my-repository-name-branch-abcdefgh12345678 + +Output:: + + { + "RecommendationFeedbackSummaries": [ + { + "RecommendationId": "3be1b2e5d7ef6e298a06499379ee290c9c596cf688fdcadb08285ddb0dd390eb", + "Reactions": [ + "ThumbsUp" + ], + "UserId": "aws-user-id" + } + ] + } + +For more information, see `Step 4: Provide feedback `__ in the *Amazon CodeGuru Reviewer User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/list-recommendations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/list-recommendations.rst new file mode 100644 index 000000000..e6ff058f4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/list-recommendations.rst @@ -0,0 +1,22 @@ +**To list the recommendations for a completed code review** + +The following ``list-recommendations`` example lists the recommendations for a completed code review. This code review has one recommendations. :: + + aws codeguru-reviewer list-recommendations \ + --code-review-arn arn:aws:codeguru-reviewer:us-west-2:544120495673:code-review:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "RecommendationSummaries": [ + { + "Description": "\n\n**Problem** \n You are using a `ConcurrentHashMap`, but your usage of `containsKey()` and `get()` may not be thread-safe at lines: **63 and 64**. In between the check and the `get()` another thread can remove the key and the `get()` will return `null`. The remove that can remove the key is at line: **59**.\n\n**Fix** \n Consider calling `get()`, checking instead of your current check if the returned object is `null`, and then using that object only, without calling `get()` again.\n\n**More info** \n [View an example on GitHub](https://github.com/apache/hadoop/blob/f16cf877e565084c66bc63605659b157c4394dc8/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/s3guard/S3Guard.java#L302-L304) (external link).", + "RecommendationId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "StartLine": 63, + "EndLine": 64, + "FilePath": "src/main/java/com/company/sample/application/CreateOrderThread.java" + } + ] + } + +For more information, see `Step 4: Provide feedback `__ in the *Amazon CodeGuru Reviewer User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/list-repository-associations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/list-repository-associations.rst new file mode 100644 index 000000000..562110874 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/list-repository-associations.rst @@ -0,0 +1,68 @@ +**To list the repository associations in your AWS account** + +The following ``list-repository-associations`` example returns a list of repository association summary objects in your account. You can filter the returned list by ``ProviderType``, ``Name``, ``State``, and ``Owner``. :: + + aws codeguru-reviewer list-repository-associations + +Output:: + + { + "RepositoryAssociationSummaries": [ + { + "LastUpdatedTimeStamp": 1595886609.616, + "Name": "test", + "AssociationId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "Owner": "sample-owner", + "State": "Associated", + "AssociationArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "ProviderType": "Bitbucket" + }, + { + "LastUpdatedTimeStamp": 1595636969.035, + "Name": "CodeDeploy-CodePipeline-ECS-Tutorial", + "AssociationId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "Owner": "123456789012", + "State": "Associated", + "AssociationArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "ProviderType": "CodeCommit" + }, + { + "LastUpdatedTimeStamp": 1595634785.983, + "Name": "My-ecs-beta-repo", + "AssociationId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", + "Owner": "123456789012", + "State": "Associated", + "AssociationArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", + "ProviderType": "CodeCommit" + }, + { + "LastUpdatedTimeStamp": 1590712811.77, + "Name": "MyTestCodeCommit", + "AssociationId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE44444", + "Owner": "123456789012", + "State": "Associated", + "AssociationArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE44444", + "ProviderType": "CodeCommit" + }, + { + "LastUpdatedTimeStamp": 1588102637.649, + "Name": "aws-codeguru-profiler-sample-application", + "AssociationId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE55555", + "Owner": "sample-owner", + "State": "Associated", + "AssociationArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE55555", + "ProviderType": "GitHub" + }, + { + "LastUpdatedTimeStamp": 1588028233.995, + "Name": "codeguru-profiler-demo-app", + "AssociationId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE66666", + "Owner": "sample-owner", + "State": "Associated", + "AssociationArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE66666", + "ProviderType": "GitHub" + } + ] + } + +For more information, see `View all repository associations in CodeGuru Reviewer `__ in the *Amazon CodeGuru Reviewer User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/list-tags-for-resource.rst new file mode 100644 index 000000000..8a18dac95 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/list-tags-for-resource.rst @@ -0,0 +1,17 @@ +**To list the tags on an associated repository** + +The following ``list-tags-for-resource`` lists the tags on an associated repository. This associated repository has two tags. :: + + aws codeguru-reviewer list-tags-for-resource \ + --resource-arn arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "Tags": { + "Status": "Secret", + "Team": "Saanvi" + } + } + +For more information, see `View tags for a CodeGuru Reviewer associated repository (AWS CLI) `__ in the *Amazon CodeGuru Reviewer User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/put-recommendation-feedback.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/put-recommendation-feedback.rst new file mode 100644 index 000000000..bf044f93a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/put-recommendation-feedback.rst @@ -0,0 +1,12 @@ +**To add a recommendation to a code review** + +The following ``put-recommendation-feedback`` puts a ``ThumbsUp`` recommendation on a code review. :: + + aws codeguru-reviewer put-recommendation-feedback \ + --code-review-arn \arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:code-review:RepositoryAnalysis-my-repository-name-branch-abcdefgh12345678 \ + --recommendation-id 3be1b2e5d7ef6e298a06499379ee290c9c596cf688fdcadb08285ddb0dd390eb \ + --reactions ThumbsUp + +This command produces no output. + +For more information, see `Step 4: Provide feedback `__ in the *Amazon CodeGuru Reviewer User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/tag-resource.rst new file mode 100644 index 000000000..087a93885 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/tag-resource.rst @@ -0,0 +1,11 @@ +**To add a tag to an associated repository** + +The following ``tag-resource`` adds two tags to an associated repository :: + + aws codeguru-reviewer tag-resource \ + --resource-arn arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ + --tags Status=Secret,Team=Saanvi + +This command produces no output. + +For more information, see `Add a tag to a CodeGuru Reviewer associated repository (AWS CLI) `__ and `Add or update tags for a CodeGuru Reviewer associated repository (AWS CLI) `__ in the *Amazon CodeGuru Reviewer User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/untag-resource.rst new file mode 100644 index 000000000..755b0dbe5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codeguru-reviewer/untag-resource.rst @@ -0,0 +1,11 @@ +**To untag an associated repository** + +The following ``untag-resource`` removes two tags with keys "Secret" and "Team" from an associated repository. :: + + aws codeguru-reviewer untag-resource \ + --resource-arn arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ + --tag-keys Status Team + +This command produces no output. + +For more information, see `Remove tags from a CodeGuru Reviewer associated repository (AWS CLI) `__ in the *Amazon CodeGuru Reviewer User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/acknowledge-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/acknowledge-job.rst new file mode 100644 index 000000000..15829f77d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/acknowledge-job.rst @@ -0,0 +1,13 @@ +**To retrieve information about a specified job** + +This example returns information about a specified job, including the status of that job if it exists. This is only used for job workers and custom actions. To determine the value of nonce and the job ID, use aws codepipeline poll-for-jobs. + +Command:: + + aws codepipeline acknowledge-job --job-id f4f4ff82-2d11-EXAMPLE --nonce 3 + +Output:: + + { + "status": "InProgress" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/create-custom-action-type.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/create-custom-action-type.rst new file mode 100644 index 000000000..321f76926 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/create-custom-action-type.rst @@ -0,0 +1,38 @@ +**To create a custom action** + +This example creates a custom action for AWS CodePipeline using an already-created JSON file (here named MyCustomAction.json) that contains the structure of the custom action. For more information about the requirements for creating a custom action, including the structure of the file, see the AWS CodePipeline User Guide. :: + + aws codepipeline create-custom-action-type --cli-input-json file://MyCustomAction.json + +Contents of JSON file ``MyCustomAction.json``:: + + { + "category": "Build", + "provider": "MyJenkinsProviderName", + "version": "1", + "settings": { + "entityUrlTemplate": "https://192.0.2.4/job/{Config:ProjectName}/", + "executionUrlTemplate": "https://192.0.2.4/job/{Config:ProjectName}/lastSuccessfulBuild/{ExternalExecutionId}/" + }, + "configurationProperties": [ + { + "name": "MyJenkinsExampleBuildProject", + "required": true, + "key": true, + "secret": false, + "queryable": false, + "description": "The name of the build project must be provided when this action is added to the pipeline.", + "type": "String" + } + ], + "inputArtifactDetails": { + "maximumCount": 1, + "minimumCount": 0 + }, + "outputArtifactDetails": { + "maximumCount": 1, + "minimumCount": 0 + } + } + +This command returns the structure of the custom action. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/create-pipeline.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/create-pipeline.rst new file mode 100644 index 000000000..7c329eb33 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/create-pipeline.rst @@ -0,0 +1,77 @@ +**To create a pipeline** + +This example creates a pipeline in AWS CodePipeline using an already-created JSON file (here named MySecondPipeline.json) that contains the structure of the pipeline. For more information about the requirements for creating a pipeline, including the structure of the file, see the AWS CodePipeline User Guide. + +Command:: + + aws codepipeline create-pipeline --cli-input-json file://MySecondPipeline.json + +JSON file sample contents:: + + { + "pipeline": { + "roleArn": "arn:aws:iam::111111111111:role/AWS-CodePipeline-Service", + "stages": [ + { + "name": "Source", + "actions": [ + { + "inputArtifacts": [], + "name": "Source", + "actionTypeId": { + "category": "Source", + "owner": "AWS", + "version": "1", + "provider": "S3" + }, + "outputArtifacts": [ + { + "name": "MyApp" + } + ], + "configuration": { + "S3Bucket": "awscodepipeline-demo-bucket", + "S3ObjectKey": "aws-codepipeline-s3-aws-codedeploy_linux.zip" + }, + "runOrder": 1 + } + ] + }, + { + "name": "Beta", + "actions": [ + { + "inputArtifacts": [ + { + "name": "MyApp" + } + ], + "name": "CodePipelineDemoFleet", + "actionTypeId": { + "category": "Deploy", + "owner": "AWS", + "version": "1", + "provider": "CodeDeploy" + }, + "outputArtifacts": [], + "configuration": { + "ApplicationName": "CodePipelineDemoApplication", + "DeploymentGroupName": "CodePipelineDemoFleet" + }, + "runOrder": 1 + } + ] + } + ], + "artifactStore": { + "type": "S3", + "location": "codepipeline-us-east-1-11EXAMPLE11" + }, + "name": "MySecondPipeline", + "version": 1 + } + } + +Output:: + + This command returns the structure of the pipeline. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/delete-custom-action-type.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/delete-custom-action-type.rst new file mode 100644 index 000000000..9495009ae --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/delete-custom-action-type.rst @@ -0,0 +1,19 @@ +**To delete a custom action** + +This example deletes a custom action in AWS CodePipeline by using an already-created JSON file (here named DeleteMyCustomAction.json) that contains the action type, provider name, and version number of the action to be deleted. Use the list-action-types command to view the correct values for category, version, and provider. + +Command:: + + aws codepipeline delete-custom-action-type --cli-input-json file://DeleteMyCustomAction.json + +JSON file sample contents:: + + { + "category": "Build", + "version": "1", + "provider": "MyJenkinsProviderName" + } + +Output:: + + None. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/delete-pipeline.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/delete-pipeline.rst new file mode 100644 index 000000000..385e4dd23 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/delete-pipeline.rst @@ -0,0 +1,12 @@ +**To delete a pipeline** + +This example deletes a pipeline named MySecondPipeline from AWS CodePipeline. Use the list-pipelines command to view a list of pipelines associated with your AWS account. + +Command:: + + aws codepipeline delete-pipeline --name MySecondPipeline + + +Output:: + + None. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/delete-webhook.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/delete-webhook.rst new file mode 100644 index 000000000..564831b6c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/delete-webhook.rst @@ -0,0 +1,10 @@ +**To delete a webhook** + +The following ``delete-webhook`` example deletes a webhook for a GitHub version 1 source action. You must use the ``deregister-webhook-with-third-party`` command to deregister the webhook before you delete it. :: + + aws codepipeline delete-webhook \ + --name my-webhook + +This command produces no output. + +For more information, see `Delete the webhook for your GitHub source `__ in the *AWS CodePipeline User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/deregister-webhook-with-third-party.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/deregister-webhook-with-third-party.rst new file mode 100644 index 000000000..a2266e7b0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/deregister-webhook-with-third-party.rst @@ -0,0 +1,10 @@ +**To deregister a webhook** + +The following ``deregister-webhook-with-third-party`` example deletes a webhook for a GitHub version 1 source action. You must deregister the webhook before you delete it. :: + + aws codepipeline deregister-webhook-with-third-party \ + --webhook-name my-webhook + +This command produces no output. + +For more information, see `Delete the webhook for your GitHub source `__ in the *AWS CodePipeline User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/disable-stage-transition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/disable-stage-transition.rst new file mode 100644 index 000000000..9a59a9ac3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/disable-stage-transition.rst @@ -0,0 +1,12 @@ +**To disable a transition to a stage in a pipeline** + +This example disables transitions into the Beta stage of the MyFirstPipeline pipeline in AWS CodePipeline. + +Command:: + + aws codepipeline disable-stage-transition --pipeline-name MyFirstPipeline --stage-name Beta --transition-type Inbound + + +Output:: + + None. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/enable-stage-transition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/enable-stage-transition.rst new file mode 100644 index 000000000..43fcbf73e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/enable-stage-transition.rst @@ -0,0 +1,12 @@ +**To enable a transition to a stage in a pipeline** + +This example enables transitions into the Beta stage of the MyFirstPipeline pipeline in AWS CodePipeline. + +Command:: + + aws codepipeline enable-stage-transition --pipeline-name MyFirstPipeline --stage-name Beta --transition-type Inbound + + +Output:: + + None. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/get-job-details.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/get-job-details.rst new file mode 100644 index 000000000..73e60a55f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/get-job-details.rst @@ -0,0 +1,64 @@ +**To get details of a job** + +This example returns details about a job whose ID is represented by f4f4ff82-2d11-EXAMPLE. This command is only used for custom actions. When this command is called, AWS CodePipeline returns temporary credentials for the Amazon S3 bucket used to store artifacts for the pipeline, if required for the custom action. This command will also return any secret values defined for the action, if any are defined. + +Command:: + + aws codepipeline get-job-details --job-id f4f4ff82-2d11-EXAMPLE + + +Output:: + + { + "jobDetails": { + "accountId": "111111111111", + "data": { + "actionConfiguration": { + "__type": "ActionConfiguration", + "configuration": { + "ProjectName": "MyJenkinsExampleTestProject" + } + }, + "actionTypeId": { + "__type": "ActionTypeId", + "category": "Test", + "owner": "Custom", + "provider": "MyJenkinsProviderName", + "version": "1" + }, + "artifactCredentials": { + "__type": "AWSSessionCredentials", + "accessKeyId": "AKIAIOSFODNN7EXAMPLE", + "secretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", + "sessionToken": "fICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=" + }, + "inputArtifacts": [ + { + "__type": "Artifact", + "location": { + "s3Location": { + "bucketName": "codepipeline-us-east-1-11EXAMPLE11", + "objectKey": "MySecondPipeline/MyAppBuild/EXAMPLE" + }, + "type": "S3" + }, + "name": "MyAppBuild" + } + ], + "outputArtifacts": [], + "pipelineContext": { + "__type": "PipelineContext", + "action": { + "name": "MyJenkinsTest-Action" + }, + "pipelineName": "MySecondPipeline", + "stage": { + "name": "Testing" + } + } + }, + "id": "f4f4ff82-2d11-EXAMPLE" + } + } + + \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/get-pipeline-state.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/get-pipeline-state.rst new file mode 100644 index 000000000..051b1c663 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/get-pipeline-state.rst @@ -0,0 +1,53 @@ +**To get information about the state of a pipeline** + +This example returns the most recent state of a pipeline named MyFirstPipeline. + +Command:: + + aws codepipeline get-pipeline-state --name MyFirstPipeline + + +Output:: + + { + "created": 1446137312.204, + "pipelineName": "MyFirstPipeline", + "pipelineVersion": 1, + "stageStates": [ + { + "actionStates": [ + { + "actionName": "Source", + "entityUrl": "https://console.aws.amazon.com/s3/home?#", + "latestExecution": { + "lastStatusChange": 1446137358.328, + "status": "Succeeded" + } + } + ], + "stageName": "Source" + }, + { + "actionStates": [ + { + "actionName": "CodePipelineDemoFleet", + "entityUrl": "https://console.aws.amazon.com/codedeploy/home?#/applications/CodePipelineDemoApplication/deployment-groups/CodePipelineDemoFleet", + "latestExecution": { + "externalExecutionId": "d-EXAMPLE", + "externalExecutionUrl": "https://console.aws.amazon.com/codedeploy/home?#/deployments/d-EXAMPLE", + "lastStatusChange": 1446137493.131, + "status": "Succeeded", + "summary": "Deployment Succeeded" + } + } + ], + "inboundTransitionState": { + "enabled": true + }, + "stageName": "Beta" + } + ], + "updated": 1446137312.204 + } + + \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/get-pipeline.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/get-pipeline.rst new file mode 100644 index 000000000..4a49b3fb0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/get-pipeline.rst @@ -0,0 +1,76 @@ +**To view the structure of a pipeline** + +This example returns the structure of a pipeline named MyFirstPipeline. + +Command:: + + aws codepipeline get-pipeline --name MyFirstPipeline + + +Output:: + + { + "pipeline": { + "roleArn": "arn:aws:iam::111111111111:role/AWS-CodePipeline-Service", + "stages": [ + { + "name": "Source", + "actions": [ + { + "inputArtifacts": [], + "name": "Source", + "actionTypeId": { + "category": "Source", + "owner": "AWS", + "version": "1", + "provider": "S3" + }, + "outputArtifacts": [ + { + "name": "MyApp" + } + ], + "configuration": { + "S3Bucket": "awscodepipeline-demo-bucket", + "S3ObjectKey": "aws-codepipeline-s3-aws-codedeploy_linux.zip" + }, + "runOrder": 1 + } + ] + }, + { + "name": "Beta", + "actions": [ + { + "inputArtifacts": [ + { + "name": "MyApp" + } + ], + "name": "CodePipelineDemoFleet", + "actionTypeId": { + "category": "Deploy", + "owner": "AWS", + "version": "1", + "provider": "CodeDeploy" + }, + "outputArtifacts": [], + "configuration": { + "ApplicationName": "CodePipelineDemoApplication", + "DeploymentGroupName": "CodePipelineDemoFleet" + }, + "runOrder": 1 + } + ] + } + ], + "artifactStore": { + "type": "S3", + "location": "codepipeline-us-east-1-11EXAMPLE11" + }, + "name": "MyFirstPipeline", + "version": 1 + } + } + + \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/list-action-executions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/list-action-executions.rst new file mode 100644 index 000000000..f5b750365 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/list-action-executions.rst @@ -0,0 +1,115 @@ +**To list action executions** + +The following ``list-action-executions`` example views action execution details for a pipeline, such as action execution ID, input artifacts, output artifacts, execution result, and status. :: + + aws codepipeline list-action-executions \ + --pipeline-name myPipeline + +Output:: + + { + "actionExecutionDetails": [ + { + "pipelineExecutionId": "EXAMPLE0-adfc-488e-bf4c-1111111720d3", + "actionExecutionId": "EXAMPLE4-2ee8-4853-bd6a-111111158148", + "pipelineVersion": 12, + "stageName": "Deploy", + "actionName": "Deploy", + "startTime": 1598572628.6, + "lastUpdateTime": 1598572661.255, + "status": "Succeeded", + "input": { + "actionTypeId": { + "category": "Deploy", + "owner": "AWS", + "provider": "CodeDeploy", + "version": "1" + }, + "configuration": { + "ApplicationName": "my-application", + "DeploymentGroupName": "my-deployment-group" + }, + "resolvedConfiguration": { + "ApplicationName": "my-application", + "DeploymentGroupName": "my-deployment-group" + }, + "region": "us-east-1", + "inputArtifacts": [ + { + "name": "SourceArtifact", + "s3location": { + "bucket": "artifact-bucket", + "key": "myPipeline/SourceArti/key" + } + } + ], + "namespace": "DeployVariables" + }, + "output": { + "outputArtifacts": [], + "executionResult": { + "externalExecutionId": "d-EXAMPLEE5", + "externalExecutionSummary": "Deployment Succeeded", + "externalExecutionUrl": "https://myaddress.com" + }, + "outputVariables": {} + } + }, + { + "pipelineExecutionId": "EXAMPLE0-adfc-488e-bf4c-1111111720d3", + "actionExecutionId": "EXAMPLE5-abb4-4192-9031-11111113a7b0", + "pipelineVersion": 12, + "stageName": "Source", + "actionName": "Source", + "startTime": 1598572624.387, + "lastUpdateTime": 1598572628.16, + "status": "Succeeded", + "input": { + "actionTypeId": { + "category": "Source", + "owner": "AWS", + "provider": "CodeCommit", + "version": "1" + }, + "configuration": { + "BranchName": "production", + "PollForSourceChanges": "false", + "RepositoryName": "my-repo" + }, + "resolvedConfiguration": { + "BranchName": "production", + "PollForSourceChanges": "false", + "RepositoryName": "my-repo" + }, + "region": "us-east-1", + "inputArtifacts": [], + "namespace": "SourceVariables" + }, + "output": { + "outputArtifacts": [ + { + "name": "SourceArtifact", + "s3location": { + "bucket": "amzn-s3-demo-bucket", + "key": "myPipeline/SourceArti/key" + } + } + ], + "executionResult": { + "externalExecutionId": "1111111ad99dcd35914c00b7fbea13995EXAMPLE", + "externalExecutionSummary": "Edited template.yml", + "externalExecutionUrl": "https://myaddress.com" + }, + "outputVariables": { + "AuthorDate": "2020-05-08T17:45:43Z", + "BranchName": "production", + "CommitId": "EXAMPLEad99dcd35914c00b7fbea139951111111", + "CommitMessage": "Edited template.yml", + "CommitterDate": "2020-05-08T17:45:43Z", + "RepositoryName": "my-repo" + } + } + }, + . . . . + +For more information, see `View action executions (CLI) `__ in the *AWS CodePipeline User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/list-action-types.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/list-action-types.rst new file mode 100644 index 000000000..bc6e57b01 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/list-action-types.rst @@ -0,0 +1,73 @@ +**To view the action types available** + +Used by itself, the list-action-types command returns the structure of all actions available to your AWS account. This example uses the --action-owner-filter option to return only custom actions. + +Command:: + + aws codepipeline list-action-types --action-owner-filter Custom + + +Output:: + + { + "actionTypes": [ + { + "inputArtifactDetails": { + "maximumCount": 5, + "minimumCount": 0 + }, + "actionConfigurationProperties": [ + { + "secret": false, + "required": true, + "name": "MyJenkinsExampleBuildProject", + "key": true, + "queryable": true + } + ], + "outputArtifactDetails": { + "maximumCount": 5, + "minimumCount": 0 + }, + "id": { + "category": "Build", + "owner": "Custom", + "version": "1", + "provider": "MyJenkinsProviderName" + }, + "settings": { + "entityUrlTemplate": "http://192.0.2.4/job/{Config:ProjectName}", + "executionUrlTemplate": "http://192.0.2.4/job/{Config:ProjectName}/{ExternalExecutionId}" + } + }, + { + "inputArtifactDetails": { + "maximumCount": 5, + "minimumCount": 0 + }, + "actionConfigurationProperties": [ + { + "secret": false, + "required": true, + "name": "MyJenkinsExampleTestProject", + "key": true, + "queryable": true + } + ], + "outputArtifactDetails": { + "maximumCount": 5, + "minimumCount": 0 + }, + "id": { + "category": "Test", + "owner": "Custom", + "version": "1", + "provider": "MyJenkinsProviderName" + }, + "settings": { + "entityUrlTemplate": "http://192.0.2.4/job/{Config:ProjectName}", + "executionUrlTemplate": "http://192.0.2.4/job/{Config:ProjectName}/{ExternalExecutionId}" + } + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/list-pipeline-executions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/list-pipeline-executions.rst new file mode 100644 index 000000000..75fad1552 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/list-pipeline-executions.rst @@ -0,0 +1,33 @@ +**To view pipeline execution history** + +The following ``list-pipeline-executions`` example shows the pipeline execution history for a pipeline in your AWS account. :: + + aws codepipeline list-pipeline-executions \ + --pipeline-name MyPipeline + +Output:: + + { + "pipelineExecutionSummaries": [ + { + "lastUpdateTime": 1496380678.648, + "pipelineExecutionId": "7cf7f7cb-3137-539g-j458-d7eu3EXAMPLE", + "startTime": 1496380258.243, + "status": "Succeeded" + }, + { + "lastUpdateTime": 1496591045.634, + "pipelineExecutionId": "3137f7cb-8d494hj4-039j-d84l-d7eu3EXAMPLE", + "startTime": 1496590401.222, + "status": "Succeeded" + }, + { + "lastUpdateTime": 1496946071.6456, + "pipelineExecutionId": "4992f7jf-7cf7-913k-k334-d7eu3EXAMPLE", + "startTime": 1496945471.5645, + "status": "Succeeded" + } + ] + } + +For more information, see `View execution history `__ in the *AWS CodePipeline User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/list-pipelines.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/list-pipelines.rst new file mode 100644 index 000000000..1f24d7c78 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/list-pipelines.rst @@ -0,0 +1,26 @@ +**To view a list of pipelines** + +This example lists all AWS CodePipeline pipelines associated with the user's AWS account. + +Command:: + + aws codepipeline list-pipelines + +Output:: + + { + "pipelines": [ + { + "updated": 1439504274.641, + "version": 1, + "name": "MyFirstPipeline", + "created": 1439504274.641 + }, + { + "updated": 1436461837.992, + "version": 2, + "name": "MySecondPipeline", + "created": 1436460801.381 + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/list-tags-for-resource.rst new file mode 100644 index 000000000..cdadc35f6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/list-tags-for-resource.rst @@ -0,0 +1,17 @@ +**To list tags** + +The following ``list-tags-for-resource`` example retrieves a list of all tags attached to the specified pipeline resource. :: + + aws codepipeline list-tags-for-resource \ + --resource-arn arn:aws:codepipeline:us-east-1:123456789012:MyPipeline + +Output:: + + { + "tags": { + "Project": "ProjectA", + "IscontainerBased": "true" + } + } + +For more information, see `View tags for a pipeline (CLI) `__ in the *AWS CodePipeline User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/list-webhooks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/list-webhooks.rst new file mode 100644 index 000000000..33f843ee8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/list-webhooks.rst @@ -0,0 +1,34 @@ +**To list webhooks** + +The following ``list-webhooks`` example retrieves a list of all tags attached to the specified pipeline resource. :: + + aws codepipeline list-webhooks \ + --endpoint-url "https://codepipeline.eu-central-1.amazonaws.com" \ + --region "eu-central-1" + +Output:: + + { + "webhooks": [ + { + "url": "https://webhooks.domain.com/trigger111111111EXAMPLE11111111111111111": { + "authenticationConfiguration": { + "SecretToken": "Secret" + }, + "name": "my-webhook", + "authentication": "GITHUB_HMAC", + "targetPipeline": "my-Pipeline", + "targetAction": "Source", + "filters": [ + { + "jsonPath": "$.ref", + "matchEquals": "refs/heads/{Branch}" + } + ] + }, + "arn": "arn:aws:codepipeline:eu-central-1:123456789012:webhook:my-webhook" + } + ] + } + +For more information, see `List webhooks in your account `__ in the *AWS CodePipeline User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/poll-for-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/poll-for-jobs.rst new file mode 100644 index 000000000..21736506b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/poll-for-jobs.rst @@ -0,0 +1,79 @@ +**To view any available jobs** + +This example returns information about any jobs for a job worker to act upon. This example uses a pre-defined JSON file (MyActionTypeInfo.json) to supply information about the action type for which the job worker processes jobs. This command is only used for custom actions. When this command is called, AWS CodePipeline returns temporary credentials for the Amazon S3 bucket used to store artifacts for the pipeline. This command will also return any secret values defined for the action, if any are defined. + +Command:: + + aws codepipeline poll-for-jobs --cli-input-json file://MyActionTypeInfo.json + +JSON file sample contents:: + + { + "actionTypeId": { + "category": "Test", + "owner": "Custom", + "provider": "MyJenkinsProviderName", + "version": "1" + }, + "maxBatchSize": 5, + "queryParam": { + "ProjectName": "MyJenkinsTestProject" + } + } + +Output:: + + { + "jobs": [ + { + "accountId": "111111111111", + "data": { + "actionConfiguration": { + "__type": "ActionConfiguration", + "configuration": { + "ProjectName": "MyJenkinsExampleTestProject" + } + }, + "actionTypeId": { + "__type": "ActionTypeId", + "category": "Test", + "owner": "Custom", + "provider": "MyJenkinsProviderName", + "version": "1" + }, + "artifactCredentials": { + "__type": "AWSSessionCredentials", + "accessKeyId": "AKIAIOSFODNN7EXAMPLE", + "secretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", + "sessionToken": "fICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=" + }, + "inputArtifacts": [ + { + "__type": "Artifact", + "location": { + "s3Location": { + "bucketName": "codepipeline-us-east-1-11EXAMPLE11", + "objectKey": "MySecondPipeline/MyAppBuild/EXAMPLE" + }, + "type": "S3" + }, + "name": "MyAppBuild" + } + ], + "outputArtifacts": [], + "pipelineContext": { + "__type": "PipelineContext", + "action": { + "name": "MyJenkinsTest-Action" + }, + "pipelineName": "MySecondPipeline", + "stage": { + "name": "Testing" + } + } + }, + "id": "ef66c259-64f9-EXAMPLE", + "nonce": "3" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/put-webhook.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/put-webhook.rst new file mode 100644 index 000000000..0299c55fa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/put-webhook.rst @@ -0,0 +1,59 @@ +**To create a webhook** + +The following ``put-webhook`` example creates a webhook for a GitHub version 1 source action. After you create the webhook, you must use the register-webhook-with-third-party command to register it. :: + + aws codepipeline put-webhook \ + --cli-input-json file://webhook_json.json \ + --region "eu-central-1" + +Contents of ``webhook_json.json``:: + + { + "webhook": { + "name": "my-webhook", + "targetPipeline": "pipeline_name", + "targetAction": "source_action_name", + "filters": [ + { + "jsonPath": "$.ref", + "matchEquals": "refs/heads/{Branch}" + } + ], + "authentication": "GITHUB_HMAC", + "authenticationConfiguration": { + "SecretToken": "secret" + } + } + } + +Output:: + + { + "webhook": { + "url": "https://webhooks.domain.com/trigger111111111EXAMPLE11111111111111111", + "definition": { + "authenticationConfiguration": { + "SecretToken": "secret" + }, + "name": "my-webhook", + "authentication": "GITHUB_HMAC", + "targetPipeline": "pipeline_name", + "targetAction": "Source", + "filters": [ + { + "jsonPath": "$.ref", + "matchEquals": "refs/heads/{Branch}" + } + ] + }, + "arn": "arn:aws:codepipeline:eu-central-1:123456789012:webhook:my-webhook" + }, + "tags": [ + { + "key": "Project", + "value": "ProjectA" + } + ] + } + +For more information, see `Create a webhook for a GitHub source `__ in the *AWS CodePipeline User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/retry-stage-execution.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/retry-stage-execution.rst new file mode 100644 index 000000000..124532074 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/retry-stage-execution.rst @@ -0,0 +1,17 @@ +**To retry a failed action** + +The following ``retry-stage-execution`` example retries a stage that has a failed action. :: + + aws codepipeline retry-stage-execution \ + --pipeline-name MyPipeline \ + --stage-name Deploy \ + --pipeline-execution-id b59babff-5f34-EXAMPLE \ + --retry-mode FAILED_ACTIONS + +Output:: + + { + "pipelineExecutionId": "b59babff-5f34-EXAMPLE" + } + +For more information, see `Retry failed actions (CLI) `__ in the *AWS CodePipeline User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/start-pipeline-execution.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/start-pipeline-execution.rst new file mode 100644 index 000000000..036dddc53 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/start-pipeline-execution.rst @@ -0,0 +1,14 @@ +**To run the latest revision through a pipeline** + +This example runs the latest revision present in the source stage of a pipeline through the pipeline named "MyFirstPipeline". + +Command:: + + aws codepipeline start-pipeline-execution --name MyFirstPipeline + + +Output:: + + { + "pipelineExecutionId": "3137f7cb-7cf7-EXAMPLE" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/stop-pipeline-execution.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/stop-pipeline-execution.rst new file mode 100644 index 000000000..516898635 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/stop-pipeline-execution.rst @@ -0,0 +1,12 @@ +**To stop a pipeline execution** + +The following ``stop-pipeline-execution`` example defaults to waiting until in-progress actions finish, and then stops the pipeline. You cannot choose to stop and wait if the execution is already in a Stopping state. You can choose to stop and abandon an execution that is already in a Stopping state. :: + + aws codepipeline stop-pipeline-execution \ + --pipeline-name MyFirstPipeline \ + --pipeline-execution-id d-EXAMPLE \ + --reason "Stopping pipeline after the build action is done" + +This command returns no output. + +For more information, see `Stop a pipeline execution (CLI) `__ in the *AWS CodePipeline User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/tag-resource.rst new file mode 100644 index 000000000..532f1ddbd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/tag-resource.rst @@ -0,0 +1,11 @@ +**To tag a resource** + +The following ``tag-resource`` example associates a set of provided tags with a pipeline. Use this command to add or edit tags. :: + + aws codepipeline tag-resource \ + --resource-arn arn:aws:codepipeline:us-east-1:123456789012:MyPipeline \ + --tags key=Project,value=ProjectA key=IscontainerBased,value=true + +This command produces no output. + +For more information, see `Add tags to a pipeline (CLI) `__ in the *AWS CodePipeline User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/untag-resource.rst new file mode 100644 index 000000000..77b0a7858 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove AWS tags from a connections resource** + +The following ``untag-resource`` example removes a tag from the specified resource. :: + + aws codepipeline untag-resource \ + --resource-arn arn:aws:codepipeline:us-east-1:123456789012:MyPipeline \ + --tag-keys Project IscontainerBased + +This command produces no output. + +For more information, see `Remove tags from a pipeline (CLI) `__ in the *AWS CodePipeline User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/update-pipeline.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/update-pipeline.rst new file mode 100644 index 000000000..e4af5f693 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codepipeline/update-pipeline.rst @@ -0,0 +1,147 @@ +**To update the structure of a pipeline** + +This example uses the update-pipeline command with the --cli-input-json argument. This example uses a pre-defined JSON file (MyFirstPipeline.json) to update the structure of a pipeline. AWS CodePipeline recognizes the pipeline name contained in the JSON file, and then applies any changes from modified fields in the pipeline structure to update the pipeline. + +Use the following guidelines when creating the pre-defined JSON file: + +- If you are working with a pipeline structure retrieved using the get-pipeline command, you must remove the metadata section from the pipeline structure in the JSON file (the "metadata": { } lines and the "created," "pipelineARN," and "updated" fields within). +- The pipeline name cannot be changed. + +Command:: + + aws codepipeline update-pipeline --cli-input-json file://MyFirstPipeline.json + +Sample JSON file contents:: + + { + "pipeline": { + "roleArn": "arn:aws:iam::111111111111:role/AWS-CodePipeline-Service", + "stages": [ + { + "name": "Source", + "actions": [ + { + "inputArtifacts": [], + "name": "Source", + "actionTypeId": { + "category": "Source", + "owner": "AWS", + "version": "1", + "provider": "S3" + }, + "outputArtifacts": [ + { + "name": "MyApp" + } + ], + "configuration": { + "S3Bucket": "awscodepipeline-demo-bucket2", + "S3ObjectKey": "aws-codepipeline-s3-aws-codedeploy_linux.zip" + }, + "runOrder": 1 + } + ] + }, + { + "name": "Beta", + "actions": [ + { + "inputArtifacts": [ + { + "name": "MyApp" + } + ], + "name": "CodePipelineDemoFleet", + "actionTypeId": { + "category": "Deploy", + "owner": "AWS", + "version": "1", + "provider": "CodeDeploy" + }, + "outputArtifacts": [], + "configuration": { + "ApplicationName": "CodePipelineDemoApplication", + "DeploymentGroupName": "CodePipelineDemoFleet" + }, + "runOrder": 1 + } + ] + } + ], + "artifactStore": { + "type": "S3", + "location": "codepipeline-us-east-1-11EXAMPLE11" + }, + "name": "MyFirstPipeline", + "version": 1 + } + } + + +Output:: + + { + "pipeline": { + "artifactStore": { + "location": "codepipeline-us-east-1-11EXAMPLE11", + "type": "S3" + }, + "name": "MyFirstPipeline", + "roleArn": "arn:aws:iam::111111111111:role/AWS-CodePipeline-Service", + "stages": [ + { + "actions": [ + { + "actionTypeId": { + "__type": "ActionTypeId", + "category": "Source", + "owner": "AWS", + "provider": "S3", + "version": "1" + }, + "configuration": { + "S3Bucket": "awscodepipeline-demo-bucket2", + "S3ObjectKey": "aws-codepipeline-s3-aws-codedeploy_linux.zip" + }, + "inputArtifacts": [], + "name": "Source", + "outputArtifacts": [ + { + "name": "MyApp" + } + ], + "runOrder": 1 + } + ], + "name": "Source" + }, + { + "actions": [ + { + "actionTypeId": { + "__type": "ActionTypeId", + "category": "Deploy", + "owner": "AWS", + "provider": "CodeDeploy", + "version": "1" + }, + "configuration": { + "ApplicationName": "CodePipelineDemoApplication", + "DeploymentGroupName": "CodePipelineDemoFleet" + }, + "inputArtifacts": [ + { + "name": "MyApp" + } + ], + "name": "CodePipelineDemoFleet", + "outputArtifacts": [], + "runOrder": 1 + } + ], + "name": "Beta" + } + ], + "version": 3 + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/create-connection.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/create-connection.rst new file mode 100644 index 000000000..5cb934489 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/create-connection.rst @@ -0,0 +1,17 @@ +**To create a connection** + +The following ``create-connection`` example shows how to create a connection to a third-party repository. This example creates a connection where the third-party provider is Bitbucket. + +A connection created through the AWS CLI or AWS CloudFormation is in Pending status by default. After you create a connection with the CLI or AWS CloudFormation, use the console to edit the connection to make its status Available. :: + + aws codestar-connections create-connection \ + --provider-type Bitbucket \ + --connection-name MyConnection + +Output:: + + { + "ConnectionArn": "arn:aws:codestar-connections:us-east-1:123456789012:connection/aEXAMPLE-8aad-4d5d-8878-dfcab0bc441f" + } + +For more information, see `Create a connection `__ in the *Developer Tools console User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/create-host.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/create-host.rst new file mode 100644 index 000000000..063fcdac2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/create-host.rst @@ -0,0 +1,18 @@ +**To create a host** + +The following ``create-host`` example shows how to create a host to represent the endpoint for the infrastructure where your third-party provider is installed. This example creates a host where the third-party installed provider is GitHub Enterprise Server. + +A host created through the AWS CLI is in Pending status by default. After you create a host with the CLI, use the console or the CLI to set up the host to make its status Available. :: + + aws codestar-connections create-host \ + --name MyHost \ + --provider-type GitHubEnterpriseServer \ + --provider-endpoint "https://my-instance.dev" + +Output:: + + { + "HostArn": "arn:aws:codestar-connections:us-east-1:123456789012:host/My-Host-28aef605" + } + +For more information, see `Create a host (CLI) `__ in the *Developer Tools console User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/delete-connection.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/delete-connection.rst new file mode 100644 index 000000000..9d84cc70e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/delete-connection.rst @@ -0,0 +1,10 @@ +**To delete a connection** + +The following ``delete-connection`` example shows how to delete a connection. :: + + aws codestar-connections delete-connection \ + --connection-arn arn:aws:codestar-connections:us-west-2:123456789012:connection/aEXAMPLE-8aad-4d5d-8878-dfcab0bc441f + +This command produces no output. + +For more information, see `Delete a connection (CLI) `__ in the *Developer Tools console User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/delete-host.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/delete-host.rst new file mode 100644 index 000000000..925fe561c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/delete-host.rst @@ -0,0 +1,10 @@ +**To delete a host** + +The following ``delete-host`` example shows how to delete a host. Before you can delete a host, you must delete all connections associated with the host. :: + + aws codestar-connections delete-host \ + --host-arn "arn:aws:codestar-connections:us-east-1 :123456789012:host/My-Host-28aef605" + +This command produces no output. + +For more information, see `Delete a host (CLI) `__ in the *Developer Tools console User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/get-connection.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/get-connection.rst new file mode 100644 index 000000000..409bd4648 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/get-connection.rst @@ -0,0 +1,20 @@ +**To get information about a connection** + +The following ``get-connection`` example shows details about a connection. :: + + aws codestar-connections get-connection \ + --connection-arn arn:aws:codestar-connections:us-east-1:123456789012:connection/aEXAMPLE-8aad-4d5d-8878-dfcab0bc441f + +Output:: + + { + "Connection": { + "ConnectionName": "MyConnection", + "ConnectionArn": "arn:aws:codestar-connections:us-east-1:123456789012:connection/aEXAMPLE-8aad-4d5d-8878-dfcab0bc441f", + "ProviderType": "Bitbucket", + "OwnerAccountId": "123456789012", + "ConnectionStatus": "AVAILABLE" + } + } + +For more information, see `View connection details `__ in the *Developer Tools console User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/get-host.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/get-host.rst new file mode 100644 index 000000000..ea7f788c4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/get-host.rst @@ -0,0 +1,17 @@ +**To get information about a host** + +The following ``get-host`` example shows details about a host:: + + aws codestar-connections get-host \ + --host-arn arn:aws:codestar-connections:us-east-1:123456789012:host/MyHost-28aef605 + +Output:: + + { + "Name": "MyHost", + "Status": "AVAILABLE", + "ProviderType": "GitHubEnterpriseServer", + "ProviderEndpoint": "https://test-instance-1.dev/" + } + +For more information, see `View host details (CLI) `__ in the *Developer Tools console User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/list-connections.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/list-connections.rst new file mode 100644 index 000000000..4fde5f7af --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/list-connections.rst @@ -0,0 +1,32 @@ +**To list connections** + +The following ``list-connections`` example retrieves a list of all connections in your account for the Bitbucket provider type.:: + + aws codestar-connections list-connections \ + --provider-type Bitbucket \ + --max-results 5 \ + --next-token: next-token + +Output:: + + { + "Connections": [ + { + "ConnectionName": "my-connection", + "ProviderType": "Bitbucket", + "Status": "PENDING", + "ARN": "arn:aws:codestar-connections:us-east-1:123456789012:connection/aEXAMPLE-8aad-4d5d-8878-dfcab0bc441f", + "OwnerAccountId": "123456789012" + }, + { + "ConnectionName": "my-other-connection", + "ProviderType": "Bitbucket", + "Status": "AVAILABLE", + "ARN": "arn:aws:codestar-connections:us-east-1:123456789012:connection/aEXAMPLE-8aad-4d5d-8878-dfcab0bc441f", + "OwnerAccountId": "123456789012" + }, + ], + "NextToken": "next-token" + } + +For more information, see `List connections (CLI) `__ in the *Developer Tools console User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/list-hosts.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/list-hosts.rst new file mode 100644 index 000000000..62d5c1177 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/list-hosts.rst @@ -0,0 +1,21 @@ +**To list hosts** + +The following ``list-hosts`` example retrieves a list of all hosts in your account. :: + + aws codestar-connections list-hosts + +Output:: + + { + "Hosts": [ + { + "Name": "My-Host", + "HostArn": "arn:aws:codestar-connections:us-east-1:123456789012:host/My-Host-28aef605", + "ProviderType": "GitHubEnterpriseServer", + "ProviderEndpoint": "https://my-instance.test.dev", + "Status": "AVAILABLE" + } + ] + } + +For more information, see `List hosts (CLI) `__ in the *Developer Tools console User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/list-tags-for-resource.rst new file mode 100644 index 000000000..c37d55d0f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/list-tags-for-resource.rst @@ -0,0 +1,23 @@ +**To list tags** + +The following ``list-tags-for-resource`` example retrieves a list of all tags attached to the specified connections resource. :: + + aws codestar-connections list-tags-for-resource \ + --resource-arn arn:aws:codestar-connections:us-east-1:123456789012:connection/aEXAMPLE-8aad-4d5d-8878-dfcab0bc441f + +Output:: + + { + "Tags": [ + { + "Key": "Project", + "Value": "ProjectA" + }, + { + "Key": "ReadOnly", + "Value": "true" + } + ] + } + +For more information, see `View tags for a connections resource `__ in the *Developer Tools console User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/tag-resource.rst new file mode 100644 index 000000000..a6e1e21a5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/tag-resource.rst @@ -0,0 +1,11 @@ +**To tag a resource** + +The following ``tag-resource`` example associates a set of provided tags with a connection. Use this command to add or edit tags. :: + + aws codestar-connections tag-resource \ + --resource-arn arn:aws:codestar-connections:us-east-1:123456789012:connection/aEXAMPLE-8aad-4d5d-8878-dfcab0bc441f \ + --tags Key=Project,Value=ProjectA Key=IscontainerBased,Value=true + +This command produces no output. + +For more information, see `Add tags to a connections resource `__ in the *Developer Tools console User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/untag-resource.rst new file mode 100644 index 000000000..1bf6d53eb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-connections/untag-resource.rst @@ -0,0 +1,15 @@ +**To remove AWS tags from a connections resource** + +The following ``untag-resource`` removes a tag from the specified resource. :: + + aws codestar-connections untag-resource \ + --resource-arn arn:aws:codestar-connections:us-east-1:123456789012:connection/aEXAMPLE-8aad-4d5d-8878-dfcab0bc441f \ + --tag-keys Project ReadOnly + +Output:: + + { + "Tags": [] + } + +For more information, see `Remove tags from a connections resource `__ in the *Developer Tools console User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/create-notification-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/create-notification-rule.rst new file mode 100644 index 000000000..e953f9436 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/create-notification-rule.rst @@ -0,0 +1,32 @@ +**To create a notification rule** + +The following ``create-notification-rule`` example uses a JSON file named ``rule.json`` to create a notification rule named ``MyNotificationRule`` for a repository named ``MyDemoRepo`` in the specified AWS account. Notifications with the ``FULL`` detail type are sent to the specified target Amazon SNS topic when branches and tags are created. :: + + aws codestar-notifications create-notification-rule \ + --cli-input-json file://rule.json + +Contents of ``rule.json``:: + + { + "Name": "MyNotificationRule", + "EventTypeIds": [ + "codecommit-repository-branches-and-tags-created" + ], + "Resource": "arn:aws:codecommit:us-east-1:123456789012:MyDemoRepo", + "Targets": [ + { + "TargetType": "SNS", + "TargetAddress": "arn:aws:sns:us-east-1:123456789012:MyNotificationTopic" + } + ], + "Status": "ENABLED", + "DetailType": "FULL" + } + +Output:: + + { + "Arn": "arn:aws:codestar-notifications:us-east-1:123456789012:notificationrule/dc82df7a-EXAMPLE" + } + +For more information, see `Create a Notification rule `__ in the *AWS Developer Tools Console User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/delete-notification-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/delete-notification-rule.rst new file mode 100644 index 000000000..fd41570f6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/delete-notification-rule.rst @@ -0,0 +1,14 @@ +**To delete a notification rule** + +The following ``delete-notification-rule`` example deletes the specified notification rule. :: + + aws codestar-notifications delete-notification-rule \ + --arn arn:aws:codestar-notifications:us-east-1:123456789012:notificationrule/dc82df7a-EXAMPLE + +Output:: + + { + "Arn": "arn:aws:codestar-notifications:us-east-1:123456789012:notificationrule/dc82df7a-EXAMPLE" + } + +For more information, see `Delete a Notification Rule `__ in the *AWS Developer Tools Console User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/delete-target.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/delete-target.rst new file mode 100644 index 000000000..811bbe017 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/delete-target.rst @@ -0,0 +1,11 @@ +**To delete a notification rule target** + +The following ``delete-target`` example removes the specified target from all notification rules configured to use it as a target, and then deletes the target. :: + + aws codestar-notifications delete-target \ + --target-address arn:aws:sns:us-east-1:123456789012:MyNotificationTopic \ + --force-unsubscribe-all + +This command produces no output. + +For more information, see `Delete a Notification Rule Target `__ in the *AWS Developer Tools Console User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/describe-notification-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/describe-notification-rule.rst new file mode 100644 index 000000000..ef3046957 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/describe-notification-rule.rst @@ -0,0 +1,36 @@ +**To retrieve details of a notification rule** + +The following ``describe-notification-rule`` example retrieves the details of the specified notification rule. :: + + aws codestar-notifications describe-notification-rule \ + --arn arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/dc82df7a-EXAMPLE + +Output:: + + { + "LastModifiedTimestamp": 1569199844.857, + "EventTypes": [ + { + "ServiceName": "CodeCommit", + "EventTypeName": "Branches and tags: Created", + "ResourceType": "Repository", + "EventTypeId": "codecommit-repository-branches-and-tags-created" + } + ], + "Status": "ENABLED", + "DetailType": "FULL", + "Resource": "arn:aws:codecommit:us-west-2:123456789012:MyDemoRepo", + "Arn": "arn:aws:codestar-notifications:us-west-w:123456789012:notificationrule/dc82df7a-EXAMPLE", + "Targets": [ + { + "TargetStatus": "ACTIVE", + "TargetAddress": "arn:aws:sns:us-west-2:123456789012:MyNotificationTopic", + "TargetType": "SNS" + } + ], + "Name": "MyNotificationRule", + "CreatedTimestamp": 1569199844.857, + "CreatedBy": "arn:aws:iam::123456789012:user/Mary_Major" + } + +For more information, see `View Notification Rules `__ in the *AWS Developer Tools Console User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/list-event-types.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/list-event-types.rst new file mode 100644 index 000000000..8c314d98c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/list-event-types.rst @@ -0,0 +1,33 @@ +**To get a list of event types for a notification rule** + +The following ``list-event-types`` example retrieves a filtered list of all available notification event types for CodeDeploy applications. If instead you use no filter, the command returns all notification event types for all resource types. :: + + aws codestar-notifications list-event-types \ + --filters Name=SERVICE_NAME,Value=CodeDeploy + +Output:: + + { + "EventTypes": [ + { + "EventTypeId": "codedeploy-application-deployment-succeeded", + "ServiceName": "CodeDeploy", + "EventTypeName": "Deployment: Succeeded", + "ResourceType": "Application" + }, + { + "EventTypeId": "codedeploy-application-deployment-failed", + "ServiceName": "CodeDeploy", + "EventTypeName": "Deployment: Failed", + "ResourceType": "Application" + }, + { + "EventTypeId": "codedeploy-application-deployment-started", + "ServiceName": "CodeDeploy", + "EventTypeName": "Deployment: Started", + "ResourceType": "Application" + } + ] + } + +For more information, see `Create a Notification Rule `__ in the *AWS Developer Tools Console User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/list-notification-rules.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/list-notification-rules.rst new file mode 100644 index 000000000..3a3428e94 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/list-notification-rules.rst @@ -0,0 +1,22 @@ +**To retrieve a list of notification rules** + +The following ``list-notification-rules`` example retrieves a list of all notification rules in the specified AWS Region. :: + + aws codestar-notifications list-notification-rules --region us-east-1 + +Output:: + + { + "NotificationRules": [ + { + "Id": "dc82df7a-EXAMPLE", + "Arn": "arn:aws:codestar-notifications:us-east-1:123456789012:notificationrule/dc82df7a-EXAMPLE" + }, + { + "Id": "8d1f0983-EXAMPLE", + "Arn": "arn:aws:codestar-notifications:us-east-1:123456789012:notificationrule/8d1f0983-EXAMPLE" + } + ] + } + +For more information, see `View Notification Rules `__ in the *AWS Developer Tools Console User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/list-tags-for-resource.rst new file mode 100644 index 000000000..7519044fa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/list-tags-for-resource.rst @@ -0,0 +1,14 @@ +**To get a list of tags attached to a notification rule** + +The following ``list-tags-for-resource`` example retrieves a list of all tags attached to the specified notification rule. In this example, the notification rule currently has no tags associated with it. :: + + aws codestar-notifications list-tags-for-resource \ + --arn arn:aws:codestar-notifications:us-east-1:123456789012:notificationrule/fe1efd35-EXAMPLE + +Output:: + + { + "Tags": {} + } + +For more information, see `Create a Notification Rule `__ in the *AWS Developer Tools Console User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/list-targets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/list-targets.rst new file mode 100644 index 000000000..d19c208ee --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/list-targets.rst @@ -0,0 +1,25 @@ +**To retrieve a list of notification rule targets** + +The following ``list-targets`` example retrieves a list of all notification rule targets in the specified AWS Region. :: + + aws codestar-notifications list-targets \ + --region us-east-1 + +Output:: + + { + "Targets": [ + { + "TargetAddress": "arn:aws:sns:us-east-1:123456789012:MySNSTopicForNotificationRules", + "TargetType": "SNS", + "TargetStatus": "ACTIVE" + }, + { + "TargetAddress": "arn:aws:sns:us-east-1:123456789012:MySNSTopicForNotificationsAboutMyDemoRepo", + "TargetType": "SNS", + "TargetStatus": "ACTIVE" + } + ] + } + +For more information, see `View Notification Rule Targets `__ in the *AWS Developer Tools Console User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/subscribe.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/subscribe.rst new file mode 100644 index 000000000..c100c7812 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/subscribe.rst @@ -0,0 +1,15 @@ +**To add a target to a notification rule** + +The following ``subscribe`` example adds an Amazon SNS topic as a target for the specified notification rule. :: + + aws codestar-notifications subscribe \ + --arn arn:aws:codestar-notifications:us-east-1:123456789012:notificationrule/dc82df7a-EXAMPLE \ + --target TargetType=SNS,TargetAddress=arn:aws:sns:us-east-1:123456789012:MyNotificationTopic + +Output:: + + { + "Arn": "arn:aws:codestar-notifications:us-east-1:123456789012:notificationrule/dc82df7a-EXAMPLE" + } + +For more information, see `Add or Remove an Amazon SNS Topic as a Target for a Notification Rule `__ in the *AWS Developer Tools Console User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/tag-resource.rst new file mode 100644 index 000000000..4b1210215 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/tag-resource.rst @@ -0,0 +1,17 @@ +**To add a tag to a notification rule** + +The following ``tag-resource`` example adds a tag with the key name of ``Team`` and the value of ``Li_Juan`` to the specified notification rule. :: + + aws codestar-notifications tag-resource \ + --arn arn:aws:codestar-notifications:us-east-1:123456789012:notificationrule/fe1efd35-EXAMPLE \ + --tags Team=Li_Juan + +Output:: + + { + "Tags": { + "Team": "Li_Juan" + } + } + +For more information, see `Create a Notification Rule `__ in the *AWS Developer Tools Console User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/unsubscribe.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/unsubscribe.rst new file mode 100644 index 000000000..85dd76b83 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/unsubscribe.rst @@ -0,0 +1,16 @@ +**To remove a target from a notification rule** + +The following ``unsubscribe`` example removes an Amazon SNS topic as a target from the specified notification rule. :: + + aws codestar-notifications unsubscribe \ + --arn arn:aws:codestar-notifications:us-east-1:123456789012:notificationrule/dc82df7a-EXAMPLE \ + --target TargetType=SNS,TargetAddress=arn:aws:sns:us-east-1:123456789012:MyNotificationTopic + +Output:: + + { + "Arn": "arn:aws:codestar-notifications:us-east-1:123456789012:notificationrule/dc82df7a-EXAMPLE" + "TargetAddress": "arn:aws:sns:us-east-1:123456789012:MyNotificationTopic" + } + +For more information, see `Add or Remove an Amazon SNS Topic as a Target for a Notification Rule `__ in the *AWS Developer Tools Console User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/untag-resource.rst new file mode 100644 index 000000000..1e63b97d0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove a tag from a notification rule** + +The following ``untag-resource`` example removes the tag with the key name ``Team`` from the specified notification rule. :: + + aws codestar-notifications untag-resource \ + --arn arn:aws:codestar-notifications:us-east-1:123456789012:notificationrule/fe1efd35-EXAMPLE \ + --tag-keys Team + +This command produces no output. + +For more information, see `Edit a Notification Rule `__ in the *AWS Developer Tools Console User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/update-notification-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/update-notification-rule.rst new file mode 100644 index 000000000..784610f45 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/codestar-notifications/update-notification-rule.rst @@ -0,0 +1,33 @@ +**To update a notification rule** + +The following ``update-notification-rule`` example updates a notification rule named ``MyNotificationRule`` in the AWS account ``123456789012`` using a JSON file named ``update.json``. :: + + aws codestar-notifications update-notification-rule \ + --cli-input-json file://update.json + + +Contents of ``update.json``:: + + { + "Name": "MyUpdatedNotificationRule", + "EventTypeIds": [ + "codecommit-repository-branches-and-tags-created" + ], + "Resource": "arn:aws:codecommit:us-east-1:123456789012:MyDemoRepo", + "Targets": [ + { + "TargetType": "SNS", + "TargetAddress": "arn:aws:sns:us-east-1:123456789012:MyNotificationTopic" + } + ], + "Status": "ENABLED", + "DetailType": "FULL" + } + +Output:: + + { + "Arn": "arn:aws:codestar-notifications:us-east-1:123456789012:notificationrule/dc82df7a-EXAMPLE" + } + +For more information, see `Edit a notification rule `__ in the *AWS Developer Tools Console User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/create-identity-pool.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/create-identity-pool.rst new file mode 100644 index 000000000..2cf19bf84 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/create-identity-pool.rst @@ -0,0 +1,24 @@ +**To create an identity pool with Cognito identity pool provider** + +This example creates an identity pool named MyIdentityPool. It has a Cognito identity pool provider. +Unauthenticated identities are not allowed. + +Command:: + + aws cognito-identity create-identity-pool --identity-pool-name MyIdentityPool --no-allow-unauthenticated-identities --cognito-identity-providers ProviderName="cognito-idp.us-west-2.amazonaws.com/us-west-2_aaaaaaaaa",ClientId="3n4b5urk1ft4fl3mg5e62d9ado",ServerSideTokenCheck=false + +Output:: + + { + "IdentityPoolId": "us-west-2:11111111-1111-1111-1111-111111111111", + "IdentityPoolName": "MyIdentityPool", + "AllowUnauthenticatedIdentities": false, + "CognitoIdentityProviders": [ + { + "ProviderName": "cognito-idp.us-west-2.amazonaws.com/us-west-2_111111111", + "ClientId": "3n4b5urk1ft4fl3mg5e62d9ado", + "ServerSideTokenCheck": false + } + ] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/delete-identities.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/delete-identities.rst new file mode 100644 index 000000000..43a6345bb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/delete-identities.rst @@ -0,0 +1,13 @@ +**To delete identity pool** + +This example deletes an identity pool. + +Command:: + + aws cognito-identity delete-identity-pool --identity-ids-to-delete "us-west-2:11111111-1111-1111-1111-111111111111" + +Output:: + + { + "UnprocessedIdentityIds": [] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/delete-identity-pool.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/delete-identity-pool.rst new file mode 100644 index 000000000..b99224297 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/delete-identity-pool.rst @@ -0,0 +1,10 @@ +**To delete identity pool** + +The following ``delete-identity-pool`` example deletes the specified identity pool. + +Command:: + + aws cognito-identity delete-identity-pool \ + --identity-pool-id "us-west-2:11111111-1111-1111-1111-111111111111" + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/describe-identity-pool.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/describe-identity-pool.rst new file mode 100644 index 000000000..2f96b4dcd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/describe-identity-pool.rst @@ -0,0 +1,22 @@ +**To describe an identity pool** + +This example describes an identity pool. + +Command:: + + aws cognito-identity describe-identity-pool --identity-pool-id "us-west-2:11111111-1111-1111-1111-111111111111" + +Output:: + + { + "IdentityPoolId": "us-west-2:11111111-1111-1111-1111-111111111111", + "IdentityPoolName": "MyIdentityPool", + "AllowUnauthenticatedIdentities": false, + "CognitoIdentityProviders": [ + { + "ProviderName": "cognito-idp.us-west-2.amazonaws.com/us-west-2_111111111", + "ClientId": "3n4b5urk1ft4fl3mg5e62d9ado", + "ServerSideTokenCheck": false + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/get-identity-pool-roles.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/get-identity-pool-roles.rst new file mode 100644 index 000000000..0f8b1887d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/get-identity-pool-roles.rst @@ -0,0 +1,17 @@ +**To get identity pool roles** + +This example gets identity pool roles. + +Command:: + + aws cognito-identity get-identity-pool-roles --identity-pool-id "us-west-2:11111111-1111-1111-1111-111111111111" + +Output:: + + { + "IdentityPoolId": "us-west-2:11111111-1111-1111-1111-111111111111", + "Roles": { + "authenticated": "arn:aws:iam::111111111111:role/Cognito_MyIdentityPoolAuth_Role", + "unauthenticated": "arn:aws:iam::111111111111:role/Cognito_MyIdentityPoolUnauth_Role" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/list-identity-pools.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/list-identity-pools.rst new file mode 100644 index 000000000..d99a531c5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/list-identity-pools.rst @@ -0,0 +1,26 @@ +**To list identity pools** + +This example lists identity pools. There s a maximum of 20 identities listed. + +Command:: + + aws cognito-identity list-identity-pools --max-results 20 + +Output:: + + { + "IdentityPools": [ + { + "IdentityPoolId": "us-west-2:11111111-1111-1111-1111-111111111111", + "IdentityPoolName": "MyIdentityPool" + }, + { + "IdentityPoolId": "us-west-2:11111111-1111-1111-1111-111111111111", + "IdentityPoolName": "AnotherIdentityPool" + }, + { + "IdentityPoolId": "us-west-2:11111111-1111-1111-1111-111111111111", + "IdentityPoolName": "IdentityPoolRegionA" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/set-identity-pool-roles.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/set-identity-pool-roles.rst new file mode 100644 index 000000000..f74b9c8fd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/set-identity-pool-roles.rst @@ -0,0 +1,7 @@ +**To set identity pool roles** + +The following ``set-identity-pool-roles`` example sets an identity pool role. :: + + aws cognito-identity set-identity-pool-roles \ + --identity-pool-id "us-west-2:11111111-1111-1111-1111-111111111111" \ + --roles authenticated="arn:aws:iam::111111111111:role/Cognito_MyIdentityPoolAuth_Role" diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/update-identity-pool.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/update-identity-pool.rst new file mode 100644 index 000000000..2ac506160 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-identity/update-identity-pool.rst @@ -0,0 +1,23 @@ +**To update an identity pool** + +This example updates an identity pool. It sets the name to MyIdentityPool. It adds Cognito as an identity provider. +It disallows unauthenticated identities. + +Command:: + + aws cognito-identity update-identity-pool --identity-pool-id "us-west-2:11111111-1111-1111-1111-111111111111" --identity-pool-name "MyIdentityPool" --no-allow-unauthenticated-identities --cognito-identity-providers ProviderName="cognito-idp.us-west-2.amazonaws.com/us-west-2_111111111",ClientId="3n4b5urk1ft4fl3mg5e62d9ado",ServerSideTokenCheck=false + +Output:: + + { + "IdentityPoolId": "us-west-2:11111111-1111-1111-1111-111111111111", + "IdentityPoolName": "MyIdentityPool", + "AllowUnauthenticatedIdentities": false, + "CognitoIdentityProviders": [ + { + "ProviderName": "cognito-idp.us-west-2.amazonaws.com/us-west-2_111111111", + "ClientId": "3n4b5urk1ft4fl3mg5e62d9ado", + "ServerSideTokenCheck": false + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/add-custom-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/add-custom-attributes.rst new file mode 100644 index 000000000..923612c42 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/add-custom-attributes.rst @@ -0,0 +1,8 @@ +**To add a custom attribute** + +This example adds a custom attribute CustomAttr1 to a user pool. It is a String type, +and requires a minimum of 1 character and a maximum of 15. It is not required. + +Command:: + + aws cognito-idp add-custom-attributes --user-pool-id us-west-2_aaaaaaaaa --custom-attributes Name="CustomAttr1",AttributeDataType="String",DeveloperOnlyAttribute=false,Required=false,StringAttributeConstraints="{MinLength=1,MaxLength=15}" diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-add-user-to-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-add-user-to-group.rst new file mode 100644 index 000000000..6fa23ad3e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-add-user-to-group.rst @@ -0,0 +1,8 @@ +**To add a user to a group** + +This example adds user Jane to group MyGroup. + +Command:: + + aws cognito-idp admin-add-user-to-group --user-pool-id us-west-2_aaaaaaaaa --username Jane --group-name MyGroup + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-confirm-sign-up.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-confirm-sign-up.rst new file mode 100644 index 000000000..dd0bb9171 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-confirm-sign-up.rst @@ -0,0 +1,8 @@ +**To confirm user registration** + +This example confirms user jane@example.com. + +Command:: + + aws cognito-idp admin-confirm-sign-up --user-pool-id us-west-2_aaaaaaaaa --username jane@example.com + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-create-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-create-user.rst new file mode 100644 index 000000000..ccd582b94 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-create-user.rst @@ -0,0 +1,35 @@ +**To create a user** + +The following ``admin-create-user`` example creates a user with the specified settings email address and phone number. :: + + aws cognito-idp admin-create-user \ + --user-pool-id us-west-2_aaaaaaaaa \ + --username diego \ + --user-attributes Name=email,Value=diego@example.com Name=phone_number,Value="+15555551212" \ + --message-action SUPPRESS + +Output:: + + { + "User": { + "Username": "diego", + "Attributes": [ + { + "Name": "sub", + "Value": "7325c1de-b05b-4f84-b321-9adc6e61f4a2" + }, + { + "Name": "phone_number", + "Value": "+15555551212" + }, + { + "Name": "email", + "Value": "diego@example.com" + } + ], + "UserCreateDate": 1548099495.428, + "UserLastModifiedDate": 1548099495.428, + "Enabled": true, + "UserStatus": "FORCE_CHANGE_PASSWORD" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-delete-user-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-delete-user-attributes.rst new file mode 100644 index 000000000..d96fb176f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-delete-user-attributes.rst @@ -0,0 +1,8 @@ +**To delete a user attribute** + +This example deletes a custom attribute CustomAttr1 for user diego@example.com. + +Command:: + + aws cognito-idp admin-delete-user-attributes --user-pool-id us-west-2_aaaaaaaaa --username diego@example.com --user-attribute-names "custom:CustomAttr1" + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-delete-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-delete-user.rst new file mode 100644 index 000000000..ac0bbb369 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-delete-user.rst @@ -0,0 +1,8 @@ +**To delete a user** + +This example deletes a user. + +Command:: + + aws cognito-idp admin-delete-user --user-pool-id us-west-2_aaaaaaaaa --username diego@example.com + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-disable-provider-for-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-disable-provider-for-user.rst new file mode 100644 index 000000000..2d1209dd7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-disable-provider-for-user.rst @@ -0,0 +1,9 @@ +**To unlink a federated user from a local user profile** + +The following ``admin-disable-provider-for-user`` example disconnects a Google user from their linked local profile. :: + + aws cognito-idp admin-disable-provider-for-user \ + --user-pool-id us-west-2_EXAMPLE \ + --user ProviderAttributeName=Cognito_Subject,ProviderAttributeValue=0000000000000000,ProviderName=Google + +For more information, see `Linking federated users to an existing user profile `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-disable-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-disable-user.rst new file mode 100644 index 000000000..023745bf1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-disable-user.rst @@ -0,0 +1,9 @@ +**To prevent sign-in by a user** + +The following ``admin-disable-user`` example prevents sign-in by the user ``diego@example.com``. :: + + aws cognito-idp admin-disable-user \ + --user-pool-id us-west-2_EXAMPLE \ + --username diego@example.com + +For more information, see `Managing users `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-enable-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-enable-user.rst new file mode 100644 index 000000000..4a03faf7e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-enable-user.rst @@ -0,0 +1,9 @@ +**To enable sign-in by a user** + +The following ``admin-enable-user`` example enables sign-in by the user diego@example.com. :: + + aws cognito-idp admin-enable-user \ + --user-pool-id us-west-2_EXAMPLE \ + --username diego@example.com + +For more information, see `Managing users `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-forget-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-forget-device.rst new file mode 100644 index 000000000..f23c77d77 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-forget-device.rst @@ -0,0 +1,8 @@ +**To forget a device** + +This example forgets device for username jane@example.com + +Command:: + + aws cognito-idp admin-forget-device --user-pool-id us-west-2_aaaaaaaaa --username jane@example.com --device-key us-west-2_abcd_1234-5678 + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-get-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-get-device.rst new file mode 100644 index 000000000..7ed627124 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-get-device.rst @@ -0,0 +1,51 @@ +**To get a device** + +The following ``admin-get-device`` example displays one device for the user ``diego``. :: + + aws cognito-idp admin-get-device \ + --user-pool-id us-west-2_EXAMPLE \ + --username diego \ + --device-key us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "Device": { + "DeviceKey": "us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "DeviceAttributes": [ + { + "Name": "device_status", + "Value": "valid" + }, + { + "Name": "device_name", + "Value": "MyDevice" + }, + { + "Name": "dev:device_arn", + "Value": "arn:aws:cognito-idp:us-west-2:123456789012:owner/diego.us-west-2_EXAMPLE/device/us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + }, + { + "Name": "dev:device_owner", + "Value": "diego.us-west-2_EXAMPLE" + }, + { + "Name": "last_ip_used", + "Value": "192.0.2.1" + }, + { + "Name": "dev:device_remembered_status", + "Value": "remembered" + }, + { + "Name": "dev:device_sdk", + "Value": "aws-sdk" + } + ], + "DeviceCreateDate": 1715100742.022, + "DeviceLastModifiedDate": 1723233651.167, + "DeviceLastAuthenticatedDate": 1715100742.0 + } + } + +For more information, see `Working with user devices in your user pool `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-get-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-get-user.rst new file mode 100644 index 000000000..3de46a143 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-get-user.rst @@ -0,0 +1,39 @@ +**To get a user** + +This example gets information about username jane@example.com. + +Command:: + + aws cognito-idp admin-get-user --user-pool-id us-west-2_aaaaaaaaa --username jane@example.com + +Output:: + + { + "Username": "4320de44-2322-4620-999b-5e2e1c8df013", + "Enabled": true, + "UserStatus": "FORCE_CHANGE_PASSWORD", + "UserCreateDate": 1548108509.537, + "UserAttributes": [ + { + "Name": "sub", + "Value": "4320de44-2322-4620-999b-5e2e1c8df013" + }, + { + "Name": "email_verified", + "Value": "true" + }, + { + "Name": "phone_number_verified", + "Value": "true" + }, + { + "Name": "phone_number", + "Value": "+01115551212" + }, + { + "Name": "email", + "Value": "jane@example.com" + } + ], + "UserLastModifiedDate": 1548108509.537 + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-initiate-auth.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-initiate-auth.rst new file mode 100644 index 000000000..2e54deec5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-initiate-auth.rst @@ -0,0 +1,24 @@ +**To sign in a user as an admin** + +The following ``admin-initiate-auth`` example signs in the user diego@example.com. This example also includes metadata for threat protection and ClientMetadata for Lambda triggers. The user is configured for TOTP MFA and receives a challenge to provide a code from their authenticator app before they can complete authentication. :: + + aws cognito-idp admin-initiate-auth \ + --user-pool-id us-west-2_EXAMPLE \ + --client-id 1example23456789 \ + --auth-flow ADMIN_USER_PASSWORD_AUTH \ + --auth-parameters USERNAME=diego@example.com,PASSWORD="My@Example$Password3!",SECRET_HASH=ExampleEncodedClientIdSecretAndUsername= \ + --context-data="{\"EncodedData\":\"abc123example\",\"HttpHeaders\":[{\"headerName\":\"UserAgent\",\"headerValue\":\"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0\"}],\"IpAddress\":\"192.0.2.1\",\"ServerName\":\"example.com\",\"ServerPath\":\"/login\"}" \ + --client-metadata="{\"MyExampleKey\": \"MyExampleValue\"}" + +Output:: + + { + "ChallengeName": "SOFTWARE_TOKEN_MFA", + "Session": "AYABeExample...", + "ChallengeParameters": { + "FRIENDLY_DEVICE_NAME": "MyAuthenticatorApp", + "USER_ID_FOR_SRP": "diego@example.com" + } + } + +For more information, see `Admin authentication flow `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-link-provider-for-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-link-provider-for-user.rst new file mode 100644 index 000000000..4316adb21 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-link-provider-for-user.rst @@ -0,0 +1,10 @@ +**To link a local user to a federated user** + +The following ``admin-link-provider-for-user`` example links the local user diego to a user who will do federated sign-in with Google. :: + + aws cognito-idp admin-link-provider-for-user \ + --user-pool-id us-west-2_EXAMPLE \ + --destination-user ProviderName=Cognito,ProviderAttributeValue=diego \ + --source-user ProviderAttributeName=Cognito_Subject,ProviderAttributeValue=0000000000000000,ProviderName=Google + +For more information, see `Linking federated users to an existing user profile `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-list-devices.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-list-devices.rst new file mode 100644 index 000000000..6f150de3e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-list-devices.rst @@ -0,0 +1,53 @@ +**To list devices for a user** + +The following ``admin-list-devices`` example lists devices for the user diego. :: + + aws cognito-idp admin-list-devices \ + --user-pool-id us-west-2_EXAMPLE \ + --username diego \ + --limit 1 + +Output:: + + { + "Devices": [ + { + "DeviceKey": "us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "DeviceAttributes": [ + { + "Name": "device_status", + "Value": "valid" + }, + { + "Name": "device_name", + "Value": "MyDevice" + }, + { + "Name": "dev:device_arn", + "Value": "arn:aws:cognito-idp:us-west-2:123456789012:owner/diego.us-west-2_EXAMPLE/device/us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + }, + { + "Name": "dev:device_owner", + "Value": "diego.us-west-2_EXAMPLE" + }, + { + "Name": "last_ip_used", + "Value": "192.0.2.1" + }, + { + "Name": "dev:device_remembered_status", + "Value": "remembered" + }, + { + "Name": "dev:device_sdk", + "Value": "aws-sdk" + } + ], + "DeviceCreateDate": 1715100742.022, + "DeviceLastModifiedDate": 1723233651.167, + "DeviceLastAuthenticatedDate": 1715100742.0 + } + ] + } + +For more information, see `Working with user devices in your user pool `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-list-groups-for-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-list-groups-for-user.rst new file mode 100644 index 000000000..aa2134979 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-list-groups-for-user.rst @@ -0,0 +1,23 @@ +**To list groups for a user** + +This example lists groups for username jane@example.com. + +Command:: + + aws cognito-idp admin-list-groups-for-user --user-pool-id us-west-2_aaaaaaaaa --username diego@example.com + +Output:: + + { + "Groups": [ + { + "Description": "Sample group", + "Precedence": 1, + "LastModifiedDate": 1548097827.125, + "RoleArn": "arn:aws:iam::111111111111:role/SampleRole", + "GroupName": "SampleGroup", + "UserPoolId": "us-west-2_aaaaaaaaa", + "CreationDate": 1548097827.125 + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-list-user-auth-events.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-list-user-auth-events.rst new file mode 100644 index 000000000..066e32060 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-list-user-auth-events.rst @@ -0,0 +1,40 @@ +**To list authorization events for a user** + +The following ``admin-list-user-auth-events`` example lists the most recent user activity log event for the user diego. :: + + aws cognito-idp admin-list-user-auth-events \ + --user-pool-id us-west-2_ywDJHlIfU \ + --username brcotter+050123 \ + --max-results 1 + +Output:: + + { + "AuthEvents": [ + { + "EventId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "EventType": "SignIn", + "CreationDate": 1726694203.495, + "EventResponse": "InProgress", + "EventRisk": { + "RiskDecision": "AccountTakeover", + "RiskLevel": "Medium", + "CompromisedCredentialsDetected": false + }, + "ChallengeResponses": [ + { + "ChallengeName": "Password", + "ChallengeResponse": "Success" + } + ], + "EventContextData": { + "IpAddress": "192.0.2.1", + "City": "Seattle", + "Country": "United States" + } + } + ], + "NextToken": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222#2024-09-18T21:16:43.495Z" + } + +For more information, see `Viewing and exporting user event history `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-remove-user-from-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-remove-user-from-group.rst new file mode 100644 index 000000000..4f41bf8b5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-remove-user-from-group.rst @@ -0,0 +1,7 @@ +**To remove a user from a group** + +This example removes jane@example.com from SampleGroup. + +Command:: + + aws cognito-idp admin-remove-user-from-group --user-pool-id us-west-2_aaaaaaaaa --username jane@example.com --group-name SampleGroup diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-reset-user-password.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-reset-user-password.rst new file mode 100644 index 000000000..7732c6743 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-reset-user-password.rst @@ -0,0 +1,7 @@ +**To reset a user password** + +This example resets the password for diego@example.com. + +Command:: + + aws cognito-idp admin-reset-user-password --user-pool-id us-west-2_aaaaaaaaa --username diego@example.com diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-respond-to-auth-challenge.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-respond-to-auth-challenge.rst new file mode 100644 index 000000000..6ae67f420 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-respond-to-auth-challenge.rst @@ -0,0 +1,29 @@ +**To respond to an authentication challenge** + +There are many ways to respond to different authentication challenges, depending on your authentication flow, user pool configuration, and user settings. The following ``admin-respond-to-auth-challenge`` example provides a TOTP MFA code for diego@example.com and completes sign-in. This user pool has device remembering turned on, so the authentication result also returns a new device key. :: + + aws cognito-idp admin-respond-to-auth-challenge \ + --user-pool-id us-west-2_EXAMPLE \ + --client-id 1example23456789 \ + --challenge-name SOFTWARE_TOKEN_MFA \ + --challenge-responses USERNAME=diego@example.com,SOFTWARE_TOKEN_MFA_CODE=000000 \ + --session AYABeExample... + +Output:: + + { + "ChallengeParameters": {}, + "AuthenticationResult": { + "AccessToken": "eyJra456defEXAMPLE", + "ExpiresIn": 3600, + "TokenType": "Bearer", + "RefreshToken": "eyJra123abcEXAMPLE", + "IdToken": "eyJra789ghiEXAMPLE", + "NewDeviceMetadata": { + "DeviceKey": "us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "DeviceGroupKey": "-ExAmPlE1" + } + } + } + +For more information, see `Admin authentication flow `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-set-user-mfa-preference.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-set-user-mfa-preference.rst new file mode 100644 index 000000000..7cbd28c4e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-set-user-mfa-preference.rst @@ -0,0 +1,8 @@ +**To set the user MFA preference** + +This example sets the SMS MFA preference for username diego@example.com. + +Command:: + + aws cognito-idp admin-set-user-mfa-preference --user-pool-id us-west-2_aaaaaaaaa --username diego@example.com --sms-mfa-settings Enabled=false,PreferredMfa=false + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-set-user-password.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-set-user-password.rst new file mode 100644 index 000000000..88bdabf59 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-set-user-password.rst @@ -0,0 +1,13 @@ +**To set a user password as an admin** + +The following ``admin-set-user-password`` example permanently sets the password for diego@example.com. :: + + aws cognito-idp admin-set-user-password \ + --user-pool-id us-west-2_EXAMPLE \ + --username diego@example.com \ + --password MyExamplePassword1! \ + --permanent + +This command produces no output. + +For more information, see `Passwords, password recovery, and password policies `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-set-user-settings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-set-user-settings.rst new file mode 100644 index 000000000..d5d7d7a3f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-set-user-settings.rst @@ -0,0 +1,8 @@ +**To set user settings** + +This example sets the MFA delivery preference for username diego@example.com to EMAIL. + +Command:: + + aws cognito-idp admin-set-user-settings --user-pool-id us-west-2_aaaaaaaaa --username diego@example.com --mfa-options DeliveryMedium=EMAIL + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-update-auth-event-feedback.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-update-auth-event-feedback.rst new file mode 100644 index 000000000..060651884 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-update-auth-event-feedback.rst @@ -0,0 +1,8 @@ +**To provide feedback for an authorization event** + +This example sets the feedback value for an authorization event identified by event-id to Valid. + +Command:: + + aws cognito-idp admin-update-auth-event-feedback --user-pool-id us-west-2_aaaaaaaaa --username diego@example.com --event-id c2c2cf89-c0d3-482d-aba6-99d78a5b0bfe --feedback-value Valid + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-update-device-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-update-device-status.rst new file mode 100644 index 000000000..7c009b690 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-update-device-status.rst @@ -0,0 +1,8 @@ +**To update device status** + +This example sets the device remembered status for the device identified by device-key to not_remembered. + +Command:: + + aws cognito-idp admin-update-device-status --user-pool-id us-west-2_aaaaaaaaa --username diego@example.com --device-key xxxx --device-remembered-status not_remembered + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-update-user-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-update-user-attributes.rst new file mode 100644 index 000000000..ddc969bb5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-update-user-attributes.rst @@ -0,0 +1,8 @@ +**To update user attributes** + +This example updates a custom user attribute CustomAttr1 for user diego@example.com. + +Command:: + + aws cognito-idp admin-update-user-attributes --user-pool-id us-west-2_aaaaaaaaa --username diego@example.com --user-attributes Name="custom:CustomAttr1",Value="Purple" + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-user-global-sign-out.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-user-global-sign-out.rst new file mode 100644 index 000000000..dc6365e40 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/admin-user-global-sign-out.rst @@ -0,0 +1,9 @@ +**To sign out a user as an admin** + +The following ``admin-user-global-sign-out`` example signs out the user diego@example.com. :: + + aws cognito-idp admin-user-global-sign-out \ + --user-pool-id us-west-2_EXAMPLE \ + --username diego@example.com + +For more information, see `Authentication with a user pool `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/associate-software-token.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/associate-software-token.rst new file mode 100644 index 000000000..9a72f3db1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/associate-software-token.rst @@ -0,0 +1,14 @@ +**To generate a secret key for an MFA authenticator app** + +The following ``associate-software-token`` example generates a TOTP private key for a user who has signed in and received an access token. The resulting private key can be manually entered into an authenticator app, or applications can render it as a QR code that the user can scan. :: + + aws cognito-idp associate-software-token \ + --access-token eyJra456defEXAMPLE + +Output:: + + { + "SecretCode": "QWERTYUIOP123456EXAMPLE" + } + +For more information, see `TOTP software token MFA `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/change-password.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/change-password.rst new file mode 100644 index 000000000..7c787e758 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/change-password.rst @@ -0,0 +1,7 @@ +**To change a password** + +This example changes a password. + +Command:: + + aws cognito-idp change-password --previous-password OldPassword --proposed-password NewPassword --access-token ACCESS_TOKEN diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/confirm-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/confirm-device.rst new file mode 100644 index 000000000..6b391fb6d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/confirm-device.rst @@ -0,0 +1,16 @@ +**To confirm a user device** + +The following ``confirm-device`` example adds a new remembered device for the current user. :: + + aws cognito-idp confirm-device \ + --access-token eyJra456defEXAMPLE \ + --device-key us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ + --device-secret-verifier-config PasswordVerifier=TXlWZXJpZmllclN0cmluZw,Salt=TXlTUlBTYWx0 + +Output:: + + { + "UserConfirmationNecessary": false + } + +For more information, see `Working with user devices in your user pool `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/confirm-forgot-password.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/confirm-forgot-password.rst new file mode 100644 index 000000000..93d8e717a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/confirm-forgot-password.rst @@ -0,0 +1,8 @@ +**To confirm a forgotten password** + +This example confirms a forgotten password for username diego@example.com. + +Command:: + + aws cognito-idp confirm-forgot-password --client-id 3n4b5urk1ft4fl3mg5e62d9ado --username=diego@example.com --password PASSWORD --confirmation-code CONF_CODE + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/confirm-sign-up.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/confirm-sign-up.rst new file mode 100644 index 000000000..08efe9fe2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/confirm-sign-up.rst @@ -0,0 +1,8 @@ +**To confirm sign-up** + +This example confirms sign-up for username diego@example.com. + +Command:: + + aws cognito-idp confirm-sign-up --client-id 3n4b5urk1ft4fl3mg5e62d9ado --username=diego@example.com --confirmation-code CONF_CODE + \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/create-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/create-group.rst new file mode 100644 index 000000000..35e5c6ea7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/create-group.rst @@ -0,0 +1,41 @@ +**To create a group** + +This example creates a group with a description. + +Command:: + + aws cognito-idp create-group --user-pool-id us-west-2_aaaaaaaaa --group-name MyNewGroup --description "New group." + +Output:: + + { + "Group": { + "GroupName": "MyNewGroup", + "UserPoolId": "us-west-2_aaaaaaaaa", + "Description": "New group.", + "LastModifiedDate": 1548270073.795, + "CreationDate": 1548270073.795 + } + } + +**To create a group with a role and precedence** + +This example creates a group with a description. It also includes a role and precedence. + +Command:: + + aws cognito-idp create-group --user-pool-id us-west-2_aaaaaaaaa --group-name MyNewGroupWithRole --description "New group with a role." --role-arn arn:aws:iam::111111111111:role/MyNewGroupRole --precedence 2 + +Output:: + + { + "Group": { + "GroupName": "MyNewGroupWithRole", + "UserPoolId": "us-west-2_aaaaaaaaa", + "Description": "New group with a role.", + "RoleArn": "arn:aws:iam::111111111111:role/MyNewGroupRole", + "Precedence": 2, + "LastModifiedDate": 1548270211.761, + "CreationDate": 1548270211.761 + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/create-identity-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/create-identity-provider.rst new file mode 100644 index 000000000..fd66f4b2d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/create-identity-provider.rst @@ -0,0 +1,102 @@ +**Example 1: To create a user pool SAML identity provider (IdP) with a metadata URL** + +The following ``create-identity-provider`` example creates a new SAML IdP with metadata from a public URL, attribute mapping, and two identifiers. :: + + aws cognito-idp create-identity-provider \ + --user-pool-id us-west-2_EXAMPLE \ + --provider-name MySAML \ + --provider-type SAML \ + --provider-details IDPInit=true,IDPSignout=true,EncryptedResponses=true,MetadataURL=https://auth.example.com/sso/saml/metadata,RequestSigningAlgorithm=rsa-sha256 \ + --attribute-mapping email=emailaddress,phone_number=phone,custom:111=department \ + --idp-identifiers CorpSAML WestSAML + +Output:: + + { + "IdentityProvider": { + "UserPoolId": "us-west-2_EXAMPLE", + "ProviderName": "MySAML", + "ProviderType": "SAML", + "ProviderDetails": { + "ActiveEncryptionCertificate": "MIICvTCCAaEXAMPLE", + "EncryptedResponses": "true", + "IDPInit": "true", + "IDPSignout": "true", + "MetadataURL": "https://auth.example.com/sso/saml/metadata", + "RequestSigningAlgorithm": "rsa-sha256", + "SLORedirectBindingURI": "https://auth.example.com/slo/saml", + "SSORedirectBindingURI": "https://auth.example.com/sso/saml" + }, + "AttributeMapping": { + "custom:111": "department", + "emailaddress": "email", + "phone": "phone_number" + }, + "IdpIdentifiers": [ + "CorpSAML", + "WestSAML" + ], + "LastModifiedDate": 1726853833.977, + "CreationDate": 1726853833.977 + } + } + +For more information, see `Adding user pool sign-in through a third party `__ in the *Amazon Cognito Developer Guide*. + +**Example 2: To create a user pool SAML identity provider (IdP) with a metadata file** + +The following ``create-identity-provider`` example creates a new SAML IdP with metadata from a file, attribute mapping, and two identifiers. File syntax can differ between operating systems in the ``--provider-details`` parameter. It's easiest to create a JSON input file for this operation.:: + + aws cognito-idp create-identity-provider \ + --cli-input-json file://.\SAML-identity-provider.json + +Contents of ``SAML-identity-provider.json``:: + + { + "AttributeMapping": { + "email" : "idp_email", + "email_verified" : "idp_email_verified" + }, + "IdpIdentifiers": [ "platform" ], + "ProviderDetails": { + "MetadataFile": "[IDP_CERTIFICATE_DATA]urn:oasis:names:tc:SAML:1.1:nameid-format:unspecifiedurn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", + "IDPSignout" : "true", + "RequestSigningAlgorithm" : "rsa-sha256", + "EncryptedResponses" : "true", + "IDPInit" : "true" + }, + "ProviderName": "MySAML2", + "ProviderType": "SAML", + "UserPoolId": "us-west-2_EXAMPLE" + } + +Output:: + + { + "IdentityProvider": { + "UserPoolId": "us-west-2_EXAMPLE", + "ProviderName": "MySAML2", + "ProviderType": "SAML", + "ProviderDetails": { + "ActiveEncryptionCertificate": "[USER_POOL_ENCRYPTION_CERTIFICATE_DATA]", + "EncryptedResponses": "true", + "IDPInit": "true", + "IDPSignout": "true", + "MetadataFile": "[IDP_CERTIFICATE_DATA]urn:oasis:names:tc:SAML:1.1:nameid-format:unspecifiedurn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", + "RequestSigningAlgorithm": "rsa-sha256", + "SLORedirectBindingURI": "https://www.example.com/slo/saml", + "SSORedirectBindingURI": "https://www.example.com/sso/saml" + }, + "AttributeMapping": { + "email": "idp_email", + "email_verified": "idp_email_verified" + }, + "IdpIdentifiers": [ + "platform" + ], + "LastModifiedDate": 1726855290.731, + "CreationDate": 1726855290.731 + } + } + +For more information, see `Adding user pool sign-in through a third party `__ in the *Amazon Cognito Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/create-resource-server.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/create-resource-server.rst new file mode 100644 index 000000000..3b00722f1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/create-resource-server.rst @@ -0,0 +1,31 @@ +**To create a user pool client** + +The following ``create-resource-server`` example creates a new resource server with custom scopes. :: + + aws cognito-idp create-resource-server \ + --user-pool-id us-west-2_EXAMPLE \ + --identifier solar-system-data \ + --name "Solar system object tracker" \ + --scopes ScopeName=sunproximity.read,ScopeDescription="Distance in AU from Sol" ScopeName=asteroids.add,ScopeDescription="Enter a new asteroid" + +Output:: + + { + "ResourceServer": { + "UserPoolId": "us-west-2_EXAMPLE", + "Identifier": "solar-system-data", + "Name": "Solar system object tracker", + "Scopes": [ + { + "ScopeName": "sunproximity.read", + "ScopeDescription": "Distance in AU from Sol" + }, + { + "ScopeName": "asteroids.add", + "ScopeDescription": "Enter a new asteroid" + } + ] + } + } + +For more information, see `Scopes, M2M, and APIs with resource servers `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/create-user-import-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/create-user-import-job.rst new file mode 100644 index 000000000..46e66def0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/create-user-import-job.rst @@ -0,0 +1,35 @@ +**To create a user import job** + +This example creates a user import job named MyImportJob. + +For more information about importing users, see `Importing Users into User Pools From a CSV File`_. + +Command:: + + aws cognito-idp create-user-import-job --user-pool-id us-west-2_aaaaaaaaa --job-name MyImportJob --cloud-watch-logs-role-arn arn:aws:iam::111111111111:role/CognitoCloudWatchLogsRole + +Output:: + + { + "UserImportJob": { + "JobName": "MyImportJob", + "JobId": "import-qQ0DCt2fRh", + "UserPoolId": "us-west-2_aaaaaaaaa", + "PreSignedUrl": "PRE_SIGNED_URL", + "CreationDate": 1548271795.471, + "Status": "Created", + "CloudWatchLogsRoleArn": "arn:aws:iam::111111111111:role/CognitoCloudWatchLogsRole", + "ImportedUsers": 0, + "SkippedUsers": 0, + "FailedUsers": 0 + } + } + +Upload the .csv file with curl using the pre-signed URL: + +Command:: + + curl -v -T "PATH_TO_CSV_FILE" -H "x-amz-server-side-encryption:aws:kms" "PRE_SIGNED_URL" + + +.. _`Importing Users into User Pools From a CSV File`: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-using-import-tool.html \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/create-user-pool-client.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/create-user-pool-client.rst new file mode 100644 index 000000000..b02c0071d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/create-user-pool-client.rst @@ -0,0 +1,94 @@ +**To create a user pool client** + +The following ``create-user-pool-client`` example creates a new user pool client with a client secret, explicit read and write attributes, sign in with username-password and SRP flows, sign-in with three IdPs, access to a subset of OAuth scopes, PinPoint analytics, and an extended authentication session validity. :: + + aws cognito-idp create-user-pool-client \ + --user-pool-id us-west-2_EXAMPLE \ + --client-name MyTestClient \ + --generate-secret \ + --refresh-token-validity 10 \ + --access-token-validity 60 \ + --id-token-validity 60 \ + --token-validity-units AccessToken=minutes,IdToken=minutes,RefreshToken=days \ + --read-attributes email phone_number email_verified phone_number_verified \ + --write-attributes email phone_number \ + --explicit-auth-flows ALLOW_USER_PASSWORD_AUTH ALLOW_USER_SRP_AUTH ALLOW_REFRESH_TOKEN_AUTH \ + --supported-identity-providers Google Facebook MyOIDC \ + --callback-urls https://www.amazon.com https://example.com http://localhost:8001 myapp://example \ + --allowed-o-auth-flows code implicit \ + --allowed-o-auth-scopes openid profile aws.cognito.signin.user.admin solar-system-data/asteroids.add \ + --allowed-o-auth-flows-user-pool-client \ + --analytics-configuration ApplicationArn=arn:aws:mobiletargeting:us-west-2:767671399759:apps/thisisanexamplepinpointapplicationid,UserDataShared=TRUE \ + --prevent-user-existence-errors ENABLED \ + --enable-token-revocation \ + --enable-propagate-additional-user-context-data \ + --auth-session-validity 4 + +Output:: + + { + "UserPoolClient": { + "UserPoolId": "us-west-2_EXAMPLE", + "ClientName": "MyTestClient", + "ClientId": "123abc456defEXAMPLE", + "ClientSecret": "this1234is5678my91011example1213client1415secret", + "LastModifiedDate": 1726788459.464, + "CreationDate": 1726788459.464, + "RefreshTokenValidity": 10, + "AccessTokenValidity": 60, + "IdTokenValidity": 60, + "TokenValidityUnits": { + "AccessToken": "minutes", + "IdToken": "minutes", + "RefreshToken": "days" + }, + "ReadAttributes": [ + "email_verified", + "phone_number_verified", + "phone_number", + "email" + ], + "WriteAttributes": [ + "phone_number", + "email" + ], + "ExplicitAuthFlows": [ + "ALLOW_USER_PASSWORD_AUTH", + "ALLOW_USER_SRP_AUTH", + "ALLOW_REFRESH_TOKEN_AUTH" + ], + "SupportedIdentityProviders": [ + "Google", + "MyOIDC", + "Facebook" + ], + "CallbackURLs": [ + "https://example.com", + "https://www.amazon.com", + "myapp://example", + "http://localhost:8001" + ], + "AllowedOAuthFlows": [ + "implicit", + "code" + ], + "AllowedOAuthScopes": [ + "aws.cognito.signin.user.admin", + "openid", + "profile", + "solar-system-data/asteroids.add" + ], + "AllowedOAuthFlowsUserPoolClient": true, + "AnalyticsConfiguration": { + "ApplicationArn": "arn:aws:mobiletargeting:us-west-2:123456789012:apps/thisisanexamplepinpointapplicationid", + "RoleArn": "arn:aws:iam::123456789012:role/aws-service-role/cognito-idp.amazonaws.com/AWSServiceRoleForAmazonCognitoIdp", + "UserDataShared": true + }, + "PreventUserExistenceErrors": "ENABLED", + "EnableTokenRevocation": true, + "EnablePropagateAdditionalUserContextData": true, + "AuthSessionValidity": 4 + } + } + +For more information, see `Application-specific settings with app clients `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/create-user-pool-domain.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/create-user-pool-domain.rst new file mode 100644 index 000000000..9fb60e6cb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/create-user-pool-domain.rst @@ -0,0 +1,26 @@ +**Example 1: To create a user pool domain** + +The following ``create-user-pool-domain`` example creates a new custom domain. :: + + aws cognito-idp create-user-pool-domain \ + --user-pool-id us-west-2_EXAMPLE \ + --domain auth.example.com \ + --custom-domain-config CertificateArn=arn:aws:acm:us-east-1:123456789012:certificate/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222 + +Output:: + + { + "CloudFrontDomain": "example1domain.cloudfront.net" + } + +For more information, see `Configuring a user pool domain `__ in the *Amazon Cognito Developer Guide*. + +**Example 2: To create a user pool domain** + +The following ``create-user-pool-domain`` example creates a new domain with a service-owned prefix. :: + + aws cognito-idp create-user-pool-domain \ + --user-pool-id us-west-2_EXAMPLE2 \ + --domain mydomainprefix + +For more information, see `Configuring a user pool domain `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/create-user-pool.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/create-user-pool.rst new file mode 100644 index 000000000..ce41f20c9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/create-user-pool.rst @@ -0,0 +1,506 @@ +**To create a minimally configured user pool** + +This example creates a user pool named MyUserPool using default values. There are no required attributes +and no application clients. MFA and advanced security is disabled. + +Command:: + + aws cognito-idp create-user-pool --pool-name MyUserPool + +Output:: + + { + "UserPool": { + "SchemaAttributes": [ + { + "Name": "sub", + "StringAttributeConstraints": { + "MinLength": "1", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": true, + "AttributeDataType": "String", + "Mutable": false + }, + { + "Name": "name", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "given_name", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "family_name", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "middle_name", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "nickname", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "preferred_username", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "profile", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "picture", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "website", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "email", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "AttributeDataType": "Boolean", + "DeveloperOnlyAttribute": false, + "Required": false, + "Name": "email_verified", + "Mutable": true + }, + { + "Name": "gender", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "birthdate", + "StringAttributeConstraints": { + "MinLength": "10", + "MaxLength": "10" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "zoneinfo", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "locale", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "phone_number", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "AttributeDataType": "Boolean", + "DeveloperOnlyAttribute": false, + "Required": false, + "Name": "phone_number_verified", + "Mutable": true + }, + { + "Name": "address", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "updated_at", + "NumberAttributeConstraints": { + "MinValue": "0" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "Number", + "Mutable": true + } + ], + "MfaConfiguration": "OFF", + "Name": "MyUserPool", + "LastModifiedDate": 1547833345.777, + "AdminCreateUserConfig": { + "UnusedAccountValidityDays": 7, + "AllowAdminCreateUserOnly": false + }, + "EmailConfiguration": {}, + "Policies": { + "PasswordPolicy": { + "RequireLowercase": true, + "RequireSymbols": true, + "RequireNumbers": true, + "MinimumLength": 8, + "RequireUppercase": true + } + }, + "CreationDate": 1547833345.777, + "EstimatedNumberOfUsers": 0, + "Id": "us-west-2_aaaaaaaaa", + "LambdaConfig": {} + } + } + +**To create a user pool with two required attributes** + +This example creates a user pool MyUserPool. The pool is configured to accept +email as a username attribute. It also sets the email source address to a +validated address using Amazon Simple Email Service. + +Command:: + + aws cognito-idp create-user-pool --pool-name MyUserPool --username-attributes "email" --email-configuration=SourceArn="arn:aws:ses:us-east-1:111111111111:identity/jane@example.com",ReplyToEmailAddress="jane@example.com" + +Output:: + + { + "UserPool": { + "SchemaAttributes": [ + { + "Name": "sub", + "StringAttributeConstraints": { + "MinLength": "1", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": true, + "AttributeDataType": "String", + "Mutable": false + }, + { + "Name": "name", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "given_name", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "family_name", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "middle_name", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "nickname", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "preferred_username", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "profile", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "picture", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "website", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "email", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "AttributeDataType": "Boolean", + "DeveloperOnlyAttribute": false, + "Required": false, + "Name": "email_verified", + "Mutable": true + }, + { + "Name": "gender", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "birthdate", + "StringAttributeConstraints": { + "MinLength": "10", + "MaxLength": "10" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "zoneinfo", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "locale", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "phone_number", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "AttributeDataType": "Boolean", + "DeveloperOnlyAttribute": false, + "Required": false, + "Name": "phone_number_verified", + "Mutable": true + }, + { + "Name": "address", + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "String", + "Mutable": true + }, + { + "Name": "updated_at", + "NumberAttributeConstraints": { + "MinValue": "0" + }, + "DeveloperOnlyAttribute": false, + "Required": false, + "AttributeDataType": "Number", + "Mutable": true + } + ], + "MfaConfiguration": "OFF", + "Name": "MyUserPool", + "LastModifiedDate": 1547837788.189, + "AdminCreateUserConfig": { + "UnusedAccountValidityDays": 7, + "AllowAdminCreateUserOnly": false + }, + "EmailConfiguration": { + "ReplyToEmailAddress": "jane@example.com", + "SourceArn": "arn:aws:ses:us-east-1:111111111111:identity/jane@example.com" + }, + "Policies": { + "PasswordPolicy": { + "RequireLowercase": true, + "RequireSymbols": true, + "RequireNumbers": true, + "MinimumLength": 8, + "RequireUppercase": true + } + }, + "UsernameAttributes": [ + "email" + ], + "CreationDate": 1547837788.189, + "EstimatedNumberOfUsers": 0, + "Id": "us-west-2_aaaaaaaaa", + "LambdaConfig": {} + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-group.rst new file mode 100644 index 000000000..9b6d29119 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-group.rst @@ -0,0 +1,8 @@ +**To delete a group** + +This example deletes a group. + +Command:: + + aws cognito-idp delete-group --user-pool-id us-west-2_aaaaaaaaa --group-name MyGroupName + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-identity-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-identity-provider.rst new file mode 100644 index 000000000..dd0d3383c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-identity-provider.rst @@ -0,0 +1,8 @@ +**To delete an identity provider** + +This example deletes an identity provider. + +Command:: + + aws cognito-idp delete-identity-provider --user-pool-id us-west-2_aaaaaaaaa --provider-name Facebook + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-resource-server.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-resource-server.rst new file mode 100644 index 000000000..5498f5045 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-resource-server.rst @@ -0,0 +1,8 @@ +**To delete a resource server** + +This example deletes a resource server named weather.example.com. + +Command:: + + aws cognito-idp delete-resource-server --user-pool-id us-west-2_aaaaaaaaa --identifier weather.example.com + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-user-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-user-attributes.rst new file mode 100644 index 000000000..16e730946 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-user-attributes.rst @@ -0,0 +1,11 @@ +**To delete a user attribute** + +The following ``delete-user-attributes`` example deletes the custom attribute "custom:attribute" from the currently signed-in user. :: + + aws cognito-idp delete-user-attributes \ + --access-token ACCESS_TOKEN \ + --user-attribute-names "custom:department" + +This command produces no output. + +For more information, see `Working with user attributes `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-user-pool-client.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-user-pool-client.rst new file mode 100644 index 000000000..331dab5b1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-user-pool-client.rst @@ -0,0 +1,8 @@ +**To delete a user pool client** + +This example deletes a user pool client. + +Command:: + + aws cognito-idp delete-user-pool-client --user-pool-id us-west-2_aaaaaaaaa --client-id 38fjsnc484p94kpqsnet7mpld0 + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-user-pool-domain.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-user-pool-domain.rst new file mode 100644 index 000000000..54cb759cd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-user-pool-domain.rst @@ -0,0 +1,7 @@ +**To delete a user pool domain** + +The following ``delete-user-pool-domain`` example deletes a user pool domain named ``my-domain`` :: + + aws cognito-idp delete-user-pool-domain \ + --user-pool-id us-west-2_aaaaaaaaa \ + --domain my-domain diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-user-pool.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-user-pool.rst new file mode 100644 index 000000000..c66dcf351 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-user-pool.rst @@ -0,0 +1,8 @@ +**To delete a user pool** + +This example deletes a user pool using the user pool id, us-west-2_aaaaaaaaa. + +Command:: + + aws cognito-idp delete-user-pool --user-pool-id us-west-2_aaaaaaaaa + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-user.rst new file mode 100644 index 000000000..d00d5cb3a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/delete-user.rst @@ -0,0 +1,8 @@ +**To delete a user** + +This example deletes a user. + +Command:: + + aws cognito-idp delete-user --access-token ACCESS_TOKEN + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/describe-identity-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/describe-identity-provider.rst new file mode 100644 index 000000000..21f5d94ed --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/describe-identity-provider.rst @@ -0,0 +1,33 @@ +**To describe an identity provider** + +This example describes an identity provider named Facebook. + +Command:: + + aws cognito-idp describe-identity-provider --user-pool-id us-west-2_aaaaaaaaa --provider-name Facebook + +Output:: + + { + "IdentityProvider": { + "UserPoolId": "us-west-2_aaaaaaaaa", + "ProviderName": "Facebook", + "ProviderType": "Facebook", + "ProviderDetails": { + "attributes_url": "https://graph.facebook.com/me?fields=", + "attributes_url_add_attributes": "true", + "authorize_scopes": myscope", + "authorize_url": "https://www.facebook.com/v2.9/dialog/oauth", + "client_id": "11111", + "client_secret": "11111", + "token_request_method": "GET", + "token_url": "https://graph.facebook.com/v2.9/oauth/access_token" + }, + "AttributeMapping": { + "username": "id" + }, + "IdpIdentifiers": [], + "LastModifiedDate": 1548105901.736, + "CreationDate": 1548105901.736 + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/describe-resource-server.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/describe-resource-server.rst new file mode 100644 index 000000000..e9af34b6a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/describe-resource-server.rst @@ -0,0 +1,32 @@ +**To describe a resource server** + +This example describes the resource server weather.example.com. + +Command:: + + aws cognito-idp describe-resource-server --user-pool-id us-west-2_aaaaaaaaa --identifier weather.example.com + +Output:: + + { + "ResourceServer": { + "UserPoolId": "us-west-2_aaaaaaaaa", + "Identifier": "weather.example.com", + "Name": "Weather", + "Scopes": [ + { + "ScopeName": "weather.update", + "ScopeDescription": "Update weather forecast" + }, + { + "ScopeName": "weather.read", + "ScopeDescription": "Read weather forecasts" + }, + { + "ScopeName": "weather.delete", + "ScopeDescription": "Delete a weather forecast" + } + ] + } + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/describe-risk-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/describe-risk-configuration.rst new file mode 100644 index 000000000..c1bb7d2c9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/describe-risk-configuration.rst @@ -0,0 +1,61 @@ +**To describe a risk configuration** + +This example describes the risk configuration associated with pool us-west-2_aaaaaaaaa. + +Command:: + + aws cognito-idp describe-risk-configuration --user-pool-id us-west-2_aaaaaaaaa + +Output:: + + { + "RiskConfiguration": { + "UserPoolId": "us-west-2_aaaaaaaaa", + "CompromisedCredentialsRiskConfiguration": { + "EventFilter": [ + "SIGN_IN", + "SIGN_UP", + "PASSWORD_CHANGE" + ], + "Actions": { + "EventAction": "BLOCK" + } + }, + "AccountTakeoverRiskConfiguration": { + "NotifyConfiguration": { + "From": "diego@example.com", + "ReplyTo": "diego@example.com", + "SourceArn": "arn:aws:ses:us-east-1:111111111111:identity/diego@example.com", + "BlockEmail": { + "Subject": "Blocked sign-in attempt", + "HtmlBody": "\n\n\n\tHTML email context\n\t\n\n\n
We blocked an unrecognized sign-in to your account with this information:\n
    \n
  • Time: {login-time}
  • \n
  • Device: {device-name}
  • \n
  • Location: {city}, {country}
  • \n
\nIf this sign-in was not by you, you should change your password and notify us by clicking on
this link\nIf this sign-in was by you, you can follow this link to let us know
\n\n", + "TextBody": "We blocked an unrecognized sign-in to your account with this information:\nTime: {login-time}\nDevice: {device-name}\nLocation: {city}, {country}\nIf this sign-in was not by you, you should change your password and notify us by clicking on {one-click-link-invalid}\nIf this sign-in was by you, you can follow {one-click-link-valid} to let us know" + }, + "NoActionEmail": { + "Subject": "New sign-in attempt", + "HtmlBody": "\n\n\n\tHTML email context\n\t\n\n\n
We observed an unrecognized sign-in to your account with this information:\n
    \n
  • Time: {login-time}
  • \n
  • Device: {device-name}
  • \n
  • Location: {city}, {country}
  • \n
\nIf this sign-in was not by you, you should change your password and notify us by clicking on this link\nIf this sign-in was by you, you can follow this link to let us know
\n\n", + "TextBody": "We observed an unrecognized sign-in to your account with this information:\nTime: {login-time}\nDevice: {device-name}\nLocation: {city}, {country}\nIf this sign-in was not by you, you should change your password and notify us by clicking on {one-click-link-invalid}\nIf this sign-in was by you, you can follow {one-click-link-valid} to let us know" + }, + "MfaEmail": { + "Subject": "New sign-in attempt", + "HtmlBody": "\n\n\n\tHTML email context\n\t\n\n\n
We required you to use multi-factor authentication for the following sign-in attempt:\n
    \n
  • Time: {login-time}
  • \n
  • Device: {device-name}
  • \n
  • Location: {city}, {country}
  • \n
\nIf this sign-in was not by you, you should change your password and notify us by clicking on this link\nIf this sign-in was by you, you can follow this link to let us know
\n\n", + "TextBody": "We required you to use multi-factor authentication for the following sign-in attempt:\nTime: {login-time}\nDevice: {device-name}\nLocation: {city}, {country}\nIf this sign-in was not by you, you should change your password and notify us by clicking on {one-click-link-invalid}\nIf this sign-in was by you, you can follow {one-click-link-valid} to let us know" + } + }, + "Actions": { + "LowAction": { + "Notify": true, + "EventAction": "NO_ACTION" + }, + "MediumAction": { + "Notify": true, + "EventAction": "MFA_IF_CONFIGURED" + }, + "HighAction": { + "Notify": true, + "EventAction": "MFA_IF_CONFIGURED" + } + } + } + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/describe-user-import-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/describe-user-import-job.rst new file mode 100644 index 000000000..2f791f789 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/describe-user-import-job.rst @@ -0,0 +1,28 @@ +**To describe a user import job** + +This example describes a user input job. + +For more information about importing users, see `Importing Users into User Pools From a CSV File`_. + +Command:: + + aws cognito-idp describe-user-import-job --user-pool-id us-west-2_aaaaaaaaa --job-id import-TZqNQvDRnW + +Output:: + + { + "UserImportJob": { + "JobName": "import-Test1", + "JobId": "import-TZqNQvDRnW", + "UserPoolId": "us-west-2_aaaaaaaaa", + "PreSignedUrl": "PRE_SIGNED URL", + "CreationDate": 1548271708.512, + "Status": "Created", + "CloudWatchLogsRoleArn": "arn:aws:iam::111111111111:role/CognitoCloudWatchLogsRole", + "ImportedUsers": 0, + "SkippedUsers": 0, + "FailedUsers": 0 + } + } + +.. _`Importing Users into User Pools From a CSV File`: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-using-import-tool.html \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/describe-user-pool-client.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/describe-user-pool-client.rst new file mode 100644 index 000000000..a8858babb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/describe-user-pool-client.rst @@ -0,0 +1,70 @@ +**To describe a user pool client** + +This example describes a user pool client. + +Command:: + + aws cognito-idp describe-user-pool-client --user-pool-id us-west-2_aaaaaaaaa --client-id 38fjsnc484p94kpqsnet7mpld0 + +Output:: + + { + "UserPoolClient": { + "UserPoolId": "us-west-2_aaaaaaaaa", + "ClientName": "MyApp", + "ClientId": "38fjsnc484p94kpqsnet7mpld0", + "ClientSecret": "CLIENT_SECRET", + "LastModifiedDate": 1548108676.163, + "CreationDate": 1548108676.163, + "RefreshTokenValidity": 30, + "ReadAttributes": [ + "address", + "birthdate", + "custom:CustomAttr1", + "custom:CustomAttr2", + "email", + "email_verified", + "family_name", + "gender", + "given_name", + "locale", + "middle_name", + "name", + "nickname", + "phone_number", + "phone_number_verified", + "picture", + "preferred_username", + "profile", + "updated_at", + "website", + "zoneinfo" + ], + "WriteAttributes": [ + "address", + "birthdate", + "custom:CustomAttr1", + "custom:CustomAttr2", + "email", + "family_name", + "gender", + "given_name", + "locale", + "middle_name", + "name", + "nickname", + "phone_number", + "picture", + "preferred_username", + "profile", + "updated_at", + "website", + "zoneinfo" + ], + "ExplicitAuthFlows": [ + "ADMIN_NO_SRP_AUTH", + "USER_PASSWORD_AUTH" + ], + "AllowedOAuthFlowsUserPoolClient": false + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/describe-user-pool-domain.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/describe-user-pool-domain.rst new file mode 100644 index 000000000..8c64536f0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/describe-user-pool-domain.rst @@ -0,0 +1,22 @@ +**To describe a user pool client** + +This example describes a user pool domain named my-domain. + +Command:: + + aws cognito-idp describe-user-pool-domain --domain my-domain + +Output:: + + { + "DomainDescription": { + "UserPoolId": "us-west-2_aaaaaaaaa", + "AWSAccountId": "111111111111", + "Domain": "my-domain", + "S3Bucket": "aws-cognito-prod-pdx-assets", + "CloudFrontDistribution": "aaaaaaaaaaaaa.cloudfront.net", + "Version": "20190128175402", + "Status": "ACTIVE", + "CustomDomainConfig": {} + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/describe-user-pool.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/describe-user-pool.rst new file mode 100644 index 000000000..3e3fba376 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/describe-user-pool.rst @@ -0,0 +1,376 @@ +**To describe a user pool** + +The following example describes a user pool with the user pool id us-west-2_EXAMPLE. :: + + aws cognito-idp describe-user-pool \ + --user-pool-id us-west-2_EXAMPLE + +Output:: + + { + "UserPool": { + "Id": "us-west-2_EXAMPLE", + "Name": "MyUserPool", + "Policies": { + "PasswordPolicy": { + "MinimumLength": 8, + "RequireUppercase": true, + "RequireLowercase": true, + "RequireNumbers": true, + "RequireSymbols": true, + "TemporaryPasswordValidityDays": 1 + } + }, + "DeletionProtection": "ACTIVE", + "LambdaConfig": { + "PreSignUp": "arn:aws:lambda:us-west-2:123456789012:function:MyPreSignUpFunction", + "CustomMessage": "arn:aws:lambda:us-west-2:123456789012:function:MyCustomMessageFunction", + "PostConfirmation": "arn:aws:lambda:us-west-2:123456789012:function:MyPostConfirmationFunction", + "PreAuthentication": "arn:aws:lambda:us-west-2:123456789012:function:MyPreAuthenticationFunction", + "PostAuthentication": "arn:aws:lambda:us-west-2:123456789012:function:MyPostAuthenticationFunction", + "DefineAuthChallenge": "arn:aws:lambda:us-west-2:123456789012:function:MyDefineAuthChallengeFunction", + "CreateAuthChallenge": "arn:aws:lambda:us-west-2:123456789012:function:MyCreateAuthChallengeFunction", + "VerifyAuthChallengeResponse": "arn:aws:lambda:us-west-2:123456789012:function:MyVerifyAuthChallengeFunction", + "PreTokenGeneration": "arn:aws:lambda:us-west-2:123456789012:function:MyPreTokenGenerationFunction", + "UserMigration": "arn:aws:lambda:us-west-2:123456789012:function:MyMigrateUserFunction", + "PreTokenGenerationConfig": { + "LambdaVersion": "V2_0", + "LambdaArn": "arn:aws:lambda:us-west-2:123456789012:function:MyPreTokenGenerationFunction" + }, + "CustomSMSSender": { + "LambdaVersion": "V1_0", + "LambdaArn": "arn:aws:lambda:us-west-2:123456789012:function:MyCustomSMSSenderFunction" + }, + "CustomEmailSender": { + "LambdaVersion": "V1_0", + "LambdaArn": "arn:aws:lambda:us-west-2:123456789012:function:MyCustomEmailSenderFunction" + }, + "KMSKeyID": "arn:aws:kms:us-west-2:123456789012:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" + }, + "LastModifiedDate": 1726784814.598, + "CreationDate": 1602103465.273, + "SchemaAttributes": [ + { + "Name": "sub", + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": false, + "Required": true, + "StringAttributeConstraints": { + "MinLength": "1", + "MaxLength": "2048" + } + }, + { + "Name": "name", + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Required": false, + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + } + }, + { + "Name": "given_name", + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Required": false, + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + } + }, + { + "Name": "family_name", + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Required": false, + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + } + }, + { + "Name": "middle_name", + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Required": false, + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + } + }, + { + "Name": "nickname", + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Required": false, + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + } + }, + { + "Name": "preferred_username", + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Required": false, + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + } + }, + { + "Name": "profile", + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Required": false, + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + } + }, + { + "Name": "picture", + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Required": false, + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + } + }, + { + "Name": "website", + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Required": false, + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + } + }, + { + "Name": "email", + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Required": true, + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + } + }, + { + "Name": "email_verified", + "AttributeDataType": "Boolean", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Required": false + }, + { + "Name": "gender", + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Required": false, + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + } + }, + { + "Name": "birthdate", + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Required": false, + "StringAttributeConstraints": { + "MinLength": "10", + "MaxLength": "10" + } + }, + { + "Name": "zoneinfo", + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Required": false, + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + } + }, + { + "Name": "locale", + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Required": false, + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + } + }, + { + "Name": "phone_number", + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Required": false, + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + } + }, + { + "Name": "phone_number_verified", + "AttributeDataType": "Boolean", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Required": false + }, + { + "Name": "address", + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Required": false, + "StringAttributeConstraints": { + "MinLength": "0", + "MaxLength": "2048" + } + }, + { + "Name": "updated_at", + "AttributeDataType": "Number", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Required": false, + "NumberAttributeConstraints": { + "MinValue": "0" + } + }, + { + "Name": "identities", + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Required": false, + "StringAttributeConstraints": {} + }, + { + "Name": "custom:111", + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Required": false, + "StringAttributeConstraints": { + "MinLength": "1", + "MaxLength": "256" + } + }, + { + "Name": "dev:custom:222", + "AttributeDataType": "String", + "DeveloperOnlyAttribute": true, + "Mutable": true, + "Required": false, + "StringAttributeConstraints": { + "MinLength": "1", + "MaxLength": "421" + } + }, + { + "Name": "custom:accesstoken", + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Required": false, + "StringAttributeConstraints": { + "MaxLength": "2048" + } + }, + { + "Name": "custom:idtoken", + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Required": false, + "StringAttributeConstraints": { + "MaxLength": "2048" + } + } + ], + "AutoVerifiedAttributes": [ + "email" + ], + "SmsVerificationMessage": "Your verification code is {####}. ", + "EmailVerificationMessage": "Your verification code is {####}. ", + "EmailVerificationSubject": "Your verification code", + "VerificationMessageTemplate": { + "SmsMessage": "Your verification code is {####}. ", + "EmailMessage": "Your verification code is {####}. ", + "EmailSubject": "Your verification code", + "EmailMessageByLink": "Please click the link below to verify your email address. {##Verify Your Email##}\n this is from us-west-2_ywDJHlIfU", + "EmailSubjectByLink": "Your verification link", + "DefaultEmailOption": "CONFIRM_WITH_LINK" + }, + "SmsAuthenticationMessage": "Your verification code is {####}. ", + "UserAttributeUpdateSettings": { + "AttributesRequireVerificationBeforeUpdate": [] + }, + "MfaConfiguration": "OPTIONAL", + "DeviceConfiguration": { + "ChallengeRequiredOnNewDevice": true, + "DeviceOnlyRememberedOnUserPrompt": false + }, + "EstimatedNumberOfUsers": 166, + "EmailConfiguration": { + "SourceArn": "arn:aws:ses:us-west-2:123456789012:identity/admin@example.com", + "EmailSendingAccount": "DEVELOPER" + }, + "SmsConfiguration": { + "SnsCallerArn": "arn:aws:iam::123456789012:role/service-role/userpool-SMS-Role", + "ExternalId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "SnsRegion": "us-west-2" + }, + "UserPoolTags": {}, + "Domain": "myCustomDomain", + "CustomDomain": "auth.example.com", + "AdminCreateUserConfig": { + "AllowAdminCreateUserOnly": false, + "UnusedAccountValidityDays": 1, + "InviteMessageTemplate": { + "SMSMessage": "Your username is {username} and temporary password is {####}. ", + "EmailMessage": "Your username is {username} and temporary password is {####}. ", + "EmailSubject": "Your temporary password" + } + }, + "UserPoolAddOns": { + "AdvancedSecurityMode": "ENFORCED", + "AdvancedSecurityAdditionalFlows": {} + }, + "Arn": "arn:aws:cognito-idp:us-west-2:123456789012:userpool/us-west-2_EXAMPLE", + "AccountRecoverySetting": { + "RecoveryMechanisms": [ + { + "Priority": 1, + "Name": "verified_email" + } + ] + } + } + } + +For more information, see `Amazon Cognito user pools `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/forget-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/forget-device.rst new file mode 100644 index 000000000..5141fe69a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/forget-device.rst @@ -0,0 +1,8 @@ +**To forget a device** + +This example forgets device a device. + +Command:: + + aws cognito-idp forget-device --device-key us-west-2_abcd_1234-5678 + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/forgot-password.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/forgot-password.rst new file mode 100644 index 000000000..8ab382afc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/forgot-password.rst @@ -0,0 +1,15 @@ +**To force a password change** + +The following ``forgot-password`` example sends a message to jane@example.com to change their password. :: + + aws cognito-idp forgot-password --client-id 38fjsnc484p94kpqsnet7mpld0 --username jane@example.com + +Output:: + + { + "CodeDeliveryDetails": { + "Destination": "j***@e***.com", + "DeliveryMedium": "EMAIL", + "AttributeName": "email" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-csv-header.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-csv-header.rst new file mode 100644 index 000000000..6e6db1a87 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-csv-header.rst @@ -0,0 +1,40 @@ +**To create a csv header** + +This example creates a csv header. + +For more information about importing users, see `Importing Users into User Pools From a CSV File`_. + +Command:: + + aws cognito-idp get-csv-header --user-pool-id us-west-2_aaaaaaaaa + +Output:: + + { + "UserPoolId": "us-west-2_aaaaaaaaa", + "CSVHeader": [ + "name", + "given_name", + "family_name", + "middle_name", + "nickname", + "preferred_username", + "profile", + "picture", + "website", + "email", + "email_verified", + "gender", + "birthdate", + "zoneinfo", + "locale", + "phone_number", + "phone_number_verified", + "address", + "updated_at", + "cognito:mfa_enabled", + "cognito:username" + ] + } + +... _`Importing Users into User Pools From a CSV File`: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-using-import-tool.html \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-device.rst new file mode 100644 index 000000000..d3839ee1b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-device.rst @@ -0,0 +1,50 @@ +**To get a device** + +The following ``get-device`` example displays one device for currently signed-in user. :: + + aws cognito-idp get-device \ + --access-token eyJra456defEXAMPLE \ + --device-key us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "Device": { + "DeviceKey": "us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "DeviceAttributes": [ + { + "Name": "device_status", + "Value": "valid" + }, + { + "Name": "device_name", + "Value": "MyDevice" + }, + { + "Name": "dev:device_arn", + "Value": "arn:aws:cognito-idp:us-west-2:123456789012:owner/diego.us-west-2_EXAMPLE/device/us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + }, + { + "Name": "dev:device_owner", + "Value": "diego.us-west-2_EXAMPLE" + }, + { + "Name": "last_ip_used", + "Value": "192.0.2.1" + }, + { + "Name": "dev:device_remembered_status", + "Value": "remembered" + }, + { + "Name": "dev:device_sdk", + "Value": "aws-sdk" + } + ], + "DeviceCreateDate": 1715100742.022, + "DeviceLastModifiedDate": 1723233651.167, + "DeviceLastAuthenticatedDate": 1715100742.0 + } + } + +For more information, see `Working with user devices in your user pool `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-group.rst new file mode 100644 index 000000000..dd6c4b0e1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-group.rst @@ -0,0 +1,22 @@ +**To get information about a group** + +The following ``get-group`` example lists the properties of the user group named ``MyGroup``. This group has a precedence and an IAM role associated with it. :: + + aws cognito-idp get-group \ + --user-pool-id us-west-2_EXAMPLE \ + --group-name MyGroup + +Output:: + + { + "Group": { + "GroupName": "MyGroup", + "UserPoolId": "us-west-2_EXAMPLE", + "RoleArn": "arn:aws:iam::123456789012:role/example-cognito-role", + "Precedence": 7, + "LastModifiedDate": 1697211218.305, + "CreationDate": 1611685503.954 + } + } + +For more information, see `Adding groups to a user pool `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-identity-provider-by-identifier.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-identity-provider-by-identifier.rst new file mode 100644 index 000000000..a11f92b85 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-identity-provider-by-identifier.rst @@ -0,0 +1,35 @@ +**To get the configuration of an identity provider from the IdP identifier** + +The following ``get-identity-provider-by-identifier`` example returns the configuration of the identity provider with the identifier ``mysso``. :: + + aws cognito-idp get-identity-provider-by-identifier \ + --user-pool-id us-west-2_EXAMPLE \ + --idp-identifier mysso + +Output:: + + { + "IdentityProvider": { + "UserPoolId": "us-west-2_EXAMPLE", + "ProviderName": "MYSAML", + "ProviderType": "SAML", + "ProviderDetails": { + "ActiveEncryptionCertificate": "[Certificate contents]", + "IDPSignout": "false", + "MetadataURL": "https://auth.example.com/saml/metadata/", + "SLORedirectBindingURI": "https://auth.example.com/saml/logout/", + "SSORedirectBindingURI": "https://auth.example.com/saml/assertion/" + }, + "AttributeMapping": { + "email": "email" + }, + "IdpIdentifiers": [ + "mysso", + "mysamlsso" + ], + "LastModifiedDate": 1705616729.188, + "CreationDate": 1643734622.919 + } + } + +For more information, see `Third-party IdP sign-in `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-log-delivery-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-log-delivery-configuration.rst new file mode 100644 index 000000000..d44153105 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-log-delivery-configuration.rst @@ -0,0 +1,32 @@ +**To display the log delivery configuration** + +The following ``get-log-delivery-configuration`` example displays the log export settings of the requested user pool. :: + + aws cognito-idp get-log-delivery-configuration \ + --user-pool-id us-west-2_EXAMPLE + +Output:: + + { + "LogDeliveryConfiguration": { + "UserPoolId": "us-west-2_EXAMPLE", + "LogConfigurations": [ + { + "LogLevel": "INFO", + "EventSource": "userAuthEvents", + "FirehoseConfiguration": { + "StreamArn": "arn:aws:firehose:us-west-2:123456789012:deliverystream/my-test-deliverystream" + } + }, + { + "LogLevel": "ERROR", + "EventSource": "userNotification", + "CloudWatchLogsConfiguration": { + "LogGroupArn": "arn:aws:logs:us-west-2:123456789012:log-group:my-message-delivery-logs" + } + } + ] + } + } + +For more information, see `Exporting user pool logs `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-signing-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-signing-certificate.rst new file mode 100644 index 000000000..7099f8e65 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-signing-certificate.rst @@ -0,0 +1,14 @@ +**To display the SAML signing certificate** + +The following ``get-signing-certificate`` example displays the SAML 2.0 signing certificate for the request user pool. :: + + aws cognito-idp get-signing-certificate \ + --user-pool-id us-west-2_EXAMPLE + +Output:: + + { + "Certificate": "[Certificate content]" + } + +For more information, see `SAML signing and encryption `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-ui-customization.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-ui-customization.rst new file mode 100644 index 000000000..e7a967532 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-ui-customization.rst @@ -0,0 +1,22 @@ +**To display the classic hosted UI customization settings for an app client** + +The following ``get-ui-customization`` example displays the classic hosted UI customization settings for an app client that doesn't inherit settings from the user pool. :: + + aws cognito-idp get-ui-customization \ + --user-pool-id us-west-2_EXAMPLE \ + --client-id 1example23456789 + + +Output:: + + { + "UICustomization": { + "UserPoolId": "us-west-2_EXAMPLE", + "ClientId": "1example23456789", + "ImageUrl": "https://example.cloudfront.net/us-west-2_EXAMPLE/1example23456789/20250115191928/assets/images/image.jpg", + "CSS": "\n.logo-customizable {\n max-width: 80%;\n max-height: 30%;\n}\n\n.banner-customizable {\n padding: 25px 0px 25px 0px;\n background-color: lightgray;\n}\n\n.label-customizable {\n font-weight: 400;\n}\n\n.textDescription-customizable {\n padding-top: 100px;\n padding-bottom: 10px;\n display: block;\n font-size: 12px;\n}\n\n.idpDescription-customizable {\n padding-top: 10px;\n padding-bottom: 10px;\n display: block;\n font-size: 16px;\n}\n\n.legalText-customizable {\n color: #747474;\n font-size: 11px;\n}\n\n.submitButton-customizable {\n font-size: 14px;\n font-weight: bold;\n margin: 20px 0px 10px 0px;\n height: 50px;\n width: 100%;\n color: #fff;\n background-color: #337ab7;\n}\n\n.submitButton-customizable:hover {\n color: #fff;\n background-color: #286090;\n}\n\n.errorMessage-customizable {\n padding: 5px;\n font-size: 12px;\n width: 100%;\n background: #F5F5F5;\n border: 2px solid #D64958;\n color: #D64958;\n}\n\n.inputField-customizable {\n width: 100%;\n height: 34px;\n color: #555;\n background-color: #fff;\n border: 1px solid #ccc;\n}\n\n.inputField-customizable:focus {\n border-color: #66afe9;\n outline: 0;\n}\n\n.idpButton-customizable {\n height: 40px;\n width: 100%;\n width: 100%;\n text-align: center;\n margin-bottom: 15px;\n color: #fff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n\n.idpButton-customizable:hover {\n color: #fff;\n background-color: #31b0d5;\n}\n\n.socialButton-customizable {\n border-radius: 2px;\n height: 60px;\n margin-bottom: 15px;\n padding: 1px;\n text-align: left;\n width: 100%;\n}\n\n.redirect-customizable {\n text-align: center;\n}\n\n.passwordCheck-notValid-customizable {\n color: #DF3312;\n}\n\n.passwordCheck-valid-customizable {\n color: #19BF00;\n}\n\n.background-customizable {\n background-color: #fff;\n}\n", + "CSSVersion": "20250115191928" + } + } + +For more information, see `Hosted UI (classic) branding `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-user-attribute-verification-code.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-user-attribute-verification-code.rst new file mode 100644 index 000000000..bb249c49f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-user-attribute-verification-code.rst @@ -0,0 +1,19 @@ +**To send an attribute verification code to the current user** + +The following ``get-user-attribute-verification-code`` example sends an attribute verification code to the currently signed-in user's email address. :: + + aws cognito-idp get-user-attribute-verification-code \ + --access-token eyJra456defEXAMPLE \ + --attribute-name email + +Output:: + + { + "CodeDeliveryDetails": { + "Destination": "a***@e***", + "DeliveryMedium": "EMAIL", + "AttributeName": "email" + } + } + +For more information, see `Signing up and confirming user accounts `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-user-auth-factors.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-user-auth-factors.rst new file mode 100644 index 000000000..736cf1df1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-user-auth-factors.rst @@ -0,0 +1,20 @@ +**To list the authentication factors available to the current user** + +The following ``get-user-auth-factors`` example lists the available authentication factors for the currently signed-in user. :: + + aws cognito-idp get-user-auth-factors \ + --access-token eyJra456defEXAMPLE + +Output:: + + { + "Username": "testuser", + "ConfiguredUserAuthFactors": [ + "PASSWORD", + "EMAIL_OTP", + "SMS_OTP", + "WEB_AUTHN" + ] + } + +For more information, see `Authentication `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-user-pool-mfa-config.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-user-pool-mfa-config.rst new file mode 100644 index 000000000..02cf42a33 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-user-pool-mfa-config.rst @@ -0,0 +1,33 @@ +**To display the multi-factor authentication and WebAuthn settings of a user pool** + +The following ``get-user-pool-mfa-config`` example displays the MFA and WebAuthn configuration of the requested user pool. :: + + aws cognito-idp get-user-pool-mfa-config \ + --user-pool-id us-west-2_EXAMPLE + +Output:: + + { + "SmsMfaConfiguration": { + "SmsAuthenticationMessage": "Your OTP for MFA or sign-in: use {####}.", + "SmsConfiguration": { + "SnsCallerArn": "arn:aws:iam::123456789012:role/service-role/my-SMS-Role", + "ExternalId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "SnsRegion": "us-west-2" + } + }, + "SoftwareTokenMfaConfiguration": { + "Enabled": true + }, + "EmailMfaConfiguration": { + "Message": "Your OTP for MFA or sign-in: use {####}", + "Subject": "OTP test" + }, + "MfaConfiguration": "OPTIONAL", + "WebAuthnConfiguration": { + "RelyingPartyId": "auth.example.com", + "UserVerification": "preferred" + } + } + +For more information, see `Adding MFA `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-user.rst new file mode 100644 index 000000000..8f15c934f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/get-user.rst @@ -0,0 +1,56 @@ +**To get the details of the current user** + +The following ``get-user`` example displays the profile of the currently signed-in user. :: + + aws cognito-idp get-user \ + --access-token eyJra456defEXAMPLE + +Output:: + + { + "Username": "johndoe", + "UserAttributes": [ + { + "Name": "sub", + "Value": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + }, + { + "Name": "identities", + "Value": "[{\"userId\":\"a1b2c3d4-5678-90ab-cdef-EXAMPLE22222\",\"providerName\":\"SignInWithApple\",\"providerType\":\"SignInWithApple\",\"issuer\":null,\"primary\":false,\"dateCreated\":1701125599632}]" + }, + { + "Name": "email_verified", + "Value": "true" + }, + { + "Name": "custom:state", + "Value": "Maine" + }, + { + "Name": "name", + "Value": "John Doe" + }, + { + "Name": "phone_number_verified", + "Value": "true" + }, + { + "Name": "phone_number", + "Value": "+12065551212" + }, + { + "Name": "preferred_username", + "Value": "jamesdoe" + }, + { + "Name": "locale", + "Value": "EMEA" + }, + { + "Name": "email", + "Value": "jamesdoe@example.com" + } + ] + } + +For more information, see `Managing users `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/global-sign-out.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/global-sign-out.rst new file mode 100644 index 000000000..45bfef653 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/global-sign-out.rst @@ -0,0 +1,10 @@ +**To sign out the current user** + +The following ``global-sign-out`` example signs out the current user. :: + + aws cognito-idp global-sign-out \ + --access-token eyJra456defEXAMPLE + +This command produces no output. + +For more information, see `Managing users `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/initiate-auth.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/initiate-auth.rst new file mode 100644 index 000000000..95fa3eb29 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/initiate-auth.rst @@ -0,0 +1,27 @@ +**To sign in a user** + +The following ``initiate-auth`` example signs in a user with the basic username-password flow and no additional challenges. :: + + aws cognito-idp initiate-auth \ + --auth-flow USER_PASSWORD_AUTH \ + --client-id 1example23456789 \ + --analytics-metadata AnalyticsEndpointId=d70b2ba36a8c4dc5a04a0451aEXAMPLE \ + --auth-parameters USERNAME=testuser,PASSWORD=[Password] --user-context-data EncodedData=mycontextdata --client-metadata MyTestKey=MyTestValue + +Output:: + + { + "AuthenticationResult": { + "AccessToken": "eyJra456defEXAMPLE", + "ExpiresIn": 3600, + "TokenType": "Bearer", + "RefreshToken": "eyJra123abcEXAMPLE", + "IdToken": "eyJra789ghiEXAMPLE", + "NewDeviceMetadata": { + "DeviceKey": "us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "DeviceGroupKey": "-v7w9UcY6" + } + } + } + +For more information, see `Authentication `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-devices.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-devices.rst new file mode 100644 index 000000000..caca5364e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-devices.rst @@ -0,0 +1,51 @@ +**To list a user's devices** + +The following ``list-devices`` example lists the devices that the current user has registered. :: + + aws cognito-idp list-devices \ + --access-token eyJra456defEXAMPLE + +Output:: + + { + "Devices": [ + { + "DeviceAttributes": [ + { + "Name": "device_status", + "Value": "valid" + }, + { + "Name": "device_name", + "Value": "Dart-device" + }, + { + "Name": "last_ip_used", + "Value": "192.0.2.1" + } + ], + "DeviceCreateDate": 1715100742.022, + "DeviceKey": "us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "DeviceLastAuthenticatedDate": 1715100742.0, + "DeviceLastModifiedDate": 1723233651.167 + }, + { + "DeviceAttributes": [ + { + "Name": "device_status", + "Value": "valid" + }, + { + "Name": "last_ip_used", + "Value": "192.0.2.2" + } + ], + "DeviceCreateDate": 1726856147.993, + "DeviceKey": "us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "DeviceLastAuthenticatedDate": 1726856147.0, + "DeviceLastModifiedDate": 1726856147.993 + } + ] + } + +For more information, see `Working with devices `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-groups.rst new file mode 100644 index 000000000..649d31e01 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-groups.rst @@ -0,0 +1,32 @@ +**To list the groups in a user pool** + +The following ``list-groups`` example lists the first two groups in the requested user pool. :: + + aws cognito-idp list-groups \ + --user-pool-id us-west-2_EXAMPLE \ + --max-items 2 + +Output:: + + { + "Groups": [ + { + "CreationDate": 1681760899.633, + "Description": "My test group", + "GroupName": "testgroup", + "LastModifiedDate": 1681760899.633, + "Precedence": 1, + "UserPoolId": "us-west-2_EXAMPLE" + }, + { + "CreationDate": 1642632749.051, + "Description": "Autogenerated group for users who sign in using Facebook", + "GroupName": "us-west-2_EXAMPLE_Facebook", + "LastModifiedDate": 1642632749.051, + "UserPoolId": "us-west-2_EXAMPLE" + } + ], + "NextToken": "[Pagination token]" + } + +For more information, see `Adding groups to a user pool `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-identity-providers.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-identity-providers.rst new file mode 100644 index 000000000..cb6d47738 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-identity-providers.rst @@ -0,0 +1,29 @@ +**To list identity providers** + +The following ``list-identity-providers`` example lists the first two identity providers in the requested user pool. :: + + aws cognito-idp list-identity-providers \ + --user-pool-id us-west-2_EXAMPLE \ + --max-items 2 + +Output:: + + { + "Providers": [ + { + "CreationDate": 1619477386.504, + "LastModifiedDate": 1703798328.142, + "ProviderName": "Azure", + "ProviderType": "SAML" + }, + { + "CreationDate": 1642698776.175, + "LastModifiedDate": 1642699086.453, + "ProviderName": "LoginWithAmazon", + "ProviderType": "LoginWithAmazon" + } + ], + "NextToken": "[Pagination token]" + } + +For more information, see `Third-party IdP sign-in `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-resource-servers.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-resource-servers.rst new file mode 100644 index 000000000..cd102d50d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-resource-servers.rst @@ -0,0 +1,43 @@ +**To list resource servers** + +The following ``list-resource-servers`` example lists the first two resource servers in the requested user pool. :: + + aws cognito-idp list-resource-servers \ + --user-pool-id us-west-2_EXAMPLE \ + --max-results 2 + +Output:: + + { + "ResourceServers": [ + { + "Identifier": "myapi.example.com", + "Name": "Example API with custom access control scopes", + "Scopes": [ + { + "ScopeDescription": "International customers", + "ScopeName": "international.read" + }, + { + "ScopeDescription": "Domestic customers", + "ScopeName": "domestic.read" + } + ], + "UserPoolId": "us-west-2_EXAMPLE" + }, + { + "Identifier": "myapi2.example.com", + "Name": "Another example API for access control", + "Scopes": [ + { + "ScopeDescription": "B2B customers", + "ScopeName": "b2b.read" + } + ], + "UserPoolId": "us-west-2_EXAMPLE" + } + ], + "NextToken": "[Pagination token]" + } + +For more information, see `Access control with resource servers `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-tags-for-resource.rst new file mode 100644 index 000000000..81f03862e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-tags-for-resource.rst @@ -0,0 +1,17 @@ +**To list user pool tags** + +The following ``list-tags-for-resource`` example lists the tags assigned to the user pool with the requested ARN. :: + + aws cognito-idp list-tags-for-resource \ + --resource-arn arn:aws:cognito-idp:us-west-2:123456789012:userpool/us-west-2_EXAMPLE + +Output:: + + { + "Tags": { + "administrator": "Jie", + "tenant": "ExampleCorp" + } + } + +For more information, see `Tagging Amazon Cognito resources `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-user-import-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-user-import-jobs.rst new file mode 100644 index 000000000..309631bfb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-user-import-jobs.rst @@ -0,0 +1,61 @@ +**To list user import jobs and statuses** + +The following ``list-user-import-jobs`` example lists first three user import jobs and their details in the requested user pool. :: + + aws cognito-idp list-user-import-jobs \ + --user-pool-id us-west-2_EXAMPLE \ + --max-results 3 + +Output:: + + { + "PaginationToken": "us-west-2_EXAMPLE#import-example3#1667948397084", + "UserImportJobs": [ + { + "CloudWatchLogsRoleArn": "arn:aws:iam::123456789012:role/service-role/Cognito-UserImport-Role", + "CompletionDate": 1735329786.142, + "CompletionMessage": "The user import job has expired.", + "CreationDate": 1735241621.022, + "FailedUsers": 0, + "ImportedUsers": 0, + "JobId": "import-example1", + "JobName": "Test-import-job-1", + "PreSignedUrl": "https://aws-cognito-idp-user-import-pdx.s3.us-west-2.amazonaws.com/123456789012/us-west-2_EXAMPLE/import-mAgUtd8PMm?X-Amz-Security-Token=[token]&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20241226T193341Z&X-Amz-SignedHeaders=host%3Bx-amz-server-side-encryption&X-Amz-Expires=899&X-Amz-Credential=[credential]&X-Amz-Signature=[signature]", + "SkippedUsers": 0, + "Status": "Expired", + "UserPoolId": "us-west-2_EXAMPLE" + }, + { + "CloudWatchLogsRoleArn": "arn:aws:iam::123456789012:role/service-role/Cognito-UserImport-Role", + "CompletionDate": 1681509058.408, + "CompletionMessage": "Too many users have failed or been skipped during the import.", + "CreationDate": 1681509001.477, + "FailedUsers": 1, + "ImportedUsers": 0, + "JobId": "import-example2", + "JobName": "Test-import-job-2", + "PreSignedUrl": "https://aws-cognito-idp-user-import-pdx.s3.us-west-2.amazonaws.com/123456789012/us-west-2_EXAMPLE/import-mAgUtd8PMm?X-Amz-Security-Token=[token]&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20241226T193341Z&X-Amz-SignedHeaders=host%3Bx-amz-server-side-encryption&X-Amz-Expires=899&X-Amz-Credential=[credential]&X-Amz-Signature=[signature]", + "SkippedUsers": 0, + "StartDate": 1681509057.965, + "Status": "Failed", + "UserPoolId": "us-west-2_EXAMPLE" + }, + { + "CloudWatchLogsRoleArn": "arn:aws:iam::123456789012:role/service-role/Cognito-UserImport-Role", + "CompletionDate": 1.667864578676E9, + "CompletionMessage": "Import Job Completed Successfully.", + "CreationDate": 1.667864480281E9, + "FailedUsers": 0, + "ImportedUsers": 6, + "JobId": "import-example3", + "JobName": "Test-import-job-3", + "PreSignedUrl": "https://aws-cognito-idp-user-import-pdx.s3.us-west-2.amazonaws.com/123456789012/us-west-2_EXAMPLE/import-mAgUtd8PMm?X-Amz-Security-Token=[token]&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20241226T193341Z&X-Amz-SignedHeaders=host%3Bx-amz-server-side-encryption&X-Amz-Expires=899&X-Amz-Credential=[credential]&X-Amz-Signature=[signature]", + "SkippedUsers": 0, + "StartDate": 1.667864578167E9, + "Status": "Succeeded", + "UserPoolId": "us-west-2_EXAMPLE" + } + ] + } + +For more information, see `Importing users from a CSV file `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-user-pool-clients.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-user-pool-clients.rst new file mode 100644 index 000000000..f2f990777 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-user-pool-clients.rst @@ -0,0 +1,32 @@ +**To list app clients** + +The following ``list-user-pool-clients`` example lists the first three app clients in the requested user pool. :: + + aws cognito-idp list-user-pool-clients \ + --user-pool-id us-west-2_EXAMPLE \ + --max-results 3 + +Output:: + + { + "NextToken": "[Pagination token]", + "UserPoolClients": [ + { + "ClientId": "1example23456789", + "ClientName": "app-client-1", + "UserPoolId": "us-west-2_EXAMPLE" + }, + { + "ClientId": "2example34567890", + "ClientName": "app-client-2", + "UserPoolId": "us-west-2_EXAMPLE" + }, + { + "ClientId": "3example45678901", + "ClientName": "app-client-3", + "UserPoolId": "us-west-2_EXAMPLE" + } + ] + } + +For more information, see `App clients `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-user-pools.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-user-pools.rst new file mode 100644 index 000000000..2b906a090 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-user-pools.rst @@ -0,0 +1,48 @@ +**To list user pools** + +The following ``list-user-pools`` example lists 3 of the available user pools in the AWS account of the current CLI credentials. :: + + aws cognito-idp list-user-pools \ + --max-results 3 + +Output:: + + { + "NextToken": "[Pagination token]", + "UserPools": [ + { + "CreationDate": 1681502497.741, + "Id": "us-west-2_EXAMPLE1", + "LambdaConfig": { + "CustomMessage": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "PreSignUp": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "PreTokenGeneration": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "PreTokenGenerationConfig": { + "LambdaArn": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "LambdaVersion": "V1_0" + } + }, + "LastModifiedDate": 1681502497.741, + "Name": "user pool 1" + }, + { + "CreationDate": 1686064178.717, + "Id": "us-west-2_EXAMPLE2", + "LambdaConfig": { + }, + "LastModifiedDate": 1686064178.873, + "Name": "user pool 2" + }, + { + "CreationDate": 1627681712.237, + "Id": "us-west-2_EXAMPLE3", + "LambdaConfig": { + "UserMigration": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction" + }, + "LastModifiedDate": 1678486942.479, + "Name": "user pool 3" + } + ] + } + +For more information, see `Amazon Cognito user pools `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-users-in-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-users-in-group.rst new file mode 100644 index 000000000..25c54c8b7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-users-in-group.rst @@ -0,0 +1,56 @@ +**To list users in a group** + +This example lists users in group MyGroup. + +Command:: + + aws cognito-idp list-users-in-group --user-pool-id us-west-2_aaaaaaaaa --group-name MyGroup + +Output:: + + { + "Users": [ + { + "Username": "acf10624-80bb-401a-ac61-607bee2110ec", + "Attributes": [ + { + "Name": "sub", + "Value": "acf10624-80bb-401a-ac61-607bee2110ec" + }, + { + "Name": "custom:CustomAttr1", + "Value": "New Value!" + }, + { + "Name": "email", + "Value": "jane@example.com" + } + ], + "UserCreateDate": 1548102770.284, + "UserLastModifiedDate": 1548103204.893, + "Enabled": true, + "UserStatus": "CONFIRMED" + }, + { + "Username": "22704aa3-fc10-479a-97eb-2af5806bd327", + "Attributes": [ + { + "Name": "sub", + "Value": "22704aa3-fc10-479a-97eb-2af5806bd327" + }, + { + "Name": "email_verified", + "Value": "true" + }, + { + "Name": "email", + "Value": "diego@example.com" + } + ], + "UserCreateDate": 1548089817.683, + "UserLastModifiedDate": 1548089817.683, + "Enabled": true, + "UserStatus": "FORCE_CHANGE_PASSWORD" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-users.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-users.rst new file mode 100644 index 000000000..2de4e336d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-users.rst @@ -0,0 +1,98 @@ +**Example 1: To list users with a server-side filter** + +The following ``list-users`` example lists 3 users in the requested user pool whose email addresses begin with ``testuser``. :: + + aws cognito-idp list-users \ + --user-pool-id us-west-2_EXAMPLE \ + --filter email^=\"testuser\" \ + --max-items 3 + +Output:: + + { + "PaginationToken": "efgh5678EXAMPLE", + "Users": [ + { + "Attributes": [ + { + "Name": "sub", + "Value": "eaad0219-2117-439f-8d46-4db20e59268f" + }, + { + "Name": "email", + "Value": "testuser@example.com" + } + ], + "Enabled": true, + "UserCreateDate": 1682955829.578, + "UserLastModifiedDate": 1689030181.63, + "UserStatus": "CONFIRMED", + "Username": "testuser" + }, + { + "Attributes": [ + { + "Name": "sub", + "Value": "3b994cfd-0b07-4581-be46-3c82f9a70c90" + }, + { + "Name": "email", + "Value": "testuser2@example.com" + } + ], + "Enabled": true, + "UserCreateDate": 1684427979.201, + "UserLastModifiedDate": 1684427979.201, + "UserStatus": "UNCONFIRMED", + "Username": "testuser2" + }, + { + "Attributes": [ + { + "Name": "sub", + "Value": "5929e0d1-4c34-42d1-9b79-a5ecacfe66f7" + }, + { + "Name": "email", + "Value": "testuser3@example.com" + } + ], + "Enabled": true, + "UserCreateDate": 1684427823.641, + "UserLastModifiedDate": 1684427823.641, + "UserStatus": "UNCONFIRMED", + "Username": "testuser3@example.com" + } + ] + } + +For more information, see `Managing and searching for users `__ in the *Amazon Cognito Developer Guide*. + +**Example 2: To list users with a client-side filter** + +The following ``list-users`` example lists the attributes of three users who have an attribute, in this case their email address, that contains the email domain "@example.com". If other attributes contained this string, they would also be displayed. The second user has no attributes that match the query and is excluded from the displayed output, but not from the server response. :: + + aws cognito-idp list-users \ + --user-pool-id us-west-2_EXAMPLE \ + --max-items 3 + --query Users\[\*\].Attributes\[\?Value\.contains\(\@\,\'@example.com\'\)\] + +Output:: + + [ + [ + { + "Name": "email", + "Value": "admin@example.com" + } + ], + [], + [ + { + "Name": "email", + "Value": "operator@example.com" + } + ] + ] + +For more information, see `Managing and searching for users `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-web-authn-credentials.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-web-authn-credentials.rst new file mode 100644 index 000000000..a5fe69d29 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/list-web-authn-credentials.rst @@ -0,0 +1,22 @@ +**To list passkey credentials** + +The following ``list-web-authn-credentials`` example lists passkey, or WebAuthn, credentials for the current user. They have one registered device. :: + + aws cognito-idp list-web-authn-credentials \ + --access-token eyJra456defEXAMPLE + +Output:: + + { + "Credentials": [ + { + "AuthenticatorAttachment": "cross-platform", + "CreatedAt": 1736293876.115, + "CredentialId": "8LApgk4-lNUFHbhm2w6Und7-uxcc8coJGsPxiogvHoItc64xWQc3r4CEXAMPLE", + "FriendlyCredentialName": "Roaming passkey", + "RelyingPartyId": "auth.example.com" + } + ] + } + +For more information, see `Passkey sign-in `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/resend-confirmation-code.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/resend-confirmation-code.rst new file mode 100644 index 000000000..c8a52fcbe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/resend-confirmation-code.rst @@ -0,0 +1,19 @@ +**To resend a confirmation code** + +The following ``resend-confirmation-code`` example sends a confirmation code to the user ``jane``. :: + + aws cognito-idp resend-confirmation-code \ + --client-id 12a3b456c7de890f11g123hijk \ + --username jane + +Output:: + + { + "CodeDeliveryDetails": { + "Destination": "j***@e***.com", + "DeliveryMedium": "EMAIL", + "AttributeName": "email" + } + } + +For more information, see `Signing up and confirming user accounts `__ in the *Amazon Cognito Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/respond-to-auth-challenge.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/respond-to-auth-challenge.rst new file mode 100644 index 000000000..f627f5cd5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/respond-to-auth-challenge.rst @@ -0,0 +1,78 @@ +**Example 1: To respond to a NEW_PASSWORD_REQUIRED challenge** + +The following ``respond-to-auth-challenge`` example responds to a NEW_PASSWORD_REQUIRED challenge that `initiate-auth`_ returned. It sets a password for the user ``jane@example.com``. :: + + aws cognito-idp respond-to-auth-challenge \ + --client-id 1example23456789 \ + --challenge-name NEW_PASSWORD_REQUIRED \ + --challenge-responses USERNAME=jane@example.com,NEW_PASSWORD=[Password] \ + --session AYABeEv5HklEXAMPLE + +Output:: + + { + "ChallengeParameters": {}, + "AuthenticationResult": { + "AccessToken": "ACCESS_TOKEN", + "ExpiresIn": 3600, + "TokenType": "Bearer", + "RefreshToken": "REFRESH_TOKEN", + "IdToken": "ID_TOKEN", + "NewDeviceMetadata": { + "DeviceKey": "us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "DeviceGroupKey": "-wt2ha1Zd" + } + } + } + +For more information, see `Authentication `__ in the *Amazon Cognito Developer Guide*. + +**Example 2: To respond to a SELECT_MFA_TYPE challenge** + +The following ``respond-to-auth-challenge`` example chooses TOTP MFA as the MFA option for the current user. The user was prompted to select an MFA type and will next be prompted to enter their MFA code. :: + + aws cognito-idp respond-to-auth-challenge \ + --client-id 1example23456789 + --session AYABeEv5HklEXAMPLE + --challenge-name SELECT_MFA_TYPE + --challenge-responses USERNAME=testuser,ANSWER=SOFTWARE_TOKEN_MFA + +Output:: + + { + "ChallengeName": "SOFTWARE_TOKEN_MFA", + "Session": "AYABeEv5HklEXAMPLE", + "ChallengeParameters": { + "FRIENDLY_DEVICE_NAME": "transparent" + } + } + +For more information, see `Adding MFA `__ in the *Amazon Cognito Developer Guide*. + +**Example 3: To respond to a SOFTWARE_TOKEN_MFA challenge** + +The following ``respond-to-auth-challenge`` example provides a TOTP MFA code and completes sign-in. :: + + aws cognito-idp respond-to-auth-challenge \ + --client-id 1example23456789 \ + --session AYABeEv5HklEXAMPLE \ + --challenge-name SOFTWARE_TOKEN_MFA \ + --challenge-responses USERNAME=testuser,SOFTWARE_TOKEN_MFA_CODE=123456 + +Output:: + + { + "AuthenticationResult": { + "AccessToken": "eyJra456defEXAMPLE", + "ExpiresIn": 3600, + "TokenType": "Bearer", + "RefreshToken": "eyJra123abcEXAMPLE", + "IdToken": "eyJra789ghiEXAMPLE", + "NewDeviceMetadata": { + "DeviceKey": "us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "DeviceGroupKey": "-v7w9UcY6" + } + } + } + +For more information, see `Adding MFA `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/revoke-token.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/revoke-token.rst new file mode 100644 index 000000000..3725bf81d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/revoke-token.rst @@ -0,0 +1,11 @@ +**To revoke a refresh token** + +The following ``revoke-token`` revokes the requested refresh token and associated access tokens. :: + + aws cognito-idp revoke-token \ + --token eyJjd123abcEXAMPLE \ + --client-id 1example23456789 + +This command produces no output. + +For more information, see `Revoking tokens `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/set-log-delivery-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/set-log-delivery-configuration.rst new file mode 100644 index 000000000..0c7c6906d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/set-log-delivery-configuration.rst @@ -0,0 +1,33 @@ +**To set up log export from a user pool** + +The following ``set-log-delivery-configuration`` example configures the requested user pool with user-notification error logging to a log group and user-authentication info logging to an S3 bucket. :: + + aws cognito-idp set-log-delivery-configuration \ + --user-pool-id us-west-2_EXAMPLE \ + --log-configurations LogLevel=ERROR,EventSource=userNotification,CloudWatchLogsConfiguration={LogGroupArn=arn:aws:logs:us-west-2:123456789012:log-group:cognito-exported} LogLevel=INFO,EventSource=userAuthEvents,S3Configuration={BucketArn=arn:aws:s3:::amzn-s3-demo-bucket1} + +Output:: + + { + "LogDeliveryConfiguration": { + "LogConfigurations": [ + { + "CloudWatchLogsConfiguration": { + "LogGroupArn": "arn:aws:logs:us-west-2:123456789012:log-group:cognito-exported" + }, + "EventSource": "userNotification", + "LogLevel": "ERROR" + }, + { + "EventSource": "userAuthEvents", + "LogLevel": "INFO", + "S3Configuration": { + "BucketArn": "arn:aws:s3:::amzn-s3-demo-bucket1" + } + } + ], + "UserPoolId": "us-west-2_EXAMPLE" + } + } + +For more information, see `Exporting user pool logs `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/set-risk-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/set-risk-configuration.rst new file mode 100644 index 000000000..a31c7e0ff --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/set-risk-configuration.rst @@ -0,0 +1,136 @@ +**To set the threat protection risk configuration** + +The following ``set-risk-configuration`` example configures threat protection messages and actions, compromised credentials, and IP address exceptions in the requested app client. Because of the complexity of the NotifyConfiguration object, JSON input is a best practice for this command. :: + + aws cognito-idp set-risk-configuration \ + --cli-input-json file://set-risk-configuration.json + +Contents of ``set-risk-configuration.json``:: + + { + "AccountTakeoverRiskConfiguration": { + "Actions": { + "HighAction": { + "EventAction": "MFA_REQUIRED", + "Notify": true + }, + "LowAction": { + "EventAction": "NO_ACTION", + "Notify": true + }, + "MediumAction": { + "EventAction": "MFA_IF_CONFIGURED", + "Notify": true + } + }, + "NotifyConfiguration": { + "BlockEmail": { + "HtmlBody": "\n\n\n\tHTML email context\n\t\n\n\n
We blocked an unrecognized sign-in to your account with this information:\n
    \n
  • Time: {login-time}
  • \n
  • Device: {device-name}
  • \n
  • Location: {city}, {country}
  • \n
\nIf this sign-in was not by you, you should change your password and notify us by clicking on this link\nIf this sign-in was by you, you can follow this link to let us know
\n\n", + "Subject": "Blocked sign-in attempt", + "TextBody": "We blocked an unrecognized sign-in to your account with this information:\nTime: {login-time}\nDevice: {device-name}\nLocation: {city}, {country}\nIf this sign-in was not by you, you should change your password and notify us by clicking on {one-click-link-invalid}\nIf this sign-in was by you, you can follow {one-click-link-valid} to let us know" + }, + "From": "admin@example.com", + "MfaEmail": { + "HtmlBody": "\n\n\n\tHTML email context\n\t\n\n\n
We required you to use multi-factor authentication for the following sign-in attempt:\n
    \n
  • Time: {login-time}
  • \n
  • Device: {device-name}
  • \n
  • Location: {city}, {country}
  • \n
\nIf this sign-in was not by you, you should change your password and notify us by clicking on this link\nIf this sign-in was by you, you can follow this link to let us know
\n\n", + "Subject": "New sign-in attempt", + "TextBody": "We required you to use multi-factor authentication for the following sign-in attempt:\nTime: {login-time}\nDevice: {device-name}\nLocation: {city}, {country}\nIf this sign-in was not by you, you should change your password and notify us by clicking on {one-click-link-invalid}\nIf this sign-in was by you, you can follow {one-click-link-valid} to let us know" + }, + "NoActionEmail": { + "HtmlBody": "\n\n\n\tHTML email context\n\t\n\n\n
We observed an unrecognized sign-in to your account with this information:\n
    \n
  • Time: {login-time}
  • \n
  • Device: {device-name}
  • \n
  • Location: {city}, {country}
  • \n
\nIf this sign-in was not by you, you should change your password and notify us by clicking on this link\nIf this sign-in was by you, you can follow this link to let us know
\n\n", + "Subject": "New sign-in attempt", + "TextBody": "We observed an unrecognized sign-in to your account with this information:\nTime: {login-time}\nDevice: {device-name}\nLocation: {city}, {country}\nIf this sign-in was not by you, you should change your password and notify us by clicking on {one-click-link-invalid}\nIf this sign-in was by you, you can follow {one-click-link-valid} to let us know" + }, + "ReplyTo": "admin@example.com", + "SourceArn": "arn:aws:ses:us-west-2:123456789012:identity/admin@example.com" + } + }, + "ClientId": "1example23456789", + "CompromisedCredentialsRiskConfiguration": { + "Actions": { + "EventAction": "BLOCK" + }, + "EventFilter": [ + "PASSWORD_CHANGE", + "SIGN_UP", + "SIGN_IN" + ] + }, + "RiskExceptionConfiguration": { + "BlockedIPRangeList": [ + "192.0.2.1/32", + "192.0.2.2/32" + ], + "SkippedIPRangeList": [ + "203.0.113.1/32", + "203.0.113.2/32" + ] + }, + "UserPoolId": "us-west-2_EXAMPLE" + } + +Output:: + + { + "RiskConfiguration": { + "AccountTakeoverRiskConfiguration": { + "Actions": { + "HighAction": { + "EventAction": "MFA_REQUIRED", + "Notify": true + }, + "LowAction": { + "EventAction": "NO_ACTION", + "Notify": true + }, + "MediumAction": { + "EventAction": "MFA_IF_CONFIGURED", + "Notify": true + } + }, + "NotifyConfiguration": { + "BlockEmail": { + "HtmlBody": "\n\n\n\tHTML email context\n\t\n\n\n
We blocked an unrecognized sign-in to your account with this information:\n
    \n
  • Time: {login-time}
  • \n
  • Device: {device-name}
  • \n
  • Location: {city}, {country}
  • \n
\nIf this sign-in was not by you, you should change your password and notify us by clicking on this link\nIf this sign-in was by you, you can follow this link to let us know
\n\n", + "Subject": "Blocked sign-in attempt", + "TextBody": "We blocked an unrecognized sign-in to your account with this information:\nTime: {login-time}\nDevice: {device-name}\nLocation: {city}, {country}\nIf this sign-in was not by you, you should change your password and notify us by clicking on {one-click-link-invalid}\nIf this sign-in was by you, you can follow {one-click-link-valid} to let us know" + }, + "From": "admin@example.com", + "MfaEmail": { + "HtmlBody": "\n\n\n\tHTML email context\n\t\n\n\n
We required you to use multi-factor authentication for the following sign-in attempt:\n
    \n
  • Time: {login-time}
  • \n
  • Device: {device-name}
  • \n
  • Location: {city}, {country}
  • \n
\nIf this sign-in was not by you, you should change your password and notify us by clicking on this link\nIf this sign-in was by you, you can follow this link to let us know
\n\n", + "Subject": "New sign-in attempt", + "TextBody": "We required you to use multi-factor authentication for the following sign-in attempt:\nTime: {login-time}\nDevice: {device-name}\nLocation: {city}, {country}\nIf this sign-in was not by you, you should change your password and notify us by clicking on {one-click-link-invalid}\nIf this sign-in was by you, you can follow {one-click-link-valid} to let us know" + }, + "NoActionEmail": { + "HtmlBody": "\n\n\n\tHTML email context\n\t\n\n\n
We observed an unrecognized sign-in to your account with this information:\n
    \n
  • Time: {login-time}
  • \n
  • Device: {device-name}
  • \n
  • Location: {city}, {country}
  • \n
\nIf this sign-in was not by you, you should change your password and notify us by clicking on this link\nIf this sign-in was by you, you can follow this link to let us know
\n\n", + "Subject": "New sign-in attempt", + "TextBody": "We observed an unrecognized sign-in to your account with this information:\nTime: {login-time}\nDevice: {device-name}\nLocation: {city}, {country}\nIf this sign-in was not by you, you should change your password and notify us by clicking on {one-click-link-invalid}\nIf this sign-in was by you, you can follow {one-click-link-valid} to let us know" + }, + "ReplyTo": "admin@example.com", + "SourceArn": "arn:aws:ses:us-west-2:123456789012:identity/admin@example.com" + } + }, + "ClientId": "1example23456789", + "CompromisedCredentialsRiskConfiguration": { + "Actions": { + "EventAction": "BLOCK" + }, + "EventFilter": [ + "PASSWORD_CHANGE", + "SIGN_UP", + "SIGN_IN" + ] + }, + "RiskExceptionConfiguration": { + "BlockedIPRangeList": [ + "192.0.2.1/32", + "192.0.2.2/32" + ], + "SkippedIPRangeList": [ + "203.0.113.1/32", + "203.0.113.2/32" + ] + }, + "UserPoolId": "us-west-2_EXAMPLE" + } + } + +For more information, see `Threat protection `__ in the *Amazon Cognito Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/set-ui-customization.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/set-ui-customization.rst new file mode 100644 index 000000000..39d505ee9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/set-ui-customization.rst @@ -0,0 +1,45 @@ +**Example 1: To customize the classic hosted UI for an app client** + +The following ``set-ui-customization`` example configures the requested app client with some custom CSS and with the Amazon Cognito logo as the application logo. :: + + aws cognito-idp set-ui-customization \ + --user-pool-id us-west-2_ywDJHlIfU \ + --client-id 14pq32c5q2uq2q7keorloqvb23 \ + --css ".logo-customizable {\n\tmax-width: 60%;\n\tmax-height: 30%;\n}\n.banner-customizable {\n\tpadding: 25px 0px 25px 0px;\n\tbackground-color: lightgray;\n}\n.label-customizable {\n\tfont-weight: 400;\n}\n.textDescription-customizable {\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n\tdisplay: block;\n\tfont-size: 16px;\n}\n.idpDescription-customizable {\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n\tdisplay: block;\n\tfont-size: 16px;\n}\n.legalText-customizable {\n\tcolor: #747474;\n\tfont-size: 11px;\n}\n.submitButton-customizable {\n\tfont-size: 11px;\n\tfont-weight: normal;\n\tmargin: 20px -15px 10px -13px;\n\theight: 40px;\n\twidth: 108%;\n\tcolor: #fff;\n\tbackground-color: #337ab7;\n\ttext-align: center;\n}\n.submitButton-customizable:hover {\n\tcolor: #fff;\n\tbackground-color: #286090;\n}\n.errorMessage-customizable {\n\tpadding: 5px;\n\tfont-size: 14px;\n\twidth: 100%;\n\tbackground: #F5F5F5;\n\tborder: 2px solid #D64958;\n\tcolor: #D64958;\n}\n.inputField-customizable {\n\twidth: 100%;\n\theight: 34px;\n\tcolor: #555;\n\tbackground-color: #fff;\n\tborder: 1px solid #ccc;\n\tborder-radius: 0px;\n}\n.inputField-customizable:focus {\n\tborder-color: #66afe9;\n\toutline: 0;\n}\n.idpButton-customizable {\n\theight: 40px;\n\twidth: 100%;\n\twidth: 100%;\n\ttext-align: center;\n\tmargin-bottom: 15px;\n\tcolor: #fff;\n\tbackground-color: #5bc0de;\n\tborder-color: #46b8da;\n}\n.idpButton-customizable:hover {\n\tcolor: #fff;\n\tbackground-color: #31b0d5;\n}\n.socialButton-customizable {\n\tborder-radius: 2px;\n\theight: 40px;\n\tmargin-bottom: 15px;\n\tpadding: 1px;\n\ttext-align: left;\n\twidth: 100%;\n}\n.redirect-customizable {\n\ttext-align: center;\n}\n.passwordCheck-notValid-customizable {\n\tcolor: #DF3312;\n}\n.passwordCheck-valid-customizable {\n\tcolor: #19BF00;\n}\n.background-customizable {\n\tbackground-color: #fff;\n}\n" \ + --image-file iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAA2UExURd00TN9BV/Cmsfvm6f3y9P////fM0uqAj+yNmu6ZpvnZ3eNabuFNYuZneehzhPKzvPTAxwAAAOiMMlkAAAASdFJOU///////////////////////AOK/vxIAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKDSURBVFhH7ZfpkoMgEISDHKuEw/d/2u2BQWMiBrG29o+fVsKatdPMAeZxc3Nz8w+ISekzmB++sYIw/I/tjHzrPpO2Tx62EbR2PNxFac+jVuKxRaV50IzXkUe76NOCoUuwlvnQKei02gNF0ykotOLRBq/nboeWRxAISx2EbsHFoRhK6Igk2JJlwScfQjgt06dOaWWiTbEDAe/iq8N9kqCw2uCbHkHlYkaXEF8EYeL9RDqT4FhC6XMIIEifdcUwCc4leNyhabadWU6OlKYJE1Oac3NSPhB5rlaXlSgmr/1lww4nPaU/1ylfLGxX1r6Y66ZZkCqvnOlqKWws59ELj7fULc2CubwySYkdDuuiY0/F0L6Q5pZiSG0SfZTSTCOUhxOCH1AdIoCpTTIjtd+VpEjUDDytQH/0Fpc661Aisas/4qmyUItD557pSCOSQQzlx27J+meyDGc5zZgfhWuXE1lGgmVOMwmWdeGdzhjqZV14x5vSj7vsC5JDz/Cl0Vhp56n2NQt1wQIpury1EPbwyaYm+IhmAQKoajkH51wg4cMZ1wQ3QG9efKWWOaDhYWnU6jXjCMdRmm21PArI+Pb5DYoH93hq0ZCPlxeGJho/DI15C6sQc/L2sTC47UFBKZGHT6k+zlXg7WebA0Nr0HTcLMfk/Y4Rc65D3iG6WDd7YLSlVqk87bVhUwhnClrx11RsVQwlAA818Mn+QEs71BhSFU6orsUfKhHp72XMGYXi4q9c64RXRvzkWurRfG2vI2be/VaNcNgpX0Evb/vio7nPMmj5qujkpQgSaPd1UcVqciHFDNZpOcGlcOPyi+AamCbIL9fitxAGeFN2Dl+3vZubm5u/4fH4Bd14HhIPdwZPAAAAAElFTkSuQmCC + +Output:: + + { + "UICustomization": { + "UserPoolId": "us-west-2_ywDJHlIfU", + "ClientId": "14pq32c5q2uq2q7keorloqvb23", + "ImageUrl": "https://cf.thewrong.club/14pq32c5q2uq2q7keorloqvb23/20250117005911/assets/images/image.jpg", + "CSS": ".logo-customizable {\n\tmax-width: 60%;\n\tmax-height: 30%;\n}\n.banner-customizable {\n\tpadding: 25px 0px 25px 0px;\n\tbackground-color: lightgray;\n}\n.label-customizable {\n\tfont-weight: 400;\n}\n.textDescription-customizable {\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n\tdisplay: block;\n\tfont-size: 16px;\n}\n.idpDescription-customizable {\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n\tdisplay: block;\n\tfont-size: 16px;\n}\n.legalText-customizable {\n\tcolor: #747474;\n\tfont-size: 11px;\n}\n.submitButton-customizable {\n\tfont-size: 11px;\n\tfont-weight: normal;\n\tmargin: 20px -15px 10px -13px;\n\theight: 40px;\n\twidth: 108%;\n\tcolor: #fff;\n\tbackground-color: #337ab7;\n\ttext-align: center;\n}\n.submitButton-customizable:hover {\n\tcolor: #fff;\n\tbackground-color: #286090;\n}\n.errorMessage-customizable {\n\tpadding: 5px;\n\tfont-size: 14px;\n\twidth: 100%;\n\tbackground: #F5F5F5;\n\tborder: 2px solid #D64958;\n\tcolor: #D64958;\n}\n.inputField-customizable {\n\twidth: 100%;\n\theight: 34px;\n\tcolor: #555;\n\tbackground-color: #fff;\n\tborder: 1px solid #ccc;\n\tborder-radius: 0px;\n}\n.inputField-customizable:focus {\n\tborder-color: #66afe9;\n\toutline: 0;\n}\n.idpButton-customizable {\n\theight: 40px;\n\twidth: 100%;\n\twidth: 100%;\n\ttext-align: center;\n\tmargin-bottom: 15px;\n\tcolor: #fff;\n\tbackground-color: #5bc0de;\n\tborder-color: #46b8da;\n}\n.idpButton-customizable:hover {\n\tcolor: #fff;\n\tbackground-color: #31b0d5;\n}\n.socialButton-customizable {\n\tborder-radius: 2px;\n\theight: 40px;\n\tmargin-bottom: 15px;\n\tpadding: 1px;\n\ttext-align: left;\n\twidth: 100%;\n}\n.redirect-customizable {\n\ttext-align: center;\n}\n.passwordCheck-notValid-customizable {\n\tcolor: #DF3312;\n}\n.passwordCheck-valid-customizable {\n\tcolor: #19BF00;\n}\n.background-customizable {\n\tbackground-color: #fff;\n}\n", + "CSSVersion": "20250117005911" + } + } + +**Example 2: To set the default UI customization for all app clients** + +The following ``set-ui-customization`` example configures the requested user pool for all app clients that don't have a client-specific configuration. The command applies some custom CSS and with the Amazon Cognito logo as the application logo. :: + + aws cognito-idp set-ui-customization \ + --user-pool-id us-west-2_ywDJHlIfU \ + --client-id ALL \ + --css ".logo-customizable {\n\tmax-width: 60%;\n\tmax-height: 30%;\n}\n.banner-customizable {\n\tpadding: 25px 0px 25px 0px;\n\tbackground-color: lightgray;\n}\n.label-customizable {\n\tfont-weight: 400;\n}\n.textDescription-customizable {\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n\tdisplay: block;\n\tfont-size: 16px;\n}\n.idpDescription-customizable {\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n\tdisplay: block;\n\tfont-size: 16px;\n}\n.legalText-customizable {\n\tcolor: #747474;\n\tfont-size: 11px;\n}\n.submitButton-customizable {\n\tfont-size: 11px;\n\tfont-weight: normal;\n\tmargin: 20px -15px 10px -13px;\n\theight: 40px;\n\twidth: 108%;\n\tcolor: #fff;\n\tbackground-color: #337ab7;\n\ttext-align: center;\n}\n.submitButton-customizable:hover {\n\tcolor: #fff;\n\tbackground-color: #286090;\n}\n.errorMessage-customizable {\n\tpadding: 5px;\n\tfont-size: 14px;\n\twidth: 100%;\n\tbackground: #F5F5F5;\n\tborder: 2px solid #D64958;\n\tcolor: #D64958;\n}\n.inputField-customizable {\n\twidth: 100%;\n\theight: 34px;\n\tcolor: #555;\n\tbackground-color: #fff;\n\tborder: 1px solid #ccc;\n\tborder-radius: 0px;\n}\n.inputField-customizable:focus {\n\tborder-color: #66afe9;\n\toutline: 0;\n}\n.idpButton-customizable {\n\theight: 40px;\n\twidth: 100%;\n\twidth: 100%;\n\ttext-align: center;\n\tmargin-bottom: 15px;\n\tcolor: #fff;\n\tbackground-color: #5bc0de;\n\tborder-color: #46b8da;\n}\n.idpButton-customizable:hover {\n\tcolor: #fff;\n\tbackground-color: #31b0d5;\n}\n.socialButton-customizable {\n\tborder-radius: 2px;\n\theight: 40px;\n\tmargin-bottom: 15px;\n\tpadding: 1px;\n\ttext-align: left;\n\twidth: 100%;\n}\n.redirect-customizable {\n\ttext-align: center;\n}\n.passwordCheck-notValid-customizable {\n\tcolor: #DF3312;\n}\n.passwordCheck-valid-customizable {\n\tcolor: #19BF00;\n}\n.background-customizable {\n\tbackground-color: #fff;\n}\n" \ + --image-file iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAA2UExURd00TN9BV/Cmsfvm6f3y9P////fM0uqAj+yNmu6ZpvnZ3eNabuFNYuZneehzhPKzvPTAxwAAAOiMMlkAAAASdFJOU///////////////////////AOK/vxIAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKDSURBVFhH7ZfpkoMgEISDHKuEw/d/2u2BQWMiBrG29o+fVsKatdPMAeZxc3Nz8w+ISekzmB++sYIw/I/tjHzrPpO2Tx62EbR2PNxFac+jVuKxRaV50IzXkUe76NOCoUuwlvnQKei02gNF0ykotOLRBq/nboeWRxAISx2EbsHFoRhK6Igk2JJlwScfQjgt06dOaWWiTbEDAe/iq8N9kqCw2uCbHkHlYkaXEF8EYeL9RDqT4FhC6XMIIEifdcUwCc4leNyhabadWU6OlKYJE1Oac3NSPhB5rlaXlSgmr/1lww4nPaU/1ylfLGxX1r6Y66ZZkCqvnOlqKWws59ELj7fULc2CubwySYkdDuuiY0/F0L6Q5pZiSG0SfZTSTCOUhxOCH1AdIoCpTTIjtd+VpEjUDDytQH/0Fpc661Aisas/4qmyUItD557pSCOSQQzlx27J+meyDGc5zZgfhWuXE1lGgmVOMwmWdeGdzhjqZV14x5vSj7vsC5JDz/Cl0Vhp56n2NQt1wQIpury1EPbwyaYm+IhmAQKoajkH51wg4cMZ1wQ3QG9efKWWOaDhYWnU6jXjCMdRmm21PArI+Pb5DYoH93hq0ZCPlxeGJho/DI15C6sQc/L2sTC47UFBKZGHT6k+zlXg7WebA0Nr0HTcLMfk/Y4Rc65D3iG6WDd7YLSlVqk87bVhUwhnClrx11RsVQwlAA818Mn+QEs71BhSFU6orsUfKhHp72XMGYXi4q9c64RXRvzkWurRfG2vI2be/VaNcNgpX0Evb/vio7nPMmj5qujkpQgSaPd1UcVqciHFDNZpOcGlcOPyi+AamCbIL9fitxAGeFN2Dl+3vZubm5u/4fH4Bd14HhIPdwZPAAAAAElFTkSuQmCC + +Output:: + + { + "UICustomization": { + "UserPoolId": "us-west-2_ywDJHlIfU", + "ClientId": "14pq32c5q2uq2q7keorloqvb23", + "ImageUrl": "https://cf.thewrong.club/14pq32c5q2uq2q7keorloqvb23/20250117005911/assets/images/image.jpg", + "CSS": ".logo-customizable {\n\tmax-width: 60%;\n\tmax-height: 30%;\n}\n.banner-customizable {\n\tpadding: 25px 0px 25px 0px;\n\tbackground-color: lightgray;\n}\n.label-customizable {\n\tfont-weight: 400;\n}\n.textDescription-customizable {\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n\tdisplay: block;\n\tfont-size: 16px;\n}\n.idpDescription-customizable {\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n\tdisplay: block;\n\tfont-size: 16px;\n}\n.legalText-customizable {\n\tcolor: #747474;\n\tfont-size: 11px;\n}\n.submitButton-customizable {\n\tfont-size: 11px;\n\tfont-weight: normal;\n\tmargin: 20px -15px 10px -13px;\n\theight: 40px;\n\twidth: 108%;\n\tcolor: #fff;\n\tbackground-color: #337ab7;\n\ttext-align: center;\n}\n.submitButton-customizable:hover {\n\tcolor: #fff;\n\tbackground-color: #286090;\n}\n.errorMessage-customizable {\n\tpadding: 5px;\n\tfont-size: 14px;\n\twidth: 100%;\n\tbackground: #F5F5F5;\n\tborder: 2px solid #D64958;\n\tcolor: #D64958;\n}\n.inputField-customizable {\n\twidth: 100%;\n\theight: 34px;\n\tcolor: #555;\n\tbackground-color: #fff;\n\tborder: 1px solid #ccc;\n\tborder-radius: 0px;\n}\n.inputField-customizable:focus {\n\tborder-color: #66afe9;\n\toutline: 0;\n}\n.idpButton-customizable {\n\theight: 40px;\n\twidth: 100%;\n\twidth: 100%;\n\ttext-align: center;\n\tmargin-bottom: 15px;\n\tcolor: #fff;\n\tbackground-color: #5bc0de;\n\tborder-color: #46b8da;\n}\n.idpButton-customizable:hover {\n\tcolor: #fff;\n\tbackground-color: #31b0d5;\n}\n.socialButton-customizable {\n\tborder-radius: 2px;\n\theight: 40px;\n\tmargin-bottom: 15px;\n\tpadding: 1px;\n\ttext-align: left;\n\twidth: 100%;\n}\n.redirect-customizable {\n\ttext-align: center;\n}\n.passwordCheck-notValid-customizable {\n\tcolor: #DF3312;\n}\n.passwordCheck-valid-customizable {\n\tcolor: #19BF00;\n}\n.background-customizable {\n\tbackground-color: #fff;\n}\n", + "CSSVersion": "20250117005911" + } + } + +For more information, see `Hosted UI (classic) branding `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/set-user-mfa-preference.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/set-user-mfa-preference.rst new file mode 100644 index 000000000..4df1f77a3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/set-user-mfa-preference.rst @@ -0,0 +1,13 @@ +**To set a user's MFA preference** + +The following ``set-user-mfa-preference`` example configures the current user to use TOTP MFA and disables all other MFA factors. :: + + aws cognito-idp set-user-mfa-preference \ + --access-token eyJra456defEXAMPLE \ + --software-token-mfa-settings Enabled=true,PreferredMfa=true \ + --sms-mfa-settings Enabled=false,PreferredMfa=false \ + --email-mfa-settings Enabled=false,PreferredMfa=false + +This command produces no output. + +For more information, see `Adding MFA `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/set-user-pool-mfa-config.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/set-user-pool-mfa-config.rst new file mode 100644 index 000000000..e973739ea --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/set-user-pool-mfa-config.rst @@ -0,0 +1,38 @@ +**To configure user pool MFA and WebAuthn** + +The following ``set-user-pool-mfa-config`` example configures the requested user pool with optional MFA with all available MFA methods, and sets the WebAuthn configuration. :: + + aws cognito-idp set-user-pool-mfa-config \ + --user-pool-id us-west-2_EXAMPLE \ + --sms-mfa-configuration "SmsAuthenticationMessage=\"Your OTP for MFA or sign-in: use {####}.\",SmsConfiguration={SnsCallerArn=arn:aws:iam::123456789012:role/service-role/test-SMS-Role,ExternalId=a1b2c3d4-5678-90ab-cdef-EXAMPLE11111,SnsRegion=us-west-2}" \ + --software-token-mfa-configuration Enabled=true \ + --email-mfa-configuration "Message=\"Your OTP for MFA or sign-in: use {####}\",Subject=\"OTP test\"" \ + --mfa-configuration OPTIONAL \ + --web-authn-configuration RelyingPartyId=auth.example.com,UserVerification=preferred + +Output:: + + { + "EmailMfaConfiguration": { + "Message": "Your OTP for MFA or sign-in: use {####}", + "Subject": "OTP test" + }, + "MfaConfiguration": "OPTIONAL", + "SmsMfaConfiguration": { + "SmsAuthenticationMessage": "Your OTP for MFA or sign-in: use {####}.", + "SmsConfiguration": { + "ExternalId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "SnsCallerArn": "arn:aws:iam::123456789012:role/service-role/test-SMS-Role", + "SnsRegion": "us-west-2" + } + }, + "SoftwareTokenMfaConfiguration": { + "Enabled": true + }, + "WebAuthnConfiguration": { + "RelyingPartyId": "auth.example.com", + "UserVerification": "preferred" + } + } + +For more information, see `Adding MFA `__ and `Passkey sign-in `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/set-user-settings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/set-user-settings.rst new file mode 100644 index 000000000..0a5973f82 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/set-user-settings.rst @@ -0,0 +1,8 @@ +**To set user settings** + +This example sets the MFA delivery preference to EMAIL. + +Command:: + + aws cognito-idp set-user-settings --access-token ACCESS_TOKEN --mfa-options DeliveryMedium=EMAIL + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/sign-up.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/sign-up.rst new file mode 100644 index 000000000..7ab74233b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/sign-up.rst @@ -0,0 +1,14 @@ +**To sign up a user** + +This example signs up jane@example.com. + +Command:: + + aws cognito-idp sign-up --client-id 3n4b5urk1ft4fl3mg5e62d9ado --username jane@example.com --password PASSWORD --user-attributes Name="email",Value="jane@example.com" Name="name",Value="Jane" + +Output:: + + { + "UserConfirmed": false, + "UserSub": "e04d60a6-45dc-441c-a40b-e25a787d4862" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/start-user-import-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/start-user-import-job.rst new file mode 100644 index 000000000..17e79d493 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/start-user-import-job.rst @@ -0,0 +1,27 @@ +**To start an import job** + +The following ``start-user-import-job`` example starts the requested import job in the requested user pool. :: + + aws cognito-idp start-user-import-job \ + --user-pool-id us-west-2_EXAMPLE \ + --job-id import-mAgUtd8PMm + +Output:: + + { + "UserImportJob": { + "CloudWatchLogsRoleArn": "arn:aws:iam::123456789012:role/example-cloudwatch-logs-role", + "CreationDate": 1736442975.904, + "FailedUsers": 0, + "ImportedUsers": 0, + "JobId": "import-mAgUtd8PMm", + "JobName": "Customer import", + "PreSignedUrl": "https://aws-cognito-idp-user-import-pdx.s3.us-west-2.amazonaws.com/123456789012/us-west-2_EXAMPLE/import-mAgUtd8PMm?X-Amz-Security-Token=[token]&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20241226T193341Z&X-Amz-SignedHeaders=host%3Bx-amz-server-side-encryption&X-Amz-Expires=899&X-Amz-Credential=[credential]&X-Amz-Signature=[signature]", + "SkippedUsers": 0, + "StartDate": 1736443020.081, + "Status": "Pending", + "UserPoolId": "us-west-2_EXAMPLE" + } + } + +For more information, see `Importing users into a user pool `__ in the *Amazon Cognito Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/start-web-authn-registration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/start-web-authn-registration.rst new file mode 100644 index 000000000..35a49b83c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/start-web-authn-registration.rst @@ -0,0 +1,47 @@ +**To get passkey registration information for a signed-in user** + +The following ``start-web-authn-registration`` example generates WebAuthn registration options for the current user. :: + + aws cognito-idp start-web-authn-registration \ + --access-token eyJra456defEXAMPLE + +Output:: + + { + "CredentialCreationOptions": { + "authenticatorSelection": { + "requireResidentKey": true, + "residentKey": "required", + "userVerification": "preferred" + }, + "challenge": "wxvbDicyqQqvF2EXAMPLE", + "excludeCredentials": [ + { + "id": "8LApgk4-lNUFHbhm2w6Und7-uxcc8coJGsPxiogvHoItc64xWQc3r4CEXAMPLE", + "type": "public-key" + } + ], + "pubKeyCredParams": [ + { + "alg": -7, + "type": "public-key" + }, + { + "alg": -257, + "type": "public-key" + } + ], + "rp": { + "id": "auth.example.com", + "name": "auth.example.com" + }, + "timeout": 60000, + "user": { + "displayName": "testuser", + "id": "ZWFhZDAyMTktMjExNy00MzlmLThkNDYtNGRiMjBlNEXAMPLE", + "name": "testuser" + } + } + } + +For more information, see `Passkey sign-in `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/stop-user-import-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/stop-user-import-job.rst new file mode 100644 index 000000000..eb24e9233 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/stop-user-import-job.rst @@ -0,0 +1,29 @@ +**To stop an import job** + +The following ``stop-user-import-job`` example stops the requested running user import job in the requested user pool. :: + + aws cognito-idp stop-user-import-job \ + --user-pool-id us-west-2_EXAMPLE \ + --job-id import-mAgUtd8PMm + +Output:: + + { + "UserImportJob": { + "CloudWatchLogsRoleArn": "arn:aws:iam::123456789012:role/example-cloudwatch-logs-role", + "CompletionDate": 1736443496.379, + "CompletionMessage": "The Import Job was stopped by the developer.", + "CreationDate": 1736443471.781, + "FailedUsers": 0, + "ImportedUsers": 0, + "JobId": "import-mAgUtd8PMm", + "JobName": "Customer import", + "PreSignedUrl": "https://aws-cognito-idp-user-import-pdx.s3.us-west-2.amazonaws.com/123456789012/us-west-2_EXAMPLE/import-mAgUtd8PMm?X-Amz-Security-Token=[token]&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20241226T193341Z&X-Amz-SignedHeaders=host%3Bx-amz-server-side-encryption&X-Amz-Expires=899&X-Amz-Credential=[credential]&X-Amz-Signature=[signature]", + "SkippedUsers": 0, + "StartDate": 1736443494.154, + "Status": "Stopped", + "UserPoolId": "us-west-2_EXAMPLE" + } + } + +For more information, see `Importing users into a user pool `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/tag-resource.rst new file mode 100644 index 000000000..43f8cc3f8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/tag-resource.rst @@ -0,0 +1,11 @@ +**To tag a user pool** + +The following ``tag-resource`` example applies ``administrator`` and ``department`` tags to the requested user pool. :: + + aws cognito-idp tag-resource \ + --resource-arn arn:aws:cognito-idp:us-west-2:123456789012:userpool/us-west-2_EXAMPLE \ + --tags administrator=Jie,tenant=ExampleCorp + +This command produces no output. + +For more information, see `Tagging Amazon Cognito resources `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/untag-resource.rst new file mode 100644 index 000000000..0582bce92 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove tags from a user pool** + +The following ``untag-resource`` example removes ``administrator`` and ``department`` tags from the requested user pool. :: + + aws cognito-idp untag-resource \ + --resource-arn arn:aws:cognito-idp:us-west-2:767671399759:userpool/us-west-2_l5cxwdm2K \ + --tag-keys administrator tenant + +This command produces no output. + +For more information, see `Tagging Amazon Cognito resources `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-auth-event-feedback.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-auth-event-feedback.rst new file mode 100644 index 000000000..b84b711c2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-auth-event-feedback.rst @@ -0,0 +1,7 @@ +**To update auth event feedback** + +This example updates authorization event feedback. It marks the event "Valid". + +Command:: + + aws cognito-idp update-auth-event-feedback --user-pool-id us-west-2_aaaaaaaaa --username diego@example.com --event-id EVENT_ID --feedback-token FEEDBACK_TOKEN --feedback-value "Valid" diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-device-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-device-status.rst new file mode 100644 index 000000000..cabe6bff7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-device-status.rst @@ -0,0 +1,7 @@ +**To update device status** + +This example updates the status for a device to "not_remembered". + +Command:: + + aws cognito-idp update-device-status --access-token ACCESS_TOKEN --device-key DEVICE_KEY --device-remembered-status "not_remembered" diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-group.rst new file mode 100644 index 000000000..88d60ba0a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-group.rst @@ -0,0 +1,21 @@ +**To update a group** + +This example updates the description and precedence for MyGroup. + +Command:: + + aws cognito-idp update-group --user-pool-id us-west-2_aaaaaaaaa --group-name MyGroup --description "New description" --precedence 2 + +Output:: + + { + "Group": { + "GroupName": "MyGroup", + "UserPoolId": "us-west-2_aaaaaaaaa", + "Description": "New description", + "RoleArn": "arn:aws:iam::111111111111:role/MyRole", + "Precedence": 2, + "LastModifiedDate": 1548800862.812, + "CreationDate": 1548097827.125 + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-identity-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-identity-provider.rst new file mode 100644 index 000000000..cdcc48409 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-identity-provider.rst @@ -0,0 +1,71 @@ +**To update a user pool identity provider** + +The following ``update-identity-provider`` example updates the OIDC provider "MyOIDCIdP" in the requested user pool. :: + + aws cognito-idp update-identity-provider \ + --cli-input-json file://update-identity-provider.json + +Contents of ``update-identity-provider.json``:: + + { + "AttributeMapping": { + "email": "idp_email", + "email_verified": "idp_email_verified", + "username": "sub" + }, + "CreationDate": 1.701129701653E9, + "IdpIdentifiers": [ + "corp", + "dev" + ], + "LastModifiedDate": 1.701129701653E9, + "ProviderDetails": { + "attributes_request_method": "GET", + "attributes_url": "https://example.com/userInfo", + "attributes_url_add_attributes": "false", + "authorize_scopes": "openid profile", + "authorize_url": "https://example.com/authorize", + "client_id": "idpexampleclient123", + "client_secret": "idpexamplesecret456", + "jwks_uri": "https://example.com/.well-known/jwks.json", + "oidc_issuer": "https://example.com", + "token_url": "https://example.com/token" + }, + "ProviderName": "MyOIDCIdP", + "UserPoolId": "us-west-2_EXAMPLE" + } + +Output:: + + { + "IdentityProvider": { + "AttributeMapping": { + "email": "idp_email", + "email_verified": "idp_email_verified", + "username": "sub" + }, + "CreationDate": 1701129701.653, + "IdpIdentifiers": [ + "corp", + "dev" + ], + "LastModifiedDate": 1736444278.211, + "ProviderDetails": { + "attributes_request_method": "GET", + "attributes_url": "https://example.com/userInfo", + "attributes_url_add_attributes": "false", + "authorize_scopes": "openid profile", + "authorize_url": "https://example.com/authorize", + "client_id": "idpexampleclient123", + "client_secret": "idpexamplesecret456", + "jwks_uri": "https://example.com/.well-known/jwks.json", + "oidc_issuer": "https://example.com", + "token_url": "https://example.com/token" + }, + "ProviderName": "MyOIDCIdP", + "ProviderType": "OIDC", + "UserPoolId": "us-west-2_EXAMPLE" + } + } + +For more information, see `Configuring a domain `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-managed-login-branding.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-managed-login-branding.rst new file mode 100644 index 000000000..c968630b6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-managed-login-branding.rst @@ -0,0 +1,949 @@ +**To update a managed login branding style** + +The following ``update-managed-login-branding`` example updates the requested app client branding style. :: + + aws cognito-idp update-managed-login-branding \ + --cli-input-json file://update-managed-login-branding.json + +Contents of ``update-managed-login-branding.json``:: + + { + "Assets": [ + { + "Bytes": "PHN2ZyB3aWR0aD0iMjAwMDAiIGhlaWdodD0iNDAwIiB2aWV3Qm94PSIwIDAgMjAwMDAgNDAwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMTcyNTlfMjM2Njc0KSI+CjxyZWN0IHdpZHRoPSIyMDAwMCIgaGVpZ2h0PSI0MDAiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl8xNzI1OV8yMzY2NzQpIi8+CjxwYXRoIGQ9Ik0wIDBIMjAwMDBWNDAwSDBWMFoiIGZpbGw9IiMxMjIwMzciIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjwvZz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhcl8xNzI1OV8yMzY2NzQiIHgxPSItODk0LjI0OSIgeTE9IjE5OS45MzEiIHgyPSIxODAzNC41IiB5Mj0iLTU4OTkuNTciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iI0JGODBGRiIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGRjhGQUIiLz4KPC9saW5lYXJHcmFkaWVudD4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xNzI1OV8yMzY2NzQiPgo8cmVjdCB3aWR0aD0iMjAwMDAiIGhlaWdodD0iNDAwIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=", + "Category": "PAGE_FOOTER_BACKGROUND", + "ColorMode": "DARK", + "Extension": "SVG" + } + ], + "ManagedLoginBrandingId": "63f30090-6b1f-4278-b885-2bbb81f8e545", + "Settings": { + "categories": { + "auth": { + "authMethodOrder": [ + [ + { + "display": "BUTTON", + "type": "FEDERATED" + }, + { + "display": "INPUT", + "type": "USERNAME_PASSWORD" + } + ] + ], + "federation": { + "interfaceStyle": "BUTTON_LIST", + "order": [ + ] + } + }, + "form": { + "displayGraphics": true, + "instructions": { + "enabled": false + }, + "languageSelector": { + "enabled": false + }, + "location": { + "horizontal": "CENTER", + "vertical": "CENTER" + }, + "sessionTimerDisplay": "NONE" + }, + "global": { + "colorSchemeMode": "LIGHT", + "pageFooter": { + "enabled": false + }, + "pageHeader": { + "enabled": false + }, + "spacingDensity": "REGULAR" + }, + "signUp": { + "acceptanceElements": [ + { + "enforcement": "NONE", + "textKey": "en" + } + ] + } + }, + "componentClasses": { + "buttons": { + "borderRadius": 8.0 + }, + "divider": { + "darkMode": { + "borderColor": "232b37ff" + }, + "lightMode": { + "borderColor": "ebebf0ff" + } + }, + "dropDown": { + "borderRadius": 8.0, + "darkMode": { + "defaults": { + "itemBackgroundColor": "192534ff" + }, + "hover": { + "itemBackgroundColor": "081120ff", + "itemBorderColor": "5f6b7aff", + "itemTextColor": "e9ebedff" + }, + "match": { + "itemBackgroundColor": "d1d5dbff", + "itemTextColor": "89bdeeff" + } + }, + "lightMode": { + "defaults": { + "itemBackgroundColor": "ffffffff" + }, + "hover": { + "itemBackgroundColor": "f4f4f4ff", + "itemBorderColor": "7d8998ff", + "itemTextColor": "000716ff" + }, + "match": { + "itemBackgroundColor": "414d5cff", + "itemTextColor": "0972d3ff" + } + } + }, + "focusState": { + "darkMode": { + "borderColor": "539fe5ff" + }, + "lightMode": { + "borderColor": "0972d3ff" + } + }, + "idpButtons": { + "icons": { + "enabled": true + } + }, + "input": { + "borderRadius": 8.0, + "darkMode": { + "defaults": { + "backgroundColor": "0f1b2aff", + "borderColor": "5f6b7aff" + }, + "placeholderColor": "8d99a8ff" + }, + "lightMode": { + "defaults": { + "backgroundColor": "ffffffff", + "borderColor": "7d8998ff" + }, + "placeholderColor": "5f6b7aff" + } + }, + "inputDescription": { + "darkMode": { + "textColor": "8d99a8ff" + }, + "lightMode": { + "textColor": "5f6b7aff" + } + }, + "inputLabel": { + "darkMode": { + "textColor": "d1d5dbff" + }, + "lightMode": { + "textColor": "000716ff" + } + }, + "link": { + "darkMode": { + "defaults": { + "textColor": "539fe5ff" + }, + "hover": { + "textColor": "89bdeeff" + } + }, + "lightMode": { + "defaults": { + "textColor": "0972d3ff" + }, + "hover": { + "textColor": "033160ff" + } + } + }, + "optionControls": { + "darkMode": { + "defaults": { + "backgroundColor": "0f1b2aff", + "borderColor": "7d8998ff" + }, + "selected": { + "backgroundColor": "539fe5ff", + "foregroundColor": "000716ff" + } + }, + "lightMode": { + "defaults": { + "backgroundColor": "ffffffff", + "borderColor": "7d8998ff" + }, + "selected": { + "backgroundColor": "0972d3ff", + "foregroundColor": "ffffffff" + } + } + }, + "statusIndicator": { + "darkMode": { + "error": { + "backgroundColor": "1a0000ff", + "borderColor": "eb6f6fff", + "indicatorColor": "eb6f6fff" + }, + "pending": { + "indicatorColor": "AAAAAAAA" + }, + "success": { + "backgroundColor": "001a02ff", + "borderColor": "29ad32ff", + "indicatorColor": "29ad32ff" + }, + "warning": { + "backgroundColor": "1d1906ff", + "borderColor": "e0ca57ff", + "indicatorColor": "e0ca57ff" + } + }, + "lightMode": { + "error": { + "backgroundColor": "fff7f7ff", + "borderColor": "d91515ff", + "indicatorColor": "d91515ff" + }, + "pending": { + "indicatorColor": "AAAAAAAA" + }, + "success": { + "backgroundColor": "f2fcf3ff", + "borderColor": "037f0cff", + "indicatorColor": "037f0cff" + }, + "warning": { + "backgroundColor": "fffce9ff", + "borderColor": "8d6605ff", + "indicatorColor": "8d6605ff" + } + } + } + }, + "components": { + "alert": { + "borderRadius": 12.0, + "darkMode": { + "error": { + "backgroundColor": "1a0000ff", + "borderColor": "eb6f6fff" + } + }, + "lightMode": { + "error": { + "backgroundColor": "fff7f7ff", + "borderColor": "d91515ff" + } + } + }, + "favicon": { + "enabledTypes": [ + "ICO", + "SVG" + ] + }, + "form": { + "backgroundImage": { + "enabled": false + }, + "borderRadius": 8.0, + "darkMode": { + "backgroundColor": "0f1b2aff", + "borderColor": "424650ff" + }, + "lightMode": { + "backgroundColor": "ffffffff", + "borderColor": "c6c6cdff" + }, + "logo": { + "enabled": false, + "formInclusion": "IN", + "location": "CENTER", + "position": "TOP" + } + }, + "idpButton": { + "custom": { + }, + "standard": { + "darkMode": { + "active": { + "backgroundColor": "354150ff", + "borderColor": "89bdeeff", + "textColor": "89bdeeff" + }, + "defaults": { + "backgroundColor": "0f1b2aff", + "borderColor": "c6c6cdff", + "textColor": "c6c6cdff" + }, + "hover": { + "backgroundColor": "192534ff", + "borderColor": "89bdeeff", + "textColor": "89bdeeff" + } + }, + "lightMode": { + "active": { + "backgroundColor": "d3e7f9ff", + "borderColor": "033160ff", + "textColor": "033160ff" + }, + "defaults": { + "backgroundColor": "ffffffff", + "borderColor": "424650ff", + "textColor": "424650ff" + }, + "hover": { + "backgroundColor": "f2f8fdff", + "borderColor": "033160ff", + "textColor": "033160ff" + } + } + } + }, + "pageBackground": { + "darkMode": { + "color": "0f1b2aff" + }, + "image": { + "enabled": true + }, + "lightMode": { + "color": "ffffffff" + } + }, + "pageFooter": { + "backgroundImage": { + "enabled": false + }, + "darkMode": { + "background": { + "color": "0f141aff" + }, + "borderColor": "424650ff" + }, + "lightMode": { + "background": { + "color": "fafafaff" + }, + "borderColor": "d5dbdbff" + }, + "logo": { + "enabled": false, + "location": "START" + } + }, + "pageHeader": { + "backgroundImage": { + "enabled": false + }, + "darkMode": { + "background": { + "color": "0f141aff" + }, + "borderColor": "424650ff" + }, + "lightMode": { + "background": { + "color": "fafafaff" + }, + "borderColor": "d5dbdbff" + }, + "logo": { + "enabled": false, + "location": "START" + } + }, + "pageText": { + "darkMode": { + "bodyColor": "b6bec9ff", + "descriptionColor": "b6bec9ff", + "headingColor": "d1d5dbff" + }, + "lightMode": { + "bodyColor": "414d5cff", + "descriptionColor": "414d5cff", + "headingColor": "000716ff" + } + }, + "phoneNumberSelector": { + "displayType": "TEXT" + }, + "primaryButton": { + "darkMode": { + "active": { + "backgroundColor": "539fe5ff", + "textColor": "000716ff" + }, + "defaults": { + "backgroundColor": "539fe5ff", + "textColor": "000716ff" + }, + "disabled": { + "backgroundColor": "ffffffff", + "borderColor": "ffffffff" + }, + "hover": { + "backgroundColor": "89bdeeff", + "textColor": "000716ff" + } + }, + "lightMode": { + "active": { + "backgroundColor": "033160ff", + "textColor": "ffffffff" + }, + "defaults": { + "backgroundColor": "0972d3ff", + "textColor": "ffffffff" + }, + "disabled": { + "backgroundColor": "ffffffff", + "borderColor": "ffffffff" + }, + "hover": { + "backgroundColor": "033160ff", + "textColor": "ffffffff" + } + } + }, + "secondaryButton": { + "darkMode": { + "active": { + "backgroundColor": "354150ff", + "borderColor": "89bdeeff", + "textColor": "89bdeeff" + }, + "defaults": { + "backgroundColor": "0f1b2aff", + "borderColor": "539fe5ff", + "textColor": "539fe5ff" + }, + "hover": { + "backgroundColor": "192534ff", + "borderColor": "89bdeeff", + "textColor": "89bdeeff" + } + }, + "lightMode": { + "active": { + "backgroundColor": "d3e7f9ff", + "borderColor": "033160ff", + "textColor": "033160ff" + }, + "defaults": { + "backgroundColor": "ffffffff", + "borderColor": "0972d3ff", + "textColor": "0972d3ff" + }, + "hover": { + "backgroundColor": "f2f8fdff", + "borderColor": "033160ff", + "textColor": "033160ff" + } + } + } + } + }, + "UseCognitoProvidedValues": false, + "UserPoolId": "ca-central-1_EXAMPLE" + } + +Output:: + + { + "ManagedLoginBranding": { + "Assets": [ + { + "Bytes": "PHN2ZyB3aWR0aD0iMjAwMDAiIGhlaWdodD0iNDAwIiB2aWV3Qm94PSIwIDAgMjAwMDAgNDAwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMTcyNTlfMjM2Njc0KSI+CjxyZWN0IHdpZHRoPSIyMDAwMCIgaGVpZ2h0PSI0MDAiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl8xNzI1OV8yMzY2NzQpIi8+CjxwYXRoIGQ9Ik0wIDBIMjAwMDBWNDAwSDBWMFoiIGZpbGw9IiMxMjIwMzciIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjwvZz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhcl8xNzI1OV8yMzY2NzQiIHgxPSItODk0LjI0OSIgeTE9IjE5OS45MzEiIHgyPSIxODAzNC41IiB5Mj0iLTU4OTkuNTciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iI0JGODBGRiIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGRjhGQUIiLz4KPC9saW5lYXJHcmFkaWVudD4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xNzI1OV8yMzY2NzQiPgo8cmVjdCB3aWR0aD0iMjAwMDAiIGhlaWdodD0iNDAwIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=", + "Category": "PAGE_FOOTER_BACKGROUND", + "ColorMode": "DARK", + "Extension": "SVG" + } + ], + "CreationDate": 1732138490.642, + "LastModifiedDate": 1732140420.301, + "ManagedLoginBrandingId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "Settings": { + "categories": { + "auth": { + "authMethodOrder": [ + [ + { + "display": "BUTTON", + "type": "FEDERATED" + }, + { + "display": "INPUT", + "type": "USERNAME_PASSWORD" + } + ] + ], + "federation": { + "interfaceStyle": "BUTTON_LIST", + "order": [ + ] + } + }, + "form": { + "displayGraphics": true, + "instructions": { + "enabled": false + }, + "languageSelector": { + "enabled": false + }, + "location": { + "horizontal": "CENTER", + "vertical": "CENTER" + }, + "sessionTimerDisplay": "NONE" + }, + "global": { + "colorSchemeMode": "LIGHT", + "pageFooter": { + "enabled": false + }, + "pageHeader": { + "enabled": false + }, + "spacingDensity": "REGULAR" + }, + "signUp": { + "acceptanceElements": [ + { + "enforcement": "NONE", + "textKey": "en" + } + ] + } + }, + "componentClasses": { + "buttons": { + "borderRadius": 8.0 + }, + "divider": { + "darkMode": { + "borderColor": "232b37ff" + }, + "lightMode": { + "borderColor": "ebebf0ff" + } + }, + "dropDown": { + "borderRadius": 8.0, + "darkMode": { + "defaults": { + "itemBackgroundColor": "192534ff" + }, + "hover": { + "itemBackgroundColor": "081120ff", + "itemBorderColor": "5f6b7aff", + "itemTextColor": "e9ebedff" + }, + "match": { + "itemBackgroundColor": "d1d5dbff", + "itemTextColor": "89bdeeff" + } + }, + "lightMode": { + "defaults": { + "itemBackgroundColor": "ffffffff" + }, + "hover": { + "itemBackgroundColor": "f4f4f4ff", + "itemBorderColor": "7d8998ff", + "itemTextColor": "000716ff" + }, + "match": { + "itemBackgroundColor": "414d5cff", + "itemTextColor": "0972d3ff" + } + } + }, + "focusState": { + "darkMode": { + "borderColor": "539fe5ff" + }, + "lightMode": { + "borderColor": "0972d3ff" + } + }, + "idpButtons": { + "icons": { + "enabled": true + } + }, + "input": { + "borderRadius": 8.0, + "darkMode": { + "defaults": { + "backgroundColor": "0f1b2aff", + "borderColor": "5f6b7aff" + }, + "placeholderColor": "8d99a8ff" + }, + "lightMode": { + "defaults": { + "backgroundColor": "ffffffff", + "borderColor": "7d8998ff" + }, + "placeholderColor": "5f6b7aff" + } + }, + "inputDescription": { + "darkMode": { + "textColor": "8d99a8ff" + }, + "lightMode": { + "textColor": "5f6b7aff" + } + }, + "inputLabel": { + "darkMode": { + "textColor": "d1d5dbff" + }, + "lightMode": { + "textColor": "000716ff" + } + }, + "link": { + "darkMode": { + "defaults": { + "textColor": "539fe5ff" + }, + "hover": { + "textColor": "89bdeeff" + } + }, + "lightMode": { + "defaults": { + "textColor": "0972d3ff" + }, + "hover": { + "textColor": "033160ff" + } + } + }, + "optionControls": { + "darkMode": { + "defaults": { + "backgroundColor": "0f1b2aff", + "borderColor": "7d8998ff" + }, + "selected": { + "backgroundColor": "539fe5ff", + "foregroundColor": "000716ff" + } + }, + "lightMode": { + "defaults": { + "backgroundColor": "ffffffff", + "borderColor": "7d8998ff" + }, + "selected": { + "backgroundColor": "0972d3ff", + "foregroundColor": "ffffffff" + } + } + }, + "statusIndicator": { + "darkMode": { + "error": { + "backgroundColor": "1a0000ff", + "borderColor": "eb6f6fff", + "indicatorColor": "eb6f6fff" + }, + "pending": { + "indicatorColor": "AAAAAAAA" + }, + "success": { + "backgroundColor": "001a02ff", + "borderColor": "29ad32ff", + "indicatorColor": "29ad32ff" + }, + "warning": { + "backgroundColor": "1d1906ff", + "borderColor": "e0ca57ff", + "indicatorColor": "e0ca57ff" + } + }, + "lightMode": { + "error": { + "backgroundColor": "fff7f7ff", + "borderColor": "d91515ff", + "indicatorColor": "d91515ff" + }, + "pending": { + "indicatorColor": "AAAAAAAA" + }, + "success": { + "backgroundColor": "f2fcf3ff", + "borderColor": "037f0cff", + "indicatorColor": "037f0cff" + }, + "warning": { + "backgroundColor": "fffce9ff", + "borderColor": "8d6605ff", + "indicatorColor": "8d6605ff" + } + } + } + }, + "components": { + "alert": { + "borderRadius": 12.0, + "darkMode": { + "error": { + "backgroundColor": "1a0000ff", + "borderColor": "eb6f6fff" + } + }, + "lightMode": { + "error": { + "backgroundColor": "fff7f7ff", + "borderColor": "d91515ff" + } + } + }, + "favicon": { + "enabledTypes": [ + "ICO", + "SVG" + ] + }, + "form": { + "backgroundImage": { + "enabled": false + }, + "borderRadius": 8.0, + "darkMode": { + "backgroundColor": "0f1b2aff", + "borderColor": "424650ff" + }, + "lightMode": { + "backgroundColor": "ffffffff", + "borderColor": "c6c6cdff" + }, + "logo": { + "enabled": false, + "formInclusion": "IN", + "location": "CENTER", + "position": "TOP" + } + }, + "idpButton": { + "custom": { + }, + "standard": { + "darkMode": { + "active": { + "backgroundColor": "354150ff", + "borderColor": "89bdeeff", + "textColor": "89bdeeff" + }, + "defaults": { + "backgroundColor": "0f1b2aff", + "borderColor": "c6c6cdff", + "textColor": "c6c6cdff" + }, + "hover": { + "backgroundColor": "192534ff", + "borderColor": "89bdeeff", + "textColor": "89bdeeff" + } + }, + "lightMode": { + "active": { + "backgroundColor": "d3e7f9ff", + "borderColor": "033160ff", + "textColor": "033160ff" + }, + "defaults": { + "backgroundColor": "ffffffff", + "borderColor": "424650ff", + "textColor": "424650ff" + }, + "hover": { + "backgroundColor": "f2f8fdff", + "borderColor": "033160ff", + "textColor": "033160ff" + } + } + } + }, + "pageBackground": { + "darkMode": { + "color": "0f1b2aff" + }, + "image": { + "enabled": true + }, + "lightMode": { + "color": "ffffffff" + } + }, + "pageFooter": { + "backgroundImage": { + "enabled": false + }, + "darkMode": { + "background": { + "color": "0f141aff" + }, + "borderColor": "424650ff" + }, + "lightMode": { + "background": { + "color": "fafafaff" + }, + "borderColor": "d5dbdbff" + }, + "logo": { + "enabled": false, + "location": "START" + } + }, + "pageHeader": { + "backgroundImage": { + "enabled": false + }, + "darkMode": { + "background": { + "color": "0f141aff" + }, + "borderColor": "424650ff" + }, + "lightMode": { + "background": { + "color": "fafafaff" + }, + "borderColor": "d5dbdbff" + }, + "logo": { + "enabled": false, + "location": "START" + } + }, + "pageText": { + "darkMode": { + "bodyColor": "b6bec9ff", + "descriptionColor": "b6bec9ff", + "headingColor": "d1d5dbff" + }, + "lightMode": { + "bodyColor": "414d5cff", + "descriptionColor": "414d5cff", + "headingColor": "000716ff" + } + }, + "phoneNumberSelector": { + "displayType": "TEXT" + }, + "primaryButton": { + "darkMode": { + "active": { + "backgroundColor": "539fe5ff", + "textColor": "000716ff" + }, + "defaults": { + "backgroundColor": "539fe5ff", + "textColor": "000716ff" + }, + "disabled": { + "backgroundColor": "ffffffff", + "borderColor": "ffffffff" + }, + "hover": { + "backgroundColor": "89bdeeff", + "textColor": "000716ff" + } + }, + "lightMode": { + "active": { + "backgroundColor": "033160ff", + "textColor": "ffffffff" + }, + "defaults": { + "backgroundColor": "0972d3ff", + "textColor": "ffffffff" + }, + "disabled": { + "backgroundColor": "ffffffff", + "borderColor": "ffffffff" + }, + "hover": { + "backgroundColor": "033160ff", + "textColor": "ffffffff" + } + } + }, + "secondaryButton": { + "darkMode": { + "active": { + "backgroundColor": "354150ff", + "borderColor": "89bdeeff", + "textColor": "89bdeeff" + }, + "defaults": { + "backgroundColor": "0f1b2aff", + "borderColor": "539fe5ff", + "textColor": "539fe5ff" + }, + "hover": { + "backgroundColor": "192534ff", + "borderColor": "89bdeeff", + "textColor": "89bdeeff" + } + }, + "lightMode": { + "active": { + "backgroundColor": "d3e7f9ff", + "borderColor": "033160ff", + "textColor": "033160ff" + }, + "defaults": { + "backgroundColor": "ffffffff", + "borderColor": "0972d3ff", + "textColor": "0972d3ff" + }, + "hover": { + "backgroundColor": "f2f8fdff", + "borderColor": "033160ff", + "textColor": "033160ff" + } + } + } + } + }, + "UseCognitoProvidedValues": false, + "UserPoolId": "ca-central-1_EXAMPLE" + } + } + +For more information, see `Apply branding to managed login pages `__ in the *Amazon Cognito Developer Guide*. + \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-resource-server.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-resource-server.rst new file mode 100644 index 000000000..4b06e89ec --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-resource-server.rst @@ -0,0 +1,23 @@ +**To update a resource server** + +This example updates the the resource server Weather. It adds a new scope. + +Command:: + + aws cognito-idp update-resource-server --user-pool-id us-west-2_aaaaaaaaa --identifier weather.example.com --name Weather --scopes ScopeName=NewScope,ScopeDescription="New scope description" + +Output:: + + { + "ResourceServer": { + "UserPoolId": "us-west-2_aaaaaaaaa", + "Identifier": "weather.example.com", + "Name": "Happy", + "Scopes": [ + { + "ScopeName": "NewScope", + "ScopeDescription": "New scope description" + } + ] + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-user-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-user-attributes.rst new file mode 100644 index 000000000..3f7237720 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-user-attributes.rst @@ -0,0 +1,7 @@ +**To update user attributes** + +This example updates the user attribute "nickname". + +Command:: + + aws cognito-idp update-user-attributes --access-token ACCESS_TOKEN --user-attributes Name="nickname",Value="Dan" diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-user-pool-client.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-user-pool-client.rst new file mode 100644 index 000000000..7a9425459 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-user-pool-client.rst @@ -0,0 +1,121 @@ +**To update an app client** + +The following ``update-user-pool-client`` example updates the configuration of the requested app client. :: + + aws cognito-idp update-user-pool-client \ + --user-pool-id us-west-2_EXAMPLE \ + --client-id 1example23456789 \ + --client-name my-test-app \ + --refresh-token-validity 30 \ + --access-token-validity 60 \ + --id-token-validity 60 \ + --token-validity-units AccessToken=minutes,IdToken=minutes,RefreshToken=days \ + --read-attributes "address" "birthdate" "email" "email_verified" "family_name" "gender" "locale" "middle_name" "name" "nickname" "phone_number" "phone_number_verified" "picture" "preferred_username" "profile" "updated_at" "website" "zoneinfo" \ + --write-attributes "address" "birthdate" "email" "family_name" "gender" "locale" "middle_name" "name" "nickname" "phone_number" "picture" "preferred_username" "profile" "updated_at" "website" "zoneinfo" \ + --explicit-auth-flows "ALLOW_ADMIN_USER_PASSWORD_AUTH" "ALLOW_CUSTOM_AUTH" "ALLOW_REFRESH_TOKEN_AUTH" "ALLOW_USER_PASSWORD_AUTH" "ALLOW_USER_SRP_AUTH" \ + --supported-identity-providers "MySAML" "COGNITO" "Google" \ + --callback-urls "https://www.example.com" "https://app2.example.com" \ + --logout-urls "https://auth.example.com/login?client_id=1example23456789&response_type=code&redirect_uri=https%3A%2F%2Fwww.example.com" "https://example.com/logout" \ + --default-redirect-uri "https://www.example.com" \ + --allowed-o-auth-flows "code" "implicit" \ + --allowed-o-auth-scopes "openid" "profile" "aws.cognito.signin.user.admin" \ + --allowed-o-auth-flows-user-pool-client \ + --prevent-user-existence-errors ENABLED \ + --enable-token-revocation \ + --no-enable-propagate-additional-user-context-data \ + --auth-session-validity 3 + +Output:: + + { + "UserPoolClient": { + "UserPoolId": "us-west-2_EXAMPLE", + "ClientName": "my-test-app", + "ClientId": "1example23456789", + "LastModifiedDate": "2025-01-31T14:40:12.498000-08:00", + "CreationDate": "2023-09-13T16:26:34.408000-07:00", + "RefreshTokenValidity": 30, + "AccessTokenValidity": 60, + "IdTokenValidity": 60, + "TokenValidityUnits": { + "AccessToken": "minutes", + "IdToken": "minutes", + "RefreshToken": "days" + }, + "ReadAttributes": [ + "website", + "zoneinfo", + "address", + "birthdate", + "email_verified", + "gender", + "profile", + "phone_number_verified", + "preferred_username", + "locale", + "middle_name", + "picture", + "updated_at", + "name", + "nickname", + "phone_number", + "family_name", + "email" + ], + "WriteAttributes": [ + "website", + "zoneinfo", + "address", + "birthdate", + "gender", + "profile", + "preferred_username", + "locale", + "middle_name", + "picture", + "updated_at", + "name", + "nickname", + "phone_number", + "family_name", + "email" + ], + "ExplicitAuthFlows": [ + "ALLOW_CUSTOM_AUTH", + "ALLOW_USER_PASSWORD_AUTH", + "ALLOW_ADMIN_USER_PASSWORD_AUTH", + "ALLOW_USER_SRP_AUTH", + "ALLOW_REFRESH_TOKEN_AUTH" + ], + "SupportedIdentityProviders": [ + "Google", + "COGNITO", + "MySAML" + ], + "CallbackURLs": [ + "https://www.example.com", + "https://app2.example.com" + ], + "LogoutURLs": [ + "https://example.com/logout", + "https://auth.example.com/login?client_id=1example23456789&response_type=code&redirect_uri=https%3A%2F%2Fwww.example.com" + ], + "DefaultRedirectURI": "https://www.example.com", + "AllowedOAuthFlows": [ + "implicit", + "code" + ], + "AllowedOAuthScopes": [ + "aws.cognito.signin.user.admin", + "openid", + "profile" + ], + "AllowedOAuthFlowsUserPoolClient": true, + "PreventUserExistenceErrors": "ENABLED", + "EnableTokenRevocation": true, + "EnablePropagateAdditionalUserContextData": false, + "AuthSessionValidity": 3 + } + } + +For more information, see `Application-specific settings with app clients `__ in the *Amazon Cognito Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-user-pool-domain.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-user-pool-domain.rst new file mode 100644 index 000000000..54bb0cff1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-user-pool-domain.rst @@ -0,0 +1,18 @@ +**To update a custom domain** + +The following ``update-user-pool-domain`` example configures the branding version and certificate for the custom domain the requested user pool. :: + + aws cognito-idp update-user-pool-domain \ + --user-pool-id ca-central-1_EXAMPLE \ + --domain auth.example.com \ + --managed-login-version 2 \ + --custom-domain-config CertificateArn=arn:aws:acm:us-east-1:123456789012:certificate/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "CloudFrontDomain": "example.cloudfront.net", + "ManagedLoginVersion": 2 + } + +For more information, see `Managed login `__ and `Configuring a domain `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-user-pool.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-user-pool.rst new file mode 100644 index 000000000..c47d6fd43 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/update-user-pool.rst @@ -0,0 +1,25 @@ +**To update a user pool** + +The following ``update-user-pool`` example modifies a user pool with example syntax for each of the available configuration options. To update a user pool, you must specify all previously-configured options or they will reset to a default value. :: + + aws cognito-idp update-user-pool --user-pool-id us-west-2_EXAMPLE \ + --policies PasswordPolicy=\{MinimumLength=6,RequireUppercase=true,RequireLowercase=true,RequireNumbers=true,RequireSymbols=true,TemporaryPasswordValidityDays=7\} \ + --deletion-protection ACTIVE \ + --lambda-config PreSignUp="arn:aws:lambda:us-west-2:123456789012:function:cognito-test-presignup-function",PreTokenGeneration="arn:aws:lambda:us-west-2:123456789012:function:cognito-test-pretoken-function" \ + --auto-verified-attributes "phone_number" "email" \ + --verification-message-template \{\"SmsMessage\":\""Your code is {####}"\",\"EmailMessage\":\""Your code is {####}"\",\"EmailSubject\":\""Your verification code"\",\"EmailMessageByLink\":\""Click {##here##} to verify your email address."\",\"EmailSubjectByLink\":\""Your verification link"\",\"DefaultEmailOption\":\"CONFIRM_WITH_LINK\"\} \ + --sms-authentication-message "Your code is {####}" \ + --user-attribute-update-settings AttributesRequireVerificationBeforeUpdate="email","phone_number" \ + --mfa-configuration "OPTIONAL" \ + --device-configuration ChallengeRequiredOnNewDevice=true,DeviceOnlyRememberedOnUserPrompt=true \ + --email-configuration SourceArn="arn:aws:ses:us-west-2:123456789012:identity/admin@example.com",ReplyToEmailAddress="amdin+noreply@example.com",EmailSendingAccount=DEVELOPER,From="admin@amazon.com",ConfigurationSet="test-configuration-set" \ + --sms-configuration SnsCallerArn="arn:aws:iam::123456789012:role/service-role/SNS-SMS-Role",ExternalId="12345",SnsRegion="us-west-2" \ + --admin-create-user-config AllowAdminCreateUserOnly=false,InviteMessageTemplate=\{SMSMessage=\""Welcome {username}. Your confirmation code is {####}"\",EmailMessage=\""Welcome {username}. Your confirmation code is {####}"\",EmailSubject=\""Welcome to MyMobileGame"\"\} \ + --user-pool-tags "Function"="MyMobileGame","Developers"="Berlin" \ + --admin-create-user-config AllowAdminCreateUserOnly=false,InviteMessageTemplate=\{SMSMessage=\""Welcome {username}. Your confirmation code is {####}"\",EmailMessage=\""Welcome {username}. Your confirmation code is {####}"\",EmailSubject=\""Welcome to MyMobileGame"\"\} \ + --user-pool-add-ons AdvancedSecurityMode="AUDIT" \ + --account-recovery-setting RecoveryMechanisms=\[\{Priority=1,Name="verified_email"\},\{Priority=2,Name="verified_phone_number"\}\] + +This command produces no output. + +For more information, see `Updating user pool configuration `__ in the *Amazon Cognito Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/verify-software-token.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/verify-software-token.rst new file mode 100644 index 000000000..44d78c3b6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/verify-software-token.rst @@ -0,0 +1,15 @@ +**To confirm registration of a TOTP authenticator** + +The following ``verify-software-token`` example completes TOTP registration for the current user. :: + + aws cognito-idp verify-software-token \ + --access-token eyJra456defEXAMPLE \ + --user-code 123456 + +Output:: + + { + "Status": "SUCCESS" + } + +For more information, see `Adding MFA to a user pool `__ in the *Amazon Cognito Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/verify-user-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/verify-user-attribute.rst new file mode 100644 index 000000000..3e635cf30 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cognito-idp/verify-user-attribute.rst @@ -0,0 +1,10 @@ +**To verify an attribute change** + +The following ``verify-user-attribute`` example verifies a change to the current user's email attribute. :: + + aws cognito-idp verify-user-attribute \ + --access-token eyJra456defEXAMPLE \ + --attribute-name email \ + --code 123456 + +For more information, see `Configuring email or phone verification `__ in the *Amazon Cognito Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/batch-detect-dominant-language.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/batch-detect-dominant-language.rst new file mode 100644 index 000000000..cebd11617 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/batch-detect-dominant-language.rst @@ -0,0 +1,26 @@ +**To detect the dominant language of multiple input texts** + +The following ``batch-detect-dominant-language`` example analyzes multiple input texts and returns the dominant language of each. +The pre-trained models confidence score is also output for each prediction. :: + + aws comprehend batch-detect-dominant-language \ + --text-list "Physics is the natural science that involves the study of matter and its motion and behavior through space and time, along with related concepts such as energy and force." + +Output:: + + { + "ResultList": [ + { + "Index": 0, + "Languages": [ + { + "LanguageCode": "en", + "Score": 0.9986501932144165 + } + ] + } + ], + "ErrorList": [] + } + +For more information, see `Dominant Language `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/batch-detect-entities.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/batch-detect-entities.rst new file mode 100644 index 000000000..086f9c86c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/batch-detect-entities.rst @@ -0,0 +1,97 @@ +**To detect entities from multiple input texts** + +The following ``batch-detect-entities`` example analyzes multiple input texts and returns the named entities of each. The pre-trained model's confidence score is also output for each prediction. :: + + aws comprehend batch-detect-entities \ + --language-code en \ + --text-list "Dear Jane, Your AnyCompany Financial Services LLC credit card account 1111-XXXX-1111-XXXX has a minimum payment of $24.53 that is due by July 31st." "Please send customer feedback to Sunshine Spa, 123 Main St, Anywhere or to Alice at AnySpa@example.com." + +Output:: + + { + "ResultList": [ + { + "Index": 0, + "Entities": [ + { + "Score": 0.9985517859458923, + "Type": "PERSON", + "Text": "Jane", + "BeginOffset": 5, + "EndOffset": 9 + }, + { + "Score": 0.9767839312553406, + "Type": "ORGANIZATION", + "Text": "AnyCompany Financial Services, LLC", + "BeginOffset": 16, + "EndOffset": 50 + }, + { + "Score": 0.9856694936752319, + "Type": "OTHER", + "Text": "1111-XXXX-1111-XXXX", + "BeginOffset": 71, + "EndOffset": 90 + }, + { + "Score": 0.9652159810066223, + "Type": "QUANTITY", + "Text": ".53", + "BeginOffset": 116, + "EndOffset": 119 + }, + { + "Score": 0.9986667037010193, + "Type": "DATE", + "Text": "July 31st", + "BeginOffset": 135, + "EndOffset": 144 + } + ] + }, + { + "Index": 1, + "Entities": [ + { + "Score": 0.720084547996521, + "Type": "ORGANIZATION", + "Text": "Sunshine Spa", + "BeginOffset": 33, + "EndOffset": 45 + }, + { + "Score": 0.9865870475769043, + "Type": "LOCATION", + "Text": "123 Main St", + "BeginOffset": 47, + "EndOffset": 58 + }, + { + "Score": 0.5895616412162781, + "Type": "LOCATION", + "Text": "Anywhere", + "BeginOffset": 60, + "EndOffset": 68 + }, + { + "Score": 0.6809214353561401, + "Type": "PERSON", + "Text": "Alice", + "BeginOffset": 75, + "EndOffset": 80 + }, + { + "Score": 0.9979087114334106, + "Type": "OTHER", + "Text": "AnySpa@example.com", + "BeginOffset": 84, + "EndOffset": 99 + } + ] + } + ], + "ErrorList": [] + } + +For more information, see `Entities `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/batch-detect-key-phrases.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/batch-detect-key-phrases.rst new file mode 100644 index 000000000..07c7cc1e9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/batch-detect-key-phrases.rst @@ -0,0 +1,122 @@ +**To detect key phrases of multiple text inputs** + +The following ``batch-detect-key-phrases`` example analyzes multiple input texts and returns the key noun phrases of each. The pre-trained model's confidence score for each prediction is also output. :: + + aws comprehend batch-detect-key-phrases \ + --language-code en \ + --text-list "Hello Zhang Wei, I am John, writing to you about the trip for next Saturday." "Dear Jane, Your AnyCompany Financial Services LLC credit card account 1111-XXXX-1111-XXXX has a minimum payment of $24.53 that is due by July 31st." "Please send customer feedback to Sunshine Spa, 123 Main St, Anywhere or to Alice at AnySpa@example.com." + +Output:: + + { + "ResultList": [ + { + "Index": 0, + "KeyPhrases": [ + { + "Score": 0.99700927734375, + "Text": "Zhang Wei", + "BeginOffset": 6, + "EndOffset": 15 + }, + { + "Score": 0.9929308891296387, + "Text": "John", + "BeginOffset": 22, + "EndOffset": 26 + }, + { + "Score": 0.9997230172157288, + "Text": "the trip", + "BeginOffset": 49, + "EndOffset": 57 + }, + { + "Score": 0.9999470114707947, + "Text": "next Saturday", + "BeginOffset": 62, + "EndOffset": 75 + } + ] + }, + { + "Index": 1, + "KeyPhrases": [ + { + "Score": 0.8358274102210999, + "Text": "Dear Jane", + "BeginOffset": 0, + "EndOffset": 9 + }, + { + "Score": 0.989359974861145, + "Text": "Your AnyCompany Financial Services", + "BeginOffset": 11, + "EndOffset": 45 + }, + { + "Score": 0.8812323808670044, + "Text": "LLC credit card account 1111-XXXX-1111-XXXX", + "BeginOffset": 47, + "EndOffset": 90 + }, + { + "Score": 0.9999381899833679, + "Text": "a minimum payment", + "BeginOffset": 95, + "EndOffset": 112 + }, + { + "Score": 0.9997439980506897, + "Text": ".53", + "BeginOffset": 116, + "EndOffset": 119 + }, + { + "Score": 0.996875524520874, + "Text": "July 31st", + "BeginOffset": 135, + "EndOffset": 144 + } + ] + }, + { + "Index": 2, + "KeyPhrases": [ + { + "Score": 0.9990295767784119, + "Text": "customer feedback", + "BeginOffset": 12, + "EndOffset": 29 + }, + { + "Score": 0.9994127750396729, + "Text": "Sunshine Spa", + "BeginOffset": 33, + "EndOffset": 45 + }, + { + "Score": 0.9892991185188293, + "Text": "123 Main St", + "BeginOffset": 47, + "EndOffset": 58 + }, + { + "Score": 0.9969810843467712, + "Text": "Alice", + "BeginOffset": 75, + "EndOffset": 80 + }, + { + "Score": 0.9703696370124817, + "Text": "AnySpa@example.com", + "BeginOffset": 84, + "EndOffset": 99 + } + ] + } + ], + "ErrorList": [] + } + +For more information, see `Key Phrases `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/batch-detect-sentiment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/batch-detect-sentiment.rst new file mode 100644 index 000000000..3bc331f1f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/batch-detect-sentiment.rst @@ -0,0 +1,47 @@ +**To detect the prevailing sentiment of multiple input texts** + +The following ``batch-detect-sentiment`` example analyzes multiple input texts and returns the prevailing sentiment (``POSITIVE``, ``NEUTRAL``, ``MIXED``, or ``NEGATIVE``, of each one). :: + + aws comprehend batch-detect-sentiment \ + --text-list "That movie was very boring, I can't believe it was over four hours long." "It is a beautiful day for hiking today." "My meal was okay, I'm excited to try other restaurants." \ + --language-code en + +Output:: + + { + "ResultList": [ + { + "Index": 0, + "Sentiment": "NEGATIVE", + "SentimentScore": { + "Positive": 0.00011316669406369328, + "Negative": 0.9995445609092712, + "Neutral": 0.00014722718333359808, + "Mixed": 0.00019498742767609656 + } + }, + { + "Index": 1, + "Sentiment": "POSITIVE", + "SentimentScore": { + "Positive": 0.9981263279914856, + "Negative": 0.00015240783977787942, + "Neutral": 0.0013876151060685515, + "Mixed": 0.00033366199932061136 + } + }, + { + "Index": 2, + "Sentiment": "MIXED", + "SentimentScore": { + "Positive": 0.15930435061454773, + "Negative": 0.11471917480230331, + "Neutral": 0.26897063851356506, + "Mixed": 0.45700588822364807 + } + } + ], + "ErrorList": [] + } + +For more information, see `Sentiment `__ in the *Amazon Comprehend Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/batch-detect-syntax.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/batch-detect-syntax.rst new file mode 100644 index 000000000..20658fc12 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/batch-detect-syntax.rst @@ -0,0 +1,243 @@ +**To inspect the syntax and parts of speech of words in multiple input texts** + +The following ``batch-detect-syntax`` example analyzes the syntax of multiple input texts and returns the different parts of speech. The pre-trained model's confidence score is also output for each prediction. :: + + aws comprehend batch-detect-syntax \ + --text-list "It is a beautiful day." "Can you please pass the salt?" "Please pay the bill before the 31st." \ + --language-code en + +Output:: + + { + "ResultList": [ + { + "Index": 0, + "SyntaxTokens": [ + { + "TokenId": 1, + "Text": "It", + "BeginOffset": 0, + "EndOffset": 2, + "PartOfSpeech": { + "Tag": "PRON", + "Score": 0.9999740719795227 + } + }, + { + "TokenId": 2, + "Text": "is", + "BeginOffset": 3, + "EndOffset": 5, + "PartOfSpeech": { + "Tag": "VERB", + "Score": 0.999937117099762 + } + }, + { + "TokenId": 3, + "Text": "a", + "BeginOffset": 6, + "EndOffset": 7, + "PartOfSpeech": { + "Tag": "DET", + "Score": 0.9999926686286926 + } + }, + { + "TokenId": 4, + "Text": "beautiful", + "BeginOffset": 8, + "EndOffset": 17, + "PartOfSpeech": { + "Tag": "ADJ", + "Score": 0.9987891912460327 + } + }, + { + "TokenId": 5, + "Text": "day", + "BeginOffset": 18, + "EndOffset": 21, + "PartOfSpeech": { + "Tag": "NOUN", + "Score": 0.9999778866767883 + } + }, + { + "TokenId": 6, + "Text": ".", + "BeginOffset": 21, + "EndOffset": 22, + "PartOfSpeech": { + "Tag": "PUNCT", + "Score": 0.9999974966049194 + } + } + ] + }, + { + "Index": 1, + "SyntaxTokens": [ + { + "TokenId": 1, + "Text": "Can", + "BeginOffset": 0, + "EndOffset": 3, + "PartOfSpeech": { + "Tag": "AUX", + "Score": 0.9999770522117615 + } + }, + { + "TokenId": 2, + "Text": "you", + "BeginOffset": 4, + "EndOffset": 7, + "PartOfSpeech": { + "Tag": "PRON", + "Score": 0.9999986886978149 + } + }, + { + "TokenId": 3, + "Text": "please", + "BeginOffset": 8, + "EndOffset": 14, + "PartOfSpeech": { + "Tag": "INTJ", + "Score": 0.9681622385978699 + } + }, + { + "TokenId": 4, + "Text": "pass", + "BeginOffset": 15, + "EndOffset": 19, + "PartOfSpeech": { + "Tag": "VERB", + "Score": 0.9999874830245972 + } + }, + { + "TokenId": 5, + "Text": "the", + "BeginOffset": 20, + "EndOffset": 23, + "PartOfSpeech": { + "Tag": "DET", + "Score": 0.9999827146530151 + } + }, + { + "TokenId": 6, + "Text": "salt", + "BeginOffset": 24, + "EndOffset": 28, + "PartOfSpeech": { + "Tag": "NOUN", + "Score": 0.9995040893554688 + } + }, + { + "TokenId": 7, + "Text": "?", + "BeginOffset": 28, + "EndOffset": 29, + "PartOfSpeech": { + "Tag": "PUNCT", + "Score": 0.999998152256012 + } + } + ] + }, + { + "Index": 2, + "SyntaxTokens": [ + { + "TokenId": 1, + "Text": "Please", + "BeginOffset": 0, + "EndOffset": 6, + "PartOfSpeech": { + "Tag": "INTJ", + "Score": 0.9997857809066772 + } + }, + { + "TokenId": 2, + "Text": "pay", + "BeginOffset": 7, + "EndOffset": 10, + "PartOfSpeech": { + "Tag": "VERB", + "Score": 0.9999252557754517 + } + }, + { + "TokenId": 3, + "Text": "the", + "BeginOffset": 11, + "EndOffset": 14, + "PartOfSpeech": { + "Tag": "DET", + "Score": 0.9999842643737793 + } + }, + { + "TokenId": 4, + "Text": "bill", + "BeginOffset": 15, + "EndOffset": 19, + "PartOfSpeech": { + "Tag": "NOUN", + "Score": 0.9999588131904602 + } + }, + { + "TokenId": 5, + "Text": "before", + "BeginOffset": 20, + "EndOffset": 26, + "PartOfSpeech": { + "Tag": "ADP", + "Score": 0.9958304762840271 + } + }, + { + "TokenId": 6, + "Text": "the", + "BeginOffset": 27, + "EndOffset": 30, + "PartOfSpeech": { + "Tag": "DET", + "Score": 0.9999947547912598 + } + }, + { + "TokenId": 7, + "Text": "31st", + "BeginOffset": 31, + "EndOffset": 35, + "PartOfSpeech": { + "Tag": "NOUN", + "Score": 0.9924124479293823 + } + }, + { + "TokenId": 8, + "Text": ".", + "BeginOffset": 35, + "EndOffset": 36, + "PartOfSpeech": { + "Tag": "PUNCT", + "Score": 0.9999955892562866 + } + } + ] + } + ], + "ErrorList": [] + } + + +For more information, see `Syntax Analysis `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/batch-detect-targeted-sentiment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/batch-detect-targeted-sentiment.rst new file mode 100644 index 000000000..8531da1ad --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/batch-detect-targeted-sentiment.rst @@ -0,0 +1,176 @@ +**To detect the sentiment and each named entity for multiple input texts** + +The following ``batch-detect-targeted-sentiment`` example analyzes multiple input texts and returns the named entities along with the prevailing sentiment attached to each entity. The pre-trained model's confidence score is also output for each prediction. :: + + aws comprehend batch-detect-targeted-sentiment \ + --language-code en \ + --text-list "That movie was really boring, the original was way more entertaining" "The trail is extra beautiful today." "My meal was just okay." + +Output:: + + { + "ResultList": [ + { + "Index": 0, + "Entities": [ + { + "DescriptiveMentionIndex": [ + 0 + ], + "Mentions": [ + { + "Score": 0.9999009966850281, + "GroupScore": 1.0, + "Text": "movie", + "Type": "MOVIE", + "MentionSentiment": { + "Sentiment": "NEGATIVE", + "SentimentScore": { + "Positive": 0.13887299597263336, + "Negative": 0.8057460188865662, + "Neutral": 0.05525200068950653, + "Mixed": 0.00012799999967683107 + } + }, + "BeginOffset": 5, + "EndOffset": 10 + } + ] + }, + { + "DescriptiveMentionIndex": [ + 0 + ], + "Mentions": [ + { + "Score": 0.9921110272407532, + "GroupScore": 1.0, + "Text": "original", + "Type": "MOVIE", + "MentionSentiment": { + "Sentiment": "POSITIVE", + "SentimentScore": { + "Positive": 0.9999989867210388, + "Negative": 9.999999974752427e-07, + "Neutral": 0.0, + "Mixed": 0.0 + } + }, + "BeginOffset": 34, + "EndOffset": 42 + } + ] + } + ] + }, + { + "Index": 1, + "Entities": [ + { + "DescriptiveMentionIndex": [ + 0 + ], + "Mentions": [ + { + "Score": 0.7545599937438965, + "GroupScore": 1.0, + "Text": "trail", + "Type": "OTHER", + "MentionSentiment": { + "Sentiment": "POSITIVE", + "SentimentScore": { + "Positive": 1.0, + "Negative": 0.0, + "Neutral": 0.0, + "Mixed": 0.0 + } + }, + "BeginOffset": 4, + "EndOffset": 9 + } + ] + }, + { + "DescriptiveMentionIndex": [ + 0 + ], + "Mentions": [ + { + "Score": 0.9999960064888, + "GroupScore": 1.0, + "Text": "today", + "Type": "DATE", + "MentionSentiment": { + "Sentiment": "NEUTRAL", + "SentimentScore": { + "Positive": 9.000000318337698e-06, + "Negative": 1.9999999949504854e-06, + "Neutral": 0.9999859929084778, + "Mixed": 3.999999989900971e-06 + } + }, + "BeginOffset": 29, + "EndOffset": 34 + } + ] + } + ] + }, + { + "Index": 2, + "Entities": [ + { + "DescriptiveMentionIndex": [ + 0 + ], + "Mentions": [ + { + "Score": 0.9999880194664001, + "GroupScore": 1.0, + "Text": "My", + "Type": "PERSON", + "MentionSentiment": { + "Sentiment": "NEUTRAL", + "SentimentScore": { + "Positive": 0.0, + "Negative": 0.0, + "Neutral": 1.0, + "Mixed": 0.0 + } + }, + "BeginOffset": 0, + "EndOffset": 2 + } + ] + }, + { + "DescriptiveMentionIndex": [ + 0 + ], + "Mentions": [ + { + "Score": 0.9995260238647461, + "GroupScore": 1.0, + "Text": "meal", + "Type": "OTHER", + "MentionSentiment": { + "Sentiment": "NEUTRAL", + "SentimentScore": { + "Positive": 0.04695599898695946, + "Negative": 0.003226999891921878, + "Neutral": 0.6091709733009338, + "Mixed": 0.34064599871635437 + } + }, + "BeginOffset": 3, + "EndOffset": 7 + } + ] + } + ] + } + ], + "ErrorList": [] + } + +For more information, see `Targeted Sentiment `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/classify-document.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/classify-document.rst new file mode 100644 index 000000000..02f6c0a89 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/classify-document.rst @@ -0,0 +1,25 @@ +**To classify document with model-specific endpoint** + +The following ``classify-document`` example classifies a document with an endpoint of a custom model. The model in this example was trained on +a dataset containing sms messages labeled as spam or non-spam, or, "ham". :: + + aws comprehend classify-document \ + --endpoint-arn arn:aws:comprehend:us-west-2:111122223333:document-classifier-endpoint/example-classifier-endpoint \ + --text "CONGRATULATIONS! TXT 1235550100 to win $5000" + +Output:: + + { + "Classes": [ + { + "Name": "spam", + "Score": 0.9998599290847778 + }, + { + "Name": "ham", + "Score": 0.00014001205272506922 + } + ] + } + +For more information, see `Custom Classification `__ in the *Amazon Comprehend Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/contains-pii-entities.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/contains-pii-entities.rst new file mode 100644 index 000000000..01e8689b0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/contains-pii-entities.rst @@ -0,0 +1,38 @@ +**To analyze the input text for the presence of PII information** + +The following ``contains-pii-entities`` example analyzes the input text for the presence of personally identifiable information (PII) and returns the labels of identified PII entity types such as name, address, bank account number, or phone number. :: + + aws comprehend contains-pii-entities \ + --language-code en \ + --text "Hello Zhang Wei, I am John. Your AnyCompany Financial Services, LLC credit card + account 1111-XXXX-1111-XXXX has a minimum payment of $24.53 that is due by July 31st. Based on your autopay settings, + we will withdraw your payment on the due date from your bank account number XXXXXX1111 with the routing number XXXXX0000. + Customer feedback for Sunshine Spa, 100 Main St, Anywhere. Send comments to Alice at AnySpa@example.com." + +Output:: + + { + "Labels": [ + { + "Name": "NAME", + "Score": 1.0 + }, + { + "Name": "EMAIL", + "Score": 1.0 + }, + { + "Name": "BANK_ACCOUNT_NUMBER", + "Score": 0.9995794296264648 + }, + { + "Name": "BANK_ROUTING", + "Score": 0.9173126816749573 + }, + { + "Name": "CREDIT_DEBIT_NUMBER", + "Score": 1.0 + } + } + +For more information, see `Personally Identifiable Information (PII) `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/create-dataset.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/create-dataset.rst new file mode 100644 index 000000000..31623ad9c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/create-dataset.rst @@ -0,0 +1,27 @@ +**To create a flywheel dataset** + +The following ``create-dataset`` example creates a dataset for a flywheel. This dataset will be used as additional training data as specified by the +``--dataset-type`` tag. :: + + aws comprehend create-dataset \ + --flywheel-arn arn:aws:comprehend:us-west-2:111122223333:flywheel/flywheel-entity \ + --dataset-name example-dataset \ + --dataset-type "TRAIN" \ + --input-data-config file://inputConfig.json + +Contents of ``file://inputConfig.json``:: + + { + "DataFormat": "COMPREHEND_CSV", + "DocumentClassifierInputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket/training-data.csv" + } + } + +Output:: + + { + "DatasetArn": "arn:aws:comprehend:us-west-2:111122223333:flywheel/flywheel-entity/dataset/example-dataset" + } + +For more information, see `Flywheel Overview `__ in *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/create-document-classifier.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/create-document-classifier.rst new file mode 100644 index 000000000..a9806d4f8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/create-document-classifier.rst @@ -0,0 +1,17 @@ +**To create a document classifier to categorize documents** + +The following ``create-document-classifier`` example begins the training process for a document classifier model. The training data file, ``training.csv``, is located at the ``--input-data-config`` tag. ``training.csv`` is a two column document where the labels, or, classifications are provided in the first column and the documents are provided in the second column. :: + + aws comprehend create-document-classifier \ + --document-classifier-name example-classifier \ + --data-access-arn arn:aws:comprehend:us-west-2:111122223333:pii-entities-detection-job/123456abcdeb0e11022f22a11EXAMPLE \ + --input-data-config "S3Uri=s3://amzn-s3-demo-bucket/" \ + --language-code en + +Output:: + + { + "DocumentClassifierArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-classifier" + } + +For more information, see `Custom Classification `__ in the *Amazon Comprehend Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/create-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/create-endpoint.rst new file mode 100644 index 000000000..ac027370b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/create-endpoint.rst @@ -0,0 +1,16 @@ +**To create an endpoint for a custom model** + +The following ``create-endpoint`` example creates an endpoint for synchronous inference for a previously trained custom model. :: + + aws comprehend create-endpoint \ + --endpoint-name example-classifier-endpoint-1 \ + --model-arn arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-classifier \ + --desired-inference-units 1 + +Output:: + + { + "EndpointArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier-endpoint/example-classifier-endpoint-1" + } + +For more information, see `Managing Amazon Comprehend endpoints `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/create-entity-recognizer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/create-entity-recognizer.rst new file mode 100644 index 000000000..010d48e49 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/create-entity-recognizer.rst @@ -0,0 +1,18 @@ +**To create a custom entity recognizer** + +The following ``create-entity-recognizer`` example begins the training process for a custom entity recognizer model. This example uses a CSV file containing training documents, ``raw_text.csv``, and a CSV entity list, ``entity_list.csv`` to train the model. +``entity-list.csv`` contains the following columns: text and type. :: + + aws comprehend create-entity-recognizer \ + --recognizer-name example-entity-recognizer + --data-access-role-arn arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role \ + --input-data-config "EntityTypes=[{Type=DEVICE}],Documents={S3Uri=s3://amzn-s3-demo-bucket/trainingdata/raw_text.csv},EntityList={S3Uri=s3://amzn-s3-demo-bucket/trainingdata/entity_list.csv}" + --language-code en + +Output:: + + { + "EntityRecognizerArn": "arn:aws:comprehend:us-west-2:111122223333:example-entity-recognizer/entityrecognizer1" + } + +For more information, see `Custom entity recognition `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/create-flywheel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/create-flywheel.rst new file mode 100644 index 000000000..adcaebc9e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/create-flywheel.rst @@ -0,0 +1,19 @@ +**To create a flywheel** + +The following ``create-flywheel`` example creates a flywheel to orchestrate the ongoing training of either a document classification or entity +recognition model. The flywheel in this example is created to manage an existing trained model specified by the ``--active-model-arn`` tag. +When the flywheel is created, a data lake is created at the ``--input-data-lake`` tag. :: + + aws comprehend create-flywheel \ + --flywheel-name example-flywheel \ + --active-model-arn arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-model/version/1 \ + --data-access-role-arn arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role \ + --data-lake-s3-uri "s3://amzn-s3-demo-bucket" + +Output:: + + { + "FlywheelArn": "arn:aws:comprehend:us-west-2:111122223333:flywheel/example-flywheel" + } + +For more information, see `Flywheel Overview `__ in *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/delete-document-classifier.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/delete-document-classifier.rst new file mode 100644 index 000000000..58b4c8c58 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/delete-document-classifier.rst @@ -0,0 +1,10 @@ +**To delete a custom document classifier** + +The following ``delete-document-classifier`` example deletes a custom document classifier model. :: + + aws comprehend delete-document-classifier \ + --document-classifier-arn arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-classifier-1 + +This command produces no output. + +For more information, see `Managing Amazon Comprehend endpoints `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/delete-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/delete-endpoint.rst new file mode 100644 index 000000000..b16586aa8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/delete-endpoint.rst @@ -0,0 +1,10 @@ +**To delete an endpoint for a custom model** + +The following ``delete-endpoint`` example deletes a model-specific endpoint. All endpoints must be deleted in order for the model to be deleted. :: + + aws comprehend delete-endpoint \ + --endpoint-arn arn:aws:comprehend:us-west-2:111122223333:document-classifier-endpoint/example-classifier-endpoint-1 + +This command produces no output. + +For more information, see `Managing Amazon Comprehend endpoints `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/delete-entity-recognizer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/delete-entity-recognizer.rst new file mode 100644 index 000000000..c3fda0aa5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/delete-entity-recognizer.rst @@ -0,0 +1,10 @@ +**To delete a custom entity recognizer model** + +The following ``delete-entity-recognizer`` example deletes a custom entity recognizer model. :: + + aws comprehend delete-entity-recognizer \ + --entity-recognizer-arn arn:aws:comprehend:us-west-2:111122223333:entity-recognizer/example-entity-recognizer-1 + +This command produces no output. + +For more information, see `Managing Amazon Comprehend endpoints `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/delete-flywheel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/delete-flywheel.rst new file mode 100644 index 000000000..7e0cf568f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/delete-flywheel.rst @@ -0,0 +1,10 @@ +**To delete a flywheel** + +The following ``delete-flywheel`` example deletes a flywheel. The data lake or the model associated with the flywheel is not deleted. :: + + aws comprehend delete-flywheel \ + --flywheel-arn arn:aws:comprehend:us-west-2:111122223333:flywheel/example-flywheel-1 + +This command produces no output. + +For more information, see `Flywheel overview `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/delete-resource-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/delete-resource-policy.rst new file mode 100644 index 000000000..03d158cac --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/delete-resource-policy.rst @@ -0,0 +1,10 @@ +**To delete a resource-based policy** + +The following ``delete-resource-policy`` example deletes a resource-based policy from an Amazon Comprehend resource. :: + + aws comprehend delete-resource-policy \ + --resource-arn arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-classifier-1/version/1 + +This command produces no output. + +For more information, see `Copying custom models between AWS accounts `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-dataset.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-dataset.rst new file mode 100644 index 000000000..bd779337c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-dataset.rst @@ -0,0 +1,21 @@ +**To describe a flywheel dataset** + +The following ``describe-dataset`` example gets the properties of a flywheel dataset. :: + + aws comprehend describe-dataset \ + --dataset-arn arn:aws:comprehend:us-west-2:111122223333:flywheel/flywheel-entity/dataset/example-dataset + +Output:: + + { + "DatasetProperties": { + "DatasetArn": "arn:aws:comprehend:us-west-2:111122223333:flywheel/flywheel-entity/dataset/example-dataset", + "DatasetName": "example-dataset", + "DatasetType": "TRAIN", + "DatasetS3Uri": "s3://amzn-s3-demo-bucket/flywheel-entity/schemaVersion=1/12345678A123456Z/datasets/example-dataset/20230616T203710Z/", + "Status": "CREATING", + "CreationTime": "2023-06-16T20:37:10.400000+00:00" + } + } + +For more information, see `Flywheel Overview `__ in *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-document-classification-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-document-classification-job.rst new file mode 100644 index 000000000..7c3d82ae1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-document-classification-job.rst @@ -0,0 +1,30 @@ +**To describe a document classification job** + +The following ``describe-document-classification-job`` example gets the properties of an asynchronous document classification job. :: + + aws comprehend describe-document-classification-job \ + --job-id 123456abcdeb0e11022f22a11EXAMPLE + +Output:: + + { + "DocumentClassificationJobProperties": { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:document-classification-job/123456abcdeb0e11022f22a11EXAMPLE", + "JobName": "exampleclassificationjob", + "JobStatus": "COMPLETED", + "SubmitTime": "2023-06-14T17:09:51.788000+00:00", + "EndTime": "2023-06-14T17:15:58.582000+00:00", + "DocumentClassifierArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/mymodel/version/1", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket/jobdata/", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/testfolder/111122223333-CLN-123456abcdeb0e11022f22a11EXAMPLE/output/output.tar.gz" + }, + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-servicerole" + } + } + +For more information, see `Custom Classification `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-document-classifier.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-document-classifier.rst new file mode 100644 index 000000000..297cedc20 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-document-classifier.rst @@ -0,0 +1,44 @@ +**To describe a document classifier** + +The following ``describe-document-classifier`` example gets the properties of a custom document classifier model. :: + + aws comprehend describe-document-classifier \ + --document-classifier-arn arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-classifier-1 + +Output:: + + { + "DocumentClassifierProperties": { + "DocumentClassifierArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-classifier-1", + "LanguageCode": "en", + "Status": "TRAINED", + "SubmitTime": "2023-06-13T19:04:15.735000+00:00", + "EndTime": "2023-06-13T19:42:31.752000+00:00", + "TrainingStartTime": "2023-06-13T19:08:20.114000+00:00", + "TrainingEndTime": "2023-06-13T19:41:35.080000+00:00", + "InputDataConfig": { + "DataFormat": "COMPREHEND_CSV", + "S3Uri": "s3://amzn-s3-demo-bucket/trainingdata" + }, + "OutputDataConfig": {}, + "ClassifierMetadata": { + "NumberOfLabels": 3, + "NumberOfTrainedDocuments": 5016, + "NumberOfTestDocuments": 557, + "EvaluationMetrics": { + "Accuracy": 0.9856, + "Precision": 0.9919, + "Recall": 0.9459, + "F1Score": 0.9673, + "MicroPrecision": 0.9856, + "MicroRecall": 0.9856, + "MicroF1Score": 0.9856, + "HammingLoss": 0.0144 + } + }, + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role", + "Mode": "MULTI_CLASS" + } + } + +For more information, see `Creating and managing custom models `__ in the *Amazon Comprehend Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-dominant-language-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-dominant-language-detection-job.rst new file mode 100644 index 000000000..ce0967550 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-dominant-language-detection-job.rst @@ -0,0 +1,28 @@ +**To describe a dominant language detection detection job.** + +The following ``describe-dominant-language-detection-job`` example gets the properties of an asynchronous dominant language detection job. :: + + aws comprehend describe-dominant-language-detection-job \ + --job-id 123456abcdeb0e11022f22a11EXAMPLE + +Output:: + + { + "DominantLanguageDetectionJobProperties": { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:dominant-language-detection-job/123456abcdeb0e11022f22a11EXAMPLE", + "JobName": "languageanalysis1", + "JobStatus": "IN_PROGRESS", + "SubmitTime": "2023-06-09T18:10:38.037000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/testfolder/111122223333-LANGUAGE-123456abcdeb0e11022f22a11EXAMPLE/output/output.tar.gz" + }, + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role" + } + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-endpoint.rst new file mode 100644 index 000000000..18fd40dac --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-endpoint.rst @@ -0,0 +1,23 @@ +**To describe a specific endpoint** + +The following ``describe-endpoint`` example gets the properties of a model-specific endpoint. :: + + aws comprehend describe-endpoint \ + --endpoint-arn arn:aws:comprehend:us-west-2:111122223333:document-classifier-endpoint/example-classifier-endpoint + +Output:: + + { + "EndpointProperties": { + "EndpointArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier-endpoint/example-classifier-endpoint, + "Status": "IN_SERVICE", + "ModelArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/exampleclassifier1", + "DesiredModelArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/exampleclassifier1", + "DesiredInferenceUnits": 1, + "CurrentInferenceUnits": 1, + "CreationTime": "2023-06-13T20:32:54.526000+00:00", + "LastModifiedTime": "2023-06-13T20:32:54.526000+00:00" + } + } + +For more information, see `Managing Amazon Comprehend endpoints `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-entities-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-entities-detection-job.rst new file mode 100644 index 000000000..4779df612 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-entities-detection-job.rst @@ -0,0 +1,30 @@ +**To describe an entities detection job** + +The following ``describe-entities-detection-job`` example gets the properties of an asynchronous entities detection job. :: + + aws comprehend describe-entities-detection-job \ + --job-id 123456abcdeb0e11022f22a11EXAMPLE + +Output:: + + { + "EntitiesDetectionJobProperties": { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:entities-detection-job/123456abcdeb0e11022f22a11EXAMPLE", + "JobName": "example-entity-detector", + "JobStatus": "COMPLETED", + "SubmitTime": "2023-06-08T21:30:15.323000+00:00", + "EndTime": "2023-06-08T21:40:23.509000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket/AsyncBatchJobs/", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket/thefolder/111122223333-NER-123456abcdeb0e11022f22a11EXAMPLE/output/output.tar.gz" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::12345678012:role/service-role/AmazonComprehendServiceRole-example-role" + } + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-entity-recognizer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-entity-recognizer.rst new file mode 100644 index 000000000..b5620908c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-entity-recognizer.rst @@ -0,0 +1,59 @@ +**To describe an entity recognizer** + +The following ``describe-entity-recognizer`` example gets the properties of a custom entity recognizer model. :: + + aws comprehend describe-entity-recognizer \ + entity-recognizer-arn arn:aws:comprehend:us-west-2:111122223333:entity-recognizer/business-recongizer-1/version/1 + +Output:: + + { + "EntityRecognizerProperties": { + "EntityRecognizerArn": "arn:aws:comprehend:us-west-2:111122223333:entity-recognizer/business-recongizer-1/version/1", + "LanguageCode": "en", + "Status": "TRAINED", + "SubmitTime": "2023-06-14T20:44:59.631000+00:00", + "EndTime": "2023-06-14T20:59:19.532000+00:00", + "TrainingStartTime": "2023-06-14T20:48:52.811000+00:00", + "TrainingEndTime": "2023-06-14T20:58:11.473000+00:00", + "InputDataConfig": { + "DataFormat": "COMPREHEND_CSV", + "EntityTypes": [ + { + "Type": "BUSINESS" + } + ], + "Documents": { + "S3Uri": "s3://amzn-s3-demo-bucket/trainingdata/dataset/", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "EntityList": { + "S3Uri": "s3://amzn-s3-demo-bucket/trainingdata/entity.csv" + } + }, + "RecognizerMetadata": { + "NumberOfTrainedDocuments": 1814, + "NumberOfTestDocuments": 486, + "EvaluationMetrics": { + "Precision": 100.0, + "Recall": 100.0, + "F1Score": 100.0 + }, + "EntityTypes": [ + { + "Type": "BUSINESS", + "EvaluationMetrics": { + "Precision": 100.0, + "Recall": 100.0, + "F1Score": 100.0 + }, + "NumberOfTrainMentions": 1520 + } + ] + }, + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role", + "VersionName": "1" + } + } + +For more information, see `Custom entity recognition `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-events-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-events-detection-job.rst new file mode 100644 index 000000000..9332d0afd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-events-detection-job.rst @@ -0,0 +1,36 @@ +**To describe an events detection job.** + +The following ``describe-events-detection-job`` example gets the properties of an asynchronous events detection job. :: + + aws comprehend describe-events-detection-job \ + --job-id 123456abcdeb0e11022f22a11EXAMPLE + +Output:: + + { + "EventsDetectionJobProperties": { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:events-detection-job/123456abcdeb0e11022f22a11EXAMPLE", + "JobName": "events_job_1", + "JobStatus": "IN_PROGRESS", + "SubmitTime": "2023-06-12T18:45:56.054000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket/EventsData", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/testfolder/111122223333-EVENTS-123456abcdeb0e11022f22a11EXAMPLE/output/" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role", + "TargetEventTypes": [ + "BANKRUPTCY", + "EMPLOYMENT", + "CORPORATE_ACQUISITION", + "CORPORATE_MERGER", + "INVESTMENT_GENERAL" + ] + } + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-flywheel-iteration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-flywheel-iteration.rst new file mode 100644 index 000000000..33d9c9e6e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-flywheel-iteration.rst @@ -0,0 +1,37 @@ +**To describe a flywheel iteration** + +The following ``describe-flywheel-iteration`` example gets the properties of a flywheel iteration. :: + + aws comprehend describe-flywheel-iteration \ + --flywheel-arn arn:aws:comprehend:us-west-2:111122223333:flywheel/example-flywheel \ + --flywheel-iteration-id 20232222AEXAMPLE + +Output:: + + { + "FlywheelIterationProperties": { + "FlywheelArn": "arn:aws:comprehend:us-west-2:111122223333:flywheel/flywheel-entity", + "FlywheelIterationId": "20232222AEXAMPLE", + "CreationTime": "2023-06-16T21:10:26.385000+00:00", + "EndTime": "2023-06-16T23:33:16.827000+00:00", + "Status": "COMPLETED", + "Message": "FULL_ITERATION: Flywheel iteration performed all functions successfully.", + "EvaluatedModelArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-classifier/version/1", + "EvaluatedModelMetrics": { + "AverageF1Score": 0.7742663922375772, + "AveragePrecision": 0.8287636394041166, + "AverageRecall": 0.7427084833645399, + "AverageAccuracy": 0.8795394154118689 + }, + "TrainedModelArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-classifier/version/Comprehend-Generated-v1-bb52d585", + "TrainedModelMetrics": { + "AverageF1Score": 0.9767700253081214, + "AveragePrecision": 0.9767700253081214, + "AverageRecall": 0.9767700253081214, + "AverageAccuracy": 0.9858281665190434 + }, + "EvaluationManifestS3Prefix": "s3://amzn-s3-demo-destination-bucket/flywheel-entity/schemaVersion=1/20230616T200543Z/evaluation/20230616T211026Z/" + } + } + +For more information, see `Flywheel overview `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-flywheel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-flywheel.rst new file mode 100644 index 000000000..741dec57b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-flywheel.rst @@ -0,0 +1,35 @@ +**To describe a flywheel** + +The following ``describe-flywheel`` example gets the properties of a flywheel. In this example, the model associated with the flywheel is a custom classifier model +that is trained to classify documents as either spam or nonspam, or, "ham". :: + + aws comprehend describe-flywheel \ + --flywheel-arn arn:aws:comprehend:us-west-2:111122223333:flywheel/example-flywheel + +Output:: + + { + "FlywheelProperties": { + "FlywheelArn": "arn:aws:comprehend:us-west-2:111122223333:flywheel/example-flywheel", + "ActiveModelArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-model/version/1", + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role", + "TaskConfig": { + "LanguageCode": "en", + "DocumentClassificationConfig": { + "Mode": "MULTI_CLASS", + "Labels": [ + "ham", + "spam" + ] + } + }, + "DataLakeS3Uri": "s3://amzn-s3-demo-bucket/example-flywheel/schemaVersion=1/20230616T200543Z/", + "DataSecurityConfig": {}, + "Status": "ACTIVE", + "ModelType": "DOCUMENT_CLASSIFIER", + "CreationTime": "2023-06-16T20:05:43.242000+00:00", + "LastModifiedTime": "2023-06-16T20:21:43.567000+00:00" + } + } + +For more information, see `Flywheel Overview `__ in *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-key-phrases-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-key-phrases-detection-job.rst new file mode 100644 index 000000000..e1d70f77d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-key-phrases-detection-job.rst @@ -0,0 +1,30 @@ +**To describe a key phrases detection job** + +The following ``describe-key-phrases-detection-job`` example gets the properties of an asynchronous key phrases detection job. :: + + aws comprehend describe-key-phrases-detection-job \ + --job-id 123456abcdeb0e11022f22a11EXAMPLE + +Output:: + + { + "KeyPhrasesDetectionJobProperties": { + "JobId": "69aa080c00fc68934a6a98f10EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:key-phrases-detection-job/69aa080c00fc68934a6a98f10EXAMPLE", + "JobName": "example-key-phrases-detection-job", + "JobStatus": "COMPLETED", + "SubmitTime": 1686606439.177, + "EndTime": 1686606806.157, + "InputDataConfig": { + "S3Uri": "s3://dereksbucket1001/EventsData/", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://dereksbucket1002/testfolder/111122223333-KP-69aa080c00fc68934a6a98f10EXAMPLE/output/output.tar.gz" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-testrole" + } + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-pii-entities-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-pii-entities-detection-job.rst new file mode 100644 index 000000000..cff63617a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-pii-entities-detection-job.rst @@ -0,0 +1,30 @@ +**To describe a PII entities detection job** + +The following ``describe-pii-entities-detection-job`` example gets the properties of an asynchronous pii entities detection job. :: + + aws comprehend describe-pii-entities-detection-job \ + --job-id 123456abcdeb0e11022f22a11EXAMPLE + +Output:: + + { + "PiiEntitiesDetectionJobProperties": { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:pii-entities-detection-job/123456abcdeb0e11022f22a11EXAMPLE", + "JobName": "example-pii-entities-job", + "JobStatus": "IN_PROGRESS", + "SubmitTime": "2023-06-08T21:30:15.323000+00:00", + "EndTime": "2023-06-08T21:40:23.509000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket/AsyncBatchJobs/", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket/thefolder/111122223333-NER-123456abcdeb0e11022f22a11EXAMPLE/output/output.tar.gz" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::12345678012:role/service-role/AmazonComprehendServiceRole-example-role" + } + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-resource-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-resource-policy.rst new file mode 100644 index 000000000..c2921684d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-resource-policy.rst @@ -0,0 +1,17 @@ +**To describe a resource policy attached to a model** + +The following ``describe-resource-policy`` example gets the properties of a resource-based policy attached to a model. :: + + aws comprehend describe-resource-policy \ + --resource-arn arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-classifier/version/1 + +Output:: + + { + "ResourcePolicy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::444455556666:root\"},\"Action\":\"comprehend:ImportModel\",\"Resource\":\"*\"}]}", + "CreationTime": "2023-06-19T18:44:26.028000+00:00", + "LastModifiedTime": "2023-06-19T18:53:02.002000+00:00", + "PolicyRevisionId": "baa675d069d07afaa2aa3106ae280f61" + } + +For more information, see `Copying custom models between AWS accounts `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-sentiment-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-sentiment-detection-job.rst new file mode 100644 index 000000000..c1c6204de --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-sentiment-detection-job.rst @@ -0,0 +1,29 @@ +**To describe a sentiment detection job** + +The following ``describe-sentiment-detection-job`` example gets the properties of an asynchronous sentiment detection job. :: + + aws comprehend describe-sentiment-detection-job \ + --job-id 123456abcdeb0e11022f22a11EXAMPLE + +Output:: + + { + "SentimentDetectionJobProperties": { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:sentiment-detection-job/123456abcdeb0e11022f22a11EXAMPLE", + "JobName": "movie_review_analysis", + "JobStatus": "IN_PROGRESS", + "SubmitTime": "2023-06-09T23:16:15.956000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket/MovieData", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/testfolder/111122223333-TS-123456abcdeb0e11022f22a11EXAMPLE/output/output.tar.gz" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-servicerole" + } + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-targeted-sentiment-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-targeted-sentiment-detection-job.rst new file mode 100644 index 000000000..8c81f8622 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-targeted-sentiment-detection-job.rst @@ -0,0 +1,29 @@ +**To describe a targeted sentiment detection job** + +The following ``describe-targeted-sentiment-detection-job`` example gets the properties of an asynchronous targeted sentiment detection job. :: + + aws comprehend describe-targeted-sentiment-detection-job \ + --job-id 123456abcdeb0e11022f22a11EXAMPLE + +Output:: + + { + "TargetedSentimentDetectionJobProperties": { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:targeted-sentiment-detection-job/123456abcdeb0e11022f22a11EXAMPLE", + "JobName": "movie_review_analysis", + "JobStatus": "IN_PROGRESS", + "SubmitTime": "2023-06-09T23:16:15.956000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket/MovieData", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/testfolder/111122223333-TS-123456abcdeb0e11022f22a11EXAMPLE/output/output.tar.gz" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-servicerole" + } + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-topics-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-topics-detection-job.rst new file mode 100644 index 000000000..3d8e2e1c8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/describe-topics-detection-job.rst @@ -0,0 +1,29 @@ +**To describe a topics detection job** + +The following ``describe-topics-detection-job`` example gets the properties of an asynchronous topics detection job. :: + + aws comprehend describe-topics-detection-job \ + --job-id 123456abcdeb0e11022f22a11EXAMPLE + +Output:: + + { + "TopicsDetectionJobProperties": { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:topics-detection-job/123456abcdeb0e11022f22a11EXAMPLE", + "JobName": "example_topics_detection", + "JobStatus": "IN_PROGRESS", + "SubmitTime": "2023-06-09T18:44:43.414000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/testfolder/111122223333-TOPICS-123456abcdeb0e11022f22a11EXAMPLE/output/output.tar.gz" + }, + "NumberOfTopics": 10, + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-examplerole" + } + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/detect-dominant-language.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/detect-dominant-language.rst new file mode 100644 index 000000000..6dabce6ca --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/detect-dominant-language.rst @@ -0,0 +1,19 @@ +**To detect the dominant language of input text** + +The following ``detect-dominant-language`` analyzes the input text and identifies the dominant language. The pre-trained model's confidence score is also output. :: + + aws comprehend detect-dominant-language \ + --text "It is a beautiful day in Seattle." + +Output:: + + { + "Languages": [ + { + "LanguageCode": "en", + "Score": 0.9877256155014038 + } + ] + } + +For more information, see `Dominant Language `__ in the *Amazon Comprehend Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/detect-entities.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/detect-entities.rst new file mode 100644 index 000000000..22a130a43 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/detect-entities.rst @@ -0,0 +1,104 @@ +**To detect named entities in input text** + +The following ``detect-entities`` example analyzes the input text and returns the named entities. The pre-trained model's confidence score +is also output for each prediction. :: + + aws comprehend detect-entities \ + --language-code en \ + --text "Hello Zhang Wei, I am John. Your AnyCompany Financial Services, LLC credit card \ + account 1111-XXXX-1111-XXXX has a minimum payment of $24.53 that is due by July 31st. Based on your autopay settings, \ + we will withdraw your payment on the due date from your bank account number XXXXXX1111 with the routing number XXXXX0000. \ + Customer feedback for Sunshine Spa, 123 Main St, Anywhere. Send comments to Alice at AnySpa@example.com." + +Output:: + + { + "Entities": [ + { + "Score": 0.9994556307792664, + "Type": "PERSON", + "Text": "Zhang Wei", + "BeginOffset": 6, + "EndOffset": 15 + }, + { + "Score": 0.9981022477149963, + "Type": "PERSON", + "Text": "John", + "BeginOffset": 22, + "EndOffset": 26 + }, + { + "Score": 0.9986887574195862, + "Type": "ORGANIZATION", + "Text": "AnyCompany Financial Services, LLC", + "BeginOffset": 33, + "EndOffset": 67 + }, + { + "Score": 0.9959119558334351, + "Type": "OTHER", + "Text": "1111-XXXX-1111-XXXX", + "BeginOffset": 88, + "EndOffset": 107 + }, + { + "Score": 0.9708039164543152, + "Type": "QUANTITY", + "Text": ".53", + "BeginOffset": 133, + "EndOffset": 136 + }, + { + "Score": 0.9987268447875977, + "Type": "DATE", + "Text": "July 31st", + "BeginOffset": 152, + "EndOffset": 161 + }, + { + "Score": 0.9858865737915039, + "Type": "OTHER", + "Text": "XXXXXX1111", + "BeginOffset": 271, + "EndOffset": 281 + }, + { + "Score": 0.9700471758842468, + "Type": "OTHER", + "Text": "XXXXX0000", + "BeginOffset": 306, + "EndOffset": 315 + }, + { + "Score": 0.9591118693351746, + "Type": "ORGANIZATION", + "Text": "Sunshine Spa", + "BeginOffset": 340, + "EndOffset": 352 + }, + { + "Score": 0.9797496795654297, + "Type": "LOCATION", + "Text": "123 Main St", + "BeginOffset": 354, + "EndOffset": 365 + }, + { + "Score": 0.994929313659668, + "Type": "PERSON", + "Text": "Alice", + "BeginOffset": 394, + "EndOffset": 399 + }, + { + "Score": 0.9949769377708435, + "Type": "OTHER", + "Text": "AnySpa@example.com", + "BeginOffset": 403, + "EndOffset": 418 + } + ] + } + +For more information, see `Entities `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/detect-key-phrases.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/detect-key-phrases.rst new file mode 100644 index 000000000..9d1c2cac1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/detect-key-phrases.rst @@ -0,0 +1,122 @@ +**To detect key phrases in input text** + +The following ``detect-key-phrases`` example analyzes the input text and identifies the key noun phrases. The pre-trained model's confidence score is also +output for each prediction. :: + + aws comprehend detect-key-phrases \ + --language-code en \ + --text "Hello Zhang Wei, I am John. Your AnyCompany Financial Services, LLC credit card \ + account 1111-XXXX-1111-XXXX has a minimum payment of $24.53 that is due by July 31st. Based on your autopay settings, \ + we will withdraw your payment on the due date from your bank account number XXXXXX1111 with the routing number XXXXX0000. \ + Customer feedback for Sunshine Spa, 123 Main St, Anywhere. Send comments to Alice at AnySpa@example.com." + +Output:: + + { + "KeyPhrases": [ + { + "Score": 0.8996376395225525, + "Text": "Zhang Wei", + "BeginOffset": 6, + "EndOffset": 15 + }, + { + "Score": 0.9992469549179077, + "Text": "John", + "BeginOffset": 22, + "EndOffset": 26 + }, + { + "Score": 0.988385021686554, + "Text": "Your AnyCompany Financial Services", + "BeginOffset": 28, + "EndOffset": 62 + }, + { + "Score": 0.8740853071212769, + "Text": "LLC credit card account 1111-XXXX-1111-XXXX", + "BeginOffset": 64, + "EndOffset": 107 + }, + { + "Score": 0.9999437928199768, + "Text": "a minimum payment", + "BeginOffset": 112, + "EndOffset": 129 + }, + { + "Score": 0.9998900890350342, + "Text": ".53", + "BeginOffset": 133, + "EndOffset": 136 + }, + { + "Score": 0.9979453086853027, + "Text": "July 31st", + "BeginOffset": 152, + "EndOffset": 161 + }, + { + "Score": 0.9983011484146118, + "Text": "your autopay settings", + "BeginOffset": 172, + "EndOffset": 193 + }, + { + "Score": 0.9996572136878967, + "Text": "your payment", + "BeginOffset": 211, + "EndOffset": 223 + }, + { + "Score": 0.9995037317276001, + "Text": "the due date", + "BeginOffset": 227, + "EndOffset": 239 + }, + { + "Score": 0.9702621698379517, + "Text": "your bank account number XXXXXX1111", + "BeginOffset": 245, + "EndOffset": 280 + }, + { + "Score": 0.9179925918579102, + "Text": "the routing number XXXXX0000.Customer feedback", + "BeginOffset": 286, + "EndOffset": 332 + }, + { + "Score": 0.9978160858154297, + "Text": "Sunshine Spa", + "BeginOffset": 337, + "EndOffset": 349 + }, + { + "Score": 0.9706913232803345, + "Text": "123 Main St", + "BeginOffset": 351, + "EndOffset": 362 + }, + { + "Score": 0.9941995143890381, + "Text": "comments", + "BeginOffset": 379, + "EndOffset": 387 + }, + { + "Score": 0.9759287238121033, + "Text": "Alice", + "BeginOffset": 391, + "EndOffset": 396 + }, + { + "Score": 0.8376792669296265, + "Text": "AnySpa@example.com", + "BeginOffset": 400, + "EndOffset": 415 + } + ] + } + +For more information, see `Key Phrases `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/detect-pii-entities.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/detect-pii-entities.rst new file mode 100644 index 000000000..145662505 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/detect-pii-entities.rst @@ -0,0 +1,74 @@ +**To detect pii entities in input text** + +The following ``detect-pii-entities`` example analyzes the input text and identifies entities that contain personally identifiable information (PII). The pre-trained model's +confidence score is also output for each prediction. :: + + aws comprehend detect-pii-entities \ + --language-code en \ + --text "Hello Zhang Wei, I am John. Your AnyCompany Financial Services, LLC credit card \ + account 1111-XXXX-1111-XXXX has a minimum payment of $24.53 that is due by July 31st. Based on your autopay settings, \ + we will withdraw your payment on the due date from your bank account number XXXXXX1111 with the routing number XXXXX0000. \ + Customer feedback for Sunshine Spa, 123 Main St, Anywhere. Send comments to Alice at AnySpa@example.com." + +Output:: + + { + "Entities": [ + { + "Score": 0.9998322129249573, + "Type": "NAME", + "BeginOffset": 6, + "EndOffset": 15 + }, + { + "Score": 0.9998878240585327, + "Type": "NAME", + "BeginOffset": 22, + "EndOffset": 26 + }, + { + "Score": 0.9994089603424072, + "Type": "CREDIT_DEBIT_NUMBER", + "BeginOffset": 88, + "EndOffset": 107 + }, + { + "Score": 0.9999760985374451, + "Type": "DATE_TIME", + "BeginOffset": 152, + "EndOffset": 161 + }, + { + "Score": 0.9999449253082275, + "Type": "BANK_ACCOUNT_NUMBER", + "BeginOffset": 271, + "EndOffset": 281 + }, + { + "Score": 0.9999847412109375, + "Type": "BANK_ROUTING", + "BeginOffset": 306, + "EndOffset": 315 + }, + { + "Score": 0.999925434589386, + "Type": "ADDRESS", + "BeginOffset": 354, + "EndOffset": 365 + }, + { + "Score": 0.9989161491394043, + "Type": "NAME", + "BeginOffset": 394, + "EndOffset": 399 + }, + { + "Score": 0.9994171857833862, + "Type": "EMAIL", + "BeginOffset": 403, + "EndOffset": 418 + } + ] + } + +For more information, see `Personally Identifiable Information (PII) `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/detect-sentiment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/detect-sentiment.rst new file mode 100644 index 000000000..e1d1a1d79 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/detect-sentiment.rst @@ -0,0 +1,22 @@ +**To detect the sentiment of an input text** + +The following ``detect-sentiment`` example analyzes the input text and returns an inference of the prevailing sentiment (``POSITIVE``, ``NEUTRAL``, ``MIXED``, or ``NEGATIVE``). :: + + aws comprehend detect-sentiment \ + --language-code en \ + --text "It is a beautiful day in Seattle" + +Output:: + + { + "Sentiment": "POSITIVE", + "SentimentScore": { + "Positive": 0.9976957440376282, + "Negative": 9.653854067437351e-05, + "Neutral": 0.002169104292988777, + "Mixed": 3.857641786453314e-05 + } + } + + +For more information, see `Sentiment `__ in the *Amazon Comprehend Developer Guide* diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/detect-syntax.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/detect-syntax.rst new file mode 100644 index 000000000..1c0f61750 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/detect-syntax.rst @@ -0,0 +1,87 @@ +**To detect the parts of speech in an input text** + +The following ``detect-syntax`` example analyzes the syntax of the input text and returns the different parts of speech. +The pre-trained model's confidence score is also output for each prediction. :: + + aws comprehend detect-syntax \ + --language-code en \ + --text "It is a beautiful day in Seattle." + +Output:: + + { + "SyntaxTokens": [ + { + "TokenId": 1, + "Text": "It", + "BeginOffset": 0, + "EndOffset": 2, + "PartOfSpeech": { + "Tag": "PRON", + "Score": 0.9999740719795227 + } + }, + { + "TokenId": 2, + "Text": "is", + "BeginOffset": 3, + "EndOffset": 5, + "PartOfSpeech": { + "Tag": "VERB", + "Score": 0.999901294708252 + } + }, + { + "TokenId": 3, + "Text": "a", + "BeginOffset": 6, + "EndOffset": 7, + "PartOfSpeech": { + "Tag": "DET", + "Score": 0.9999938607215881 + } + }, + { + "TokenId": 4, + "Text": "beautiful", + "BeginOffset": 8, + "EndOffset": 17, + "PartOfSpeech": { + "Tag": "ADJ", + "Score": 0.9987351894378662 + } + }, + { + "TokenId": 5, + "Text": "day", + "BeginOffset": 18, + "EndOffset": 21, + "PartOfSpeech": { + "Tag": "NOUN", + "Score": 0.9999796748161316 + } + }, + { + "TokenId": 6, + "Text": "in", + "BeginOffset": 22, + "EndOffset": 24, + "PartOfSpeech": { + "Tag": "ADP", + "Score": 0.9998047947883606 + } + }, + { + "TokenId": 7, + "Text": "Seattle", + "BeginOffset": 25, + "EndOffset": 32, + "PartOfSpeech": { + "Tag": "PROPN", + "Score": 0.9940530061721802 + } + } + ] + } + +For more information, see `Syntax Analysis `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/detect-targeted-sentiment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/detect-targeted-sentiment.rst new file mode 100644 index 000000000..7100b7dae --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/detect-targeted-sentiment.rst @@ -0,0 +1,114 @@ +**To detect the targeted sentiment of named entities in an input text** + +The following ``detect-targeted-sentiment`` example analyzes the input text and returns the named entities in addition to the targeted sentiment associated with each entity. +The pre-trained models confidence score for each prediction is also output. :: + + aws comprehend detect-targeted-sentiment \ + --language-code en \ + --text "I do not enjoy January because it is too cold but August is the perfect temperature" + +Output:: + + { + "Entities": [ + { + "DescriptiveMentionIndex": [ + 0 + ], + "Mentions": [ + { + "Score": 0.9999979734420776, + "GroupScore": 1.0, + "Text": "I", + "Type": "PERSON", + "MentionSentiment": { + "Sentiment": "NEUTRAL", + "SentimentScore": { + "Positive": 0.0, + "Negative": 0.0, + "Neutral": 1.0, + "Mixed": 0.0 + } + }, + "BeginOffset": 0, + "EndOffset": 1 + } + ] + }, + { + "DescriptiveMentionIndex": [ + 0 + ], + "Mentions": [ + { + "Score": 0.9638869762420654, + "GroupScore": 1.0, + "Text": "January", + "Type": "DATE", + "MentionSentiment": { + "Sentiment": "NEGATIVE", + "SentimentScore": { + "Positive": 0.0031610000878572464, + "Negative": 0.9967250227928162, + "Neutral": 0.00011100000119768083, + "Mixed": 1.9999999949504854e-06 + } + }, + "BeginOffset": 15, + "EndOffset": 22 + } + ] + }, + { + "DescriptiveMentionIndex": [ + 0 + ], + "Mentions": [ + { + { + "Score": 0.9664419889450073, + "GroupScore": 1.0, + "Text": "August", + "Type": "DATE", + "MentionSentiment": { + "Sentiment": "POSITIVE", + "SentimentScore": { + "Positive": 0.9999549984931946, + "Negative": 3.999999989900971e-06, + "Neutral": 4.099999932805076e-05, + "Mixed": 0.0 + } + }, + "BeginOffset": 50, + "EndOffset": 56 + } + ] + }, + { + "DescriptiveMentionIndex": [ + 0 + ], + "Mentions": [ + { + "Score": 0.9803199768066406, + "GroupScore": 1.0, + "Text": "temperature", + "Type": "ATTRIBUTE", + "MentionSentiment": { + "Sentiment": "POSITIVE", + "SentimentScore": { + "Positive": 1.0, + "Negative": 0.0, + "Neutral": 0.0, + "Mixed": 0.0 + } + }, + "BeginOffset": 77, + "EndOffset": 88 + } + ] + } + ] + } + +For more information, see `Targeted Sentiment `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/import-model.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/import-model.rst new file mode 100644 index 000000000..f9295979f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/import-model.rst @@ -0,0 +1,15 @@ +**To import a model** + +The following ``import-model`` example imports a model from a different AWS account. The document classifier model in account ``444455556666`` +has a resource-based policy allowing account ``111122223333`` to import the model. :: + + aws comprehend import-model \ + --source-model-arn arn:aws:comprehend:us-west-2:444455556666:document-classifier/example-classifier + +Output:: + + { + "ModelArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-classifier" + } + +For more information, see `Copying custom models between AWS accounts `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-datasets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-datasets.rst new file mode 100644 index 000000000..b8d890e54 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-datasets.rst @@ -0,0 +1,33 @@ +**To list all flywheel datasets** + +The following ``list-datasets`` example lists all datasets associated with a flywheel. :: + + aws comprehend list-datasets \ + --flywheel-arn arn:aws:comprehend:us-west-2:111122223333:flywheel/flywheel-entity + +Output:: + + { + "DatasetPropertiesList": [ + { + "DatasetArn": "arn:aws:comprehend:us-west-2:111122223333:flywheel/flywheel-entity/dataset/example-dataset-1", + "DatasetName": "example-dataset-1", + "DatasetType": "TRAIN", + "DatasetS3Uri": "s3://amzn-s3-demo-bucket/flywheel-entity/schemaVersion=1/20230616T200543Z/datasets/example-dataset-1/20230616T203710Z/", + "Status": "CREATING", + "CreationTime": "2023-06-16T20:37:10.400000+00:00" + }, + { + "DatasetArn": "arn:aws:comprehend:us-west-2:111122223333:flywheel/flywheel-entity/dataset/example-dataset-2", + "DatasetName": "example-dataset-2", + "DatasetType": "TRAIN", + "DatasetS3Uri": "s3://amzn-s3-demo-bucket/flywheel-entity/schemaVersion=1/20230616T200543Z/datasets/example-dataset-2/20230616T200607Z/", + "Description": "TRAIN Dataset created by Flywheel creation.", + "Status": "COMPLETED", + "NumberOfDocuments": 5572, + "CreationTime": "2023-06-16T20:06:07.722000+00:00" + } + ] + } + +For more information, see `Flywheel Overview `__ in *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-document-classification-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-document-classification-jobs.rst new file mode 100644 index 000000000..938cade03 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-document-classification-jobs.rst @@ -0,0 +1,48 @@ +**To list of all document classification jobs** + +The following ``list-document-classification-jobs`` example lists all document classification jobs. :: + + aws comprehend list-document-classification-jobs + +Output:: + + { + "DocumentClassificationJobPropertiesList": [ + { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:1234567890101:document-classification-job/123456abcdeb0e11022f22a11EXAMPLE", + "JobName": "exampleclassificationjob", + "JobStatus": "COMPLETED", + "SubmitTime": "2023-06-14T17:09:51.788000+00:00", + "EndTime": "2023-06-14T17:15:58.582000+00:00", + "DocumentClassifierArn": "arn:aws:comprehend:us-west-2:1234567890101:document-classifier/mymodel/version/12", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket/jobdata/", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/thefolder/1234567890101-CLN-e758dd56b824aa717ceab551f11749fb/output/output.tar.gz" + }, + "DataAccessRoleArn": "arn:aws:iam::1234567890101:role/service-role/AmazonComprehendServiceRole-example-role" + }, + { + "JobId": "123456abcdeb0e11022f22a1EXAMPLE2", + "JobArn": "arn:aws:comprehend:us-west-2:1234567890101:document-classification-job/123456abcdeb0e11022f22a1EXAMPLE2", + "JobName": "exampleclassificationjob2", + "JobStatus": "COMPLETED", + "SubmitTime": "2023-06-14T17:22:39.829000+00:00", + "EndTime": "2023-06-14T17:28:46.107000+00:00", + "DocumentClassifierArn": "arn:aws:comprehend:us-west-2:1234567890101:document-classifier/mymodel/version/12", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket/jobdata/", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/thefolder/1234567890101-CLN-123456abcdeb0e11022f22a1EXAMPLE2/output/output.tar.gz" + }, + "DataAccessRoleArn": "arn:aws:iam::1234567890101:role/service-role/AmazonComprehendServiceRole-example-role" + } + ] + } + +For more information, see `Custom Classification `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-document-classifier-summaries.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-document-classifier-summaries.rst new file mode 100644 index 000000000..289963f05 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-document-classifier-summaries.rst @@ -0,0 +1,28 @@ +**To list the summaries of all created document classifiers** + +The following ``list-document-classifier-summaries`` example lists all created document classifier summaries. :: + + aws comprehend list-document-classifier-summaries + +Output:: + + { + "DocumentClassifierSummariesList": [ + { + "DocumentClassifierName": "example-classifier-1", + "NumberOfVersions": 1, + "LatestVersionCreatedAt": "2023-06-13T22:07:59.825000+00:00", + "LatestVersionName": "1", + "LatestVersionStatus": "TRAINED" + }, + { + "DocumentClassifierName": "example-classifier-2", + "NumberOfVersions": 2, + "LatestVersionCreatedAt": "2023-06-13T21:54:59.589000+00:00", + "LatestVersionName": "2", + "LatestVersionStatus": "TRAINED" + } + ] + } + +For more information, see `Creating and managing custom models `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-document-classifiers.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-document-classifiers.rst new file mode 100644 index 000000000..0c4e57b0c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-document-classifiers.rst @@ -0,0 +1,58 @@ +**To list of all document classifiers** + +The following ``list-document-classifiers`` example lists all trained and in-training document classifier models. :: + + aws comprehend list-document-classifiers + +Output:: + + { + "DocumentClassifierPropertiesList": [ + { + "DocumentClassifierArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/exampleclassifier1", + "LanguageCode": "en", + "Status": "TRAINED", + "SubmitTime": "2023-06-13T19:04:15.735000+00:00", + "EndTime": "2023-06-13T19:42:31.752000+00:00", + "TrainingStartTime": "2023-06-13T19:08:20.114000+00:00", + "TrainingEndTime": "2023-06-13T19:41:35.080000+00:00", + "InputDataConfig": { + "DataFormat": "COMPREHEND_CSV", + "S3Uri": "s3://amzn-s3-demo-bucket/trainingdata" + }, + "OutputDataConfig": {}, + "ClassifierMetadata": { + "NumberOfLabels": 3, + "NumberOfTrainedDocuments": 5016, + "NumberOfTestDocuments": 557, + "EvaluationMetrics": { + "Accuracy": 0.9856, + "Precision": 0.9919, + "Recall": 0.9459, + "F1Score": 0.9673, + "MicroPrecision": 0.9856, + "MicroRecall": 0.9856, + "MicroF1Score": 0.9856, + "HammingLoss": 0.0144 + } + }, + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-testorle", + "Mode": "MULTI_CLASS" + }, + { + "DocumentClassifierArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/exampleclassifier2", + "LanguageCode": "en", + "Status": "TRAINING", + "SubmitTime": "2023-06-13T21:20:28.690000+00:00", + "InputDataConfig": { + "DataFormat": "COMPREHEND_CSV", + "S3Uri": "s3://amzn-s3-demo-bucket/trainingdata" + }, + "OutputDataConfig": {}, + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-testorle", + "Mode": "MULTI_CLASS" + } + ] + } + +For more information, see `Creating and managing custom models `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-dominant-language-detection-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-dominant-language-detection-jobs.rst new file mode 100644 index 000000000..dd1a3e1da --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-dominant-language-detection-jobs.rst @@ -0,0 +1,46 @@ +**To list all dominant language detection jobs** + +The following ``list-dominant-language-detection-jobs`` example lists all in-progress and completed asynchronous dominant language detection jobs. :: + + aws comprehend list-dominant-language-detection-jobs + +Output:: + + { + "DominantLanguageDetectionJobPropertiesList": [ + { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:dominant-language-detection-job/123456abcdeb0e11022f22a11EXAMPLE", + "JobName": "languageanalysis1", + "JobStatus": "COMPLETED", + "SubmitTime": "2023-06-09T18:10:38.037000+00:00", + "EndTime": "2023-06-09T18:18:45.498000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/testfolder/111122223333-LANGUAGE-123456abcdeb0e11022f22a11EXAMPLE/output/output.tar.gz" + }, + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role" + }, + { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:dominant-language-detection-job/123456abcdeb0e11022f22a11EXAMPLE", + "JobName": "languageanalysis2", + "JobStatus": "STOPPED", + "SubmitTime": "2023-06-09T18:16:33.690000+00:00", + "EndTime": "2023-06-09T18:24:40.608000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/testfolder/111122223333-LANGUAGE-123456abcdeb0e11022f22a11EXAMPLE/output/output.tar.gz" + }, + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role" + } + ] + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-endpoints.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-endpoints.rst new file mode 100644 index 000000000..573e46e62 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-endpoints.rst @@ -0,0 +1,34 @@ +**To list of all endpoints** + +The following ``list-endpoints`` example lists all active model-specific endpoints. :: + + aws comprehend list-endpoints + +Output:: + + { + "EndpointPropertiesList": [ + { + "EndpointArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier-endpoint/ExampleClassifierEndpoint", + "Status": "IN_SERVICE", + "ModelArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/exampleclassifier1", + "DesiredModelArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/exampleclassifier1", + "DesiredInferenceUnits": 1, + "CurrentInferenceUnits": 1, + "CreationTime": "2023-06-13T20:32:54.526000+00:00", + "LastModifiedTime": "2023-06-13T20:32:54.526000+00:00" + }, + { + "EndpointArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier-endpoint/ExampleClassifierEndpoint2", + "Status": "IN_SERVICE", + "ModelArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/exampleclassifier2", + "DesiredModelArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/exampleclassifier2", + "DesiredInferenceUnits": 1, + "CurrentInferenceUnits": 1, + "CreationTime": "2023-06-13T20:32:54.526000+00:00", + "LastModifiedTime": "2023-06-13T20:32:54.526000+00:00" + } + ] + } + +For more information, see `Managing Amazon Comprehend endpoints `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-entities-detection-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-entities-detection-jobs.rst new file mode 100644 index 000000000..5640bcee8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-entities-detection-jobs.rst @@ -0,0 +1,65 @@ +**To list all entities detection jobs** + +The following ``list-entities-detection-jobs`` example lists all asynchronous entities detection jobs. :: + + aws comprehend list-entities-detection-jobs + +Output:: + + { + "EntitiesDetectionJobPropertiesList": [ + { + "JobId": "468af39c28ab45b83eb0c4ab9EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:entities-detection-job/468af39c28ab45b83eb0c4ab9EXAMPLE", + "JobName": "example-entities-detection", + "JobStatus": "COMPLETED", + "SubmitTime": "2023-06-08T20:57:46.476000+00:00", + "EndTime": "2023-06-08T21:05:53.718000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket/AsyncBatchJobs/", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/thefolder/111122223333-NER-468af39c28ab45b83eb0c4ab9EXAMPLE/output/output.tar.gz" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role" + }, + { + "JobId": "809691caeaab0e71406f80a28EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:entities-detection-job/809691caeaab0e71406f80a28EXAMPLE", + "JobName": "example-entities-detection-2", + "JobStatus": "COMPLETED", + "SubmitTime": "2023-06-08T21:30:15.323000+00:00", + "EndTime": "2023-06-08T21:40:23.509000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket/AsyncBatchJobs/", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/thefolder/111122223333-NER-809691caeaab0e71406f80a28EXAMPLE/output/output.tar.gz" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role" + }, + { + "JobId": "e00597c36b448b91d70dea165EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:entities-detection-job/e00597c36b448b91d70dea165EXAMPLE", + "JobName": "example-entities-detection-3", + "JobStatus": "STOPPED", + "SubmitTime": "2023-06-08T22:19:28.528000+00:00", + "EndTime": "2023-06-08T22:27:33.991000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket/AsyncBatchJobs/", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/thefolder/111122223333-NER-e00597c36b448b91d70dea165EXAMPLE/output/output.tar.gz" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role" + } + ] + } + +For more information, see `Entities `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-entity-recognizer-summaries.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-entity-recognizer-summaries.rst new file mode 100644 index 000000000..5ca9011e0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-entity-recognizer-summaries.rst @@ -0,0 +1,35 @@ +**To list of summaries for all created entity recognizers** + +The following ``list-entity-recognizer-summaries`` example lists all entity recognizer summaries. :: + + aws comprehend list-entity-recognizer-summaries + +Output:: + + { + "EntityRecognizerSummariesList": [ + { + "RecognizerName": "entity-recognizer-3", + "NumberOfVersions": 2, + "LatestVersionCreatedAt": "2023-06-15T23:15:07.621000+00:00", + "LatestVersionName": "2", + "LatestVersionStatus": "STOP_REQUESTED" + }, + { + "RecognizerName": "entity-recognizer-2", + "NumberOfVersions": 1, + "LatestVersionCreatedAt": "2023-06-14T22:55:27.805000+00:00", + "LatestVersionName": "2" + "LatestVersionStatus": "TRAINED" + }, + { + "RecognizerName": "entity-recognizer-1", + "NumberOfVersions": 1, + "LatestVersionCreatedAt": "2023-06-14T20:44:59.631000+00:00", + "LatestVersionName": "1", + "LatestVersionStatus": "TRAINED" + } + ] + } + +For more information, see `Custom entity recognition `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-entity-recognizers.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-entity-recognizers.rst new file mode 100644 index 000000000..048128354 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-entity-recognizers.rst @@ -0,0 +1,105 @@ +**To list of all custom entity recognizers** + +The following ``list-entity-recognizers`` example lists all created custom entity recognizers. :: + + aws comprehend list-entity-recognizers + +Output:: + + { + "EntityRecognizerPropertiesList": [ + { + "EntityRecognizerArn": "arn:aws:comprehend:us-west-2:111122223333:entity-recognizer/EntityRecognizer/version/1", + "LanguageCode": "en", + "Status": "TRAINED", + "SubmitTime": "2023-06-14T20:44:59.631000+00:00", + "EndTime": "2023-06-14T20:59:19.532000+00:00", + "TrainingStartTime": "2023-06-14T20:48:52.811000+00:00", + "TrainingEndTime": "2023-06-14T20:58:11.473000+00:00", + "InputDataConfig": { + "DataFormat": "COMPREHEND_CSV", + "EntityTypes": [ + { + "Type": "BUSINESS" + } + ], + "Documents": { + "S3Uri": "s3://amzn-s3-demo-bucket/trainingdata/dataset/", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "EntityList": { + "S3Uri": "s3://amzn-s3-demo-bucket/trainingdata/entity.csv" + } + }, + "RecognizerMetadata": { + "NumberOfTrainedDocuments": 1814, + "NumberOfTestDocuments": 486, + "EvaluationMetrics": { + "Precision": 100.0, + "Recall": 100.0, + "F1Score": 100.0 + }, + "EntityTypes": [ + { + "Type": "BUSINESS", + "EvaluationMetrics": { + "Precision": 100.0, + "Recall": 100.0, + "F1Score": 100.0 + }, + "NumberOfTrainMentions": 1520 + } + ] + }, + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-servicerole", + "VersionName": "1" + }, + { + "EntityRecognizerArn": "arn:aws:comprehend:us-west-2:111122223333:entity-recognizer/entityrecognizer3", + "LanguageCode": "en", + "Status": "TRAINED", + "SubmitTime": "2023-06-14T22:57:51.056000+00:00", + "EndTime": "2023-06-14T23:14:13.894000+00:00", + "TrainingStartTime": "2023-06-14T23:01:33.984000+00:00", + "TrainingEndTime": "2023-06-14T23:13:02.984000+00:00", + "InputDataConfig": { + "DataFormat": "COMPREHEND_CSV", + "EntityTypes": [ + { + "Type": "DEVICE" + } + ], + "Documents": { + "S3Uri": "s3://amzn-s3-demo-bucket/trainingdata/raw_txt.csv", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "EntityList": { + "S3Uri": "s3://amzn-s3-demo-bucket/trainingdata/entity_list.csv" + } + }, + "RecognizerMetadata": { + "NumberOfTrainedDocuments": 4616, + "NumberOfTestDocuments": 3489, + "EvaluationMetrics": { + "Precision": 98.54227405247813, + "Recall": 100.0, + "F1Score": 99.26578560939794 + }, + "EntityTypes": [ + { + "Type": "DEVICE", + "EvaluationMetrics": { + "Precision": 98.54227405247813, + "Recall": 100.0, + "F1Score": 99.26578560939794 + }, + "NumberOfTrainMentions": 2764 + } + ] + }, + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-servicerole" + } + ] + } + +For more information, see `Custom entity recognition `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-events-detection-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-events-detection-jobs.rst new file mode 100644 index 000000000..41218860b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-events-detection-jobs.rst @@ -0,0 +1,62 @@ +**To list all events detection jobs** + +The following ``list-events-detection-jobs`` example lists all asynchronous events detection jobs. :: + + aws comprehend list-events-detection-jobs + +Output:: + + { + "EventsDetectionJobPropertiesList": [ + { + "JobId": "aa9593f9203e84f3ef032ce18EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:1111222233333:events-detection-job/aa9593f9203e84f3ef032ce18EXAMPLE", + "JobName": "events_job_1", + "JobStatus": "COMPLETED", + "SubmitTime": "2023-06-12T19:14:57.751000+00:00", + "EndTime": "2023-06-12T19:21:04.962000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-source-bucket/EventsData/", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/testfolder/1111222233333-EVENTS-aa9593f9203e84f3ef032ce18EXAMPLE/output/" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::1111222233333:role/service-role/AmazonComprehendServiceRole-example-role", + "TargetEventTypes": [ + "BANKRUPTCY", + "EMPLOYMENT", + "CORPORATE_ACQUISITION", + "CORPORATE_MERGER", + "INVESTMENT_GENERAL" + ] + }, + { + "JobId": "4a990a2f7e82adfca6e171135EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:1111222233333:events-detection-job/4a990a2f7e82adfca6e171135EXAMPLE", + "JobName": "events_job_2", + "JobStatus": "COMPLETED", + "SubmitTime": "2023-06-12T19:55:43.702000+00:00", + "EndTime": "2023-06-12T20:03:49.893000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-source-bucket/EventsData/", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/testfolder/1111222233333-EVENTS-4a990a2f7e82adfca6e171135EXAMPLE/output/" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::1111222233333:role/service-role/AmazonComprehendServiceRole-example-role", + "TargetEventTypes": [ + "BANKRUPTCY", + "EMPLOYMENT", + "CORPORATE_ACQUISITION", + "CORPORATE_MERGER", + "INVESTMENT_GENERAL" + ] + } + ] + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-flywheel-iteration-history.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-flywheel-iteration-history.rst new file mode 100644 index 000000000..778edeed4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-flywheel-iteration-history.rst @@ -0,0 +1,49 @@ +**To list all flywheel iteration history** + +The following ``list-flywheel-iteration-history`` example lists all iterations of a flywheel. :: + + aws comprehend list-flywheel-iteration-history + --flywheel-arn arn:aws:comprehend:us-west-2:111122223333:flywheel/example-flywheel + +Output:: + + { + "FlywheelIterationPropertiesList": [ + { + "FlywheelArn": "arn:aws:comprehend:us-west-2:111122223333:flywheel/example-flywheel", + "FlywheelIterationId": "20230619TEXAMPLE", + "CreationTime": "2023-06-19T04:00:32.594000+00:00", + "EndTime": "2023-06-19T04:00:49.248000+00:00", + "Status": "COMPLETED", + "Message": "FULL_ITERATION: Flywheel iteration performed all functions successfully.", + "EvaluatedModelArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-classifier/version/1", + "EvaluatedModelMetrics": { + "AverageF1Score": 0.7742663922375772, + "AverageF1Score": 0.9876464664646313, + "AveragePrecision": 0.9800000253081214, + "AverageRecall": 0.9445600253081214, + "AverageAccuracy": 0.9997281665190434 + }, + "EvaluationManifestS3Prefix": "s3://amzn-s3-demo-bucket/example-flywheel/schemaVersion=1/20230619TEXAMPLE/evaluation/20230619TEXAMPLE/" + }, + { + "FlywheelArn": "arn:aws:comprehend:us-west-2:111122223333:flywheel/example-flywheel-2", + "FlywheelIterationId": "20230616TEXAMPLE", + "CreationTime": "2023-06-16T21:10:26.385000+00:00", + "EndTime": "2023-06-16T23:33:16.827000+00:00", + "Status": "COMPLETED", + "Message": "FULL_ITERATION: Flywheel iteration performed all functions successfully.", + "EvaluatedModelArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/spamvshamclassify/version/1", + "EvaluatedModelMetrics": { + "AverageF1Score": 0.7742663922375772, + "AverageF1Score": 0.9767700253081214, + "AveragePrecision": 0.9767700253081214, + "AverageRecall": 0.9767700253081214, + "AverageAccuracy": 0.9858281665190434 + }, + "EvaluationManifestS3Prefix": "s3://amzn-s3-demo-bucket/example-flywheel-2/schemaVersion=1/20230616TEXAMPLE/evaluation/20230616TEXAMPLE/" + } + ] + } + +For more information, see `Flywheel overview `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-flywheels.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-flywheels.rst new file mode 100644 index 000000000..5ec631641 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-flywheels.rst @@ -0,0 +1,34 @@ +**To list all flywheels** + +The following ``list-flywheels`` example lists all created flywheels. :: + + aws comprehend list-flywheels + +Output:: + + { + "FlywheelSummaryList": [ + { + "FlywheelArn": "arn:aws:comprehend:us-west-2:111122223333:flywheel/example-flywheel-1", + "ActiveModelArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/exampleclassifier/version/1", + "DataLakeS3Uri": "s3://amzn-s3-demo-bucket/example-flywheel-1/schemaVersion=1/20230616T200543Z/", + "Status": "ACTIVE", + "ModelType": "DOCUMENT_CLASSIFIER", + "CreationTime": "2023-06-16T20:05:43.242000+00:00", + "LastModifiedTime": "2023-06-19T04:00:43.027000+00:00", + "LatestFlywheelIteration": "20230619T040032Z" + }, + { + "FlywheelArn": "arn:aws:comprehend:us-west-2:111122223333:flywheel/example-flywheel-2", + "ActiveModelArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/exampleclassifier2/version/1", + "DataLakeS3Uri": "s3://amzn-s3-demo-bucket/example-flywheel-2/schemaVersion=1/20220616T200543Z/", + "Status": "ACTIVE", + "ModelType": "DOCUMENT_CLASSIFIER", + "CreationTime": "2022-06-16T20:05:43.242000+00:00", + "LastModifiedTime": "2022-06-19T04:00:43.027000+00:00", + "LatestFlywheelIteration": "20220619T040032Z" + } + ] + } + +For more information, see `Flywheel overview `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-key-phrases-detection-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-key-phrases-detection-jobs.rst new file mode 100644 index 000000000..8a5d4bbbe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-key-phrases-detection-jobs.rst @@ -0,0 +1,66 @@ +**To list all key phrases detection jobs** + +The following ``list-key-phrases-detection-jobs`` example lists all in-progress and completed asynchronous key phrases detection jobs. :: + + aws comprehend list-key-phrases-detection-jobs + +Output:: + + { + "KeyPhrasesDetectionJobPropertiesList": [ + { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:key-phrases-detection-job/123456abcdeb0e11022f22a11EXAMPLE", + "JobName": "keyphrasesanalysis1", + "JobStatus": "COMPLETED", + "SubmitTime": "2023-06-08T22:31:43.767000+00:00", + "EndTime": "2023-06-08T22:39:52.565000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-source-bucket/AsyncBatchJobs/", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/testfolder/111122223333-KP-123456abcdeb0e11022f22a11EXAMPLE/output/output.tar.gz" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role" + }, + { + "JobId": "123456abcdeb0e11022f22a33EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:key-phrases-detection-job/123456abcdeb0e11022f22a33EXAMPLE", + "JobName": "keyphrasesanalysis2", + "JobStatus": "STOPPED", + "SubmitTime": "2023-06-08T22:57:52.154000+00:00", + "EndTime": "2023-06-08T23:05:48.385000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket/AsyncBatchJobs/", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/testfolder/111122223333-KP-123456abcdeb0e11022f22a33EXAMPLE/output/output.tar.gz" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role" + }, + { + "JobId": "123456abcdeb0e11022f22a44EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:key-phrases-detection-job/123456abcdeb0e11022f22a44EXAMPLE", + "JobName": "keyphrasesanalysis3", + "JobStatus": "FAILED", + "Message": "NO_READ_ACCESS_TO_INPUT: The provided data access role does not have proper access to the input data.", + "SubmitTime": "2023-06-09T16:47:04.029000+00:00", + "EndTime": "2023-06-09T16:47:18.413000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/testfolder/111122223333-KP-123456abcdeb0e11022f22a44EXAMPLE/output/output.tar.gz" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role" + } + ] + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-pii-entities-detection-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-pii-entities-detection-jobs.rst new file mode 100644 index 000000000..cb33a363d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-pii-entities-detection-jobs.rst @@ -0,0 +1,50 @@ +**To list all pii entities detection jobs** + +The following ``list-pii-entities-detection-jobs`` example lists all in-progress and completed asynchronous pii detection jobs. :: + + aws comprehend list-pii-entities-detection-jobs + +Output:: + + { + "PiiEntitiesDetectionJobPropertiesList": [ + { + "JobId": "6f9db0c42d0c810e814670ee4EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:pii-entities-detection-job/6f9db0c42d0c810e814670ee4EXAMPLE", + "JobName": "example-pii-detection-job", + "JobStatus": "COMPLETED", + "SubmitTime": "2023-06-09T21:02:46.241000+00:00", + "EndTime": "2023-06-09T21:12:52.602000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket/AsyncBatchJobs/", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-source-bucket/111122223333-PII-6f9db0c42d0c810e814670ee4EXAMPLE/output/" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role", + "Mode": "ONLY_OFFSETS" + }, + { + "JobId": "d927562638cfa739331a99b3cEXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:pii-entities-detection-job/d927562638cfa739331a99b3cEXAMPLE", + "JobName": "example-pii-detection-job-2", + "JobStatus": "COMPLETED", + "SubmitTime": "2023-06-09T21:20:58.211000+00:00", + "EndTime": "2023-06-09T21:31:06.027000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket/AsyncBatchJobs/", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/thefolder/111122223333-PII-d927562638cfa739331a99b3cEXAMPLE/output/" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role", + "Mode": "ONLY_OFFSETS" + } + ] + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-sentiment-detection-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-sentiment-detection-jobs.rst new file mode 100644 index 000000000..86582bd80 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-sentiment-detection-jobs.rst @@ -0,0 +1,48 @@ +**To list all sentiment detection jobs** + +The following ``list-sentiment-detection-jobs`` example lists all in-progress and completed asynchronous sentiment detection jobs. :: + + aws comprehend list-sentiment-detection-jobs + +Output:: + + { + "SentimentDetectionJobPropertiesList": [ + { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:sentiment-detection-job/123456abcdeb0e11022f22a11EXAMPLE", + "JobName": "example-sentiment-detection-job", + "JobStatus": "IN_PROGRESS", + "SubmitTime": "2023-06-09T22:42:20.545000+00:00", + "EndTime": "2023-06-09T22:52:27.416000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket/MovieData", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/testfolder/111122223333-TS-123456abcdeb0e11022f22a11EXAMPLE/output/output.tar.gz" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role" + }, + { + "JobId": "123456abcdeb0e11022f22a1EXAMPLE2", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:sentiment-detection-job/123456abcdeb0e11022f22a1EXAMPLE2", + "JobName": "example-sentiment-detection-job-2", + "JobStatus": "COMPLETED", + "SubmitTime": "2023-06-09T23:16:15.956000+00:00", + "EndTime": "2023-06-09T23:26:00.168000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket/MovieData2", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/testfolder/111122223333-TS-123456abcdeb0e11022f22a1EXAMPLE2/output/output.tar.gz" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role" + } + ] + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-tags-for-resource.rst new file mode 100644 index 000000000..91d224dd5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-tags-for-resource.rst @@ -0,0 +1,24 @@ +**To list tags for resource** + +The following ``list-tags-for-resource`` example lists the tags for an Amazon Comprehend resource. :: + + aws comprehend list-tags-for-resource \ + --resource-arn arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-classifier/version/1 + +Output:: + + { + "ResourceArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-classifier/version/1", + "Tags": [ + { + "Key": "Department", + "Value": "Finance" + }, + { + "Key": "location", + "Value": "Seattle" + } + ] + } + +For more information, see `Tagging your resources `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-targeted-sentiment-detection-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-targeted-sentiment-detection-jobs.rst new file mode 100644 index 000000000..ccea82e23 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-targeted-sentiment-detection-jobs.rst @@ -0,0 +1,48 @@ +**To list all targeted sentiment detection jobs** + +The following ``list-targeted-sentiment-detection-jobs`` example lists all in-progress and completed asynchronous targeted sentiment detection jobs. :: + + aws comprehend list-targeted-sentiment-detection-jobs + +Output:: + + { + "TargetedSentimentDetectionJobPropertiesList": [ + { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:targeted-sentiment-detection-job/123456abcdeb0e11022f22a11EXAMPLE", + "JobName": "example-targeted-sentiment-detection-job", + "JobStatus": "COMPLETED", + "SubmitTime": "2023-06-09T22:42:20.545000+00:00", + "EndTime": "2023-06-09T22:52:27.416000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket/MovieData", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/testfolder/111122223333-TS-123456abcdeb0e11022f22a11EXAMPLE/output/output.tar.gz" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-IOrole" + }, + { + "JobId": "123456abcdeb0e11022f22a1EXAMPLE2", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:targeted-sentiment-detection-job/123456abcdeb0e11022f22a1EXAMPLE2", + "JobName": "example-targeted-sentiment-detection-job-2", + "JobStatus": "COMPLETED", + "SubmitTime": "2023-06-09T23:16:15.956000+00:00", + "EndTime": "2023-06-09T23:26:00.168000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket/MovieData2", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/testfolder/111122223333-TS-123456abcdeb0e11022f22a1EXAMPLE2/output/output.tar.gz" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role" + } + ] + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-topics-detection-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-topics-detection-jobs.rst new file mode 100644 index 000000000..235324506 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/list-topics-detection-jobs.rst @@ -0,0 +1,64 @@ +**To list all topic detection jobs** + +The following ``list-topics-detection-jobs`` example lists all in-progress and completed asynchronous topics detection jobs. :: + + aws comprehend list-topics-detection-jobs + +Output:: + + { + "TopicsDetectionJobPropertiesList": [ + { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:topics-detection-job/123456abcdeb0e11022f22a11EXAMPLE", + "JobName" "topic-analysis-1" + "JobStatus": "IN_PROGRESS", + "SubmitTime": "2023-06-09T18:40:35.384000+00:00", + "EndTime": "2023-06-09T18:46:41.936000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/thefolder/111122223333-TOPICS-123456abcdeb0e11022f22a11EXAMPLE/output/output.tar.gz" + }, + "NumberOfTopics": 10, + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role" + }, + { + "JobId": "123456abcdeb0e11022f22a1EXAMPLE2", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:topics-detection-job/123456abcdeb0e11022f22a1EXAMPLE2", + "JobName": "topic-analysis-2", + "JobStatus": "COMPLETED", + "SubmitTime": "2023-06-09T18:44:43.414000+00:00", + "EndTime": "2023-06-09T18:50:50.872000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/thefolder/111122223333-TOPICS-123456abcdeb0e11022f22a1EXAMPLE2/output/output.tar.gz" + }, + "NumberOfTopics": 10, + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role" + }, + { + "JobId": "123456abcdeb0e11022f22a1EXAMPLE3", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:topics-detection-job/123456abcdeb0e11022f22a1EXAMPLE3", + "JobName": "topic-analysis-2", + "JobStatus": "IN_PROGRESS", + "SubmitTime": "2023-06-09T18:50:56.737000+00:00", + "InputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-bucket", + "InputFormat": "ONE_DOC_PER_LINE" + }, + "OutputDataConfig": { + "S3Uri": "s3://amzn-s3-demo-destination-bucket/thefolder/111122223333-TOPICS-123456abcdeb0e11022f22a1EXAMPLE3/output/output.tar.gz" + }, + "NumberOfTopics": 10, + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role" + } + ] + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/put-resource-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/put-resource-policy.rst new file mode 100644 index 000000000..60a2a57e2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/put-resource-policy.rst @@ -0,0 +1,16 @@ +**To attach a resource-based policy** + +The following ``put-resource-policy`` example attaches a resource-based policy to a model so that can be imported by another AWS account. +The policy is attached to the model in account ``111122223333`` and allows account ``444455556666`` import the model. :: + + aws comprehend put-resource-policy \ + --resource-arn arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-classifier/version/1 \ + --resource-policy '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":"comprehend:ImportModel","Resource":"*","Principal":{"AWS":["arn:aws:iam::444455556666:root"]}}]}' + +Output:: + + { + "PolicyRevisionId": "aaa111d069d07afaa2aa3106aEXAMPLE" + } + +For more information, see `Copying custom models between AWS accounts `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-document-classification-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-document-classification-job.rst new file mode 100644 index 000000000..5cda73bbb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-document-classification-job.rst @@ -0,0 +1,41 @@ +**To start document classification job** + +The following ``start-document-classification-job`` example starts a document classification job with a custom model on all of the files at the address specified by the ``--input-data-config`` tag. +In this example, the input S3 bucket contains ``SampleSMStext1.txt``, ``SampleSMStext2.txt``, and ``SampleSMStext3.txt``. The model was previously trained on document classifications +of spam and non-spam, or, "ham", SMS messages. When the job is complete, ``output.tar.gz`` is put at the location specified by the ``--output-data-config`` tag. ``output.tar.gz`` contains ``predictions.jsonl`` +which lists the classification of each document. The Json output is printed on one line per file, but is formatted here for readability. :: + + aws comprehend start-document-classification-job \ + --job-name exampleclassificationjob \ + --input-data-config "S3Uri=s3://amzn-s3-demo-bucket-INPUT/jobdata/" \ + --output-data-config "S3Uri=s3://amzn-s3-demo-destination-bucket/testfolder/" \ + --data-access-role-arn arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role \ + --document-classifier-arn arn:aws:comprehend:us-west-2:111122223333:document-classifier/mymodel/version/12 + +Contents of ``SampleSMStext1.txt``:: + + "CONGRATULATIONS! TXT 2155550100 to win $5000" + +Contents of ``SampleSMStext2.txt``:: + + "Hi, when do you want me to pick you up from practice?" + +Contents of ``SampleSMStext3.txt``:: + + "Plz send bank account # to 2155550100 to claim prize!!" + +Output:: + + { + "JobId": "e758dd56b824aa717ceab551fEXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:document-classification-job/e758dd56b824aa717ceab551fEXAMPLE", + "JobStatus": "SUBMITTED" + } + +Contents of ``predictions.jsonl``:: + + {"File": "SampleSMSText1.txt", "Line": "0", "Classes": [{"Name": "spam", "Score": 0.9999}, {"Name": "ham", "Score": 0.0001}]} + {"File": "SampleSMStext2.txt", "Line": "0", "Classes": [{"Name": "ham", "Score": 0.9994}, {"Name": "spam", "Score": 0.0006}]} + {"File": "SampleSMSText3.txt", "Line": "0", "Classes": [{"Name": "spam", "Score": 0.9999}, {"Name": "ham", "Score": 0.0001}]} + +For more information, see `Custom Classification `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-dominant-language-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-dominant-language-detection-job.rst new file mode 100644 index 000000000..6ac5f7520 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-dominant-language-detection-job.rst @@ -0,0 +1,32 @@ +**To start an asynchronous language detection job** + +The following ``start-dominant-language-detection-job`` example starts an asynchronous language detection job for all of the files located at the address specified by +the ``--input-data-config`` tag. The S3 bucket in this example contains ``Sampletext1.txt``. +When the job is complete, the folder, ``output``, is placed in the location specified by the ``--output-data-config`` tag. The folder contains ``output.txt`` +which contains the dominant language of each of the text files as well as the pre-trained model's confidence score for each prediction. :: + + aws comprehend start-dominant-language-detection-job \ + --job-name example_language_analysis_job \ + --language-code en \ + --input-data-config "S3Uri=s3://amzn-s3-demo-bucket/" \ + --output-data-config "S3Uri=s3://amzn-s3-demo-destination-bucket/testfolder/" \ + --data-access-role-arn arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role \ + --language-code en + +Contents of Sampletext1.txt:: + + "Physics is the natural science that involves the study of matter and its motion and behavior through space and time, along with related concepts such as energy and force." + +Output:: + + { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:dominant-language-detection-job/123456abcdeb0e11022f22a11EXAMPLE", + "JobStatus": "SUBMITTED" + } + +Contents of ``output.txt``:: + + {"File": "Sampletext1.txt", "Languages": [{"LanguageCode": "en", "Score": 0.9913753867149353}], "Line": 0} + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-entities-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-entities-detection-job.rst new file mode 100644 index 000000000..87259cc35 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-entities-detection-job.rst @@ -0,0 +1,243 @@ +**Example 1: To start a standard entity detection job using the pre-trained model** + +The following ``start-entities-detection-job`` example starts an asynchronous entities detection job for all files located at the address specified by +the ``--input-data-config`` tag. The S3 bucket in this example contains ``Sampletext1.txt``, ``Sampletext2.txt``, and ``Sampletext3.txt``. +When the job is complete, the folder, ``output``, is placed in the location specified by the ``--output-data-config`` tag. The folder contains +``output.txt`` which lists all of the named entities detected within each text file as well as the pre-trained model's confidence score for each prediction. +The Json output is printed on one line per input file, but is formatted here for readability. :: + + aws comprehend start-entities-detection-job \ + --job-name entitiestest \ + --language-code en \ + --input-data-config "S3Uri=s3://amzn-s3-demo-bucket/" \ + --output-data-config "S3Uri=s3://amzn-s3-demo-destination-bucket/testfolder/" \ + --data-access-role-arn arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role \ + --language-code en + +Contents of ``Sampletext1.txt``:: + + "Hello Zhang Wei, I am John. Your AnyCompany Financial Services, LLC credit card account 1111-XXXX-1111-XXXX has a minimum payment of $24.53 that is due by July 31st." + +Contents of ``Sampletext2.txt``:: + + "Dear Max, based on your autopay settings for your account example1.org account, we will withdraw your payment on the due date from your bank account number XXXXXX1111 with the routing number XXXXX0000. " + +Contents of ``Sampletext3.txt``:: + + "Jane, please submit any customer feedback from this weekend to AnySpa, 123 Main St, Anywhere and send comments to Alice at AnySpa@example.com." + +Output:: + + { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:entities-detection-job/123456abcdeb0e11022f22a11EXAMPLE", + "JobStatus": "SUBMITTED" + } + +Contents of ``output.txt`` with line indents for readability:: + + { + "Entities": [ + { + "BeginOffset": 6, + "EndOffset": 15, + "Score": 0.9994006636420306, + "Text": "Zhang Wei", + "Type": "PERSON" + }, + { + "BeginOffset": 22, + "EndOffset": 26, + "Score": 0.9976647915128143, + "Text": "John", + "Type": "PERSON" + }, + { + "BeginOffset": 33, + "EndOffset": 67, + "Score": 0.9984608700836206, + "Text": "AnyCompany Financial Services, LLC", + "Type": "ORGANIZATION" + }, + { + "BeginOffset": 88, + "EndOffset": 107, + "Score": 0.9868521019555556, + "Text": "1111-XXXX-1111-XXXX", + "Type": "OTHER" + }, + { + "BeginOffset": 133, + "EndOffset": 139, + "Score": 0.998242565709204, + "Text": "$24.53", + "Type": "QUANTITY" + }, + { + "BeginOffset": 155, + "EndOffset": 164, + "Score": 0.9993039263159287, + "Text": "July 31st", + "Type": "DATE" + } + ], + "File": "SampleText1.txt", + "Line": 0 + } + { + "Entities": [ + { + "BeginOffset": 5, + "EndOffset": 8, + "Score": 0.9866232147545232, + "Text": "Max", + "Type": "PERSON" + }, + { + "BeginOffset": 156, + "EndOffset": 166, + "Score": 0.9797723450933329, + "Text": "XXXXXX1111", + "Type": "OTHER" + }, + { + "BeginOffset": 191, + "EndOffset": 200, + "Score": 0.9247838572396843, + "Text": "XXXXX0000", + "Type": "OTHER" + } + ], + "File": "SampleText2.txt", + "Line": 0 + } + { + "Entities": [ + { + "Score": 0.9990532994270325, + "Type": "PERSON", + "Text": "Jane", + "BeginOffset": 0, + "EndOffset": 4 + }, + { + "Score": 0.9519651532173157, + "Type": "DATE", + "Text": "this weekend", + "BeginOffset": 47, + "EndOffset": 59 + }, + { + "Score": 0.5566426515579224, + "Type": "ORGANIZATION", + "Text": "AnySpa", + "BeginOffset": 63, + "EndOffset": 69 + }, + { + "Score": 0.8059805631637573, + "Type": "LOCATION", + "Text": "123 Main St, Anywhere", + "BeginOffset": 71, + "EndOffset": 92 + }, + { + "Score": 0.998830258846283, + "Type": "PERSON", + "Text": "Alice", + "BeginOffset": 114, + "EndOffset": 119 + }, + { + "Score": 0.997818112373352, + "Type": "OTHER", + "Text": "AnySpa@example.com", + "BeginOffset": 123, + "EndOffset": 138 + } + ], + "File": "SampleText3.txt", + "Line": 0 + } + + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. + +**Example 2: To start a custom entity detection job** + +The following ``start-entities-detection-job`` example starts an asynchronous custom entities detection job for all files located at the address specified by +the ``--input-data-config`` tag. In this example, the S3 bucket in this example contains ``SampleFeedback1.txt``, ``SampleFeedback2.txt``, and ``SampleFeedback3.txt``. +The entity recognizer model was trained on customer support Feedbacks to recognize device names. When the job is complete, an the folder, ``output``, is put at the location specified by the ``--output-data-config`` tag. The folder contains +``output.txt``, which lists all of the named entities detected within each text file as well as the pre-trained model's confidence score for each prediction. The Json output is printed on one line per file, but is formatted here for readability. :: + + aws comprehend start-entities-detection-job \ + --job-name customentitiestest \ + --entity-recognizer-arn "arn:aws:comprehend:us-west-2:111122223333:entity-recognizer/entityrecognizer" \ + --language-code en \ + --input-data-config "S3Uri=s3://amzn-s3-demo-bucket/jobdata/" \ + --output-data-config "S3Uri=s3://amzn-s3-demo-destination-bucket/testfolder/" \ + --data-access-role-arn "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-IOrole" + +Contents of ``SampleFeedback1.txt``:: + + "I've been on the AnyPhone app have had issues for 24 hours when trying to pay bill. Cannot make payment. Sigh. | Oh man! Lets get that app up and running. DM me, and we can get to work!" + +Contents of ``SampleFeedback2.txt``:: + + "Hi, I have a discrepancy with my new bill. Could we get it sorted out? A rep added stuff I didn't sign up for when I did my AnyPhone 10 upgrade. | We can absolutely get this sorted!" + +Contents of ``SampleFeedback3.txt``:: + + "Is the by 1 get 1 free AnySmartPhone promo still going on? | Hi Christian! It ended yesterday, send us a DM if you have any questions and we can take a look at your options!" + +Output:: + + { + "JobId": "019ea9edac758806850fa8a79ff83021", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:entities-detection-job/019ea9edac758806850fa8a79ff83021", + "JobStatus": "SUBMITTED" + } + +Contents of ``output.txt`` with line indents for readability:: + + { + "Entities": [ + { + "BeginOffset": 17, + "EndOffset": 25, + "Score": 0.9999728210205924, + "Text": "AnyPhone", + "Type": "DEVICE" + } + ], + "File": "SampleFeedback1.txt", + "Line": 0 + } + { + "Entities": [ + { + "BeginOffset": 123, + "EndOffset": 133, + "Score": 0.9999892116761524, + "Text": "AnyPhone 10", + "Type": "DEVICE" + } + ], + "File": "SampleFeedback2.txt", + "Line": 0 + } + { + "Entities": [ + { + "BeginOffset": 23, + "EndOffset": 35, + "Score": 0.9999971389852362, + "Text": "AnySmartPhone", + "Type": "DEVICE" + } + ], + "File": "SampleFeedback3.txt", + "Line": 0 + } + +For more information, see `Custom entity recognition `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-events-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-events-detection-job.rst new file mode 100644 index 000000000..572ff52a7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-events-detection-job.rst @@ -0,0 +1,324 @@ +**To start an asynchronous events detection job** + +The following ``start-events-detection-job`` example starts an asynchronous events detection job for all files located at the address specified by +the ``--input-data-config`` tag. Possible target event types include ``BANKRUPCTY``, ``EMPLOYMENT``, ``CORPORATE_ACQUISITION``, ``INVESTMENT_GENERAL``, ``CORPORATE_MERGER``, ``IPO``, ``RIGHTS_ISSUE``, +``SECONDARY_OFFERING``, ``SHELF_OFFERING``, ``TENDER_OFFERING``, and ``STOCK_SPLIT``. The S3 bucket in this example contains ``SampleText1.txt``, ``SampleText2.txt``, and ``SampleText3.txt``. +When the job is complete, the folder, ``output``, is placed in the location specified by the ``--output-data-config`` tag. The folder contains +``SampleText1.txt.out``, ``SampleText2.txt.out``, and ``SampleText3.txt.out``. The JSON output is printed on one line per file, but is formatted here for readability. :: + + aws comprehend start-events-detection-job \ + --job-name events-detection-1 \ + --input-data-config "S3Uri=s3://amzn-s3-demo-bucket/EventsData" \ + --output-data-config "S3Uri=s3://amzn-s3-demo-destination-bucket/testfolder/" \ + --data-access-role-arn arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-servicerole \ + --language-code en \ + --target-event-types "BANKRUPTCY" "EMPLOYMENT" "CORPORATE_ACQUISITION" "CORPORATE_MERGER" "INVESTMENT_GENERAL" + +Contents of ``SampleText1.txt``:: + + "Company AnyCompany grew by increasing sales and through acquisitions. After purchasing competing firms in 2020, AnyBusiness, a part of the AnyBusinessGroup, gave Jane Does firm a going rate of one cent a gallon or forty-two cents a barrel." + +Contents of ``SampleText2.txt``:: + + "In 2021, AnyCompany officially purchased AnyBusiness for 100 billion dollars, surprising and exciting the shareholders." + +Contents of ``SampleText3.txt``:: + + "In 2022, AnyCompany stock crashed 50. Eventually later that year they filed for bankruptcy." + +Output:: + + { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:events-detection-job/123456abcdeb0e11022f22a11EXAMPLE", + "JobStatus": "SUBMITTED" + } + +Contents of ``SampleText1.txt.out`` with line indents for readability:: + + { + "Entities": [ + { + "Mentions": [ + { + "BeginOffset": 8, + "EndOffset": 18, + "Score": 0.99977, + "Text": "AnyCompany", + "Type": "ORGANIZATION", + "GroupScore": 1 + }, + { + "BeginOffset": 112, + "EndOffset": 123, + "Score": 0.999747, + "Text": "AnyBusiness", + "Type": "ORGANIZATION", + "GroupScore": 0.979826 + }, + { + "BeginOffset": 171, + "EndOffset": 175, + "Score": 0.999615, + "Text": "firm", + "Type": "ORGANIZATION", + "GroupScore": 0.871647 + } + ] + }, + { + "Mentions": [ + { + "BeginOffset": 97, + "EndOffset": 102, + "Score": 0.987687, + "Text": "firms", + "Type": "ORGANIZATION", + "GroupScore": 1 + } + ] + }, + { + "Mentions": [ + { + "BeginOffset": 103, + "EndOffset": 110, + "Score": 0.999458, + "Text": "in 2020", + "Type": "DATE", + "GroupScore": 1 + } + ] + }, + { + "Mentions": [ + { + "BeginOffset": 160, + "EndOffset": 168, + "Score": 0.999649, + "Text": "John Doe", + "Type": "PERSON", + "GroupScore": 1 + } + ] + } + ], + "Events": [ + { + "Type": "CORPORATE_ACQUISITION", + "Arguments": [ + { + "EntityIndex": 0, + "Role": "INVESTOR", + "Score": 0.99977 + } + ], + "Triggers": [ + { + "BeginOffset": 56, + "EndOffset": 68, + "Score": 0.999967, + "Text": "acquisitions", + "Type": "CORPORATE_ACQUISITION", + "GroupScore": 1 + } + ] + }, + { + "Type": "CORPORATE_ACQUISITION", + "Arguments": [ + { + "EntityIndex": 1, + "Role": "INVESTEE", + "Score": 0.987687 + }, + { + "EntityIndex": 2, + "Role": "DATE", + "Score": 0.999458 + }, + { + "EntityIndex": 3, + "Role": "INVESTOR", + "Score": 0.999649 + } + ], + "Triggers": [ + { + "BeginOffset": 76, + "EndOffset": 86, + "Score": 0.999973, + "Text": "purchasing", + "Type": "CORPORATE_ACQUISITION", + "GroupScore": 1 + } + ] + } + ], + "File": "SampleText1.txt", + "Line": 0 + } + +Contents of ``SampleText2.txt.out``:: + + { + "Entities": [ + { + "Mentions": [ + { + "BeginOffset": 0, + "EndOffset": 7, + "Score": 0.999473, + "Text": "In 2021", + "Type": "DATE", + "GroupScore": 1 + } + ] + }, + { + "Mentions": [ + { + "BeginOffset": 9, + "EndOffset": 19, + "Score": 0.999636, + "Text": "AnyCompany", + "Type": "ORGANIZATION", + "GroupScore": 1 + } + ] + }, + { + "Mentions": [ + { + "BeginOffset": 45, + "EndOffset": 56, + "Score": 0.999712, + "Text": "AnyBusiness", + "Type": "ORGANIZATION", + "GroupScore": 1 + } + ] + }, + { + "Mentions": [ + { + "BeginOffset": 61, + "EndOffset": 80, + "Score": 0.998886, + "Text": "100 billion dollars", + "Type": "MONETARY_VALUE", + "GroupScore": 1 + } + ] + } + ], + "Events": [ + { + "Type": "CORPORATE_ACQUISITION", + "Arguments": [ + { + "EntityIndex": 3, + "Role": "AMOUNT", + "Score": 0.998886 + }, + { + "EntityIndex": 2, + "Role": "INVESTEE", + "Score": 0.999712 + }, + { + "EntityIndex": 0, + "Role": "DATE", + "Score": 0.999473 + }, + { + "EntityIndex": 1, + "Role": "INVESTOR", + "Score": 0.999636 + } + ], + "Triggers": [ + { + "BeginOffset": 31, + "EndOffset": 40, + "Score": 0.99995, + "Text": "purchased", + "Type": "CORPORATE_ACQUISITION", + "GroupScore": 1 + } + ] + } + ], + "File": "SampleText2.txt", + "Line": 0 + } + +Contents of ``SampleText3.txt.out``:: + + { + "Entities": [ + { + "Mentions": [ + { + "BeginOffset": 9, + "EndOffset": 19, + "Score": 0.999774, + "Text": "AnyCompany", + "Type": "ORGANIZATION", + "GroupScore": 1 + }, + { + "BeginOffset": 66, + "EndOffset": 70, + "Score": 0.995717, + "Text": "they", + "Type": "ORGANIZATION", + "GroupScore": 0.997626 + } + ] + }, + { + "Mentions": [ + { + "BeginOffset": 50, + "EndOffset": 65, + "Score": 0.999656, + "Text": "later that year", + "Type": "DATE", + "GroupScore": 1 + } + ] + } + ], + "Events": [ + { + "Type": "BANKRUPTCY", + "Arguments": [ + { + "EntityIndex": 1, + "Role": "DATE", + "Score": 0.999656 + }, + { + "EntityIndex": 0, + "Role": "FILER", + "Score": 0.995717 + } + ], + "Triggers": [ + { + "BeginOffset": 81, + "EndOffset": 91, + "Score": 0.999936, + "Text": "bankruptcy", + "Type": "BANKRUPTCY", + "GroupScore": 1 + } + ] + } + ], + "File": "SampleText3.txt", + "Line": 0 + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-flywheel-iteration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-flywheel-iteration.rst new file mode 100644 index 000000000..675a27b95 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-flywheel-iteration.rst @@ -0,0 +1,15 @@ +**To start a flywheel iteration** + +The following ``start-flywheel-iteration`` example starts a flywheel iteration. This operation uses any new datasets in the flywheel to train a new model version. :: + + aws comprehend start-flywheel-iteration \ + --flywheel-arn arn:aws:comprehend:us-west-2:111122223333:flywheel/example-flywheel + +Output:: + + { + "FlywheelArn": "arn:aws:comprehend:us-west-2:111122223333:flywheel/example-flywheel", + "FlywheelIterationId": "12345123TEXAMPLE" + } + +For more information, see `Flywheel overview `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-key-phrases-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-key-phrases-detection-job.rst new file mode 100644 index 000000000..47038d714 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-key-phrases-detection-job.rst @@ -0,0 +1,190 @@ +**To start a key phrases detection job** + +The following ``start-key-phrases-detection-job`` example starts an asynchronous key phrases detection job for all files located at the address specified by +the ``--input-data-config`` tag. The S3 bucket in this example contains ``Sampletext1.txt``, ``Sampletext2.txt``, and ``Sampletext3.txt``. +When the job is completed, the folder, ``output``, is placed in the location specified by the ``--output-data-config`` tag. The folder contains +the file ``output.txt`` which contains all the key phrases detected within each text file and the pre-trained model's confidence score for each prediction. +The Json output is printed on one line per file, but is formatted here for readability. :: + + aws comprehend start-key-phrases-detection-job \ + --job-name keyphrasesanalysistest1 \ + --language-code en \ + --input-data-config "S3Uri=s3://amzn-s3-demo-bucket/" \ + --output-data-config "S3Uri=s3://amzn-s3-demo-destination-bucket/testfolder/" \ + --data-access-role-arn "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role" \ + --language-code en + +Contents of ``Sampletext1.txt``:: + + "Hello Zhang Wei, I am John. Your AnyCompany Financial Services, LLC credit card account 1111-XXXX-1111-XXXX has a minimum payment of $24.53 that is due by July 31st." + +Contents of ``Sampletext2.txt``:: + + "Dear Max, based on your autopay settings for your account Internet.org account, we will withdraw your payment on the due date from your bank account number XXXXXX1111 with the routing number XXXXX0000. " + +Contents of ``Sampletext3.txt``:: + + "Jane, please submit any customer feedback from this weekend to Sunshine Spa, 123 Main St, Anywhere and send comments to Alice at AnySpa@example.com." + +Output:: + + { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:key-phrases-detection-job/123456abcdeb0e11022f22a11EXAMPLE", + "JobStatus": "SUBMITTED" + } + +Contents of ``output.txt`` with line indents for readability:: + + { + "File": "SampleText1.txt", + "KeyPhrases": [ + { + "BeginOffset": 6, + "EndOffset": 15, + "Score": 0.9748965572679326, + "Text": "Zhang Wei" + }, + { + "BeginOffset": 22, + "EndOffset": 26, + "Score": 0.9997344722354619, + "Text": "John" + }, + { + "BeginOffset": 28, + "EndOffset": 62, + "Score": 0.9843791074032948, + "Text": "Your AnyCompany Financial Services" + }, + { + "BeginOffset": 64, + "EndOffset": 107, + "Score": 0.8976122401721824, + "Text": "LLC credit card account 1111-XXXX-1111-XXXX" + }, + { + "BeginOffset": 112, + "EndOffset": 129, + "Score": 0.9999612982629748, + "Text": "a minimum payment" + }, + { + "BeginOffset": 133, + "EndOffset": 139, + "Score": 0.99975728947036, + "Text": "$24.53" + }, + { + "BeginOffset": 155, + "EndOffset": 164, + "Score": 0.9940866241449973, + "Text": "July 31st" + } + ], + "Line": 0 + } + { + "File": "SampleText2.txt", + "KeyPhrases": [ + { + "BeginOffset": 0, + "EndOffset": 8, + "Score": 0.9974021100118472, + "Text": "Dear Max" + }, + { + "BeginOffset": 19, + "EndOffset": 40, + "Score": 0.9961120519515884, + "Text": "your autopay settings" + }, + { + "BeginOffset": 45, + "EndOffset": 78, + "Score": 0.9980620070116009, + "Text": "your account Internet.org account" + }, + { + "BeginOffset": 97, + "EndOffset": 109, + "Score": 0.999919660140754, + "Text": "your payment" + }, + { + "BeginOffset": 113, + "EndOffset": 125, + "Score": 0.9998370719754205, + "Text": "the due date" + }, + { + "BeginOffset": 131, + "EndOffset": 166, + "Score": 0.9955068678502509, + "Text": "your bank account number XXXXXX1111" + }, + { + "BeginOffset": 172, + "EndOffset": 200, + "Score": 0.8653433315829526, + "Text": "the routing number XXXXX0000" + } + ], + "Line": 0 + } + { + "File": "SampleText3.txt", + "KeyPhrases": [ + { + "BeginOffset": 0, + "EndOffset": 4, + "Score": 0.9142947833681668, + "Text": "Jane" + }, + { + "BeginOffset": 20, + "EndOffset": 41, + "Score": 0.9984325676596763, + "Text": "any customer feedback" + }, + { + "BeginOffset": 47, + "EndOffset": 59, + "Score": 0.9998782448150636, + "Text": "this weekend" + }, + { + "BeginOffset": 63, + "EndOffset": 75, + "Score": 0.99866741830757, + "Text": "Sunshine Spa" + }, + { + "BeginOffset": 77, + "EndOffset": 88, + "Score": 0.9695803485466054, + "Text": "123 Main St" + }, + { + "BeginOffset": 108, + "EndOffset": 116, + "Score": 0.9997065928550928, + "Text": "comments" + }, + { + "BeginOffset": 120, + "EndOffset": 125, + "Score": 0.9993466833825161, + "Text": "Alice" + }, + { + "BeginOffset": 129, + "EndOffset": 144, + "Score": 0.9654563612885667, + "Text": "AnySpa@example.com" + } + ], + "Line": 0 + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-pii-entities-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-pii-entities-detection-job.rst new file mode 100644 index 000000000..7f09c04ca --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-pii-entities-detection-job.rst @@ -0,0 +1,138 @@ +**To start an asynchronous PII detection job** + +The following ``start-pii-entities-detection-job`` example starts an asynchronous personal identifiable information (PII) entities detection job for all files located at the address specified by +the ``--input-data-config`` tag. The S3 bucket in this example contains ``Sampletext1.txt``, ``Sampletext2.txt``, and ``Sampletext3.txt``. +When the job is complete, the folder, ``output``, is placed in the location specified by the ``--output-data-config`` tag. The folder contains +``SampleText1.txt.out``, ``SampleText2.txt.out``, and ``SampleText3.txt.out`` which list the named entities within each text file. The Json output is printed on one line per file, but is formatted here for readability. :: + + aws comprehend start-pii-entities-detection-job \ + --job-name entities_test \ + --language-code en \ + --input-data-config "S3Uri=s3://amzn-s3-demo-bucket/" \ + --output-data-config "S3Uri=s3://amzn-s3-demo-destination-bucket/testfolder/" \ + --data-access-role-arn arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role \ + --language-code en \ + --mode ONLY_OFFSETS + +Contents of ``Sampletext1.txt``:: + + "Hello Zhang Wei, I am John. Your AnyCompany Financial Services, LLC credit card account 1111-XXXX-1111-XXXX has a minimum payment of $24.53 that is due by July 31st." + +Contents of ``Sampletext2.txt``:: + + "Dear Max, based on your autopay settings for your account Internet.org account, we will withdraw your payment on the due date from your bank account number XXXXXX1111 with the routing number XXXXX0000. " + +Contents of ``Sampletext3.txt``:: + + "Jane, please submit any customer feedback from this weekend to Sunshine Spa, 123 Main St, Anywhere and send comments to Alice at AnySpa@example.com." + +Output:: + + { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:pii-entities-detection-job/123456abcdeb0e11022f22a11EXAMPLE", + "JobStatus": "SUBMITTED" + } + +Contents of ``SampleText1.txt.out`` with line indents for readability:: + + { + "Entities": [ + { + "BeginOffset": 6, + "EndOffset": 15, + "Type": "NAME", + "Score": 0.9998490510222595 + }, + { + "BeginOffset": 22, + "EndOffset": 26, + "Type": "NAME", + "Score": 0.9998937958019426 + }, + { + "BeginOffset": 88, + "EndOffset": 107, + "Type": "CREDIT_DEBIT_NUMBER", + "Score": 0.9554297245278491 + }, + { + "BeginOffset": 155, + "EndOffset": 164, + "Type": "DATE_TIME", + "Score": 0.9999720462925257 + } + ], + "File": "SampleText1.txt", + "Line": 0 + } + +Contents of ``SampleText2.txt.out`` with line indents for readability:: + + { + "Entities": [ + { + "BeginOffset": 5, + "EndOffset": 8, + "Type": "NAME", + "Score": 0.9994390774924007 + }, + { + "BeginOffset": 58, + "EndOffset": 70, + "Type": "URL", + "Score": 0.9999958276922101 + }, + { + "BeginOffset": 156, + "EndOffset": 166, + "Type": "BANK_ACCOUNT_NUMBER", + "Score": 0.9999721058045592 + }, + { + "BeginOffset": 191, + "EndOffset": 200, + "Type": "BANK_ROUTING", + "Score": 0.9998968945989909 + } + ], + "File": "SampleText2.txt", + "Line": 0 + } + +Contents of ``SampleText3.txt.out`` with line indents for readability:: + + { + "Entities": [ + { + "BeginOffset": 0, + "EndOffset": 4, + "Type": "NAME", + "Score": 0.999949934606805 + }, + { + "BeginOffset": 77, + "EndOffset": 88, + "Type": "ADDRESS", + "Score": 0.9999035300466904 + }, + { + "BeginOffset": 120, + "EndOffset": 125, + "Type": "NAME", + "Score": 0.9998203838716296 + }, + { + "BeginOffset": 129, + "EndOffset": 144, + "Type": "EMAIL", + "Score": 0.9998313473105228 + } + ], + "File": "SampleText3.txt", + "Line": 0 + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. + + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-sentiment-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-sentiment-detection-job.rst new file mode 100644 index 000000000..7599c6037 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-sentiment-detection-job.rst @@ -0,0 +1,72 @@ +**To start an asynchronous sentiment analysis job** + +The following ``start-sentiment-detection-job`` example starts an asynchronous sentiment analysis detection job for all files located at the address specified by the ``--input-data-config`` tag. +The S3 bucket folder in this example contains ``SampleMovieReview1.txt``, ``SampleMovieReview2.txt``, and ``SampleMovieReview3.txt``. When the job is complete, +the folder, ``output``, is placed at the location specified by the ``--output-data-config`` tag. The folder contains the file, ``output.txt``, which contains the prevailing sentiments for each text file and the pre-trained model's confidence score for each prediction. +The Json output is printed on one line per file, but is formatted here for readability. :: + + aws comprehend start-sentiment-detection-job \ + --job-name example-sentiment-detection-job \ + --language-code en \ + --input-data-config "S3Uri=s3://amzn-s3-demo-bucket/MovieData" \ + --output-data-config "S3Uri=s3://amzn-s3-demo-destination-bucket/testfolder/" \ + --data-access-role-arn arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role + +Contents of ``SampleMovieReview1.txt``:: + + "The film, AnyMovie2, is fairly predictable and just okay." + +Contents of ``SampleMovieReview2.txt``:: + + "AnyMovie2 is the essential sci-fi film that I grew up watching when I was a kid. I highly recommend this movie." + +Contents of ``SampleMovieReview3.txt``:: + + "Don't get fooled by the 'awards' for AnyMovie2. All parts of the film were poorly stolen from other modern directors." + +Output:: + + { + "JobId": "0b5001e25f62ebb40631a9a1a7fde7b3", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:sentiment-detection-job/0b5001e25f62ebb40631a9a1a7fde7b3", + "JobStatus": "SUBMITTED" + } + +Contents of ``output.txt`` with line of indents for readability:: + + { + "File": "SampleMovieReview1.txt", + "Line": 0, + "Sentiment": "MIXED", + "SentimentScore": { + "Mixed": 0.6591159105300903, + "Negative": 0.26492202281951904, + "Neutral": 0.035430654883384705, + "Positive": 0.04053137078881264 + } + } + { + "File": "SampleMovieReview2.txt", + "Line": 0, + "Sentiment": "POSITIVE", + "SentimentScore": { + "Mixed": 0.000008718466233403888, + "Negative": 0.00006134175055194646, + "Neutral": 0.0002941041602753103, + "Positive": 0.9996358156204224 + } + } + { + "File": "SampleMovieReview3.txt", + "Line": 0, + "Sentiment": "NEGATIVE", + "SentimentScore": { + "Mixed": 0.004146667663007975, + "Negative": 0.9645107984542847, + "Neutral": 0.016559595242142677, + "Positive": 0.014782938174903393 + } + } + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-targeted-sentiment-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-targeted-sentiment-detection-job.rst new file mode 100644 index 000000000..6ccffade7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-targeted-sentiment-detection-job.rst @@ -0,0 +1,340 @@ +**To start an asynchronous targeted sentiment analysis job** + +The following ``start-targeted-sentiment-detection-job`` example starts an asynchronous targeted sentiment analysis detection job for all files located at the address specified by the ``--input-data-config`` tag. +The S3 bucket folder in this example contains ``SampleMovieReview1.txt``, ``SampleMovieReview2.txt``, and ``SampleMovieReview3.txt``. +When the job is complete, ``output.tar.gz`` is placed at the location specified by the ``--output-data-config`` tag. ``output.tar.gz`` contains the files ``SampleMovieReview1.txt.out``, ``SampleMovieReview2.txt.out``, and ``SampleMovieReview3.txt.out``, which each contain all of the named entities and associated sentiments for a single input text file. :: + + aws comprehend start-targeted-sentiment-detection-job \ + --job-name targeted_movie_review_analysis1 \ + --language-code en \ + --input-data-config "S3Uri=s3://amzn-s3-demo-bucket/MovieData" \ + --output-data-config "S3Uri=s3://amzn-s3-demo-destination-bucket/testfolder/" \ + --data-access-role-arn arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role + +Contents of ``SampleMovieReview1.txt``:: + + "The film, AnyMovie, is fairly predictable and just okay." + +Contents of ``SampleMovieReview2.txt``:: + + "AnyMovie is the essential sci-fi film that I grew up watching when I was a kid. I highly recommend this movie." + +Contents of ``SampleMovieReview3.txt``:: + + "Don't get fooled by the 'awards' for AnyMovie. All parts of the film were poorly stolen from other modern directors." + +Output:: + + { + "JobId": "0b5001e25f62ebb40631a9a1a7fde7b3", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:targeted-sentiment-detection-job/0b5001e25f62ebb40631a9a1a7fde7b3", + "JobStatus": "SUBMITTED" + } + +Contents of ``SampleMovieReview1.txt.out`` with line indents for readability:: + + { + "Entities": [ + { + "DescriptiveMentionIndex": [ + 0 + ], + "Mentions": [ + { + "BeginOffset": 4, + "EndOffset": 8, + "Score": 0.994972, + "GroupScore": 1, + "Text": "film", + "Type": "MOVIE", + "MentionSentiment": { + "Sentiment": "NEUTRAL", + "SentimentScore": { + "Mixed": 0, + "Negative": 0, + "Neutral": 1, + "Positive": 0 + } + } + } + ] + }, + { + "DescriptiveMentionIndex": [ + 0 + ], + "Mentions": [ + { + "BeginOffset": 10, + "EndOffset": 18, + "Score": 0.631368, + "GroupScore": 1, + "Text": "AnyMovie", + "Type": "ORGANIZATION", + "MentionSentiment": { + "Sentiment": "POSITIVE", + "SentimentScore": { + "Mixed": 0.001729, + "Negative": 0.000001, + "Neutral": 0.000318, + "Positive": 0.997952 + } + } + } + ] + } + ], + "File": "SampleMovieReview1.txt", + "Line": 0 + } + +Contents of ``SampleMovieReview2.txt.out`` line indents for readability:: + + { + "Entities": [ + { + "DescriptiveMentionIndex": [ + 0 + ], + "Mentions": [ + { + "BeginOffset": 0, + "EndOffset": 8, + "Score": 0.854024, + "GroupScore": 1, + "Text": "AnyMovie", + "Type": "MOVIE", + "MentionSentiment": { + "Sentiment": "POSITIVE", + "SentimentScore": { + "Mixed": 0, + "Negative": 0, + "Neutral": 0.000007, + "Positive": 0.999993 + } + } + }, + { + "BeginOffset": 104, + "EndOffset": 109, + "Score": 0.999129, + "GroupScore": 0.502937, + "Text": "movie", + "Type": "MOVIE", + "MentionSentiment": { + "Sentiment": "POSITIVE", + "SentimentScore": { + "Mixed": 0, + "Negative": 0, + "Neutral": 0, + "Positive": 1 + } + } + }, + { + "BeginOffset": 33, + "EndOffset": 37, + "Score": 0.999823, + "GroupScore": 0.999252, + "Text": "film", + "Type": "MOVIE", + "MentionSentiment": { + "Sentiment": "POSITIVE", + "SentimentScore": { + "Mixed": 0, + "Negative": 0, + "Neutral": 0.000001, + "Positive": 0.999999 + } + } + } + ] + }, + { + "DescriptiveMentionIndex": [ + 0, + 1, + 2 + ], + "Mentions": [ + { + "BeginOffset": 43, + "EndOffset": 44, + "Score": 0.999997, + "GroupScore": 1, + "Text": "I", + "Type": "PERSON", + "MentionSentiment": { + "Sentiment": "NEUTRAL", + "SentimentScore": { + "Mixed": 0, + "Negative": 0, + "Neutral": 1, + "Positive": 0 + } + } + }, + { + "BeginOffset": 80, + "EndOffset": 81, + "Score": 0.999996, + "GroupScore": 0.52523, + "Text": "I", + "Type": "PERSON", + "MentionSentiment": { + "Sentiment": "NEUTRAL", + "SentimentScore": { + "Mixed": 0, + "Negative": 0, + "Neutral": 1, + "Positive": 0 + } + } + }, + { + "BeginOffset": 67, + "EndOffset": 68, + "Score": 0.999994, + "GroupScore": 0.999499, + "Text": "I", + "Type": "PERSON", + "MentionSentiment": { + "Sentiment": "NEUTRAL", + "SentimentScore": { + "Mixed": 0, + "Negative": 0, + "Neutral": 1, + "Positive": 0 + } + } + } + ] + }, + { + "DescriptiveMentionIndex": [ + 0 + ], + "Mentions": [ + { + "BeginOffset": 75, + "EndOffset": 78, + "Score": 0.999978, + "GroupScore": 1, + "Text": "kid", + "Type": "PERSON", + "MentionSentiment": { + "Sentiment": "NEUTRAL", + "SentimentScore": { + "Mixed": 0, + "Negative": 0, + "Neutral": 1, + "Positive": 0 + } + } + } + ] + } + ], + "File": "SampleMovieReview2.txt", + "Line": 0 + } + +Contents of ``SampleMovieReview3.txt.out`` with line indents for readability:: + + { + "Entities": [ + { + "DescriptiveMentionIndex": [ + 1 + ], + "Mentions": [ + { + "BeginOffset": 64, + "EndOffset": 68, + "Score": 0.992953, + "GroupScore": 0.999814, + "Text": "film", + "Type": "MOVIE", + "MentionSentiment": { + "Sentiment": "NEUTRAL", + "SentimentScore": { + "Mixed": 0.000004, + "Negative": 0.010425, + "Neutral": 0.989543, + "Positive": 0.000027 + } + } + }, + { + "BeginOffset": 37, + "EndOffset": 45, + "Score": 0.999782, + "GroupScore": 1, + "Text": "AnyMovie", + "Type": "ORGANIZATION", + "MentionSentiment": { + "Sentiment": "POSITIVE", + "SentimentScore": { + "Mixed": 0.000095, + "Negative": 0.039847, + "Neutral": 0.000673, + "Positive": 0.959384 + } + } + } + ] + }, + { + "DescriptiveMentionIndex": [ + 0 + ], + "Mentions": [ + { + "BeginOffset": 47, + "EndOffset": 50, + "Score": 0.999991, + "GroupScore": 1, + "Text": "All", + "Type": "QUANTITY", + "MentionSentiment": { + "Sentiment": "NEUTRAL", + "SentimentScore": { + "Mixed": 0.000001, + "Negative": 0.000001, + "Neutral": 0.999998, + "Positive": 0 + } + } + } + ] + }, + { + "DescriptiveMentionIndex": [ + 0 + ], + "Mentions": [ + { + "BeginOffset": 106, + "EndOffset": 115, + "Score": 0.542083, + "GroupScore": 1, + "Text": "directors", + "Type": "PERSON", + "MentionSentiment": { + "Sentiment": "NEUTRAL", + "SentimentScore": { + "Mixed": 0, + "Negative": 0, + "Neutral": 1, + "Positive": 0 + } + } + } + ] + } + ], + "File": "SampleMovieReview3.txt", + "Line": 0 + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-topics-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-topics-detection-job.rst new file mode 100644 index 000000000..750570cd6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/start-topics-detection-job.rst @@ -0,0 +1,24 @@ +**To start a topics detection analysis job** + +The following ``start-topics-detection-job`` example starts an asynchronous topics detection job for all files located at the address specified by the ``--input-data-config`` tag. +When the job is complete, the folder, ``output``, is placed at the location specified by the ``--ouput-data-config`` tag. +``output`` contains `topic-terms.csv` and `doc-topics.csv`. The first output file, `topic-terms.csv`, is a list of topics in the collection. For each topic, the list includes, by default, the top terms by topic according to their weight. +The second file, ``doc-topics.csv``, lists the documents associated with a topic and the proportion of the document that is concerned with the topic. :: + + aws comprehend start-topics-detection-job \ + --job-name example_topics_detection_job \ + --language-code en \ + --input-data-config "S3Uri=s3://amzn-s3-demo-bucket/" \ + --output-data-config "S3Uri=s3://amzn-s3-demo-destination-bucket/testfolder/" \ + --data-access-role-arn arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role \ + --language-code en + +Output:: + + { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE", + "JobArn": "arn:aws:comprehend:us-west-2:111122223333:key-phrases-detection-job/123456abcdeb0e11022f22a11EXAMPLE", + "JobStatus": "SUBMITTED" + } + +For more information, see `Topic Modeling `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-dominant-language-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-dominant-language-detection-job.rst new file mode 100644 index 000000000..a4a5a4574 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-dominant-language-detection-job.rst @@ -0,0 +1,16 @@ +**To stop an asynchronous dominant language detection job** + +The following ``stop-dominant-language-detection-job`` example stops an in-progress, asynchronous dominant language detection job. If the current job state is ``IN_PROGRESS`` the job is marked for +termination and put into the ``STOP_REQUESTED`` state. If the job completes before it can be stopped, it is put into the ``COMPLETED`` state. :: + + aws comprehend stop-dominant-language-detection-job \ + --job-id 123456abcdeb0e11022f22a11EXAMPLE + +Output:: + + { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE, + "JobStatus": "STOP_REQUESTED" + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-entities-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-entities-detection-job.rst new file mode 100644 index 000000000..1d1b834e0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-entities-detection-job.rst @@ -0,0 +1,16 @@ +**To stop an asynchronous entities detection job** + +The following ``stop-entities-detection-job`` example stops an in-progress, asynchronous entities detection job. If the current job state is ``IN_PROGRESS`` the job is marked for +termination and put into the ``STOP_REQUESTED`` state. If the job completes before it can be stopped, it is put into the ``COMPLETED`` state. :: + + aws comprehend stop-entities-detection-job \ + --job-id 123456abcdeb0e11022f22a11EXAMPLE + +Output:: + + { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE, + "JobStatus": "STOP_REQUESTED" + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-events-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-events-detection-job.rst new file mode 100644 index 000000000..389dfb612 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-events-detection-job.rst @@ -0,0 +1,16 @@ +**To stop an asynchronous events detection job** + +The following ``stop-events-detection-job`` example stops an in-progress, asynchronous events detection job. If the current job state is ``IN_PROGRESS`` the job is marked for +termination and put into the ``STOP_REQUESTED`` state. If the job completes before it can be stopped, it is put into the ``COMPLETED`` state. :: + + aws comprehend stop-events-detection-job \ + --job-id 123456abcdeb0e11022f22a11EXAMPLE + +Output:: + + { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE, + "JobStatus": "STOP_REQUESTED" + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-key-phrases-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-key-phrases-detection-job.rst new file mode 100644 index 000000000..32383c7f2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-key-phrases-detection-job.rst @@ -0,0 +1,16 @@ +**To stop an asynchronous key phrases detection job** + +The following ``stop-key-phrases-detection-job`` example stops an in-progress, asynchronous key phrases detection job. If the current job state is ``IN_PROGRESS`` the job is marked for +termination and put into the ``STOP_REQUESTED`` state. If the job completes before it can be stopped, it is put into the ``COMPLETED`` state. :: + + aws comprehend stop-key-phrases-detection-job \ + --job-id 123456abcdeb0e11022f22a11EXAMPLE + +Output:: + + { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE, + "JobStatus": "STOP_REQUESTED" + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-pii-entities-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-pii-entities-detection-job.rst new file mode 100644 index 000000000..e48188f3e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-pii-entities-detection-job.rst @@ -0,0 +1,17 @@ +**To stop an asynchronous pii entities detection job** + +The following ``stop-pii-entities-detection-job`` example stops an in-progress, asynchronous pii entities detection job. If the current job state is ``IN_PROGRESS`` the job is marked for +termination and put into the ``STOP_REQUESTED`` state. If the job completes before it can be stopped, it is put into the ``COMPLETED`` state. :: + + aws comprehend stop-pii-entities-detection-job \ + --job-id 123456abcdeb0e11022f22a11EXAMPLE + +Output:: + + { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE, + "JobStatus": "STOP_REQUESTED" + } + + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-sentiment-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-sentiment-detection-job.rst new file mode 100644 index 000000000..7d54a6e66 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-sentiment-detection-job.rst @@ -0,0 +1,16 @@ +**To stop an asynchronous sentiment detection job** + +The following ``stop-sentiment-detection-job`` example stops an in-progress, asynchronous sentiment detection job. If the current job state is ``IN_PROGRESS`` the job is marked for +termination and put into the ``STOP_REQUESTED`` state. If the job completes before it can be stopped, it is put into the ``COMPLETED`` state. :: + + aws comprehend stop-sentiment-detection-job \ + --job-id 123456abcdeb0e11022f22a11EXAMPLE + +Output:: + + { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE, + "JobStatus": "STOP_REQUESTED" + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-targeted-sentiment-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-targeted-sentiment-detection-job.rst new file mode 100644 index 000000000..d4aef7d37 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-targeted-sentiment-detection-job.rst @@ -0,0 +1,16 @@ +**To stop an asynchronous targeted sentiment detection job** + +The following ``stop-targeted-sentiment-detection-job`` example stops an in-progress, asynchronous targeted sentiment detection job. If the current job state is ``IN_PROGRESS`` the job is marked for +termination and put into the ``STOP_REQUESTED`` state. If the job completes before it can be stopped, it is put into the ``COMPLETED`` state. :: + + aws comprehend stop-targeted-sentiment-detection-job \ + --job-id 123456abcdeb0e11022f22a11EXAMPLE + +Output:: + + { + "JobId": "123456abcdeb0e11022f22a11EXAMPLE, + "JobStatus": "STOP_REQUESTED" + } + +For more information, see `Async analysis for Amazon Comprehend insights `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-training-document-classifier.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-training-document-classifier.rst new file mode 100644 index 000000000..6135c9182 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-training-document-classifier.rst @@ -0,0 +1,10 @@ +**To stop the training of a document classifier model** + +The following ``stop-training-document-classifier`` example stops the training of a document classifier model while in-progress. :: + + aws comprehend stop-training-document-classifier + --document-classifier-arn arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-classifier + +This command produces no output. + +For more information, see `Creating and managing custom models `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-training-entity-recognizer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-training-entity-recognizer.rst new file mode 100644 index 000000000..663e7f474 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/stop-training-entity-recognizer.rst @@ -0,0 +1,10 @@ +**To stop the training of an entity recognizer model** + +The following ``stop-training-entity-recognizer`` example stops the training of an entity recognizer model while in-progress. :: + + aws comprehend stop-training-entity-recognizer + --entity-recognizer-arn "arn:aws:comprehend:us-west-2:111122223333:entity-recognizer/examplerecognizer1" + +This command produces no output. + +For more information, see `Creating and managing custom models `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/tag-resource.rst new file mode 100644 index 000000000..17435d796 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/tag-resource.rst @@ -0,0 +1,23 @@ +**Example 1: To tag a resource** + +The following ``tag-resource`` example adds a single tag to an Amazon Comprehend resource. :: + + aws comprehend tag-resource \ + --resource-arn arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-classifier/version/1 \ + --tags Key=Location,Value=Seattle + +This command has no output. + +For more information, see `Tagging your resources `__ in the *Amazon Comprehend Developer Guide*. + +**Example 2: To add multiple tags to a resource** + +The following ``tag-resource`` example adds multiple tags to an Amazon Comprehend resource. :: + + aws comprehend tag-resource \ + --resource-arn "arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-classifier/version/1" \ + --tags Key=location,Value=Seattle Key=Department,Value=Finance + +This command has no output. + +For more information, see `Tagging your resources `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/untag-resource.rst new file mode 100644 index 000000000..42863c4a5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/untag-resource.rst @@ -0,0 +1,23 @@ +**Example 1: To remove a single tag from a resource** + +The following ``untag-resource`` example removes a single tag from an Amazon Comprehend resource. :: + + aws comprehend untag-resource \ + --resource-arn arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-classifier/version/1 + --tag-keys Location + +This command produces no output. + +For more information, see `Tagging your resources `__ in the *Amazon Comprehend Developer Guide*. + +**Example 2: To remove multiple tags from a resource** + +The following ``untag-resource`` example removes multiple tags from an Amazon Comprehend resource. :: + + aws comprehend untag-resource \ + --resource-arn arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-classifier/version/1 + --tag-keys Location Department + +This command produces no output. + +For more information, see `Tagging your resources `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/update-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/update-endpoint.rst new file mode 100644 index 000000000..7cfaaa28d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/update-endpoint.rst @@ -0,0 +1,23 @@ +**Example 1: To update an endpoint's inference units** + +The following ``update-endpoint`` example updates information about an endpoint. In this example, the number of inference units is increased. :: + + aws comprehend update-endpoint \ + --endpoint-arn arn:aws:comprehend:us-west-2:111122223333:document-classifier-endpoint/example-classifier-endpoint + --desired-inference-units 2 + +This command produces no output. + +For more information, see `Managing Amazon Comprehend endpoints `__ in the *Amazon Comprehend Developer Guide*. + +**Example 2: To update an endpoint's actie model** + +The following ``update-endpoint`` example updates information about an endpoint. In this example, the active model is changed. :: + + aws comprehend update-endpoint \ + --endpoint-arn arn:aws:comprehend:us-west-2:111122223333:document-classifier-endpoint/example-classifier-endpoint + --active-model-arn arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-classifier-new + +This command produces no output. + +For more information, see `Managing Amazon Comprehend endpoints `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/update-flywheel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/update-flywheel.rst new file mode 100644 index 000000000..622805781 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehend/update-flywheel.rst @@ -0,0 +1,32 @@ +**To update a flywheel configuration** + +The following ``update-flywheel`` example updates a flywheel configuration. In this example, the active model for the flywheel is updated. :: + + aws comprehend update-flywheel \ + --flywheel-arn arn:aws:comprehend:us-west-2:111122223333:flywheel/example-flywheel-1 \ + --active-model-arn arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-classifier/version/new-example-classifier-model + +Output:: + + { + "FlywheelProperties": { + "FlywheelArn": "arn:aws:comprehend:us-west-2:111122223333:flywheel/flywheel-entity", + "ActiveModelArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/example-classifier/version/new-example-classifier-model", + "DataAccessRoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonComprehendServiceRole-example-role", + "TaskConfig": { + "LanguageCode": "en", + "DocumentClassificationConfig": { + "Mode": "MULTI_CLASS" + } + }, + "DataLakeS3Uri": "s3://amzn-s3-demo-bucket/flywheel-entity/schemaVersion=1/20230616T200543Z/", + "DataSecurityConfig": {}, + "Status": "ACTIVE", + "ModelType": "DOCUMENT_CLASSIFIER", + "CreationTime": "2023-06-16T20:05:43.242000+00:00", + "LastModifiedTime": "2023-06-19T04:00:43.027000+00:00", + "LatestFlywheelIteration": "20230619T040032Z" + } + } + +For more information, see `Flywheel overview `__ in the *Amazon Comprehend Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/describe-entities-detection-v2-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/describe-entities-detection-v2-job.rst new file mode 100644 index 000000000..f348af339 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/describe-entities-detection-v2-job.rst @@ -0,0 +1,31 @@ +**To describe an entities detection job** + +The following ``describe-entities-detection-v2-job`` example displays the properties associated with an asynchronous entity detection job. :: + + aws comprehendmedical describe-entities-detection-v2-job \ + --job-id "ab9887877365fe70299089371c043b96" + +Output:: + + { + "ComprehendMedicalAsyncJobProperties": { + "JobId": "ab9887877365fe70299089371c043b96", + "JobStatus": "COMPLETED", + "SubmitTime": "2020-03-18T21:20:15.614000+00:00", + "EndTime": "2020-03-18T21:27:07.350000+00:00", + "ExpirationTime": "2020-07-16T21:20:15+00:00", + "InputDataConfig": { + "S3Bucket": "comp-med-input", + "S3Key": "" + }, + "OutputDataConfig": { + "S3Bucket": "comp-med-output", + "S3Key": "867139942017-EntitiesDetection-ab9887877365fe70299089371c043b96/" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::867139942017:role/ComprehendMedicalBatchProcessingRole", + "ModelVersion": "DetectEntitiesModelV20190930" + } + } + +For more information, see `Batch APIs `__ in the *Amazon Comprehend Medical Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/describe-icd10-cm-inference-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/describe-icd10-cm-inference-job.rst new file mode 100644 index 000000000..43993d5e6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/describe-icd10-cm-inference-job.rst @@ -0,0 +1,31 @@ +**To describe an ICD-10-CM inference job** + +The following ``describe-icd10-cm-inference-job`` example describes the properties of the requested inference job with the specified job-id. :: + + aws comprehendmedical describe-icd10-cm-inference-job \ + --job-id "5780034166536cdb52ffa3295a1b00a7" + +Output:: + + { + "ComprehendMedicalAsyncJobProperties": { + "JobId": "5780034166536cdb52ffa3295a1b00a7", + "JobStatus": "COMPLETED", + "SubmitTime": "2020-05-18T21:20:15.614000+00:00", + "EndTime": "2020-05-18T21:27:07.350000+00:00", + "ExpirationTime": "2020-09-16T21:20:15+00:00", + "InputDataConfig": { + "S3Bucket": "comp-med-input", + "S3Key": "AKIAIOSFODNN7EXAMPLE" + }, + "OutputDataConfig": { + "S3Bucket": "comp-med-output", + "S3Key": "AKIAIOSFODNN7EXAMPLE" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::867139942017:role/ComprehendMedicalBatchProcessingRole", + "ModelVersion": "0.1.0" + } + } + +For more information, see `Ontology linking batch analysis `__ in the *Amazon Comprehend Medical Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/describe-phi-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/describe-phi-detection-job.rst new file mode 100644 index 000000000..d28a015ff --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/describe-phi-detection-job.rst @@ -0,0 +1,31 @@ +**To describe a PHI detection job** + +The following ``describe-phi-detection-job`` example displays the properties associated with an asynchronous protected health information (PHI) detection job. :: + + aws comprehendmedical describe-phi-detection-job \ + --job-id "4750034166536cdb52ffa3295a1b00a3" + +Output:: + + { + "ComprehendMedicalAsyncJobProperties": { + "JobId": "4750034166536cdb52ffa3295a1b00a3", + "JobStatus": "COMPLETED", + "SubmitTime": "2020-03-19T20:38:37.594000+00:00", + "EndTime": "2020-03-19T20:45:07.894000+00:00", + "ExpirationTime": "2020-07-17T20:38:37+00:00", + "InputDataConfig": { + "S3Bucket": "comp-med-input", + "S3Key": "" + }, + "OutputDataConfig": { + "S3Bucket": "comp-med-output", + "S3Key": "867139942017-PHIDetection-4750034166536cdb52ffa3295a1b00a3/" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::867139942017:role/ComprehendMedicalBatchProcessingRole", + "ModelVersion": "PHIModelV20190903" + } + } + +For more information, see `Batch APIs `__ in the *Amazon Comprehend Medical Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/describe-rx-norm-inference-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/describe-rx-norm-inference-job.rst new file mode 100644 index 000000000..80db912cd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/describe-rx-norm-inference-job.rst @@ -0,0 +1,31 @@ +**To describe an RxNorm inference job** + +The following ``describe-rx-norm-inference-job`` example describes the properties of the requested inference job with the specified job-id. :: + + aws comprehendmedical describe-rx-norm-inference-job \ + --job-id "eg8199877365fc70299089371c043b96" + +Output:: + + { + "ComprehendMedicalAsyncJobProperties": { + "JobId": "g8199877365fc70299089371c043b96", + "JobStatus": "COMPLETED", + "SubmitTime": "2020-05-18T21:20:15.614000+00:00", + "EndTime": "2020-05-18T21:27:07.350000+00:00", + "ExpirationTime": "2020-09-16T21:20:15+00:00", + "InputDataConfig": { + "S3Bucket": "comp-med-input", + "S3Key": "AKIAIOSFODNN7EXAMPLE" + }, + "OutputDataConfig": { + "S3Bucket": "comp-med-output", + "S3Key": "AKIAIOSFODNN7EXAMPLE" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::867139942017:role/ComprehendMedicalBatchProcessingRole", + "ModelVersion": "0.0.0" + } + } + +For more information, see `Ontology linking batch analysis `__ in the *Amazon Comprehend Medical Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/describe-snomedct-inference-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/describe-snomedct-inference-job.rst new file mode 100644 index 000000000..3638b560a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/describe-snomedct-inference-job.rst @@ -0,0 +1,31 @@ +**To describe an SNOMED CT inference job** + +The following ``describe-snomedct-inference-job`` example describes the properties of the requested inference job with the specified job-id. :: + + aws comprehendmedical describe-snomedct-inference-job \ + --job-id "2630034166536cdb52ffa3295a1b00a7" + +Output:: + + { + "ComprehendMedicalAsyncJobProperties": { + "JobId": "2630034166536cdb52ffa3295a1b00a7", + "JobStatus": "COMPLETED", + "SubmitTime": "2021-12-18T21:20:15.614000+00:00", + "EndTime": "2021-12-18T21:27:07.350000+00:00", + "ExpirationTime": "2022-05-16T21:20:15+00:00", + "InputDataConfig": { + "S3Bucket": "comp-med-input", + "S3Key": "AKIAIOSFODNN7EXAMPLE" + }, + "OutputDataConfig": { + "S3Bucket": "comp-med-output", + "S3Key": "AKIAIOSFODNN7EXAMPLE" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::867139942017:role/ComprehendMedicalBatchProcessingRole", + "ModelVersion": "0.1.0" + } + } + +For more information, see `Ontology linking batch analysis `__ in the *Amazon Comprehend Medical Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/detect-entities-v2.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/detect-entities-v2.rst new file mode 100644 index 000000000..45e47f035 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/detect-entities-v2.rst @@ -0,0 +1,49 @@ +**Example 1: To detect entities directly from text** + +The following ``detect-entities-v2`` example shows the detected entities and labels them according to type, directly from input text. :: + + aws comprehendmedical detect-entities-v2 \ + --text "Sleeping trouble on present dosage of Clonidine. Severe rash on face and leg, slightly itchy." + +Output:: + + { + "Id": 0, + "BeginOffset": 38, + "EndOffset": 47, + "Score": 0.9942955374717712, + "Text": "Clonidine", + "Category": "MEDICATION", + "Type": "GENERIC_NAME", + "Traits": [] + } + +For more information, see `Detect Entities Version 2 `__ in the *Amazon Comprehend Medical Developer Guide*. + +**Example 2: To detect entities from a file path** + +The following ``detect-entities-v2`` example shows the detected entities and labels them according to type from a file path. :: + + aws comprehendmedical detect-entities-v2 \ + --text file://medical_entities.txt + +Contents of ``medical_entities.txt``:: + + { + "Sleeping trouble on present dosage of Clonidine. Severe rash on face and leg, slightly itchy." + } + +Output:: + + { + "Id": 0, + "BeginOffset": 38, + "EndOffset": 47, + "Score": 0.9942955374717712, + "Text": "Clonidine", + "Category": "MEDICATION", + "Type": "GENERIC_NAME", + "Traits": [] + } + +For more information, see `Detect Entities Version 2 `__ in the *Amazon Comprehend Medical Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/detect-phi.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/detect-phi.rst new file mode 100644 index 000000000..e46c27908 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/detect-phi.rst @@ -0,0 +1,97 @@ +**Example 1: To detect protected health information (PHI) directly from text** + +The following ``detect-phi`` example displays the detected protected health information (PHI) entities directly from input text. :: + + aws comprehendmedical detect-phi \ + --text "Patient Carlos Salazar presented with rash on his upper extremities and dry cough. He lives at 100 Main Street, Anytown, USA where he works from his home as a carpenter." + +Output:: + + { + "Entities": [ + { + "Id": 0, + "BeginOffset": 8, + "EndOffset": 21, + "Score": 0.9914507269859314, + "Text": "Carlos Salazar", + "Category": "PROTECTED_HEALTH_INFORMATION", + "Type": "NAME", + "Traits": [] + }, + { + "Id": 1, + "BeginOffset": 94, + "EndOffset": 109, + "Score": 0.871849775314331, + "Text": "100 Main Street, Anytown, USA", + "Category": "PROTECTED_HEALTH_INFORMATION", + "Type": "ADDRESS", + "Traits": [] + }, + { + "Id": 2, + "BeginOffset": 145, + "EndOffset": 154, + "Score": 0.8302185535430908, + "Text": "carpenter", + "Category": "PROTECTED_HEALTH_INFORMATION", + "Type": "PROFESSION", + "Traits": [] + } + ], + "ModelVersion": "0.0.0" + } + +For more information, see `Detect PHI `__ in the *Amazon Comprehend Medical Developer Guide*. + +**Example 2: To detect protect health information (PHI) directly from a file path** + +The following ``detect-phi`` example shows the detected protected health information (PHI) entities from a file path. :: + + aws comprehendmedical detect-phi \ + --text file://phi.txt + +Contents of ``phi.txt``:: + + "Patient Carlos Salazar presented with a rash on his upper extremities and a dry cough. He lives at 100 Main Street, Anytown, USA, where he works from his home as a carpenter." + +Output:: + + { + "Entities": [ + { + "Id": 0, + "BeginOffset": 8, + "EndOffset": 21, + "Score": 0.9914507269859314, + "Text": "Carlos Salazar", + "Category": "PROTECTED_HEALTH_INFORMATION", + "Type": "NAME", + "Traits": [] + }, + { + "Id": 1, + "BeginOffset": 94, + "EndOffset": 109, + "Score": 0.871849775314331, + "Text": "100 Main Street, Anytown, USA", + "Category": "PROTECTED_HEALTH_INFORMATION", + "Type": "ADDRESS", + "Traits": [] + }, + { + "Id": 2, + "BeginOffset": 145, + "EndOffset": 154, + "Score": 0.8302185535430908, + "Text": "carpenter", + "Category": "PROTECTED_HEALTH_INFORMATION", + "Type": "PROFESSION", + "Traits": [] + } + ], + "ModelVersion": "0.0.0" + } + +For more information, see `Detect PHI `__ in the *Amazon Comprehend Medical Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/infer-icd10-cm.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/infer-icd10-cm.rst new file mode 100644 index 000000000..fcbfa7921 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/infer-icd10-cm.rst @@ -0,0 +1,211 @@ +**Example 1: To detect medical condition entities and link to the ICD-10-CM Ontology directly from text** + +The following ``infer-icd10-cm`` example labels the detected medical condition entities and links those entities with codes in the 2019 edition of the International Classification of Diseases Clinical Modification (ICD-10-CM). :: + + aws comprehendmedical infer-icd10-cm \ + --text "The patient complains of abdominal pain, has a long-standing history of diabetes treated with Micronase daily." + +Output:: + + { + "Entities": [ + { + "Id": 0, + "Text": "abdominal pain", + "Category": "MEDICAL_CONDITION", + "Type": "DX_NAME", + "Score": 0.9475538730621338, + "BeginOffset": 28, + "EndOffset": 42, + "Attributes": [], + "Traits": [ + { + "Name": "SYMPTOM", + "Score": 0.6724207401275635 + } + ], + "ICD10CMConcepts": [ + { + "Description": "Unspecified abdominal pain", + "Code": "R10.9", + "Score": 0.6904221177101135 + }, + { + "Description": "Epigastric pain", + "Code": "R10.13", + "Score": 0.1364113688468933 + }, + { + "Description": "Generalized abdominal pain", + "Code": "R10.84", + "Score": 0.12508003413677216 + }, + { + "Description": "Left lower quadrant pain", + "Code": "R10.32", + "Score": 0.10063883662223816 + }, + { + "Description": "Lower abdominal pain, unspecified", + "Code": "R10.30", + "Score": 0.09933677315711975 + } + ] + }, + { + "Id": 1, + "Text": "diabetes", + "Category": "MEDICAL_CONDITION", + "Type": "DX_NAME", + "Score": 0.9899052977561951, + "BeginOffset": 75, + "EndOffset": 83, + "Attributes": [], + "Traits": [ + { + "Name": "DIAGNOSIS", + "Score": 0.9258432388305664 + } + ], + "ICD10CMConcepts": [ + { + "Description": "Type 2 diabetes mellitus without complications", + "Code": "E11.9", + "Score": 0.7158446311950684 + }, + { + "Description": "Family history of diabetes mellitus", + "Code": "Z83.3", + "Score": 0.5704703330993652 + }, + { + "Description": "Family history of other endocrine, nutritional and metabolic diseases", + "Code": "Z83.49", + "Score": 0.19856023788452148 + }, + { + "Description": "Type 1 diabetes mellitus with ketoacidosis without coma", + "Code": "E10.10", + "Score": 0.13285516202449799 + }, + { + "Description": "Type 2 diabetes mellitus with hyperglycemia", + "Code": "E11.65", + "Score": 0.0993388369679451 + } + ] + } + ], + "ModelVersion": "0.1.0" + } + +For more information, see `Infer ICD10-CM `__ in the *Amazon Comprehend Medical Developer Guide*. + +**Example 2: To detect medical condition entities and link to the ICD-10-CM Ontology from a file pathway** + +The following ``infer-icd-10-cm`` example labels the detected medical condition entities and links those entities with codes in the 2019 edition of the International Classification of Diseases Clinical Modification (ICD-10-CM). :: + + aws comprehendmedical infer-icd10-cm \ + --text file://icd10cm.txt + +Contents of ``icd10cm.txt``:: + + { + "The patient complains of abdominal pain, has a long-standing history of diabetes treated with Micronase daily." + } + +Output:: + + { + "Entities": [ + { + "Id": 0, + "Text": "abdominal pain", + "Category": "MEDICAL_CONDITION", + "Type": "DX_NAME", + "Score": 0.9475538730621338, + "BeginOffset": 28, + "EndOffset": 42, + "Attributes": [], + "Traits": [ + { + "Name": "SYMPTOM", + "Score": 0.6724207401275635 + } + ], + "ICD10CMConcepts": [ + { + "Description": "Unspecified abdominal pain", + "Code": "R10.9", + "Score": 0.6904221177101135 + }, + { + "Description": "Epigastric pain", + "Code": "R10.13", + "Score": 0.1364113688468933 + }, + { + "Description": "Generalized abdominal pain", + "Code": "R10.84", + "Score": 0.12508003413677216 + }, + { + "Description": "Left lower quadrant pain", + "Code": "R10.32", + "Score": 0.10063883662223816 + }, + { + "Description": "Lower abdominal pain, unspecified", + "Code": "R10.30", + "Score": 0.09933677315711975 + } + ] + }, + { + "Id": 1, + "Text": "diabetes", + "Category": "MEDICAL_CONDITION", + "Type": "DX_NAME", + "Score": 0.9899052977561951, + "BeginOffset": 75, + "EndOffset": 83, + "Attributes": [], + "Traits": [ + { + "Name": "DIAGNOSIS", + "Score": 0.9258432388305664 + } + ], + "ICD10CMConcepts": [ + { + "Description": "Type 2 diabetes mellitus without complications", + "Code": "E11.9", + "Score": 0.7158446311950684 + }, + { + "Description": "Family history of diabetes mellitus", + "Code": "Z83.3", + "Score": 0.5704703330993652 + }, + { + "Description": "Family history of other endocrine, nutritional and metabolic diseases", + "Code": "Z83.49", + "Score": 0.19856023788452148 + }, + { + "Description": "Type 1 diabetes mellitus with ketoacidosis without coma", + "Code": "E10.10", + "Score": 0.13285516202449799 + }, + { + "Description": "Type 2 diabetes mellitus with hyperglycemia", + "Code": "E11.65", + "Score": 0.0993388369679451 + } + ] + } + ], + "ModelVersion": "0.1.0" + } + +For more information, see `Infer-ICD10-CM `__ in the *Amazon Comprehend Medical Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/infer-rx-norm.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/infer-rx-norm.rst new file mode 100644 index 000000000..3398bbbd7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/infer-rx-norm.rst @@ -0,0 +1,263 @@ +**Example 1: To detect medication entities and link to RxNorm directly from text** + +The following ``infer-rx-norm`` example shows and labels the detected medication entities and links those entities to concept identifiers (RxCUI) from the National Library of Medicine RxNorm database. :: + + aws comprehendmedical infer-rx-norm \ + --text "Patient reports taking Levothyroxine 125 micrograms p.o. once daily, but denies taking Synthroid." + +Output:: + + { + "Entities": [ + { + "Id": 0, + "Text": "Levothyroxine", + "Category": "MEDICATION", + "Type": "GENERIC_NAME", + "Score": 0.9996285438537598, + "BeginOffset": 23, + "EndOffset": 36, + "Attributes": [ + { + "Type": "DOSAGE", + "Score": 0.9892290830612183, + "RelationshipScore": 0.9997978806495667, + "Id": 1, + "BeginOffset": 37, + "EndOffset": 51, + "Text": "125 micrograms", + "Traits": [] + }, + { + "Type": "ROUTE_OR_MODE", + "Score": 0.9988924860954285, + "RelationshipScore": 0.998291552066803, + "Id": 2, + "BeginOffset": 52, + "EndOffset": 56, + "Text": "p.o.", + "Traits": [] + }, + { + "Type": "FREQUENCY", + "Score": 0.9953463673591614, + "RelationshipScore": 0.9999889135360718, + "Id": 3, + "BeginOffset": 57, + "EndOffset": 67, + "Text": "once daily", + "Traits": [] + } + ], + "Traits": [], + "RxNormConcepts": [ + { + "Description": "Levothyroxine Sodium 0.125 MG Oral Tablet", + "Code": "966224", + "Score": 0.9912070631980896 + }, + { + "Description": "Levothyroxine Sodium 0.125 MG Oral Capsule", + "Code": "966405", + "Score": 0.8698278665542603 + }, + { + "Description": "Levothyroxine Sodium 0.125 MG Oral Tablet [Synthroid]", + "Code": "966191", + "Score": 0.7448257803916931 + }, + { + "Description": "levothyroxine", + "Code": "10582", + "Score": 0.7050482630729675 + }, + { + "Description": "Levothyroxine Sodium 0.125 MG Oral Tablet [Levoxyl]", + "Code": "966190", + "Score": 0.6921631693840027 + } + ] + }, + { + "Id": 4, + "Text": "Synthroid", + "Category": "MEDICATION", + "Type": "BRAND_NAME", + "Score": 0.9946461319923401, + "BeginOffset": 86, + "EndOffset": 95, + "Attributes": [], + "Traits": [ + { + "Name": "NEGATION", + "Score": 0.5167351961135864 + } + ], + "RxNormConcepts": [ + { + "Description": "Synthroid", + "Code": "224920", + "Score": 0.9462039470672607 + }, + { + "Description": "Levothyroxine Sodium 0.088 MG Oral Tablet [Synthroid]", + "Code": "966282", + "Score": 0.8309829235076904 + }, + { + "Description": "Levothyroxine Sodium 0.125 MG Oral Tablet [Synthroid]", + "Code": "966191", + "Score": 0.4945160448551178 + }, + { + "Description": "Levothyroxine Sodium 0.05 MG Oral Tablet [Synthroid]", + "Code": "966247", + "Score": 0.3674522042274475 + }, + { + "Description": "Levothyroxine Sodium 0.025 MG Oral Tablet [Synthroid]", + "Code": "966158", + "Score": 0.2588822841644287 + } + ] + } + ], + "ModelVersion": "0.0.0" + } + +For more information, see `Infer RxNorm `__ in the *Amazon Comprehend Medical Developer Guide*. + +**Example 2: To detect medication entities and link to RxNorm from a file path.** + +The following ``infer-rx-norm`` example shows and labels the detected medication entities and links those entities to concept identifiers (RxCUI) from the National Library of Medicine RxNorm database. :: + + aws comprehendmedical infer-rx-norm \ + --text file://rxnorm.txt + +Contents of ``rxnorm.txt``:: + + { + "Patient reports taking Levothyroxine 125 micrograms p.o. once daily, but denies taking Synthroid." + } + +Output:: + + { + "Entities": [ + { + "Id": 0, + "Text": "Levothyroxine", + "Category": "MEDICATION", + "Type": "GENERIC_NAME", + "Score": 0.9996285438537598, + "BeginOffset": 23, + "EndOffset": 36, + "Attributes": [ + { + "Type": "DOSAGE", + "Score": 0.9892290830612183, + "RelationshipScore": 0.9997978806495667, + "Id": 1, + "BeginOffset": 37, + "EndOffset": 51, + "Text": "125 micrograms", + "Traits": [] + }, + { + "Type": "ROUTE_OR_MODE", + "Score": 0.9988924860954285, + "RelationshipScore": 0.998291552066803, + "Id": 2, + "BeginOffset": 52, + "EndOffset": 56, + "Text": "p.o.", + "Traits": [] + }, + { + "Type": "FREQUENCY", + "Score": 0.9953463673591614, + "RelationshipScore": 0.9999889135360718, + "Id": 3, + "BeginOffset": 57, + "EndOffset": 67, + "Text": "once daily", + "Traits": [] + } + ], + "Traits": [], + "RxNormConcepts": [ + { + "Description": "Levothyroxine Sodium 0.125 MG Oral Tablet", + "Code": "966224", + "Score": 0.9912070631980896 + }, + { + "Description": "Levothyroxine Sodium 0.125 MG Oral Capsule", + "Code": "966405", + "Score": 0.8698278665542603 + }, + { + "Description": "Levothyroxine Sodium 0.125 MG Oral Tablet [Synthroid]", + "Code": "966191", + "Score": 0.7448257803916931 + }, + { + "Description": "levothyroxine", + "Code": "10582", + "Score": 0.7050482630729675 + }, + { + "Description": "Levothyroxine Sodium 0.125 MG Oral Tablet [Levoxyl]", + "Code": "966190", + "Score": 0.6921631693840027 + } + ] + }, + { + "Id": 4, + "Text": "Synthroid", + "Category": "MEDICATION", + "Type": "BRAND_NAME", + "Score": 0.9946461319923401, + "BeginOffset": 86, + "EndOffset": 95, + "Attributes": [], + "Traits": [ + { + "Name": "NEGATION", + "Score": 0.5167351961135864 + } + ], + "RxNormConcepts": [ + { + "Description": "Synthroid", + "Code": "224920", + "Score": 0.9462039470672607 + }, + { + "Description": "Levothyroxine Sodium 0.088 MG Oral Tablet [Synthroid]", + "Code": "966282", + "Score": 0.8309829235076904 + }, + { + "Description": "Levothyroxine Sodium 0.125 MG Oral Tablet [Synthroid]", + "Code": "966191", + "Score": 0.4945160448551178 + }, + { + "Description": "Levothyroxine Sodium 0.05 MG Oral Tablet [Synthroid]", + "Code": "966247", + "Score": 0.3674522042274475 + }, + { + "Description": "Levothyroxine Sodium 0.025 MG Oral Tablet [Synthroid]", + "Code": "966158", + "Score": 0.2588822841644287 + } + ] + } + ], + "ModelVersion": "0.0.0" + } + +For more information, see `Infer RxNorm `__ in the *Amazon Comprehend Medical Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/infer-snomedct.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/infer-snomedct.rst new file mode 100644 index 000000000..8d9e1a3ba --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/infer-snomedct.rst @@ -0,0 +1,71 @@ +**Example: To detect entities and link to the SNOMED CT Ontology directly from text** + +The following ``infer-snomedct`` example shows how to detect medical entities and link them to concepts from the 2021-03 version of the Systematized Nomenclature of Medicine, Clinical Terms (SNOMED CT). :: + + aws comprehendmedical infer-snomedct \ + --text "The patient complains of abdominal pain, has a long-standing history of diabetes treated with Micronase daily." + +Output:: + + { + "Entities": [ + { + "Id": 3, + "BeginOffset": 26, + "EndOffset": 40, + "Score": 0.9598260521888733, + "Text": "abdominal pain", + "Category": "MEDICAL_CONDITION", + "Type": "DX_NAME", + "Traits": [ + { + "Name": "SYMPTOM", + "Score": 0.6819021701812744 + } + ] + }, + { + "Id": 4, + "BeginOffset": 73, + "EndOffset": 81, + "Score": 0.9905840158462524, + "Text": "diabetes", + "Category": "MEDICAL_CONDITION", + "Type": "DX_NAME", + "Traits": [ + { + "Name": "DIAGNOSIS", + "Score": 0.9255214333534241 + } + ] + }, + { + "Id": 1, + "BeginOffset": 95, + "EndOffset": 104, + "Score": 0.6371926665306091, + "Text": "Micronase", + "Category": "MEDICATION", + "Type": "BRAND_NAME", + "Traits": [], + "Attributes": [ + { + "Type": "FREQUENCY", + "Score": 0.9761165380477905, + "RelationshipScore": 0.9984188079833984, + "RelationshipType": "FREQUENCY", + "Id": 2, + "BeginOffset": 105, + "EndOffset": 110, + "Text": "daily", + "Category": "MEDICATION", + "Traits": [] + } + ] + } + ], + "UnmappedAttributes": [], + "ModelVersion": "1.0.0" + } + +For more information, see `InferSNOMEDCT `__ in the *Amazon Comprehend Medical Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/list-entities-detection-v2-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/list-entities-detection-v2-jobs.rst new file mode 100644 index 000000000..0a9acfa30 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/list-entities-detection-v2-jobs.rst @@ -0,0 +1,32 @@ +**To list entities detection jobs** + +The following ``list-entities-detection-v2-jobs`` example lists current asynchronous detection jobs. :: + + aws comprehendmedical list-entities-detection-v2-jobs + +Output:: + + { + "ComprehendMedicalAsyncJobPropertiesList": [ + { + "JobId": "ab9887877365fe70299089371c043b96", + "JobStatus": "COMPLETED", + "SubmitTime": "2020-03-19T20:38:37.594000+00:00", + "EndTime": "2020-03-19T20:45:07.894000+00:00", + "ExpirationTime": "2020-07-17T20:38:37+00:00", + "InputDataConfig": { + "S3Bucket": "comp-med-input", + "S3Key": "" + }, + "OutputDataConfig": { + "S3Bucket": "comp-med-output", + "S3Key": "867139942017-EntitiesDetection-ab9887877365fe70299089371c043b96/" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::867139942017:role/ComprehendMedicalBatchProcessingRole", + "ModelVersion": "DetectEntitiesModelV20190930" + } + ] + } + +For more information, see `Batch APIs `__ in the *Amazon Comprehend Medical Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/list-icd10-cm-inference-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/list-icd10-cm-inference-jobs.rst new file mode 100644 index 000000000..b3bc1e349 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/list-icd10-cm-inference-jobs.rst @@ -0,0 +1,32 @@ +**To list all current ICD-10-CM inference jobs** + +The following example shows how the ``list-icd10-cm-inference-jobs`` operation returns a list of current asynchronous ICD-10-CM batch inference jobs. :: + + aws comprehendmedical list-icd10-cm-inference-jobs + +Output:: + + { + "ComprehendMedicalAsyncJobPropertiesList": [ + { + "JobId": "5780034166536cdb52ffa3295a1b00a7", + "JobStatus": "COMPLETED", + "SubmitTime": "2020-05-19T20:38:37.594000+00:00", + "EndTime": "2020-05-19T20:45:07.894000+00:00", + "ExpirationTime": "2020-09-17T20:38:37+00:00", + "InputDataConfig": { + "S3Bucket": "comp-med-input", + "S3Key": "AKIAIOSFODNN7EXAMPLE" + }, + "OutputDataConfig": { + "S3Bucket": "comp-med-output", + "S3Key": "AKIAIOSFODNN7EXAMPLE" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::867139942017:role/ComprehendMedicalBatchProcessingRole", + "ModelVersion": "0.1.0" + } + ] + } + +For more information, see `Ontology linking batch analysis `__ in the *Amazon Comprehend Medical Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/list-phi-detection-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/list-phi-detection-jobs.rst new file mode 100644 index 000000000..443c0e065 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/list-phi-detection-jobs.rst @@ -0,0 +1,32 @@ +**To list protected health information (PHI) detection jobs** + +The following ``list-phi-detection-jobs`` example lists current protected health information (PHI) detection jobs :: + + aws comprehendmedical list-phi-detection-jobs + +Output:: + + { + "ComprehendMedicalAsyncJobPropertiesList": [ + { + "JobId": "4750034166536cdb52ffa3295a1b00a3", + "JobStatus": "COMPLETED", + "SubmitTime": "2020-03-19T20:38:37.594000+00:00", + "EndTime": "2020-03-19T20:45:07.894000+00:00", + "ExpirationTime": "2020-07-17T20:38:37+00:00", + "InputDataConfig": { + "S3Bucket": "comp-med-input", + "S3Key": "" + }, + "OutputDataConfig": { + "S3Bucket": "comp-med-output", + "S3Key": "867139942017-PHIDetection-4750034166536cdb52ffa3295a1b00a3/" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::867139942017:role/ComprehendMedicalBatchProcessingRole", + "ModelVersion": "PHIModelV20190903" + } + ] + } + +For more information, see `Batch APIs `__ in the *Amazon Comprehend Medical Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/list-rx-norm-inference-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/list-rx-norm-inference-jobs.rst new file mode 100644 index 000000000..c200d7f89 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/list-rx-norm-inference-jobs.rst @@ -0,0 +1,32 @@ +**To list all current Rx-Norm inference jobs** + +The following example shows how ``list-rx-norm-inference-jobs`` returns a list of current asynchronous Rx-Norm batch inference jobs. :: + + aws comprehendmedical list-rx-norm-inference-jobs + +Output:: + + { + "ComprehendMedicalAsyncJobPropertiesList": [ + { + "JobId": "4980034166536cfb52gga3295a1b00a3", + "JobStatus": "COMPLETED", + "SubmitTime": "2020-05-19T20:38:37.594000+00:00", + "EndTime": "2020-05-19T20:45:07.894000+00:00", + "ExpirationTime": "2020-09-17T20:38:37+00:00", + "InputDataConfig": { + "S3Bucket": "comp-med-input", + "S3Key": "AKIAIOSFODNN7EXAMPLE" + }, + "OutputDataConfig": { + "S3Bucket": "comp-med-output", + "S3Key": "AKIAIOSFODNN7EXAMPLE" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::867139942017:role/ComprehendMedicalBatchProcessingRole", + "ModelVersion": "0.0.0" + } + ] + } + +For more information, see `Ontology linking batch analysis `__ in the *Amazon Comprehend Medical Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/list-snomedct-inference-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/list-snomedct-inference-jobs.rst new file mode 100644 index 000000000..1e6764e0c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/list-snomedct-inference-jobs.rst @@ -0,0 +1,32 @@ +**To list all SNOMED CT inference jobs** + +The following example shows how the ``list-snomedct-inference-jobs`` operation returns a list of current asynchronous SNOMED CT batch inference jobs. :: + + aws comprehendmedical list-snomedct-inference-jobs + +Output:: + + { + "ComprehendMedicalAsyncJobPropertiesList": [ + { + "JobId": "5780034166536cdb52ffa3295a1b00a7", + "JobStatus": "COMPLETED", + "SubmitTime": "2020-05-19T20:38:37.594000+00:00", + "EndTime": "2020-05-19T20:45:07.894000+00:00", + "ExpirationTime": "2020-09-17T20:38:37+00:00", + "InputDataConfig": { + "S3Bucket": "comp-med-input", + "S3Key": "AKIAIOSFODNN7EXAMPLE" + }, + "OutputDataConfig": { + "S3Bucket": "comp-med-output", + "S3Key": "AKIAIOSFODNN7EXAMPLE" + }, + "LanguageCode": "en", + "DataAccessRoleArn": "arn:aws:iam::867139942017:role/ComprehendMedicalBatchProcessingRole", + "ModelVersion": "0.1.0" + } + ] + } + +For more information, see `Ontology linking batch analysis `__ in the *Amazon Comprehend Medical Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/start-entities-detection-v2-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/start-entities-detection-v2-job.rst new file mode 100644 index 000000000..945f4a583 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/start-entities-detection-v2-job.rst @@ -0,0 +1,17 @@ +**To start an entities detection job** + +The following ``start-entities-detection-v2-job`` example starts an asynchronous entity detection job. :: + + aws comprehendmedical start-entities-detection-v2-job \ + --input-data-config "S3Bucket=comp-med-input" \ + --output-data-config "S3Bucket=comp-med-output" \ + --data-access-role-arn arn:aws:iam::867139942017:role/ComprehendMedicalBatchProcessingRole \ + --language-code en + +Output:: + + { + "JobId": "ab9887877365fe70299089371c043b96" + } + +For more information, see `Batch APIs `__ in the *Amazon Comprehend Medical Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/start-icd10-cm-inference-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/start-icd10-cm-inference-job.rst new file mode 100644 index 000000000..03f27a2f6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/start-icd10-cm-inference-job.rst @@ -0,0 +1,17 @@ +**To start an ICD-10-CM inference job** + +The following ``start-icd10-cm-inference-job`` example starts an ICD-10-CM inference batch analysis job. :: + + aws comprehendmedical start-icd10-cm-inference-job \ + --input-data-config "S3Bucket=comp-med-input" \ + --output-data-config "S3Bucket=comp-med-output" \ + --data-access-role-arn arn:aws:iam::867139942017:role/ComprehendMedicalBatchProcessingRole \ + --language-code en + +Output:: + + { + "JobId": "ef7289877365fc70299089371c043b96" + } + +For more information, see `Ontology linking batch analysis `__ in the *Amazon Comprehend Medical Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/start-phi-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/start-phi-detection-job.rst new file mode 100644 index 000000000..09fdc1cf3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/start-phi-detection-job.rst @@ -0,0 +1,17 @@ +**To start a PHI detection job** + +The following ``start-phi-detection-job`` example starts an asynchronous PHI entity detection job. :: + + aws comprehendmedical start-phi-detection-job \ + --input-data-config "S3Bucket=comp-med-input" \ + --output-data-config "S3Bucket=comp-med-output" \ + --data-access-role-arn arn:aws:iam::867139942017:role/ComprehendMedicalBatchProcessingRole \ + --language-code en + +Output:: + + { + "JobId": "ab9887877365fe70299089371c043b96" + } + +For more information, see `Batch APIs `__ in the *Amazon Comprehend Medical Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/start-rx-norm-inference-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/start-rx-norm-inference-job.rst new file mode 100644 index 000000000..4567511b5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/start-rx-norm-inference-job.rst @@ -0,0 +1,17 @@ +**To start an RxNorm inference job** + +The following ``start-rx-norm-inference-job`` example starts an RxNorm inference batch analysis job. :: + + aws comprehendmedical start-rx-norm-inference-job \ + --input-data-config "S3Bucket=comp-med-input" \ + --output-data-config "S3Bucket=comp-med-output" \ + --data-access-role-arn arn:aws:iam::867139942017:role/ComprehendMedicalBatchProcessingRole \ + --language-code en + +Output:: + + { + "JobId": "eg8199877365fc70299089371c043b96" + } + +For more information, see `Ontology linking batch analysis `__ in the *Amazon Comprehend Medical Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/start-snomedct-inference-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/start-snomedct-inference-job.rst new file mode 100644 index 000000000..7598e25b2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/start-snomedct-inference-job.rst @@ -0,0 +1,17 @@ +**To start an SNOMED CT inference job** + +The following ``start-snomedct-inference-job`` example starts a SNOMED CT inference batch analysis job. :: + + aws comprehendmedical start-snomedct-inference-job \ + --input-data-config "S3Bucket=comp-med-input" \ + --output-data-config "S3Bucket=comp-med-output" \ + --data-access-role-arn arn:aws:iam::867139942017:role/ComprehendMedicalBatchProcessingRole \ + --language-code en + +Output:: + + { + "JobId": "dg7289877365fc70299089371c043b96" + } + +For more information, see `Ontology linking batch analysis `__ in the *Amazon Comprehend Medical Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/stop-entities-detection-v2-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/stop-entities-detection-v2-job.rst new file mode 100644 index 000000000..19a8caa8a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/stop-entities-detection-v2-job.rst @@ -0,0 +1,14 @@ +**To stop an entity detection job** + +The following ``stop-entities-detection-v2-job`` example stops an asynchronous entity detection job. :: + + aws comprehendmedical stop-entities-detection-v2-job \ + --job-id "ab9887877365fe70299089371c043b96" + +Output:: + + { + "JobId": "ab9887877365fe70299089371c043b96" + } + +For more information, see `Batch APIs `__ in the *Amazon Comprehend Medical Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/stop-icd10-cm-inference-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/stop-icd10-cm-inference-job.rst new file mode 100644 index 000000000..5beee039e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/stop-icd10-cm-inference-job.rst @@ -0,0 +1,14 @@ +**To stop an ICD-10-CM inference job** + +The following ``stop-icd10-cm-inference-job`` example stops an ICD-10-CM inference batch analysis job. :: + + aws comprehendmedical stop-icd10-cm-inference-job \ + --job-id "4750034166536cdb52ffa3295a1b00a3" + +Output:: + + { + "JobId": "ef7289877365fc70299089371c043b96", + } + +For more information, see `Ontology linking batch analysis `__ in the *Amazon Comprehend Medical Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/stop-phi-detection-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/stop-phi-detection-job.rst new file mode 100644 index 000000000..32e80cf3b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/stop-phi-detection-job.rst @@ -0,0 +1,14 @@ +**To stop a protected health information (PHI) detection job** + +The following ``stop-phi-detection-job`` example stops an asynchronous protected health information (PHI) detection job. :: + + aws comprehendmedical stop-phi-detection-job \ + --job-id "4750034166536cdb52ffa3295a1b00a3" + +Output:: + + { + "JobId": "ab9887877365fe70299089371c043b96" + } + +For more information, see `Batch APIs `__ in the *Amazon Comprehend Medical Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/stop-rx-norm-inference-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/stop-rx-norm-inference-job.rst new file mode 100644 index 000000000..86c1ae34d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/stop-rx-norm-inference-job.rst @@ -0,0 +1,14 @@ +**To stop an RxNorm inference job** + +The following ``stop-rx-norm-inference-job`` example stops an ICD-10-CM inference batch analysis job. :: + + aws comprehendmedical stop-rx-norm-inference-job \ + --job-id "eg8199877365fc70299089371c043b96" + +Output:: + + { + "JobId": "eg8199877365fc70299089371c043b96", + } + +For more information, see `Ontology linking batch analysis `__ in the *Amazon Comprehend Medical Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/stop-snomedct-inference-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/stop-snomedct-inference-job.rst new file mode 100644 index 000000000..5c7050ce5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/comprehendmedical/stop-snomedct-inference-job.rst @@ -0,0 +1,14 @@ +**To stop a SNOMED CT inference job** + +The following ``stop-snomedct-inference-job`` example stops a SNOMED CT inference batch analysis job. :: + + aws comprehendmedical stop-snomedct-inference-job \ + --job-id "8750034166436cdb52ffa3295a1b00a1" + +Output:: + + { + "JobId": "8750034166436cdb52ffa3295a1b00a1", + } + +For more information, see `Ontology linking batch analysis `__ in the *Amazon Comprehend Medical Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/delete-config-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/delete-config-rule.rst new file mode 100644 index 000000000..19b650d4a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/delete-config-rule.rst @@ -0,0 +1,5 @@ +**To delete an AWS Config rule** + +The following command deletes an AWS Config rule named ``MyConfigRule``:: + + aws configservice delete-config-rule --config-rule-name MyConfigRule \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/delete-delivery-channel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/delete-delivery-channel.rst new file mode 100644 index 000000000..0676a685d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/delete-delivery-channel.rst @@ -0,0 +1,5 @@ +**To delete a delivery channel** + +The following command deletes the default delivery channel:: + + aws configservice delete-delivery-channel --delivery-channel-name default \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/delete-evaluation-results.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/delete-evaluation-results.rst new file mode 100755 index 000000000..934528280 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/delete-evaluation-results.rst @@ -0,0 +1,5 @@ +**To manually delete evaluation results** + +The following command deletes the current evaluation results for the AWS managed rule s3-bucket-versioning-enabled:: + + aws configservice delete-evaluation-results --config-rule-name s3-bucket-versioning-enabled \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/deliver-config-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/deliver-config-snapshot.rst new file mode 100644 index 000000000..cd32a8782 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/deliver-config-snapshot.rst @@ -0,0 +1,11 @@ +**To deliver a configuration snapshot** + +The following command delivers a configuration snapshot to the Amazon S3 bucket that belongs to the default delivery channel:: + + aws configservice deliver-config-snapshot --delivery-channel-name default + +Output:: + + { + "configSnapshotId": "d0333b00-a683-44af-921e-examplefb794" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-compliance-by-config-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-compliance-by-config-rule.rst new file mode 100644 index 000000000..03eb82072 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-compliance-by-config-rule.rst @@ -0,0 +1,34 @@ +**To get compliance information for your AWS Config rules** + +The following command returns compliance information for each AWS Config rule that is violated by one or more AWS resources:: + + aws configservice describe-compliance-by-config-rule --compliance-types NON_COMPLIANT + +In the output, the value for each ``CappedCount`` attribute indicates how many resources do not comply with the related rule. For example, the following output indicates that 3 resources do not comply with the rule named ``InstanceTypesAreT2micro``. + +Output:: + + { + "ComplianceByConfigRules": [ + { + "Compliance": { + "ComplianceContributorCount": { + "CappedCount": 3, + "CapExceeded": false + }, + "ComplianceType": "NON_COMPLIANT" + }, + "ConfigRuleName": "InstanceTypesAreT2micro" + }, + { + "Compliance": { + "ComplianceContributorCount": { + "CappedCount": 10, + "CapExceeded": false + }, + "ComplianceType": "NON_COMPLIANT" + }, + "ConfigRuleName": "RequiredTagsForVolumes" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-compliance-by-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-compliance-by-resource.rst new file mode 100644 index 000000000..d65c3c9b8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-compliance-by-resource.rst @@ -0,0 +1,36 @@ +**To get compliance information for your AWS resources** + +The following command returns compliance information for each EC2 instance that is recorded by AWS Config and that violates one or more rules:: + + aws configservice describe-compliance-by-resource --resource-type AWS::EC2::Instance --compliance-types NON_COMPLIANT + +In the output, the value for each ``CappedCount`` attribute indicates how many rules the resource violates. For example, the following output indicates that instance ``i-1a2b3c4d`` violates 2 rules. + +Output:: + + { + "ComplianceByResources": [ + { + "ResourceType": "AWS::EC2::Instance", + "ResourceId": "i-1a2b3c4d", + "Compliance": { + "ComplianceContributorCount": { + "CappedCount": 2, + "CapExceeded": false + }, + "ComplianceType": "NON_COMPLIANT" + } + }, + { + "ResourceType": "AWS::EC2::Instance", + "ResourceId": "i-2a2b3c4d ", + "Compliance": { + "ComplianceContributorCount": { + "CappedCount": 3, + "CapExceeded": false + }, + "ComplianceType": "NON_COMPLIANT" + } + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-config-rule-evaluation-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-config-rule-evaluation-status.rst new file mode 100644 index 000000000..86c30dbac --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-config-rule-evaluation-status.rst @@ -0,0 +1,19 @@ +**To get status information for an AWS Config rule** + +The following command returns the status information for an AWS Config rule named ``MyConfigRule``:: + + aws configservice describe-config-rule-evaluation-status --config-rule-names MyConfigRule + +Output:: + + { + "ConfigRulesEvaluationStatus": [ + { + "ConfigRuleArn": "arn:aws:config:us-east-1:123456789012:config-rule/config-rule-abcdef", + "FirstActivatedTime": 1450311703.844, + "ConfigRuleId": "config-rule-abcdef", + "LastSuccessfulInvocationTime": 1450314643.156, + "ConfigRuleName": "MyConfigRule" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-config-rules.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-config-rules.rst new file mode 100644 index 000000000..2b0336639 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-config-rules.rst @@ -0,0 +1,35 @@ +**To get details for an AWS Config rule** + +The following command returns details for an AWS Config rule named ``InstanceTypesAreT2micro``:: + + aws configservice describe-config-rules --config-rule-names InstanceTypesAreT2micro + +Output:: + + { + "ConfigRules": [ + { + "ConfigRuleState": "ACTIVE", + "Description": "Evaluates whether EC2 instances are the t2.micro type.", + "ConfigRuleName": "InstanceTypesAreT2micro", + "ConfigRuleArn": "arn:aws:config:us-east-1:123456789012:config-rule/config-rule-abcdef", + "Source": { + "Owner": "CUSTOM_LAMBDA", + "SourceIdentifier": "arn:aws:lambda:us-east-1:123456789012:function:InstanceTypeCheck", + "SourceDetails": [ + { + "EventSource": "aws.config", + "MessageType": "ConfigurationItemChangeNotification" + } + ] + }, + "InputParameters": "{\"desiredInstanceType\":\"t2.micro\"}", + "Scope": { + "ComplianceResourceTypes": [ + "AWS::EC2::Instance" + ] + }, + "ConfigRuleId": "config-rule-abcdef" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-configuration-recorder-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-configuration-recorder-status.rst new file mode 100644 index 000000000..d2f693675 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-configuration-recorder-status.rst @@ -0,0 +1,20 @@ +**To get status information for the configuration recorder** + +The following command returns the status of the default configuration recorder:: + + aws configservice describe-configuration-recorder-status + +Output:: + + { + "ConfigurationRecordersStatus": [ + { + "name": "default", + "lastStatus": "SUCCESS", + "recording": true, + "lastStatusChangeTime": 1452193834.344, + "lastStartTime": 1441039997.819, + "lastStopTime": 1441039992.835 + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-configuration-recorders.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-configuration-recorders.rst new file mode 100644 index 000000000..d9b2eeef1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-configuration-recorders.rst @@ -0,0 +1,21 @@ +**To get details about the configuration recorder** + +The following command returns details about the default configuration recorder:: + + aws configservice describe-configuration-recorders + +Output:: + + { + "ConfigurationRecorders": [ + { + "recordingGroup": { + "allSupported": true, + "resourceTypes": [], + "includeGlobalResourceTypes": true + }, + "roleARN": "arn:aws:iam::123456789012:role/config-ConfigRole-A1B2C3D4E5F6", + "name": "default" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-delivery-channel-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-delivery-channel-status.rst new file mode 100644 index 000000000..f65cffa2d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-delivery-channel-status.rst @@ -0,0 +1,29 @@ +**To get status information for the delivery channel** + +The following command returns the status of the delivery channel:: + + aws configservice describe-delivery-channel-status + +Output:: + + { + "DeliveryChannelsStatus": [ + { + "configStreamDeliveryInfo": { + "lastStatusChangeTime": 1452193834.381, + "lastStatus": "SUCCESS" + }, + "configHistoryDeliveryInfo": { + "lastSuccessfulTime": 1450317838.412, + "lastStatus": "SUCCESS", + "lastAttemptTime": 1450317838.412 + }, + "configSnapshotDeliveryInfo": { + "lastSuccessfulTime": 1452185597.094, + "lastStatus": "SUCCESS", + "lastAttemptTime": 1452185597.094 + }, + "name": "default" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-delivery-channels.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-delivery-channels.rst new file mode 100644 index 000000000..44f26a2e9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/describe-delivery-channels.rst @@ -0,0 +1,17 @@ +**To get details about the delivery channel** + +The following command returns details about the delivery channel:: + + aws configservice describe-delivery-channels + +Output:: + + { + "DeliveryChannels": [ + { + "snsTopicARN": "arn:aws:sns:us-east-1:123456789012:config-topic", + "name": "default", + "s3BucketName": "config-bucket-123456789012" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/get-compliance-details-by-config-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/get-compliance-details-by-config-rule.rst new file mode 100644 index 000000000..cd9664943 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/get-compliance-details-by-config-rule.rst @@ -0,0 +1,51 @@ +**To get the evaluation results for an AWS Config rule** + +The following command returns the evaluation results for all of the resources that don't comply with an AWS Config rule named ``InstanceTypesAreT2micro``:: + + aws configservice get-compliance-details-by-config-rule --config-rule-name InstanceTypesAreT2micro --compliance-types NON_COMPLIANT + +Output:: + + { + "EvaluationResults": [ + { + "EvaluationResultIdentifier": { + "OrderingTimestamp": 1450314635.065, + "EvaluationResultQualifier": { + "ResourceType": "AWS::EC2::Instance", + "ResourceId": "i-1a2b3c4d", + "ConfigRuleName": "InstanceTypesAreT2micro" + } + }, + "ResultRecordedTime": 1450314645.261, + "ConfigRuleInvokedTime": 1450314642.948, + "ComplianceType": "NON_COMPLIANT" + }, + { + "EvaluationResultIdentifier": { + "OrderingTimestamp": 1450314635.065, + "EvaluationResultQualifier": { + "ResourceType": "AWS::EC2::Instance", + "ResourceId": "i-2a2b3c4d", + "ConfigRuleName": "InstanceTypesAreT2micro" + } + }, + "ResultRecordedTime": 1450314645.18, + "ConfigRuleInvokedTime": 1450314642.902, + "ComplianceType": "NON_COMPLIANT" + }, + { + "EvaluationResultIdentifier": { + "OrderingTimestamp": 1450314635.065, + "EvaluationResultQualifier": { + "ResourceType": "AWS::EC2::Instance", + "ResourceId": "i-3a2b3c4d", + "ConfigRuleName": "InstanceTypesAreT2micro" + } + }, + "ResultRecordedTime": 1450314643.346, + "ConfigRuleInvokedTime": 1450314643.124, + "ComplianceType": "NON_COMPLIANT" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/get-compliance-details-by-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/get-compliance-details-by-resource.rst new file mode 100644 index 000000000..5baf6b225 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/get-compliance-details-by-resource.rst @@ -0,0 +1,38 @@ +**To get the evaluation results for an AWS resource** + +The following command returns the evaluation results for each rule with which the EC2 instance ``i-1a2b3c4d`` does not comply:: + + aws configservice get-compliance-details-by-resource --resource-type AWS::EC2::Instance --resource-id i-1a2b3c4d --compliance-types NON_COMPLIANT + +Output:: + + { + "EvaluationResults": [ + { + "EvaluationResultIdentifier": { + "OrderingTimestamp": 1450314635.065, + "EvaluationResultQualifier": { + "ResourceType": "AWS::EC2::Instance", + "ResourceId": "i-1a2b3c4d", + "ConfigRuleName": "InstanceTypesAreT2micro" + } + }, + "ResultRecordedTime": 1450314643.288, + "ConfigRuleInvokedTime": 1450314643.034, + "ComplianceType": "NON_COMPLIANT" + }, + { + "EvaluationResultIdentifier": { + "OrderingTimestamp": 1450314635.065, + "EvaluationResultQualifier": { + "ResourceType": "AWS::EC2::Instance", + "ResourceId": "i-1a2b3c4d", + "ConfigRuleName": "RequiredTagForEC2Instances" + } + }, + "ResultRecordedTime": 1450314645.261, + "ConfigRuleInvokedTime": 1450314642.948, + "ComplianceType": "NON_COMPLIANT" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/get-compliance-summary-by-config-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/get-compliance-summary-by-config-rule.rst new file mode 100644 index 000000000..5d8e52c2f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/get-compliance-summary-by-config-rule.rst @@ -0,0 +1,23 @@ +**To get the compliance summary for your AWS Config rules** + +The following command returns the number of rules that are compliant and the number that are noncompliant:: + + aws configservice get-compliance-summary-by-config-rule + +In the output, the value for each ``CappedCount`` attribute indicates how many rules are compliant or noncompliant. + +Output:: + + { + "ComplianceSummary": { + "NonCompliantResourceCount": { + "CappedCount": 3, + "CapExceeded": false + }, + "ComplianceSummaryTimestamp": 1452204131.493, + "CompliantResourceCount": { + "CappedCount": 2, + "CapExceeded": false + } + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/get-compliance-summary-by-resource-type.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/get-compliance-summary-by-resource-type.rst new file mode 100644 index 000000000..5b30a7f85 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/get-compliance-summary-by-resource-type.rst @@ -0,0 +1,56 @@ +**To get the compliance summary for all resource types** + +The following command returns the number of AWS resources that are noncompliant and the number that are compliant:: + + aws configservice get-compliance-summary-by-resource-type + +In the output, the value for each ``CappedCount`` attribute indicates how many resources are compliant or noncompliant. + +Output:: + + { + "ComplianceSummariesByResourceType": [ + { + "ComplianceSummary": { + "NonCompliantResourceCount": { + "CappedCount": 16, + "CapExceeded": false + }, + "ComplianceSummaryTimestamp": 1453237464.543, + "CompliantResourceCount": { + "CappedCount": 10, + "CapExceeded": false + } + } + } + ] + } + +**To get the compliance summary for a specific resource type** + +The following command returns the number of EC2 instances that are noncompliant and the number that are compliant:: + + aws configservice get-compliance-summary-by-resource-type --resource-types AWS::EC2::Instance + +In the output, the value for each ``CappedCount`` attribute indicates how many resources are compliant or noncompliant. + +Output:: + + { + "ComplianceSummariesByResourceType": [ + { + "ResourceType": "AWS::EC2::Instance", + "ComplianceSummary": { + "NonCompliantResourceCount": { + "CappedCount": 3, + "CapExceeded": false + }, + "ComplianceSummaryTimestamp": 1452204923.518, + "CompliantResourceCount": { + "CappedCount": 7, + "CapExceeded": false + } + } + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/get-resource-config-history.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/get-resource-config-history.rst new file mode 100644 index 000000000..d2f08bcc6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/get-resource-config-history.rst @@ -0,0 +1,5 @@ +**To get the configuration history of an AWS resource** + +The following command returns a list of configuration items for an EC2 instance with an ID of ``i-1a2b3c4d``:: + + aws configservice get-resource-config-history --resource-type AWS::EC2::Instance --resource-id i-1a2b3c4d \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/get-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/get-status.rst new file mode 100644 index 000000000..1dde5a5db --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/get-status.rst @@ -0,0 +1,20 @@ +**To get the status for AWS Config** + +The following command returns the status of the delivery channel and configuration recorder:: + + aws configservice get-status + +Output:: + + Configuration Recorders: + + name: default + recorder: ON + last status: SUCCESS + + Delivery Channels: + + name: default + last stream delivery status: SUCCESS + last history delivery status: SUCCESS + last snapshot delivery status: SUCCESS \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/list-discovered-resources.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/list-discovered-resources.rst new file mode 100644 index 000000000..7b86d7686 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/list-discovered-resources.rst @@ -0,0 +1,24 @@ +**To list resources that AWS Config has discovered** + +The following command lists the EC2 instances that AWS Config has discovered:: + + aws configservice list-discovered-resources --resource-type AWS::EC2::Instance + +Output:: + + { + "resourceIdentifiers": [ + { + "resourceType": "AWS::EC2::Instance", + "resourceId": "i-1a2b3c4d" + }, + { + "resourceType": "AWS::EC2::Instance", + "resourceId": "i-2a2b3c4d" + }, + { + "resourceType": "AWS::EC2::Instance", + "resourceId": "i-3a2b3c4d" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/put-config-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/put-config-rule.rst new file mode 100644 index 000000000..872f5fd63 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/put-config-rule.rst @@ -0,0 +1,64 @@ +**To add an AWS managed Config rule** + +The following command provides JSON code to add an AWS managed Config rule:: + + aws configservice put-config-rule --config-rule file://RequiredTagsForEC2Instances.json + +``RequiredTagsForEC2Instances.json`` is a JSON file that contains the rule configuration:: + + { + "ConfigRuleName": "RequiredTagsForEC2Instances", + "Description": "Checks whether the CostCenter and Owner tags are applied to EC2 instances.", + "Scope": { + "ComplianceResourceTypes": [ + "AWS::EC2::Instance" + ] + }, + "Source": { + "Owner": "AWS", + "SourceIdentifier": "REQUIRED_TAGS" + }, + "InputParameters": "{\"tag1Key\":\"CostCenter\",\"tag2Key\":\"Owner\"}" + } + +For the ``ComplianceResourceTypes`` attribute, this JSON code limits the scope to resources of the ``AWS::EC2::Instance`` type, so AWS Config will evaluate only EC2 instances against the rule. Because the rule is a managed rule, the ``Owner`` attribute is set to ``AWS``, and the ``SourceIdentifier`` attribute is set to the rule identifier, ``REQUIRED_TAGS``. For the ``InputParameters`` attribute, the tag keys that the rule requires, ``CostCenter`` and ``Owner``, are specified. + +If the command succeeds, AWS Config returns no output. To verify the rule configuration, run the `describe-config-rules`__ command, and specify the rule name. + +.. __: http://docs.aws.amazon.com/cli/latest/reference/configservice/describe-config-rules.html + +**To add a customer managed Config rule** + +The following command provides JSON code to add a customer managed Config rule:: + + aws configservice put-config-rule --config-rule file://InstanceTypesAreT2micro.json + +``InstanceTypesAreT2micro.json`` is a JSON file that contains the rule configuration:: + + { + "ConfigRuleName": "InstanceTypesAreT2micro", + "Description": "Evaluates whether EC2 instances are the t2.micro type.", + "Scope": { + "ComplianceResourceTypes": [ + "AWS::EC2::Instance" + ] + }, + "Source": { + "Owner": "CUSTOM_LAMBDA", + "SourceIdentifier": "arn:aws:lambda:us-east-1:123456789012:function:InstanceTypeCheck", + "SourceDetails": [ + { + "EventSource": "aws.config", + "MessageType": "ConfigurationItemChangeNotification" + } + ] + }, + "InputParameters": "{\"desiredInstanceType\":\"t2.micro\"}" + } + +For the ``ComplianceResourceTypes`` attribute, this JSON code limits the scope to resources of the ``AWS::EC2::Instance`` type, so AWS Config will evaluate only EC2 instances against the rule. Because this rule is a customer managed rule, the ``Owner`` attribute is set to ``CUSTOM_LAMBDA``, and the ``SourceIdentifier`` attribute is set to the ARN of the AWS Lambda function. The ``SourceDetails`` object is required. The parameters that are specified for the ``InputParameters`` attribute are passed to the AWS Lambda function when AWS Config invokes it to evaluate resources against the rule. + +If the command succeeds, AWS Config returns no output. To verify the rule configuration, run the `describe-config-rules`__ command, and specify the rule name. + +.. __: http://docs.aws.amazon.com/cli/latest/reference/configservice/describe-config-rules.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/put-configuration-recorder.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/put-configuration-recorder.rst new file mode 100644 index 000000000..3f39e51e3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/put-configuration-recorder.rst @@ -0,0 +1,74 @@ +**Example 1: To record all supported resources** + +The following command creates a configuration recorder that tracks changes to all supported resource types, including global resource types:: + + aws configservice put-configuration-recorder \ + --configuration-recorder name=default,roleARN=arn:aws:iam::123456789012:role/config-role \ + --recording-group allSupported=true,includeGlobalResourceTypes=true + +If the command succeeds, AWS Config returns no output. To verify the settings of your configuration recorder, run the `describe-configuration-recorders`__ command. + +.. __: http://docs.aws.amazon.com/cli/latest/reference/configservice/describe-configuration-recorders.html + +**Example 2: To record specific types of resources** + +The following command creates a configuration recorder that tracks changes to only those types of resources that are specified in the JSON file for the `--recording-group` option:: + + aws configservice put-configuration-recorder \ + --configuration-recorder name=default,roleARN=arn:aws:iam::123456789012:role/config-role \ + --recording-group file://recordingGroup.json + +`recordingGroup.json` is a JSON file that specifies the types of resources that AWS Config will record:: + + { + "allSupported": false, + "includeGlobalResourceTypes": false, + "resourceTypes": [ + "AWS::EC2::EIP", + "AWS::EC2::Instance", + "AWS::EC2::NetworkAcl", + "AWS::EC2::SecurityGroup", + "AWS::CloudTrail::Trail", + "AWS::EC2::Volume", + "AWS::EC2::VPC", + "AWS::IAM::User", + "AWS::IAM::Policy" + ] + } + +Before you can specify resource types for the `resourceTypes` key, you must set the `allSupported` and `includeGlobalResourceTypes` options to false or omit them. + +If the command succeeds, AWS Config returns no output. To verify the settings of your configuration recorder, run the `describe-configuration-recorders`__ command. + +.. __: http://docs.aws.amazon.com/cli/latest/reference/configservice/describe-configuration-recorders.html + +**Example 3: To select all supported resources excluding specific types of resources** + +The following command creates a configuration recorder that tracks changes to all current and future supported resource types excluding those types of resources that are specified in the JSON file for the `--recording-group` option:: + + aws configservice put-configuration-recorder \ + --configuration-recorder name=default,roleARN=arn:aws:iam::123456789012:role/config-role \ + --recording-group file://recordingGroup.json + +`recordingGroup.json` is a JSON file that specifies the types of resources that AWS Config will record:: + + { + "allSupported": false, + "exclusionByResourceTypes": { + "resourceTypes": [ + "AWS::Redshift::ClusterSnapshot", + "AWS::RDS::DBClusterSnapshot", + "AWS::CloudFront::StreamingDistribution" + ] + }, + "includeGlobalResourceTypes": false, + "recordingStrategy": { + "useOnly": "EXCLUSION_BY_RESOURCE_TYPES" + }, + } + +Before you can specify resource types to excluding from recording: 1) You must set the allSupported and includeGlobalResourceTypes options to false or omit them, and 2) You must set the useOnly field of RecordingStrategy to EXCLUSION_BY_RESOURCE_TYPES. + +If the command succeeds, AWS Config returns no output. To verify the settings of your configuration recorder, run the `describe-configuration-recorders`__ command. + +.. __: http://docs.aws.amazon.com/cli/latest/reference/configservice/describe-configuration-recorders.html \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/put-delivery-channel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/put-delivery-channel.rst new file mode 100644 index 000000000..493f44908 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/put-delivery-channel.rst @@ -0,0 +1,42 @@ +**To create a delivery channel** + +The following command provides the settings for the delivery channel as JSON code:: + + aws configservice put-delivery-channel --delivery-channel file://deliveryChannel.json + +The ``deliveryChannel.json`` file specifies the delivery channel attributes:: + + { + "name": "default", + "s3BucketName": "config-bucket-123456789012", + "snsTopicARN": "arn:aws:sns:us-east-1:123456789012:config-topic", + "configSnapshotDeliveryProperties": { + "deliveryFrequency": "Twelve_Hours" + } + } + +This example sets the following attributes: + +- ``name`` - The name of the delivery channel. By default, AWS Config assigns the name ``default`` to a new delivery channel. + + You cannot update the delivery channel name with the ``put-delivery-channel`` command. For the steps to change the name, see `Renaming the Delivery Channel`__. + + .. __: http://docs.aws.amazon.com/config/latest/developerguide/update-dc.html#update-dc-rename + +- ``s3BucketName`` - The name of the Amazon S3 bucket to which AWS Config delivers configuration snapshots and configuration history files. + + If you specify a bucket that belongs to another AWS account, that bucket must have policies that grant access permissions to AWS Config. For more information, see `Permissions for the Amazon S3 Bucket`__. + +.. __: http://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-policy.html + +- ``snsTopicARN`` - The Amazon Resource Name (ARN) of the Amazon SNS topic to which AWS Config sends notifications about configuration changes. + + If you choose a topic from another account, the topic must have policies that grant access permissions to AWS Config. For more information, see `Permissions for the Amazon SNS Topic`__. + +.. __: http://docs.aws.amazon.com/config/latest/developerguide/sns-topic-policy.html + +- ``configSnapshotDeliveryProperties`` - Contains the ``deliveryFrequency`` attribute, which sets how often AWS Config delivers configuration snapshots and how often it invokes evaluations for periodic Config rules. + +If the command succeeds, AWS Config returns no output. To verify the settings of your delivery channel, run the `describe-delivery-channels`__ command. + +.. __: http://docs.aws.amazon.com/cli/latest/reference/configservice/describe-delivery-channels.html \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/start-config-rules-evaluation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/start-config-rules-evaluation.rst new file mode 100755 index 000000000..3034c288c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/start-config-rules-evaluation.rst @@ -0,0 +1,5 @@ +**To run an on-demand evaluation for AWS Config rules** + +The following command starts an evaluation for two AWS managed rules:: + + aws configservice start-config-rules-evaluation --config-rule-names s3-bucket-versioning-enabled cloudtrail-enabled \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/start-configuration-recorder.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/start-configuration-recorder.rst new file mode 100644 index 000000000..2eb5fadbe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/start-configuration-recorder.rst @@ -0,0 +1,9 @@ +**To start the configuration recorder** + +The following command starts the default configuration recorder:: + + aws configservice start-configuration-recorder --configuration-recorder-name default + +If the command succeeds, AWS Config returns no output. To verify that AWS Config is recording your resources, run the `get-status`__ command. + +.. __: http://docs.aws.amazon.com/cli/latest/reference/configservice/get-status.html diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/stop-configuration-recorder.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/stop-configuration-recorder.rst new file mode 100644 index 000000000..8f3f68814 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/stop-configuration-recorder.rst @@ -0,0 +1,9 @@ +**To stop the configuration recorder** + +The following command stops the default configuration recorder:: + + aws configservice stop-configuration-recorder --configuration-recorder-name default + +If the command succeeds, AWS Config returns no output. To verify that AWS Config is not recording your resources, run the `get-status`__ command. + +.. __: http://docs.aws.amazon.com/cli/latest/reference/configservice/get-status.html \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/subscribe.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/subscribe.rst new file mode 100644 index 000000000..c9b7e7233 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configservice/subscribe.rst @@ -0,0 +1,31 @@ +**To subscribe to AWS Config** + +The following command creates the default delivery channel and configuration recorder. The command also specifies the Amazon S3 bucket and Amazon SNS topic to which AWS Config will deliver configuration information:: + + aws configservice subscribe --s3-bucket config-bucket-123456789012 --sns-topic arn:aws:sns:us-east-1:123456789012:config-topic --iam-role arn:aws:iam::123456789012:role/ConfigRole-A1B2C3D4E5F6 + +Output:: + + Using existing S3 bucket: config-bucket-123456789012 + Using existing SNS topic: arn:aws:sns:us-east-1:123456789012:config-topic + Subscribe succeeded: + + Configuration Recorders: [ + { + "recordingGroup": { + "allSupported": true, + "resourceTypes": [], + "includeGlobalResourceTypes": false + }, + "roleARN": "arn:aws:iam::123456789012:role/ConfigRole-A1B2C3D4E5F6", + "name": "default" + } + ] + + Delivery Channels: [ + { + "snsTopicARN": "arn:aws:sns:us-east-1:123456789012:config-topic", + "name": "default", + "s3BucketName": "config-bucket-123456789012" + } + ] \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configure/_description.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configure/_description.rst new file mode 100644 index 000000000..9b7e9b3c5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configure/_description.rst @@ -0,0 +1,37 @@ +Configure AWS CLI options. If this command is run with no +arguments, you will be prompted for configuration values such as your AWS +Access Key Id and your AWS Secret Access Key. You can configure a named +profile using the ``--profile`` argument. If your config file does not exist +(the default location is ``~/.aws/config``), the AWS CLI will create it +for you. To keep an existing value, hit enter when prompted for the value. +When you are prompted for information, the current value will be displayed in +``[brackets]``. If the config item has no value, it be displayed as +``[None]``. Note that the ``configure`` command only works with values from the +config file. It does not use any configuration values from environment +variables or the IAM role. + +Note: the values you provide for the AWS Access Key ID and the AWS Secret +Access Key will be written to the shared credentials file +(``~/.aws/credentials``). + + +======================= +Configuration Variables +======================= + +The following configuration variables are supported in the config file: + +* **aws_access_key_id** - The AWS access key part of your credentials +* **aws_secret_access_key** - The AWS secret access key part of your credentials +* **aws_session_token** - The session token part of your credentials (session tokens only) +* **metadata_service_timeout** - The number of seconds to wait until the metadata service + request times out. This is used if you are using an IAM role to provide + your credentials. +* **metadata_service_num_attempts** - The number of attempts to try to retrieve + credentials. If you know for certain you will be using an IAM role on an + Amazon EC2 instance, you can set this value to ensure any intermittent + failures are retried. By default this value is 1. + +For more information on configuration options, see `Configuring the AWS Command Line Interface`_ in the *AWS CLI User Guide*. + +.. _`Configuring the AWS Command Line Interface`: http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configure/add-model.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configure/add-model.rst new file mode 100644 index 000000000..60b943ead --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configure/add-model.rst @@ -0,0 +1,9 @@ +**Add a model** + +The following command adds a service model from a file named ``service.json``:: + + aws configure add-model --service-model file://service.json + +Adding a model replaces existing commands for the service defined in the model. To leave existing commands as-is, specify a different service name to use for the new commands:: + + aws configure add-model --service-model file://service.json --service-name service2 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configure/get/_description.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configure/get/_description.rst new file mode 100644 index 000000000..757192fb2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configure/get/_description.rst @@ -0,0 +1,40 @@ +Get a configuration value from the config file. + +The ``aws configure get`` command can be used to print a configuration value in +the AWS config file. The ``get`` command supports two types of configuration +values, *unqualified* and *qualified* config values. + + +Note that ``aws configure get`` only looks at values in the AWS configuration +file. It does **not** resolve configuration variables specified anywhere else, +including environment variables, command line arguments, etc. + + +Unqualified Names +----------------- + +Every value in the AWS configuration file must be placed in a section (denoted +by ``[section-name]`` in the config file). To retrieve a value from the +config file, the section name and the config name must be known. + +An unqualified configuration name refers to a name that is not scoped to a +specific section in the configuration file. Sections are specified by +separating parts with the ``"."`` character (``section.config-name``). An +unqualified name will be scoped to the current profile. For example, +``aws configure get aws_access_key_id`` will retrieve the ``aws_access_key_id`` +from the current profile, or the ``default`` profile if no profile is +specified. You can still provide a ``--profile`` argument to the ``aws +configure get`` command. For example, ``aws configure get region --profile +testing`` will print the region value for the ``testing`` profile. + + +Qualified Names +--------------- + +A qualified name is a name that has at least one ``"."`` character in the name. +This name provides a way to specify the config section from which to retrieve +the config variable. When a qualified name is provided to ``aws configure +get``, the currently specified profile is ignored. Section names that have +the format ``[profile profile-name]`` can be specified by using the +``profile.profile-name.config-name`` syntax, and the default profile can be +specified using the ``default.config-name`` syntax. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configure/get/_examples.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configure/get/_examples.rst new file mode 100644 index 000000000..c857da59e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configure/get/_examples.rst @@ -0,0 +1,35 @@ +Suppose you had the following config file:: + + [default] + aws_access_key_id=default_access_key + aws_secret_access_key=default_secret_key + + [preview] + cloudsearch=true + + [profile testing] + aws_access_key_id=testing_access_key + aws_secret_access_key=testing_secret_key + region=us-west-2 + +The following commands would have the corresponding output:: + + $ aws configure get aws_access_key_id + default_access_key + + $ aws configure get default.aws_access_key_id + default_access_key + + $ aws configure get aws_access_key_id --profile testing + testing_access_key + + $ aws configure get profile.testing.aws_access_key_id + testing_access_key + + $ aws configure get preview.cloudsearch + true + + $ aws configure get preview.does-not-exist + $ + $ echo $? + 1 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configure/set/_description.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configure/set/_description.rst new file mode 100644 index 000000000..a36e76435 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configure/set/_description.rst @@ -0,0 +1,18 @@ +Set a configuration value from the config file. + +The ``aws configure set`` command can be used to set a single configuration +value in the AWS config file. The ``set`` command supports both the +*qualified* and *unqualified* config values documented in the ``get`` command +(see ``aws configure get help`` for more information). + +To set a single value, provide the configuration name followed by the +configuration value. + +If the config file does not exist, one will automatically be created. If the +configuration value already exists in the config file, it will updated with the +new configuration value. + +Setting a value for the ``aws_access_key_id``, ``aws_secret_access_key``, or +the ``aws_session_token`` will result in the value being written to the +shared credentials file (``~/.aws/credentials``). All other values will +be written to the config file (default location is ``~/.aws/config``). diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/configure/set/_examples.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configure/set/_examples.rst new file mode 100644 index 000000000..436f171eb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/configure/set/_examples.rst @@ -0,0 +1,30 @@ +Given an empty config file, the following commands:: + + $ aws configure set aws_access_key_id default_access_key + $ aws configure set aws_secret_access_key default_secret_key + $ aws configure set default.region us-west-2 + $ aws configure set default.ca_bundle /path/to/ca-bundle.pem + $ aws configure set region us-west-1 --profile testing + $ aws configure set profile.testing2.region eu-west-1 + $ aws configure set preview.cloudsearch true + +will produce the following config file:: + + [default] + region = us-west-2 + ca_bundle = /path/to/ca-bundle.pem + + [profile testing] + region = us-west-1 + + [profile testing2] + region = eu-west-1 + + [preview] + cloudsearch = true + +and the following ``~/.aws/credentials`` file:: + + [default] + aws_access_key_id = default_access_key + aws_secret_access_key = default_secret_key diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/create-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/create-user.rst new file mode 100755 index 000000000..c1f7db3d8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/create-user.rst @@ -0,0 +1,21 @@ +**To create a user** + +The following ``create-user`` example adds a user with the specified attributes to the specified Amazon Connect instance. :: + + aws connect create-user \ + --username Mary \ + --password Pass@Word1 \ + --identity-info FirstName=Mary,LastName=Major \ + --phone-config PhoneType=DESK_PHONE,AutoAccept=true,AfterContactWorkTimeLimit=60,DeskPhoneNumber=+15555551212 \ + --security-profile-id 12345678-1111-2222-aaaa-a1b2c3d4f5g7 \ + --routing-profile-id 87654321-9999-3434-abcd-x1y2z3a1b2c3 \ + --instance-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "UserId": "87654321-2222-1234-1234-111234567891", + "UserArn": "arn:aws:connect:us-west-2:123456789012:instance/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/agent/87654321-2222-1234-1234-111234567891" + } + +For more information, see `Add Users `__ in the *Amazon Connect Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/delete-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/delete-user.rst new file mode 100755 index 000000000..60f69010b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/delete-user.rst @@ -0,0 +1,11 @@ +**To delete a user** + +The following ``delete-user`` example deletes the specified user from the specified Amazon Connect instance. :: + + aws connect delete-user \ + --instance-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ + --user-id 87654321-2222-1234-1234-111234567891 + +This command produces no output. + +For more information, see `Manage Users `__ in the *Amazon Connect Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/describe-user-hierarchy-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/describe-user-hierarchy-group.rst new file mode 100755 index 000000000..0d80601d4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/describe-user-hierarchy-group.rst @@ -0,0 +1,29 @@ +**To display the details for a hierarchy group** + +The following ``describe-user-hierarchy-group`` example displays the details for the specified Amazon Connect hierarchy group. :: + + aws connect describe-user-hierarchy-group \ + --hierarchy-group-id 12345678-1111-2222-800e-aaabbb555gg \ + --instance-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "HierarchyGroup": { + "Id": "12345678-1111-2222-800e-a2b3c4d5f6g7", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/agent-group/12345678-1111-2222-800e-a2b3c4d5f6g7", + "Name": "Example Corporation", + "LevelId": "1", + "HierarchyPath": { + "LevelOne": { + "Id": "abcdefgh-3333-4444-8af3-201123456789", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/agent-group/abcdefgh-3333-4444-8af3-201123456789", + "Name": "Example Corporation" + } + } + } + } + +For more information, see `Set Up Agent Hierarchies `__ in the *Amazon Connect Administrator Guide*. + + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/describe-user-hierarchy-structure.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/describe-user-hierarchy-structure.rst new file mode 100755 index 000000000..2352dac71 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/describe-user-hierarchy-structure.rst @@ -0,0 +1,30 @@ +**To display the details for a hierarchy structure** + +The following ``describe-user-hierarchy-structure`` example displays the details for the hierarchy structure for the specified Amazon Connect instance. :: + + aws connect describe-user-hierarchy-group \ + --instance-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "HierarchyStructure": { + "LevelOne": { + "Id": "12345678-1111-2222-800e-aaabbb555gg", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/agent-group-level/1", + "Name": "Corporation" + }, + "LevelTwo": { + "Id": "87654321-2222-3333-ac99-123456789102", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/agent-group-level/2", + "Name": "Services Division" + }, + "LevelThree": { + "Id": "abcdefgh-3333-4444-8af3-201123456789", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/agent-group-level/3", + "Name": "EU Site" + } + } + } + +For more information, see `Set Up Agent Hierarchies `__ in the *Amazon Connect Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/describe-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/describe-user.rst new file mode 100755 index 000000000..96e99cfaf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/describe-user.rst @@ -0,0 +1,36 @@ +**To display the details for a user** + +The following ``describe-user`` example displays the details for the specified Amazon Connect user. :: + + aws connect describe-user \ + --user-id 0c245dc0-0cf5-4e37-800e-2a7481cc8a60 + --instance-id 40c83b68-ea62-414c-97bb-d018e39e158e + +Output:: + + { + "User": { + "Id": "0c245dc0-0cf5-4e37-800e-2a7481cc8a60", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/40c83b68-ea62-414c-97bb-d018e39e158e/agent/0c245dc0-0cf5-4e37-800e-2a7481cc8a60", + "Username": "Jane", + "IdentityInfo": { + "FirstName": "Jane", + "LastName": "Doe", + "Email": "example.com" + }, + "PhoneConfig": { + "PhoneType": "SOFT_PHONE", + "AutoAccept": false, + "AfterContactWorkTimeLimit": 0, + "DeskPhoneNumber": "" + }, + "DirectoryUserId": "8b444cf6-b368-4f29-ba18-07af27405658", + "SecurityProfileIds": [ + "b6f85a42-1dc5-443b-b621-de0abf70c9cf" + ], + "RoutingProfileId": "0be36ee9-2b5f-4ef4-bcf7-87738e5be0e5", + "Tags": {} + } + } + +For more information, see `Manage Users `__ in the *Amazon Connect Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/get-contact-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/get-contact-attributes.rst new file mode 100755 index 000000000..0edad5729 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/get-contact-attributes.rst @@ -0,0 +1,17 @@ +**To retrieve the attributes for a contact** + +The following ``get-contact-attributes`` example retrieves the attributes that were set for the specified Amazon Connect contact. :: + + aws connect get-contact-attributes \ + --instance-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ + --initial-contact-id 12345678-1111-2222-800e-a2b3c4d5f6g7 + +Output:: + + { + "Attributes": { + "greetingPlayed": "true" + } + } + +For more information, see `Use Amazon Connect Contact Attributes `__ in the *Amazon Connect Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-contact-flows.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-contact-flows.rst new file mode 100755 index 000000000..a2de3ceab --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-contact-flows.rst @@ -0,0 +1,33 @@ +**To list the contact flows in an instance** + +The following ``list-contact-flows`` example lists the contact flows in the specified Amazon Connect instance. :: + + aws connect list-contact-flows \ + --instance-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "ContactFlowSummaryList": [ + { + "Id": "12345678-1111-2222-800e-a2b3c4d5f6g7", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/contact-flow/12345678-1111-2222-800e-a2b3c4d5f6g7", + "Name": "Default queue transfer", + "ContactFlowType": "QUEUE_TRANSFER" + }, + { + "Id": "87654321-2222-3333-ac99-123456789102", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/contact-flow/87654321-2222-3333-ac99-123456789102", + "Name": "Default agent hold", + "ContactFlowType": "AGENT_HOLD" + }, + { + "Id": "abcdefgh-3333-4444-8af3-201123456789", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/contact-flow/abcdefgh-3333-4444-8af3-201123456789", + "Name": "Default customer hold", + "ContactFlowType": "CUSTOMER_HOLD" + }, + ] + } + +For more information, see `Create Amazon Connect Contact Flows `__ in the *Amazon Connect Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-hours-of-operations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-hours-of-operations.rst new file mode 100755 index 000000000..f5a3cde78 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-hours-of-operations.rst @@ -0,0 +1,20 @@ +**To list the hours of operation in an instance** + +The following ``list-hours-of-operations`` example lists the hours of operations for the specified Amazon Connect instance. :: + + aws connect list-hours-of-operations \ + --instance-id 40c83b68-ea62-414c-97bb-d018e39e158e + +Output:: + + { + "HoursOfOperationSummaryList": [ + { + "Id": "d69f1f84-7457-4924-8fbe-e64875546259", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/40c83b68-ea62-414c-97bb-d018e39e158e/operating-hours/d69f1f84-7457-4924-8fbe-e64875546259", + "Name": "Basic Hours" + } + ] + } + +For more information, see `Set the Hours of Operation for a Queue `__ in the *Amazon Connect Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-phone-numbers.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-phone-numbers.rst new file mode 100755 index 000000000..0a719cb78 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-phone-numbers.rst @@ -0,0 +1,30 @@ +**To list the phone numbers in an instance** + +The following ``list-phone-numbers`` example lists the phone numbers in the specified Amazon Connect instance. :: + + aws connect list-phone-numbers \ + --instance-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "PhoneNumberSummaryList": [ + { + "Id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/phone-number/xyz80zxy-xyz1-80zx-zx80-11111EXAMPLE", + "PhoneNumber": "+17065551212", + "PhoneNumberType": "DID", + "PhoneNumberCountryCode": "US" + }, + { + "Id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/phone-number/ccc0ccc-xyz1-80zx-zx80-22222EXAMPLE", + "PhoneNumber": "+18555551212", + "PhoneNumberType": "TOLL_FREE", + "PhoneNumberCountryCode": "US" + } + ] + } + +For more information, see `Set Up Phone Numbers for Your Contact Center `__ in the *Amazon Connect Administrator Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-queues.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-queues.rst new file mode 100755 index 000000000..896c55092 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-queues.rst @@ -0,0 +1,36 @@ +**To list the queues in an instance** + +The following ``list-queues`` example lists the queues in the specified Amazon Connect instance. :: + + aws connect list-queues \ + --instance-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "QueueSummaryList": [ + { + "Id": "12345678-1111-2222-800e-a2b3c4d5f6g7", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/queue/agent/12345678-1111-2222-800e-a2b3c4d5f6g7", + "QueueType": "AGENT" + }, + { + "Id": "87654321-2222-3333-ac99-123456789102", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/queue/agent/87654321-2222-3333-ac99-123456789102", + "QueueType": "AGENT" + }, + { + "Id": "abcdefgh-3333-4444-8af3-201123456789", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/queue/agent/abcdefgh-3333-4444-8af3-201123456789", + "QueueType": "AGENT" + }, + { + "Id": "hgfedcba-4444-5555-a31f-123456789102", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/queue/hgfedcba-4444-5555-a31f-123456789102", + "Name": "BasicQueue", + "QueueType": "STANDARD" + }, + ] + } + +For more information, see `Create a Queue `__ in the *Amazon Connect Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-routing-profiles.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-routing-profiles.rst new file mode 100755 index 000000000..83345b1de --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-routing-profiles.rst @@ -0,0 +1,20 @@ +**To list the routing profiles in an instance** + +The following ``list-routing-profiles`` example lists the routing profiles in the specified Amazon Connect instance. :: + + aws connect list-routing-profiles \ + --instance-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "RoutingProfileSummaryList": [ + { + "Id": "12345678-1111-2222-800e-a2b3c4d5f6g7", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/routing-profile/12345678-1111-2222-800e-a2b3c4d5f6g7", + "Name": "Basic Routing Profile" + }, + ] + } + +For more information, see `Create a Routing Profile `__ in the *Amazon Connect Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-security-profiles.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-security-profiles.rst new file mode 100755 index 000000000..1a545973c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-security-profiles.rst @@ -0,0 +1,35 @@ +**To list the security profiles in an instance** + +The following ``list-security-profiles`` example lists the security profiles in the specified Amazon Connect instance. :: + + aws connect list-security-profiles \ + --instance-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "SecurityProfileSummaryList": [ + { + "Id": "12345678-1111-2222-800e-a2b3c4d5f6g7", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/security-profile/12345678-1111-2222-800e-a2b3c4d5f6g7", + "Name": "CallCenterManager" + }, + { + "Id": "87654321-2222-3333-ac99-123456789102", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/security-profile/87654321-2222-3333-ac99-123456789102", + "Name": "QualityAnalyst" + }, + { + "Id": "abcdefgh-3333-4444-8af3-201123456789", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/security-profile/abcdefgh-3333-4444-8af3-201123456789", + "Name": "Agent" + }, + { + "Id": "12345678-1111-2222-800e-x2y3c4d5fzzzz", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/security-profile/12345678-1111-2222-800e-x2y3c4d5fzzzz", + "Name": "Admin" + } + ] + } + +For more information, see `Assign Permissions: Security Profiles `__ in the *Amazon Connect Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-user-hierarchy-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-user-hierarchy-groups.rst new file mode 100755 index 000000000..5f8c4fbc4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-user-hierarchy-groups.rst @@ -0,0 +1,20 @@ +**To list the user hierarchy groups in an instance** + +The following ``list-user-hierarchy-groups`` example lists the user hierarchy groups in the specified Amazon Connect instance. :: + + aws connect list-user-hierarchy-groups \ + --instance-id 40c83b68-ea62-414c-97bb-d018e39e158e + +Output:: + + { + "UserHierarchyGroupSummaryList": [ + { + "Id": "0e2f6d1d-b3ca-494b-8dbc-ba81d9f8182a", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/40c83b68-ea62-414c-97bb-d018e39e158e/agent-group/0e2f6d1d-b3ca-494b-8dbc-ba81d9f8182a", + "Name": "Example Corporation" + }, + ] + } + +For more information, see `Set Up Agent Hierarchies `__ in the *Amazon Connect Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-users.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-users.rst new file mode 100755 index 000000000..687d8d17b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/list-users.rst @@ -0,0 +1,35 @@ +**To list the user hierarchy groups in an instance** + +The following ``list-users`` example lists the users in the specified Amazon Connect instance. :: + + aws connect list-users \ + --instance-id 40c83b68-ea62-414c-97bb-d018e39e158e + +Output:: + + { + "UserSummaryList": [ + { + "Id": "0c245dc0-0cf5-4e37-800e-2a7481cc8a60", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/40c83b68-ea62-414c-97bb-d018e39e158e/agent/0c245dc0-0cf5-4e37-800e-2a7481cc8a60", + "Username": "Jane" + }, + { + "Id": "46f0c67c-3fc7-4806-ac99-403798788c14", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/40c83b68-ea62-414c-97bb-d018e39e158e/agent/46f0c67c-3fc7-4806-ac99-403798788c14", + "Username": "Paulo" + }, + { + "Id": "55a83578-95e1-4710-8af3-2b7afe310e48", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/40c83b68-ea62-414c-97bb-d018e39e158e/agent/55a83578-95e1-4710-8af3-2b7afe310e48", + "Username": "JohnD" + }, + { + "Id": "703e27b5-c9f0-4f1f-a239-64ccbb160125", + "Arn": "arn:aws:connect:us-west-2:123456789012:instance/40c83b68-ea62-414c-97bb-d018e39e158e/agent/703e27b5-c9f0-4f1f-a239-64ccbb160125", + "Username": "JohnS" + } + ] + } + +For more information, see `Add Users `__ in the *Amazon Connect Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/update-contact-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/update-contact-attributes.rst new file mode 100755 index 000000000..3344b196c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/update-contact-attributes.rst @@ -0,0 +1,12 @@ +**To update a contact's attribute** + +The following ``update-contact-attributes`` example updates the ``greetingPlayed`` attribute for the specified Amazon Connect user. :: + + aws connect update-contact-attributes \ + --initial-contact-id 11111111-2222-3333-4444-12345678910 \ + --instance-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ + --attributes greetingPlayed=false + +This command produces no output. + +For more information, see `Use Amazon Connect Contact Attributes `__ in the *Amazon Connect Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/update-user-hierarchy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/update-user-hierarchy.rst new file mode 100755 index 000000000..7721691d2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/update-user-hierarchy.rst @@ -0,0 +1,12 @@ +**To update a user's hierarchy** + +The following ``update-user-hierarchy`` example updates the agent hierarchy for the specified Amazon Connect user. :: + + aws connect update-user-hierarchy \ + --hierarchy-group-id 12345678-a1b2-c3d4-e5f6-123456789abc \ + --user-id 87654321-2222-1234-1234-111234567891 \ + --instance-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +This command produces no output. + +For more information, see `Configure Agent Settings `__ in the *Amazon Connect Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/update-user-identity-info.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/update-user-identity-info.rst new file mode 100755 index 000000000..c1bc2ad7c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/update-user-identity-info.rst @@ -0,0 +1,12 @@ +**To update a user's identity information** + +The following ``update-user-identity-info`` example updates the identity information for the specified Amazon Connect user. :: + + aws connect update-user-identity-info \ + --identity-info FirstName=Mary,LastName=Major,Email=marym@example.com \ + --user-id 87654321-2222-1234-1234-111234567891 \ + --instance-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +This command produces no output. + +For more information, see `Configure Agent Settings `__ in the *Amazon Connect Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/update-user-phone-config.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/update-user-phone-config.rst new file mode 100755 index 000000000..54751eb9e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/update-user-phone-config.rst @@ -0,0 +1,12 @@ +**To update a user's phone configuration** + +The following ``update-user-phone-config`` example updates the phone configuration for the specified user. :: + + aws connect update-user-phone-config \ + --phone-config PhoneType=SOFT_PHONE,AutoAccept=false,AfterContactWorkTimeLimit=60,DeskPhoneNumber=+18005551212 \ + --user-id 12345678-4444-3333-2222-111122223333 \ + --instance-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +This command produces no output. + +For more information, see `Configure Agent Settings `__ in the *Amazon Connect Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/update-user-routing-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/update-user-routing-profile.rst new file mode 100755 index 000000000..ca24f127a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/update-user-routing-profile.rst @@ -0,0 +1,12 @@ +**To update a user's routing profile** + +The following ``update-user-routing-profile`` example updates the routing profile for the specified Amazon Connect user. :: + + aws connect update-user-routing-profile \ + --routing-profile-id 12345678-1111-3333-2222-4444EXAMPLE \ + --user-id 87654321-2222-1234-1234-111234567891 \ + --instance-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +This command produces no output. + +For more information, see `Configure Agent Settings `__ in the *Amazon Connect Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/update-user-security-profiles.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/update-user-security-profiles.rst new file mode 100755 index 000000000..0cf711a36 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/connect/update-user-security-profiles.rst @@ -0,0 +1,12 @@ +**To update a user's security profiles** + +The following ``update-user-security-profiles`` example updates the security profile for the specified Amazon Connect user. :: + + aws connect update-user-security-profiles \ + --security-profile-ids 12345678-1234-1234-1234-1234567892111 \ + --user-id 87654321-2222-1234-1234-111234567891 \ + --instance-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +This command produces no output. + +For more information, see `Assign Permissions: Security Profiles `__ in the *Amazon Connect Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cur/delete-report-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cur/delete-report-definition.rst new file mode 100644 index 000000000..bf80fd069 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cur/delete-report-definition.rst @@ -0,0 +1,7 @@ +**To delete an AWS Cost and Usage Report** + +This example deletes an AWS Cost and Usage Report. + +Command:: + + aws cur --region us-east-1 delete-report-definition --report-name "ExampleReport" diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cur/describe-report-definitions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cur/describe-report-definitions.rst new file mode 100644 index 000000000..d3298c0e8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cur/describe-report-definitions.rst @@ -0,0 +1,30 @@ +**To retrieve a list of AWS Cost and Usage Reports** + +This example describes a list of AWS Cost and Usage Reports owned by an account. + +Command:: + + aws cur --region us-east-1 describe-report-definitions --max-items 5 + +Output:: + + { + "ReportDefinitions": [ + { + "ReportName": "ExampleReport", + "Compression": "ZIP", + "S3Region": "us-east-1", + "Format": "textORcsv", + "S3Prefix": "exampleprefix", + "S3Bucket": "example-s3-bucket", + "TimeUnit": "DAILY", + "AdditionalArtifacts": [ + "REDSHIFT", + "QUICKSIGHT" + ], + "AdditionalSchemaElements": [ + "RESOURCES" + ] + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/cur/put-report-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cur/put-report-definition.rst new file mode 100644 index 000000000..a47132ce0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/cur/put-report-definition.rst @@ -0,0 +1,25 @@ +**To create an AWS Cost and Usage Reports** + +The following ``put-report-definition`` example creates a daily AWS Cost and Usage Report that you can upload into Amazon Redshift or Amazon QuickSight. :: + + aws cur put-report-definition --report-definition file://report-definition.json + +Contents of ``report-definition.json``:: + + { + "ReportName": "ExampleReport", + "TimeUnit": "DAILY", + "Format": "textORcsv", + "Compression": "ZIP", + "AdditionalSchemaElements": [ + "RESOURCES" + ], + "S3Bucket": "example-s3-bucket", + "S3Prefix": "exampleprefix", + "S3Region": "us-east-1", + "AdditionalArtifacts": [ + "REDSHIFT", + "QUICKSIGHT" + ] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/activate-pipeline.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/activate-pipeline.rst new file mode 100644 index 000000000..5e9824e66 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/activate-pipeline.rst @@ -0,0 +1,9 @@ +**To activate a pipeline** + +This example activates the specified pipeline:: + + aws datapipeline activate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE + +To activate the pipeline at a specific date and time, use the following command:: + + aws datapipeline activate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE --start-timestamp 2015-04-07T00:00:00Z diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/add-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/add-tags.rst new file mode 100644 index 000000000..2f7d62625 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/add-tags.rst @@ -0,0 +1,22 @@ +**To add a tag to a pipeline** + +This example adds the specified tag to the specified pipeline:: + + aws datapipeline add-tags --pipeline-id df-00627471SOVYZEXAMPLE --tags key=environment,value=production key=owner,value=sales + +To view the tags, use the describe-pipelines command. For example, the tags added in the example command appear as follows in the output for describe-pipelines:: + + { + ... + "tags": [ + { + "value": "production", + "key": "environment" + }, + { + "value": "sales", + "key": "owner" + } + ] + ... + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/create-pipeline.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/create-pipeline.rst new file mode 100644 index 000000000..b951ffb44 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/create-pipeline.rst @@ -0,0 +1,11 @@ +**To create a pipeline** + +This example creates a pipeline:: + + aws datapipeline create-pipeline --name my-pipeline --unique-id my-pipeline-token + +The following is example output:: + + { + "pipelineId": "df-00627471SOVYZEXAMPLE" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/deactivate-pipeline.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/deactivate-pipeline.rst new file mode 100644 index 000000000..eea93ab59 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/deactivate-pipeline.rst @@ -0,0 +1,9 @@ +**To deactivate a pipeline** + +This example deactivates the specified pipeline:: + + aws datapipeline deactivate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE + +To deactivate the pipeline only after all running activities finish, use the following command:: + + aws datapipeline deactivate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE --no-cancel-active diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/delete-pipeline.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/delete-pipeline.rst new file mode 100644 index 000000000..4b99ad4a7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/delete-pipeline.rst @@ -0,0 +1,5 @@ +**To delete a pipeline** + +This example deletes the specified pipeline:: + + aws datapipeline delete-pipeline --pipeline-id df-00627471SOVYZEXAMPLE diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/describe-pipelines.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/describe-pipelines.rst new file mode 100644 index 000000000..b43330a81 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/describe-pipelines.rst @@ -0,0 +1,55 @@ +**To describe your pipelines** + +This example describes the specified pipeline:: + + aws datapipeline describe-pipelines --pipeline-ids df-00627471SOVYZEXAMPLE + +The following is example output:: + + { + "pipelineDescriptionList": [ + { + "fields": [ + { + "stringValue": "PENDING", + "key": "@pipelineState" + }, + { + "stringValue": "my-pipeline", + "key": "name" + }, + { + "stringValue": "2015-04-07T16:05:58", + "key": "@creationTime" + }, + { + "stringValue": "df-00627471SOVYZEXAMPLE", + "key": "@id" + }, + { + "stringValue": "123456789012", + "key": "pipelineCreator" + }, + { + "stringValue": "PIPELINE", + "key": "@sphere" + }, + { + "stringValue": "123456789012", + "key": "@userId" + }, + { + "stringValue": "123456789012", + "key": "@accountId" + }, + { + "stringValue": "my-pipeline-token", + "key": "uniqueId" + } + ], + "pipelineId": "df-00627471SOVYZEXAMPLE", + "name": "my-pipeline", + "tags": [] + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/get-pipeline-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/get-pipeline-definition.rst new file mode 100644 index 000000000..c37795856 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/get-pipeline-definition.rst @@ -0,0 +1,90 @@ +**To get a pipeline definition** + +This example gets the pipeline definition for the specified pipeline:: + + aws datapipeline get-pipeline-definition --pipeline-id df-00627471SOVYZEXAMPLE + +The following is example output:: + + { + "parameters": [ + { + "type": "AWS::S3::ObjectKey", + "id": "myS3OutputLoc", + "description": "S3 output folder" + }, + { + "default": "s3://us-east-1.elasticmapreduce.samples/pig-apache-logs/data", + "type": "AWS::S3::ObjectKey", + "id": "myS3InputLoc", + "description": "S3 input folder" + }, + { + "default": "grep -rc \"GET\" ${INPUT1_STAGING_DIR}/* > ${OUTPUT1_STAGING_DIR}/output.txt", + "type": "String", + "id": "myShellCmd", + "description": "Shell command to run" + } + ], + "objects": [ + { + "type": "Ec2Resource", + "terminateAfter": "20 Minutes", + "instanceType": "t1.micro", + "id": "EC2ResourceObj", + "name": "EC2ResourceObj" + }, + { + "name": "Default", + "failureAndRerunMode": "CASCADE", + "resourceRole": "DataPipelineDefaultResourceRole", + "schedule": { + "ref": "DefaultSchedule" + }, + "role": "DataPipelineDefaultRole", + "scheduleType": "cron", + "id": "Default" + }, + { + "directoryPath": "#{myS3OutputLoc}/#{format(@scheduledStartTime, 'YYYY-MM-dd-HH-mm-ss')}", + "type": "S3DataNode", + "id": "S3OutputLocation", + "name": "S3OutputLocation" + }, + { + "directoryPath": "#{myS3InputLoc}", + "type": "S3DataNode", + "id": "S3InputLocation", + "name": "S3InputLocation" + }, + { + "startAt": "FIRST_ACTIVATION_DATE_TIME", + "name": "Every 15 minutes", + "period": "15 minutes", + "occurrences": "4", + "type": "Schedule", + "id": "DefaultSchedule" + }, + { + "name": "ShellCommandActivityObj", + "command": "#{myShellCmd}", + "output": { + "ref": "S3OutputLocation" + }, + "input": { + "ref": "S3InputLocation" + }, + "stage": "true", + "type": "ShellCommandActivity", + "id": "ShellCommandActivityObj", + "runsOn": { + "ref": "EC2ResourceObj" + } + } + ], + "values": { + "myS3OutputLoc": "s3://amzn-s3-demo-bucket/", + "myS3InputLoc": "s3://us-east-1.elasticmapreduce.samples/pig-apache-logs/data", + "myShellCmd": "grep -rc \"GET\" ${INPUT1_STAGING_DIR}/* > ${OUTPUT1_STAGING_DIR}/output.txt" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/list-pipelines.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/list-pipelines.rst new file mode 100644 index 000000000..74f637d47 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/list-pipelines.rst @@ -0,0 +1,28 @@ +**To list your pipelines** + +This example lists your pipelines:: + + aws datapipeline list-pipelines + +The following is example output:: + + { + "pipelineIdList": [ + { + "id": "df-00627471SOVYZEXAMPLE", + "name": "my-pipeline" + }, + { + "id": "df-09028963KNVMREXAMPLE", + "name": "ImportDDB" + }, + { + "id": "df-0870198233ZYVEXAMPLE", + "name": "CrossRegionDDB" + }, + { + "id": "df-00189603TB4MZEXAMPLE", + "name": "CopyRedshift" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/list-runs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/list-runs.rst new file mode 100644 index 000000000..841b46867 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/list-runs.rst @@ -0,0 +1,20 @@ +**Example 1: To list your pipeline runs** + +The following ``list-runs`` example lists the runs for the specified pipeline. :: + + aws datapipeline list-runs --pipeline-id df-00627471SOVYZEXAMPLE + +Output:: + + Name Scheduled Start Status ID Started Ended + ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + 1. EC2ResourceObj 2015-04-12T17:33:02 CREATING @EC2ResourceObj_2015-04-12T17:33:02 2015-04-12T17:33:10 + 2. S3InputLocation 2015-04-12T17:33:02 FINISHED @S3InputLocation_2015-04-12T17:33:02 2015-04-12T17:33:09 2015-04-12T17:33:09 + 3. S3OutputLocation 2015-04-12T17:33:02 WAITING_ON_DEPENDENCIES @S3OutputLocation_2015-04-12T17:33:02 2015-04-12T17:33:09 + 4. ShellCommandActivityObj 2015-04-12T17:33:02 WAITING_FOR_RUNNER @ShellCommandActivityObj_2015-04-12T17:33:02 2015-04-12T17:33:09 + +**Example 2: To list the pipeline runs between the specified dates** + +The following ``list-runs`` example uses the ``--start-interval`` to specify the dates to include in the output. :: + + aws datapipeline list-runs --pipeline-id df-01434553B58A2SHZUKO5 --start-interval 2017-10-07T00:00:00,2017-10-08T00:00:00 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/put-pipeline-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/put-pipeline-definition.rst new file mode 100644 index 000000000..a2ea0748d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/put-pipeline-definition.rst @@ -0,0 +1,13 @@ +**To upload a pipeline definition** + +This example uploads the specified pipeline definition to the specified pipeline:: + + aws datapipeline put-pipeline-definition --pipeline-id df-00627471SOVYZEXAMPLE --pipeline-definition file://my-pipeline-definition.json + +The following is example output:: + + { + "validationErrors": [], + "errored": false, + "validationWarnings": [] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/remove-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/remove-tags.rst new file mode 100644 index 000000000..824d4a182 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datapipeline/remove-tags.rst @@ -0,0 +1,5 @@ +**To remove a tag from a pipeline** + +This example removes the specified tag from the specified pipeline:: + + aws datapipeline remove-tags --pipeline-id df-00627471SOVYZEXAMPLE --tag-keys environment diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/datasync/update-location-azure-blob.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datasync/update-location-azure-blob.rst new file mode 100644 index 000000000..2efb9e85a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datasync/update-location-azure-blob.rst @@ -0,0 +1,14 @@ +**To update your transfer location with a new agent** + +The following ``update-location-object-storage`` example updates your DataSync location for Microsoft Azure Blob Storage with a new agent. :: + + aws datasync update-location-azure-blob \ + --location-arn arn:aws:datasync:us-west-2:123456789012:location/loc-abcdef01234567890 \ + --agent-arns arn:aws:datasync:us-west-2:123456789012:agent/agent-1234567890abcdef0 \ + --sas-configuration '{ \ + "Token": "sas-token-for-azure-blob-storage-access" \ + }' + +This command produces no output. + +For more information, see `Replacing your agent `__ in the *AWS DataSync User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/datasync/update-location-hdfs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datasync/update-location-hdfs.rst new file mode 100644 index 000000000..d23f94750 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datasync/update-location-hdfs.rst @@ -0,0 +1,47 @@ +**To update your transfer location with a new agent** + +The following ``update-location-hdfs`` example updates your DataSync HDFS location with a new agent. You only need the ``--kerberos-keytab`` and ``--kerberos-krb5-conf`` options if your HDFS cluster uses Kerberos authentication. :: + + aws datasync update-location-hdfs \ + --location-arn arn:aws:datasync:us-west-2:123456789012:location/loc-abcdef01234567890 \ + --agent-arns arn:aws:datasync:us-west-2:123456789012:agent/agent-1234567890abcdef0 \ + --kerberos-keytab file://hdfs.keytab + --kerberos-krb5-conf file://krb5.conf + +Contents of ``hdfs.keytab``:: + + N/A. The content of this file is encrypted and not human readable. + +Contents of ``krb5.conf``:: + + [libdefaults] + default_realm = EXAMPLE.COM + dns_lookup_realm = false + dns_lookup_kdc = false + rdns = true + ticket_lifetime = 24h + forwardable = true + udp_preference_limit = 1000000 + default_tkt_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 des3-cbc-sha1 + default_tgs_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 des3-cbc-sha1 + permitted_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 des3-cbc-sha1 + + [realms] + EXAMPLE.COM = { + kdc = kdc1.example.com + admin_server = krbadmin.example.com + default_domain = example.com + } + + [domain_realm] + .example.com = EXAMPLE.COM + example.com = EXAMPLE.COM + + [logging] + kdc = FILE:/var/log/krb5kdc.log + admin_server = FILE:/var/log/kerberos/kadmin.log + default = FILE:/var/log/krb5libs.log + +This command produces no output. + +For more information, see `Replacing your agent `__ in the *AWS DataSync User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/datasync/update-location-nfs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datasync/update-location-nfs.rst new file mode 100644 index 000000000..94821fcbd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datasync/update-location-nfs.rst @@ -0,0 +1,11 @@ +**To update your transfer location with a new agent** + +The following ``update-location-nfs`` example updates your DataSync NFS location with a new agent. :: + + aws datasync update-location-nfs \ + --location-arn arn:aws:datasync:us-west-2:123456789012:location/loc-abcdef01234567890 \ + --on-prem-config AgentArns=arn:aws:datasync:us-west-2:123456789012:agent/agent-1234567890abcdef0 + +This command produces no output. + +For more information, see `Replacing your agent `__ in the *AWS DataSync User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/datasync/update-location-object-storage.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datasync/update-location-object-storage.rst new file mode 100644 index 000000000..5c344fdc0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datasync/update-location-object-storage.rst @@ -0,0 +1,12 @@ +**To update your transfer location with a new agent** + +The following ``update-location-object-storage`` example updates your DataSync object storage location with a new agent. :: + + aws datasync update-location-object-storage \ + --location-arn arn:aws:datasync:us-west-2:123456789012:location/loc-abcdef01234567890 \ + --agent-arns arn:aws:datasync:us-west-2:123456789012:agent/agent-1234567890abcdef0 \ + --secret-key secret-key-for-object-storage + +This command produces no output. + +For more information, see `Replacing your agent `__ in the *AWS DataSync User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/datasync/update-location-smb.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datasync/update-location-smb.rst new file mode 100644 index 000000000..a218b64e8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/datasync/update-location-smb.rst @@ -0,0 +1,12 @@ +**To update your transfer location with a new agent** + +The following ``update-location-smb`` example updates your DataSync SMB location with a new agent. :: + + aws datasync update-location-smb \ + --location-arn arn:aws:datasync:us-west-2:123456789012:location/loc-abcdef01234567890 \ + --agent-arns arn:aws:datasync:us-west-2:123456789012:agent/agent-1234567890abcdef0 \ + --password smb-file-server-password + +This command produces no output. + +For more information, see `Replacing your agent `__ in the *AWS DataSync User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/create-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/create-cluster.rst new file mode 100755 index 000000000..6a11ab792 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/create-cluster.rst @@ -0,0 +1,45 @@ +**To create a DAX cluster** + +The following ``create-cluster`` example creates a DAX cluster with the specified settings. :: + + aws dax create-cluster \ + --cluster-name daxcluster \ + --node-type dax.r4.large \ + --replication-factor 3 \ + --iam-role-arn roleARN \ + --sse-specification Enabled=true + +Output:: + + { + "Cluster": { + "ClusterName": "daxcluster", + "ClusterArn": "arn:aws:dax:us-west-2:123456789012:cache/daxcluster", + "TotalNodes": 3, + "ActiveNodes": 0, + "NodeType": "dax.r4.large", + "Status": "creating", + "ClusterDiscoveryEndpoint": { + "Port": 8111 + }, + "PreferredMaintenanceWindow": "thu:13:00-thu:14:00", + "SubnetGroup": "default", + "SecurityGroups": [ + { + "SecurityGroupIdentifier": "sg-1af6e36e", + "Status": "active" + } + ], + "IamRoleArn": "arn:aws:iam::123456789012:role/DAXServiceRoleForDynamoDBAccess", + "ParameterGroup": { + "ParameterGroupName": "default.dax1.0", + "ParameterApplyStatus": "in-sync", + "NodeIdsToReboot": [] + }, + "SSEDescription": { + "Status": "ENABLED" + } + } + } + +For more information, see `Step 3: Create a DAX Cluster `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/create-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/create-parameter-group.rst new file mode 100755 index 000000000..0d442a69a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/create-parameter-group.rst @@ -0,0 +1,18 @@ +**To create a parameter group** + +The following `` create-parameter-group`` example creates a parameter group with the specified settings. :: + + aws dax create-parameter-group \ + --parameter-group-name daxparametergroup \ + --description "A new parameter group" + +Output:: + + { + "ParameterGroup": { + "ParameterGroupName": "daxparametergroup", + "Description": "A new parameter group" + } + } + +For more information, see `Managing DAX Clusters `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/create-subnet-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/create-subnet-group.rst new file mode 100755 index 000000000..e63c1f78b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/create-subnet-group.rst @@ -0,0 +1,28 @@ +**To create a DAX subnet group** + +The following ``create-subnet-group`` example creates a subnet group with the specified settings. :: + + aws dax create-subnet-group \ + --subnet-group-name daxSubnetGroup \ + --subnet-ids subnet-11111111 subnet-22222222 + +Output:: + + { + "SubnetGroup": { + "SubnetGroupName": "daxSubnetGroup", + "VpcId": "vpc-05a1fa8e00c325226", + "Subnets": [ + { + "SubnetIdentifier": "subnet-11111111", + "SubnetAvailabilityZone": "us-west-2b" + }, + { + "SubnetIdentifier": "subnet-22222222", + "SubnetAvailabilityZone": "us-west-2c" + } + ] + } + } + +For more information, see `Step 2: Create a Subnet Group `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/decrease-replication-factor.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/decrease-replication-factor.rst new file mode 100755 index 000000000..9cad9c7bb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/decrease-replication-factor.rst @@ -0,0 +1,78 @@ +**To remove one or more nodes from the cluster** + +The following ``decrease-replication-factor`` example decreases the number of nodes in the specified DAX cluster to one. :: + + aws dax decrease-replication-factor \ + --cluster-name daxcluster \ + --new-replication-factor 1 + +Output:: + + { + "Cluster": { + "ClusterName": "daxcluster", + "ClusterArn": "arn:aws:dax:us-west-2:123456789012:cache/daxcluster", + "TotalNodes": 3, + "ActiveNodes": 3, + "NodeType": "dax.r4.large", + "Status": "modifying", + "ClusterDiscoveryEndpoint": { + "Address": "daxcluster.ey3o9d.clustercfg.dax.usw2.cache.amazonaws.com", + "Port": 8111 + }, + "Nodes": [ + { + "NodeId": "daxcluster-a", + "Endpoint": { + "Address": "daxcluster-a.ey3o9d.0001.dax.usw2.cache.amazonaws.com", + "Port": 8111 + }, + "NodeCreateTime": 1576625059.509, + "AvailabilityZone": "us-west-2c", + "NodeStatus": "available", + "ParameterGroupStatus": "in-sync" + }, + { + "NodeId": "daxcluster-b", + "Endpoint": { + "Address": "daxcluster-b.ey3o9d.0001.dax.usw2.cache.amazonaws.com", + "Port": 8111 + }, + "NodeCreateTime": 1576625059.509, + "AvailabilityZone": "us-west-2a", + "NodeStatus": "available", + "ParameterGroupStatus": "in-sync" + }, + { + "NodeId": "daxcluster-c", + "Endpoint": { + "Address": "daxcluster-c.ey3o9d.0001.dax.usw2.cache.amazonaws.com", + "Port": 8111 + }, + "NodeCreateTime": 1576625059.509, + "AvailabilityZone": "us-west-2b", + "NodeStatus": "available", + "ParameterGroupStatus": "in-sync" + } + ], + "PreferredMaintenanceWindow": "thu:13:00-thu:14:00", + "SubnetGroup": "default", + "SecurityGroups": [ + { + "SecurityGroupIdentifier": "sg-1af6e36e", + "Status": "active" + } + ], + "IamRoleArn": "arn:aws:iam::123456789012:role/DAXServiceRoleForDynamoDBAccess", + "ParameterGroup": { + "ParameterGroupName": "default.dax1.0", + "ParameterApplyStatus": "in-sync", + "NodeIdsToReboot": [] + }, + "SSEDescription": { + "Status": "ENABLED" + } + } + } + +For more information, see `Managing DAX Clusters `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/delete-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/delete-cluster.rst new file mode 100755 index 000000000..6ae8ff2ac --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/delete-cluster.rst @@ -0,0 +1,42 @@ +**To delete a DAX cluster** + +The following ``delete-cluster`` example deletes the specified DAX cluster. :: + + aws dax delete-cluster \ + --cluster-name daxcluster + +Output:: + + { + "Cluster": { + "ClusterName": "daxcluster", + "ClusterArn": "arn:aws:dax:us-west-2:123456789012:cache/daxcluster", + "TotalNodes": 3, + "ActiveNodes": 0, + "NodeType": "dax.r4.large", + "Status": "deleting", + "ClusterDiscoveryEndpoint": { + "Address": "dd.ey3o9d.clustercfg.dax.usw2.cache.amazonaws.com", + "Port": 8111 + }, + "PreferredMaintenanceWindow": "fri:06:00-fri:07:00", + "SubnetGroup": "default", + "SecurityGroups": [ + { + "SecurityGroupIdentifier": "sg-1af6e36e", + "Status": "active" + } + ], + "IamRoleArn": "arn:aws:iam::123456789012:role/DAXServiceRoleForDynamoDBAccess", + "ParameterGroup": { + "ParameterGroupName": "default.dax1.0", + "ParameterApplyStatus": "in-sync", + "NodeIdsToReboot": [] + }, + "SSEDescription": { + "Status": "ENABLED" + } + } + } + +For more information, see `Managing DAX Clusters `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/delete-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/delete-parameter-group.rst new file mode 100755 index 000000000..85fe05470 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/delete-parameter-group.rst @@ -0,0 +1,14 @@ +**To delete a parameter group** + +The following ``delete-parameter-group`` example deletes the specified DAX parameter group. :: + + aws dax delete-parameter-group \ + --parameter-group-name daxparametergroup + +Output:: + + { + "DeletionMessage": "Parameter group daxparametergroup has been deleted." + } + +For more information, see `Managing DAX Clusters `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/delete-subnet-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/delete-subnet-group.rst new file mode 100755 index 000000000..0d0b0eca3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/delete-subnet-group.rst @@ -0,0 +1,14 @@ +**To delete a subnet group** + +The following ``delete-subnet-group`` example deletes the specified DAX subnet group. :: + + aws dax delete-subnet-group \ + --subnet-group-name daxSubnetGroup + +Output:: + + { + "DeletionMessage": "Subnet group daxSubnetGroup has been deleted." + } + +For more information, see `Managing DAX Clusters `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/describe-clusters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/describe-clusters.rst new file mode 100755 index 000000000..60efb8d9a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/describe-clusters.rst @@ -0,0 +1,56 @@ +**To return information about all provisioned DAX clusters** + +The following ``describe-clusters`` example displays details about all provisioned DAX clusters. :: + + aws dax describe-clusters + +Output:: + + { + "Clusters": [ + { + "ClusterName": "daxcluster", + "ClusterArn": "arn:aws:dax:us-west-2:123456789012:cache/daxcluster", + "TotalNodes": 1, + "ActiveNodes": 1, + "NodeType": "dax.r4.large", + "Status": "available", + "ClusterDiscoveryEndpoint": { + "Address": "daxcluster.ey3o9d.clustercfg.dax.usw2.cache.amazonaws.com", + "Port": 8111 + }, + "Nodes": [ + { + "NodeId": "daxcluster-a", + "Endpoint": { + "Address": "daxcluster-a.ey3o9d.0001.dax.usw2.cache.amazonaws.com", + "Port": 8111 + }, + "NodeCreateTime": 1576625059.509, + "AvailabilityZone": "us-west-2c", + "NodeStatus": "available", + "ParameterGroupStatus": "in-sync" + } + ], + "PreferredMaintenanceWindow": "thu:13:00-thu:14:00", + "SubnetGroup": "default", + "SecurityGroups": [ + { + "SecurityGroupIdentifier": "sg-1af6e36e", + "Status": "active" + } + ], + "IamRoleArn": "arn:aws:iam::123456789012:role/DAXServiceRoleForDynamoDBAccess", + "ParameterGroup": { + "ParameterGroupName": "default.dax1.0", + "ParameterApplyStatus": "in-sync", + "NodeIdsToReboot": [] + }, + "SSEDescription": { + "Status": "ENABLED" + } + } + ] + } + +For more information, see `Managing DAX Clusters `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/describe-default-parameters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/describe-default-parameters.rst new file mode 100755 index 000000000..4e3b97685 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/describe-default-parameters.rst @@ -0,0 +1,38 @@ +**To return the default system parameter information for DAX** + +The following ``describe-default-parameters`` example displays the default system parameter information for DAX. :: + + aws dax describe-default-parameters + +Output:: + + { + "Parameters": [ + { + "ParameterName": "query-ttl-millis", + "ParameterType": "DEFAULT", + "ParameterValue": "300000", + "NodeTypeSpecificValues": [], + "Description": "Duration in milliseconds for queries to remain cached", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": "TRUE", + "ChangeType": "IMMEDIATE" + }, + { + "ParameterName": "record-ttl-millis", + "ParameterType": "DEFAULT", + "ParameterValue": "300000", + "NodeTypeSpecificValues": [], + "Description": "Duration in milliseconds for records to remain valid in cache (Default: 0 = infinite)", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": "TRUE", + "ChangeType": "IMMEDIATE" + } + ] + } + +For more information, see `Managing DAX Clusters `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/describe-events.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/describe-events.rst new file mode 100755 index 000000000..a07e1cd3d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/describe-events.rst @@ -0,0 +1,44 @@ +**To return all events related to DAX clusters and parameter groups** + +The following ``describe-events`` example displays details of events that are related to DAX clusters and parameter groups. :: + + aws dax describe-events + +Output:: + + { + "Events": [ + { + "SourceName": "daxcluster", + "SourceType": "CLUSTER", + "Message": "Cluster deleted.", + "Date": 1576702736.706 + }, + { + "SourceName": "daxcluster", + "SourceType": "CLUSTER", + "Message": "Removed node daxcluster-b.", + "Date": 1576702691.738 + }, + { + "SourceName": "daxcluster", + "SourceType": "CLUSTER", + "Message": "Removed node daxcluster-a.", + "Date": 1576702633.498 + }, + { + "SourceName": "daxcluster", + "SourceType": "CLUSTER", + "Message": "Removed node daxcluster-c.", + "Date": 1576702631.329 + }, + { + "SourceName": "daxcluster", + "SourceType": "CLUSTER", + "Message": "Cluster created.", + "Date": 1576626560.057 + } + ] + } + +For more information, see `Managing DAX Clusters `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/describe-parameter-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/describe-parameter-groups.rst new file mode 100755 index 000000000..be8e11201 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/describe-parameter-groups.rst @@ -0,0 +1,18 @@ +**To describe the parameter groups defined in DAX** + +The following ``describe-parameter-groups`` example retrieves details about the parameter groups that are defined in DAX. :: + + aws dax describe-parameter-groups + +Output:: + + { + "ParameterGroups": [ + { + "ParameterGroupName": "default.dax1.0", + "Description": "Default parameter group for dax1.0" + } + ] + } + +For more information, see `Managing DAX Clusters `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/describe-parameters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/describe-parameters.rst new file mode 100755 index 000000000..d104bfc8d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/describe-parameters.rst @@ -0,0 +1,39 @@ +**To describe the parameters defined in a DAX parameter group** + +The following ``describe-parameters`` example retrieves details about the parameters that are defined in the specified DAX parameter group. :: + + aws dax describe-parameters \ + --parameter-group-name default.dax1.0 + +Output:: + + { + "Parameters": [ + { + "ParameterName": "query-ttl-millis", + "ParameterType": "DEFAULT", + "ParameterValue": "300000", + "NodeTypeSpecificValues": [], + "Description": "Duration in milliseconds for queries to remain cached", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": "TRUE", + "ChangeType": "IMMEDIATE" + }, + { + "ParameterName": "record-ttl-millis", + "ParameterType": "DEFAULT", + "ParameterValue": "300000", + "NodeTypeSpecificValues": [], + "Description": "Duration in milliseconds for records to remain valid in cache (Default: 0 = infinite)", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": "TRUE", + "ChangeType": "IMMEDIATE" + } + ] + } + +For more information, see `Managing DAX Clusters `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/describe-subnet-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/describe-subnet-groups.rst new file mode 100755 index 000000000..9d302abe2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/describe-subnet-groups.rst @@ -0,0 +1,37 @@ +**To describe subnet groups defined in DAX** + +The following ``describe-subnet-groups`` example retrieves details for the subnet groups defined in DAX. :: + + aws dax describe-subnet-groups + +Output:: + + { + "SubnetGroups": [ + { + "SubnetGroupName": "default", + "Description": "Default CacheSubnetGroup", + "VpcId": "vpc-ee70a196", + "Subnets": [ + { + "SubnetIdentifier": "subnet-874953af", + "SubnetAvailabilityZone": "us-west-2d" + }, + { + "SubnetIdentifier": "subnet-bd3d1fc4", + "SubnetAvailabilityZone": "us-west-2a" + }, + { + "SubnetIdentifier": "subnet-72c2ff28", + "SubnetAvailabilityZone": "us-west-2c" + }, + { + "SubnetIdentifier": "subnet-09e6aa42", + "SubnetAvailabilityZone": "us-west-2b" + } + ] + } + ] + } + +For more information, see `Managing DAX Clusters `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/increase-replication-factor.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/increase-replication-factor.rst new file mode 100755 index 000000000..438142c6b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/increase-replication-factor.rst @@ -0,0 +1,64 @@ +**To increase the replication factor for a DAX cluster** + +The following ``increase-replication-factor`` example increases the specified DAX cluster's replication factor to 3. :: + + aws dax increase-replication-factor \ + --cluster-name daxcluster \ + --new-replication-factor 3 + +Output:: + + { + "Cluster": { + "ClusterName": "daxcluster", + "ClusterArn": "arn:aws:dax:us-west-2:123456789012:cache/daxcluster", + "TotalNodes": 3, + "ActiveNodes": 1, + "NodeType": "dax.r4.large", + "Status": "modifying", + "ClusterDiscoveryEndpoint": { + "Address": "daxcluster.ey3o9d.clustercfg.dax.usw2.cache.amazonaws.com", + "Port": 8111 + }, + "Nodes": [ + { + "NodeId": "daxcluster-a", + "Endpoint": { + "Address": "daxcluster-a.ey3o9d.0001.dax.usw2.cache.amazonaws.com", + "Port": 8111 + }, + "NodeCreateTime": 1576625059.509, + "AvailabilityZone": "us-west-2c", + "NodeStatus": "available", + "ParameterGroupStatus": "in-sync" + }, + { + "NodeId": "daxcluster-b", + "NodeStatus": "creating" + }, + { + "NodeId": "daxcluster-c", + "NodeStatus": "creating" + } + ], + "PreferredMaintenanceWindow": "thu:13:00-thu:14:00", + "SubnetGroup": "default", + "SecurityGroups": [ + { + "SecurityGroupIdentifier": "sg-1af6e36e", + "Status": "active" + } + ], + "IamRoleArn": "arn:aws:iam::123456789012:role/DAXServiceRoleForDynamoDBAccess", + "ParameterGroup": { + "ParameterGroupName": "default.dax1.0", + "ParameterApplyStatus": "in-sync", + "NodeIdsToReboot": [] + }, + "SSEDescription": { + "Status": "ENABLED" + } + } + } + +For more information, see `Managing DAX Clusters `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/list-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/list-tags.rst new file mode 100755 index 000000000..580639f33 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/list-tags.rst @@ -0,0 +1,19 @@ +**To list tags on a DAX resource** + +The following ``list-tags`` example lists the tag keys and values attached to the specified DAX cluster. :: + + aws dax list-tags \ + --resource-name arn:aws:dax:us-west-2:123456789012:cache/daxcluster + +Output:: + + { + "Tags": [ + { + "Key": "ClusterUsage", + "Value": "prod" + } + ] + } + +For more information, see `Managing DAX Clusters `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/tag-resource.rst new file mode 100755 index 000000000..c17b1677f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/tag-resource.rst @@ -0,0 +1,20 @@ +**To tag a DAX resource** + +The following ``tag-resource`` example attaches the specified tag key name and associated value to the specified DAX cluster to describe the cluster usage. :: + + aws dax tag-resource \ + --resource-name arn:aws:dax:us-west-2:123456789012:cache/daxcluster \ + --tags="Key=ClusterUsage,Value=prod" + +Output:: + + { + "Tags": [ + { + "Key": "ClusterUsage", + "Value": "prod" + } + ] + } + +For more information, see `Managing DAX Clusters `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/untag-resource.rst new file mode 100755 index 000000000..4ea9dc832 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dax/untag-resource.rst @@ -0,0 +1,15 @@ +**To remove tags from a DAX resource** + +The following ``untag-resource`` example removes the tag with the specified key name from a DAX cluster. :: + + aws dax untag-resource \ + --resource-name arn:aws:dax:us-west-2:123456789012:cache/daxcluster \ + --tag-keys="ClusterUsage" + +Output:: + + { + "Tags": [] + } + +For more information, see `Managing DAX Clusters `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/add-tags-to-on-premises-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/add-tags-to-on-premises-instances.rst new file mode 100755 index 000000000..e1d45554e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/add-tags-to-on-premises-instances.rst @@ -0,0 +1,9 @@ +**To add tags to on-premises instances** + +The following ``add-tags-to-on-premises-instances`` example associates in AWS CodeDeploy the same on-premises instance tag to two on-premises instances. It does not register the on-premises instances with AWS CodeDeploy. :: + + aws deploy add-tags-to-on-premises-instances \ + --instance-names AssetTag12010298EX AssetTag23121309EX \ + --tags Key=Name,Value=CodeDeployDemo-OnPrem + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/batch-get-application-revisions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/batch-get-application-revisions.rst new file mode 100755 index 000000000..5e0fdbdff --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/batch-get-application-revisions.rst @@ -0,0 +1,34 @@ +**To retrieve information about application revisions** + +The following ``batch-get-application-revisions`` example retrieves information about the specified revision stored in a GitHub repository. :: + + aws deploy batch-get-application-revisions \ + --application-name my-codedeploy-application \ + --revisions "[{\"gitHubLocation\": {\"commitId\": \"fa85936EXAMPLEa31736c051f10d77297EXAMPLE\",\"repository\": \"my-github-token/my-repository\"},\"revisionType\": \"GitHub\"}]" + +Output:: + + { + "revisions": [ + { + "genericRevisionInfo": { + "description": "Application revision registered by Deployment ID: d-A1B2C3111", + "lastUsedTime": 1556912355.884, + "registerTime": 1556912355.884, + "firstUsedTime": 1556912355.884, + "deploymentGroups": [] + }, + "revisionLocation": { + "revisionType": "GitHub", + "gitHubLocation": { + "commitId": "fa85936EXAMPLEa31736c051f10d77297EXAMPLE", + "repository": "my-github-token/my-repository" + } + } + } + ], + "applicationName": "my-codedeploy-application", + "errorMessage": "" + } + +For more information, see `BatchGetApplicationRevisions `_ in the *AWS CodeDeploy API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/batch-get-applications.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/batch-get-applications.rst new file mode 100755 index 000000000..5dc5b163a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/batch-get-applications.rst @@ -0,0 +1,24 @@ +**To get information about multiple applications** + +The following ``batch-get-applications`` example displays information about multiple applications that are associated with the user's AWS account. :: + + aws deploy batch-get-applications --application-names WordPress_App MyOther_App + +Output:: + + { + "applicationsInfo": [ + { + "applicationName": "WordPress_App", + "applicationId": "d9dd6993-f171-44fa-a811-211e4EXAMPLE", + "createTime": 1407878168.078, + "linkedToGitHub": false + }, + { + "applicationName": "MyOther_App", + "applicationId": "8ca57519-31da-42b2-9194-8bb16EXAMPLE", + "createTime": 1407453571.63, + "linkedToGitHub": false + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/batch-get-deployment-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/batch-get-deployment-groups.rst new file mode 100755 index 000000000..56da6dafc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/batch-get-deployment-groups.rst @@ -0,0 +1,86 @@ +**To retrieve information about one or more deployment groups** + +The following ``batch-get-deployment-groups`` example retrieves information about two of the deployment groups that are associated with the specified CodeDeploy application. :: + + aws deploy batch-get-deployment-groups \ + --application-name my-codedeploy-application \ + --deployment-group-names "[\"my-deployment-group-1\",\"my-deployment-group-2\"]" + +Output:: + + { + "deploymentGroupsInfo": [ + { + "deploymentStyle": { + "deploymentOption": "WITHOUT_TRAFFIC_CONTROL", + "deploymentType": "IN_PLACE" + }, + "autoRollbackConfiguration": { + "enabled": false + }, + "onPremisesTagSet": { + "onPremisesTagSetList": [] + }, + "serviceRoleArn": "arn:aws:iam::123456789012:role/CodeDeployServiceRole", + "lastAttemptedDeployment": { + "endTime": 1556912366.415, + "status": "Failed", + "createTime": 1556912355.884, + "deploymentId": "d-A1B2C3111" + }, + "autoScalingGroups": [], + "deploymentGroupName": "my-deployment-group-1", + "ec2TagSet": { + "ec2TagSetList": [ + [ + { + "Type": "KEY_AND_VALUE", + "Value": "my-EC2-instance", + "Key": "Name" + } + ] + ] + }, + "deploymentGroupId": "a1b2c3d4-5678-90ab-cdef-11111example", + "triggerConfigurations": [], + "applicationName": "my-codedeploy-application", + "computePlatform": "Server", + "deploymentConfigName": "CodeDeployDefault.AllAtOnce" + }, + { + "deploymentStyle": { + "deploymentOption": "WITHOUT_TRAFFIC_CONTROL", + "deploymentType": "IN_PLACE" + }, + "autoRollbackConfiguration": { + "enabled": false + }, + "onPremisesTagSet": { + "onPremisesTagSetList": [] + }, + "serviceRoleArn": "arn:aws:iam::123456789012:role/CodeDeployServiceRole", + "autoScalingGroups": [], + "deploymentGroupName": "my-deployment-group-2", + "ec2TagSet": { + "ec2TagSetList": [ + [ + { + "Type": "KEY_AND_VALUE", + "Value": "my-EC2-instance", + "Key": "Name" + } + ] + ] + }, + "deploymentGroupId": "a1b2c3d4-5678-90ab-cdef-22222example", + "triggerConfigurations": [], + "applicationName": "my-codedeploy-application", + "computePlatform": "Server", + "deploymentConfigName": "CodeDeployDefault.AllAtOnce" + } + ], + "errorMessage": "" + } + +For more information, see `BatchGetDeploymentGroups `_ in the *AWS CodeDeploy API Reference*. + \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/batch-get-deployment-targets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/batch-get-deployment-targets.rst new file mode 100755 index 000000000..c245e5c09 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/batch-get-deployment-targets.rst @@ -0,0 +1,64 @@ +**To retrieve the targets associated with a deployment** + +The following ``batch-get-deployment-targets`` example returns information about one of the targets associated with the specified deployment. :: + + aws deploy batch-get-deployment-targets \ + --deployment-id "d-1A2B3C4D5" \ + --target-ids "i-01a2b3c4d5e6f1111" + +Output:: + + { + "deploymentTargets": [ + { + "deploymentTargetType": "InstanceTarget", + "instanceTarget": { + "lifecycleEvents": [ + { + "startTime": 1556918592.162, + "lifecycleEventName": "ApplicationStop", + "status": "Succeeded", + "endTime": 1556918592.247, + "diagnostics": { + "scriptName": "", + "errorCode": "Success", + "logTail": "", + "message": "Succeeded" + } + }, + { + "startTime": 1556918593.193, + "lifecycleEventName": "DownloadBundle", + "status": "Succeeded", + "endTime": 1556918593.981, + "diagnostics": { + "scriptName": "", + "errorCode": "Success", + "logTail": "", + "message": "Succeeded" + } + }, + { + "startTime": 1556918594.805, + "lifecycleEventName": "BeforeInstall", + "status": "Succeeded", + "endTime": 1556918681.807, + "diagnostics": { + "scriptName": "", + "errorCode": "Success", + "logTail": "", + "message": "Succeeded" + } + } + ], + "targetArn": "arn:aws:ec2:us-west-2:123456789012:instance/i-01a2b3c4d5e6f1111", + "deploymentId": "d-1A2B3C4D5", + "lastUpdatedAt": 1556918687.504, + "targetId": "i-01a2b3c4d5e6f1111", + "status": "Succeeded" + } + } + ] + } + +For more information, see `BatchGetDeploymentTargets `_ in the *AWS CodeDeploy API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/batch-get-deployments.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/batch-get-deployments.rst new file mode 100755 index 000000000..3f4c8bdeb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/batch-get-deployments.rst @@ -0,0 +1,68 @@ +**To get information about multiple deployments** + +The following ``batch-get-deployments`` example displays information about multiple deployments that are associated with the user's AWS account. :: + + aws deploy batch-get-deployments --deployment-ids d-A1B2C3111 d-A1B2C3222 + +Output:: + + { + "deploymentsInfo": [ + { + "applicationName": "WordPress_App", + "status": "Failed", + "deploymentOverview": { + "Failed": 0, + "InProgress": 0, + "Skipped": 0, + "Succeeded": 1, + "Pending": 0 + }, + "deploymentConfigName": "CodeDeployDefault.OneAtATime", + "creator": "user", + "deploymentGroupName": "WordPress_DG", + "revision": { + "revisionType": "S3", + "s3Location": { + "bundleType": "zip", + "version": "uTecLusEXAMPLEFXtfUcyfV8bEXAMPLE", + "bucket": "amzn-s3-demo-bucket", + "key": "WordPressApp.zip" + } + }, + "deploymentId": "d-A1B2C3111", + "createTime": 1408480721.9, + "completeTime": 1408480741.822 + }, + { + "applicationName": "MyOther_App", + "status": "Failed", + "deploymentOverview": { + "Failed": 1, + "InProgress": 0, + "Skipped": 0, + "Succeeded": 0, + "Pending": 0 + }, + "deploymentConfigName": "CodeDeployDefault.OneAtATime", + "creator": "user", + "errorInformation": { + "message": "Deployment failed: Constraint default violated: No hosts succeeded.", + "code": "HEALTH_CONSTRAINTS" + }, + "deploymentGroupName": "MyOther_DG", + "revision": { + "revisionType": "S3", + "s3Location": { + "bundleType": "zip", + "eTag": "\"dd56cfdEXAMPLE8e768f9d77fEXAMPLE\"", + "bucket": "amzn-s3-demo-bucket", + "key": "MyOtherApp.zip" + } + }, + "deploymentId": "d-A1B2C3222", + "createTime": 1409764576.589, + "completeTime": 1409764596.101 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/batch-get-on-premises-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/batch-get-on-premises-instances.rst new file mode 100755 index 000000000..d9eab1a41 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/batch-get-on-premises-instances.rst @@ -0,0 +1,36 @@ +**To get information about one or more on-premises instances** + +The following ``batch-get-on-premises-instances`` example gets information about two on-premises instances. :: + + aws deploy batch-get-on-premises-instances --instance-names AssetTag12010298EX AssetTag23121309EX + +Output:: + + { + "instanceInfos": [ + { + "iamUserArn": "arn:aws:iam::123456789012:user/AWS/CodeDeploy/AssetTag12010298EX", + "tags": [ + { + "Value": "CodeDeployDemo-OnPrem", + "Key": "Name" + } + ], + "instanceName": "AssetTag12010298EX", + "registerTime": 1425579465.228, + "instanceArn": "arn:aws:codedeploy:us-west-2:123456789012:instance/AssetTag12010298EX_4IwLNI2Alh" + }, + { + "iamUserArn": "arn:aws:iam::123456789012:user/AWS/CodeDeploy/AssetTag23121309EX", + "tags": [ + { + "Value": "CodeDeployDemo-OnPrem", + "Key": "Name" + } + ], + "instanceName": "AssetTag23121309EX", + "registerTime": 1425595585.988, + "instanceArn": "arn:aws:codedeploy:us-west-2:80398EXAMPLE:instance/AssetTag23121309EX_PomUy64Was" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/continue-deployment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/continue-deployment.rst new file mode 100755 index 000000000..9b9e9c169 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/continue-deployment.rst @@ -0,0 +1,11 @@ +**To start rerouting traffic without waiting for a specified wait time to elapse.** + +The following ``continue-deployment`` example starts rerouting traffic from instances in the original environment that are ready to start shifting traffic to instances in the replacement environment. :: + + aws deploy continue-deployment \ + --deployment-id "d-A1B2C3111" \ + --deployment-wait-type "READY_WAIT" + +This command produces no output. + +For more information, see `ContinueDeployment `__ in the *AWS CodeDeploy API Reference*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/create-application.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/create-application.rst new file mode 100755 index 000000000..a8df33969 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/create-application.rst @@ -0,0 +1,11 @@ +**To create an application** + +The following ``create-application`` example creates an application and associates it with the user's AWS account. :: + + aws deploy create-application --application-name MyOther_App + +Output:: + + { + "applicationId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/create-deployment-config.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/create-deployment-config.rst new file mode 100755 index 000000000..10315aae1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/create-deployment-config.rst @@ -0,0 +1,13 @@ +**To create a custom deployment configuration** + +The following ``create-deployment-config`` example creates a custom deployment configuration and associates it with the user's AWS account. :: + + aws deploy create-deployment-config \ + --deployment-config-name ThreeQuartersHealthy \ + --minimum-healthy-hosts type=FLEET_PERCENT,value=75 + +Output:: + + { + "deploymentConfigId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/create-deployment-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/create-deployment-group.rst new file mode 100755 index 000000000..1a66b615c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/create-deployment-group.rst @@ -0,0 +1,17 @@ +**To create a deployment group** + +The following ``create-deployment-group`` example creates a deployment group and associates it with the specified application and the user's AWS account. :: + + aws deploy create-deployment-group \ + --application-name WordPress_App \ + --auto-scaling-groups CodeDeployDemo-ASG \ + --deployment-config-name CodeDeployDefault.OneAtATime \ + --deployment-group-name WordPress_DG \ + --ec2-tag-filters Key=Name,Value=CodeDeployDemo,Type=KEY_AND_VALUE \ + --service-role-arn arn:aws:iam::123456789012:role/CodeDeployDemoRole + +Output:: + + { + "deploymentGroupId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/create-deployment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/create-deployment.rst new file mode 100755 index 000000000..d016e64f9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/create-deployment.rst @@ -0,0 +1,62 @@ +**Example 1: To create a CodeDeploy deployment using the EC2/On-premises compute platform** + +The following ``create-deployment`` example creates a deployment and associates it with the user's AWS account. :: + + aws deploy create-deployment \ + --application-name WordPress_App \ + --deployment-config-name CodeDeployDefault.OneAtATime \ + --deployment-group-name WordPress_DG \ + --description "My demo deployment" \ + --s3-location bucket=amzn-s3-demo-bucket,bundleType=zip,eTag=dd56cfdEXAMPLE8e768f9d77fEXAMPLE,key=WordPressApp.zip + +Output:: + + { + "deploymentId": "d-A1B2C3111" + } + +**Example 2: To create a CodeDeploy deployment using the Amazon ECS compute platform** + +The following ``create-deployment`` example uses the following two files to deploy an Amazon ECS service. + +Contents of ``create-deployment.json`` file:: + + { + "applicationName": "ecs-deployment", + "deploymentGroupName": "ecs-deployment-dg", + "revision": { + "revisionType": "S3", + "s3Location": { + "bucket": "ecs-deployment-bucket", + "key": "appspec.yaml", + "bundleType": "YAML" + } + } + } + +That file, in turn, retrieves the following file ``appspec.yaml`` from an S3 bucket called ``ecs-deployment-bucket``. :: + + version: 0.0 + Resources: + - TargetService: + Type: AWS::ECS::Service + Properties: + TaskDefinition: "arn:aws:ecs:region:123456789012:task-definition/ecs-task-def:2" + LoadBalancerInfo: + ContainerName: "sample-app" + ContainerPort: 80 + PlatformVersion: "LATEST" + +Command:: + + aws deploy create-deployment \ + --cli-input-json file://create-deployment.json \ + --region us-east-1 + +Output:: + + { + "deploymentId": "d-1234ABCDE" + } + +For more information, see `CreateDeployment `__ in the *AWS CodeDeploy API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/delete-application.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/delete-application.rst new file mode 100755 index 000000000..65a0c488f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/delete-application.rst @@ -0,0 +1,7 @@ +**To delete an application** + +The following ``delete-application`` example deletes the specified application that is associated with the user's AWS account. :: + + aws deploy delete-application --application-name WordPress_App + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/delete-deployment-config.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/delete-deployment-config.rst new file mode 100755 index 000000000..6b67bc877 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/delete-deployment-config.rst @@ -0,0 +1,7 @@ +**To delete a deployment configuration** + +The following ``delete-deployment-config`` example deletes a custom deployment configuration that is associated with the user's AWS account. :: + + aws deploy delete-deployment-config --deployment-config-name ThreeQuartersHealthy + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/delete-deployment-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/delete-deployment-group.rst new file mode 100755 index 000000000..065a945b4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/delete-deployment-group.rst @@ -0,0 +1,13 @@ +**To delete a deployment group** + +The following ``delete-deployment-group`` example deletes a deployment group that is associated with the specified application. :: + + aws deploy delete-deployment-group \ + --application-name WordPress_App \ + --deployment-group-name WordPress_DG + +Output:: + + { + "hooksNotCleanedUp": [] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/delete-git-hub-account-token.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/delete-git-hub-account-token.rst new file mode 100755 index 000000000..35a0ab0c7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/delete-git-hub-account-token.rst @@ -0,0 +1,13 @@ +**To deletes a GitHub account connection** + +The following ``delete-git-hub-account-token`` example deletes the connection of the specified GitHub account. :: + + aws deploy delete-git-hub-account-token --token-name my-github-account + +Output:: + + { + "tokenName": "my-github-account" + } + +For more information, see `DeleteGitHubAccountToken `_ in the *AWS CodeDeploy API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/deregister-on-premises-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/deregister-on-premises-instance.rst new file mode 100755 index 000000000..d94aa539b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/deregister-on-premises-instance.rst @@ -0,0 +1,7 @@ +**To deregister an on-premises instance** + +The following ``deregister-on-premises-instance`` example deregisters an on-premises instance with AWS CodeDeploy, but it does not delete the IAM user associated with the instance, nor does it disassociate in AWS CodeDeploy the on-premises instance tags from the instance. It also does not uninstall the AWS CodeDeploy Agent from the instance nor remove the on-premises configuration file from the instance. :: + + aws deploy deregister-on-premises-instance --instance-name AssetTag12010298EX + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/deregister.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/deregister.rst new file mode 100755 index 000000000..91215aa1d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/deregister.rst @@ -0,0 +1,18 @@ +**To deregister an on-premises instance** + +The following ``deregister`` example deregisters an on-premises instance with AWS CodeDeploy. It does not delete the IAM user that is associated with the instance. It disassociates in AWS CodeDeploy the on-premises tags from the instance. It does not uninstall the AWS CodeDeploy Agent from the instance nor remove the on-premises configuration file from the instance. :: + + aws deploy deregister \ + --instance-name AssetTag12010298EX \ + --no-delete-iam-user \ + --region us-west-2 + +Output:: + + Retrieving on-premises instance information... DONE + IamUserArn: arn:aws:iam::80398EXAMPLE:user/AWS/CodeDeploy/AssetTag12010298EX + Tags: Key=Name,Value=CodeDeployDemo-OnPrem + Removing tags from the on-premises instance... DONE + Deregistering the on-premises instance... DONE + Run the following command on the on-premises instance to uninstall the codedeploy-agent: + aws deploy uninstall diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-application-revision.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-application-revision.rst new file mode 100755 index 000000000..b81442039 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-application-revision.rst @@ -0,0 +1,29 @@ +**To get information about an application revision** + +The following ``get-application-revision`` example displays information about an application revision that is associated with the specified application. :: + + aws deploy get-application-revision \ + --application-name WordPress_App \ + --s3-location bucket=amzn-s3-demo-bucket,bundleType=zip,eTag=dd56cfdEXAMPLE8e768f9d77fEXAMPLE,key=WordPressApp.zip + +Output:: + + { + "applicationName": "WordPress_App", + "revisionInfo": { + "description": "Application revision registered by Deployment ID: d-A1B2C3111", + "registerTime": 1411076520.009, + "deploymentGroups": "WordPress_DG", + "lastUsedTime": 1411076520.009, + "firstUsedTime": 1411076520.009 + }, + "revision": { + "revisionType": "S3", + "s3Location": { + "bundleType": "zip", + "eTag": "dd56cfdEXAMPLE8e768f9d77fEXAMPLE", + "bucket": "amzn-s3-demo-bucket", + "key": "WordPressApp.zip" + } + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-application.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-application.rst new file mode 100755 index 000000000..d645219b9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-application.rst @@ -0,0 +1,16 @@ +**To get information about an application** + +The following ``get-application`` example displays information about an application that is associated with the user's AWS account. :: + + aws deploy get-application --application-name WordPress_App + +Output:: + + { + "application": { + "applicationName": "WordPress_App", + "applicationId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", + "createTime": 1407878168.078, + "linkedToGitHub": false + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-deployment-config.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-deployment-config.rst new file mode 100755 index 000000000..0e0c82697 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-deployment-config.rst @@ -0,0 +1,19 @@ +**To get information about a deployment configuration** + +The following ``get-deployment-config`` example displays information about a deployment configuration that is associated with the user's AWS account. :: + + aws deploy get-deployment-config --deployment-config-name ThreeQuartersHealthy + +Output:: + + { + "deploymentConfigInfo": { + "deploymentConfigId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", + "minimumHealthyHosts": { + "type": "FLEET_PERCENT", + "value": 75 + }, + "createTime": 1411081164.379, + "deploymentConfigName": "ThreeQuartersHealthy" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-deployment-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-deployment-group.rst new file mode 100755 index 000000000..fbb7853df --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-deployment-group.rst @@ -0,0 +1,29 @@ +**To view information about a deployment group** + +The following ``get-deployment-group`` example displays information about a deployment group that is associated with the specified application. :: + + aws deploy get-deployment-group \ + --application-name WordPress_App \ + --deployment-group-name WordPress_DG + +Output:: + + { + "deploymentGroupInfo": { + "applicationName": "WordPress_App", + "autoScalingGroups": [ + "CodeDeployDemo-ASG" + ], + "deploymentConfigName": "CodeDeployDefault.OneAtATime", + "ec2TagFilters": [ + { + "Type": "KEY_AND_VALUE", + "Value": "CodeDeployDemo", + "Key": "Name" + } + ], + "deploymentGroupId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", + "serviceRoleArn": "arn:aws:iam::123456789012:role/CodeDeployDemoRole", + "deploymentGroupName": "WordPress_DG" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-deployment-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-deployment-instance.rst new file mode 100755 index 000000000..bdc91ffe0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-deployment-instance.rst @@ -0,0 +1,58 @@ +**To get information about a deployment instance** + +The following ``get-deployment-instance`` example displays information about a deployment instance that is associated with the specified deployment. :: + + aws deploy get-deployment-instance --deployment-id d-QA4G4F9EX --instance-id i-902e9fEX + +Output:: + + { + "instanceSummary": { + "instanceId": "arn:aws:ec2:us-east-1:80398EXAMPLE:instance/i-902e9fEX", + "lifecycleEvents": [ + { + "status": "Succeeded", + "endTime": 1408480726.569, + "startTime": 1408480726.437, + "lifecycleEventName": "ApplicationStop" + }, + { + "status": "Succeeded", + "endTime": 1408480728.016, + "startTime": 1408480727.665, + "lifecycleEventName": "DownloadBundle" + }, + { + "status": "Succeeded", + "endTime": 1408480729.744, + "startTime": 1408480729.125, + "lifecycleEventName": "BeforeInstall" + }, + { + "status": "Succeeded", + "endTime": 1408480730.979, + "startTime": 1408480730.844, + "lifecycleEventName": "Install" + }, + { + "status": "Failed", + "endTime": 1408480732.603, + "startTime": 1408480732.1, + "lifecycleEventName": "AfterInstall" + }, + { + "status": "Skipped", + "endTime": 1408480732.606, + "lifecycleEventName": "ApplicationStart" + }, + { + "status": "Skipped", + "endTime": 1408480732.606, + "lifecycleEventName": "ValidateService" + } + ], + "deploymentId": "d-QA4G4F9EX", + "lastUpdatedAt": 1408480733.152, + "status": "Failed" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-deployment-target.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-deployment-target.rst new file mode 100755 index 000000000..81258b0f9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-deployment-target.rst @@ -0,0 +1,110 @@ +**To return information about a deployment target** + +The following ``get-deployment-target`` example returns information about a deployment target that is associated with the specified deployment. :: + + aws deploy get-deployment-target \ + --deployment-id "d-A1B2C3111" \ + --target-id "i-a1b2c3d4e5f611111" + +Output:: + + { + "deploymentTarget": { + "deploymentTargetType": "InstanceTarget", + "instanceTarget": { + "lastUpdatedAt": 1556918687.504, + "targetId": "i-a1b2c3d4e5f611111", + "targetArn": "arn:aws:ec2:us-west-2:123456789012:instance/i-a1b2c3d4e5f611111", + "status": "Succeeded", + "lifecycleEvents": [ + { + "status": "Succeeded", + "diagnostics": { + "errorCode": "Success", + "message": "Succeeded", + "logTail": "", + "scriptName": "" + }, + "lifecycleEventName": "ApplicationStop", + "startTime": 1556918592.162, + "endTime": 1556918592.247 + }, + { + "status": "Succeeded", + "diagnostics": { + "errorCode": "Success", + "message": "Succeeded", + "logTail": "", + "scriptName": "" + }, + "lifecycleEventName": "DownloadBundle", + "startTime": 1556918593.193, + "endTime": 1556918593.981 + }, + { + "status": "Succeeded", + "diagnostics": { + "errorCode": "Success", + "message": "Succeeded", + "logTail": "", + "scriptName": "" + }, + "lifecycleEventName": "BeforeInstall", + "startTime": 1556918594.805, + "endTime": 1556918681.807 + }, + { + "status": "Succeeded", + "diagnostics": { + "errorCode": "Success", + "message": "Succeeded", + "logTail": "", + "scriptName": "" + }, + "lifecycleEventName": "Install", + "startTime": 1556918682.696, + "endTime": 1556918683.005 + }, + { + "status": "Succeeded", + "diagnostics": { + "errorCode": "Success", + "message": "Succeeded", + "logTail": "", + "scriptName": "" + }, + "lifecycleEventName": "AfterInstall", + "startTime": 1556918684.135, + "endTime": 1556918684.216 + }, + { + "status": "Succeeded", + "diagnostics": { + "errorCode": "Success", + "message": "Succeeded", + "logTail": "", + "scriptName": "" + }, + "lifecycleEventName": "ApplicationStart", + "startTime": 1556918685.211, + "endTime": 1556918685.295 + }, + { + "status": "Succeeded", + "diagnostics": { + "errorCode": "Success", + "message": "Succeeded", + "logTail": "", + "scriptName": "" + }, + "lifecycleEventName": "ValidateService", + "startTime": 1556918686.65, + "endTime": 1556918686.747 + } + ], + "deploymentId": "d-A1B2C3111" + } + } + } + +For more information, see `GetDeploymentTarget `_ in the *AWS CodeDeploy API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-deployment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-deployment.rst new file mode 100755 index 000000000..2e2f2a073 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-deployment.rst @@ -0,0 +1,38 @@ +**To get information about a deployment** + +The following ``get-deployment`` example displays information about a deployment that is associated with the user's AWS account. :: + + aws deploy get-deployment --deployment-id d-A1B2C3123 + +Output:: + + { + "deploymentInfo": { + "applicationName": "WordPress_App", + "status": "Succeeded", + "deploymentOverview": { + "Failed": 0, + "InProgress": 0, + "Skipped": 0, + "Succeeded": 1, + "Pending": 0 + }, + "deploymentConfigName": "CodeDeployDefault.OneAtATime", + "creator": "user", + "description": "My WordPress app deployment", + "revision": { + "revisionType": "S3", + "s3Location": { + "bundleType": "zip", + "eTag": "\"dd56cfdEXAMPLE8e768f9d77fEXAMPLE\"", + "bucket": "amzn-s3-demo-bucket", + "key": "WordPressApp.zip" + } + }, + "deploymentId": "d-A1B2C3123", + "deploymentGroupName": "WordPress_DG", + "createTime": 1409764576.589, + "completeTime": 1409764596.101, + "ignoreApplicationStopFailures": false + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-on-premises-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-on-premises-instance.rst new file mode 100755 index 000000000..6b8520a8c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/get-on-premises-instance.rst @@ -0,0 +1,22 @@ +**To get information about an on-premises instance** + +The following ``get-on-premises-instance`` example retrieves information about the specified on-premises instance. :: + + aws deploy get-on-premises-instance --instance-name AssetTag12010298EX + +Output:: + + { + "instanceInfo": { + "iamUserArn": "arn:aws:iam::123456789012:user/AWS/CodeDeploy/AssetTag12010298EX", + "tags": [ + { + "Value": "CodeDeployDemo-OnPrem", + "Key": "Name" + } + ], + "instanceName": "AssetTag12010298EX", + "registerTime": 1425579465.228, + "instanceArn": "arn:aws:codedeploy:us-east-1:123456789012:instance/AssetTag12010298EX_4IwLNI2Alh" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/install.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/install.rst new file mode 100755 index 000000000..8696e5d26 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/install.rst @@ -0,0 +1,14 @@ +**To install an on-premises instance** + +The following ``install`` example copies the on-premises configuration file from the specified location on the instance to the location on the instance that the AWS CodeDeploy Agent expects to find it. It also installs the AWS CodeDeploy Agent on the instance. It does not create any IAM user, nor register the on-premises instance with AWS CodeDeploy, nor associate any on-premises instance tags in AWS CodeDeploy for the instance. :: + + aws deploy install \ + --override-config \ + --config-file C:\temp\codedeploy.onpremises.yml \ + --region us-west-2 \ + --agent-installer s3://aws-codedeploy-us-west-2/latest/codedeploy-agent.msi + +Output:: + + Creating the on-premises instance configuration file... DONE + Installing the AWS CodeDeploy Agent... DONE diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-application-revisions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-application-revisions.rst new file mode 100755 index 000000000..8a6b48207 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-application-revisions.rst @@ -0,0 +1,36 @@ +**To get information about application revisions** + +The following ``list-application-revisions`` example displays information about all application revisions that are associated with the specified application. :: + + aws deploy list-application-revisions \ + --application-name WordPress_App \ + --s-3-bucket amzn-s3-demo-bucket \ + --deployed exclude \ + --s-3-key-prefix WordPress_ \ + --sort-by lastUsedTime \ + --sort-order descending + +Output:: + + { + "revisions": [ + { + "revisionType": "S3", + "s3Location": { + "version": "uTecLusvCB_JqHFXtfUcyfV8bEXAMPLE", + "bucket": "amzn-s3-demo-bucket", + "key": "WordPress_App.zip", + "bundleType": "zip" + } + }, + { + "revisionType": "S3", + "s3Location": { + "version": "tMk.UxgDpMEVb7V187ZM6wVAWEXAMPLE", + "bucket": "amzn-s3-demo-bucket", + "key": "WordPress_App_2-0.zip", + "bundleType": "zip" + } + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-applications.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-applications.rst new file mode 100755 index 000000000..fb169bdc5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-applications.rst @@ -0,0 +1,14 @@ +**To get information about applications** + +The following ``list-applications`` example displays information about all applications that are associated with the user's AWS account. :: + + aws deploy list-applications + +Output:: + + { + "applications": [ + "WordPress_App", + "MyOther_App" + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-deployment-configs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-deployment-configs.rst new file mode 100755 index 000000000..0fbb6cbdd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-deployment-configs.rst @@ -0,0 +1,16 @@ +**To get information about deployment configurations** + +The following ``list-deployment-configs`` example displays information about all deployment configurations that are associated with the user's AWS account. :: + + aws deploy list-deployment-configs + +Output:: + + { + "deploymentConfigsList": [ + "ThreeQuartersHealthy", + "CodeDeployDefault.AllAtOnce", + "CodeDeployDefault.HalfAtATime", + "CodeDeployDefault.OneAtATime" + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-deployment-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-deployment-groups.rst new file mode 100755 index 000000000..9b19b3190 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-deployment-groups.rst @@ -0,0 +1,15 @@ +**To get information about deployment groups** + +The following ``list-deployment-groups`` example displays information about all deployment groups that are associated with the specified application. :: + + aws deploy list-deployment-groups --application-name WordPress_App + +Output:: + + { + "applicationName": "WordPress_App", + "deploymentGroups": [ + "WordPress_DG", + "WordPress_Beta_DG" + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-deployment-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-deployment-instances.rst new file mode 100755 index 000000000..f78e457fa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-deployment-instances.rst @@ -0,0 +1,16 @@ +**To get information about deployment instances** + +The following ``list-deployment-instances`` example displays information about all deployment instances that are associated with the specified deployment. :: + + aws deploy list-deployment-instances \ + --deployment-id d-A1B2C3111 \ + --instance-status-filter Succeeded + +Output:: + + { + "instancesList": [ + "i-EXAMPLE11", + "i-EXAMPLE22" + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-deployment-targets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-deployment-targets.rst new file mode 100755 index 000000000..ee26a7eb2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-deployment-targets.rst @@ -0,0 +1,17 @@ +**To retrieve a list of target IDs that are associated with a deployment** + +The following ``list-deployment-targets`` example retrieves a list of target IDs associated with deployments that have a status of "Failed" or "InProgress." :: + + aws deploy list-deployment-targets \ + --deployment-id "d-A1B2C3111" \ + --target-filters "{\"TargetStatus\":[\"Failed\",\"InProgress\"]}" + +Output:: + + { + "targetIds": [ + "i-0f1558aaf90e5f1f9" + ] + } + +For more information, see `ListDeploymentTargets `_ in the *AWS CodeDeploy API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-deployments.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-deployments.rst new file mode 100755 index 000000000..64732f257 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-deployments.rst @@ -0,0 +1,19 @@ +**To get information about deployments** + +The following ``list-deployments`` example displays information about all deployments that are associated with the specified application and deployment group. :: + + aws deploy list-deployments \ + --application-name WordPress_App \ + --create-time-range start=2014-08-19T00:00:00,end=2014-08-20T00:00:00 \ + --deployment-group-name WordPress_DG \ + --include-only-statuses Failed + +Output:: + + { + "deployments": [ + "d-EXAMPLE11", + "d-EXAMPLE22", + "d-EXAMPLE33" + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-git-hub-account-token-names.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-git-hub-account-token-names.rst new file mode 100755 index 000000000..dc7aa2d0a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-git-hub-account-token-names.rst @@ -0,0 +1,17 @@ +**To lists the names of stored connections to GitHub accounts** + +The following ``list-git-hub-account-token-names`` example lists the names of the stored connections to GitHub accounts for the current AWS user. :: + + aws deploy list-git-hub-account-token-names + +Output:: + + { + "tokenNameList": [ + "my-first-token", + "my-second-token", + "my-third-token" + ] + } + +For more information, see `ListGitHubAccountTokenNames `_ in the *AWS CodeDeploy API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-on-premises-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-on-premises-instances.rst new file mode 100755 index 000000000..3b5a45488 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-on-premises-instances.rst @@ -0,0 +1,15 @@ +**To get information about one or more on-premises instances** + +The following ``list-on-premises-instances`` example retrieves a list of available on-premises instance names for instances that are registered in AWS CodeDeploy and also have the specified on-premises instance tag associated in AWS CodeDeploy with the instance. :: + + aws deploy list-on-premises-instances \ + --registration-status Registered \ + --tag-filters Key=Name,Value=CodeDeployDemo-OnPrem,Type=KEY_AND_VALUE + +Output:: + + { + "instanceNames": [ + "AssetTag12010298EX" + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-tags-for-resource.rst new file mode 100644 index 000000000..c1a569bd2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/list-tags-for-resource.rst @@ -0,0 +1,23 @@ +**To list tags for a resource (application)** + +The following ``list-tags-for-resource`` example lists the tags applied to an application named testApp in CodeDeploy. :: + + aws deploy list-tags-for-resource \ + --resource-arn arn:aws:codedeploy:us-west-2:111122223333:application:testApp + +Output:: + + { + "Tags": [ + { + "Key": "Type", + "Value": "testType" + }, + { + "Key": "Name", + "Value": "testName" + } + ] + } + +For more information, see `Tagging instances for deployment groups in CodeDeploy `__ in the *AWS CodeDeploy User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/push.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/push.rst new file mode 100755 index 000000000..dbaa42ec6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/push.rst @@ -0,0 +1,15 @@ +**To bundle and deploy an AWS CodeDeploy compatible application revision to Amazon S3** + +The following ``push`` example bundles and deploys an application revision to Amazon S3 and then associates the application revision with the specified application. :: + + aws deploy push \ + --application-name WordPress_App \ + --description "This is my deployment" \ + --ignore-hidden-files \ + --s3-location s3://amzn-s3-demo-bucket/WordPressApp.zip \ + --source /tmp/MyLocalDeploymentFolder/ + +The output describes how to use the ``create-deployment`` command to create a deployment that uses the uploaded application revision. :: + + To deploy with this revision, run: + aws deploy create-deployment --application-name WordPress_App --deployment-config-name --deployment-group-name --s3-location bucket=amzn-s3-demo-bucket,key=WordPressApp.zip,bundleType=zip,eTag="cecc9b8EXAMPLE50a6e71fdb88EXAMPLE",version=LFsJAUdEXAMPLEfvKtvi79L8EXAMPLE \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/register-application-revision.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/register-application-revision.rst new file mode 100755 index 000000000..d294b9d80 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/register-application-revision.rst @@ -0,0 +1,10 @@ +**To register information about an already-uploaded application revision** + +The following ``register-application-revision`` example registers information about an already-uploaded application revision stored in Amazon S3 with AWS CodeDeploy. :: + + aws deploy register-application-revision \ + --application-name WordPress_App \ + --description "Revised WordPress application" \ + --s3-location bucket=amzn-s3-demo-bucket,key=RevisedWordPressApp.zip,bundleType=zip,eTag=cecc9b8a08eac650a6e71fdb88EXAMPLE + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/register-on-premises-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/register-on-premises-instance.rst new file mode 100755 index 000000000..a2e36cfa3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/register-on-premises-instance.rst @@ -0,0 +1,9 @@ +**To register an on-premises instance** + +The following ``register-on-premises-instance`` example registers an on-premises instance with AWS CodeDeploy. It does not create the specified IAM user, nor does it associate in AWS CodeDeploy any on-premises instances tags with the registered instance. :: + + aws deploy register-on-premises-instance \ + --instance-name AssetTag12010298EX \ + --iam-user-arn arn:aws:iam::80398EXAMPLE:user/CodeDeployDemoUser-OnPrem + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/register.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/register.rst new file mode 100755 index 000000000..5bea00807 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/register.rst @@ -0,0 +1,16 @@ +**To register an on-premises instance** + +The following ``register`` example registers an on-premises instance with AWS CodeDeploy, associates in AWS CodeDeploy the specified on-premises instance tag with the registered instance, and creates an on-premises configuration file that can be copied to the instance. It does not create the IAM user, nor does it install the AWS CodeDeploy Agent on the instance. :: + + aws deploy register \ + --instance-name AssetTag12010298EX \ + --iam-user-arn arn:aws:iam::80398EXAMPLE:user/CodeDeployUser-OnPrem \ + --tags Key=Name,Value=CodeDeployDemo-OnPrem \ + --region us-west-2 + +Output:: + + Registering the on-premises instance... DONE + Adding tags to the on-premises instance... DONE + Copy the on-premises configuration file named codedeploy.onpremises.yml to the on-premises instance, and run the following command on the on-premises instance to install and configure the AWS CodeDeploy Agent: + aws deploy install --config-file codedeploy.onpremises.yml diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/remove-tags-from-on-premises-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/remove-tags-from-on-premises-instances.rst new file mode 100755 index 000000000..a7ab76590 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/remove-tags-from-on-premises-instances.rst @@ -0,0 +1,9 @@ +**To remove tags from one or more on-premises instances** + +The following ``remove-tags-from-on-premises-instances`` example disassociates the specified on-premises tags in AWS CodeDeploy from on-premises instances. It does not deregister the on-premises instances in AWS CodeDeploy, nor uninstall the AWS CodeDeploy Agent from the instance, nor remove the on-premises configuration file from the instances, nor delete the IAM users that are associated with the instances. :: + + aws deploy remove-tags-from-on-premises-instances \ + --instance-names AssetTag12010298EX AssetTag23121309EX \ + --tags Key=Name,Value=CodeDeployDemo-OnPrem + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/stop-deployment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/stop-deployment.rst new file mode 100755 index 000000000..ad13a7fcb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/stop-deployment.rst @@ -0,0 +1,12 @@ +**To attempt to stop a deployment** + +The following ``stop-deployment`` example attempts to stop an in-progress deployment that is associated with the user's AWS account. + + aws deploy stop-deployment --deployment-id d-A1B2C3111 + +Output:: + + { + "status": "Succeeded", + "statusMessage": "No more commands will be scheduled for execution in the deployment instances" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/tag-resource.rst new file mode 100644 index 000000000..c812fe98f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/tag-resource.rst @@ -0,0 +1,11 @@ +**To tag a resource (application)** + +The following ``tag-resource`` example adds two tags with keys Name and Type, and values testName and testType to an application named testApp in CodeDeploy.:: + + aws deploy tag-resource \ + --resource-arn arn:aws:codedeploy:us-west-2:111122223333:application:testApp \ + --tags Key=Name,Value=testName Key=Type,Value=testType + +If successful, this command produces no output. + +For more information, see `Tagging instances for deployment groups in CodeDeploy `__ in the *AWS CodeDeploy User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/uninstall.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/uninstall.rst new file mode 100755 index 000000000..b53da2142 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/uninstall.rst @@ -0,0 +1,7 @@ +**To uninstall an on-premises instance** + +The following ``uninstall`` example uninstalls the AWS CodeDeploy Agent from the on-premises instance and removes the on-premises configuration file from the instance. It doesn't deregister the instance in AWS CodeDeploy, nor disassociate any on-premises instance tags in AWS CodeDeploy from the instance, nor delete the IAM user that is associated with the instance. :: + + aws deploy uninstall + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/untag-resource.rst new file mode 100644 index 000000000..e883746e8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove tags from a resource (application)** + +The following ``untag-resource`` example removes two tags with keys Name and Type from an application named testApp in CodeDeploy. :: + + aws deploy untag-resource \ + --resource-arn arn:aws:codedeploy:us-west-2:111122223333:application:testApp \ + --tag-keys Name Type + +If successful, this command produces no output. + +For more information, see `Tagging instances for deployment groups in CodeDeploy `__ in the *AWS CodeDeploy User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/update-application.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/update-application.rst new file mode 100755 index 000000000..722824265 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/update-application.rst @@ -0,0 +1,9 @@ +**To change details of an application** + +The following ``update-application`` example changes the name of an application that is associated with the user's AWS account. :: + + aws deploy update-application \ + --application-name WordPress_App \ + --new-application-name My_WordPress_App + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/update-deployment-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/update-deployment-group.rst new file mode 100755 index 000000000..5c0861f3f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/update-deployment-group.rst @@ -0,0 +1,14 @@ +**To change information about a deployment group** + +The following ``update-deployment-group`` example changes the settings of a deployment group that is associated with the specified application. :: + + aws deploy update-deployment-group \ + --application-name WordPress_App \ + --auto-scaling-groups My_CodeDeployDemo_ASG \ + --current-deployment-group-name WordPress_DG \ + --deployment-config-name CodeDeployDefault.AllAtOnce \ + --ec2-tag-filters Key=Name,Type=KEY_AND_VALUE,Value=My_CodeDeployDemo \ + --new-deployment-group-name My_WordPress_DepGroup \ + --service-role-arn arn:aws:iam::80398EXAMPLE:role/CodeDeployDemo-2 + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/wait/deployment-successful.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/wait/deployment-successful.rst new file mode 100755 index 000000000..fe841a891 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/deploy/wait/deployment-successful.rst @@ -0,0 +1,7 @@ +**To pause script operations until a deployment is flagged as successful** + +The following ``wait deployment-successful`` example pauses until the specified deployment completes successfully. :: + + aws deploy wait deployment-successful --deployment-id d-A1B2C3111 + +This command produces no output, but pauses operation until the condition is met. It generates an error if the condition is not met after 120 checks that are 15 seconds apart. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/accept-invitation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/accept-invitation.rst new file mode 100644 index 000000000..215501a3a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/accept-invitation.rst @@ -0,0 +1,10 @@ +**To accept an invitation to become a member account in a behavior graph** + +The following ``accept-invitation`` example accepts an invitation to become a member account in behavior graph arn:aws:detective:us-east-1:111122223333:graph:123412341234. :: + + aws detective accept-invitation \ + --graph-arn arn:aws:detective:us-east-1:111122223333:graph:123412341234 + +This command produces no output. + +For more information, see `Responding to a behavior graph invitation `__ in the *Amazon Detective Administration Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/create-graph.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/create-graph.rst new file mode 100644 index 000000000..f8ba410fd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/create-graph.rst @@ -0,0 +1,14 @@ +**To enable Amazon Detective and create a new behavior graph** + +The following ``create-graph`` example enables Detective for the AWS account that runs the command in the Region where the command is run. A new behavior graph is created that has that account as its administrator account. The command also assigns the value Finance to the Department tag. :: + + aws detective create-graph \ + --tags '{"Department": "Finance"}' + +Output:: + + { + "GraphArn": "arn:aws:detective:us-east-1:111122223333:graph:027c7c4610ea4aacaf0b883093cab899" + } + +For more information, see `Enabling Amazon Detective `__ in the *Amazon Detective Administration Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/create-members.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/create-members.rst new file mode 100644 index 000000000..b8843a500 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/create-members.rst @@ -0,0 +1,77 @@ +**To invite member accounts to a behavior graph** + +The following ``create-members`` example invites two AWS accounts to become member accounts in the behavior graph arn:aws:detective:us-east-1:111122223333:graph:123412341234. For each account, the request provides the AWS account ID and the account root user email address. The request includes a custom message to insert into the invitation email. :: + + aws detective create-members \ + --accounts AccountId=444455556666,EmailAddress=mmajor@example.com AccountId=123456789012,EmailAddress=jstiles@example.com \ + --graph-arn arn:aws:detective:us-east-1:111122223333:graph:123412341234 \ + --message "This is Paul Santos. I need to add your account to the data we use for security investigation in Amazon Detective. If you have any questions, contact me at psantos@example.com." + +Output:: + + { + "Members": [ + { + "AccountId": "444455556666", + "AdministratorId": "111122223333", + "EmailAddress": "mmajor@example.com", + "GraphArn": "arn:aws:detective:us-east-1:111122223333:graph:123412341234", + "InvitedTime": 1579826107000, + "MasterId": "111122223333", + "Status": "INVITED", + "UpdatedTime": 1579826107000 + }, + { + "AccountId": "123456789012", + "AdministratorId": "111122223333", + "EmailAddress": "jstiles@example.com", + "GraphArn": "arn:aws:detective:us-east-1:111122223333:graph:123412341234", + "InvitedTime": 1579826107000, + "MasterId": "111122223333", + "Status": "VERIFICATION_IN_PROGRESS", + "UpdatedTime": 1579826107000 + } + ], + "UnprocessedAccounts": [ ] + } + +For more information, see `Inviting member accounts to a behavior graph`__ in the *Amazon Detective Administration Guide*. + +**To invite member accounts without sending invitation emails** + +The following ``create-members`` example invites two AWS accounts to become member accounts in the behavior graph arn:aws:detective:us-east-1:111122223333:graph:123412341234. For each account, the request provides the AWS account ID and the account root user email address. The member accounts do not receive invitation emails. :: + + aws detective create-members \ + --accounts AccountId=444455556666,EmailAddress=mmajor@example.com AccountId=123456789012,EmailAddress=jstiles@example.com \ + --graph-arn arn:aws:detective:us-east-1:111122223333:graph:123412341234 \ + --disable-email-notification + +Output:: + + { + "Members": [ + { + "AccountId": "444455556666", + "AdministratorId": "111122223333", + "EmailAddress": "mmajor@example.com", + "GraphArn": "arn:aws:detective:us-east-1:111122223333:graph:123412341234", + "InvitedTime": 1579826107000, + "MasterId": "111122223333", + "Status": "INVITED", + "UpdatedTime": 1579826107000 + }, + { + "AccountId": "123456789012", + "AdministratorId": "111122223333", + "EmailAddress": "jstiles@example.com", + "GraphArn": "arn:aws:detective:us-east-1:111122223333:graph:123412341234", + "InvitedTime": 1579826107000, + "MasterId": "111122223333", + "Status": "VERIFICATION_IN_PROGRESS", + "UpdatedTime": 1579826107000 + } + ], + "UnprocessedAccounts": [ ] + } + +For more information, see `Inviting member accounts to a behavior graph`__ in the *Amazon Detective Administration Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/delete-graph.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/delete-graph.rst new file mode 100644 index 000000000..6760bb2dc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/delete-graph.rst @@ -0,0 +1,10 @@ +**To disable Detective and delete the behavior graph** + +The following ``delete-graph`` example disables Detective and deletes the specified behavior graph. :: + + aws detective delete-graph \ + --graph-arn arn:aws:detective:us-east-1:111122223333:graph:123412341234 + +This command produces no output. + +For more information, see `Disabling Amazon Detective `__ in the *Amazon Detective Administration Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/delete-members.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/delete-members.rst new file mode 100644 index 000000000..c2c00a1dd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/delete-members.rst @@ -0,0 +1,16 @@ +**To remove member accounts from a behavior graph** + +The following ``delete-members`` example removes two member accounts from the behavior graph arn:aws:detective:us-east-1:111122223333:graph:123412341234. To identify the accounts, the request provides the AWS account IDs. :: + + aws detective delete-members \ + --account-ids 444455556666 123456789012 \ + --graph-arn arn:aws:detective:us-east-1:111122223333:graph:123412341234 + +Output:: + + { + "AccountIds": [ "444455556666", "123456789012" ], + "UnprocessedAccounts": [ ] + } + +For more information, see `Removing member accounts from a behavior graph`__ in the *Amazon Detective Administration Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/disassociate-membership.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/disassociate-membership.rst new file mode 100644 index 000000000..cc4a75fff --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/disassociate-membership.rst @@ -0,0 +1,8 @@ +**To resign membership from a behavior graph** + +The following `disassociate-membership` example removes the AWS account that runs the command from the behavior graph arn:aws:detective:us-east-1:111122223333:graph:123412341234. :: + + aws detective disassociate-membership \ + --graph-arn arn:aws:detective:us-east-1:111122223333:graph:123412341234 + +For more information, see `Removing your account from a behavior graph`__ in the *Amazon Detective Administration Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/get-members.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/get-members.rst new file mode 100644 index 000000000..64554dfe0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/get-members.rst @@ -0,0 +1,37 @@ +**To retrieve information about selected behavior graph member accounts** + +The following ``get-members`` example retrieves information about two member accounts in the behavior graph arn:aws:detective:us-east-1:111122223333:graph:123412341234. For the two accounts, the request provides the AWS account IDs. :: + + aws detective get-members \ + --account-ids 444455556666 123456789012 \ + --graph-arn arn:aws:detective:us-east-1:111122223333:graph:123412341234 + +Output:: + + { + "MemberDetails": [ + { + "AccountId": "444455556666", + "AdministratorId": "111122223333", + "EmailAddress": "mmajor@example.com", + "GraphArn": "arn:aws:detective:us-east-1:111122223333:graph:123412341234", + "InvitedTime": 1579826107000, + "MasterId": "111122223333", + "Status": "INVITED", + "UpdatedTime": 1579826107000 + } + { + "AccountId": "123456789012", + "AdministratorId": "111122223333", + "EmailAddress": "jstiles@example.com", + "GraphArn": "arn:aws:detective:us-east-1:111122223333:graph:123412341234", + "InvitedTime": 1579826107000, + "MasterId": "111122223333", + "Status": "INVITED", + "UpdatedTime": 1579826107000 + } + ], + "UnprocessedAccounts": [ ] + } + +For more information, see `Viewing the list of accounts in a behavior graph`__ in the *Amazon Detective Administration Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/list-graphs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/list-graphs.rst new file mode 100644 index 000000000..a51d5afd8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/list-graphs.rst @@ -0,0 +1,16 @@ +**To view a list of behavior graphs that your account is the administrator for** + +The following ``list-graphs`` example retrieves the behavior graphs that the calling account is the administrator for within the current Region. :: + + aws detective list-graphs + +Output:: + + { + "GraphList": [ + { + "Arn": "arn:aws:detective:us-east-1:111122223333:graph:123412341234", + "CreatedTime": 1579736111000 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/list-invitations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/list-invitations.rst new file mode 100644 index 000000000..bb45810c9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/list-invitations.rst @@ -0,0 +1,24 @@ +**To view a list of behavior graphs that an account is a member of or is invited to** + +The following ``list-invitations`` example retrieves the behavior graphs that the calling account has been invited to. The results include only open and accepted invitations. They do not include rejected invitations or removed memberships. :: + + aws detective list-invitations + +Output:: + + { + "Invitations": [ + { + "AccountId": "444455556666", + "AdministratorId": "111122223333", + "EmailAddress": "mmajor@example.com", + "GraphArn": "arn:aws:detective:us-east-1:111122223333:graph:123412341234", + "InvitedTime": 1579826107000, + "MasterId": "111122223333", + "Status": "INVITED", + "UpdatedTime": 1579826107000 + } + ] + } + +For more information, see `Viewing your list of behavior graph invitations`__ in the *Amazon Detective Administration Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/list-members.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/list-members.rst new file mode 100644 index 000000000..2a8278097 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/list-members.rst @@ -0,0 +1,39 @@ +**To list the member accounts in a behavior graph** + +The following ``list-members`` example retrieves the invited and enabled member accounts for the behavior graph ``arn:aws:detective:us-east-1:111122223333:graph:123412341234``. The results do not include member accounts that were removed. :: + + aws detective list-members \ + --graph-arn arn:aws:detective:us-east-1:111122223333:graph:123412341234 + +Output:: + + { + "MemberDetails": [ + { + "AccountId": "444455556666", + "AdministratorId": "111122223333", + "EmailAddress": "mmajor@example.com", + "GraphArn": "arn:aws:detective:us-east-1:111122223333:graph:123412341234", + "InvitedTime": 1579826107000, + "MasterId": "111122223333", + "Status": "INVITED", + "UpdatedTime": 1579826107000 + }, + { + "AccountId": "123456789012", + "AdministratorId": "111122223333", + "EmailAddress": "jstiles@example.com", + "GraphArn": "arn:aws:detective:us-east-1:111122223333:graph:123412341234", + "InvitedTime": 1579826107000, + "MasterId": "111122223333", + "PercentOfGraphUtilization": 2, + "PercentOfGraphUtilizationUpdatedTime": 1586287843, + "Status": "ENABLED", + "UpdatedTime": 1579973711000, + "VolumeUsageInBytes": 200, + "VolumeUsageUpdatedTime": 1586287843 + } + ] + } + +For more information, see `Viewing the list of accounts in a behavior graph `__ in the *Amazon Detective Administration Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/list-tags-for-resource.rst new file mode 100644 index 000000000..636576a1e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/list-tags-for-resource.rst @@ -0,0 +1,16 @@ +**To retrieve the tags assigned to a behavior graph** + +The following ``list-tags-for-resource`` example returns the tags assigned to the specified behavior graph. :: + + aws detective list-tags-for-resource \ + --resource-arn arn:aws:detective:us-east-1:111122223333:graph:123412341234 + +Output:: + + { + "Tags": { + "Department" : "Finance" + } + } + +For more information, see `Managing tags for a behavior graph `__ in the *Amazon Detective Administration Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/reject-invitation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/reject-invitation.rst new file mode 100644 index 000000000..5ed3bf411 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/reject-invitation.rst @@ -0,0 +1,10 @@ +**To reject an invitation to become a member account in a behavior graph** + +The following ``reject-invitation`` example rejects an invitation to become a member account in the behavior graph arn:aws:detective:us-east-1:111122223333:graph:123412341234. :: + + aws detective reject-invitation \ + --graph-arn arn:aws:detective:us-east-1:111122223333:graph:123412341234 + +This command produces no output. + +For more information, see `Responding to a behavior graph invitation`__ in the *Amazon Detective Administration Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/tag-resource.rst new file mode 100644 index 000000000..fcbac51e0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/tag-resource.rst @@ -0,0 +1,11 @@ +**To assign a tag to a resource** + +The following ``tag-resource`` example assigns a value for the Department tag to the specified behavior graph. :: + + aws detective tag-resource \ + --resource-arn arn:aws:detective:us-east-1:111122223333:graph:123412341234 \ + --tags '{"Department":"Finance"}' + +This command produces no output. + +For more information, see `Managing tags for a behavior graph `__ in the *Amazon Detective Administration Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/untag-resource.rst new file mode 100644 index 000000000..6792de249 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/detective/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove a tag value from a resource** + +The following ``untag-resource`` example removes the Department tag from the specified behavior graph. :: + + aws detective untag-resource \ + --resource-arn arn:aws:detective:us-east-1:111122223333:graph:123412341234 \ + --tag-keys "Department" + +This command produces no output. + +For more information, see `Managing tags for a behavior graph `__ in the *Amazon Detective Administration Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/devicefarm/create-device-pool.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/devicefarm/create-device-pool.rst new file mode 100644 index 000000000..61b4cd127 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/devicefarm/create-device-pool.rst @@ -0,0 +1,32 @@ +**To create a device pool** + +The following command creates an Android device pool for a project:: + + aws devicefarm create-device-pool --name pool1 --rules file://device-pool-rules.json --project-arn "arn:aws:devicefarm:us-west-2:123456789012:project:070fc3ca-7ec1-4741-9c1f-d3e044efc506" + +You can get the project ARN from the output of ``create-project`` or ``list-projects``. The file ``device-pool-rules.json`` is a JSON document in the current folder that specifies the device platform:: + + [ + { + "attribute": "PLATFORM", + "operator": "EQUALS", + "value": "\"ANDROID\"" + } + ] + +Output:: + + { + "devicePool": { + "rules": [ + { + "operator": "EQUALS", + "attribute": "PLATFORM", + "value": "\"ANDROID\"" + } + ], + "type": "PRIVATE", + "name": "pool1", + "arn": "arn:aws:devicefarm:us-west-2:123456789012:devicepool:070fc3ca-7ec1-4741-9c1f-d3e044efc506/2aa8d2a9-5e73-47ca-b929-659cb34b7dcd" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/devicefarm/create-project.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/devicefarm/create-project.rst new file mode 100644 index 000000000..32ef6a64d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/devicefarm/create-project.rst @@ -0,0 +1,15 @@ +**To create a project** + +The following command creates a new project named ``my-project``:: + + aws devicefarm create-project --name my-project + +Output:: + + { + "project": { + "name": "myproject", + "arn": "arn:aws:devicefarm:us-west-2:123456789012:project:070fc3ca-7ec1-4741-9c1f-d3e044efc506", + "created": 1503612890.057 + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/devicefarm/create-upload.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/devicefarm/create-upload.rst new file mode 100644 index 000000000..bb7e3f962 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/devicefarm/create-upload.rst @@ -0,0 +1,24 @@ +**To create an upload** + +The following command creates an upload for an Android app:: + + aws devicefarm create-upload --project-arn "arn:aws:devicefarm:us-west-2:123456789012:project:070fc3ca-7ec1-4741-9c1f-d3e044efc506" --name app.apk --type ANDROID_APP + +You can get the project ARN from the output of `create-project` or `list-projects`. + +Output:: + + { + "upload": { + "status": "INITIALIZED", + "name": "app.apk", + "created": 1503614408.769, + "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/arn%3Aaws%3Adevicefarm%3Aus-west-2%3A123456789012%3Aproject%3A070fc3ca-c7e1-4471-91cf-d3e4efc50604/uploads/arn%3Aaws%3Adevicefarm%3Aus-west-2%3A123456789012%3Aupload%3A070fc3ca-7ec1-4741-9c1f-d3e044efc506/dd72723a-ae9e-4087-09e6-f4cea3599514/app.apk?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20170824T224008Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AKIAEXAMPLEPBUMBC3GA%2F20170824%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Signature=05050370c38894ef5bd09f5d009f36fc8f96fa4bb04e1bba9aca71b8dbe49a0f", + "type": "ANDROID_APP", + "arn": "arn:aws:devicefarm:us-west-2:123456789012:upload:070fc3ca-7ec1-4741-9c1f-d3e044efc506/dd72723a-ae9e-4087-09e6-f4cea3599514" + } + } + +Use the signed URL in the output to upload a file to Device Farm:: + + curl -T app.apk "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/arn%3Aaws%3Adevicefarm%3Aus-west-2%3A123456789012%3Aproject%3A070fc3ca-c7e1-4471-91cf-d3e4efc50604/uploads/arn%3Aaws%3Adevicefarm%3Aus-west-2%3A123456789012%3Aupload%3A070fc3ca-7ec1-4741-9c1f-d3e044efc506/dd72723a-ae9e-4087-09e6-f4cea3599514/app.apk?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20170824T224008Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AKIAEXAMPLEPBUMBC3GA%2F20170824%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Signature=05050370c38894ef5bd09f5d009f36fc8f96fa4bb04e1bba9aca71b8dbe49a0f" diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/devicefarm/get-upload.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/devicefarm/get-upload.rst new file mode 100644 index 000000000..e42a9a9de --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/devicefarm/get-upload.rst @@ -0,0 +1,21 @@ +**To view an upload** + +The following command retrieves information about an upload:: + + aws devicefarm get-upload --arn "arn:aws:devicefarm:us-west-2:123456789012:upload:070fc3ca-7ec1-4741-9c1f-d3e044efc506/dd72723a-ae9e-4087-09e6-f4cea3599514" + +You can get the upload ARN from the output of ``create-upload``. + +Output:: + + { + "upload": { + "status": "SUCCEEDED", + "name": "app.apk", + "created": 1505262773.186, + "type": "ANDROID_APP", + "arn": "arn:aws:devicefarm:us-west-2:123456789012:upload:070fc3ca-7ec1-4741-9c1f-d3e044efc506/dd72723a-ae9e-4087-09e6-f4cea3599514", + "metadata": "{\"device_admin\":false,\"activity_name\":\"ccom.example.client.LauncherActivity\",\"version_name\":\"1.0.2.94\",\"screens\":[\"small\",\"normal\",\"large\",\"xlarge\"],\"error_type\":null,\"sdk_version\":\"16\",\"package_name\":\"com.example.client\",\"version_code\":\"20994\",\"native_code\":[\"armeabi-v7a\"],\"target_sdk_version\":\"25\"}" + } + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/devicefarm/list-projects.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/devicefarm/list-projects.rst new file mode 100644 index 000000000..ad0f7159e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/devicefarm/list-projects.rst @@ -0,0 +1,22 @@ +**To list projects** + +The following retrieves a list of projects:: + + aws devicefarm list-projects + +Output:: + + { + "projects": [ + { + "name": "myproject", + "arn": "arn:aws:devicefarm:us-west-2:123456789012:project:070fc3ca-7ec1-4741-9c1f-d3e044efc506", + "created": 1503612890.057 + }, + { + "name": "otherproject", + "arn": "arn:aws:devicefarm:us-west-2:123456789012:project:a5f5b752-8098-49d1-86bf-5f7682c1c77e", + "created": 1505257519.337 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/accept-direct-connect-gateway-association-proposal.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/accept-direct-connect-gateway-association-proposal.rst new file mode 100755 index 000000000..9a6905f68 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/accept-direct-connect-gateway-association-proposal.rst @@ -0,0 +1,30 @@ +**To accept a gateway association proposal** + +The following ``accept-direct-connect-gateway-association-proposal`` accepts the specified proposal. :: + + aws directconnect accept-direct-connect-gateway-association-proposal \ + --direct-connect-gateway-id 11460968-4ac1-4fd3-bdb2-00599EXAMPLE \ + --proposal-id cb7f41cb-8128-43a5-93b1-dcaedEXAMPLE \ + --associated-gateway-owner-account 111122223333 + + { + "directConnectGatewayAssociation": { + "directConnectGatewayId": "11460968-4ac1-4fd3-bdb2-00599EXAMPLE", + "directConnectGatewayOwnerAccount": "111122223333", + "associationState": "associating", + "associatedGateway": { + "id": "tgw-02f776b1a7EXAMPLE", + "type": "transitGateway", + "ownerAccount": "111122223333", + "region": "us-east-1" + }, + "associationId": "6441f8bf-5917-4279-ade1-9708bEXAMPLE", + "allowedPrefixesToDirectConnectGateway": [ + { + "cidr": "192.168.1.0/30" + } + ] + } + } + +For more information, see `Accepting or Rejecting a Transit Gateway Association Proposal `__ in the *AWS Direct Connect User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/allocate-connection-on-interconnect.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/allocate-connection-on-interconnect.rst new file mode 100644 index 000000000..5efbf07d5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/allocate-connection-on-interconnect.rst @@ -0,0 +1,19 @@ +**To create a hosted connection on an interconnect** + +The following ``allocate-connection-on-interconnect`` command creates a hosted connection on an interconnect:: + + aws directconnect allocate-connection-on-interconnect --bandwidth 500Mbps --connection-name mydcinterconnect --owner-account 123456789012 --interconnect-id dxcon-fgktov66 --vlan 101 + +Output:: + + { + "partnerName": "TIVIT", + "vlan": 101, + "ownerAccount": "123456789012", + "connectionId": "dxcon-ffzc51m1", + "connectionState": "ordering", + "bandwidth": "500Mbps", + "location": "TIVIT", + "connectionName": "mydcinterconnect", + "region": "sa-east-1" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/allocate-hosted-connection.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/allocate-hosted-connection.rst new file mode 100644 index 000000000..4c3c43774 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/allocate-hosted-connection.rst @@ -0,0 +1,24 @@ +**To create a hosted connection on an interconnect** + +The following ``allocate-hosted-connection`` example creates a hosted connection on the specified interconnect. :: + + aws directconnect allocate-hosted-connection \ + --bandwidth 500Mbps \ + --connection-name mydcinterconnect \ + --owner-account 123456789012 + -connection-id dxcon-fgktov66 + -vlan 101 + +Output:: + + { + "partnerName": "TIVIT", + "vlan": 101, + "ownerAccount": "123456789012", + "connectionId": "dxcon-ffzc51m1", + "connectionState": "ordering", + "bandwidth": "500Mbps", + "location": "TIVIT", + "connectionName": "mydcinterconnect", + "region": "sa-east-1" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/allocate-private-virtual-interface.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/allocate-private-virtual-interface.rst new file mode 100644 index 000000000..78cab01f2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/allocate-private-virtual-interface.rst @@ -0,0 +1,24 @@ +**To provision a private virtual interface** + +The following ``allocate-private-virtual-interface`` command provisions a private virtual interface to be owned by a different customer:: + + aws directconnect allocate-private-virtual-interface --connection-id dxcon-ffjrkx17 --owner-account 123456789012 --new-private-virtual-interface-allocation virtualInterfaceName=PrivateVirtualInterface,vlan=1000,asn=65000,authKey=asdf34example,amazonAddress=192.168.1.1/30,customerAddress=192.168.1.2/30 + +Output:: + + { + "virtualInterfaceState": "confirming", + "asn": 65000, + "vlan": 1000, + "customerAddress": "192.168.1.2/30", + "ownerAccount": "123456789012", + "connectionId": "dxcon-ffjrkx17", + "virtualInterfaceId": "dxvif-fgy8orxu", + "authKey": "asdf34example", + "routeFilterPrefixes": [], + "location": "TIVIT", + "customerRouterConfig": "\n \n 1000\n 192.168.1.2/30\n 192.168.1.1/30\n 65000\n asdf34example\n 7224\n private\n\n", + "amazonAddress": "192.168.1.1/30", + "virtualInterfaceType": "private", + "virtualInterfaceName": "PrivateVirtualInterface" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/allocate-public-virtual-interface.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/allocate-public-virtual-interface.rst new file mode 100644 index 000000000..57157db4c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/allocate-public-virtual-interface.rst @@ -0,0 +1,31 @@ +**To provision a public virtual interface** + +The following ``allocate-public-virtual-interface`` command provisions a public virtual interface to be owned by a different customer:: + + aws directconnect allocate-public-virtual-interface --connection-id dxcon-ffjrkx17 --owner-account 123456789012 --new-public-virtual-interface-allocation virtualInterfaceName=PublicVirtualInterface,vlan=2000,asn=65000,authKey=asdf34example,amazonAddress=203.0.113.1/30,customerAddress=203.0.113.2/30,routeFilterPrefixes=[{cidr=203.0.113.0/30},{cidr=203.0.113.4/30}] + +Output:: + + { + "virtualInterfaceState": "confirming", + "asn": 65000, + "vlan": 2000, + "customerAddress": "203.0.113.2/30", + "ownerAccount": "123456789012", + "connectionId": "dxcon-ffjrkx17", + "virtualInterfaceId": "dxvif-fg9xo9vp", + "authKey": "asdf34example", + "routeFilterPrefixes": [ + { + "cidr": "203.0.113.0/30" + }, + { + "cidr": "203.0.113.4/30" + } + ], + "location": "TIVIT", + "customerRouterConfig": "\n\n 2000\n 203.0.113.2/30\n 203.0.113.1/30\n 65000\n asdf34example\n 7224\n public\n\n", + "amazonAddress": "203.0.113.1/30", + "virtualInterfaceType": "public", + "virtualInterfaceName": "PublicVirtualInterface" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/allocate-transit-virtual-interface.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/allocate-transit-virtual-interface.rst new file mode 100755 index 000000000..73b9f0254 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/allocate-transit-virtual-interface.rst @@ -0,0 +1,58 @@ +**To provision a transit virtual interface to be owned by the specified AWS account** + +The following ``allocate-transit-virtual-interface`` example provisions a transit virtual interface for the specified account. :: + + aws directconnect allocate-transit-virtual-interface \ + --connection-id dxlag-fEXAMPLE \ + --owner-account 123456789012 \ + --new-transit-virtual-interface-allocation "virtualInterfaceName=Example Transit Virtual Interface,vlan=126,asn=65110,mtu=1500,authKey=0xzxgA9YoW9h58u8SEXAMPLE,amazonAddress=192.168.1.1/30,customerAddress=192.168.1.2/30,addressFamily=ipv4,tags=[{key=Tag,value=Example}]" + +Output:: + + { + "virtualInterface": { + "ownerAccount": "123456789012", + "virtualInterfaceId": "dxvif-fEXAMPLE", + "location": "loc1", + "connectionId": "dxlag-fEXAMPLE", + "virtualInterfaceType": "transit", + "virtualInterfaceName": "Example Transit Virtual Interface", + "vlan": 126, + "asn": 65110, + "amazonSideAsn": 7224, + "authKey": "0xzxgA9YoW9h58u8SEXAMPLE", + "amazonAddress": "192.168.1.1/30", + "customerAddress": "192.168.1.2/30", + "addressFamily": "ipv4", + "virtualInterfaceState": "confirming", + "customerRouterConfig": "\n\n 126\n 192.168.1.2/30\n 192.168.1.1/30\n 65110\n 0xzxgA9YoW9h58u8SEXAMPLE\n 7224\n transit\n\n", + "mtu": 1500, + "jumboFrameCapable": true, + "virtualGatewayId": "", + "directConnectGatewayId": "", + "routeFilterPrefixes": [], + "bgpPeers": [ + { + "bgpPeerId": "dxpeer-fEXAMPLE", + "asn": 65110, + "authKey": "0xzxgA9YoW9h58u8EXAMPLE", + "addressFamily": "ipv4", + "amazonAddress": "192.168.1.1/30", + "customerAddress": "192.168.1.2/30", + "bgpPeerState": "pending", + "bgpStatus": "down", + "awsDeviceV2": "loc1-26wz6vEXAMPLE" + } + ], + "region": "sa-east-1", + "awsDeviceV2": "loc1-26wz6vEXAMPLE", + "tags": [ + { + "key": "Tag", + "value": "Example" + } + ] + } + } + +For more information, see `Creating a Hosted Transit Virtual Interface `__ in the *AWS Direct Connect User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/associate-connection-with-lag.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/associate-connection-with-lag.rst new file mode 100644 index 000000000..bd98b3e1d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/associate-connection-with-lag.rst @@ -0,0 +1,20 @@ +**To associate a connection with a LAG** + +The following example associates the specified connection with the specified LAG. + +Command:: + + aws directconnect associate-connection-with-lag --lag-id dxlag-fhccu14t --connection-id dxcon-fg9607vm + +Output:: + + { + "ownerAccount": "123456789012", + "connectionId": "dxcon-fg9607vm", + "lagId": "dxlag-fhccu14t", + "connectionState": "requested", + "bandwidth": "1Gbps", + "location": "EqDC2", + "connectionName": "Con2ForLag", + "region": "us-east-1" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/associate-hosted-connection.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/associate-hosted-connection.rst new file mode 100644 index 000000000..3c177636a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/associate-hosted-connection.rst @@ -0,0 +1,22 @@ +**To associate a hosted connection with a LAG** + +The following example associates the specified hosted connection with the specified LAG. + +Command:: + + aws directconnect associate-hosted-connection --parent-connection-id dxlag-fhccu14t --connection-id dxcon-fg9607vm + +Output:: + + { + "partnerName": "TIVIT", + "vlan": 101, + "ownerAccount": "123456789012", + "connectionId": "dxcon-fg9607vm", + "lagId": "dxlag-fhccu14t", + "connectionState": "ordering", + "bandwidth": "500Mbps", + "location": "TIVIT", + "connectionName": "mydcinterconnect", + "region": "sa-east-1" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/associate-virtual-interface.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/associate-virtual-interface.rst new file mode 100644 index 000000000..2e3961098 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/associate-virtual-interface.rst @@ -0,0 +1,48 @@ +**To associate a virtual interface with a connection** + +The following example associates the specified virtual interface with the specified LAG. Alternatively, to associate the virtual interface with a connection, specify the ID of an AWS Direct Connect connection for ``--connection-id``; for example, ``dxcon-ffnikghc``. + +Command:: + + aws directconnect associate-virtual-interface --connection-id dxlag-ffjhj9lx --virtual-interface-id dxvif-fgputw0j + +Output:: + + { + "virtualInterfaceState": "pending", + "asn": 65000, + "vlan": 123, + "customerAddress": "169.254.255.2/30", + "ownerAccount": "123456789012", + "connectionId": "dxlag-ffjhj9lx", + "addressFamily": "ipv4", + "virtualGatewayId": "vgw-38e90b51", + "virtualInterfaceId": "dxvif-fgputw0j", + "authKey": "0x123pK5_VBqv.UQ3kJ4123_", + "routeFilterPrefixes": [], + "location": "CSVA1", + "bgpPeers": [ + { + "bgpStatus": "down", + "customerAddress": "169.254.255.2/30", + "addressFamily": "ipv4", + "authKey": "0x123pK5_VBqv.UQ3kJ4123_", + "bgpPeerState": "deleting", + "amazonAddress": "169.254.255.1/30", + "asn": 65000 + }, + { + "bgpStatus": "down", + "customerAddress": "169.254.255.2/30", + "addressFamily": "ipv4", + "authKey": "0x123pK5_VBqv.UQ3kJ4123_", + "bgpPeerState": "pending", + "amazonAddress": "169.254.255.1/30", + "asn": 65000 + } + ], + "customerRouterConfig": "\n\n 123\n 169.254.255.2/30\n 169.254.255.1/30\n 65000\n 0x123pK5_VBqv.UQ3kJ4123_\n 7224\n private\n\n", + "amazonAddress": "169.254.255.1/30", + "virtualInterfaceType": "private", + "virtualInterfaceName": "VIF1A" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/confirm-connection.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/confirm-connection.rst new file mode 100644 index 000000000..2ebe49a2d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/confirm-connection.rst @@ -0,0 +1,11 @@ +**To confirm the creation of a hosted connection on an interconnect** + +The following ``confirm-connection`` command confirms the creation of a hosted connection on an interconnect:: + + aws directconnect confirm-connection --connection-id dxcon-fg2wi7hy + +Output:: + + { + "connectionState": "pending" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/confirm-private-virtual-interface.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/confirm-private-virtual-interface.rst new file mode 100644 index 000000000..6c1692223 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/confirm-private-virtual-interface.rst @@ -0,0 +1,11 @@ +**To accept ownership of a private virtual interface** + +The following ``confirm-private-virtual-interface`` command accepts ownership of a private virtual interface created by another customer:: + + aws directconnect confirm-private-virtual-interface --virtual-interface-id dxvif-fgy8orxu --virtual-gateway-id vgw-e4a47df9 + +Output:: + + { + "virtualInterfaceState": "pending" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/confirm-public-virtual-interface.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/confirm-public-virtual-interface.rst new file mode 100644 index 000000000..8b659a929 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/confirm-public-virtual-interface.rst @@ -0,0 +1,11 @@ +**To accept ownership of a public virtual interface** + +The following ``confirm-public-virtual-interface`` command accepts ownership of a public virtual interface created by another customer:: + + aws directconnect confirm-public-virtual-interface --virtual-interface-id dxvif-fg9xo9vp + +Output:: + + { + "virtualInterfaceState": "verifying" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/confirm-transit-virtual-interface.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/confirm-transit-virtual-interface.rst new file mode 100755 index 000000000..176915d77 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/confirm-transit-virtual-interface.rst @@ -0,0 +1,15 @@ +**To accept ownership of a transit virtual interface** + +The following ``confirm-transit-virtual-interface`` accepts ownership of a transit virtual interface created by another customer. :: + + aws directconnect confirm-transit-virtual-interface \ + --virtual-interface-id dxvif-fEXAMPLE \ + --direct-connect-gateway-id 4112ccf9-25e9-4111-8237-b6c5dEXAMPLE + +Output:: + + { + "virtualInterfaceState": "pending" + } + +For more information, see `Accepting a Hosted Virtual Interface `__ in the *AWS Direct Connect User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-bgp-peer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-bgp-peer.rst new file mode 100644 index 000000000..74229eef3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-bgp-peer.rst @@ -0,0 +1,50 @@ +**To create an IPv6 BGP peering session** + +The following example creates an IPv6 BGP peering session on private virtual interface ``dxvif-fg1vuj3d``. The peer IPv6 addresses are automatically allocated by Amazon. + +Command:: + + aws directconnect create-bgp-peer --virtual-interface-id dxvif-fg1vuj3d --new-bgp-peer asn=64600,addressFamily=ipv6 + +Output:: + + { + "virtualInterface": { + "virtualInterfaceState": "available", + "asn": 65000, + "vlan": 125, + "customerAddress": "169.254.255.2/30", + "ownerAccount": "123456789012", + "connectionId": "dxcon-fguhmqlc", + "addressFamily": "ipv4", + "virtualGatewayId": "vgw-f9eb0c90", + "virtualInterfaceId": "dxvif-fg1vuj3d", + "authKey": "0xC_ukbCerl6EYA0example", + "routeFilterPrefixes": [], + "location": "EqDC2", + "bgpPeers": [ + { + "bgpStatus": "down", + "customerAddress": "169.254.255.2/30", + "addressFamily": "ipv4", + "authKey": "0xC_ukbCerl6EYA0uexample", + "bgpPeerState": "available", + "amazonAddress": "169.254.255.1/30", + "asn": 65000 + }, + { + "bgpStatus": "down", + "customerAddress": "2001:db8:1100:2f0:0:1:9cb4:4216/125", + "addressFamily": "ipv6", + "authKey": "0xS27kAIU_VHPjjAexample", + "bgpPeerState": "pending", + "amazonAddress": "2001:db8:1100:2f0:0:1:9cb4:4211/125", + "asn": 64600 + } + ], + "customerRouterConfig": "\n\n 125\n 169.254.255.2/30\n 169.254.255.1/30\n 65000\n 0xC_ukbCerl6EYA0uexample\n 2001:db8:1100:2f0:0:1:9cb4:4216/125\n 2001:db8:1100:2f0:0:1:9cb4:4211/125\n 64600\n 0xS27kAIU_VHPjjAexample\n 7224\n private\n\n", + "amazonAddress": "169.254.255.1/30", + "virtualInterfaceType": "private", + "virtualInterfaceName": "Test" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-connection.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-connection.rst new file mode 100644 index 000000000..0ba878f46 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-connection.rst @@ -0,0 +1,17 @@ +**To create a connection from your network to an AWS Direct Connect location** + +The following ``create-connection`` command creates a connection from your network to an AWS Direct Connect location:: + + aws directconnect create-connection --location TIVIT --bandwidth 1Gbps --connection-name "Connection to AWS" + +Output:: + + { + "ownerAccount": "123456789012", + "connectionId": "dxcon-fg31dyv6", + "connectionState": "requested", + "bandwidth": "1Gbps", + "location": "TIVIT", + "connectionName": "Connection to AWS", + "region": "sa-east-1" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-direct-connect-gateway-association-proposal.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-direct-connect-gateway-association-proposal.rst new file mode 100755 index 000000000..2a8b83b28 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-direct-connect-gateway-association-proposal.rst @@ -0,0 +1,33 @@ +**To create a proposal to associate the specified transit gateway with the specified Direct Connect gateway** + +The following ``create-direct-connect-gateway-association-proposal`` example creates a proposal that associates the specified transit gateway with the specified Direct Connect gateway. :: + + aws directconnect create-direct-connect-gateway-association-proposal \ + --direct-connect-gateway-id 11460968-4ac1-4fd3-bdb2-00599EXAMPLE \ + --direct-connect-gateway-owner-account 111122223333 \ + --gateway-id tgw-02f776b1a7EXAMPLE \ + --add-allowed-prefixes-to-direct-connect-gateway cidr=192.168.1.0/30 + +Output:: + + { + "directConnectGatewayAssociationProposal": { + "proposalId": "cb7f41cb-8128-43a5-93b1-dcaedEXAMPLE", + "directConnectGatewayId": "11460968-4ac1-4fd3-bdb2-00599EXAMPLE", + "directConnectGatewayOwnerAccount": "111122223333", + "proposalState": "requested", + "associatedGateway": { + "id": "tgw-02f776b1a7EXAMPLE", + "type": "transitGateway", + "ownerAccount": "111122223333", + "region": "us-east-1" + }, + "requestedAllowedPrefixesToDirectConnectGateway": [ + { + "cidr": "192.168.1.0/30" + } + ] + } + } + +For more information, see `Creating a Transit Gateway Association Proposal `__ in the *AWS Direct Connect User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-direct-connect-gateway-association.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-direct-connect-gateway-association.rst new file mode 100644 index 000000000..a1ce40c3f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-direct-connect-gateway-association.rst @@ -0,0 +1,19 @@ +**To associate a virtual private gateway with a Direct Connect gateway** + +The following example associates virtual private gateway ``vgw-6efe725e`` with Direct Connect gateway ``5f294f92-bafb-4011-916d-9b0bexample``. You must run the command in the region in which the virtual private gateway is located. + +Command:: + + aws directconnect create-direct-connect-gateway-association --direct-connect-gateway-id 5f294f92-bafb-4011-916d-9b0bexample --virtual-gateway-id vgw-6efe725e + +Output:: + + { + "directConnectGatewayAssociation": { + "associationState": "associating", + "virtualGatewayOwnerAccount": "123456789012", + "directConnectGatewayId": "5f294f92-bafb-4011-916d-9b0bexample", + "virtualGatewayId": "vgw-6efe725e", + "virtualGatewayRegion": "us-east-2" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-direct-connect-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-direct-connect-gateway.rst new file mode 100644 index 000000000..4fa1f8b0d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-direct-connect-gateway.rst @@ -0,0 +1,19 @@ +**To create a Direct Connect gateway** + +The following example creates a Direct Connect gateway with the name ``DxGateway1``. + +Command:: + + aws directconnect create-direct-connect-gateway --direct-connect-gateway-name "DxGateway1" + +Output:: + + { + "directConnectGateway": { + "amazonSideAsn": 64512, + "directConnectGatewayId": "5f294f92-bafb-4011-916d-9b0bdexample", + "ownerAccount": "123456789012", + "directConnectGatewayName": "DxGateway1", + "directConnectGatewayState": "available" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-interconnect.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-interconnect.rst new file mode 100644 index 000000000..8c0b3f027 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-interconnect.rst @@ -0,0 +1,16 @@ +**To create an interconnect between a partner's network and AWS** + +The following ``create-interconnect`` command creates an interconnect between an AWS Direct Connect partner's network and a specific AWS Direct Connect location:: + + aws directconnect create-interconnect --interconnect-name "1G Interconnect to AWS" --bandwidth 1Gbps --location TIVIT + +Output:: + + { + "region": "sa-east-1", + "bandwidth": "1Gbps", + "location": "TIVIT", + "interconnectName": "1G Interconnect to AWS", + "interconnectId": "dxcon-fgktov66", + "interconnectState": "requested" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-lag.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-lag.rst new file mode 100644 index 000000000..74ba9adde --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-lag.rst @@ -0,0 +1,89 @@ +**To create a LAG with new connections** + +The following example creates a LAG and requests two new AWS Direct Connect connections for the LAG with a bandwidth of 1 Gbps. + +Command:: + + aws directconnect create-lag --location CSVA1 --number-of-connections 2 --connections-bandwidth 1Gbps --lag-name 1GBLag + +Output:: + + { + "awsDevice": "CSVA1-23u8tlpaz8iks", + "numberOfConnections": 2, + "lagState": "pending", + "ownerAccount": "123456789012", + "lagName": "1GBLag", + "connections": [ + { + "ownerAccount": "123456789012", + "connectionId": "dxcon-ffqr6x5q", + "lagId": "dxlag-ffjhj9lx", + "connectionState": "requested", + "bandwidth": "1Gbps", + "location": "CSVA1", + "connectionName": "Requested Connection 1 for Lag dxlag-ffjhj9lx", + "region": "us-east-1" + }, + { + "ownerAccount": "123456789012", + "connectionId": "dxcon-fflqyj95", + "lagId": "dxlag-ffjhj9lx", + "connectionState": "requested", + "bandwidth": "1Gbps", + "location": "CSVA1", + "connectionName": "Requested Connection 2 for Lag dxlag-ffjhj9lx", + "region": "us-east-1" + } + ], + "lagId": "dxlag-ffjhj9lx", + "minimumLinks": 0, + "connectionsBandwidth": "1Gbps", + "region": "us-east-1", + "location": "CSVA1" + } + +**To create a LAG using an existing connection** + +The following example creates a LAG from an existing connection in your account, and requests a second new connection for the LAG with the same bandwidth and location as the existing connection. + +Command:: + + aws directconnect create-lag --location EqDC2 --number-of-connections 2 --connections-bandwidth 1Gbps --lag-name 2ConnLAG --connection-id dxcon-fgk145dr + +Output:: + + { + "awsDevice": "EqDC2-4h6ce2r1bes6", + "numberOfConnections": 2, + "lagState": "pending", + "ownerAccount": "123456789012", + "lagName": "2ConnLAG", + "connections": [ + { + "ownerAccount": "123456789012", + "connectionId": "dxcon-fh6ljcvo", + "lagId": "dxlag-fhccu14t", + "connectionState": "requested", + "bandwidth": "1Gbps", + "location": "EqDC2", + "connectionName": "Requested Connection 1 for Lag dxlag-fhccu14t", + "region": "us-east-1" + }, + { + "ownerAccount": "123456789012", + "connectionId": "dxcon-fgk145dr", + "lagId": "dxlag-fhccu14t", + "connectionState": "down", + "bandwidth": "1Gbps", + "location": "EqDC2", + "connectionName": "VAConn1", + "region": "us-east-1" + } + ], + "lagId": "dxlag-fhccu14t", + "minimumLinks": 0, + "connectionsBandwidth": "1Gbps", + "region": "us-east-1", + "location": "EqDC2" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-private-virtual-interface.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-private-virtual-interface.rst new file mode 100644 index 000000000..ff686afce --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-private-virtual-interface.rst @@ -0,0 +1,25 @@ +**To create a private virtual interface** + +The following ``create-private-virtual-interface`` command creates a private virtual interface:: + + aws directconnect create-private-virtual-interface --connection-id dxcon-ffjrkx17 --new-private-virtual-interface virtualInterfaceName=PrivateVirtualInterface,vlan=101,asn=65000,authKey=asdf34example,amazonAddress=192.168.1.1/30,customerAddress=192.168.1.2/30,virtualGatewayId=vgw-aba37db6 + +Output:: + + { + "virtualInterfaceState": "pending", + "asn": 65000, + "vlan": 101, + "customerAddress": "192.168.1.2/30", + "ownerAccount": "123456789012", + "connectionId": "dxcon-ffjrkx17", + "virtualGatewayId": "vgw-aba37db6", + "virtualInterfaceId": "dxvif-ffhhk74f", + "authKey": "asdf34example", + "routeFilterPrefixes": [], + "location": "TIVIT", + "customerRouterConfig": "\n\n 101\n 192.168.1.2/30\n 192.168.1.1/30\n 65000\n asdf34example\n 7224\n private\n\n", + "amazonAddress": "192.168.1.1/30", + "virtualInterfaceType": "private", + "virtualInterfaceName": "PrivateVirtualInterface" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-public-virtual-interface.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-public-virtual-interface.rst new file mode 100644 index 000000000..266b6a78b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-public-virtual-interface.rst @@ -0,0 +1,31 @@ +**To create a public virtual interface** + +The following ``create-public-virtual-interface`` command creates a public virtual interface:: + + aws directconnect create-public-virtual-interface --connection-id dxcon-ffjrkx17 --new-public-virtual-interface virtualInterfaceName=PublicVirtualInterface,vlan=2000,asn=65000,authKey=asdf34example,amazonAddress=203.0.113.1/30,customerAddress=203.0.113.2/30,routeFilterPrefixes=[{cidr=203.0.113.0/30},{cidr=203.0.113.4/30}] + +Output:: + + { + "virtualInterfaceState": "verifying", + "asn": 65000, + "vlan": 2000, + "customerAddress": "203.0.113.2/30", + "ownerAccount": "123456789012", + "connectionId": "dxcon-ffjrkx17", + "virtualInterfaceId": "dxvif-fgh0hcrk", + "authKey": "asdf34example", + "routeFilterPrefixes": [ + { + "cidr": "203.0.113.0/30" + }, + { + "cidr": "203.0.113.4/30" + } + ], + "location": "TIVIT", + "customerRouterConfig": "\n\n 2000\n 203.0.113.2/30\n 203.0.113.1/30\n 65000\n asdf34example\n 7224\n public\n\n", + "amazonAddress": "203.0.113.1/30", + "virtualInterfaceType": "public", + "virtualInterfaceName": "PublicVirtualInterface" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-transit-virtual-interface.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-transit-virtual-interface.rst new file mode 100755 index 000000000..56de738eb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/create-transit-virtual-interface.rst @@ -0,0 +1,57 @@ +**To create a transit virtual interface** + +The following ``create-transit-virtual-interface`` example creates a transit virtual interface for the specified connection. :: + + aws directconnect create-transit-virtual-interface \ + --connection-id dxlag-fEXAMPLE \ + --new-transit-virtual-interface "virtualInterfaceName=Example Transit Virtual Interface,vlan=126,asn=65110,mtu=1500,authKey=0xzxgA9YoW9h58u8SvEXAMPLE,amazonAddress=192.168.1.1/30,customerAddress=192.168.1.2/30,addressFamily=ipv4,directConnectGatewayId=8384da05-13ce-4a91-aada-5a1baEXAMPLE,tags=[{key=Tag,value=Example}]" + +Output:: + + { + "virtualInterface": { + "ownerAccount": "1111222233333", + "virtualInterfaceId": "dxvif-fEXAMPLE", + "location": "loc1", + "connectionId": "dxlag-fEXAMPLE", + "virtualInterfaceType": "transit", + "virtualInterfaceName": "Example Transit Virtual Interface", + "vlan": 126, + "asn": 65110, + "amazonSideAsn": 4200000000, + "authKey": "0xzxgA9YoW9h58u8SEXAMPLE", + "amazonAddress": "192.168.1.1/30", + "customerAddress": "192.168.1.2/30", + "addressFamily": "ipv4", + "virtualInterfaceState": "pending", + "customerRouterConfig": "\n\n 126\n 192.168.1.2/30\n 192.168.1.1/30\n 65110\n 0xzxgA9YoW9h58u8SvOmXRTw\n 4200000000\n transit\n\n", + "mtu": 1500, + "jumboFrameCapable": true, + "virtualGatewayId": "", + "directConnectGatewayId": "8384da05-13ce-4a91-aada-5a1baEXAMPLE", + "routeFilterPrefixes": [], + "bgpPeers": [ + { + "bgpPeerId": "dxpeer-EXAMPLE", + "asn": 65110, + "authKey": "0xzxgA9YoW9h58u8SEXAMPLE", + "addressFamily": "ipv4", + "amazonAddress": "192.168.1.1/30", + "customerAddress": "192.168.1.2/30", + "bgpPeerState": "pending", + "bgpStatus": "down", + "awsDeviceV2": "loc1-26wz6vEXAMPLE" + } + ], + "region": "sa-east-1", + "awsDeviceV2": "loc1-26wz6vEXAMPLE", + "tags": [ + { + "key": "Tag", + "value": "Example" + } + ] + } + } + +For more information, see `Creating a Transit Virtual Interface to the Direct Connect Gateway `__ in the *AWS Direct Connect User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/delete-bgp-peer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/delete-bgp-peer.rst new file mode 100644 index 000000000..860fcf100 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/delete-bgp-peer.rst @@ -0,0 +1,50 @@ +**To delete a BGP peer from a virtual interface** + +The following example deletes the IPv6 BGP peer from virtual interface ``dxvif-fg1vuj3d``. + +Command:: + + aws directconnect delete-bgp-peer --virtual-interface-id dxvif-fg1vuj3d --asn 64600 --customer-address 2001:db8:1100:2f0:0:1:9cb4:4216/125 + +Output:: + + { + "virtualInterface": { + "virtualInterfaceState": "available", + "asn": 65000, + "vlan": 125, + "customerAddress": "169.254.255.2/30", + "ownerAccount": "123456789012", + "connectionId": "dxcon-fguhmqlc", + "addressFamily": "ipv4", + "virtualGatewayId": "vgw-f9eb0c90", + "virtualInterfaceId": "dxvif-fg1vuj3d", + "authKey": "0xC_ukbCerl6EYA0example", + "routeFilterPrefixes": [], + "location": "EqDC2", + "bgpPeers": [ + { + "bgpStatus": "down", + "customerAddress": "169.254.255.2/30", + "addressFamily": "ipv4", + "authKey": "0xC_ukbCerl6EYA0uexample", + "bgpPeerState": "available", + "amazonAddress": "169.254.255.1/30", + "asn": 65000 + }, + { + "bgpStatus": "down", + "customerAddress": "2001:db8:1100:2f0:0:1:9cb4:4216/125", + "addressFamily": "ipv6", + "authKey": "0xS27kAIU_VHPjjAexample", + "bgpPeerState": "deleting", + "amazonAddress": "2001:db8:1100:2f0:0:1:9cb4:4211/125", + "asn": 64600 + } + ], + "customerRouterConfig": "\n\n 125\n 169.254.255.2/30\n 169.254.255.1/30\n 65000\n 0xC_ukbCerl6EYA0example\n 7224\n private\n\n", + "amazonAddress": "169.254.255.1/30", + "virtualInterfaceType": "private", + "virtualInterfaceName": "Test" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/delete-connection.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/delete-connection.rst new file mode 100644 index 000000000..ace973652 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/delete-connection.rst @@ -0,0 +1,17 @@ +**To delete a connection** + +The following ``delete-connection`` command deletes the specified connection:: + + aws directconnect delete-connection --connection-id dxcon-fg31dyv6 + +Output:: + + { + "ownerAccount": "123456789012", + "connectionId": "dxcon-fg31dyv6", + "connectionState": "deleted", + "bandwidth": "1Gbps", + "location": "TIVIT", + "connectionName": "Connection to AWS", + "region": "sa-east-1" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/delete-direct-connect-gateway-association.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/delete-direct-connect-gateway-association.rst new file mode 100644 index 000000000..081b60af7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/delete-direct-connect-gateway-association.rst @@ -0,0 +1,29 @@ +**To delete a Direct Connect gateway association** + +The following ``delete-direct-connect-gateway-association`` example deletes the Direct Connect gateway association with a transit gateway that has the specified association ID. :: + + aws directconnect delete-direct-connect-gateway-association --association-id be85116d-46eb-4b43-a27a-da0c2ad648de + +Output:: + + { + "directConnectGatewayAssociation": { + "directConnectGatewayId": "11460968-4ac1-4fd3-bdb2-00599EXAMPlE", + "directConnectGatewayOwnerAccount": "123456789012", + "associationState": "disassociating", + "associatedGateway": { + "id": "tgw-095b3b0b54EXAMPLE", + "type": "transitGateway", + "ownerAccount": "123456789012", + "region": "us-east-1" + }, + "associationId": " be85116d-46eb-4b43-a27a-da0c2ad648deEXAMPLE ", + "allowedPrefixesToDirectConnectGateway": [ + { + "cidr": "192.0.1.0/28" + } + ] + } + } + +For more information, see `Associating and Disassociating Transit Gateways `_ in the *AWS Direct Connect User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/delete-direct-connect-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/delete-direct-connect-gateway.rst new file mode 100644 index 000000000..1a4611bb2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/delete-direct-connect-gateway.rst @@ -0,0 +1,19 @@ +**To delete a Direct Connect gateway** + +The following example deletes Direct Connect gateway ``5f294f92-bafb-4011-916d-9b0bexample``. + +Command:: + + aws directconnect delete-direct-connect-gateway --direct-connect-gateway-id 5f294f92-bafb-4011-916d-9b0bexample + +Output:: + + { + "directConnectGateway": { + "amazonSideAsn": 64512, + "directConnectGatewayId": "5f294f92-bafb-4011-916d-9b0bexample", + "ownerAccount": "123456789012", + "directConnectGatewayName": "DxGateway1", + "directConnectGatewayState": "deleting" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/delete-interconnect.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/delete-interconnect.rst new file mode 100644 index 000000000..0d3726453 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/delete-interconnect.rst @@ -0,0 +1,11 @@ +**To delete an interconnect** + +The following ``delete-interconnect`` command deletes the specified interconnect:: + + aws directconnect delete-interconnect --interconnect-id dxcon-fgktov66 + +Output:: + + { + "interconnectState": "deleted" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/delete-lag.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/delete-lag.rst new file mode 100644 index 000000000..42adba0dc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/delete-lag.rst @@ -0,0 +1,23 @@ +**To delete a LAG** + +The following example deletes the specified LAG. + +Command:: + + aws directconnect delete-lag --lag-id dxlag-ffrhowd9 + +Output:: + + { + "awsDevice": "EqDC2-4h6ce2r1bes6", + "numberOfConnections": 0, + "lagState": "deleted", + "ownerAccount": "123456789012", + "lagName": "TestLAG", + "connections": [], + "lagId": "dxlag-ffrhowd9", + "minimumLinks": 0, + "connectionsBandwidth": "1Gbps", + "region": "us-east-1", + "location": "EqDC2" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/delete-virtual-interface.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/delete-virtual-interface.rst new file mode 100644 index 000000000..2acc50662 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/delete-virtual-interface.rst @@ -0,0 +1,11 @@ +**To delete a virtual interface** + +The following ``delete-virtual-interface`` command deletes the specified virtual interface:: + + aws directconnect delete-virtual-interface --virtual-interface-id dxvif-ffhhk74f + +Output:: + + { + "virtualInterfaceState": "deleting" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-connection-loa.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-connection-loa.rst new file mode 100644 index 000000000..79136fc6b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-connection-loa.rst @@ -0,0 +1,21 @@ +**To describe your LOA-CFA for a connection using Linux or Mac OS X** + +The following example describes your LOA-CFA for connection ``dxcon-fh6ayh1d``. The contents of the LOA-CFA are base64-encoded. This command uses the ``--output`` and ``--query`` parameters to control the output and extract the contents of the ``loaContent`` structure. The final part of the command decodes the content using the ``base64`` utility, and sends the output to a PDF file. + +.. code:: + + aws directconnect describe-connection-loa --connection-id dxcon-fh6ayh1d --output text --query loa.loaContent|base64 --decode > myLoaCfa.pdf + +**To describe your LOA-CFA for a connection using Windows** + +The previous example requires the use of the ``base64`` utility to decode the output. On a Windows computer, you can use ``certutil`` instead. In the following example, the first command describes your LOA-CFA for connection ``dxcon-fh6ayh1d`` and uses the ``--output`` and ``--query`` parameters to control the output and extract the contents of the ``loaContent`` structure to a file called ``myLoaCfa.base64``. The second command uses the ``certutil`` utility to decode the file and send the output to a PDF file. + +.. code:: + + aws directconnect describe-connection-loa --connection-id dxcon-fh6ayh1d --output text --query loa.loaContent > myLoaCfa.base64 + +.. code:: + + certutil -decode myLoaCfa.base64 myLoaCfa.pdf + +For more information about controlling AWS CLI output, see `Controlling Command Output from the AWS Command Line Interface `_ in the *AWS Command Line Interface User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-connections-on-interconnect.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-connections-on-interconnect.rst new file mode 100644 index 000000000..464c1c8d6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-connections-on-interconnect.rst @@ -0,0 +1,23 @@ +**To list connections on an interconnect** + +The following ``describe-connections-on-interconnect`` command lists connections that have been provisioned on the given interconnect:: + + aws directconnect describe-connections-on-interconnect --interconnect-id dxcon-fgktov66 + +Output:: + + { + "connections": [ + { + "partnerName": "TIVIT", + "vlan": 101, + "ownerAccount": "123456789012", + "connectionId": "dxcon-ffzc51m1", + "connectionState": "ordering", + "bandwidth": "500Mbps", + "location": "TIVIT", + "connectionName": "mydcinterconnect", + "region": "sa-east-1" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-connections.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-connections.rst new file mode 100644 index 000000000..d08684617 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-connections.rst @@ -0,0 +1,24 @@ +**To list all connections in the current region** + +The following ``describe-connections`` command lists all connections in the current region:: + + aws directconnect describe-connections + +Output:: + + { + "connections": [ + { + "awsDevice": "EqDC2-123h49s71dabc", + "ownerAccount": "123456789012", + "connectionId": "dxcon-fguhmqlc", + "lagId": "dxlag-ffrz71kw", + "connectionState": "down", + "bandwidth": "1Gbps", + "location": "EqDC2", + "connectionName": "My_Connection", + "loaIssueTime": 1491568964.0, + "region": "us-east-1" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-direct-connect-gateway-association-proposals.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-direct-connect-gateway-association-proposals.rst new file mode 100755 index 000000000..27ef91191 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-direct-connect-gateway-association-proposals.rst @@ -0,0 +1,64 @@ +**To describe your Direct Connect gateway association proposals** + +The following ``describe-direct-connect-gateway-association-proposals`` example displays details about your Direct Connect gateway association proposals. :: + + aws directconnect describe-direct-connect-gateway-association-proposals + +Output:: + + { + "directConnectGatewayAssociationProposals": [ + { + "proposalId": "c2ede9b4-bbc6-4d33-923c-bc4feEXAMPLE", + "directConnectGatewayId": "11460968-4ac1-4fd3-bdb2-00599EXAMPLE", + "directConnectGatewayOwnerAccount": "111122223333", + "proposalState": "requested", + "associatedGateway": { + "id": "tgw-02f776b1a7EXAMPLE", + "type": "transitGateway", + "ownerAccount": "111122223333", + "region": "us-east-1" + }, + "existingAllowedPrefixesToDirectConnectGateway": [ + { + "cidr": "192.168.2.0/30" + }, + { + "cidr": "192.168.1.0/30" + } + ], + "requestedAllowedPrefixesToDirectConnectGateway": [ + { + "cidr": "192.168.1.0/30" + } + ] + }, + { + "proposalId": "cb7f41cb-8128-43a5-93b1-dcaedEXAMPLE", + "directConnectGatewayId": "11560968-4ac1-4fd3-bcb2-00599EXAMPLE", + "directConnectGatewayOwnerAccount": "111122223333", + "proposalState": "accepted", + "associatedGateway": { + "id": "tgw-045776b1a7EXAMPLE", + "type": "transitGateway", + "ownerAccount": "111122223333", + "region": "us-east-1" + }, + "existingAllowedPrefixesToDirectConnectGateway": [ + { + "cidr": "192.168.4.0/30" + }, + { + "cidr": "192.168.5.0/30" + } + ], + "requestedAllowedPrefixesToDirectConnectGateway": [ + { + "cidr": "192.168.5.0/30" + } + ] + } + ] + } + +For more information, see `Associating and Disassociating Transit Gateways `__ in the *AWS Direct Connect User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-direct-connect-gateway-associations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-direct-connect-gateway-associations.rst new file mode 100644 index 000000000..17572c044 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-direct-connect-gateway-associations.rst @@ -0,0 +1,29 @@ +**To describe Direct Connect gateway associations** + +The following example describes all the associations with Direct Connect gateway ``5f294f92-bafb-4011-916d-9b0bexample``. + +Command:: + + aws directconnect describe-direct-connect-gateway-associations --direct-connect-gateway-id 5f294f92-bafb-4011-916d-9b0bexample + +Output:: + + { + "nextToken": "eyJ2IjoxLCJzIjoxLCJpIjoiOU83OTFodzdycnZCbkN4MExHeHVwQT09IiwiYyI6InIxTEN0UEVHV0I1UFlkaWFnNlUxanJkRWF6eW1iOElHM0FRVW1MdHRJK0dxcnN1RWtvcFBKWFE2ZjRNRGdGTkhCa0tDZmVINEtZOEYwZ0dEYWZpbmU0ZnZMYVhKRjdXRVdENmdQZ1Y4d2w0PSJ9", + "directConnectGatewayAssociations": [ + { + "associationState": "associating", + "virtualGatewayOwnerAccount": "123456789012", + "directConnectGatewayId": "5f294f92-bafb-4011-916d-9b0bexample", + "virtualGatewayId": "vgw-6efe725e", + "virtualGatewayRegion": "us-east-2" + }, + { + "associationState": "disassociating", + "virtualGatewayOwnerAccount": "123456789012", + "directConnectGatewayId": "5f294f92-bafb-4011-916d-9b0bexample", + "virtualGatewayId": "vgw-ebaa27db", + "virtualGatewayRegion": "us-east-2" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-direct-connect-gateway-attachments.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-direct-connect-gateway-attachments.rst new file mode 100644 index 000000000..965d4a503 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-direct-connect-gateway-attachments.rst @@ -0,0 +1,22 @@ +**To describe Direct Connect gateway attachments** + +The following example describes the virtual interfaces that are attached to Direct Connect gateway ``5f294f92-bafb-4011-916d-9b0bexample``. + +Command:: + + aws directconnect describe-direct-connect-gateway-attachments --direct-connect-gateway-id 5f294f92-bafb-4011-916d-9b0bexample + +Output:: + + { + "directConnectGatewayAttachments": [ + { + "virtualInterfaceOwnerAccount": "123456789012", + "directConnectGatewayId": "5f294f92-bafb-4011-916d-9b0bexample", + "virtualInterfaceRegion": "us-east-2", + "attachmentState": "attaching", + "virtualInterfaceId": "dxvif-fg9zyabc" + } + ], + "nextToken": "eyJ2IjoxLCJzIjoxLCJpIjoibEhXdlNpUXF5RzhoL1JyUW52SlV2QT09IiwiYyI6Im5wQjFHQ0RyQUdRS3puNnNXcUlINCtkTTA4dTk3KzBiU0xtb05JQmlaczZ6NXRIYmk3c3VESUxFTTd6a2FzVHM0VTFwaGJkZGNxTytqWmQ3QzMzOGRQaTVrTThrOG1zelRsV3gyMWV3VTNFPSJ9" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-direct-connect-gateways.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-direct-connect-gateways.rst new file mode 100644 index 000000000..f805cc917 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-direct-connect-gateways.rst @@ -0,0 +1,28 @@ +**To describe your Direct Connect gateways** + +The following example describe all of your Direct Connect gateways. + +Command:: + + aws directconnect describe-direct-connect-gateways + +Output:: + + { + "directConnectGateways": [ + { + "amazonSideAsn": 64512, + "directConnectGatewayId": "cf68415c-f4ae-48f2-87a7-3b52cexample", + "ownerAccount": "123456789012", + "directConnectGatewayName": "DxGateway2", + "directConnectGatewayState": "available" + }, + { + "amazonSideAsn": 64512, + "directConnectGatewayId": "5f294f92-bafb-4011-916d-9b0bdexample", + "ownerAccount": "123456789012", + "directConnectGatewayName": "DxGateway1", + "directConnectGatewayState": "available" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-hosted-connections.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-hosted-connections.rst new file mode 100644 index 000000000..07d2c3cbf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-hosted-connections.rst @@ -0,0 +1,25 @@ +**To list connections on an interconnect** + +The following example lists connections that have been provisioned on the given interconnect. + +Command:: + + aws directconnect describe-hosted-connections --connection-id dxcon-fgktov66 + +Output:: + + { + "connections": [ + { + "partnerName": "TIVIT", + "vlan": 101, + "ownerAccount": "123456789012", + "connectionId": "dxcon-ffzc51m1", + "connectionState": "ordering", + "bandwidth": "500Mbps", + "location": "TIVIT", + "connectionName": "mydcinterconnect", + "region": "sa-east-1" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-interconnect-loa.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-interconnect-loa.rst new file mode 100644 index 000000000..ac76f72a9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-interconnect-loa.rst @@ -0,0 +1,21 @@ +**To describe your LOA-CFA for an interconnect using Linux or Mac OS X** + +The following example describes your LOA-CFA for interconnect ``dxcon-fh6ayh1d``. The contents of the LOA-CFA are base64-encoded. This command uses the ``--output`` and ``--query`` parameters to control the output and extract the contents of the ``loaContent`` structure. The final part of the command decodes the content using the ``base64`` utility, and sends the output to a PDF file. + +.. code:: + + aws directconnect describe-interconnect-loa --interconnect-id dxcon-fh6ayh1d --output text --query loa.loaContent|base64 --decode > myLoaCfa.pdf + +**To describe your LOA-CFA for an interconnect using Windows** + +The previous example requires the use of the ``base64`` utility to decode the output. On a Windows computer, you can use ``certutil`` instead. In the following example, the first command describes your LOA-CFA for interconnect ``dxcon-fh6ayh1d`` and uses the ``--output`` and ``--query`` parameters to control the output and extract the contents of the ``loaContent`` structure to a file called ``myLoaCfa.base64``. The second command uses the ``certutil`` utility to decode the file and send the output to a PDF file. + +.. code:: + + aws directconnect describe-interconnect-loa --interconnect-id dxcon-fh6ayh1d --output text --query loa.loaContent > myLoaCfa.base64 + +.. code:: + + certutil -decode myLoaCfa.base64 myLoaCfa.pdf + +For more information about controlling AWS CLI output, see `Controlling Command Output from the AWS Command Line Interface `_ in the *AWS Command Line Interface User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-interconnects.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-interconnects.rst new file mode 100644 index 000000000..bfd6a4c85 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-interconnects.rst @@ -0,0 +1,20 @@ +**To list interconnects** + +The following ``describe-interconnects`` command lists the interconnects owned by your AWS account:: + + aws directconnect describe-interconnects + +Output:: + + { + "interconnects": [ + { + "region": "sa-east-1", + "bandwidth": "1Gbps", + "location": "TIVIT", + "interconnectName": "1G Interconnect to AWS", + "interconnectId": "dxcon-fgktov66", + "interconnectState": "down" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-lags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-lags.rst new file mode 100644 index 000000000..88d5a324a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-lags.rst @@ -0,0 +1,48 @@ +**To describe your LAGs** + +The following command describes all of your LAGs for the current region. + +Command:: + + aws directconnect describe-lags + +Output:: + + { + "lags": [ + { + "awsDevice": "EqDC2-19y7z3m17xpuz", + "numberOfConnections": 2, + "lagState": "down", + "ownerAccount": "123456789012", + "lagName": "DA-LAG", + "connections": [ + { + "ownerAccount": "123456789012", + "connectionId": "dxcon-ffnikghc", + "lagId": "dxlag-fgsu9erb", + "connectionState": "requested", + "bandwidth": "10Gbps", + "location": "EqDC2", + "connectionName": "Requested Connection 1 for Lag dxlag-fgsu9erb", + "region": "us-east-1" + }, + { + "ownerAccount": "123456789012", + "connectionId": "dxcon-fglgbdea", + "lagId": "dxlag-fgsu9erb", + "connectionState": "requested", + "bandwidth": "10Gbps", + "location": "EqDC2", + "connectionName": "Requested Connection 2 for Lag dxlag-fgsu9erb", + "region": "us-east-1" + } + ], + "lagId": "dxlag-fgsu9erb", + "minimumLinks": 0, + "connectionsBandwidth": "10Gbps", + "region": "us-east-1", + "location": "EqDC2" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-loa.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-loa.rst new file mode 100644 index 000000000..cc5ae23fd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-loa.rst @@ -0,0 +1,21 @@ +**To describe your LOA-CFA for a connection using Linux or Mac OS X** + +The following example describes your LOA-CFA for connection ``dxcon-fh6ayh1d``. The contents of the LOA-CFA are base64-encoded. This command uses the ``--output`` and ``--query`` parameters to control the output and extract the contents of the ``loaContent`` structure. The final part of the command decodes the content using the ``base64`` utility, and sends the output to a PDF file. + +.. code:: + + aws directconnect describe-loa --connection-id dxcon-fh6ayh1d --output text --query loa.loaContent|base64 --decode > myLoaCfa.pdf + +**To describe your LOA-CFA for a connection using Windows** + +The previous example requires the use of the ``base64`` utility to decode the output. On a Windows computer, you can use ``certutil`` instead. In the following example, the first command describes your LOA-CFA for connection ``dxcon-fh6ayh1d`` and uses the ``--output`` and ``--query`` parameters to control the output and extract the contents of the ``loaContent`` structure to a file called ``myLoaCfa.base64``. The second command uses the ``certutil`` utility to decode the file and send the output to a PDF file. + +.. code:: + + aws directconnect describe-loa --connection-id dxcon-fh6ayh1d --output text --query loa.loaContent > myLoaCfa.base64 + +.. code:: + + certutil -decode myLoaCfa.base64 myLoaCfa.pdf + +For more information about controlling AWS CLI output, see `Controlling Command Output from the AWS Command Line Interface `_ in the *AWS Command Line Interface User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-locations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-locations.rst new file mode 100644 index 000000000..a512adc40 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-locations.rst @@ -0,0 +1,20 @@ +**To list AWS Direct Connect partners and locations** + +The following ``describe-locations`` command lists AWS Direct Connect partners and locations in the current region:: + + aws directconnect describe-locations + +Output:: + + { + "locations": [ + { + "locationName": "NAP do Brasil, Barueri, Sao Paulo", + "locationCode": "TNDB" + }, + { + "locationName": "Tivit - Site Transamerica (Sao Paulo)", + "locationCode": "TIVIT" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-tags.rst new file mode 100644 index 000000000..4d658c452 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-tags.rst @@ -0,0 +1,23 @@ +**To describe tags for your AWS Direct Connect resources** + +The following command describes the tags for the connection ``dxcon-abcabc12``. + +Command:: + + aws directconnect describe-tags --resource-arns arn:aws:directconnect:us-east-1:123456789012:dxcon/dxcon-abcabc12 + +Output:: + + { + "resourceTags": [ + { + "resourceArn": "arn:aws:directconnect:us-east-1:123456789012:dxcon/dxcon-abcabc12", + "tags": [ + { + "value": "VAConnection", + "key": "Name" + } + ] + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-virtual-gateways.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-virtual-gateways.rst new file mode 100644 index 000000000..c1c1f5506 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-virtual-gateways.rst @@ -0,0 +1,16 @@ +**To list virtual private gateways** + +The following ``describe-virtual-gateways`` command lists virtual private gateways owned by your AWS account:: + + aws directconnect describe-virtual-gateways + +Output:: + + { + "virtualGateways": [ + { + "virtualGatewayId": "vgw-aba37db6", + "virtualGatewayState": "available" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-virtual-interfaces.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-virtual-interfaces.rst new file mode 100644 index 000000000..0aca469ca --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/describe-virtual-interfaces.rst @@ -0,0 +1,53 @@ +**To list all virtual interfaces** + +The following ``describe-virtual-interfaces`` command lists the information about all virtual interfaces associated with your AWS account:: + + aws directconnect describe-virtual-interfaces --connection-id dxcon-ffjrkx17 + +Output:: + + { + "virtualInterfaces": [ + { + "virtualInterfaceState": "down", + "asn": 65000, + "vlan": 101, + "customerAddress": "192.168.1.2/30", + "ownerAccount": "123456789012", + "connectionId": "dxcon-ffjrkx17", + "virtualGatewayId": "vgw-aba37db6", + "virtualInterfaceId": "dxvif-ffhhk74f", + "authKey": "asdf34example", + "routeFilterPrefixes": [], + "location": "TIVIT", + "customerRouterConfig": "\n\n 101\n 192.168.1.2/30\n 192.168.1.1/30\n 65000\n asdf34example\n 7224\n private\n\n", + "amazonAddress": "192.168.1.1/30", + "virtualInterfaceType": "private", + "virtualInterfaceName": "PrivateVirtualInterface" + }, + { + "virtualInterfaceState": "verifying", + "asn": 65000, + "vlan": 2000, + "customerAddress": "203.0.113.2/30", + "ownerAccount": "123456789012", + "connectionId": "dxcon-ffjrkx17", + "virtualGatewayId": "", + "virtualInterfaceId": "dxvif-fgh0hcrk", + "authKey": "asdf34example", + "routeFilterPrefixes": [ + { + "cidr": "203.0.113.4/30" + }, + { + "cidr": "203.0.113.0/30" + } + ], + "location": "TIVIT", + "customerRouterConfig": "\n\n 2000\n 203.0.113.2/30\n 203.0.113.1/30\n 65000\n asdf34example\n 7224\n public\n\n", + "amazonAddress": "203.0.113.1/30", + "virtualInterfaceType": "public", + "virtualInterfaceName": "PublicVirtualInterface" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/disassociate-connection-from-lag.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/disassociate-connection-from-lag.rst new file mode 100644 index 000000000..b6590bfe9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/disassociate-connection-from-lag.rst @@ -0,0 +1,19 @@ +**To disassociate a connection from a LAG** + +The following example disassociates the specified connection from the specified LAG. + +Command:: + + aws directconnect disassociate-connection-from-lag --lag-id dxlag-fhccu14t --connection-id dxcon-fg9607vm + +Output:: + + { + "ownerAccount": "123456789012", + "connectionId": "dxcon-fg9607vm", + "connectionState": "requested", + "bandwidth": "1Gbps", + "location": "EqDC2", + "connectionName": "Con2ForLag", + "region": "us-east-1" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/tag-resource.rst new file mode 100644 index 000000000..5d10b237f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/tag-resource.rst @@ -0,0 +1,8 @@ +**To add a tag to an AWS Direct Connect resource** + +The following command adds a tag with a key of ``Name`` and a value of ``VAConnection`` to the connection ``dxcon-abcabc12``. If the command succeeds, no output is returned. + +Command:: + + aws directconnect tag-resource --resource-arn arn:aws:directconnect:us-east-1:123456789012:dxcon/dxcon-abcabc12 --tags "key=Name,value=VAConnection" + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/untag-resource.rst new file mode 100644 index 000000000..684af0e1e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/untag-resource.rst @@ -0,0 +1,8 @@ +**To remove a tag from an AWS Direct Connect resource** + +The following command removes the tag with the key ``Name`` from connection ``dxcon-abcabc12``. If the command succeeds, no output is returned. + +Command:: + + aws directconnect untag-resource --resource-arn arn:aws:directconnect:us-east-1:123456789012:dxcon/dxcon-abcabc12 --tag-keys Name + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/update-direct-connect-gateway-association.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/update-direct-connect-gateway-association.rst new file mode 100755 index 000000000..f74ab26d3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/update-direct-connect-gateway-association.rst @@ -0,0 +1,34 @@ +**To update the specified attributes of the Direct Connect gateway association** + +The following ``update-direct-connect-gateway-association`` example adds the specified CIDR block to a Direct Connect gateway association. :: + + aws directconnect update-direct-connect-gateway-association \ + --association-id 820a6e4f-5374-4004-8317-3f64bEXAMPLE \ + --add-allowed-prefixes-to-direct-connect-gateway cidr=192.168.2.0/30 + +Output:: + + { + "directConnectGatewayAssociation": { + "directConnectGatewayId": "11460968-4ac1-4fd3-bdb2-00599EXAMPLE", + "directConnectGatewayOwnerAccount": "111122223333", + "associationState": "updating", + "associatedGateway": { + "id": "tgw-02f776b1a7EXAMPLE", + "type": "transitGateway", + "ownerAccount": "111122223333", + "region": "us-east-1" + }, + "associationId": "820a6e4f-5374-4004-8317-3f64bEXAMPLE", + "allowedPrefixesToDirectConnectGateway": [ + { + "cidr": "192.168.2.0/30" + }, + { + "cidr": "192.168.1.0/30" + } + ] + } + } + +For more information, see `Working with Direct Connect Gateways `__ in the *AWS Direct Connect User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/update-lag.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/update-lag.rst new file mode 100644 index 000000000..6e69f9c62 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/update-lag.rst @@ -0,0 +1,44 @@ +**To update a LAG** + +The following example changes the name of the specified LAG. + +Command:: + + aws directconnect update-lag --lag-id dxlag-ffjhj9lx --lag-name 2ConnLag + +Output:: + + { + "awsDevice": "CSVA1-23u8tlpaz8iks", + "numberOfConnections": 2, + "lagState": "down", + "ownerAccount": "123456789012", + "lagName": "2ConnLag", + "connections": [ + { + "ownerAccount": "123456789012", + "connectionId": "dxcon-fflqyj95", + "lagId": "dxlag-ffjhj9lx", + "connectionState": "requested", + "bandwidth": "1Gbps", + "location": "CSVA1", + "connectionName": "Requested Connection 2 for Lag dxlag-ffjhj9lx", + "region": "us-east-1" + }, + { + "ownerAccount": "123456789012", + "connectionId": "dxcon-ffqr6x5q", + "lagId": "dxlag-ffjhj9lx", + "connectionState": "requested", + "bandwidth": "1Gbps", + "location": "CSVA1", + "connectionName": "Requested Connection 1 for Lag dxlag-ffjhj9lx", + "region": "us-east-1" + } + ], + "lagId": "dxlag-ffjhj9lx", + "minimumLinks": 0, + "connectionsBandwidth": "1Gbps", + "region": "us-east-1", + "location": "CSVA1" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/update-virtual-interface-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/update-virtual-interface-attributes.rst new file mode 100755 index 000000000..1bcae611d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/directconnect/update-virtual-interface-attributes.rst @@ -0,0 +1,51 @@ +**To update the MTU of a virtual interface** + +The following ``update-virtual-interface-attributes`` example updates the MTU of the specified virtual interface. :: + + aws directconnect update-virtual-interface-attributes \ + --virtual-interface-id dxvif-fEXAMPLE \ + --mtu 1500 + +Output:: + + { + "ownerAccount": "1111222233333", + "virtualInterfaceId": "dxvif-fEXAMPLE", + "location": "loc1", + "connectionId": "dxlag-fEXAMPLE", + "virtualInterfaceType": "transit", + "virtualInterfaceName": "example transit virtual interface", + "vlan": 125, + "asn": 650001, + "amazonSideAsn": 64512, + "authKey": "0xzxgA9YoW9h58u8SEXAMPLE", + "amazonAddress": "169.254.248.1/30", + "customerAddress": "169.254.248.2/30", + "addressFamily": "ipv4", + "virtualInterfaceState": "down", + "customerRouterConfig": "\n\n 125\n 169.254.248.2/30\n 169.254.248.1/30\n 650001\n 0xzxgA9YoW9h58u8SEXAMPLE\n 64512\n transit\n\n", + "mtu": 1500, + "jumboFrameCapable": true, + "virtualGatewayId": "", + "directConnectGatewayId": "879b76a1-403d-4700-8b53-4a56ed85436e", + "routeFilterPrefixes": [], + "bgpPeers": [ + { + "bgpPeerId": "dxpeer-fEXAMPLE", + "asn": 650001, + "authKey": "0xzxgA9YoW9h58u8SEXAMPLE", + "addressFamily": "ipv4", + "amazonAddress": "169.254.248.1/30", + "customerAddress": "169.254.248.2/30", + "bgpPeerState": "available", + "bgpStatus": "down", + "awsDeviceV2": "loc1-26wz6vEXAMPLE" + } + ], + "region": "sa-east-1", + "awsDeviceV2": "loc1-26wz6vEXAMPLE", + "tags": [] + } + + +For more information, see `Setting Network MTU for Private Virtual Interfaces or Transit Virtual Interfaces `__ in the *AWS Direct Connect User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/discovery/describe-agents.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/discovery/describe-agents.rst new file mode 100644 index 000000000..32131d6b7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/discovery/describe-agents.rst @@ -0,0 +1,46 @@ +**Describe agents with specified collectionStatus states** + +This example command describes collection agents with collection status of "STARTED" or "STOPPED". + +Command:: + + aws discovery describe-agents --filters name="collectionStatus",values="STARTED","STOPPED",condition="EQUALS" --max-results 3 + +Output:: + + { + "Snapshots": [ + { + "version": "1.0.40.0", + "agentType": "EC2", + "hostName": "ip-172-31-40-234", + "collectionStatus": "STOPPED", + "agentNetworkInfoList": [ + { + "macAddress": "06:b5:97:14:fc:0d", + "ipAddress": "172.31.40.234" + } + ], + "health": "UNKNOWN", + "agentId": "i-003305c02a776e883", + "registeredTime": "2016-12-09T19:05:06Z", + "lastHealthPingTime": "2016-12-09T19:05:10Z" + }, + { + "version": "1.0.40.0", + "agentType": "EC2", + "hostName": "ip-172-31-39-64", + "collectionStatus": "STARTED", + "agentNetworkInfoList": [ + { + "macAddress": "06:a1:0e:c7:b2:73", + "ipAddress": "172.31.39.64" + } + ], + "health": "SHUTDOWN", + "agentId": "i-003a5e5e2b36cf8bd", + "registeredTime": "2016-11-16T16:36:25Z", + "lastHealthPingTime": "2016-11-16T16:47:37Z" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/discovery/describe-configurations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/discovery/describe-configurations.rst new file mode 100644 index 000000000..cb3b57f2c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/discovery/describe-configurations.rst @@ -0,0 +1,122 @@ +**Describe selected asset configurations** + +This example command describes the configurations of two specified servers. The action detects the type of asset from the configuration ID. Only one type of asset is allowed per command. + +Command:: + + aws discovery describe-configurations --configuration-ids "d-server-099385097ef9fbcfb" "d-server-0c4f2dd1fee22c6c1" + +Output:: + + { + "configurations": [ + { + "server.performance.maxCpuUsagePct": "0.0", + "server.performance.maxDiskReadIOPS": "0.0", + "server.performance.avgCpuUsagePct": "0.0", + "server.type": "EC2", + "server.performance.maxNetworkReadsPerSecondInKB": "0.19140625", + "server.hostName": "ip-172-31-35-152", + "server.configurationId": "d-server-0c4f2dd1fee22c6c1", + "server.tags.hasMoreValues": "false", + "server.performance.minFreeRAMInKB": "1543496.0", + "server.osVersion": "3.14.48-33.39.amzn1.x86_64", + "server.performance.maxDiskReadsPerSecondInKB": "0.0", + "server.applications": "[]", + "server.performance.numDisks": "1", + "server.performance.numCpus": "1", + "server.performance.numCores": "1", + "server.performance.maxDiskWriteIOPS": "0.0", + "server.performance.maxNetworkWritesPerSecondInKB": "0.82421875", + "server.performance.avgDiskWritesPerSecondInKB": "0.0", + "server.networkInterfaceInfo": "[{\"name\":\"eth0\",\"macAddress\":\"06:A7:7D:3F:54:57\",\"ipAddress\":\"172.31.35.152\",\"netMask\":\"255.255.240.0\"},{\"name\":\"lo\",\"macAddress\":\"00:00:00:00:00:00\",\"ipAddress\":\"127.0.0.1\",\"netMask\":\"255.0.0.0\"},{\"name\":\"eth0\",\"macAddress\":\"06:A7:7D:3F:54:57\",\"ipAddress\":\"fe80::4a7:7dff:fe3f:5457\"},{\"name\":\"lo\",\"macAddress\":\"00:00:00:00:00:00\",\"ipAddress\":\"::1\"}]", + "server.performance.avgNetworkReadsPerSecondInKB": "0.04915364583333333", + "server.tags": "[]", + "server.applications.hasMoreValues": "false", + "server.timeOfCreation": "2016-10-28 23:44:00.0", + "server.agentId": "i-4447bc1b", + "server.performance.maxDiskWritesPerSecondInKB": "0.0", + "server.performance.avgDiskReadIOPS": "0.0", + "server.performance.avgFreeRAMInKB": "1547210.1333333333", + "server.performance.avgDiskReadsPerSecondInKB": "0.0", + "server.performance.avgDiskWriteIOPS": "0.0", + "server.performance.numNetworkCards": "2", + "server.hypervisor": "xen", + "server.networkInterfaceInfo.hasMoreValues": "false", + "server.performance.avgNetworkWritesPerSecondInKB": "0.1380859375", + "server.osName": "Linux - Amazon Linux AMI release 2015.03", + "server.performance.totalRAMInKB": "1694732.0", + "server.cpuType": "x64" + }, + { + "server.performance.maxCpuUsagePct": "100.0", + "server.performance.maxDiskReadIOPS": "0.0", + "server.performance.avgCpuUsagePct": "14.733333333333338", + "server.type": "EC2", + "server.performance.maxNetworkReadsPerSecondInKB": "13.400390625", + "server.hostName": "ip-172-31-42-208", + "server.configurationId": "d-server-099385097ef9fbcfb", + "server.tags.hasMoreValues": "false", + "server.performance.minFreeRAMInKB": "1531104.0", + "server.osVersion": "3.14.48-33.39.amzn1.x86_64", + "server.performance.maxDiskReadsPerSecondInKB": "0.0", + "server.applications": "[]", + "server.performance.numDisks": "1", + "server.performance.numCpus": "1", + "server.performance.numCores": "1", + "server.performance.maxDiskWriteIOPS": "1.0", + "server.performance.maxNetworkWritesPerSecondInKB": "12.271484375", + "server.performance.avgDiskWritesPerSecondInKB": "0.5333333333333334", + "server.networkInterfaceInfo": "[{\"name\":\"eth0\",\"macAddress\":\"06:4A:79:60:75:61\",\"ipAddress\":\"172.31.42.208\",\"netMask\":\"255.255.240.0\"},{\"name\":\"eth0\",\"macAddress\":\"06:4A:79:60:75:61\",\"ipAddress\":\"fe80::44a:79ff:fe60:7561\"},{\"name\":\"lo\",\"macAddress\":\"00:00:00:00:00:00\",\"ipAddress\":\"::1\"},{\"name\":\"lo\",\"macAddress\":\"00:00:00:00:00:00\",\"ipAddress\":\"127.0.0.1\",\"netMask\":\"255.0.0.0\"}]", + "server.performance.avgNetworkReadsPerSecondInKB": "2.8720052083333334", + "server.tags": "[]", + "server.applications.hasMoreValues": "false", + "server.timeOfCreation": "2016-10-28 23:44:30.0", + "server.agentId": "i-c142b99e", + "server.performance.maxDiskWritesPerSecondInKB": "4.0", + "server.performance.avgDiskReadIOPS": "0.0", + "server.performance.avgFreeRAMInKB": "1534946.4", + "server.performance.avgDiskReadsPerSecondInKB": "0.0", + "server.performance.avgDiskWriteIOPS": "0.13333333333333336", + "server.performance.numNetworkCards": "2", + "server.hypervisor": "xen", + "server.networkInterfaceInfo.hasMoreValues": "false", + "server.performance.avgNetworkWritesPerSecondInKB": "1.7977864583333332", + "server.osName": "Linux - Amazon Linux AMI release 2015.03", + "server.performance.totalRAMInKB": "1694732.0", + "server.cpuType": "x64" + } + ] + } + + +**Describe selected asset configurations** + +This example command describes the configurations of two specified applications. The action detects the type of asset from the configuration ID. Only one type of asset is allowed per command. + +Command:: + + aws discovery describe-configurations --configuration-ids "d-application-0ac39bc0e4fad0e42" "d-application-02444a45288013764q" + +Output:: + + { + "configurations": [ + { + "application.serverCount": "0", + "application.name": "Application-12345", + "application.lastModifiedTime": "2016-12-13 23:53:27.0", + "application.description": "", + "application.timeOfCreation": "2016-12-13 23:53:27.0", + "application.configurationId": "d-application-0ac39bc0e4fad0e42" + }, + { + "application.serverCount": "0", + "application.name": "Application-67890", + "application.lastModifiedTime": "2016-12-13 23:53:33.0", + "application.description": "", + "application.timeOfCreation": "2016-12-13 23:53:33.0", + "application.configurationId": "d-application-02444a45288013764" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/discovery/list-configurations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/discovery/list-configurations.rst new file mode 100644 index 000000000..00f8e3a21 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/discovery/list-configurations.rst @@ -0,0 +1,32 @@ +**To list all of the discovered servers meeting a set of filter conditions** + +This example command lists discovered servers matching either of two hostname patterns and not running Ubuntu. + +Command:: + + aws discovery list-configurations --configuration-type SERVER --filters name="server.hostName",values="172-31-35","172-31-42",condition="CONTAINS" name="server.osName",values="Ubuntu",condition="NOT_CONTAINS" + +Output:: + + { + "configurations": [ + { + "server.osVersion": "3.14.48-33.39.amzn1.x86_64", + "server.type": "EC2", + "server.hostName": "ip-172-31-42-208", + "server.timeOfCreation": "2016-10-28 23:44:30.0", + "server.configurationId": "d-server-099385097ef9fbcfb", + "server.osName": "Linux - Amazon Linux AMI release 2015.03", + "server.agentId": "i-c142b99e" + }, + { + "server.osVersion": "3.14.48-33.39.amzn1.x86_64", + "server.type": "EC2", + "server.hostName": "ip-172-31-35-152", + "server.timeOfCreation": "2016-10-28 23:44:00.0", + "server.configurationId": "d-server-0c4f2dd1fee22c6c1", + "server.osName": "Linux - Amazon Linux AMI release 2015.03", + "server.agentId": "i-4447bc1b" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dlm/create-default-role.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dlm/create-default-role.rst new file mode 100644 index 000000000..57c1aae5a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dlm/create-default-role.rst @@ -0,0 +1,10 @@ +**To create the required IAM role for Amazon DLM** + +The following ``dlm create-default-role`` example creates the AWSDataLifecycleManagerDefaultRole default role for managing snapshots. :: + + aws dlm create-default-role \ + --resource-type snapshot + +This command produces no output. + +For more information, see `Default service roles for Amazon Data Lifecycle Manager `__ in the *Amazon Elastic Compute Cloud User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dlm/create-lifecycle-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dlm/create-lifecycle-policy.rst new file mode 100644 index 000000000..12eb5506d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dlm/create-lifecycle-policy.rst @@ -0,0 +1,51 @@ +**To create a lifecycle policy** + +The following ``create-lifecycle-policy`` example creates a lifecycle policy that creates a daily snapshot of volumes at the specified time. The specified tags are added to the snapshots, and tags are also copied from the volume and added to the snapshots. If creating a new snapshot exceeds the specified maximum count, the oldest snapshot is deleted. :: + + aws dlm create-lifecycle-policy \ + --description "My first policy" \ + --state ENABLED \ + --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRole \ + --policy-details file://policyDetails.json + +Contents of ``policyDetails.json``:: + + { + "ResourceTypes": [ + "VOLUME" + ], + "TargetTags": [ + { + "Key": "costCenter", + "Value": "115" + } + ], + "Schedules":[ + { + "Name": "DailySnapshots", + "CopyTags": true, + "TagsToAdd": [ + { + "Key": "type", + "Value": "myDailySnapshot" + } + ], + "CreateRule": { + "Interval": 24, + "IntervalUnit": "HOURS", + "Times": [ + "03:00" + ] + }, + "RetainRule": { + "Count":5 + } + } + ] + } + +Output:: + + { + "PolicyId": "policy-0123456789abcdef0" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dlm/delete-lifecycle-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dlm/delete-lifecycle-policy.rst new file mode 100644 index 000000000..f6f9e8533 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dlm/delete-lifecycle-policy.rst @@ -0,0 +1,5 @@ +**To delete a lifecycle policy** + +The following example deletes the specified lifecycle policy.:: + + aws dlm delete-lifecycle-policy --policy-id policy-0123456789abcdef0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dlm/get-lifecycle-policies.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dlm/get-lifecycle-policies.rst new file mode 100644 index 000000000..162b68193 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dlm/get-lifecycle-policies.rst @@ -0,0 +1,17 @@ +**To get a summary of your lifecycle policies** + +The following ``get-lifecycle-policies`` example lists all of your lifecycle policies. :: + + aws dlm get-lifecycle-policies + +Output:: + + { + "Policies": [ + { + "PolicyId": "policy-0123456789abcdef0", + "Description": "My first policy", + "State": "ENABLED" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dlm/get-lifecycle-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dlm/get-lifecycle-policy.rst new file mode 100644 index 000000000..5727c03e3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dlm/get-lifecycle-policy.rst @@ -0,0 +1,53 @@ +**To describe a lifecycle policy** + +The following ``get-lifecycle-policy`` example displays details for the specified lifecycle policy. :: + + aws dlm get-lifecycle-policy \ + --policy-id policy-0123456789abcdef0 + +Output:: + + { + "Policy": { + "PolicyId": "policy-0123456789abcdef0", + "Description": "My policy", + "State": "ENABLED", + "ExecutionRoleArn": "arn:aws:iam::123456789012:role/AWSDataLifecycleManagerDefaultRole", + "DateCreated": "2019-08-08T17:45:42Z", + "DateModified": "2019-08-08T17:45:42Z", + "PolicyDetails": { + "PolicyType": "EBS_SNAPSHOT_MANAGEMENT", + "ResourceTypes": [ + "VOLUME" + ], + "TargetTags": [ + { + "Key": "costCenter", + "Value": "115" + } + ], + "Schedules": [ + { + "Name": "DailySnapshots", + "CopyTags": true, + "TagsToAdd": [ + { + "Key": "type", + "Value": "myDailySnapshot" + } + ], + "CreateRule": { + "Interval": 24, + "IntervalUnit": "HOURS", + "Times": [ + "03:00" + ] + }, + "RetainRule": { + "Count": 5 + } + } + ] + } + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dlm/update-lifecycle-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dlm/update-lifecycle-policy.rst new file mode 100644 index 000000000..6cd08fb69 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dlm/update-lifecycle-policy.rst @@ -0,0 +1,38 @@ +**Example 1: To enable a lifecycle policy** + +The following ``update-lifecycle-policy`` example enables the specified lifecycle policy. :: + + aws dlm update-lifecycle-policy \ + --policy-id policy-0123456789abcdef0 \ + --state ENABLED + +**Example 2: To disable a lifecycle policy** + +The following ``update-lifecycle-policy`` example disables the specified lifecycle policy. :: + + aws dlm update-lifecycle-policy \ + --policy-id policy-0123456789abcdef0 \ + --state DISABLED + +**Example 3: To update the details for lifecycle policy** + +The following ``update-lifecycle-policy`` example updates the target tags for the specified lifecycle policy. :: + + aws dlm update-lifecycle-policy \ + --policy-id policy-0123456789abcdef0 + --policy-details file://policyDetails.json + +Contents of ``policyDetails.json``. Other details not referenced in this file are not changed by the command. :: + + { + "TargetTags": [ + { + "Key": "costCenter", + "Value": "120" + }, + { + "Key": "project", + "Value": "lima" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/add-tags-to-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/add-tags-to-resource.rst new file mode 100644 index 000000000..0e6ebfaef --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/add-tags-to-resource.rst @@ -0,0 +1,11 @@ +**To add tags to a resource** + +The following ``add-tags-to-resource`` example adds tags to a replication instance. :: + + aws dms add-tags-to-resource \ + --resource-arn arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE \ + --tags Key=Environment,Value=PROD Key=Project,Value=dbMigration + +This command produces no output. + +For more information, see `Tagging Resources `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/create-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/create-endpoint.rst new file mode 100644 index 000000000..64d1daa7d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/create-endpoint.rst @@ -0,0 +1,45 @@ +**To create an endpoint** + +The following ``create-endpoint`` example creates an endpoint for an Amazon S3 source. :: + + aws dms create-endpoint \ + --endpoint-type source \ + --engine-name s3 \ + --endpoint-identifier src-endpoint \ + --s3-settings file://s3-settings.json + + +Contents of ``s3-settings.json``:: + + { + "BucketName":"my-corp-data", + "BucketFolder":"sourcedata", + "ServiceAccessRoleArn":"arn:aws:iam::123456789012:role/my-s3-access-role" + } + +Output:: + + { + "Endpoint": { + "EndpointIdentifier": "src-endpoint", + "EndpointType": "SOURCE", + "EngineName": "s3", + "EngineDisplayName": "Amazon S3", + "ExtraConnectionAttributes": "bucketFolder=sourcedata;bucketName=my-corp-data;compressionType=NONE;csvDelimiter=,;csvRowDelimiter=\\n;", + "Status": "active", + "EndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:GUVAFG34EECUOJ6QVZ56DAHT3U", + "SslMode": "none", + "ServiceAccessRoleArn": "arn:aws:iam::123456789012:role/my-s3-access-role", + "S3Settings": { + "ServiceAccessRoleArn": "arn:aws:iam::123456789012:role/my-s3-access-role", + "CsvRowDelimiter": "\\n", + "CsvDelimiter": ",", + "BucketFolder": "sourcedata", + "BucketName": "my-corp-data", + "CompressionType": "NONE", + "EnableStatistics": true + } + } + } + +For more information, see `Working with AWS DMS Endpoints `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/create-event-subscription.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/create-event-subscription.rst new file mode 100644 index 000000000..6cc100e83 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/create-event-subscription.rst @@ -0,0 +1,22 @@ +**To list event subscriptions** + +The following ``create-event-subscription`` example creates an event subscription to an Amazon SNS topic (my-sns-topic). :: + + aws dms create-event-subscription \ + --subscription-name my-dms-events \ + --sns-topic-arn arn:aws:sns:us-east-1:123456789012:my-sns-topic + +Output:: + + { + "EventSubscription": { + "CustomerAwsId": "123456789012", + "CustSubscriptionId": "my-dms-events", + "SnsTopicArn": "arn:aws:sns:us-east-1:123456789012:my-sns-topic", + "Status": "creating", + "SubscriptionCreationTime": "2020-05-21 21:58:38.598", + "Enabled": true + } + } + +For more information, see `Working with Events and Notifications `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/create-replication-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/create-replication-instance.rst new file mode 100644 index 000000000..3617e0a0e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/create-replication-instance.rst @@ -0,0 +1,85 @@ +**To create a replication instance** + +The following ``create-replication-instance`` example creates a replication instance. :: + + aws dms create-replication-instance \ + --replication-instance-identifier my-repl-instance \ + --replication-instance-class dms.t2.micro \ + --allocated-storage 5 + +Output:: + + { + "ReplicationInstance": { + "ReplicationInstanceIdentifier": "my-repl-instance", + "ReplicationInstanceClass": "dms.t2.micro", + "ReplicationInstanceStatus": "creating", + "AllocatedStorage": 5, + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-f839b688", + "Status": "active" + } + ], + "ReplicationSubnetGroup": { + "ReplicationSubnetGroupIdentifier": "default", + "ReplicationSubnetGroupDescription": "default", + "VpcId": "vpc-136a4c6a", + "SubnetGroupStatus": "Complete", + "Subnets": [ + { + "SubnetIdentifier": "subnet-da327bf6", + "SubnetAvailabilityZone": { + "Name": "us-east-1a" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-42599426", + "SubnetAvailabilityZone": { + "Name": "us-east-1d" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-bac383e0", + "SubnetAvailabilityZone": { + "Name": "us-east-1c" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-6746046b", + "SubnetAvailabilityZone": { + "Name": "us-east-1f" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-d7c825e8", + "SubnetAvailabilityZone": { + "Name": "us-east-1e" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-cbfff283", + "SubnetAvailabilityZone": { + "Name": "us-east-1b" + }, + "SubnetStatus": "Active" + } + ] + }, + "PreferredMaintenanceWindow": "sat:12:35-sat:13:05", + "PendingModifiedValues": {}, + "MultiAZ": false, + "EngineVersion": "3.3.2", + "AutoMinorVersionUpgrade": true, + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/f7bc0f8e-1a3a-4ace-9faa-e8494fa3921a", + "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:ZK2VQBUWFDBAWHIXHAYG5G2PKY", + "PubliclyAccessible": true + } + } + +For more information, see `Working with an AWS DMS Replication Instance `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/create-replication-subnet-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/create-replication-subnet-group.rst new file mode 100644 index 000000000..9c3d895ff --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/create-replication-subnet-group.rst @@ -0,0 +1,44 @@ +**To create a subnet group** + +The following ``create-replication-subnet-group`` example creates a group consisting of 3 subnets. :: + + aws dms create-replication-subnet-group \ + --replication-subnet-group-identifier my-subnet-group \ + --replication-subnet-group-description "my subnet group" \ + --subnet-ids subnet-da327bf6 subnet-bac383e0 subnet-d7c825e8 + +Output:: + + { + "ReplicationSubnetGroup": { + "ReplicationSubnetGroupIdentifier": "my-subnet-group", + "ReplicationSubnetGroupDescription": "my subnet group", + "VpcId": "vpc-136a4c6a", + "SubnetGroupStatus": "Complete", + "Subnets": [ + { + "SubnetIdentifier": "subnet-da327bf6", + "SubnetAvailabilityZone": { + "Name": "us-east-1a" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-bac383e0", + "SubnetAvailabilityZone": { + "Name": "us-east-1c" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-d7c825e8", + "SubnetAvailabilityZone": { + "Name": "us-east-1e" + }, + "SubnetStatus": "Active" + } + ] + } + } + +For more information, see `Setting Up a Network for a Replication Instance `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/create-replication-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/create-replication-task.rst new file mode 100644 index 000000000..9428c4fb0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/create-replication-task.rst @@ -0,0 +1,48 @@ +**To create a replication task** + +The following ``create-replication-task`` example creates a replication task. :: + + aws dms create-replication-task \ + --replication-task-identifier movedata \ + --source-endpoint-arn arn:aws:dms:us-east-1:123456789012:endpoint:6GGI6YPWWGAYUVLKIB732KEVWA \ + --target-endpoint-arn arn:aws:dms:us-east-1:123456789012:endpoint:EOM4SFKCZEYHZBFGAGZT3QEC5U \ + --replication-instance-arn $RI_ARN \ + --migration-type full-load \ + --table-mappings file://table-mappings.json + +Contents of ``table-mappings.json``:: + + { + "rules": [ + { + "rule-type": "selection", + "rule-id": "1", + "rule-name": "1", + "object-locator": { + "schema-name": "prodrep", + "table-name": "%" + }, + "rule-action": "include", + "filters": [] + } + ] + } + +Output:: + + { + "ReplicationTask": { + "ReplicationTaskIdentifier": "moveit2", + "SourceEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:6GGI6YPWWGAYUVLKIB732KEVWA", + "TargetEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:EOM4SFKCZEYHZBFGAGZT3QEC5U", + "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE", + "MigrationType": "full-load", + "TableMappings": ...output omitted... , + "ReplicationTaskSettings": ...output omitted... , + "Status": "creating", + "ReplicationTaskCreationDate": 1590524772.505, + "ReplicationTaskArn": "arn:aws:dms:us-east-1:123456789012:task:K55IUCGBASJS5VHZJIINA45FII" + } + } + +For more information, see `Working with AWS DMS Tasks `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/delete-connection.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/delete-connection.rst new file mode 100644 index 000000000..6c564a27d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/delete-connection.rst @@ -0,0 +1,21 @@ +**To delete a connection** + +The following ``delete-connection`` example disassociates an endpoint from a replication instance. :: + + aws dms delete-connection \ + --endpoint-arn arn:aws:dms:us-east-1:123456789012:endpoint:6GGI6YPWWGAYUVLKIB732KEVWA \ + --replication-instance-arn arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE + +Output:: + + { + "Connection": { + "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE", + "EndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:6GGI6YPWWGAYUVLKIB732KEVWA", + "Status": "deleting", + "EndpointIdentifier": "src-database-1", + "ReplicationInstanceIdentifier": "my-repl-instance" + } + } + +For more information, see `https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/delete-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/delete-endpoint.rst new file mode 100644 index 000000000..73ef0e5a9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/delete-endpoint.rst @@ -0,0 +1,33 @@ +**To delete an endpoint** + +The following ``delete-endpoint`` example deletes an endpoint. :: + + aws dms delete-endpoint \ + --endpoint-arn arn:aws:dms:us-east-1:123456789012:endpoint:OUJJVXO4XZ4CYTSEG5XGMN2R3Y + +Output:: + + { + "Endpoint": { + "EndpointIdentifier": "src-endpoint", + "EndpointType": "SOURCE", + "EngineName": "s3", + "EngineDisplayName": "Amazon S3", + "ExtraConnectionAttributes": "bucketFolder=sourcedata;bucketName=my-corp-data;compressionType=NONE;csvDelimiter=,;csvRowDelimiter=\\n;", + "Status": "deleting", + "EndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:OUJJVXO4XZ4CYTSEG5XGMN2R3Y", + "SslMode": "none", + "ServiceAccessRoleArn": "arn:aws:iam::123456789012:role/my-s3-access-role", + "S3Settings": { + "ServiceAccessRoleArn": "arn:aws:iam::123456789012:role/my-s3-access-role", + "CsvRowDelimiter": "\\n", + "CsvDelimiter": ",", + "BucketFolder": "sourcedata", + "BucketName": "my-corp-data", + "CompressionType": "NONE", + "EnableStatistics": true + } + } + } + +For more information, see `Working with AWS DMS Endpoints `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/delete-event-subscription.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/delete-event-subscription.rst new file mode 100644 index 000000000..ae0de7609 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/delete-event-subscription.rst @@ -0,0 +1,21 @@ +**To delete an event subscription** + +The following ``delete-event-subscription`` example deletes a subscription to an Amazon SNS topic. :: + + aws dms delete-event-subscription \ + --subscription-name "my-dms-events" + +Output:: + + { + "EventSubscription": { + "CustomerAwsId": "123456789012", + "CustSubscriptionId": "my-dms-events", + "SnsTopicArn": "arn:aws:sns:us-east-1:123456789012:my-sns-topic", + "Status": "deleting", + "SubscriptionCreationTime": "2020-05-21 21:58:38.598", + "Enabled": true + } + } + +For more information, see `Working with Events and Notifications `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/delete-replication-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/delete-replication-instance.rst new file mode 100644 index 000000000..ca105403e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/delete-replication-instance.rst @@ -0,0 +1,96 @@ +**To delete a replication instance** + +The following ``delete-replication-instance`` example deletes a replication instance. :: + + aws dms delete-replication-instance \ + --replication-instance-arn arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE + +Output:: + + { + "ReplicationInstance": { + "ReplicationInstanceIdentifier": "my-repl-instance", + "ReplicationInstanceClass": "dms.t2.micro", + "ReplicationInstanceStatus": "deleting", + "AllocatedStorage": 5, + "InstanceCreateTime": 1590011235.952, + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-f839b688", + "Status": "active" + } + ], + "AvailabilityZone": "us-east-1e", + "ReplicationSubnetGroup": { + "ReplicationSubnetGroupIdentifier": "default", + "ReplicationSubnetGroupDescription": "default", + "VpcId": "vpc-136a4c6a", + "SubnetGroupStatus": "Complete", + "Subnets": [ + { + "SubnetIdentifier": "subnet-da327bf6", + "SubnetAvailabilityZone": { + "Name": "us-east-1a" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-42599426", + "SubnetAvailabilityZone": { + "Name": "us-east-1d" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-bac383e0", + "SubnetAvailabilityZone": { + "Name": "us-east-1c" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-6746046b", + "SubnetAvailabilityZone": { + "Name": "us-east-1f" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-d7c825e8", + "SubnetAvailabilityZone": { + "Name": "us-east-1e" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-cbfff283", + "SubnetAvailabilityZone": { + "Name": "us-east-1b" + }, + "SubnetStatus": "Active" + } + ] + }, + "PreferredMaintenanceWindow": "wed:11:42-wed:12:12", + "PendingModifiedValues": {}, + "MultiAZ": true, + "EngineVersion": "3.3.2", + "AutoMinorVersionUpgrade": true, + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/f7bc0f8e-1a3a-4ace-9faa-e8494fa3921a", + "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE", + "ReplicationInstancePublicIpAddress": "54.225.120.92", + "ReplicationInstancePrivateIpAddress": "172.31.30.121", + "ReplicationInstancePublicIpAddresses": [ + "54.225.120.92", + "3.230.18.248" + ], + "ReplicationInstancePrivateIpAddresses": [ + "172.31.30.121", + "172.31.75.90" + ], + "PubliclyAccessible": true, + "SecondaryAvailabilityZone": "us-east-1b" + } + } + +For more information, see `Working with an AWS DMS Replication Instance `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/delete-replication-subnet-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/delete-replication-subnet-group.rst new file mode 100644 index 000000000..c51056197 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/delete-replication-subnet-group.rst @@ -0,0 +1,12 @@ +**To delete a subnet group** + +The following ``delete-replication-subnet-group`` example deletes a subnet group. :: + + aws dms delete-replication-subnet-group \ + --replication-subnet-group-identifier my-subnet-group + +Output:: + + (none) + +For more information, see `Setting Up a Network for a Replication Instance `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/delete-replication-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/delete-replication-task.rst new file mode 100644 index 000000000..fa92eedd9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/delete-replication-task.rst @@ -0,0 +1,27 @@ +**To delete a replication task** + +The following ``delete-replication-task`` example deletes a replication task. :: + + aws dms delete-replication-task \ + --replication-task-arn arn:aws:dms:us-east-1:123456789012:task:K55IUCGBASJS5VHZJIINA45FII + +Output:: + + { + "ReplicationTask": { + "ReplicationTaskIdentifier": "moveit2", + "SourceEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:6GGI6YPWWGAYUVLKIB732KEVWA", + "TargetEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:EOM4SFKCZEYHZBFGAGZT3QEC5U", + "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE", + "MigrationType": "full-load", + "TableMappings": ...output omitted..., + "ReplicationTaskSettings": ...output omitted..., + "Status": "deleting", + "StopReason": "Stop Reason FULL_LOAD_ONLY_FINISHED", + "ReplicationTaskCreationDate": 1590524772.505, + "ReplicationTaskStartDate": 1590789988.677, + "ReplicationTaskArn": "arn:aws:dms:us-east-1:123456789012:task:K55IUCGBASJS5VHZJIINA45FII" + } + } + +For more information, see `Working with AWS DMS Tasks `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-account-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-account-attributes.rst new file mode 100644 index 000000000..516b33e05 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-account-attributes.rst @@ -0,0 +1,26 @@ +**To describe account attributes** + +The following ``describe-account-attributes`` example lists the attributes for your AWS account. :: + + aws dms describe-account-attributes + +Output:: + + { + "AccountQuotas": [ + { + "AccountQuotaName": "ReplicationInstances", + "Used": 1, + "Max": 20 + }, + { + "AccountQuotaName": "AllocatedStorage", + "Used": 5, + "Max": 10000 + }, + + ...remaining output omitted... + + ], + "UniqueAccountIdentifier": "cqahfbfy5xee" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-certificates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-certificates.rst new file mode 100644 index 000000000..e9f0831ea --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-certificates.rst @@ -0,0 +1,22 @@ +**To list the available certificates** + +The following ``describe-certificates`` example lists the available certificates in your AWS account. :: + + aws dms describe-certificates + +Output:: + + { + "Certificates": [ + { + "CertificateIdentifier": "my-cert", + "CertificateCreationDate": 1543259542.506, + "CertificatePem": "-----BEGIN CERTIFICATE-----\nMIID9DCCAtygAwIBAgIBQjANBgkqhkiG9w0BAQ ...U" + + ... remaining output omittted ... + + } + ] + } + +For more information, see `Using SSL `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-connections.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-connections.rst new file mode 100644 index 000000000..e1a0d042a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-connections.rst @@ -0,0 +1,21 @@ +**To describe connections** + +The following ``describe-connections`` example lists the connections that you have tested between a replication instance and an endpoint. :: + + aws dms describe-connections + +Output:: + + { + "Connections": [ + { + "Status": "successful", + "ReplicationInstanceIdentifier": "test", + "EndpointArn": "arn:aws:dms:us-east-arn:aws:dms:us-east-1:123456789012:endpoint:ZW5UAN6P4E77EC7YWHK4RZZ3BE", + "EndpointIdentifier": "testsrc1", + "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:6UTDJGBOUS3VI3SUWA66XFJCJQ" + } + ] + } + +For more information, see `Creating Source and Target Endpoints `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-endpoint-types.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-endpoint-types.rst new file mode 100644 index 000000000..95671358f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-endpoint-types.rst @@ -0,0 +1,27 @@ +**To list the available endpoint types** + +The following ``describe-endpoint-types`` example lists the MySQL endpoint types that are available. :: + + aws dms describe-endpoint-types \ + --filters "Name=engine-name,Values=mysql" + +Output:: + + { + "SupportedEndpointTypes": [ + { + "EngineName": "mysql", + "SupportsCDC": true, + "EndpointType": "source", + "EngineDisplayName": "MySQL" + }, + { + "EngineName": "mysql", + "SupportsCDC": true, + "EndpointType": "target", + "EngineDisplayName": "MySQL" + } + ] + } + +For more information, see `Working with AWS DMS Endpoints` `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-endpoints.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-endpoints.rst new file mode 100644 index 000000000..bf657d18f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-endpoints.rst @@ -0,0 +1,38 @@ +**To describe endpoints** + +The following ``describe-endpoints`` example lists the endpoints in your AWS account. :: + + aws dms describe-endpoints + +Output:: + + { + "Endpoints": [ + { + "Username": "dms", + "Status": "active", + "EndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:SF2WOFLWYWKVEOHID2EKLP3SJI", + "ServerName": "ec2-52-32-48-61.us-west-2.compute.amazonaws.com", + "EndpointType": "SOURCE", + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/94d5c4e7-4e4c-44be-b58a-c8da7adf57cd", + "DatabaseName": "test", + "EngineName": "mysql", + "EndpointIdentifier": "pri100", + "Port": 8193 + }, + { + "Username": "admin", + "Status": "active", + "EndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:TJJZCIH3CJ24TJRU4VC32WEWFR", + "ServerName": "test.example.com", + "EndpointType": "SOURCE", + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/2431021b-1cf2-a2d4-77b2-59a9e4bce323", + "DatabaseName": "EMPL", + "EngineName": "oracle", + "EndpointIdentifier": "test", + "Port": 1521 + } + ] + } + +For more information, see `Working with AWS DMS Endpoints `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-event-categories.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-event-categories.rst new file mode 100644 index 000000000..ede7720f1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-event-categories.rst @@ -0,0 +1,36 @@ +**To describe event categories** + +The following ``describe-event-categories`` example lists the available event categories. :: + + aws dms describe-event-categories + +Output:: + + { + "EventCategoryGroupList": [ + { + "SourceType": "replication-instance", + "EventCategories": [ + "low storage", + "configuration change", + "maintenance", + "deletion", + "creation", + "failover", + "failure" + ] + }, + { + "SourceType": "replication-task", + "EventCategories": [ + "configuration change", + "state change", + "deletion", + "creation", + "failure" + ] + } + ] + } + +For more information, see `Working with Events and Notifications `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-event-subscriptions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-event-subscriptions.rst new file mode 100644 index 000000000..ea4d215c5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-event-subscriptions.rst @@ -0,0 +1,22 @@ +**To describe event subscriptions** + +The following ``describe-event-subscriptions`` example lists the event subscriptions to an Amazon SNS topic. :: + + aws dms describe-event-subscriptions + +Output:: + + { + "EventSubscriptionsList": [ + { + "CustomerAwsId": "123456789012", + "CustSubscriptionId": "my-dms-events", + "SnsTopicArn": "arn:aws:sns:us-east-1:123456789012:my-sns-topic", + "Status": "deleting", + "SubscriptionCreationTime": "2020-05-21 22:28:51.924", + "Enabled": true + } + ] + } + +For more information, see `Working with Events and Notifications `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-events.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-events.rst new file mode 100644 index 000000000..73fd07274 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-events.rst @@ -0,0 +1,22 @@ +**To list DMS events** + +The following ``describe-events`` example lists the events that originated from a replication instance. :: + + aws dms describe-events \ + --source-type "replication-instance" + +Output:: + + { + "Events": [ + { + "SourceIdentifier": "my-repl-instance", + "SourceType": "replication-instance", + "Message": "Replication application shutdown", + "EventCategories": [], + "Date": 1590771645.776 + } + ] + } + +For more information, see `Working with Events and Notifications `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-orderable-replication-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-orderable-replication-instances.rst new file mode 100644 index 000000000..0e35625aa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-orderable-replication-instances.rst @@ -0,0 +1,50 @@ +**To describe orderable replication instances** + +The following ``describe-orderable-replication-instances`` example lists replication instance types that you can order. :: + + aws dms describe-orderable-replication-instances + +Output:: + + { + "OrderableReplicationInstances": [ + { + "EngineVersion": "3.3.2", + "ReplicationInstanceClass": "dms.c4.2xlarge", + "StorageType": "gp2", + "MinAllocatedStorage": 5, + "MaxAllocatedStorage": 6144, + "DefaultAllocatedStorage": 100, + "IncludedAllocatedStorage": 100, + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1c", + "us-east-1d", + "us-east-1e", + "us-east-1f" + ] + }, + { + "EngineVersion": "3.3.2", + "ReplicationInstanceClass": "dms.c4.4xlarge", + "StorageType": "gp2", + "MinAllocatedStorage": 5, + "MaxAllocatedStorage": 6144, + "DefaultAllocatedStorage": 100, + "IncludedAllocatedStorage": 100, + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1c", + "us-east-1d", + "us-east-1e", + "us-east-1f" + ] + }, + + ...remaining output omitted... + + } + +For more information, see `Working with an AWS DMS Replication Instance `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-refresh-schemas-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-refresh-schemas-status.rst new file mode 100644 index 000000000..cb0c9be5a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-refresh-schemas-status.rst @@ -0,0 +1,18 @@ +**To list the refresh status for an endpoint** + +The following ``describe-refresh-schemas-status`` example returns the status of a previous refresh request. :: + + aws dms describe-refresh-schemas-status \ + --endpoint-arn arn:aws:dms:us-east-1:123456789012:endpoint:6GGI6YPWWGAYUVLKIB732KEVWA + + +Output:: + + { + "RefreshSchemasStatus": { + "EndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:6GGI6YPWWGAYUVLKIB732KEVWA", + "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE", + "Status": "successful", + "LastRefreshDate": 1590786544.605 + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-replication-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-replication-instances.rst new file mode 100644 index 000000000..2b04ed289 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-replication-instances.rst @@ -0,0 +1,97 @@ +**To describe replication instances** + +The following ``describe-replication-instances`` example lists the replication instances in your AWS account. :: + + aws dms describe-replication-instances + +Output:: + + { + "ReplicationInstances": [ + { + "ReplicationInstanceIdentifier": "my-repl-instance", + "ReplicationInstanceClass": "dms.t2.micro", + "ReplicationInstanceStatus": "available", + "AllocatedStorage": 5, + "InstanceCreateTime": 1590011235.952, + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-f839b688", + "Status": "active" + } + ], + "AvailabilityZone": "us-east-1e", + "ReplicationSubnetGroup": { + "ReplicationSubnetGroupIdentifier": "default", + "ReplicationSubnetGroupDescription": "default", + "VpcId": "vpc-136a4c6a", + "SubnetGroupStatus": "Complete", + "Subnets": [ + { + "SubnetIdentifier": "subnet-da327bf6", + "SubnetAvailabilityZone": { + "Name": "us-east-1a" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-42599426", + "SubnetAvailabilityZone": { + "Name": "us-east-1d" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-bac383e0", + "SubnetAvailabilityZone": { + "Name": "us-east-1c" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-6746046b", + "SubnetAvailabilityZone": { + "Name": "us-east-1f" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-d7c825e8", + "SubnetAvailabilityZone": { + "Name": "us-east-1e" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-cbfff283", + "SubnetAvailabilityZone": { + "Name": "us-east-1b" + }, + "SubnetStatus": "Active" + } + ] + }, + "PreferredMaintenanceWindow": "wed:11:42-wed:12:12", + "PendingModifiedValues": { + "MultiAZ": true + }, + "MultiAZ": false, + "EngineVersion": "3.3.2", + "AutoMinorVersionUpgrade": true, + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/f7bc0f8e-1a3a-4ace-9faa-e8494fa3921a", + "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE", + "ReplicationInstancePublicIpAddress": "3.230.18.248", + "ReplicationInstancePrivateIpAddress": "172.31.75.90", + "ReplicationInstancePublicIpAddresses": [ + "3.230.18.248" + ], + "ReplicationInstancePrivateIpAddresses": [ + "172.31.75.90" + ], + "PubliclyAccessible": true, + "FreeUntil": 1590194829.267 + } + ] + } + +For more information, see `Working with an AWS DMS Replication Instance `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-replication-subnet-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-replication-subnet-groups.rst new file mode 100644 index 000000000..afc544e2f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-replication-subnet-groups.rst @@ -0,0 +1,44 @@ +**To display the available subnet groups** + +The following ``describe-replication-subnet-groups`` example lists the available subnet groups. :: + + aws dms describe-replication-subnet-groups \ + --filter "Name=replication-subnet-group-id,Values=my-subnet-group" + +Output:: + + { + "ReplicationSubnetGroups": [ + { + "ReplicationSubnetGroupIdentifier": "my-subnet-group", + "ReplicationSubnetGroupDescription": "my subnet group", + "VpcId": "vpc-136a4c6a", + "SubnetGroupStatus": "Complete", + "Subnets": [ + { + "SubnetIdentifier": "subnet-da327bf6", + "SubnetAvailabilityZone": { + "Name": "us-east-1a" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-bac383e0", + "SubnetAvailabilityZone": { + "Name": "us-east-1c" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-d7c825e8", + "SubnetAvailabilityZone": { + "Name": "us-east-1e" + }, + "SubnetStatus": "Active" + } + ] + } + ] + } + +For more information, see `Setting Up a Network for a Replication Instance `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-replication-task-assessment-results.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-replication-task-assessment-results.rst new file mode 100644 index 000000000..7b0b0f53a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-replication-task-assessment-results.rst @@ -0,0 +1,22 @@ +**To list the results of replication task assessmentss** + +The following ``describe-replication-task-assessment-results`` example lists the results of a prior task assesssment. :: + + aws dms describe-replication-task-assessment-results + +Output:: + + { + "ReplicationTaskAssessmentResults": [ + { + "ReplicationTaskIdentifier": "moveit2", + "ReplicationTaskArn": "arn:aws:dms:us-east-1:123456789012:task:K55IUCGBASJS5VHZJIINA45FII", + "ReplicationTaskLastAssessmentDate": 1590790230.0, + "AssessmentStatus": "No issues found", + "AssessmentResultsFile": "moveit2/2020-05-29-22-10" + } + ] + } + + +For more information, see `Creating a Task Assessment Report `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-replication-tasks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-replication-tasks.rst new file mode 100644 index 000000000..c4df6d296 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-replication-tasks.rst @@ -0,0 +1,39 @@ +**To describe a replication task** + +The following ``describe-replication-tasks`` example describes current replication tasks. :: + + aws dms describe-replication-tasks + +Output:: + + { + "ReplicationTasks": [ + { + "ReplicationTaskIdentifier": "moveit2", + "SourceEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:6GGI6YPWWGAYUVLKIB732KEVWA", + "TargetEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:EOM4SFKCZEYHZBFGAGZT3QEC5U", + "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE", + "MigrationType": "full-load", + "TableMappings": ...output omitted... , + "ReplicationTaskSettings": ...output omitted... , + "Status": "stopped", + "StopReason": "Stop Reason FULL_LOAD_ONLY_FINISHED", + "ReplicationTaskCreationDate": 1590524772.505, + "ReplicationTaskStartDate": 1590619805.212, + "ReplicationTaskArn": "arn:aws:dms:us-east-1:123456789012:task:K55IUCGBASJS5VHZJIINA45FII", + "ReplicationTaskStats": { + "FullLoadProgressPercent": 100, + "ElapsedTimeMillis": 0, + "TablesLoaded": 0, + "TablesLoading": 0, + "TablesQueued": 0, + "TablesErrored": 0, + "FreshStartDate": 1590619811.528, + "StartDate": 1590619811.528, + "StopDate": 1590619842.068 + } + } + ] + } + +For more information, see `Working with AWS DMS Tasks `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-schemas.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-schemas.rst new file mode 100644 index 000000000..9949b3113 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/describe-schemas.rst @@ -0,0 +1,17 @@ +**To describe database schemas** + +The following ``describe-schemas`` example lists the available tables at an endpoint. :: + + aws dms describe-schemas \ + --endpoint-arn "arn:aws:dms:us-east-1:123456789012:endpoint:6GGI6YPWWGAYUVLKIB732KEVWA" + +Output:: + + { + "Schemas": [ + "prodrep" + ] + } + + +For more information, see `This is the topic title `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/list-tags-for-resource.rst new file mode 100644 index 000000000..640450ea9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/list-tags-for-resource.rst @@ -0,0 +1,24 @@ +**To list the tags for a resource** + +The following ``list-tags-for-resource`` example lists the tags for a replication instance. :: + + aws dms list-tags-for-resource \ + --resource-arn arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE + +Output:: + + { + "TagList": [ + { + "Key": "Project", + "Value": "dbMigration" + }, + { + "Key": "Environment", + "Value": "PROD" + } + ] + } + + +For more information, see `Tagging Resources `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/modify-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/modify-endpoint.rst new file mode 100644 index 000000000..eee445928 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/modify-endpoint.rst @@ -0,0 +1,35 @@ +**To modify an endpoint** + +The following ``modify-endpoint`` example adds an extra connection attribute to an endpoint. :: + + aws dms modify-endpoint \ + --endpoint-arn "arn:aws:dms:us-east-1:123456789012:endpoint:GUVAFG34EECUOJ6QVZ56DAHT3U" \ + --extra-connection-attributes "compressionType=GZIP" + +Output:: + + { + "Endpoint": { + "EndpointIdentifier": "src-endpoint", + "EndpointType": "SOURCE", + "EngineName": "s3", + "EngineDisplayName": "Amazon S3", + "ExtraConnectionAttributes": "compressionType=GZIP;csvDelimiter=,;csvRowDelimiter=\\n;", + "Status": "active", + "EndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:GUVAFG34EECUOJ6QVZ56DAHT3U", + "SslMode": "none", + "ServiceAccessRoleArn": "arn:aws:iam::123456789012:role/my-s3-access-role", + "S3Settings": { + "ServiceAccessRoleArn": "arn:aws:iam::123456789012:role/my-s3-access-role", + "CsvRowDelimiter": "\\n", + "CsvDelimiter": ",", + "BucketFolder": "", + "BucketName": "", + "CompressionType": "GZIP", + "EnableStatistics": true + } + } + } + +For more information, see `Working with AWS DMS Endpoints` `__ in the *AWS Database Migration Service User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/modify-event-subscription.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/modify-event-subscription.rst new file mode 100644 index 000000000..c0da1b155 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/modify-event-subscription.rst @@ -0,0 +1,23 @@ +**To modify an event subscription** + +The following ``modify-event-subscription`` example changes the source type of an event subscription. :: + + aws dms modify-event-subscription \ + --subscription-name "my-dms-events" \ + --source-type replication-task + +Output:: + + { + "EventSubscription": { + "CustomerAwsId": "123456789012", + "CustSubscriptionId": "my-dms-events", + "SnsTopicArn": "arn:aws:sns:us-east-1:123456789012:my-sns-topic", + "Status": "modifying", + "SubscriptionCreationTime": "2020-05-29 17:04:40.262", + "SourceType": "replication-task", + "Enabled": true + } + } + +For more information, see `Working with Events and Notifications `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/modify-replication-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/modify-replication-instance.rst new file mode 100644 index 000000000..f2be21d23 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/modify-replication-instance.rst @@ -0,0 +1,34 @@ +**To modify a replication instance** + +The following ``modify-replication-instance`` example modifies a replication instance so that it uses a Multi-AZ deployment. :: + + aws dms modify-replication-instance \ + --replication-instance-arn arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE \ + --multi-az + +Output:: + + { + "ReplicationInstance": { + "ReplicationInstanceIdentifier": "my-repl-instance", + "ReplicationInstanceClass": "dms.t2.micro", + "ReplicationInstanceStatus": "available", + "AllocatedStorage": 5, + "InstanceCreateTime": 1590011235.952, + + ...output omitted... + + "PendingModifiedValues": { + "MultiAZ": true + }, + "MultiAZ": false, + "EngineVersion": "3.3.2", + "AutoMinorVersionUpgrade": true, + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/f7bc0f8e-1a3a-4ace-9faa-e8494fa3921a", + + ...output omitted... + + } + } + +For more information, see `Working with an AWS DMS Replication Instance `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/modify-replication-subnet-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/modify-replication-subnet-group.rst new file mode 100644 index 000000000..4b910dcdf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/modify-replication-subnet-group.rst @@ -0,0 +1,36 @@ +**To modify a subnet group** + +The following ``modify-replication-subnet-group`` example changes the lists of subnets associated with a subnet group. :: + + aws dms modify-replication-subnet-group \ + --replication-subnet-group-identifier my-subnet-group \ + --subnet-id subnet-da327bf6 subnet-bac383e0 + +Output:: + + { + "ReplicationSubnetGroup": { + "ReplicationSubnetGroupIdentifier": "my-subnet-group", + "ReplicationSubnetGroupDescription": "my subnet group", + "VpcId": "vpc-136a4c6a", + "SubnetGroupStatus": "Complete", + "Subnets": [ + { + "SubnetIdentifier": "subnet-da327bf6", + "SubnetAvailabilityZone": { + "Name": "us-east-1a" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-bac383e0", + "SubnetAvailabilityZone": { + "Name": "us-east-1c" + }, + "SubnetStatus": "Active" + } + ] + } + } + +For more information, see `Setting Up a Network for a Replication Instance `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/modify-replication-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/modify-replication-task.rst new file mode 100644 index 000000000..d4d1962b3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/modify-replication-task.rst @@ -0,0 +1,47 @@ +**To modify a replication task** + +The following ``modify-replication-task`` example changes the table mappings for a task. :: + + aws dms modify-replication-task \ + --replication-task-arn "arn:aws:dms:us-east-1:123456789012:task:K55IUCGBASJS5VHZJIINA45FII" \ + --table-mappings file://table-mappings.json + + +Contents of ``table-mappings.json``:: + + { + "rules": [ + { + "rule-type": "selection", + "rule-id": "1", + "rule-name": "1", + "object-locator": { + "schema-name": "prodrep", + "table-name": "ACCT_%" + }, + "rule-action": "include", + "filters": [] + } + ] + } + +Output:: + + { + "ReplicationTask": { + "ReplicationTaskIdentifier": "moveit2", + "SourceEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:6GGI6YPWWGAYUVLKIB732KEVWA", + "TargetEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:EOM4SFKCZEYHZBFGAGZT3QEC5U", + "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE", + "MigrationType": "full-load", + "TableMappings": ...output omitted..., + "ReplicationTaskSettings": ...output omitted..., + "Status": "modifying", + "StopReason": "Stop Reason FULL_LOAD_ONLY_FINISHED", + "ReplicationTaskCreationDate": 1590524772.505, + "ReplicationTaskStartDate": 1590789424.653, + "ReplicationTaskArn": "arn:aws:dms:us-east-1:123456789012:task:K55IUCGBASJS5VHZJIINA45FII" + } + } + +For more information, see `Working with AWS DMS Tasks `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/reboot-replication-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/reboot-replication-instance.rst new file mode 100644 index 000000000..e076c6e24 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/reboot-replication-instance.rst @@ -0,0 +1,21 @@ +**To reboot a replication instance** + +The following ``reboot-replication-instance`` example reboots a replication instance. :: + + aws dms reboot-replication-instance \ + --replication-instance-arn arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE + +Output:: + + { + "ReplicationInstance": { + "ReplicationInstanceIdentifier": "my-repl-instance", + "ReplicationInstanceClass": "dms.t2.micro", + "ReplicationInstanceStatus": "rebooting", + "AllocatedStorage": 5, + "InstanceCreateTime": 1590011235.952, + ... output omitted ... + } + } + +For more information, see `Working with an AWS DMS Replication Instance `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/refresh-schemas.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/refresh-schemas.rst new file mode 100644 index 000000000..502adbd1c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/refresh-schemas.rst @@ -0,0 +1,18 @@ +**To refresh database schemas** + +The following ``refresh-schemas`` example requests that AWS DMS refresh the list of schemas at an endpoint. :: + + aws dms refresh-schemas \ + --replication-instance-arn arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE \ + --endpoint-arn "arn:aws:dms:us-east-1:123456789012:endpoint:6GGI6YPWWGAYUVLKIB732KEVWA" + +Output:: + + { + "RefreshSchemasStatus": { + "EndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:6GGI6YPWWGAYUVLKIB732KEVWA", + "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE", + "Status": "refreshing", + "LastRefreshDate": 1590019949.103 + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/reload-tables.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/reload-tables.rst new file mode 100644 index 000000000..d718be8a9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/reload-tables.rst @@ -0,0 +1,13 @@ +**To refresh the list of tables available at an endpoint** + +The following ``reload-tables`` example reloads the list of available tables at an endpoint. :: + + aws dms reload-tables \ + --replication-task-arn "arn:aws:dms:us-east-1:123456789012:task:K55IUCGBASJS5VHZJIINA45FII" \ + --tables-to-reload "SchemaName=prodrep,TableName=ACCT_BAL" + +Output:: + + { + "ReplicationTaskArn": "arn:aws:dms:us-east-1:123456789012:task:K55IUCGBASJS5VHZJIINA45FII" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/remove-tags-from-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/remove-tags-from-resource.rst new file mode 100644 index 000000000..796f344fc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/remove-tags-from-resource.rst @@ -0,0 +1,11 @@ +**To remove tags from a replication instance** + +The following ``remove-tags-from-resource`` example removes tags from a replication instance. :: + + aws dms remove-tags-from-resource \ + --resource-arn arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE \ + --tag-keys Environment Project + +This command produces no output. + +For more information, see `Tagging Resources `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/start-replication-task-assessment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/start-replication-task-assessment.rst new file mode 100644 index 000000000..40eb01060 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/start-replication-task-assessment.rst @@ -0,0 +1,28 @@ +**To start a task assessment** + +The following ``start-replication-task-assessment`` example starts a replication task assessment. :: + + aws dms start-replication-task-assessment \ + --replication-task-arn arn:aws:dms:us-east-1:123456789012:task:K55IUCGBASJS5VHZJIINA45FII + +Output:: + + { + "ReplicationTask": { + "ReplicationTaskIdentifier": "moveit2", + "SourceEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:6GGI6YPWWGAYUVLKIB732KEVWA", + "TargetEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:EOM4SFKCZEYHZBFGAGZT3QEC5U", + "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE", + "MigrationType": "full-load", + "TableMappings": ...output omitted..., + "ReplicationTaskSettings": ...output omitted..., + "Status": "testing", + "StopReason": "Stop Reason FULL_LOAD_ONLY_FINISHED", + "ReplicationTaskCreationDate": 1590524772.505, + "ReplicationTaskStartDate": 1590789988.677, + "ReplicationTaskArn": "arn:aws:dms:us-east-1:123456789012:task:K55IUCGBASJS5VHZJIINA45FII" + } + } + +For more information, see `Creating a Task Assessment Report `__ in the *AWS Database Migration Service User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/start-replication-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/start-replication-task.rst new file mode 100644 index 000000000..b70771070 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/start-replication-task.rst @@ -0,0 +1,27 @@ +**To start a replication task** + +The following ``command-name`` example lists the available widgets in your AWS account. :: + + aws dms start-replication-task \ + --replication-task-arn arn:aws:dms:us-east-1:123456789012:task:K55IUCGBASJS5VHZJIINA45FII \ + --start-replication-task-type reload-target + +Output:: + + { + "ReplicationTask": { + "ReplicationTaskIdentifier": "moveit2", + "SourceEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:6GGI6YPWWGAYUVLKIB732KEVWA", + "TargetEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:EOM4SFKCZEYHZBFGAGZT3QEC5U", + "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE", + "MigrationType": "full-load", + "TableMappings": ...output omitted... , + "ReplicationTaskSettings": ...output omitted... , + "Status": "starting", + "ReplicationTaskCreationDate": 1590524772.505, + "ReplicationTaskStartDate": 1590619805.212, + "ReplicationTaskArn": "arn:aws:dms:us-east-1:123456789012:task:K55IUCGBASJS5VHZJIINA45FII" + } + } + +For more information, see `Working with AWS DMS Tasks `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/stop-replication-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/stop-replication-task.rst new file mode 100644 index 000000000..f353a96cb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/stop-replication-task.rst @@ -0,0 +1,26 @@ +**To stop a task** + +The following ``stop-replication-task`` example stops a task. :: + + aws dms stop-replication-task \ + --replication-task-arn arn:aws:dms:us-east-1:123456789012:task:K55IUCGBASJS5VHZJIINA45FII + +Output:: + + { + "ReplicationTask": { + "ReplicationTaskIdentifier": "moveit2", + "SourceEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:6GGI6YPWWGAYUVLKIB732KEVWA", + "TargetEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:EOM4SFKCZEYHZBFGAGZT3QEC5U", + "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE", + "MigrationType": "full-load", + "TableMappings": ...output omitted..., + "ReplicationTaskSettings": ...output omitted..., + "Status": "stopping", + "ReplicationTaskCreationDate": 1590524772.505, + "ReplicationTaskStartDate": 1590789424.653, + "ReplicationTaskArn": "arn:aws:dms:us-east-1:123456789012:task:K55IUCGBASJS5VHZJIINA45FII" + } + } + +For more information, see `Working with AWS DMS Tasks `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/test-connection.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/test-connection.rst new file mode 100644 index 000000000..430dcd8a7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dms/test-connection.rst @@ -0,0 +1,21 @@ +**To test a connection to an endpoint** + +The following ``test-connection`` example tests whether an endpoint can be accessed from a replication instance. :: + + aws dms test-connection \ + --replication-instance-arn arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE \ + --endpoint-arn arn:aws:dms:us-east-1:123456789012:endpoint:6GGI6YPWWGAYUVLKIB732KEVWA + +Output:: + + { + "Connection": { + "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE", + "EndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:6GGI6YPWWGAYUVLKIB732KEVWA", + "Status": "testing", + "EndpointIdentifier": "src-database-1", + "ReplicationInstanceIdentifier": "my-repl-instance" + } + } + +For more information, see `Creating source and target endpoints `__ in the *AWS Database Migration Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/add-tags-to-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/add-tags-to-resource.rst new file mode 100644 index 000000000..8f3e785f5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/add-tags-to-resource.rst @@ -0,0 +1,11 @@ +**To add one or more tags to a specified resource** + +The following ``add-tags-to-resource`` example adds three tags to ``sample-cluster``. One tag (``CropB``) has a key name but no value. :: + + aws docdb add-tags-to-resource \ + --resource-name arn:aws:rds:us-west-2:123456789012:cluster:sample-cluster \ + --tags Key="CropA",Value="Apple" Key="CropB" Key="CropC",Value="Corn" + +This command produces no output. + +For more information, see `Tagging Amazon DocumentDB Resources `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/apply-pending-maintenance-action.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/apply-pending-maintenance-action.rst new file mode 100644 index 000000000..1f07f487e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/apply-pending-maintenance-action.rst @@ -0,0 +1,12 @@ +**To have pending maintenance actions take place during the next maintenance window** + +The following ``apply-pending-maintenance-action`` example causes all system-update actions to be performed during the next scheduled maintenance window. :: + + aws docdb apply-pending-maintenance-action \ + --resource-identifier arn:aws:rds:us-west-2:123456789012:cluster:sample-cluster \ + --apply-action system-update \ + --opt-in-type next-maintenance + +This command produces no output. + +For more information, see `Applying Amazon DocumentDB Updates `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/copy-db-cluster-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/copy-db-cluster-parameter-group.rst new file mode 100644 index 000000000..85ea78548 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/copy-db-cluster-parameter-group.rst @@ -0,0 +1,22 @@ +**To duplicate an existing DB cluster parameter group** + +The following ``copy-db-cluster-parameter-group`` example makes a copy of the parameter group ``custom-docdb3-6`` named ``custom-docdb3-6-copy``. When making the copy it adds tags to the new parameter group. :: + + aws docdb copy-db-cluster-parameter-group \ + --source-db-cluster-parameter-group-identifier custom-docdb3-6 \ + --target-db-cluster-parameter-group-identifier custom-docdb3-6-copy \ + --target-db-cluster-parameter-group-description "Copy of custom-docdb3-6" \ + --tags Key="CopyNumber",Value="1" Key="Modifiable",Value="Yes" + +Output:: + + { + "DBClusterParameterGroup": { + "DBParameterGroupFamily": "docdb3.6", + "DBClusterParameterGroupArn": "arn:aws:rds:us-east-1:12345678901:cluster-pg:custom-docdb3-6-copy", + "DBClusterParameterGroupName": "custom-docdb3-6-copy", + "Description": "Copy of custom-docdb3-6" + } + } + +For more information, see `Copying an Amazon DocumentDB Cluster Parameter Group `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/copy-db-cluster-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/copy-db-cluster-snapshot.rst new file mode 100644 index 000000000..09301cb63 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/copy-db-cluster-snapshot.rst @@ -0,0 +1,13 @@ +**To create a copy of a snapshot** + +The following ``copy-db-cluster-snapshot`` example makes a copy of ``sample-cluster-snapshot`` named ``sample-cluster-snapshot-copy``. The copy has all the tags of the original plus a new tag with the key name ``CopyNumber``. :: + + aws docdb copy-db-cluster-snapshot \ + --source-db-cluster-snapshot-identifier sample-cluster-snapshot \ + --target-db-cluster-snapshot-identifier sample-cluster-snapshot-copy \ + --copy-tags \ + --tags Key="CopyNumber",Value="1" + +This command produces no output. + +For more information, see `Copying a Cluster Snapshot `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/create-db-cluster-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/create-db-cluster-parameter-group.rst new file mode 100644 index 000000000..f45f8ab59 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/create-db-cluster-parameter-group.rst @@ -0,0 +1,21 @@ +**To create an Amazon DocumentDB cluster parameter group** + +The following ``create-db-cluster-parameter-group`` example creates the DB cluster parameter group ``sample-parameter-group`` using the ``docdb3.6`` family. :: + + aws docdb create-db-cluster-parameter-group \ + --db-cluster-parameter-group-name sample-parameter-group \ + --db-parameter-group-family docdb3.6 \ + --description "Sample parameter group based on docdb3.6" + +Output:: + + { + "DBClusterParameterGroup": { + "Description": "Sample parameter group based on docdb3.6", + "DBParameterGroupFamily": "docdb3.6", + "DBClusterParameterGroupArn": "arn:aws:rds:us-west-2:123456789012:cluster-pg:sample-parameter-group", + "DBClusterParameterGroupName": "sample-parameter-group" + } + } + +For more information, see `Creating an Amazon DocumentDB Cluster Parameter Group `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/create-db-cluster-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/create-db-cluster-snapshot.rst new file mode 100644 index 000000000..376622ae3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/create-db-cluster-snapshot.rst @@ -0,0 +1,38 @@ +**To create a manual Amazon DocumentDB cluster snapshot** + +The following ``create-db-cluster-snapshot`` example creates an Amazon DB cluster snapshot named sample-cluster-snapshot. :: + + aws docdb create-db-cluster-snapshot \ + --db-cluster-identifier sample-cluster \ + --db-cluster-snapshot-identifier sample-cluster-snapshot + +Output:: + + { + "DBClusterSnapshot": { + "MasterUsername": "master-user", + "SnapshotCreateTime": "2019-03-18T18:27:14.794Z", + "AvailabilityZones": [ + "us-west-2a", + "us-west-2b", + "us-west-2c", + "us-west-2d", + "us-west-2e", + "us-west-2f" + ], + "SnapshotType": "manual", + "DBClusterSnapshotArn": "arn:aws:rds:us-west-2:123456789012:cluster-snapshot:sample-cluster-snapshot", + "EngineVersion": "3.6.0", + "PercentProgress": 0, + "DBClusterSnapshotIdentifier": "sample-cluster-snapshot", + "Engine": "docdb", + "DBClusterIdentifier": "sample-cluster", + "Status": "creating", + "ClusterCreateTime": "2019-03-15T20:29:58.836Z", + "Port": 0, + "StorageEncrypted": false, + "VpcId": "vpc-91280df6" + } + } + +For more information, see `Creating a Manual Cluster Snapshot `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/create-db-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/create-db-cluster.rst new file mode 100644 index 000000000..842f48dbe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/create-db-cluster.rst @@ -0,0 +1,52 @@ +**To create an Amazon DocumentDB cluster** + +The following ``create-db-cluster`` example creates an Amazon DocumentDB cluster named ``sample-cluster`` with the preferred maintenance window on Sundays between 20:30 and 11:00. :: + + aws docdb create-db-cluster \ + --db-cluster-identifier sample-cluster \ + --engine docdb \ + --master-username master-user \ + --master-user-password password \ + --preferred-maintenance-window Sun:20:30-Sun:21:00 + +Output:: + + { + "DBCluster": { + "DBClusterParameterGroup": "default.docdb3.6", + "AssociatedRoles": [], + "DBSubnetGroup": "default", + "ClusterCreateTime": "2019-03-18T18:06:34.616Z", + "Status": "creating", + "Port": 27017, + "PreferredMaintenanceWindow": "sun:20:30-sun:21:00", + "HostedZoneId": "ZNKXH85TT8WVW", + "DBClusterMembers": [], + "Engine": "docdb", + "DBClusterIdentifier": "sample-cluster", + "PreferredBackupWindow": "10:12-10:42", + "AvailabilityZones": [ + "us-west-2d", + "us-west-2f", + "us-west-2e" + ], + "MasterUsername": "master-user", + "BackupRetentionPeriod": 1, + "ReaderEndpoint": "sample-cluster.cluster-ro-corcjozrlsfc.us-west-2.docdb.amazonaws.com", + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-77186e0d", + "Status": "active" + } + ], + "StorageEncrypted": false, + "DBClusterArn": "arn:aws:rds:us-west-2:123456789012:cluster:sample-cluster", + "DbClusterResourceId": "cluster-L3R4YRSBUYDP4GLMTJ2WF5GH5Q", + "MultiAZ": false, + "Endpoint": "sample-cluster.cluster-corcjozrlsfc.us-west-2.docdb.amazonaws.com", + "EngineVersion": "3.6.0" + } + } + + +For more information, see `Creating an Amazon DocumentDB Cluster `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/create-db-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/create-db-instance.rst new file mode 100644 index 000000000..f07d1839e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/create-db-instance.rst @@ -0,0 +1,81 @@ +**To create an Amazon DocumentDB cluster instance** + +The following ``create-db-instance`` example code creates the instance ``sample-cluster-instance-2`` in the Amazon DocumentDB cluster ``sample-cluster``. :: + + aws docdb create-db-instance \ + --db-cluster-identifier sample-cluster \ + --db-instance-class db.r4.xlarge \ + --db-instance-identifier sample-cluster-instance-2 \ + --engine docdb + +Output:: + + { + "DBInstance": { + "DBInstanceStatus": "creating", + "PendingModifiedValues": { + "PendingCloudwatchLogsExports": { + "LogTypesToEnable": [ + "audit" + ] + } + }, + "PubliclyAccessible": false, + "PreferredBackupWindow": "00:00-00:30", + "PromotionTier": 1, + "EngineVersion": "3.6.0", + "BackupRetentionPeriod": 3, + "DBInstanceIdentifier": "sample-cluster-instance-2", + "PreferredMaintenanceWindow": "tue:10:28-tue:10:58", + "StorageEncrypted": false, + "Engine": "docdb", + "DBClusterIdentifier": "sample-cluster", + "DBSubnetGroup": { + "Subnets": [ + { + "SubnetAvailabilityZone": { + "Name": "us-west-2a" + }, + "SubnetStatus": "Active", + "SubnetIdentifier": "subnet-4e26d263" + }, + { + "SubnetAvailabilityZone": { + "Name": "us-west-2c" + }, + "SubnetStatus": "Active", + "SubnetIdentifier": "subnet-afc329f4" + }, + { + "SubnetAvailabilityZone": { + "Name": "us-west-2d" + }, + "SubnetStatus": "Active", + "SubnetIdentifier": "subnet-53ab3636" + }, + { + "SubnetAvailabilityZone": { + "Name": "us-west-2b" + }, + "SubnetStatus": "Active", + "SubnetIdentifier": "subnet-991cb8d0" + } + ], + "DBSubnetGroupDescription": "default", + "SubnetGroupStatus": "Complete", + "VpcId": "vpc-91280df6", + "DBSubnetGroupName": "default" + }, + "DBInstanceClass": "db.r4.xlarge", + "VpcSecurityGroups": [ + { + "Status": "active", + "VpcSecurityGroupId": "sg-77186e0d" + } + ], + "DBInstanceArn": "arn:aws:rds:us-west-2:123456789012:db:sample-cluster-instance-2", + "DbiResourceId": "db-XEKJLEMGRV5ZKCARUVA4HO3ITE" + } + } + +For more information, see `Adding an Amazon DocumentDB Instance to a Cluster `__ in the *Amazon DocumentDB Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/create-db-subnet-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/create-db-subnet-group.rst new file mode 100644 index 000000000..82057f27c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/create-db-subnet-group.rst @@ -0,0 +1,46 @@ +**To create an Amazon DocumentDB subnet group** + +The following ``create-db-subnet-group`` example creates an Amazon DocumentDB subnet group named ``sample-subnet-group``. :: + + aws docdb create-db-subnet-group \ + --db-subnet-group-description "a sample subnet group" \ + --db-subnet-group-name sample-subnet-group \ + --subnet-ids "subnet-29ab1025" "subnet-991cb8d0" "subnet-53ab3636" + +Output:: + + { + "DBSubnetGroup": { + "SubnetGroupStatus": "Complete", + "DBSubnetGroupName": "sample-subnet-group", + "DBSubnetGroupDescription": "a sample subnet group", + "VpcId": "vpc-91280df6", + "DBSubnetGroupArn": "arn:aws:rds:us-west-2:123456789012:subgrp:sample-subnet-group", + "Subnets": [ + { + "SubnetStatus": "Active", + "SubnetIdentifier": "subnet-53ab3636", + "SubnetAvailabilityZone": { + "Name": "us-west-2d" + } + }, + { + "SubnetStatus": "Active", + "SubnetIdentifier": "subnet-991cb8d0", + "SubnetAvailabilityZone": { + "Name": "us-west-2b" + } + }, + { + "SubnetStatus": "Active", + "SubnetIdentifier": "subnet-29ab1025", + "SubnetAvailabilityZone": { + "Name": "us-west-2c" + } + } + ] + } + } + + +For more information, see `Creating an Amazon DocumentDB Subnet Group `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/delete-db-cluster-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/delete-db-cluster-parameter-group.rst new file mode 100644 index 000000000..63720ad19 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/delete-db-cluster-parameter-group.rst @@ -0,0 +1,10 @@ +**To delete an Amazon DocumentDB cluster parameter group** + +The following ``delete-db-cluster-parameter-group`` example deletes the Amazon DocumentDB parameter group ``sample-parameter-group``. :: + + aws docdb delete-db-cluster-parameter-group \ + --db-cluster-parameter-group-name sample-parameter-group + +This command produces no output. + +For more information, see `Deleting an Amazon DocumentDB Cluster Parameter Group `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/delete-db-cluster-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/delete-db-cluster-snapshot.rst new file mode 100644 index 000000000..e763bc0ee --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/delete-db-cluster-snapshot.rst @@ -0,0 +1,36 @@ +**To delete an Amazon DocumentDB cluster snapshot** + +The following ``delete-db-cluster-snapshot`` example deletes the Amazon DocumentDB cluster snapshot ``sample-cluster-snapshot``. :: + + aws docdb delete-db-cluster-snapshot \ + --db-cluster-snapshot-identifier sample-cluster-snapshot + +Output:: + + { + "DBClusterSnapshot": { + "DBClusterIdentifier": "sample-cluster", + "AvailabilityZones": [ + "us-west-2a", + "us-west-2b", + "us-west-2c", + "us-west-2d" + ], + "DBClusterSnapshotIdentifier": "sample-cluster-snapshot", + "VpcId": "vpc-91280df6", + "DBClusterSnapshotArn": "arn:aws:rds:us-west-2:123456789012:cluster-snapshot:sample-cluster-snapshot", + "EngineVersion": "3.6.0", + "Engine": "docdb", + "SnapshotCreateTime": "2019-03-18T18:27:14.794Z", + "Status": "available", + "MasterUsername": "master-user", + "ClusterCreateTime": "2019-03-15T20:29:58.836Z", + "PercentProgress": 100, + "StorageEncrypted": false, + "SnapshotType": "manual", + "Port": 0 + } + } + + +For more information, see `Deleting a Cluster Snapshot `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/delete-db-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/delete-db-cluster.rst new file mode 100644 index 000000000..cbec0a4be --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/delete-db-cluster.rst @@ -0,0 +1,51 @@ +**To delete an Amazon DocumentDB cluster** + +The following ``delete-db-cluster`` example deletes the Amazon DocumentDB cluster ``sample-cluster``. No backup of the cluster is made prior to deleting it. NOTE: You must delete all instances associated with the cluster before you can delete it. :: + + aws docdb delete-db-cluster \ + --db-cluster-identifier sample-cluster \ + --skip-final-snapshot + +Output:: + + { + "DBCluster": { + "DBClusterIdentifier": "sample-cluster", + "DBSubnetGroup": "default", + "EngineVersion": "3.6.0", + "Engine": "docdb", + "LatestRestorableTime": "2019-03-18T18:07:24.610Z", + "PreferredMaintenanceWindow": "sun:20:30-sun:21:00", + "StorageEncrypted": false, + "EarliestRestorableTime": "2019-03-18T18:07:24.610Z", + "Port": 27017, + "VpcSecurityGroups": [ + { + "Status": "active", + "VpcSecurityGroupId": "sg-77186e0d" + } + ], + "MultiAZ": false, + "MasterUsername": "master-user", + "DBClusterArn": "arn:aws:rds:us-west-2:123456789012:cluster:sample-cluster", + "Status": "available", + "PreferredBackupWindow": "10:12-10:42", + "ReaderEndpoint": "sample-cluster.cluster-ro-corcjozrlsfc.us-west-2.docdb.amazonaws.com", + "AvailabilityZones": [ + "us-west-2c", + "us-west-2b", + "us-west-2a" + ], + "Endpoint": "sample-cluster.cluster-corcjozrlsfc.us-west-2.docdb.amazonaws.com", + "DbClusterResourceId": "cluster-L3R4YRSBUYDP4GLMTJ2WF5GH5Q", + "ClusterCreateTime": "2019-03-18T18:06:34.616Z", + "AssociatedRoles": [], + "DBClusterParameterGroup": "default.docdb3.6", + "HostedZoneId": "ZNKXH85TT8WVW", + "BackupRetentionPeriod": 1, + "DBClusterMembers": [] + } + } + + +For more information, see `Deleting an Amazon DocumentDB Cluster `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/delete-db-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/delete-db-instance.rst new file mode 100644 index 000000000..863fa427e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/delete-db-instance.rst @@ -0,0 +1,83 @@ +**To delete an Amazon DocumentDB instance** + +The following ``delete-db-instance`` example deletes the Amazon DocumentDB instance ``sample-cluster-instance-2``. :: + + aws docdb delete-db-instance \ + --db-instance-identifier sample-cluster-instance-2 + +Output:: + + { + "DBInstance": { + "DBSubnetGroup": { + "Subnets": [ + { + "SubnetAvailabilityZone": { + "Name": "us-west-2a" + }, + "SubnetStatus": "Active", + "SubnetIdentifier": "subnet-4e26d263" + }, + { + "SubnetAvailabilityZone": { + "Name": "us-west-2c" + }, + "SubnetStatus": "Active", + "SubnetIdentifier": "subnet-afc329f4" + }, + { + "SubnetAvailabilityZone": { + "Name": "us-west-2d" + }, + "SubnetStatus": "Active", + "SubnetIdentifier": "subnet-53ab3636" + }, + { + "SubnetAvailabilityZone": { + "Name": "us-west-2b" + }, + "SubnetStatus": "Active", + "SubnetIdentifier": "subnet-991cb8d0" + } + ], + "DBSubnetGroupName": "default", + "DBSubnetGroupDescription": "default", + "VpcId": "vpc-91280df6", + "SubnetGroupStatus": "Complete" + }, + "PreferredBackupWindow": "00:00-00:30", + "InstanceCreateTime": "2019-03-18T18:37:33.709Z", + "DBInstanceClass": "db.r4.xlarge", + "DbiResourceId": "db-XEKJLEMGRV5ZKCARUVA4HO3ITE", + "BackupRetentionPeriod": 3, + "Engine": "docdb", + "VpcSecurityGroups": [ + { + "Status": "active", + "VpcSecurityGroupId": "sg-77186e0d" + } + ], + "AutoMinorVersionUpgrade": true, + "PromotionTier": 1, + "EngineVersion": "3.6.0", + "Endpoint": { + "Address": "sample-cluster-instance-2.corcjozrlsfc.us-west-2.docdb.amazonaws.com", + "HostedZoneId": "ZNKXH85TT8WVW", + "Port": 27017 + }, + "DBInstanceIdentifier": "sample-cluster-instance-2", + "PreferredMaintenanceWindow": "tue:10:28-tue:10:58", + "EnabledCloudwatchLogsExports": [ + "audit" + ], + "PendingModifiedValues": {}, + "DBInstanceStatus": "deleting", + "PubliclyAccessible": false, + "DBInstanceArn": "arn:aws:rds:us-west-2:123456789012:db:sample-cluster-instance-2", + "DBClusterIdentifier": "sample-cluster", + "AvailabilityZone": "us-west-2c", + "StorageEncrypted": false + } + } + +For more information, see `Deleting an Amazon DocumentDB Instance `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/delete-db-subnet-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/delete-db-subnet-group.rst new file mode 100644 index 000000000..fbd5056c0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/delete-db-subnet-group.rst @@ -0,0 +1,10 @@ +**To delete an Amazon DocumentDB subnet group** + +The following ``delete-db-subnet-group`` example deletes the Amazon DocumentDB subnet group ``sample-subnet-group``. :: + + aws docdb delete-db-subnet-group \ + --db-subnet-group-name sample-subnet-group + +This command produces no output. + +For more information, see `Deleting an Amazon DocumentDB Subnet Group `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-cluster-parameter-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-cluster-parameter-groups.rst new file mode 100644 index 000000000..d91a111a0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-cluster-parameter-groups.rst @@ -0,0 +1,21 @@ +**To see the details of one or more Amazon DocumentDB cluster parameter groups** + +The following ``describe-db-cluster-parameter-groups`` example displays details for the Amazon DocumentDB cluster parameter group ``custom3-6-param-grp``. :: + + aws docdb describe-db-cluster-parameter-groups \ + --db-cluster-parameter-group-name custom3-6-param-grp + +Output:: + + { + "DBClusterParameterGroups": [ + { + "DBParameterGroupFamily": "docdb3.6", + "DBClusterParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:cluster-pg:custom3-6-param-grp", + "Description": "Custom docdb3.6 parameter group", + "DBClusterParameterGroupName": "custom3-6-param-grp" + } + ] + } + +For more information, see `Viewing Amazon DocumentDB Cluster Parameter Groups `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-cluster-parameters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-cluster-parameters.rst new file mode 100644 index 000000000..4636d33b6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-cluster-parameters.rst @@ -0,0 +1,48 @@ +**To view the detailed parameter list for an Amazon DocumentDB cluster parameter group.** + +The following ``describe-db-cluster-parameters`` example lists the parameters for the Amazon DocumentDB parameter group custom3-6-param-grp. :: + + aws docdb describe-db-cluster-parameters \ + --db-cluster-parameter-group-name custom3-6-param-grp + +Output:: + + { + "Parameters": [ + { + "DataType": "string", + "ParameterName": "audit_logs", + "IsModifiable": true, + "ApplyMethod": "pending-reboot", + "Source": "system", + "ApplyType": "dynamic", + "AllowedValues": "enabled,disabled", + "Description": "Enables auditing on cluster.", + "ParameterValue": "disabled" + }, + { + "DataType": "string", + "ParameterName": "tls", + "IsModifiable": true, + "ApplyMethod": "pending-reboot", + "Source": "system", + "ApplyType": "static", + "AllowedValues": "disabled,enabled", + "Description": "Config to enable/disable TLS", + "ParameterValue": "enabled" + }, + { + "DataType": "string", + "ParameterName": "ttl_monitor", + "IsModifiable": true, + "ApplyMethod": "pending-reboot", + "Source": "user", + "ApplyType": "dynamic", + "AllowedValues": "disabled,enabled", + "Description": "Enables TTL Monitoring", + "ParameterValue": "enabled" + } + ] + } + +For more information, see `Viewing Amazon DocumentDB Cluster Parameters `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-cluster-snapshot-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-cluster-snapshot-attributes.rst new file mode 100644 index 000000000..4e611b541 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-cluster-snapshot-attributes.rst @@ -0,0 +1,22 @@ +**To list an Amazon DocumentDB snapshot attribute names and values** + +The following ``describe-db-cluster-snapshot-attributes`` example lists the attribute names and values for the Amazon DocumentDB snapshot ``sample-cluster-snapshot``. :: + + aws docdb describe-db-cluster-snapshot-attributes \ + --db-cluster-snapshot-identifier sample-cluster-snapshot + +Output:: + + { + "DBClusterSnapshotAttributesResult": { + "DBClusterSnapshotAttributes": [ + { + "AttributeName": "restore", + "AttributeValues": [] + } + ], + "DBClusterSnapshotIdentifier": "sample-cluster-snapshot" + } + } + +For more information, see `DescribeDBClusterSnapshotAttributes `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-cluster-snapshots.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-cluster-snapshots.rst new file mode 100644 index 000000000..e916265d2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-cluster-snapshots.rst @@ -0,0 +1,37 @@ +**To describe Amazon DocumentDB snapshots** + +The following ``describe-db-cluster-snapshots`` example displays details for the Amazon DocumentDB snapshot ``sample-cluster-snapshot``. :: + + aws docdb describe-db-cluster-snapshots \ + --db-cluster-snapshot-identifier sample-cluster-snapshot + +Output:: + + { + "DBClusterSnapshots": [ + { + "AvailabilityZones": [ + "us-west-2a", + "us-west-2b", + "us-west-2c", + "us-west-2d" + ], + "Status": "available", + "DBClusterSnapshotArn": "arn:aws:rds:us-west-2:123456789012:cluster-snapshot:sample-cluster-snapshot", + "SnapshotCreateTime": "2019-03-15T20:41:26.515Z", + "SnapshotType": "manual", + "DBClusterSnapshotIdentifier": "sample-cluster-snapshot", + "DBClusterIdentifier": "sample-cluster", + "MasterUsername": "master-user", + "StorageEncrypted": false, + "VpcId": "vpc-91280df6", + "EngineVersion": "3.6.0", + "PercentProgress": 100, + "Port": 0, + "Engine": "docdb", + "ClusterCreateTime": "2019-03-15T20:29:58.836Z" + } + ] + } + +For more information, see `DescribeDBClusterSnapshots `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-clusters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-clusters.rst new file mode 100644 index 000000000..1e20b555e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-clusters.rst @@ -0,0 +1,67 @@ +**To get detailed information about one or more Amazon DocumentDB clusters.** + +The following ``describe-db-clusters`` example displays details for the Amazon DocumentDB cluster ``sample-cluster``. By omitting the ``--db-cluster-identifier`` parameter you can get information of up to 100 clusters. :: + + aws docdb describe-db-clusters + --db-cluster-identifier sample-cluster + +Output:: + + { + "DBClusters": [ + { + "DBClusterParameterGroup": "default.docdb3.6", + "Endpoint": "sample-cluster.cluster-corcjozrlsfc.us-west-2.docdb.amazonaws.com", + "PreferredBackupWindow": "00:00-00:30", + "DBClusterIdentifier": "sample-cluster", + "ClusterCreateTime": "2019-03-15T20:29:58.836Z", + "LatestRestorableTime": "2019-03-18T20:28:03.239Z", + "MasterUsername": "master-user", + "DBClusterMembers": [ + { + "PromotionTier": 1, + "DBClusterParameterGroupStatus": "in-sync", + "IsClusterWriter": false, + "DBInstanceIdentifier": "sample-cluster" + }, + { + "PromotionTier": 1, + "DBClusterParameterGroupStatus": "in-sync", + "IsClusterWriter": true, + "DBInstanceIdentifier": "sample-cluster2" + } + ], + "PreferredMaintenanceWindow": "sat:04:30-sat:05:00", + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-77186e0d", + "Status": "active" + } + ], + "Engine": "docdb", + "ReaderEndpoint": "sample-cluster.cluster-ro-corcjozrlsfc.us-west-2.docdb.amazonaws.com", + "DBSubnetGroup": "default", + "MultiAZ": true, + "AvailabilityZones": [ + "us-west-2a", + "us-west-2c", + "us-west-2b" + ], + "EarliestRestorableTime": "2019-03-15T20:30:47.020Z", + "DbClusterResourceId": "cluster-UP4EF2PVDDFVHHDJQTYDAIGHLE", + "DBClusterArn": "arn:aws:rds:us-west-2:123456789012:cluster:sample-cluster", + "BackupRetentionPeriod": 3, + "HostedZoneId": "ZNKXH85TT8WVW", + "StorageEncrypted": false, + "EnabledCloudwatchLogsExports": [ + "audit" + ], + "AssociatedRoles": [], + "EngineVersion": "3.6.0", + "Port": 27017, + "Status": "available" + } + ] + } + +For more information, see `Describing Amazon DocumentDB Clusters `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-engine-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-engine-versions.rst new file mode 100644 index 000000000..3e5fb3f27 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-engine-versions.rst @@ -0,0 +1,28 @@ +**To list available Amazon DocumentDB engine versions** + +The following ``describe-db-engine-versions`` example lists all available Amazon DocumentDB engine versions. :: + + aws docdb describe-db-engine-versions \ + --engine docdb + +Output:: + + { + "DBEngineVersions": [ + { + "DBEngineVersionDescription": "DocDB version 1.0.200837", + "DBParameterGroupFamily": "docdb3.6", + "EngineVersion": "3.6.0", + "ValidUpgradeTarget": [], + "DBEngineDescription": "Amazon DocumentDB (with MongoDB compatibility)", + "SupportsLogExportsToCloudwatchLogs": true, + "Engine": "docdb", + "ExportableLogTypes": [ + "audit" + ] + } + ] + } + + +For more information, see `DescribeDBEngineVersions `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-instances.rst new file mode 100644 index 000000000..bd86d7b9a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-instances.rst @@ -0,0 +1,85 @@ +**To find information about provisioned Amazon DocumentDB instances** + +The following ``describe-db-instances`` example displays details for about the Amazon DocumentDB instance ``sample-cluster-instance``. By omitting the ``--db-instance-identifier`` parameter you get information on up to 100 instances. :: + + aws docdb describe-db-instances \ + --db-instance-identifier sample-cluster-instance + +Output:: + + { + "DBInstances": [ + { + "Endpoint": { + "HostedZoneId": "ZNKXH85TT8WVW", + "Address": "sample-cluster-instance.corcjozrlsfc.us-west-2.docdb.amazonaws.com", + "Port": 27017 + }, + "PreferredBackupWindow": "00:00-00:30", + "DBInstanceStatus": "available", + "DBInstanceClass": "db.r4.large", + "EnabledCloudwatchLogsExports": [ + "audit" + ], + "DBInstanceIdentifier": "sample-cluster-instance", + "DBSubnetGroup": { + "Subnets": [ + { + "SubnetStatus": "Active", + "SubnetIdentifier": "subnet-4e26d263", + "SubnetAvailabilityZone": { + "Name": "us-west-2a" + } + }, + { + "SubnetStatus": "Active", + "SubnetIdentifier": "subnet-afc329f4", + "SubnetAvailabilityZone": { + "Name": "us-west-2c" + } + }, + { + "SubnetStatus": "Active", + "SubnetIdentifier": "subnet-53ab3636", + "SubnetAvailabilityZone": { + "Name": "us-west-2d" + } + }, + { + "SubnetStatus": "Active", + "SubnetIdentifier": "subnet-991cb8d0", + "SubnetAvailabilityZone": { + "Name": "us-west-2b" + } + } + ], + "DBSubnetGroupName": "default", + "SubnetGroupStatus": "Complete", + "DBSubnetGroupDescription": "default", + "VpcId": "vpc-91280df6" + }, + "InstanceCreateTime": "2019-03-15T20:36:06.338Z", + "Engine": "docdb", + "StorageEncrypted": false, + "AutoMinorVersionUpgrade": true, + "DBInstanceArn": "arn:aws:rds:us-west-2:123456789012:db:sample-cluster-instance", + "PreferredMaintenanceWindow": "tue:08:39-tue:09:09", + "VpcSecurityGroups": [ + { + "Status": "active", + "VpcSecurityGroupId": "sg-77186e0d" + } + ], + "DBClusterIdentifier": "sample-cluster", + "PendingModifiedValues": {}, + "BackupRetentionPeriod": 3, + "PubliclyAccessible": false, + "EngineVersion": "3.6.0", + "PromotionTier": 1, + "AvailabilityZone": "us-west-2c", + "DbiResourceId": "db-A2GIKUV6KPOHITGGKI2NHVISZA" + } + ] + } + +For more information, see `Describing Amazon DocumentDB Instances `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-subnet-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-subnet-groups.rst new file mode 100644 index 000000000..fc38aea8f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-db-subnet-groups.rst @@ -0,0 +1,53 @@ +**To retrieve a list of Amazon DocumentDB subnet descriptions** + +The following ``describe-db-subnet-groups`` example describes details for the Amazon DocumentDB subnet named ``default``. :: + + aws docdb describe-db-subnet-groups \ + --db-subnet-group-name default + +Output:: + + { + "DBSubnetGroups": [ + { + "VpcId": "vpc-91280df6", + "DBSubnetGroupArn": "arn:aws:rds:us-west-2:123456789012:subgrp:default", + "Subnets": [ + { + "SubnetIdentifier": "subnet-4e26d263", + "SubnetStatus": "Active", + "SubnetAvailabilityZone": { + "Name": "us-west-2a" + } + }, + { + "SubnetIdentifier": "subnet-afc329f4", + "SubnetStatus": "Active", + "SubnetAvailabilityZone": { + "Name": "us-west-2c" + } + }, + { + "SubnetIdentifier": "subnet-53ab3636", + "SubnetStatus": "Active", + "SubnetAvailabilityZone": { + "Name": "us-west-2d" + } + }, + { + "SubnetIdentifier": "subnet-991cb8d0", + "SubnetStatus": "Active", + "SubnetAvailabilityZone": { + "Name": "us-west-2b" + } + } + ], + "DBSubnetGroupName": "default", + "SubnetGroupStatus": "Complete", + "DBSubnetGroupDescription": "default" + } + ] + } + + +For more information, see `Describing Subnet Groups `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-engine-default-cluster-parameters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-engine-default-cluster-parameters.rst new file mode 100644 index 000000000..08ca99ffe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-engine-default-cluster-parameters.rst @@ -0,0 +1,51 @@ +**To describe the default engine and system parameter information for Amazon DocumentDB** + +The following ``describe-engine-default-cluster-parameters`` example displays details for the default engine and system parameter information for the Amazon DocumentDB parameter group ``docdb3.6``. :: + + aws docdb describe-engine-default-cluster-parameters \ + --db-parameter-group-family docdb3.6 + +Output:: + + { + "EngineDefaults": { + "DBParameterGroupFamily": "docdb3.6", + "Parameters": [ + { + "ApplyType": "dynamic", + "ParameterValue": "disabled", + "Description": "Enables auditing on cluster.", + "Source": "system", + "DataType": "string", + "MinimumEngineVersion": "3.6.0", + "AllowedValues": "enabled,disabled", + "ParameterName": "audit_logs", + "IsModifiable": true + }, + { + "ApplyType": "static", + "ParameterValue": "enabled", + "Description": "Config to enable/disable TLS", + "Source": "system", + "DataType": "string", + "MinimumEngineVersion": "3.6.0", + "AllowedValues": "disabled,enabled", + "ParameterName": "tls", + "IsModifiable": true + }, + { + "ApplyType": "dynamic", + "ParameterValue": "enabled", + "Description": "Enables TTL Monitoring", + "Source": "system", + "DataType": "string", + "MinimumEngineVersion": "3.6.0", + "AllowedValues": "disabled,enabled", + "ParameterName": "ttl_monitor", + "IsModifiable": true + } + ] + } + } + +For more information, see `DescribeEngineDefaultClusterParameters `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-event-categories.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-event-categories.rst new file mode 100644 index 000000000..d59575370 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-event-categories.rst @@ -0,0 +1,24 @@ +**To describe all Amazon DocumentDB event categories** + +The following ``describe-event-categories`` example lists all categories for the Amazon DocumentDB event source type ``db-instance``. :: + + aws docdb describe-event-categories \ + --source-type db-cluster + +Output:: + + { + "EventCategoriesMapList": [ + { + "SourceType": "db-cluster", + "EventCategories": [ + "failover", + "maintenance", + "notification", + "failure" + ] + } + ] + } + +For more information, see `Viewing Event Categories `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-events.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-events.rst new file mode 100644 index 000000000..38dfbe692 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-events.rst @@ -0,0 +1,151 @@ +**To list Amazon DocumentDB events** + +The following ``describe-events`` example list all the Amazon DocumentDB events for the last 24 hours (1440 minutes). :: + + aws docdb describe-events \ + --duration 1440 + +This command produces no output. +Output:: + + { + "Events": [ + { + "EventCategories": [ + "failover" + ], + "Message": "Started cross AZ failover to DB instance: sample-cluster", + "Date": "2019-03-18T21:36:29.807Z", + "SourceArn": "arn:aws:rds:us-west-2:123456789012:cluster:sample-cluster", + "SourceIdentifier": "sample-cluster", + "SourceType": "db-cluster" + }, + { + "EventCategories": [ + "availability" + ], + "Message": "DB instance restarted", + "Date": "2019-03-18T21:36:40.793Z", + "SourceArn": "arn:aws:rds:us-west-2:123456789012:db:sample-cluster", + "SourceIdentifier": "sample-cluster", + "SourceType": "db-instance" + }, + { + "EventCategories": [], + "Message": "A new writer was promoted. Restarting database as a reader.", + "Date": "2019-03-18T21:36:43.873Z", + "SourceArn": "arn:aws:rds:us-west-2:123456789012:db:sample-cluster2", + "SourceIdentifier": "sample-cluster2", + "SourceType": "db-instance" + }, + { + "EventCategories": [ + "availability" + ], + "Message": "DB instance restarted", + "Date": "2019-03-18T21:36:51.257Z", + "SourceArn": "arn:aws:rds:us-west-2:123456789012:db:sample-cluster2", + "SourceIdentifier": "sample-cluster2", + "SourceType": "db-instance" + }, + { + "EventCategories": [ + "failover" + ], + "Message": "Completed failover to DB instance: sample-cluster", + "Date": "2019-03-18T21:36:53.462Z", + "SourceArn": "arn:aws:rds:us-west-2:123456789012:cluster:sample-cluster", + "SourceIdentifier": "sample-cluster", + "SourceType": "db-cluster" + }, + { + "Date": "2019-03-19T16:51:48.847Z", + "EventCategories": [ + "configuration change" + ], + "Message": "Updated parameter audit_logs to enabled with apply method pending-reboot", + "SourceIdentifier": "custom3-6-param-grp", + "SourceType": "db-parameter-group" + }, + { + "EventCategories": [ + "configuration change" + ], + "Message": "Applying modification to database instance class", + "Date": "2019-03-19T17:55:20.095Z", + "SourceArn": "arn:aws:rds:us-west-2:123456789012:db:sample-cluster2", + "SourceIdentifier": "sample-cluster2", + "SourceType": "db-instance" + }, + { + "EventCategories": [ + "availability" + ], + "Message": "DB instance shutdown", + "Date": "2019-03-19T17:56:31.127Z", + "SourceArn": "arn:aws:rds:us-west-2:123456789012:db:sample-cluster2", + "SourceIdentifier": "sample-cluster2", + "SourceType": "db-instance" + }, + { + "EventCategories": [ + "configuration change" + ], + "Message": "Finished applying modification to DB instance class", + "Date": "2019-03-19T18:00:45.822Z", + "SourceArn": "arn:aws:rds:us-west-2:123456789012:db:sample-cluster2", + "SourceIdentifier": "sample-cluster2", + "SourceType": "db-instance" + }, + { + "EventCategories": [ + "availability" + ], + "Message": "DB instance restarted", + "Date": "2019-03-19T18:00:53.397Z", + "SourceArn": "arn:aws:rds:us-west-2:123456789012:db:sample-cluster2", + "SourceIdentifier": "sample-cluster2", + "SourceType": "db-instance" + }, + { + "EventCategories": [ + "availability" + ], + "Message": "DB instance shutdown", + "Date": "2019-03-19T18:23:36.045Z", + "SourceArn": "arn:aws:rds:us-west-2:123456789012:db:sample-cluster2", + "SourceIdentifier": "sample-cluster2", + "SourceType": "db-instance" + }, + { + "EventCategories": [ + "availability" + ], + "Message": "DB instance restarted", + "Date": "2019-03-19T18:23:46.209Z", + "SourceArn": "arn:aws:rds:us-west-2:123456789012:db:sample-cluster2", + "SourceIdentifier": "sample-cluster2", + "SourceType": "db-instance" + }, + { + "Date": "2019-03-19T18:39:05.822Z", + "EventCategories": [ + "configuration change" + ], + "Message": "Updated parameter ttl_monitor to enabled with apply method immediate", + "SourceIdentifier": "custom3-6-param-grp", + "SourceType": "db-parameter-group" + }, + { + "Date": "2019-03-19T18:39:48.067Z", + "EventCategories": [ + "configuration change" + ], + "Message": "Updated parameter audit_logs to disabled with apply method immediate", + "SourceIdentifier": "custom3-6-param-grp", + "SourceType": "db-parameter-group" + } + ] + } + +For more information, see `Viewing Amazon DocumentDB Events `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-orderable-db-instance-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-orderable-db-instance-options.rst new file mode 100644 index 000000000..6148c3580 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-orderable-db-instance-options.rst @@ -0,0 +1,144 @@ +**To find the Amazon DocumentDB instance options you can order** + +The following ``describe-orderable-db-instance-options`` example lists all instance options for Amazon DocumentDB for a region. :: + + aws docdb describe-orderable-db-instance-options \ + --engine docdb \ + --region us-east-1 + +Output:: + + { + "OrderableDBInstanceOptions": [ + { + "Vpc": true, + "AvailabilityZones": [ + { + "Name": "us-east-1a" + }, + { + "Name": "us-east-1b" + }, + { + "Name": "us-east-1c" + }, + { + "Name": "us-east-1d" + } + ], + "EngineVersion": "3.6.0", + "DBInstanceClass": "db.r4.16xlarge", + "LicenseModel": "na", + "Engine": "docdb" + }, + { + "Vpc": true, + "AvailabilityZones": [ + { + "Name": "us-east-1a" + }, + { + "Name": "us-east-1b" + }, + { + "Name": "us-east-1c" + }, + { + "Name": "us-east-1d" + } + } + ], + "EngineVersion": "3.6.0", + "DBInstanceClass": "db.r4.2xlarge", + "LicenseModel": "na", + "Engine": "docdb" + }, + { + "Vpc": true, + "AvailabilityZones": [ + { + "Name": "us-east-1a" + }, + { + "Name": "us-east-1b" + }, + { + "Name": "us-east-1c" + }, + { + "Name": "us-east-1d" + } + ], + "EngineVersion": "3.6.0", + "DBInstanceClass": "db.r4.4xlarge", + "LicenseModel": "na", + "Engine": "docdb" + }, + { + "Vpc": true, + "AvailabilityZones": [ + { + "Name": "us-east-1a" + }, + { + "Name": "us-east-1b" + }, + { + "Name": "us-east-1c" + }, + { + "Name": "us-east-1d" + } + ], + "EngineVersion": "3.6.0", + "DBInstanceClass": "db.r4.8xlarge", + "LicenseModel": "na", + "Engine": "docdb" + }, + { + "Vpc": true, + "AvailabilityZones": [ + { + "Name": "us-east-1a" + }, + { + "Name": "us-east-1b" + }, + { + "Name": "us-east-1c" + }, + { + "Name": "us-east-1d" + } + ], + "EngineVersion": "3.6.0", + "DBInstanceClass": "db.r4.large", + "LicenseModel": "na", + "Engine": "docdb" + }, + { + "Vpc": true, + "AvailabilityZones": [ + { + "Name": "us-east-1a" + }, + { + "Name": "us-east-1b" + }, + { + "Name": "us-east-1c" + }, + { + "Name": "us-east-1d" + } + ], + "EngineVersion": "3.6.0", + "DBInstanceClass": "db.r4.xlarge", + "LicenseModel": "na", + "Engine": "docdb" + } + ] + } + + +For more information, see `Adding an Amazon DocumentDB Instance to a Cluster `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-pending-maintenance-actions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-pending-maintenance-actions.rst new file mode 100644 index 000000000..58b780091 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/describe-pending-maintenance-actions.rst @@ -0,0 +1,13 @@ +**To list your pending Amazon DocumentDB maintenance actions** + +The following ``describe-pending-maintenance-actions`` example lists all your pending Amazon DocumentDB maintenance actions. :: + + aws docdb describe-pending-maintenance-actions + +Output:: + + { + "PendingMaintenanceActions": [] + } + +For more information, see `Maintaining Amazon DocumentDB `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/failover-db-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/failover-db-cluster.rst new file mode 100644 index 000000000..9c5d884f9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/failover-db-cluster.rst @@ -0,0 +1,65 @@ +**To force an Amazon DocumentDB cluster to failover to a replica** + +The following ``failover-db-cluster`` example causes the primary instance in the Amazon DocumentDB cluster sample-cluster to failover to a replica. :: + + aws docdb failover-db-cluster \ + --db-cluster-identifier sample-cluster + +Output:: + + { + "DBCluster": { + "AssociatedRoles": [], + "DBClusterIdentifier": "sample-cluster", + "EngineVersion": "3.6.0", + "DBSubnetGroup": "default", + "MasterUsername": "master-user", + "EarliestRestorableTime": "2019-03-15T20:30:47.020Z", + "Endpoint": "sample-cluster.cluster-corcjozrlsfc.us-west-2.docdb.amazonaws.com", + "AvailabilityZones": [ + "us-west-2a", + "us-west-2c", + "us-west-2b" + ], + "LatestRestorableTime": "2019-03-18T21:35:23.548Z", + "PreferredMaintenanceWindow": "sat:04:30-sat:05:00", + "PreferredBackupWindow": "00:00-00:30", + "Port": 27017, + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-77186e0d", + "Status": "active" + } + ], + "StorageEncrypted": false, + "ClusterCreateTime": "2019-03-15T20:29:58.836Z", + "MultiAZ": true, + "Status": "available", + "DBClusterMembers": [ + { + "DBClusterParameterGroupStatus": "in-sync", + "IsClusterWriter": false, + "DBInstanceIdentifier": "sample-cluster", + "PromotionTier": 1 + }, + { + "DBClusterParameterGroupStatus": "in-sync", + "IsClusterWriter": true, + "DBInstanceIdentifier": "sample-cluster2", + "PromotionTier": 2 + } + ], + "EnabledCloudwatchLogsExports": [ + "audit" + ], + "DBClusterParameterGroup": "default.docdb3.6", + "HostedZoneId": "ZNKXH85TT8WVW", + "DBClusterArn": "arn:aws:rds:us-west-2:123456789012:cluster:sample-cluster", + "BackupRetentionPeriod": 3, + "DbClusterResourceId": "cluster-UP4EF2PVDDFVHHDJQTYDAIGHLE", + "ReaderEndpoint": "sample-cluster.cluster-ro-corcjozrlsfc.us-west-2.docdb.amazonaws.com", + "Engine": "docdb" + } + } + +For more information, see `Amazon DocumentDB Failover `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/list-tags-for-resource.rst new file mode 100644 index 000000000..f0cbc419b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/list-tags-for-resource.rst @@ -0,0 +1,27 @@ +**To list all the tags on an Amazon DocumentDB resource** + +The following ``list-tags-for-resource`` example lists all tags on the Amazon DocumentDB cluster ``sample-cluster``. :: + + aws docdb list-tags-for-resource \ + --resource-name arn:aws:rds:us-west-2:123456789012:cluster:sample-cluster + +Output:: + + { + "TagList": [ + { + "Key": "A", + "Value": "ALPHA" + }, + { + "Key": "B", + "Value": "" + }, + { + "Key": "C", + "Value": "CHARLIE" + } + ] + } + +For more information, see `Listing Tags on an Amazon DocumentDB Resource `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/modify-db-cluster-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/modify-db-cluster-parameter-group.rst new file mode 100644 index 000000000..248bc1ea6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/modify-db-cluster-parameter-group.rst @@ -0,0 +1,16 @@ +**To modify an Amazon DocumentDB DB cluster parameter group** + +The following ``modify-db-cluster-parameter-group`` example modifies the Amazon DocumentDB cluster parameter group ``custom3-6-param-grp`` by setting the two parameters ``audit_logs`` and ``ttl_monitor`` to enabled. The changes are applied at the next reboot. :: + + aws docdb modify-db-cluster-parameter-group \ + --db-cluster-parameter-group-name custom3-6-param-grp \ + --parameters ParameterName=audit_logs,ParameterValue=enabled,ApplyMethod=pending-reboot \ + ParameterName=ttl_monitor,ParameterValue=enabled,ApplyMethod=pending-reboot + +Output:: + + { + "DBClusterParameterGroupName": "custom3-6-param-grp" + } + +For more information, see `Modifying an Amazon DocumentDB Cluster Parameter Group `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/modify-db-cluster-snapshot-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/modify-db-cluster-snapshot-attribute.rst new file mode 100644 index 000000000..6a106ef62 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/modify-db-cluster-snapshot-attribute.rst @@ -0,0 +1,54 @@ +**Example 1: To add an attribute to an Amazon DocumentDB snapshot** + +The following ``modify-db-cluster-snapshot-attribute`` example adds four attribute values to an Amazon DocumentDB cluster snapshot. :: + + aws docdb modify-db-cluster-snapshot-attribute \ + --db-cluster-snapshot-identifier sample-cluster-snapshot \ + --attribute-name restore \ + --values-to-add 123456789011 123456789012 123456789013 + +Output:: + + { + "DBClusterSnapshotAttributesResult": { + "DBClusterSnapshotAttributes": [ + { + "AttributeName": "restore", + "AttributeValues": [ + "123456789011", + "123456789012", + "123456789013" + ] + } + ], + "DBClusterSnapshotIdentifier": "sample-cluster-snapshot" + } + } + +**Example 2: To remove attributes from an Amazon DocumentDB snapshot** + +The following ``modify-db-cluster-snapshot-attribute`` example removes two attribute values from an Amazon DocumentDB cluster snapshot. :: + + aws docdb modify-db-cluster-snapshot-attribute \ + --db-cluster-snapshot-identifier sample-cluster-snapshot \ + --attribute-name restore \ + --values-to-remove 123456789012 + +Output:: + + { + "DBClusterSnapshotAttributesResult": { + "DBClusterSnapshotAttributes": [ + { + "AttributeName": "restore", + "AttributeValues": [ + "123456789011", + "123456789013" + ] + } + ], + "DBClusterSnapshotIdentifier": "sample-cluster-snapshot" + } + } + +For more information, see `ModifyDBClusterSnapshotAttribute `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/modify-db-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/modify-db-cluster.rst new file mode 100644 index 000000000..9b65b2f52 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/modify-db-cluster.rst @@ -0,0 +1,69 @@ +**To modify an Amazon DocumentDB cluster** + +The following ``modify-db-cluster`` example modifies the Amazon DocumentDB cluster ``sample-cluster`` by making the retention period for automatic backups 7 days, and changing the preferred windows for both backups and maintenance. All changes are applied at the next maintenance window. :: + + aws docdb modify-db-cluster \ + --db-cluster-identifier sample-cluster \ + --no-apply-immediately \ + --backup-retention-period 7 \ + --preferred-backup-window 18:00-18:30 \ + --preferred-maintenance-window sun:20:00-sun:20:30 + +Output:: + + { + "DBCluster": { + "Endpoint": "sample-cluster.cluster-corcjozrlsfc.us-west-2.docdb.amazonaws.com", + "DBClusterMembers": [ + { + "DBClusterParameterGroupStatus": "in-sync", + "DBInstanceIdentifier": "sample-cluster", + "IsClusterWriter": true, + "PromotionTier": 1 + }, + { + "DBClusterParameterGroupStatus": "in-sync", + "DBInstanceIdentifier": "sample-cluster2", + "IsClusterWriter": false, + "PromotionTier": 2 + } + ], + "HostedZoneId": "ZNKXH85TT8WVW", + "StorageEncrypted": false, + "PreferredBackupWindow": "18:00-18:30", + "MultiAZ": true, + "EngineVersion": "3.6.0", + "MasterUsername": "master-user", + "ReaderEndpoint": "sample-cluster.cluster-ro-corcjozrlsfc.us-west-2.docdb.amazonaws.com", + "DBSubnetGroup": "default", + "LatestRestorableTime": "2019-03-18T22:08:13.408Z", + "EarliestRestorableTime": "2019-03-15T20:30:47.020Z", + "PreferredMaintenanceWindow": "sun:20:00-sun:20:30", + "AssociatedRoles": [], + "EnabledCloudwatchLogsExports": [ + "audit" + ], + "Engine": "docdb", + "DBClusterParameterGroup": "default.docdb3.6", + "DBClusterArn": "arn:aws:rds:us-west-2:123456789012:cluster:sample-cluster", + "BackupRetentionPeriod": 7, + "DBClusterIdentifier": "sample-cluster", + "AvailabilityZones": [ + "us-west-2a", + "us-west-2c", + "us-west-2b" + ], + "Status": "available", + "DbClusterResourceId": "cluster-UP4EF2PVDDFVHHDJQTYDAIGHLE", + "ClusterCreateTime": "2019-03-15T20:29:58.836Z", + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-77186e0d", + "Status": "active" + } + ], + "Port": 27017 + } + } + +For more information, see `Modifying an Amazon DocumentDB Cluster `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/modify-db-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/modify-db-instance.rst new file mode 100644 index 000000000..9ad349426 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/modify-db-instance.rst @@ -0,0 +1,88 @@ +**To modify an Amazon DocumentDB instance** + +The following ``modify-db-instance`` example modifies the Amazon DocumentDB instance ``sample-cluster2`` by changing its instance class to ``db.r4.4xlarge`` and its promotion tier to ``5``. The changes are applied immediately but can only be seen after the instances status is available. :: + + aws docdb modify-db-instance \ + --db-instance-identifier sample-cluster2 \ + --apply-immediately \ + --db-instance-class db.r4.4xlarge \ + --promotion-tier 5 + +Output:: + + { + "DBInstance": { + "EngineVersion": "3.6.0", + "StorageEncrypted": false, + "DBInstanceClass": "db.r4.large", + "PreferredMaintenanceWindow": "mon:08:39-mon:09:09", + "AutoMinorVersionUpgrade": true, + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-77186e0d", + "Status": "active" + } + ], + "PreferredBackupWindow": "18:00-18:30", + "EnabledCloudwatchLogsExports": [ + "audit" + ], + "AvailabilityZone": "us-west-2f", + "DBInstanceIdentifier": "sample-cluster2", + "InstanceCreateTime": "2019-03-15T20:36:06.338Z", + "Engine": "docdb", + "BackupRetentionPeriod": 7, + "DBSubnetGroup": { + "DBSubnetGroupName": "default", + "DBSubnetGroupDescription": "default", + "SubnetGroupStatus": "Complete", + "Subnets": [ + { + "SubnetIdentifier": "subnet-4e26d263", + "SubnetAvailabilityZone": { + "Name": "us-west-2a" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-afc329f4", + "SubnetAvailabilityZone": { + "Name": "us-west-2c" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-53ab3636", + "SubnetAvailabilityZone": { + "Name": "us-west-2d" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-991cb8d0", + "SubnetAvailabilityZone": { + "Name": "us-west-2b" + }, + "SubnetStatus": "Active" + } + ], + "VpcId": "vpc-91280df6" + }, + "PromotionTier": 2, + "Endpoint": { + "Address": "sample-cluster2.corcjozrlsfc.us-west-2.docdb.amazonaws.com", + "HostedZoneId": "ZNKXH85TT8WVW", + "Port": 27017 + }, + "DbiResourceId": "db-A2GIKUV6KPOHITGGKI2NHVISZA", + "DBClusterIdentifier": "sample-cluster", + "DBInstanceArn": "arn:aws:rds:us-west-2:123456789012:db:sample-cluster2", + "PendingModifiedValues": { + "DBInstanceClass": "db.r4.4xlarge" + }, + "PubliclyAccessible": false, + "DBInstanceStatus": "available" + } + } + +For more information, see `Modifying an Amazon DocumentDB Instance `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/modify-db-subnet-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/modify-db-subnet-group.rst new file mode 100644 index 000000000..d699fdf00 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/modify-db-subnet-group.rst @@ -0,0 +1,45 @@ +**To modify an Amazon DocumentDB subnet group** + +The following ``modify-db-subnet-group`` example modifies the subnet group ``sample-subnet-group`` by adding the specified subnets and a new description. :: + + aws docdb modify-db-subnet-group \ + --db-subnet-group-name sample-subnet-group \ + --subnet-ids subnet-b3806e8f subnet-53ab3636 subnet-991cb8d0 \ + --db-subnet-group-description "New subnet description" + +Output:: + + { + "DBSubnetGroup": { + "DBSubnetGroupName": "sample-subnet-group", + "SubnetGroupStatus": "Complete", + "DBSubnetGroupArn": "arn:aws:rds:us-west-2:123456789012:subgrp:sample-subnet-group", + "VpcId": "vpc-91280df6", + "DBSubnetGroupDescription": "New subnet description", + "Subnets": [ + { + "SubnetIdentifier": "subnet-b3806e8f", + "SubnetStatus": "Active", + "SubnetAvailabilityZone": { + "Name": "us-west-2a" + } + }, + { + "SubnetIdentifier": "subnet-53ab3636", + "SubnetStatus": "Active", + "SubnetAvailabilityZone": { + "Name": "us-west-2c" + } + }, + { + "SubnetIdentifier": "subnet-991cb8d0", + "SubnetStatus": "Active", + "SubnetAvailabilityZone": { + "Name": "us-west-2b" + } + } + ] + } + } + +For more information, see `Modifying an Amazon DocumentDB Subnet Group `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/reboot-db-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/reboot-db-instance.rst new file mode 100644 index 000000000..91a18ae80 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/reboot-db-instance.rst @@ -0,0 +1,84 @@ +**To reboot an Amazon DocumentDB instance** + +The following ``reboot-db-instance`` example reboots the Amazon DocumentDB instance ``sample-cluster2``. :: + + aws docdb reboot-db-instance \ + --db-instance-identifier sample-cluster2 + +This command produces no output. +Output:: + + { + "DBInstance": { + "PreferredBackupWindow": "18:00-18:30", + "DBInstanceIdentifier": "sample-cluster2", + "VpcSecurityGroups": [ + { + "Status": "active", + "VpcSecurityGroupId": "sg-77186e0d" + } + ], + "DBSubnetGroup": { + "VpcId": "vpc-91280df6", + "Subnets": [ + { + "SubnetStatus": "Active", + "SubnetAvailabilityZone": { + "Name": "us-west-2a" + }, + "SubnetIdentifier": "subnet-4e26d263" + }, + { + "SubnetStatus": "Active", + "SubnetAvailabilityZone": { + "Name": "us-west-2c" + }, + "SubnetIdentifier": "subnet-afc329f4" + }, + { + "SubnetStatus": "Active", + "SubnetAvailabilityZone": { + "Name": "us-west-2d" + }, + "SubnetIdentifier": "subnet-53ab3636" + }, + { + "SubnetStatus": "Active", + "SubnetAvailabilityZone": { + "Name": "us-west-2b" + }, + "SubnetIdentifier": "subnet-991cb8d0" + } + ], + "SubnetGroupStatus": "Complete", + "DBSubnetGroupName": "default", + "DBSubnetGroupDescription": "default" + }, + "PendingModifiedValues": {}, + "Endpoint": { + "Address": "sample-cluster2.corcjozrlsfc.us-west-2.docdb.amazonaws.com", + "HostedZoneId": "ZNKXH85TT8WVW", + "Port": 27017 + }, + "EnabledCloudwatchLogsExports": [ + "audit" + ], + "StorageEncrypted": false, + "DbiResourceId": "db-A2GIKUV6KPOHITGGKI2NHVISZA", + "AutoMinorVersionUpgrade": true, + "Engine": "docdb", + "InstanceCreateTime": "2019-03-15T20:36:06.338Z", + "EngineVersion": "3.6.0", + "PromotionTier": 5, + "BackupRetentionPeriod": 7, + "DBClusterIdentifier": "sample-cluster", + "PreferredMaintenanceWindow": "mon:08:39-mon:09:09", + "PubliclyAccessible": false, + "DBInstanceClass": "db.r4.4xlarge", + "AvailabilityZone": "us-west-2d", + "DBInstanceArn": "arn:aws:rds:us-west-2:123456789012:db:sample-cluster2", + "DBInstanceStatus": "rebooting" + } + } + +For more information, see `Rebooting an Amazon DocumentDB ILnstance `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/remove-tags-from-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/remove-tags-from-resource.rst new file mode 100644 index 000000000..5db2734e8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/remove-tags-from-resource.rst @@ -0,0 +1,11 @@ +**To remove tags from an Amazon DocumentDB resource** + +The following ``remove-tags-from-resource`` example removes the tag with the key named ``B`` from the Amazon DocumentDB cluster ``sample-cluster``. :: + + aws docdb remove-tags-from-resource \ + --resource-name arn:aws:rds:us-west-2:123456789012:cluster:sample-cluster \ + --tag-keys B + +This command produces no output. + +For more information, see `Removing Tags from an Amazon DocumentDBResource `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/reset-db-cluster-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/reset-db-cluster-parameter-group.rst new file mode 100644 index 000000000..f1b571603 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/reset-db-cluster-parameter-group.rst @@ -0,0 +1,31 @@ +**To reset the specified parameter value to its defaults in an Amazon DocumentDB parameter group** + +The following ``reset-db-cluster-parameter-group`` example resets the parameter ``ttl_monitor`` in the Amazon DocumentDB parameter group ``custom3-6-param-grp`` to its default value. :: + + aws docdb reset-db-cluster-parameter-group \ + --db-cluster-parameter-group-name custom3-6-param-grp \ + --parameters ParameterName=ttl_monitor,ApplyMethod=immediate + +Output:: + + { + "DBClusterParameterGroupName": "custom3-6-param-grp" + } + +For more information, see `title `__ in the *Amazon DocumentDB Developer Guide*. + +**To reset specified or all parameter values to their defaults in an Amazon DocumentDB parameter group** + +The following ``reset-db-cluster-parameter-group`` example resets all parameters in the Amazon DocumentDB parameter group ``custom3-6-param-grp`` to their default value. :: + + aws docdb reset-db-cluster-parameter-group \ + --db-cluster-parameter-group-name custom3-6-param-grp \ + --reset-all-parameters + +Output:: + + { + "DBClusterParameterGroupName": "custom3-6-param-grp" + } + +For more information, see `Resetting an Amazon DocumentDB Cluster Parameter Group `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/restore-db-cluster-from-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/restore-db-cluster-from-snapshot.rst new file mode 100644 index 000000000..9f18c85a4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/restore-db-cluster-from-snapshot.rst @@ -0,0 +1,50 @@ +**To restore an Amazon DocumentDB cluster from an automatic or manual snapshot** + +The following ``restore-db-cluster-from-snapshot`` example creates a new Amazon DocumentDB cluster named ``sample-cluster-2019-03-16-00-01-restored`` from the snapshot ``rds:sample-cluster-2019-03-16-00-01``. :: + + aws docdb restore-db-cluster-from-snapshot \ + --db-cluster-identifier sample-cluster-2019-03-16-00-01-restored \ + --engine docdb \ + --snapshot-identifier rds:sample-cluster-2019-03-16-00-01 + +Output:: + + { + "DBCluster": { + "ClusterCreateTime": "2019-03-19T18:45:01.857Z", + "HostedZoneId": "ZNKXH85TT8WVW", + "Engine": "docdb", + "DBClusterMembers": [], + "MultiAZ": false, + "AvailabilityZones": [ + "us-west-2a", + "us-west-2c", + "us-west-2b" + ], + "StorageEncrypted": false, + "ReaderEndpoint": "sample-cluster-2019-03-16-00-01-restored.cluster-ro-corcjozrlsfc.us-west-2.docdb.amazonaws.com", + "Endpoint": "sample-cluster-2019-03-16-00-01-restored.cluster-corcjozrlsfc.us-west-2.docdb.amazonaws.com", + "Port": 27017, + "PreferredBackupWindow": "00:00-00:30", + "DBSubnetGroup": "default", + "DBClusterIdentifier": "sample-cluster-2019-03-16-00-01-restored", + "PreferredMaintenanceWindow": "sat:04:30-sat:05:00", + "DBClusterArn": "arn:aws:rds:us-west-2:123456789012:cluster:sample-cluster-2019-03-16-00-01-restored", + "DBClusterParameterGroup": "default.docdb3.6", + "DbClusterResourceId": "cluster-XOO46Q3RH4LWSYNH3NMZKXPISU", + "MasterUsername": "master-user", + "EngineVersion": "3.6.0", + "BackupRetentionPeriod": 3, + "AssociatedRoles": [], + "Status": "creating", + "VpcSecurityGroups": [ + { + "Status": "active", + "VpcSecurityGroupId": "sg-77186e0d" + } + ] + } + } + + +For more information, see `Restoring from a Cluster Snapshot `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/restore-db-cluster-to-point-in-time.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/restore-db-cluster-to-point-in-time.rst new file mode 100644 index 000000000..1be3216cb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/restore-db-cluster-to-point-in-time.rst @@ -0,0 +1,49 @@ +**To restore an Amazon DocumentDB cluster to a point-in-time from a manual snapshot** + +The following ``restore-db-cluster-to-point-in-time`` example uses the ``sample-cluster-snapshot`` to create a new Amazon DocumentDB cluster, ``sample-cluster-pit``, using the latest restorable time. :: + + aws docdb restore-db-cluster-to-point-in-time \ + --db-cluster-identifier sample-cluster-pit \ + --source-db-cluster-identifier arn:aws:rds:us-west-2:123456789012:cluster:sample-cluster \ + --use-latest-restorable-time + +Output:: + + { + "DBCluster": { + "StorageEncrypted": false, + "BackupRetentionPeriod": 3, + "MasterUsername": "master-user", + "HostedZoneId": "ZNKXH85TT8WVW", + "PreferredBackupWindow": "00:00-00:30", + "MultiAZ": false, + "DBClusterIdentifier": "sample-cluster-pit", + "DBSubnetGroup": "default", + "ClusterCreateTime": "2019-04-03T15:55:21.320Z", + "AssociatedRoles": [], + "DBClusterParameterGroup": "default.docdb3.6", + "DBClusterMembers": [], + "Status": "creating", + "AvailabilityZones": [ + "us-west-2a", + "us-west-2d", + "us-west-2b" + ], + "ReaderEndpoint": "sample-cluster-pit.cluster-ro-corcjozrlsfc.us-west-2.docdb.amazonaws.com", + "Port": 27017, + "Engine": "docdb", + "EngineVersion": "3.6.0", + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-77186e0d", + "Status": "active" + } + ], + "PreferredMaintenanceWindow": "sat:04:30-sat:05:00", + "Endpoint": "sample-cluster-pit.cluster-corcjozrlsfc.us-west-2.docdb.amazonaws.com", + "DbClusterResourceId": "cluster-NLCABBXOSE2QPQ4GOLZIFWEPLM", + "DBClusterArn": "arn:aws:rds:us-west-2:123456789012:cluster:sample-cluster-pit" + } + } + +For more information, see `Restoring a Snapshot to a Point in Time `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/start-db-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/start-db-cluster.rst new file mode 100644 index 000000000..f477ffae7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/start-db-cluster.rst @@ -0,0 +1,47 @@ +**To start a stopped Amazon DocumentDB cluster** + +The following ``start-db-cluster`` example starts the specified Amazon DocumentDB cluster. :: + + aws docdb start-db-cluster \ + --db-cluster-identifier sample-cluster + +Output:: + + { + "DBCluster": { + "ClusterCreateTime": "2019-03-19T18:45:01.857Z", + "HostedZoneId": "ZNKXH85TT8WVW", + "Engine": "docdb", + "DBClusterMembers": [], + "MultiAZ": false, + "AvailabilityZones": [ + "us-east-1a", + "us-east-1c", + "us-east-1f" + ], + "StorageEncrypted": false, + "ReaderEndpoint": "sample-cluster-2019-03-16-00-01-restored.cluster-ro-corcjozrlsfc.us-east-1.docdb.amazonaws.com", + "Endpoint": "sample-cluster-2019-03-16-00-01-restored.cluster-corcjozrlsfc.us-east-1.docdb.amazonaws.com", + "Port": 27017, + "PreferredBackupWindow": "00:00-00:30", + "DBSubnetGroup": "default", + "DBClusterIdentifier": "sample-cluster-2019-03-16-00-01-restored", + "PreferredMaintenanceWindow": "sat:04:30-sat:05:00", + "DBClusterArn": "arn:aws:rds:us-east-1:123456789012:cluster:sample-cluster-2019-03-16-00-01-restored", + "DBClusterParameterGroup": "default.docdb3.6", + "DbClusterResourceId": "cluster-XOO46Q3RH4LWSYNH3NMZKXPISU", + "MasterUsername": "master-user", + "EngineVersion": "3.6.0", + "BackupRetentionPeriod": 3, + "AssociatedRoles": [], + "Status": "creating", + "VpcSecurityGroups": [ + { + "Status": "active", + "VpcSecurityGroupId": "sg-77186e0d" + } + ] + } + } + +For more information, see `Stopping and Starting an Amazon DocumentDB Cluster `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/stop-db-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/stop-db-cluster.rst new file mode 100644 index 000000000..afc9809db --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/stop-db-cluster.rst @@ -0,0 +1,47 @@ +**To stop a running Amazon DocumentDB cluster** + +The following ``stop-db-cluster`` example stops the specified Amazon DocumentDB cluster. :: + + aws docdb stop-db-cluster \ + --db-cluster-identifier sample-cluster + +Output:: + + { + "DBCluster": { + "ClusterCreateTime": "2019-03-19T18:45:01.857Z", + "HostedZoneId": "ZNKXH85TT8WVW", + "Engine": "docdb", + "DBClusterMembers": [], + "MultiAZ": false, + "AvailabilityZones": [ + "us-east-1a", + "us-east-1c", + "us-east-1f" + ], + "StorageEncrypted": false, + "ReaderEndpoint": "sample-cluster-2019-03-16-00-01-restored.cluster-ro-corcjozrlsfc.us-east-1.docdb.amazonaws.com", + "Endpoint": "sample-cluster-2019-03-16-00-01-restored.cluster-corcjozrlsfc.us-east-1.docdb.amazonaws.com", + "Port": 27017, + "PreferredBackupWindow": "00:00-00:30", + "DBSubnetGroup": "default", + "DBClusterIdentifier": "sample-cluster-2019-03-16-00-01-restored", + "PreferredMaintenanceWindow": "sat:04:30-sat:05:00", + "DBClusterArn": "arn:aws:rds:us-east-1:123456789012:cluster:sample-cluster-2019-03-16-00-01-restored", + "DBClusterParameterGroup": "default.docdb3.6", + "DbClusterResourceId": "cluster-XOO46Q3RH4LWSYNH3NMZKXPISU", + "MasterUsername": "master-user", + "EngineVersion": "3.6.0", + "BackupRetentionPeriod": 3, + "AssociatedRoles": [], + "Status": "creating", + "VpcSecurityGroups": [ + { + "Status": "active", + "VpcSecurityGroupId": "sg-77186e0d" + } + ] + } + } + +For more information, see `Stopping and Starting an Amazon DocumentDB Cluster `__ in the *Amazon DocumentDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/wait/db-instance-available.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/wait/db-instance-available.rst new file mode 100644 index 000000000..161aff9c5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/wait/db-instance-available.rst @@ -0,0 +1,8 @@ +**To pause running until the specified instance is available** + +The following ``wait role-exists`` command pauses and continues only after it can confirm that the specified database cluster instance exists. :: + + aws docdb wait db-instance-available \ + --db-instance-identifier "sample-instance" + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/wait/db-instance-deleted.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/wait/db-instance-deleted.rst new file mode 100644 index 000000000..523f5afd2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/docdb/wait/db-instance-deleted.rst @@ -0,0 +1,8 @@ +**To pause running until the specified cluster instance is deleted** + +The following ``wait db-instance-deleted`` command pauses and continues only after it can confirm that the specified database cluster instance is deleted. :: + + aws docdb wait db-instance-deleted \ + --db-instance-identifier "sample-instance" + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/add-group-member.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/add-group-member.rst new file mode 100644 index 000000000..45c54d26a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/add-group-member.rst @@ -0,0 +1,12 @@ +**To add a group member to a directory** + +The following ``add-group-member`` example adds the specified user to the specified group in the specified directory. :: + + aws ds-data add-group-member \ + --directory-id d-1234567890 \ + --group-name 'sales' \ + --member-name 'john.doe' + +This command produces no output. + +For more information, see `Adding or removing AWS Managed Microsoft AD members to groups and groups to groups `__ in the *AWS Directory Service Administration Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/create-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/create-group.rst new file mode 100644 index 000000000..df7f17df9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/create-group.rst @@ -0,0 +1,17 @@ +**To list the available widgets** + +The following ``create-group`` example creates a group in a specified directory. :: + + aws ds-data create-group \ + --directory-id d-1234567890 \ + --sam-account-name "sales" + +Output:: + + { + "DirectoryId": "d-1234567890", + "SAMAccountName": "sales", + "SID": "S-1-2-34-5567891234-5678912345-67891234567-8912" + } + +For more information, see `Creating an AWS Managed Microsoft AD group `__ in the *AWS Directory Service Administration Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/create-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/create-user.rst new file mode 100644 index 000000000..f348abf0b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/create-user.rst @@ -0,0 +1,17 @@ +**To create a user** + +The following ``create-user`` example creates a user in the specified directory. :: + + aws ds-data create-user \ + --directory-id d-1234567890 \ + --sam-account-name 'john.doe' + +Output:: + + { + "DirectoryId": "d-1234567890", + "SAMAccountName": "john.doe", + "SID": "S-1-2-34-5567891234-5678912345-67891234567-8912" + } + +For more information, see `Creating an AWS Managed Microsoft AD user `__ in the *AWS Directory Service Administration Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/delete-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/delete-group.rst new file mode 100644 index 000000000..33c155c7f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/delete-group.rst @@ -0,0 +1,11 @@ +**To delete a group** + +The following ``delete-group`` example deletes the specified group from the specified directory. :: + + aws ds-data delete-group \ + --directory-id d-1234567890 \ + --sam-account-name 'sales' + +This command produces no output. + +For more information, see `Deleting an AWS Managed Microsoft AD group `__ in the *AWS Directory Service Administration Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/delete-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/delete-user.rst new file mode 100644 index 000000000..9ffd38f8e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/delete-user.rst @@ -0,0 +1,11 @@ +**To delete a user** + +The following ``delete-user`` example deletes the specified user from the specified directory. :: + + aws ds-data delete-user \ + --directory-id d-1234567890 \ + --sam-account-name 'john.doe' + +This command produces no output. + +For more information, see `Deleting an AWS Managed Microsoft AD user `__ in the *AWS Directory Service Administration Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/describe-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/describe-group.rst new file mode 100644 index 000000000..ef8b227a6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/describe-group.rst @@ -0,0 +1,21 @@ +**To list details of a group** + +The following ``describe-group`` example gets information for the specified group in the specified directory. :: + + aws ds-data describe-group \ + --directory-id d-1234567890 \ + --sam-account-name 'sales' + +Output:: + + { + "DirectoryId": "d-1234567890", + "DistinguishedName": "CN=sales,OU=Users,OU=CORP,DC=corp,DC=example,DC=com", + "GroupScope": "Global", + "GroupType": "Security", + "Realm": "corp.example.com", + "SAMAccountName": "sales", + "SID": "S-1-2-34-5567891234-5678912345-67891234567-8912" + } + +For more information, see `Viewing and updating an AWS Managed Microsoft AD group's details `__ in the *AWS Directory Service Administration Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/describe-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/describe-user.rst new file mode 100644 index 000000000..1ea210ad9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/describe-user.rst @@ -0,0 +1,21 @@ +**To list information for a user** + +The following ``describe-user`` example gets information for the specified user in the specified directory. :: + + aws ds-data describe-user command-name \ + --directory-id d-1234567890 \ + --sam-account-name 'john.doe' + +Output:: + + { + "DirectoryId": "d-1234567890", + "DistinguishedName": "CN=john.doe,OU=Users,OU=CORP,DC=corp,DC=example,DC=com", + "Enabled": false, + "Realm": "corp.example.com", + "SAMAccountName": "john.doe", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4567", + "UserPrincipalName": "john.doe@CORP.EXAMPLE.COM" + } + +For more information, see `Viewing and updating an AWS Managed Microsoft AD user `__ in the *AWS Directory Service Administration Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/disable-directory-data-access.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/disable-directory-data-access.rst new file mode 100644 index 000000000..e02e870b7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/disable-directory-data-access.rst @@ -0,0 +1,10 @@ +**To disable Directory Service Data API for a directory** + +The following ``disable-directory-data-access`` example disables the Directory Service Data API for the specified directory. :: + + aws ds disable-directory-data-access \ + --directory-id d-1234567890 + +This command produces no output. + +For more information, see `Enabling or disabling user and group management or AWS Directory Service Data `__ in the *AWS Directory Service Administration Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/disable-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/disable-user.rst new file mode 100644 index 000000000..fc71978b8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/disable-user.rst @@ -0,0 +1,11 @@ +**To disable a user** + +The following ``disable-user`` example disables the specified user in the specified directory. :: + + aws ds-data disable-user \ + --directory-id d-1234567890 \ + --sam-account-name 'john.doe' + +This command produces no output. + +For more information, see `Disabling an AWS Managed Microsoft AD user `__ in the *AWS Directory Service Administration Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/enable-directory-data-access.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/enable-directory-data-access.rst new file mode 100644 index 000000000..2be21265a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/enable-directory-data-access.rst @@ -0,0 +1,10 @@ +**To enable Directory Service Data API for a directory** + +The following ``enable-directory-data-access`` example enables the Directory Service Data API for the specified directory. :: + + aws ds enable-directory-data-access \ + --directory-id d-1234567890 + +This command produces no output. + +For more information, see `Enabling or disabling user and group management or AWS Directory Service Data `__ in the *AWS Directory Service Administration Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/list-group-members.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/list-group-members.rst new file mode 100644 index 000000000..157d632a6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/list-group-members.rst @@ -0,0 +1,29 @@ +**To list a directory's group members** + +The following ``list-group-members`` example lists the group members for the specified group in the specified directory. :: + + aws ds-data list-group-members \ + --directory-id d-1234567890 \ + --sam-account-name 'sales' + +Output:: + + { + "Members": [ + { + "MemberType": "USER", + "SAMAccountName": "Jane Doe", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4568" + }, + { + "MemberType": "USER", + "SAMAccountName": "John Doe", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4569" + } + ], + "DirectoryId": "d-1234567890", + "MemberRealm": "corp.example.com", + "Realm": "corp.example.com" + } + +For more information, see `Viewing and updating an AWS Managed Microsoft AD group's details `__ in the *AWS Directory Service Administration Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/list-groups-for-member.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/list-groups-for-member.rst new file mode 100644 index 000000000..1ac8a8746 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/list-groups-for-member.rst @@ -0,0 +1,25 @@ +**To list a directory's group membership** + +The following ``list-groups-for-member`` example lists group membership for the specified user in the specified directory. :: + + aws ds-data list-groups-for-member \ + --directory-id d-1234567890 \ + --sam-account-name 'john.doe' + +Output:: + + { + "Groups": [ + { + "GroupScope": "Global", + "GroupType": "Security", + "SAMAccountName": "Domain Users", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4567" + } + ], + "DirectoryId": "d-1234567890", + "MemberRealm": "corp.example.com", + "Realm": "corp.example.com" + } + +For more information, see `Viewing and updating an AWS Managed Microsoft AD user `__ in the *AWS Directory Service Administration Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/list-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/list-groups.rst new file mode 100644 index 000000000..d01ce5f2b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/list-groups.rst @@ -0,0 +1,503 @@ +**To list a directory's groups** + +The following ``list-groups`` example lists groups in the specified directory. :: + + aws ds-data list-groups \ + --directory-id d-1234567890 + +Output:: + + { + "Groups": [ + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Administrators", + "SID": "S-1-2-33-441" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Users", + "SID": "S-1-2-33-442" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Guests", + "SID": "S-1-2-33-443" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Print Operators", + "SID": "S-1-2-33-444" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Backup Operators", + "SID": "S-1-2-33-445" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Replicator", + "SID": "S-1-2-33-446" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Remote Desktop Users", + "SID": "S-1-2-33-447" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Network Configuration Operators", + "SID": "S-1-2-33-448" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Performance Monitor Users", + "SID": "S-1-2-33-449" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Performance Log Users", + "SID": "S-1-2-33-450" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Distributed COM Users", + "SID": "S-1-2-33-451" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "IIS_IUSRS", + "SID": "S-1-2-33-452" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Cryptographic Operators", + "SID": "S-1-2-33-453" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Event Log Readers", + "SID": "S-1-2-33-454" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Certificate Service DCOM Access", + "SID": "S-1-2-33-456" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "RDS Remote Access Servers", + "SID": "S-1-2-33-457" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "RDS Endpoint Servers", + "SID": "S-1-2-33-458" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "RDS Management Servers", + "SID": "S-1-2-33-459" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Hyper-V Administrators", + "SID": "S-1-2-33-460" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Access Control Assistance Operators", + "SID": "S-1-2-33-461" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Remote Management Users", + "SID": "S-1-2-33-462" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Storage Replica Administrators", + "SID": "S-1-2-33-463" + }, + { + "GroupScope": "Global", + "GroupType": "Security", + "SAMAccountName": "Domain Computers", + "SID": "S-1-2-34-56789123456-7891012345-6789123486-789" + }, + { + "GroupScope": "Global", + "GroupType": "Security", + "SAMAccountName": "Domain Controllers", + "SID": "S-1-2-34-56789123456-7891012345-6789123486-790" + }, + { + "GroupScope": "Universal", + "GroupType": "Security", + "SAMAccountName": "Schema Admins", + "SID": "S-1-2-34-56789123456-7891012345-6789123486-791" + }, + { + "GroupScope": "Universal", + "GroupType": "Security", + "SAMAccountName": "Enterprise Admins", + "SID": "S-1-2-34-56789123456-7891012345-6789123486-792" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "Cert Publishers", + "SID": "S-1-2-34-56789123456-7891012345-6789123486-793" + }, + { + "GroupScope": "Global", + "GroupType": "Security", + "SAMAccountName": "Domain Admins", + "SID": "S-1-2-34-56789123456-7891012345-6789123486-794" + }, + { + "GroupScope": "Global", + "GroupType": "Security", + "SAMAccountName": "Domain Users", + "SID": "S-1-2-34-56789123456-7891012345-6789123486-795" + }, + { + "GroupScope": "Global", + "GroupType": "Security", + "SAMAccountName": "Domain Guests", + "SID": "S-1-2-34-56789123456-7891012345-6789123486-796" + }, + { + "GroupScope": "Global", + "GroupType": "Security", + "SAMAccountName": "Group Policy Creator Owners", + "SID": "S-1-2-34-56789123456-7891012345-6789123486-797" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "RAS and IAS Servers", + "SID": "S-1-2-34-56789123456-7891012345-6789123486-798" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Server Operators", + "SID": "S-1-2-33-464" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Account Operators", + "SID": "S-1-2-33-465" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Pre-Windows 2000 Compatible Access", + "SID": "S-1-2-33-466" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Incoming Forest Trust Builders", + "SID": "S-1-2-33-467" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Windows Authorization Access Group", + "SID": "S-1-2-33-468" + }, + { + "GroupScope": "BuiltinLocal", + "GroupType": "Security", + "SAMAccountName": "Terminal Server License Servers", + "SID": "S-1-2-33-469" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "Allowed RODC Password Replication Group", + "SID": "S-1-2-34-56789123456-7891012345-6789123486-798" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "Denied RODC Password Replication Group", + "SID": "S-1-2-34-56789123456-7891012345-6789123486-799" + }, + { + "GroupScope": "Global", + "GroupType": "Security", + "SAMAccountName": "Read-only Domain Controllers", + "SID": "S-1-2-34-56789123456-7891012345-6789123486-800" + }, + { + "GroupScope": "Universal", + "GroupType": "Security", + "SAMAccountName": "Enterprise Read-only Domain Controllers", + "SID": "S-1-2-34-56789123456-7891012345-6789123486-801" + }, + { + "GroupScope": "Global", + "GroupType": "Security", + "SAMAccountName": "Cloneable Domain Controllers", + "SID": "S-1-2-34-56789123456-7891012345-6789123486-802" + }, + { + "GroupScope": "Global", + "GroupType": "Security", + "SAMAccountName": "Protected Users", + "SID": "S-1-2-34-56789123456-7891012345-6789123486-803" + }, + { + "GroupScope": "Global", + "GroupType": "Security", + "SAMAccountName": "Key Admins", + "SID": "S-1-2-34-56789123456-7891012345-6789123486-804" + }, + { + "GroupScope": "Universal", + "GroupType": "Security", + "SAMAccountName": "Enterprise Key Admins", + "SID": "S-1-2-34-56789123456-7891012345-6789123486-805" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "DnsAdmins", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4567" + }, + { + "GroupScope": "Global", + "GroupType": "Security", + "SAMAccountName": "DnsUpdateProxy", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4568" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "Admins", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4569" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWSAdministrators", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4570" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Object Management Service Accounts", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4571" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Private CA Connector for AD Delegated Group", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4572" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Application and Service Delegated Group", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4573" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated Administrators", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4574" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated FSx Administrators", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4575" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated Account Operators", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4576" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated Active Directory Based Activation Administrators", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4577" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated Allowed to Authenticate Objects", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4578" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated Allowed to Authenticate to Domain Controllers", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4579" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated Deleted Object Lifetime Administrators", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4580" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated Distributed File System Administrators", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4581" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated Dynamic Host Configuration Protocol Administrators", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4582" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated Enterprise Certificate Authority Administrators", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4583" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated Fine Grained Password Policy Administrators", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4584" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated Group Policy Administrators", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4585" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated Managed Service Account Administrators", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4586" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated Read Foreign Security Principals", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4587" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated Remote Access Service Administrators", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4588" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated Replicate Directory Changes Administrators", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4588" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated Sites and Services Administrators", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4589" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated System Management Administrators", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4590" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated Terminal Server Licensing Administrators", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4591" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated User Principal Name Suffix Administrators", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4592" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated Add Workstations To Domain Users", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4593" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated Domain Name System Administrators", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4594" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated Kerberos Delegation Administrators", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4595" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated Server Administrators", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4596" + }, + { + "GroupScope": "DomainLocal", + "GroupType": "Security", + "SAMAccountName": "AWS Delegated MS-NPRC Non-Compliant Devices", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4597" + }, + { + "GroupScope": "Global", + "GroupType": "Security", + "SAMAccountName": "Remote Access", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4598" + }, + { + "GroupScope": "Global", + "GroupType": "Security", + "SAMAccountName": "Accounting", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4599" + }, + { + "GroupScope": "Global", + "GroupType": "Distribution", + "SAMAccountName": "sales", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4567" + } + ], + "DirectoryId": "d-1234567890", + "Realm": "corp.example.com" + } + +For more information, see `Viewing and updating an AWS Managed Microsoft AD group's details `__ in the *AWS Directory Service Administration Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/list-users.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/list-users.rst new file mode 100644 index 000000000..6b3a43792 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/list-users.rst @@ -0,0 +1,57 @@ +**To list a directory's users** + +The following ``list-users`` example lists users in the specified directory. :: + + aws ds-data list-users \ + --directory-id d-1234567890 + +Output:: + + { + "Users": [ + { + "Enabled": true, + "SAMAccountName": "Administrator", + "SID": "S-1-2-34-5678910123-4567895012-3456789012-345" + }, + { + "Enabled": false, + "SAMAccountName": "Guest", + "SID": "S-1-2-34-5678910123-4567895012-3456789012-345" + }, + { + "Enabled": false, + "SAMAccountName": "krbtgt", + "SID": "S-1-2-34-5678910123-4567895012-3456789012-346" + }, + { + "Enabled": true, + "SAMAccountName": "Admin", + "SID": "S-1-2-34-5678910123-4567895012-3456789012-347" + }, + { + "Enabled": true, + "SAMAccountName": "Richard Roe", + "SID": "S-1-2-34-5678910123-4567895012-3456789012-348" + }, + { + "Enabled": true, + "SAMAccountName": "Jane Doe", + "SID": "S-1-2-34-5678910123-4567895012-3456789012-349" + }, + { + "Enabled": true, + "SAMAccountName": "AWS_WGnzYlN6YyY", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4567" + }, + { + "Enabled": true, + "SAMAccountName": "john.doe", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4568" + } + ], + "DirectoryId": "d-1234567890", + "Realm": "corp.example.com" + } + +For more information, see `Viewing and updating an AWS Managed Microsoft AD user `__ in the *AWS Directory Service Administration Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/remove-group-member.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/remove-group-member.rst new file mode 100644 index 000000000..a44c8313c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/remove-group-member.rst @@ -0,0 +1,12 @@ +**To remove a group member from a directory** + +The following ``remove-group-member`` example removes the specified group member from the specified group in the specified directory. :: + + aws ds-data remove-group-member \ + --directory-id d-1234567890 \ + --group-name 'sales' \ + --member-name 'john.doe' + +This command produces no output. + +For more information, see `Adding and removing AWS Managed Microsoft AD members to groups and groups to groups `__ in the *AWS Directory Service Administration Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/reset-user-password.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/reset-user-password.rst new file mode 100644 index 000000000..524985116 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/reset-user-password.rst @@ -0,0 +1,12 @@ +**To reset a user password in a directory** + +The following ``reset-user-password`` example resets and enables the specified user in the specified directory. :: + + aws ds reset-user-password \ + --directory-id d-1234567890 \ + --user-name 'john.doe' \ + --new-password 'password' + +This command produces no output. + +For more information, see `Resetting and enabling an AWS Managed Microsoft AD user's password `__ in the *AWS Directory Service Administration Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/search-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/search-groups.rst new file mode 100644 index 000000000..dc8fb354d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/search-groups.rst @@ -0,0 +1,25 @@ +**To search for a group in a directory** + +The following ``search-groups`` example searches for the specified group in the specified directory. :: + + aws ds-data search-groups \ + --directory-id d-1234567890 \ + --search-attributes 'SamAccountName' \ + --search-string 'sales' + +Output:: + + { + "Groups": [ + { + "GroupScope": "Global", + "GroupType": "Distribution", + "SAMAccountName": "sales", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4567" + } + ], + "DirectoryId": "d-1234567890", + "Realm": "corp.example.com" + } + +For more information, see `Viewing and updating an AWS Managed Microsoft AD group's details `__ in the *AWS Directory Service Administration Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/search-users.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/search-users.rst new file mode 100644 index 000000000..091b99e7a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/search-users.rst @@ -0,0 +1,24 @@ +**To search for a user in a directory** + +The following ``search-users`` example searches for the specified user in the specified directory. :: + + aws ds-data search-users \ + --directory-id d-1234567890 \ + --search-attributes 'SamAccountName' \ + --Search-string 'john.doe' + +Output:: + + { + "Users": [ + { + "Enabled": true, + "SAMAccountName": "john.doe", + "SID": "S-1-2-34-5678901234-5678901234-5678910123-4567" + } + ], + "DirectoryId": "d-1234567890", + "Realm": "corp.example.com" + } + +For more information, see `Viewing and updating an AWS Managed Microsoft AD user `__ in the *AWS Directory Service Administration Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/update-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/update-group.rst new file mode 100644 index 000000000..e4198aa3e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/update-group.rst @@ -0,0 +1,13 @@ +**To update a group's attribute in a directory** + +The following ``update-group`` example updates the specified attribute for the specified group in the specified directory. :: + + aws ds-data update-group \ + --directory-id d-1234567890 \ + --sam-account-name 'sales' \ + --update-type 'REPLACE' \ + --group-type 'Distribution' + +This command produces no output. + +For more information, see `Viewing and updating an AWS Managed Microsoft AD group's details `__ in the *AWS Directory Service Administration Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/update-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/update-user.rst new file mode 100644 index 000000000..08f82ae3d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds-data/update-user.rst @@ -0,0 +1,13 @@ +**To update a user's attribute in a directory** + +The following ``update-user`` example updates the specified attribute for the specified user in the specified directory. :: + + aws ds-data update-user \ + --directory-id d-1234567890 \ + --sam-account-name 'john.doe' \ + --update-type 'ADD' \ + --email-address 'example.corp.com' + +This command produces no output. + +For more information, see `Viewing and updating an AWS Managed Microsoft AD user `__ in the *AWS Directory Service Administration Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds/describe-directories.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds/describe-directories.rst new file mode 100644 index 000000000..9f821f2ac --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds/describe-directories.rst @@ -0,0 +1,50 @@ +**To get details about your directories** + +The following ``describe-directories`` example displays details about the specified directory. :: + + aws ds describe-directories \ + --directory-id d-a1b2c3d4e5 + +Output:: + + { + "DirectoryDescriptions": [ + { + "DirectoryId": "d-a1b2c3d4e5", + "Name": "mydirectory.example.com", + "ShortName": "mydirectory", + "Size": "Small", + "Edition": "Standard", + "Alias": "d-a1b2c3d4e5", + "AccessUrl": "d-a1b2c3d4e5.awsapps.com", + "Stage": "Active", + "ShareStatus": "Shared", + "ShareMethod": "HANDSHAKE", + "ShareNotes": "These are my share notes", + "LaunchTime": "2019-07-08T15:33:46.327000-07:00", + "StageLastUpdatedDateTime": "2019-07-08T15:59:12.307000-07:00", + "Type": "SharedMicrosoftAD", + "SsoEnabled": false, + "DesiredNumberOfDomainControllers": 0, + "OwnerDirectoryDescription": { + "DirectoryId": "d-b2c3d4e5f6", + "AccountId": "123456789111", + "DnsIpAddrs": [ + "203.113.0.248", + "203.113.0.253" + ], + "VpcSettings": { + "VpcId": "vpc-a1b2c3d4", + "SubnetIds": [ + "subnet-a1b2c3d4", + "subnet-d4c3b2a1" + ], + "AvailabilityZones": [ + "us-west-2a", + "us-west-2c" + ] + } + } + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds/describe-trusts.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds/describe-trusts.rst new file mode 100644 index 000000000..1b53e08e1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ds/describe-trusts.rst @@ -0,0 +1,25 @@ +**To get details about your trust relationships** + +The following ``describe-trusts`` example displays details about the trust relationships for the specified directory. :: + + aws ds describe-trusts \ + --directory-id d-a1b2c3d4e5 + +Output:: + + { + "Trusts": [ + { + "DirectoryId": "d-a1b2c3d4e5", + "TrustId": "t-9a8b7c6d5e", + "RemoteDomainName": "other.example.com", + "TrustType": "Forest", + "TrustDirection": "Two-Way", + "TrustState": "Verified", + "CreatedDateTime": "2017-06-20T18:08:45.614000-07:00", + "LastUpdatedDateTime": "2019-06-04T10:52:12.410000-07:00", + "StateLastUpdatedDateTime": "2019-06-04T10:52:12.410000-07:00", + "SelectiveAuth": "Disabled" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/batch-get-item.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/batch-get-item.rst new file mode 100644 index 000000000..c66584189 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/batch-get-item.rst @@ -0,0 +1,62 @@ +**To retrieve multiple items from a table** + +The following ``batch-get-items`` example reads multiple items from the ``MusicCollection`` table using a batch of three ``GetItem`` requests, and requests the number of read capacity units consumed by the operation. The command returns only the ``AlbumTitle`` attribute. :: + + aws dynamodb batch-get-item \ + --request-items file://request-items.json \ + --return-consumed-capacity TOTAL + +Contents of ``request-items.json``:: + + { + "MusicCollection": { + "Keys": [ + { + "Artist": {"S": "No One You Know"}, + "SongTitle": {"S": "Call Me Today"} + }, + { + "Artist": {"S": "Acme Band"}, + "SongTitle": {"S": "Happy Day"} + }, + { + "Artist": {"S": "No One You Know"}, + "SongTitle": {"S": "Scared of My Shadow"} + } + ], + "ProjectionExpression":"AlbumTitle" + } + } + +Output:: + + { + "Responses": { + "MusicCollection": [ + { + "AlbumTitle": { + "S": "Somewhat Famous" + } + }, + { + "AlbumTitle": { + "S": "Blue Sky Blues" + } + }, + { + "AlbumTitle": { + "S": "Louder Than Ever" + } + } + ] + }, + "UnprocessedKeys": {}, + "ConsumedCapacity": [ + { + "TableName": "MusicCollection", + "CapacityUnits": 1.5 + } + ] + } + +For more information, see `Batch Operations `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/batch-write-item.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/batch-write-item.rst new file mode 100644 index 000000000..a9cac92df --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/batch-write-item.rst @@ -0,0 +1,90 @@ +**To add multiple items to a table** + +The following ``batch-write-item`` example adds three new items to the ``MusicCollection`` table using a batch of three ``PutItem`` requests. It also requests information about the number of write capacity units consumed by the operation and any item collections modified by the operation. :: + + aws dynamodb batch-write-item \ + --request-items file://request-items.json \ + --return-consumed-capacity INDEXES \ + --return-item-collection-metrics SIZE + +Contents of ``request-items.json``:: + + { + "MusicCollection": [ + { + "PutRequest": { + "Item": { + "Artist": {"S": "No One You Know"}, + "SongTitle": {"S": "Call Me Today"}, + "AlbumTitle": {"S": "Somewhat Famous"} + } + } + }, + { + "PutRequest": { + "Item": { + "Artist": {"S": "Acme Band"}, + "SongTitle": {"S": "Happy Day"}, + "AlbumTitle": {"S": "Songs About Life"} + } + } + }, + { + "PutRequest": { + "Item": { + "Artist": {"S": "No One You Know"}, + "SongTitle": {"S": "Scared of My Shadow"}, + "AlbumTitle": {"S": "Blue Sky Blues"} + } + } + } + ] + } + +Output:: + + { + "UnprocessedItems": {}, + "ItemCollectionMetrics": { + "MusicCollection": [ + { + "ItemCollectionKey": { + "Artist": { + "S": "No One You Know" + } + }, + "SizeEstimateRangeGB": [ + 0.0, + 1.0 + ] + }, + { + "ItemCollectionKey": { + "Artist": { + "S": "Acme Band" + } + }, + "SizeEstimateRangeGB": [ + 0.0, + 1.0 + ] + } + ] + }, + "ConsumedCapacity": [ + { + "TableName": "MusicCollection", + "CapacityUnits": 6.0, + "Table": { + "CapacityUnits": 3.0 + }, + "LocalSecondaryIndexes": { + "AlbumTitleIndex": { + "CapacityUnits": 3.0 + } + } + } + ] + } + +For more information, see `Batch Operations `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/create-backup.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/create-backup.rst new file mode 100755 index 000000000..b7e4cc894 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/create-backup.rst @@ -0,0 +1,22 @@ +**To create a backup for an existing DynamoDB table** + +The following ``create-backup`` example creates a backup of the ``MusicCollection`` table. :: + + aws dynamodb create-backup \ + --table-name MusicCollection \ + --backup-name MusicCollectionBackup + +Output:: + + { + "BackupDetails": { + "BackupArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01576616366715-b4e58d3a", + "BackupName": "MusicCollectionBackup", + "BackupSizeBytes": 0, + "BackupStatus": "CREATING", + "BackupType": "USER", + "BackupCreationDateTime": 1576616366.715 + } + } + +For more information, see `On-Demand Backup and Restore for DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/create-global-table.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/create-global-table.rst new file mode 100755 index 000000000..674b7e56e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/create-global-table.rst @@ -0,0 +1,29 @@ +**To create a global table** + +The following ``create-global-table`` example creates a global table from two identical tables in the specified, separate AWS Regions. :: + + aws dynamodb create-global-table \ + --global-table-name MusicCollection \ + --replication-group RegionName=us-east-2 RegionName=us-east-1 \ + --region us-east-2 + +Output:: + + { + "GlobalTableDescription": { + "ReplicationGroup": [ + { + "RegionName": "us-east-2" + }, + { + "RegionName": "us-east-1" + } + ], + "GlobalTableArn": "arn:aws:dynamodb::123456789012:global-table/MusicCollection", + "CreationDateTime": 1576625818.532, + "GlobalTableStatus": "CREATING", + "GlobalTableName": "MusicCollection" + } + } + +For more information, see `DynamoDB Global Tables `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/create-table.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/create-table.rst new file mode 100644 index 000000000..4eba4a872 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/create-table.rst @@ -0,0 +1,744 @@ +**Example 1: To create a table with tags** + +The following ``create-table`` example uses the specified attributes and key schema to create a table named ``MusicCollection``. This table uses provisioned throughput and is encrypted at rest using the default AWS owned CMK. The command also applies a tag to the table, with a key of ``Owner`` and a value of ``blueTeam``. :: + + aws dynamodb create-table \ + --table-name MusicCollection \ + --attribute-definitions AttributeName=Artist,AttributeType=S AttributeName=SongTitle,AttributeType=S \ + --key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE \ + --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 \ + --tags Key=Owner,Value=blueTeam + +Output:: + + { + "TableDescription": { + "AttributeDefinitions": [ + { + "AttributeName": "Artist", + "AttributeType": "S" + }, + { + "AttributeName": "SongTitle", + "AttributeType": "S" + } + ], + "ProvisionedThroughput": { + "NumberOfDecreasesToday": 0, + "WriteCapacityUnits": 5, + "ReadCapacityUnits": 5 + }, + "TableSizeBytes": 0, + "TableName": "MusicCollection", + "TableStatus": "CREATING", + "KeySchema": [ + { + "KeyType": "HASH", + "AttributeName": "Artist" + }, + { + "KeyType": "RANGE", + "AttributeName": "SongTitle" + } + ], + "ItemCount": 0, + "CreationDateTime": "2020-05-26T16:04:41.627000-07:00", + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", + "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + } + } + +For more information, see `Basic Operations for Tables `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 2: To create a table in On-Demand Mode** + +The following example creates a table called ``MusicCollection`` using on-demand mode, rather than provisioned throughput mode. This is useful for tables with unpredictable workloads. :: + + aws dynamodb create-table \ + --table-name MusicCollection \ + --attribute-definitions AttributeName=Artist,AttributeType=S AttributeName=SongTitle,AttributeType=S \ + --key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE \ + --billing-mode PAY_PER_REQUEST + +Output:: + + { + "TableDescription": { + "AttributeDefinitions": [ + { + "AttributeName": "Artist", + "AttributeType": "S" + }, + { + "AttributeName": "SongTitle", + "AttributeType": "S" + } + ], + "TableName": "MusicCollection", + "KeySchema": [ + { + "AttributeName": "Artist", + "KeyType": "HASH" + }, + { + "AttributeName": "SongTitle", + "KeyType": "RANGE" + } + ], + "TableStatus": "CREATING", + "CreationDateTime": "2020-05-27T11:44:10.807000-07:00", + "ProvisionedThroughput": { + "NumberOfDecreasesToday": 0, + "ReadCapacityUnits": 0, + "WriteCapacityUnits": 0 + }, + "TableSizeBytes": 0, + "ItemCount": 0, + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", + "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "BillingModeSummary": { + "BillingMode": "PAY_PER_REQUEST" + } + } + } + +For more information, see `Basic Operations for Tables `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 3: To create a table and encrypt it with a Customer Managed CMK** + +The following example creates a table named ``MusicCollection`` and encrypts it using a customer managed CMK. :: + + aws dynamodb create-table \ + --table-name MusicCollection \ + --attribute-definitions AttributeName=Artist,AttributeType=S AttributeName=SongTitle,AttributeType=S \ + --key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE \ + --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 \ + --sse-specification Enabled=true,SSEType=KMS,KMSMasterKeyId=abcd1234-abcd-1234-a123-ab1234a1b234 + +Output:: + + { + "TableDescription": { + "AttributeDefinitions": [ + { + "AttributeName": "Artist", + "AttributeType": "S" + }, + { + "AttributeName": "SongTitle", + "AttributeType": "S" + } + ], + "TableName": "MusicCollection", + "KeySchema": [ + { + "AttributeName": "Artist", + "KeyType": "HASH" + }, + { + "AttributeName": "SongTitle", + "KeyType": "RANGE" + } + ], + "TableStatus": "CREATING", + "CreationDateTime": "2020-05-27T11:12:16.431000-07:00", + "ProvisionedThroughput": { + "NumberOfDecreasesToday": 0, + "ReadCapacityUnits": 5, + "WriteCapacityUnits": 5 + }, + "TableSizeBytes": 0, + "ItemCount": 0, + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", + "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "SSEDescription": { + "Status": "ENABLED", + "SSEType": "KMS", + "KMSMasterKeyArn": "arn:aws:kms:us-west-2:123456789012:key/abcd1234-abcd-1234-a123-ab1234a1b234" + } + } + } + +For more information, see `Basic Operations for Tables `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 4: To create a table with a Local Secondary Index** + +The following example uses the specified attributes and key schema to create a table named ``MusicCollection`` with a Local Secondary Index named ``AlbumTitleIndex``. :: + + aws dynamodb create-table \ + --table-name MusicCollection \ + --attribute-definitions AttributeName=Artist,AttributeType=S AttributeName=SongTitle,AttributeType=S AttributeName=AlbumTitle,AttributeType=S \ + --key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE \ + --provisioned-throughput ReadCapacityUnits=10,WriteCapacityUnits=5 \ + --local-secondary-indexes \ + "[ + { + \"IndexName\": \"AlbumTitleIndex\", + \"KeySchema\": [ + {\"AttributeName\": \"Artist\",\"KeyType\":\"HASH\"}, + {\"AttributeName\": \"AlbumTitle\",\"KeyType\":\"RANGE\"} + ], + \"Projection\": { + \"ProjectionType\": \"INCLUDE\", + \"NonKeyAttributes\": [\"Genre\", \"Year\"] + } + } + ]" + +Output:: + + { + "TableDescription": { + "AttributeDefinitions": [ + { + "AttributeName": "AlbumTitle", + "AttributeType": "S" + }, + { + "AttributeName": "Artist", + "AttributeType": "S" + }, + { + "AttributeName": "SongTitle", + "AttributeType": "S" + } + ], + "TableName": "MusicCollection", + "KeySchema": [ + { + "AttributeName": "Artist", + "KeyType": "HASH" + }, + { + "AttributeName": "SongTitle", + "KeyType": "RANGE" + } + ], + "TableStatus": "CREATING", + "CreationDateTime": "2020-05-26T15:59:49.473000-07:00", + "ProvisionedThroughput": { + "NumberOfDecreasesToday": 0, + "ReadCapacityUnits": 10, + "WriteCapacityUnits": 5 + }, + "TableSizeBytes": 0, + "ItemCount": 0, + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", + "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "LocalSecondaryIndexes": [ + { + "IndexName": "AlbumTitleIndex", + "KeySchema": [ + { + "AttributeName": "Artist", + "KeyType": "HASH" + }, + { + "AttributeName": "AlbumTitle", + "KeyType": "RANGE" + } + ], + "Projection": { + "ProjectionType": "INCLUDE", + "NonKeyAttributes": [ + "Genre", + "Year" + ] + }, + "IndexSizeBytes": 0, + "ItemCount": 0, + "IndexArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/index/AlbumTitleIndex" + } + ] + } + } + +For more information, see `Basic Operations for Tables `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 5: To create a table with a Global Secondary Index** + +The following example creates a table named ``GameScores`` with a Global Secondary Index called ``GameTitleIndex``. The base table has a partition key of ``UserId`` and a sort key of ``GameTitle``, allowing you to find an individual user's best score for a specific game efficiently, whereas the GSI has a partition key of ``GameTitle`` and a sort key of ``TopScore``, allowing you to quickly find the overall highest score for a particular game. :: + + aws dynamodb create-table \ + --table-name GameScores \ + --attribute-definitions AttributeName=UserId,AttributeType=S AttributeName=GameTitle,AttributeType=S AttributeName=TopScore,AttributeType=N \ + --key-schema AttributeName=UserId,KeyType=HASH \ + AttributeName=GameTitle,KeyType=RANGE \ + --provisioned-throughput ReadCapacityUnits=10,WriteCapacityUnits=5 \ + --global-secondary-indexes \ + "[ + { + \"IndexName\": \"GameTitleIndex\", + \"KeySchema\": [ + {\"AttributeName\":\"GameTitle\",\"KeyType\":\"HASH\"}, + {\"AttributeName\":\"TopScore\",\"KeyType\":\"RANGE\"} + ], + \"Projection\": { + \"ProjectionType\":\"INCLUDE\", + \"NonKeyAttributes\":[\"UserId\"] + }, + \"ProvisionedThroughput\": { + \"ReadCapacityUnits\": 10, + \"WriteCapacityUnits\": 5 + } + } + ]" + +Output:: + + { + "TableDescription": { + "AttributeDefinitions": [ + { + "AttributeName": "GameTitle", + "AttributeType": "S" + }, + { + "AttributeName": "TopScore", + "AttributeType": "N" + }, + { + "AttributeName": "UserId", + "AttributeType": "S" + } + ], + "TableName": "GameScores", + "KeySchema": [ + { + "AttributeName": "UserId", + "KeyType": "HASH" + }, + { + "AttributeName": "GameTitle", + "KeyType": "RANGE" + } + ], + "TableStatus": "CREATING", + "CreationDateTime": "2020-05-26T17:28:15.602000-07:00", + "ProvisionedThroughput": { + "NumberOfDecreasesToday": 0, + "ReadCapacityUnits": 10, + "WriteCapacityUnits": 5 + }, + "TableSizeBytes": 0, + "ItemCount": 0, + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores", + "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "GlobalSecondaryIndexes": [ + { + "IndexName": "GameTitleIndex", + "KeySchema": [ + { + "AttributeName": "GameTitle", + "KeyType": "HASH" + }, + { + "AttributeName": "TopScore", + "KeyType": "RANGE" + } + ], + "Projection": { + "ProjectionType": "INCLUDE", + "NonKeyAttributes": [ + "UserId" + ] + }, + "IndexStatus": "CREATING", + "ProvisionedThroughput": { + "NumberOfDecreasesToday": 0, + "ReadCapacityUnits": 10, + "WriteCapacityUnits": 5 + }, + "IndexSizeBytes": 0, + "ItemCount": 0, + "IndexArn": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores/index/GameTitleIndex" + } + ] + } + } + +For more information, see `Basic Operations for Tables `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 6: To create a table with multiple Global Secondary Indexes at once** + +The following example creates a table named ``GameScores`` with two Global Secondary Indexes. The GSI schemas are passed via a file, rather than on the command line. :: + + aws dynamodb create-table \ + --table-name GameScores \ + --attribute-definitions AttributeName=UserId,AttributeType=S AttributeName=GameTitle,AttributeType=S AttributeName=TopScore,AttributeType=N AttributeName=Date,AttributeType=S \ + --key-schema AttributeName=UserId,KeyType=HASH AttributeName=GameTitle,KeyType=RANGE \ + --provisioned-throughput ReadCapacityUnits=10,WriteCapacityUnits=5 \ + --global-secondary-indexes file://gsi.json + +Contents of ``gsi.json``:: + + [ + { + "IndexName": "GameTitleIndex", + "KeySchema": [ + { + "AttributeName": "GameTitle", + "KeyType": "HASH" + }, + { + "AttributeName": "TopScore", + "KeyType": "RANGE" + } + ], + "Projection": { + "ProjectionType": "ALL" + }, + "ProvisionedThroughput": { + "ReadCapacityUnits": 10, + "WriteCapacityUnits": 5 + } + }, + { + "IndexName": "GameDateIndex", + "KeySchema": [ + { + "AttributeName": "GameTitle", + "KeyType": "HASH" + }, + { + "AttributeName": "Date", + "KeyType": "RANGE" + } + ], + "Projection": { + "ProjectionType": "ALL" + }, + "ProvisionedThroughput": { + "ReadCapacityUnits": 5, + "WriteCapacityUnits": 5 + } + } + ] + +Output:: + + { + "TableDescription": { + "AttributeDefinitions": [ + { + "AttributeName": "Date", + "AttributeType": "S" + }, + { + "AttributeName": "GameTitle", + "AttributeType": "S" + }, + { + "AttributeName": "TopScore", + "AttributeType": "N" + }, + { + "AttributeName": "UserId", + "AttributeType": "S" + } + ], + "TableName": "GameScores", + "KeySchema": [ + { + "AttributeName": "UserId", + "KeyType": "HASH" + }, + { + "AttributeName": "GameTitle", + "KeyType": "RANGE" + } + ], + "TableStatus": "CREATING", + "CreationDateTime": "2020-08-04T16:40:55.524000-07:00", + "ProvisionedThroughput": { + "NumberOfDecreasesToday": 0, + "ReadCapacityUnits": 10, + "WriteCapacityUnits": 5 + }, + "TableSizeBytes": 0, + "ItemCount": 0, + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores", + "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "GlobalSecondaryIndexes": [ + { + "IndexName": "GameTitleIndex", + "KeySchema": [ + { + "AttributeName": "GameTitle", + "KeyType": "HASH" + }, + { + "AttributeName": "TopScore", + "KeyType": "RANGE" + } + ], + "Projection": { + "ProjectionType": "ALL" + }, + "IndexStatus": "CREATING", + "ProvisionedThroughput": { + "NumberOfDecreasesToday": 0, + "ReadCapacityUnits": 10, + "WriteCapacityUnits": 5 + }, + "IndexSizeBytes": 0, + "ItemCount": 0, + "IndexArn": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores/index/GameTitleIndex" + }, + { + "IndexName": "GameDateIndex", + "KeySchema": [ + { + "AttributeName": "GameTitle", + "KeyType": "HASH" + }, + { + "AttributeName": "Date", + "KeyType": "RANGE" + } + ], + "Projection": { + "ProjectionType": "ALL" + }, + "IndexStatus": "CREATING", + "ProvisionedThroughput": { + "NumberOfDecreasesToday": 0, + "ReadCapacityUnits": 5, + "WriteCapacityUnits": 5 + }, + "IndexSizeBytes": 0, + "ItemCount": 0, + "IndexArn": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores/index/GameDateIndex" + } + ] + } + } + +For more information, see `Basic Operations for Tables `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 7: To create a table with Streams enabled** + +The following example creates a table called ``GameScores`` with DynamoDB Streams enabled. Both new and old images of each item will be written to the stream. :: + + aws dynamodb create-table \ + --table-name GameScores \ + --attribute-definitions AttributeName=UserId,AttributeType=S AttributeName=GameTitle,AttributeType=S \ + --key-schema AttributeName=UserId,KeyType=HASH AttributeName=GameTitle,KeyType=RANGE \ + --provisioned-throughput ReadCapacityUnits=10,WriteCapacityUnits=5 \ + --stream-specification StreamEnabled=TRUE,StreamViewType=NEW_AND_OLD_IMAGES + +Output:: + + { + "TableDescription": { + "AttributeDefinitions": [ + { + "AttributeName": "GameTitle", + "AttributeType": "S" + }, + { + "AttributeName": "UserId", + "AttributeType": "S" + } + ], + "TableName": "GameScores", + "KeySchema": [ + { + "AttributeName": "UserId", + "KeyType": "HASH" + }, + { + "AttributeName": "GameTitle", + "KeyType": "RANGE" + } + ], + "TableStatus": "CREATING", + "CreationDateTime": "2020-05-27T10:49:34.056000-07:00", + "ProvisionedThroughput": { + "NumberOfDecreasesToday": 0, + "ReadCapacityUnits": 10, + "WriteCapacityUnits": 5 + }, + "TableSizeBytes": 0, + "ItemCount": 0, + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores", + "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "StreamSpecification": { + "StreamEnabled": true, + "StreamViewType": "NEW_AND_OLD_IMAGES" + }, + "LatestStreamLabel": "2020-05-27T17:49:34.056", + "LatestStreamArn": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores/stream/2020-05-27T17:49:34.056" + } + } + +For more information, see `Basic Operations for Tables `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 8: To create a table with Keys-Only Stream enabled** + +The following example creates a table called ``GameScores`` with DynamoDB Streams enabled. Only the key attributes of modified items are written to the stream. :: + + aws dynamodb create-table \ + --table-name GameScores \ + --attribute-definitions AttributeName=UserId,AttributeType=S AttributeName=GameTitle,AttributeType=S \ + --key-schema AttributeName=UserId,KeyType=HASH AttributeName=GameTitle,KeyType=RANGE \ + --provisioned-throughput ReadCapacityUnits=10,WriteCapacityUnits=5 \ + --stream-specification StreamEnabled=TRUE,StreamViewType=KEYS_ONLY + +Output:: + + { + "TableDescription": { + "AttributeDefinitions": [ + { + "AttributeName": "GameTitle", + "AttributeType": "S" + }, + { + "AttributeName": "UserId", + "AttributeType": "S" + } + ], + "TableName": "GameScores", + "KeySchema": [ + { + "AttributeName": "UserId", + "KeyType": "HASH" + }, + { + "AttributeName": "GameTitle", + "KeyType": "RANGE" + } + ], + "TableStatus": "CREATING", + "CreationDateTime": "2023-05-25T18:45:34.140000+00:00", + "ProvisionedThroughput": { + "NumberOfDecreasesToday": 0, + "ReadCapacityUnits": 10, + "WriteCapacityUnits": 5 + }, + "TableSizeBytes": 0, + "ItemCount": 0, + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores", + "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "StreamSpecification": { + "StreamEnabled": true, + "StreamViewType": "KEYS_ONLY" + }, + "LatestStreamLabel": "2023-05-25T18:45:34.140", + "LatestStreamArn": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores/stream/2023-05-25T18:45:34.140", + "DeletionProtectionEnabled": false + } + } + +For more information, see `Change data capture for DynamoDB Streams `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 9: To create a table with the Standard Infrequent Access class** + +The following example creates a table called ``GameScores`` and assigns the Standard-Infrequent Access (DynamoDB Standard-IA) table class. This table class is optimized for storage being the dominant cost. :: + + aws dynamodb create-table \ + --table-name GameScores \ + --attribute-definitions AttributeName=UserId,AttributeType=S AttributeName=GameTitle,AttributeType=S \ + --key-schema AttributeName=UserId,KeyType=HASH AttributeName=GameTitle,KeyType=RANGE \ + --provisioned-throughput ReadCapacityUnits=10,WriteCapacityUnits=5 \ + --table-class STANDARD_INFREQUENT_ACCESS + +Output:: + + { + "TableDescription": { + "AttributeDefinitions": [ + { + "AttributeName": "GameTitle", + "AttributeType": "S" + }, + { + "AttributeName": "UserId", + "AttributeType": "S" + } + ], + "TableName": "GameScores", + "KeySchema": [ + { + "AttributeName": "UserId", + "KeyType": "HASH" + }, + { + "AttributeName": "GameTitle", + "KeyType": "RANGE" + } + ], + "TableStatus": "CREATING", + "CreationDateTime": "2023-05-25T18:33:07.581000+00:00", + "ProvisionedThroughput": { + "NumberOfDecreasesToday": 0, + "ReadCapacityUnits": 10, + "WriteCapacityUnits": 5 + }, + "TableSizeBytes": 0, + "ItemCount": 0, + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores", + "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "TableClassSummary": { + "TableClass": "STANDARD_INFREQUENT_ACCESS" + }, + "DeletionProtectionEnabled": false + } + } + + +For more information, see `Table classes `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 10: To Create a table with Delete Protection enabled** + +The following example creates a table called ``GameScores`` and enables deletion protection. :: + + aws dynamodb create-table \ + --table-name GameScores \ + --attribute-definitions AttributeName=UserId,AttributeType=S AttributeName=GameTitle,AttributeType=S \ + --key-schema AttributeName=UserId,KeyType=HASH AttributeName=GameTitle,KeyType=RANGE \ + --provisioned-throughput ReadCapacityUnits=10,WriteCapacityUnits=5 \ + --deletion-protection-enabled + +Output:: + + { + "TableDescription": { + "AttributeDefinitions": [ + { + "AttributeName": "GameTitle", + "AttributeType": "S" + }, + { + "AttributeName": "UserId", + "AttributeType": "S" + } + ], + "TableName": "GameScores", + "KeySchema": [ + { + "AttributeName": "UserId", + "KeyType": "HASH" + }, + { + "AttributeName": "GameTitle", + "KeyType": "RANGE" + } + ], + "TableStatus": "CREATING", + "CreationDateTime": "2023-05-25T23:02:17.093000+00:00", + "ProvisionedThroughput": { + "NumberOfDecreasesToday": 0, + "ReadCapacityUnits": 10, + "WriteCapacityUnits": 5 + }, + "TableSizeBytes": 0, + "ItemCount": 0, + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores", + "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "DeletionProtectionEnabled": true + } + } + +For more information, see `Using deletion protection `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/delete-backup.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/delete-backup.rst new file mode 100755 index 000000000..c0b741da4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/delete-backup.rst @@ -0,0 +1,47 @@ +**To delete an existing DynamoDB backup** + +The following ``delete-backup`` example deletes the specified existing backup. :: + + aws dynamodb delete-backup \ + --backup-arn arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01576616366715-b4e58d3a + +Output:: + + { + "BackupDescription": { + "BackupDetails": { + "BackupArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01576616366715-b4e58d3a", + "BackupName": "MusicCollectionBackup", + "BackupSizeBytes": 0, + "BackupStatus": "DELETED", + "BackupType": "USER", + "BackupCreationDateTime": 1576616366.715 + }, + "SourceTableDetails": { + "TableName": "MusicCollection", + "TableId": "b0c04bcc-309b-4352-b2ae-9088af169fe2", + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", + "TableSizeBytes": 0, + "KeySchema": [ + { + "AttributeName": "Artist", + "KeyType": "HASH" + }, + { + "AttributeName": "SongTitle", + "KeyType": "RANGE" + } + ], + "TableCreationDateTime": 1576615228.571, + "ProvisionedThroughput": { + "ReadCapacityUnits": 5, + "WriteCapacityUnits": 5 + }, + "ItemCount": 0, + "BillingMode": "PROVISIONED" + }, + "SourceTableFeatureDetails": {} + } + } + +For more information, see `On-Demand Backup and Restore for DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/delete-item.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/delete-item.rst new file mode 100644 index 000000000..6edd18798 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/delete-item.rst @@ -0,0 +1,95 @@ +**Example 1: To delete an item** + +The following ``delete-item`` example deletes an item from the ``MusicCollection`` table and requests details about the item that was deleted and the capacity used by the request. :: + + aws dynamodb delete-item \ + --table-name MusicCollection \ + --key file://key.json \ + --return-values ALL_OLD \ + --return-consumed-capacity TOTAL \ + --return-item-collection-metrics SIZE + +Contents of ``key.json``:: + + { + "Artist": {"S": "No One You Know"}, + "SongTitle": {"S": "Scared of My Shadow"} + } + +Output:: + + { + "Attributes": { + "AlbumTitle": { + "S": "Blue Sky Blues" + }, + "Artist": { + "S": "No One You Know" + }, + "SongTitle": { + "S": "Scared of My Shadow" + } + }, + "ConsumedCapacity": { + "TableName": "MusicCollection", + "CapacityUnits": 2.0 + }, + "ItemCollectionMetrics": { + "ItemCollectionKey": { + "Artist": { + "S": "No One You Know" + } + }, + "SizeEstimateRangeGB": [ + 0.0, + 1.0 + ] + } + } + +For more information, see `Writing an Item `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 2: To delete an item conditionally** + +The following example deletes an item from the ``ProductCatalog`` table only if its ``ProductCategory`` is either ``Sporting Goods`` or ``Gardening Supplies`` and its price is between 500 and 600. It returns details about the item that was deleted. :: + + aws dynamodb delete-item \ + --table-name ProductCatalog \ + --key '{"Id":{"N":"456"}}' \ + --condition-expression "(ProductCategory IN (:cat1, :cat2)) and (#P between :lo and :hi)" \ + --expression-attribute-names file://names.json \ + --expression-attribute-values file://values.json \ + --return-values ALL_OLD + +Contents of ``names.json``:: + + { + "#P": "Price" + } + +Contents of ``values.json``:: + + { + ":cat1": {"S": "Sporting Goods"}, + ":cat2": {"S": "Gardening Supplies"}, + ":lo": {"N": "500"}, + ":hi": {"N": "600"} + } + +Output:: + + { + "Attributes": { + "Id": { + "N": "456" + }, + "Price": { + "N": "550" + }, + "ProductCategory": { + "S": "Sporting Goods" + } + } + } + +For more information, see `Writing an Item `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/delete-table.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/delete-table.rst new file mode 100644 index 000000000..d9dc63349 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/delete-table.rst @@ -0,0 +1,24 @@ +**To delete a table** + +The following ``delete-table`` example deletes the ``MusicCollection`` table. :: + + aws dynamodb delete-table \ + --table-name MusicCollection + +Output:: + + { + "TableDescription": { + "TableStatus": "DELETING", + "TableSizeBytes": 0, + "ItemCount": 0, + "TableName": "MusicCollection", + "ProvisionedThroughput": { + "NumberOfDecreasesToday": 0, + "WriteCapacityUnits": 5, + "ReadCapacityUnits": 5 + } + } + } + +For more information, see `Deleting a Table `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-backup.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-backup.rst new file mode 100755 index 000000000..1720305db --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-backup.rst @@ -0,0 +1,47 @@ +**To get information about an existing backup of a table** + +The following ``describe-backup`` example displays information about the specified existing backup. :: + + aws dynamodb describe-backup \ + --backup-arn arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01576616366715-b4e58d3a + +Output:: + + { + "BackupDescription": { + "BackupDetails": { + "BackupArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01576616366715-b4e58d3a", + "BackupName": "MusicCollectionBackup", + "BackupSizeBytes": 0, + "BackupStatus": "AVAILABLE", + "BackupType": "USER", + "BackupCreationDateTime": 1576616366.715 + }, + "SourceTableDetails": { + "TableName": "MusicCollection", + "TableId": "b0c04bcc-309b-4352-b2ae-9088af169fe2", + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", + "TableSizeBytes": 0, + "KeySchema": [ + { + "AttributeName": "Artist", + "KeyType": "HASH" + }, + { + "AttributeName": "SongTitle", + "KeyType": "RANGE" + } + ], + "TableCreationDateTime": 1576615228.571, + "ProvisionedThroughput": { + "ReadCapacityUnits": 5, + "WriteCapacityUnits": 5 + }, + "ItemCount": 0, + "BillingMode": "PROVISIONED" + }, + "SourceTableFeatureDetails": {} + } + } + +For more information, see `On-Demand Backup and Restore for DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-continuous-backups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-continuous-backups.rst new file mode 100755 index 000000000..8266d640b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-continuous-backups.rst @@ -0,0 +1,19 @@ +**To get information about continuous backups for a DynamoDB table** + +The following ``describe-continuous-backups`` example displays details about the continuous backup settings for the ``MusicCollection`` table. :: + + aws dynamodb describe-continuous-backups \ + --table-name MusicCollection + +Output:: + + { + "ContinuousBackupsDescription": { + "ContinuousBackupsStatus": "ENABLED", + "PointInTimeRecoveryDescription": { + "PointInTimeRecoveryStatus": "DISABLED" + } + } + } + +For more information, see `Point-in-Time Recovery for DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-contributor-insights.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-contributor-insights.rst new file mode 100644 index 000000000..fd1de117c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-contributor-insights.rst @@ -0,0 +1,24 @@ +**To view Contributor Insights settings for a DynamoDB table** + +The following ``describe-contributor-insights`` example displays the Contributor Insights settings for the ``MusicCollection`` table and the ``AlbumTitle-index`` global secondary index. :: + + aws dynamodb describe-contributor-insights \ + --table-name MusicCollection \ + --index-name AlbumTitle-index + +Output:: + + { + "TableName": "MusicCollection", + "IndexName": "AlbumTitle-index", + "ContributorInsightsRuleList": [ + "DynamoDBContributorInsights-PKC-MusicCollection-1576629651520", + "DynamoDBContributorInsights-SKC-MusicCollection-1576629651520", + "DynamoDBContributorInsights-PKT-MusicCollection-1576629651520", + "DynamoDBContributorInsights-SKT-MusicCollection-1576629651520" + ], + "ContributorInsightsStatus": "ENABLED", + "LastUpdateDateTime": 1576629654.78 + } + +For more information, see `Analyzing Data Access Using CloudWatch Contributor Insights for DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-endpoints.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-endpoints.rst new file mode 100755 index 000000000..045709354 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-endpoints.rst @@ -0,0 +1,18 @@ +**To view regional endpoint information** + +The following ``describe-endpoints`` example displays details about the endpoints for the current AWS Region. :: + + aws dynamodb describe-endpoints + +Output:: + + { + "Endpoints": [ + { + "Address": "dynamodb.us-west-2.amazonaws.com", + "CachePeriodInMinutes": 1440 + } + ] + } + +For more information, see `Amazon DynamoDB Endpoints and Quotas `__ in the *AWS General Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-global-table-settings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-global-table-settings.rst new file mode 100755 index 000000000..7f049b775 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-global-table-settings.rst @@ -0,0 +1,40 @@ +**To get information about a DynamoDB global table's settings** + +The following ``describe-global-table-settings`` example displays the settings for the ``MusicCollection`` global table. :: + + aws dynamodb describe-global-table-settings \ + --global-table-name MusicCollection + +Output:: + + { + "GlobalTableName": "MusicCollection", + "ReplicaSettings": [ + { + "RegionName": "us-east-1", + "ReplicaStatus": "ACTIVE", + "ReplicaProvisionedReadCapacityUnits": 10, + "ReplicaProvisionedReadCapacityAutoScalingSettings": { + "AutoScalingDisabled": true + }, + "ReplicaProvisionedWriteCapacityUnits": 5, + "ReplicaProvisionedWriteCapacityAutoScalingSettings": { + "AutoScalingDisabled": true + } + }, + { + "RegionName": "us-east-2", + "ReplicaStatus": "ACTIVE", + "ReplicaProvisionedReadCapacityUnits": 10, + "ReplicaProvisionedReadCapacityAutoScalingSettings": { + "AutoScalingDisabled": true + }, + "ReplicaProvisionedWriteCapacityUnits": 5, + "ReplicaProvisionedWriteCapacityAutoScalingSettings": { + "AutoScalingDisabled": true + } + } + ] + } + +For more information, see `DynamoDB Global Tables `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-global-table.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-global-table.rst new file mode 100755 index 000000000..1a8a216d9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-global-table.rst @@ -0,0 +1,27 @@ +**To display information about a DynamoDB global table** + +The following ``describe-global-table`` example displays details about the ``MusicCollection`` global table. :: + + aws dynamodb describe-global-table \ + --global-table-name MusicCollection + +Output:: + + { + "GlobalTableDescription": { + "ReplicationGroup": [ + { + "RegionName": "us-east-2" + }, + { + "RegionName": "us-east-1" + } + ], + "GlobalTableArn": "arn:aws:dynamodb::123456789012:global-table/MusicCollection", + "CreationDateTime": 1576625818.532, + "GlobalTableStatus": "ACTIVE", + "GlobalTableName": "MusicCollection" + } + } + +For more information, see `DynamoDB Global Tables `__ in the *Amazon DynamoDB Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-limits.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-limits.rst new file mode 100755 index 000000000..14332df78 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-limits.rst @@ -0,0 +1,16 @@ +**To view provisioned-capacity limits** + +The following ``describe-limits`` example displays provisioned-capacity limits for your account in the current AWS Region. :: + + aws dynamodb describe-limits + +Output:: + + { + "AccountMaxReadCapacityUnits": 80000, + "AccountMaxWriteCapacityUnits": 80000, + "TableMaxReadCapacityUnits": 40000, + "TableMaxWriteCapacityUnits": 40000 + } + +For more information, see `Limits in DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-table-replica-auto-scaling.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-table-replica-auto-scaling.rst new file mode 100755 index 000000000..a65546c6a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-table-replica-auto-scaling.rst @@ -0,0 +1,81 @@ +**To view auto scaling settings across replicas of a global table** + +The following ``describe-table-replica-auto-scaling`` example displays auto scaling settings across replicas of the ``MusicCollection`` global table. :: + + aws dynamodb describe-table-replica-auto-scaling \ + --table-name MusicCollection + +Output:: + + { + "TableAutoScalingDescription": { + "TableName": "MusicCollection", + "TableStatus": "ACTIVE", + "Replicas": [ + { + "RegionName": "us-east-1", + "GlobalSecondaryIndexes": [], + "ReplicaProvisionedReadCapacityAutoScalingSettings": { + "MinimumUnits": 5, + "MaximumUnits": 40000, + "AutoScalingRoleArn": "arn:aws:iam::123456789012:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable", + "ScalingPolicies": [ + { + "PolicyName": "DynamoDBReadCapacityUtilization:table/MusicCollection", + "TargetTrackingScalingPolicyConfiguration": { + "TargetValue": 70.0 + } + } + ] + }, + "ReplicaProvisionedWriteCapacityAutoScalingSettings": { + "MinimumUnits": 5, + "MaximumUnits": 40000, + "AutoScalingRoleArn": "arn:aws:iam::123456789012:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable", + "ScalingPolicies": [ + { + "PolicyName": "DynamoDBWriteCapacityUtilization:table/MusicCollection", + "TargetTrackingScalingPolicyConfiguration": { + "TargetValue": 70.0 + } + } + ] + }, + "ReplicaStatus": "ACTIVE" + }, + { + "RegionName": "us-east-2", + "GlobalSecondaryIndexes": [], + "ReplicaProvisionedReadCapacityAutoScalingSettings": { + "MinimumUnits": 5, + "MaximumUnits": 40000, + "AutoScalingRoleArn": "arn:aws:iam::123456789012:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable", + "ScalingPolicies": [ + { + "PolicyName": "DynamoDBReadCapacityUtilization:table/MusicCollection", + "TargetTrackingScalingPolicyConfiguration": { + "TargetValue": 70.0 + } + } + ] + }, + "ReplicaProvisionedWriteCapacityAutoScalingSettings": { + "MinimumUnits": 5, + "MaximumUnits": 40000, + "AutoScalingRoleArn": "arn:aws:iam::123456789012:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable", + "ScalingPolicies": [ + { + "PolicyName": "DynamoDBWriteCapacityUtilization:table/MusicCollection", + "TargetTrackingScalingPolicyConfiguration": { + "TargetValue": 70.0 + } + } + ] + }, + "ReplicaStatus": "ACTIVE" + } + ] + } + } + +For more information, see `DynamoDB Global Tables `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-table.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-table.rst new file mode 100644 index 000000000..3d943f354 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-table.rst @@ -0,0 +1,45 @@ +**To describe a table** + +The following ``describe-table`` example describes the ``MusicCollection`` table. :: + + aws dynamodb describe-table \ + --table-name MusicCollection + +Output:: + + { + "Table": { + "AttributeDefinitions": [ + { + "AttributeName": "Artist", + "AttributeType": "S" + }, + { + "AttributeName": "SongTitle", + "AttributeType": "S" + } + ], + "ProvisionedThroughput": { + "NumberOfDecreasesToday": 0, + "WriteCapacityUnits": 5, + "ReadCapacityUnits": 5 + }, + "TableSizeBytes": 0, + "TableName": "MusicCollection", + "TableStatus": "ACTIVE", + "KeySchema": [ + { + "KeyType": "HASH", + "AttributeName": "Artist" + }, + { + "KeyType": "RANGE", + "AttributeName": "SongTitle" + } + ], + "ItemCount": 0, + "CreationDateTime": 1421866952.062 + } + } + +For more information, see `Describing a Table `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-time-to-live.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-time-to-live.rst new file mode 100755 index 000000000..65304c67e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/describe-time-to-live.rst @@ -0,0 +1,17 @@ +**To view Time to Live settings for a table** + +The following ``describe-time-to-live`` example displays Time to Live settings for the ``MusicCollection`` table. :: + + aws dynamodb describe-time-to-live \ + --table-name MusicCollection + +Output:: + + { + "TimeToLiveDescription": { + "TimeToLiveStatus": "ENABLED", + "AttributeName": "ttl" + } + } + +For more information, see `Time to Live `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/get-item.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/get-item.rst new file mode 100644 index 000000000..d00669ffc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/get-item.rst @@ -0,0 +1,112 @@ +**Example 1: To read an item in a table** + +The following ``get-item`` example retrieves an item from the ``MusicCollection`` table. The table has a hash-and-range primary key (``Artist`` and ``SongTitle``), so you must specify both of these attributes. The command also requests information about the read capacity consumed by the operation. :: + + aws dynamodb get-item \ + --table-name MusicCollection \ + --key file://key.json \ + --return-consumed-capacity TOTAL + +Contents of ``key.json``:: + + { + "Artist": {"S": "Acme Band"}, + "SongTitle": {"S": "Happy Day"} + } + +Output:: + + { + "Item": { + "AlbumTitle": { + "S": "Songs About Life" + }, + "SongTitle": { + "S": "Happy Day" + }, + "Artist": { + "S": "Acme Band" + } + }, + "ConsumedCapacity": { + "TableName": "MusicCollection", + "CapacityUnits": 0.5 + } + } + +For more information, see `Reading an Item `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 2: To read an item using a consistent read** + +The following example retrieves an item from the ``MusicCollection`` table using strongly consistent reads. :: + + aws dynamodb get-item \ + --table-name MusicCollection \ + --key file://key.json \ + --consistent-read \ + --return-consumed-capacity TOTAL + +Contents of ``key.json``:: + + { + "Artist": {"S": "Acme Band"}, + "SongTitle": {"S": "Happy Day"} + } + +Output:: + + { + "Item": { + "AlbumTitle": { + "S": "Songs About Life" + }, + "SongTitle": { + "S": "Happy Day" + }, + "Artist": { + "S": "Acme Band" + } + }, + "ConsumedCapacity": { + "TableName": "MusicCollection", + "CapacityUnits": 1.0 + } + } + +For more information, see `Reading an Item `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 3: To retrieve specific attributes of an item** + +The following example uses a projection expression to retrieve only three attributes of the desired item. :: + + aws dynamodb get-item \ + --table-name ProductCatalog \ + --key '{"Id": {"N": "102"}}' \ + --projection-expression "#T, #C, #P" \ + --expression-attribute-names file://names.json + +Contents of ``names.json``:: + + { + "#T": "Title", + "#C": "ProductCategory", + "#P": "Price" + } + +Output:: + + { + "Item": { + "Price": { + "N": "20" + }, + "Title": { + "S": "Book 102 Title" + }, + "ProductCategory": { + "S": "Book" + } + } + } + +For more information, see `Reading an Item `__ in the *Amazon DynamoDB Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/list-backups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/list-backups.rst new file mode 100644 index 000000000..da9eb639d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/list-backups.rst @@ -0,0 +1,159 @@ +**Example 1: To list all existing DynamoDB backups** + +The following ``list-backups`` example lists all of your existing backups. :: + + aws dynamodb list-backups + +Output:: + + { + "BackupSummaries": [ + { + "TableName": "MusicCollection", + "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", + "BackupArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01234567890123-a1bcd234", + "BackupName": "MusicCollectionBackup1", + "BackupCreationDateTime": "2020-02-12T14:41:51.617000-08:00", + "BackupStatus": "AVAILABLE", + "BackupType": "USER", + "BackupSizeBytes": 170 + }, + { + "TableName": "MusicCollection", + "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", + "BackupArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01234567890123-b2abc345", + "BackupName": "MusicCollectionBackup2", + "BackupCreationDateTime": "2020-06-26T11:08:35.431000-07:00", + "BackupStatus": "AVAILABLE", + "BackupType": "USER", + "BackupSizeBytes": 400 + } + ] + } + +For more information, see `On-Demand Backup and Restore for DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 2: To list user-created backups in a specific time range** + +The following example lists only backups of the ``MusicCollection`` table that were created by the user (not those automatically created by DynamoDB) with a creation date between January 1, 2020 and March 1, 2020. :: + + aws dynamodb list-backups \ + --table-name MusicCollection \ + --time-range-lower-bound 1577836800 \ + --time-range-upper-bound 1583020800 \ + --backup-type USER + +Output:: + + { + "BackupSummaries": [ + { + "TableName": "MusicCollection", + "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", + "BackupArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01234567890123-a1bcd234", + "BackupName": "MusicCollectionBackup1", + "BackupCreationDateTime": "2020-02-12T14:41:51.617000-08:00", + "BackupStatus": "AVAILABLE", + "BackupType": "USER", + "BackupSizeBytes": 170 + } + ] + } + +For more information, see `On-Demand Backup and Restore for DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 3: To limit page size** + +The following example returns a list of all existing backups, but retrieves only one item in each call, performing multiple calls if necessary to get the entire list. Limiting the page size is useful when running list commands on a large number of resources, which can result in a "timed out" error when using the default page size of 1000. :: + + aws dynamodb list-backups \ + --page-size 1 + +Output:: + + { + "BackupSummaries": [ + { + "TableName": "MusicCollection", + "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", + "BackupArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01234567890123-a1bcd234", + "BackupName": "MusicCollectionBackup1", + "BackupCreationDateTime": "2020-02-12T14:41:51.617000-08:00", + "BackupStatus": "AVAILABLE", + "BackupType": "USER", + "BackupSizeBytes": 170 + }, + { + "TableName": "MusicCollection", + "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", + "BackupArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01234567890123-b2abc345", + "BackupName": "MusicCollectionBackup2", + "BackupCreationDateTime": "2020-06-26T11:08:35.431000-07:00", + "BackupStatus": "AVAILABLE", + "BackupType": "USER", + "BackupSizeBytes": 400 + } + ] + } + +For more information, see `On-Demand Backup and Restore for DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 4: To limit the number of items returned** + +The following example limits the number of items returned to 1. The response includes a ``NextToken`` value with which to retrieve the next page of results. :: + + aws dynamodb list-backups \ + --max-items 1 + +Output:: + + { + "BackupSummaries": [ + { + "TableName": "MusicCollection", + "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", + "BackupArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01234567890123-a1bcd234", + "BackupName": "MusicCollectionBackup1", + "BackupCreationDateTime": "2020-02-12T14:41:51.617000-08:00", + "BackupStatus": "AVAILABLE", + "BackupType": "USER", + "BackupSizeBytes": 170 + } + ], + "NextToken": "abCDeFGhiJKlmnOPqrSTuvwxYZ1aBCdEFghijK7LM51nOpqRSTuv3WxY3ZabC5dEFGhI2Jk3LmnoPQ6RST9" + } + +For more information, see `On-Demand Backup and Restore for DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 5: To retrieve the next page of results** + +The following command uses the ``NextToken`` value from a previous call to the ``list-backups`` command to retrieve another page of results. Since the response in this case does not include a ``NextToken`` value, we know that we have reached the end of the results. :: + + aws dynamodb list-backups \ + --starting-token abCDeFGhiJKlmnOPqrSTuvwxYZ1aBCdEFghijK7LM51nOpqRSTuv3WxY3ZabC5dEFGhI2Jk3LmnoPQ6RST9 + +Output :: + + { + "BackupSummaries": [ + { + "TableName": "MusicCollection", + "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", + "BackupArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01234567890123-b2abc345", + "BackupName": "MusicCollectionBackup2", + "BackupCreationDateTime": "2020-06-26T11:08:35.431000-07:00", + "BackupStatus": "AVAILABLE", + "BackupType": "USER", + "BackupSizeBytes": 400 + } + ] + } + +For more information, see `On-Demand Backup and Restore for DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/list-contributor-insights.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/list-contributor-insights.rst new file mode 100644 index 000000000..911f38ed7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/list-contributor-insights.rst @@ -0,0 +1,90 @@ +**Example 1: To view a list of Contributor Insights summaries** + +The following ``list-contributor-insights`` example displays a list of Contributor Insights summaries. :: + + aws dynamodb list-contributor-insights + +Output:: + + { + "ContributorInsightsSummaries": [ + { + "TableName": "MusicCollection", + "IndexName": "AlbumTitle-index", + "ContributorInsightsStatus": "ENABLED" + }, + { + "TableName": "ProductCatalog", + "ContributorInsightsStatus": "ENABLED" + }, + { + "TableName": "Forum", + "ContributorInsightsStatus": "ENABLED" + }, + { + "TableName": "Reply", + "ContributorInsightsStatus": "ENABLED" + }, + { + "TableName": "Thread", + "ContributorInsightsStatus": "ENABLED" + } + ] + } + +For more information, see `Analyzing Data Access Using CloudWatch Contributor Insights for DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 2: To limit the number of items returned** + +The following example limits the number of items returned to 4. The response includes a ``NextToken`` value with which to retrieve the next page of results. :: + + aws dynamodb list-contributor-insights \ + --max-results 4 + +Output:: + + { + "ContributorInsightsSummaries": [ + { + "TableName": "MusicCollection", + "IndexName": "AlbumTitle-index", + "ContributorInsightsStatus": "ENABLED" + }, + { + "TableName": "ProductCatalog", + "ContributorInsightsStatus": "ENABLED" + }, + { + "TableName": "Forum", + "ContributorInsightsStatus": "ENABLED" + } + ], + "NextToken": "abCDeFGhiJKlmnOPqrSTuvwxYZ1aBCdEFghijK7LM51nOpqRSTuv3WxY3ZabC5dEFGhI2Jk3LmnoPQ6RST9" + } + +For more information, see `Analyzing Data Access Using CloudWatch Contributor Insights for DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 3: To retrieve the next page of results** + +The following command uses the ``NextToken`` value from a previous call to the ``list-contributor-insights`` command to retrieve another page of results. Since the response in this case does not include a ``NextToken`` value, we know that we have reached the end of the results. :: + + aws dynamodb list-contributor-insights \ + --max-results 4 \ + --next-token abCDeFGhiJKlmnOPqrSTuvwxYZ1aBCdEFghijK7LM51nOpqRSTuv3WxY3ZabC5dEFGhI2Jk3LmnoPQ6RST9 + +Output:: + + { + "ContributorInsightsSummaries": [ + { + "TableName": "Reply", + "ContributorInsightsStatus": "ENABLED" + }, + { + "TableName": "Thread", + "ContributorInsightsStatus": "ENABLED" + } + ] + } + +For more information, see `Analyzing Data Access Using CloudWatch Contributor Insights for DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/list-global-tables.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/list-global-tables.rst new file mode 100755 index 000000000..38089bcc3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/list-global-tables.rst @@ -0,0 +1,25 @@ +**To list existing DynamoDB global tables** + +The following ``list-global-tables`` example lists all of your existing global tables. :: + + aws dynamodb list-global-tables + +Output:: + + { + "GlobalTables": [ + { + "GlobalTableName": "MusicCollection", + "ReplicationGroup": [ + { + "RegionName": "us-east-2" + }, + { + "RegionName": "us-east-1" + } + ] + } + ] + } + +For more information, see `DynamoDB Global Tables `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/list-tables.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/list-tables.rst new file mode 100644 index 000000000..23b3173f9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/list-tables.rst @@ -0,0 +1,75 @@ +**Example 1: To list tables** + +The following ``list-tables`` example lists all of the tables associated with the current AWS account and Region. :: + + aws dynamodb list-tables + +Output:: + + { + "TableNames": [ + "Forum", + "ProductCatalog", + "Reply", + "Thread" + ] + } + +For more information, see `Listing Table Names `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 2: To limit page size** + +The following example returns a list of all existing tables, but retrieves only one item in each call, performing multiple calls if necessary to get the entire list. Limiting the page size is useful when running list commands on a large number of resources, which can result in a "timed out" error when using the default page size of 1000. :: + + aws dynamodb list-tables \ + --page-size 1 + +Output:: + + { + "TableNames": [ + "Forum", + "ProductCatalog", + "Reply", + "Thread" + ] + } + +For more information, see `Listing Table Names `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 3: To limit the number of items returned** + +The following example limits the number of items returned to 2. The response includes a ``NextToken`` value with which to retrieve the next page of results. :: + + aws dynamodb list-tables \ + --max-items 2 + +Output:: + + { + "TableNames": [ + "Forum", + "ProductCatalog" + ], + "NextToken": "abCDeFGhiJKlmnOPqrSTuvwxYZ1aBCdEFghijK7LM51nOpqRSTuv3WxY3ZabC5dEFGhI2Jk3LmnoPQ6RST9" + } + +For more information, see `Listing Table Names `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 4: To retrieve the next page of results** + +The following command uses the ``NextToken`` value from a previous call to the ``list-tables`` command to retrieve another page of results. Since the response in this case does not include a ``NextToken`` value, we know that we have reached the end of the results. :: + + aws dynamodb list-tables \ + --starting-token abCDeFGhiJKlmnOPqrSTuvwxYZ1aBCdEFghijK7LM51nOpqRSTuv3WxY3ZabC5dEFGhI2Jk3LmnoPQ6RST9 + +Output:: + + { + "TableNames": [ + "Reply", + "Thread" + ] + } + +For more information, see `Listing Table Names `__ in the *Amazon DynamoDB Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/list-tags-of-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/list-tags-of-resource.rst new file mode 100644 index 000000000..a8638e62d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/list-tags-of-resource.rst @@ -0,0 +1,66 @@ +**Example 1: To list tags of a DynamoDB resource** + +The following ``list-tags-of-resource`` example displays tags for the ``MusicCollection`` table. :: + + aws dynamodb list-tags-of-resource \ + --resource-arn arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection + +Output:: + + { + "Tags": [ + { + "Key": "Owner", + "Value": "blueTeam" + }, + { + "Key": "Environment", + "Value": "Production" + } + ] + } + +For more information, see `Tagging for DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 2: To limit the number of tags returned** + +The following example limits the number of tags returned to 1. The response includes a ``NextToken`` value with which to retrieve the next page of results. :: + + aws dynamodb list-tags-of-resource \ + --resource-arn arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection \ + --max-items 1 + +Output:: + + { + "Tags": [ + { + "Key": "Owner", + "Value": "blueTeam" + } + ], + "NextToken": "abCDeFGhiJKlmnOPqrSTuvwxYZ1aBCdEFghijK7LM51nOpqRSTuv3WxY3ZabC5dEFGhI2Jk3LmnoPQ6RST9" + } + +For more information, see `Tagging for DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 3: To retrieve the next page of results** + +The following command uses the ``NextToken`` value from a previous call to the ``list-tags-of-resource`` command to retrieve another page of results. Since the response in this case does not include a ``NextToken`` value, we know that we have reached the end of the results. :: + + aws dynamodb list-tags-of-resource \ + --resource-arn arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection \ + --starting-token abCDeFGhiJKlmnOPqrSTuvwxYZ1aBCdEFghijK7LM51nOpqRSTuv3WxY3ZabC5dEFGhI2Jk3LmnoPQ6RST9 + +Output:: + + { + "Tags": [ + { + "Key": "Environment", + "Value": "Production" + } + ] + } + +For more information, see `Tagging for DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/put-item.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/put-item.rst new file mode 100644 index 000000000..02c447837 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/put-item.rst @@ -0,0 +1,94 @@ +**Example 1: To add an item to a table** + +The following ``put-item`` example adds a new item to the *MusicCollection* table. :: + + aws dynamodb put-item \ + --table-name MusicCollection \ + --item file://item.json \ + --return-consumed-capacity TOTAL \ + --return-item-collection-metrics SIZE + +Contents of ``item.json``:: + + { + "Artist": {"S": "No One You Know"}, + "SongTitle": {"S": "Call Me Today"}, + "AlbumTitle": {"S": "Greatest Hits"} + } + +Output:: + + { + "ConsumedCapacity": { + "TableName": "MusicCollection", + "CapacityUnits": 1.0 + }, + "ItemCollectionMetrics": { + "ItemCollectionKey": { + "Artist": { + "S": "No One You Know" + } + }, + "SizeEstimateRangeGB": [ + 0.0, + 1.0 + ] + } + } + +For more information, see `Writing an Item `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 2: To conditionally overwrite an item in a table** + +The following ``put-item`` example overwrites an existing item in the ``MusicCollection`` table only if that existing item has an ``AlbumTitle`` attribute with a value of ``Greatest Hits``. The command returns the previous value of the item. :: + + aws dynamodb put-item \ + --table-name MusicCollection \ + --item file://item.json \ + --condition-expression "#A = :A" \ + --expression-attribute-names file://names.json \ + --expression-attribute-values file://values.json \ + --return-values ALL_OLD + +Contents of ``item.json``:: + + { + "Artist": {"S": "No One You Know"}, + "SongTitle": {"S": "Call Me Today"}, + "AlbumTitle": {"S": "Somewhat Famous"} + } + +Contents of ``names.json``:: + + { + "#A": "AlbumTitle" + } + +Contents of ``values.json``:: + + { + ":A": {"S": "Greatest Hits"} + } + +Output:: + + { + "Attributes": { + "AlbumTitle": { + "S": "Greatest Hits" + }, + "Artist": { + "S": "No One You Know" + }, + "SongTitle": { + "S": "Call Me Today" + } + } + } + +If the key already exists, you should see the following output:: + + A client error (ConditionalCheckFailedException) occurred when calling the PutItem operation: The conditional request failed. + +For more information, see `Writing an Item `__ in the *Amazon DynamoDB Developer Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/query.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/query.rst new file mode 100644 index 000000000..2e81cbfd0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/query.rst @@ -0,0 +1,225 @@ +**Example 1: To query a table** + +The following ``query`` example queries items in the ``MusicCollection`` table. The table has a hash-and-range primary key (``Artist`` and ``SongTitle``), but this query only specifies the hash key value. It returns song titles by the artist named "No One You Know". :: + + aws dynamodb query \ + --table-name MusicCollection \ + --projection-expression "SongTitle" \ + --key-condition-expression "Artist = :v1" \ + --expression-attribute-values file://expression-attributes.json \ + --return-consumed-capacity TOTAL + +Contents of ``expression-attributes.json``:: + + { + ":v1": {"S": "No One You Know"} + } + +Output:: + + { + "Items": [ + { + "SongTitle": { + "S": "Call Me Today" + }, + "SongTitle": { + "S": "Scared of My Shadow" + } + } + ], + "Count": 2, + "ScannedCount": 2, + "ConsumedCapacity": { + "TableName": "MusicCollection", + "CapacityUnits": 0.5 + } + } + +For more information, see `Working with Queries in DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 2: To query a table using strongly consistent reads and traverse the index in descending order** + +The following example performs the same query as the first example, but returns results in reverse order and uses strongly consistent reads. :: + + aws dynamodb query \ + --table-name MusicCollection \ + --projection-expression "SongTitle" \ + --key-condition-expression "Artist = :v1" \ + --expression-attribute-values file://expression-attributes.json \ + --consistent-read \ + --no-scan-index-forward \ + --return-consumed-capacity TOTAL + +Contents of ``expression-attributes.json``:: + + { + ":v1": {"S": "No One You Know"} + } + +Output:: + + { + "Items": [ + { + "SongTitle": { + "S": "Scared of My Shadow" + } + }, + { + "SongTitle": { + "S": "Call Me Today" + } + } + ], + "Count": 2, + "ScannedCount": 2, + "ConsumedCapacity": { + "TableName": "MusicCollection", + "CapacityUnits": 1.0 + } + } + +For more information, see `Working with Queries in DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 3: To filter out specific results** + +The following example queries the ``MusicCollection`` but excludes results with specific values in the ``AlbumTitle`` attribute. Note that this does not affect the ``ScannedCount`` or ``ConsumedCapacity``, because the filter is applied after the items have been read. :: + + aws dynamodb query \ + --table-name MusicCollection \ + --key-condition-expression "#n1 = :v1" \ + --filter-expression "NOT (#n2 IN (:v2, :v3))" \ + --expression-attribute-names file://names.json \ + --expression-attribute-values file://values.json \ + --return-consumed-capacity TOTAL + +Contents of ``values.json``:: + + { + ":v1": {"S": "No One You Know"}, + ":v2": {"S": "Blue Sky Blues"}, + ":v3": {"S": "Greatest Hits"} + } + +Contents of ``names.json``:: + + { + "#n1": "Artist", + "#n2": "AlbumTitle" + } + +Output:: + + { + "Items": [ + { + "AlbumTitle": { + "S": "Somewhat Famous" + }, + "Artist": { + "S": "No One You Know" + }, + "SongTitle": { + "S": "Call Me Today" + } + } + ], + "Count": 1, + "ScannedCount": 2, + "ConsumedCapacity": { + "TableName": "MusicCollection", + "CapacityUnits": 0.5 + } + } + +For more information, see `Working with Queries in DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 4: To retrieve only an item count** + +The following example retrieves a count of items matching the query, but does not retrieve any of the items themselves. :: + + aws dynamodb query \ + --table-name MusicCollection \ + --select COUNT \ + --key-condition-expression "Artist = :v1" \ + --expression-attribute-values file://expression-attributes.json + +Contents of ``expression-attributes.json``:: + + { + ":v1": {"S": "No One You Know"} + } + +Output:: + + { + "Count": 2, + "ScannedCount": 2, + "ConsumedCapacity": null + } + +For more information, see `Working with Queries in DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 5: To query an index** + +The following example queries the local secondary index ``AlbumTitleIndex``. The query returns all attributes from the base table that have been projected into the local secondary index. Note that when querying a local secondary index or global secondary index, you must also provide the name of the base table using the ``table-name`` parameter. :: + + aws dynamodb query \ + --table-name MusicCollection \ + --index-name AlbumTitleIndex \ + --key-condition-expression "Artist = :v1" \ + --expression-attribute-values file://expression-attributes.json \ + --select ALL_PROJECTED_ATTRIBUTES \ + --return-consumed-capacity INDEXES + +Contents of ``expression-attributes.json``:: + + { + ":v1": {"S": "No One You Know"} + } + +Output:: + + { + "Items": [ + { + "AlbumTitle": { + "S": "Blue Sky Blues" + }, + "Artist": { + "S": "No One You Know" + }, + "SongTitle": { + "S": "Scared of My Shadow" + } + }, + { + "AlbumTitle": { + "S": "Somewhat Famous" + }, + "Artist": { + "S": "No One You Know" + }, + "SongTitle": { + "S": "Call Me Today" + } + } + ], + "Count": 2, + "ScannedCount": 2, + "ConsumedCapacity": { + "TableName": "MusicCollection", + "CapacityUnits": 0.5, + "Table": { + "CapacityUnits": 0.0 + }, + "LocalSecondaryIndexes": { + "AlbumTitleIndex": { + "CapacityUnits": 0.5 + } + } + } + } + +For more information, see `Working with Queries in DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/restore-table-from-backup.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/restore-table-from-backup.rst new file mode 100755 index 000000000..68f08c3d0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/restore-table-from-backup.rst @@ -0,0 +1,57 @@ +**To restore a DynamoDB table from an existing backup** + +The following ``restore-table-from-backup`` example restores the specified table from an existing backup. :: + + aws dynamodb restore-table-from-backup \ + --target-table-name MusicCollection \ + --backup-arnarn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01576616366715-b4e58d3a + +Output:: + + { + "TableDescription": { + "AttributeDefinitions": [ + { + "AttributeName": "Artist", + "AttributeType": "S" + }, + { + "AttributeName": "SongTitle", + "AttributeType": "S" + } + ], + "TableName": "MusicCollection2", + "KeySchema": [ + { + "AttributeName": "Artist", + "KeyType": "HASH" + }, + { + "AttributeName": "SongTitle", + "KeyType": "RANGE" + } + ], + "TableStatus": "CREATING", + "CreationDateTime": 1576618274.326, + "ProvisionedThroughput": { + "NumberOfDecreasesToday": 0, + "ReadCapacityUnits": 5, + "WriteCapacityUnits": 5 + }, + "TableSizeBytes": 0, + "ItemCount": 0, + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection2", + "TableId": "114865c9-5ef3-496c-b4d1-c4cbdd2d44fb", + "BillingModeSummary": { + "BillingMode": "PROVISIONED" + }, + "RestoreSummary": { + "SourceBackupArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01576616366715-b4e58d3a", + "SourceTableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", + "RestoreDateTime": 1576616366.715, + "RestoreInProgress": true + } + } + } + +For more information, see `On-Demand Backup and Restore for DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/restore-table-to-point-in-time.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/restore-table-to-point-in-time.rst new file mode 100755 index 000000000..dc2238a96 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/restore-table-to-point-in-time.rst @@ -0,0 +1,57 @@ +**To restore a DynamoDB table to a point in time** + +The following ``restore-table-to-point-in-time`` example restores the ``MusicCollection`` table to the specified point in time. :: + + aws dynamodb restore-table-to-point-in-time \ + --source-table-name MusicCollection \ + --target-table-name MusicCollectionRestore \ + --restore-date-time 1576622404.0 + +Output:: + + { + "TableDescription": { + "AttributeDefinitions": [ + { + "AttributeName": "Artist", + "AttributeType": "S" + }, + { + "AttributeName": "SongTitle", + "AttributeType": "S" + } + ], + "TableName": "MusicCollectionRestore", + "KeySchema": [ + { + "AttributeName": "Artist", + "KeyType": "HASH" + }, + { + "AttributeName": "SongTitle", + "KeyType": "RANGE" + } + ], + "TableStatus": "CREATING", + "CreationDateTime": 1576623311.86, + "ProvisionedThroughput": { + "NumberOfDecreasesToday": 0, + "ReadCapacityUnits": 5, + "WriteCapacityUnits": 5 + }, + "TableSizeBytes": 0, + "ItemCount": 0, + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollectionRestore", + "TableId": "befd9e0e-1843-4dc6-a147-d6d00e85cb1f", + "BillingModeSummary": { + "BillingMode": "PROVISIONED" + }, + "RestoreSummary": { + "SourceTableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", + "RestoreDateTime": 1576622404.0, + "RestoreInProgress": true + } + } + } + +For more information, see `Point-in-Time Recovery for DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/scan.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/scan.rst new file mode 100644 index 000000000..a270aebd4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/scan.rst @@ -0,0 +1,51 @@ +**To scan a table** + +The following ``scan`` example scans the entire ``MusicCollection`` table, and then narrows the results to songs by the artist "No One You Know". For each item, only the album title and song title are returned. :: + + aws dynamodb scan \ + --table-name MusicCollection \ + --filter-expression "Artist = :a" \ + --projection-expression "#ST, #AT" \ + --expression-attribute-names file://expression-attribute-names.json \ + --expression-attribute-values file://expression-attribute-values.json + +Contents of ``expression-attribute-names.json``:: + + { + "#ST": "SongTitle", + "#AT":"AlbumTitle" + } + +Contents of ``expression-attribute-values.json``:: + + { + ":a": {"S": "No One You Know"} + } + +Output:: + + { + "Count": 2, + "Items": [ + { + "SongTitle": { + "S": "Call Me Today" + }, + "AlbumTitle": { + "S": "Somewhat Famous" + } + }, + { + "SongTitle": { + "S": "Scared of My Shadow" + }, + "AlbumTitle": { + "S": "Blue Sky Blues" + } + } + ], + "ScannedCount": 3, + "ConsumedCapacity": null + } + +For more information, see `Working with Scans in DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/tag-resource.rst new file mode 100755 index 000000000..995b57f62 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/tag-resource.rst @@ -0,0 +1,11 @@ +**To add tags to a DynamoDB resource** + +The following ``tag-resource`` example adds a tag key/value pair to the ``MusicCollection`` table. :: + + aws dynamodb tag-resource \ + --resource-arn arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection \ + --tags Key=Owner,Value=blueTeam + +This command produces no output. + +For more information, see `Tagging for DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/transact-get-items.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/transact-get-items.rst new file mode 100644 index 000000000..562273e69 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/transact-get-items.rst @@ -0,0 +1,72 @@ +**To retrieve multiple items atomically from one or more tables** + +The following ``transact-get-items`` example retrieves multiple items atomically. :: + + aws dynamodb transact-get-items \ + --transact-items file://transact-items.json \ + --return-consumed-capacity TOTAL + +Contents of ``transact-items.json``:: + + [ + { + "Get": { + "Key": { + "Artist": {"S": "Acme Band"}, + "SongTitle": {"S": "Happy Day"} + }, + "TableName": "MusicCollection" + } + }, + { + "Get": { + "Key": { + "Artist": {"S": "No One You Know"}, + "SongTitle": {"S": "Call Me Today"} + }, + "TableName": "MusicCollection" + } + } + ] + +Output:: + + { + "ConsumedCapacity": [ + { + "TableName": "MusicCollection", + "CapacityUnits": 4.0, + "ReadCapacityUnits": 4.0 + } + ], + "Responses": [ + { + "Item": { + "AlbumTitle": { + "S": "Songs About Life" + }, + "Artist": { + "S": "Acme Band" + }, + "SongTitle": { + "S": "Happy Day" + } + } + }, + { + "Item": { + "AlbumTitle": { + "S": "Somewhat Famous" + }, + "Artist": { + "S": "No One You Know" + }, + "SongTitle": { + "S": "Call Me Today" + } + } + } + ] + } + +For more information, see `Managing Complex Workflows with DynamoDB Transactions `__ in the *Amazon DynamoDB Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/transact-write-items.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/transact-write-items.rst new file mode 100644 index 000000000..688d1b073 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/transact-write-items.rst @@ -0,0 +1,118 @@ +**Example 1: To write items atomically to one or more tables** + +The following ``transact-write-items`` example updates one item and deletes another. The operation fails if either operation fails, or if either item contains a ``Rating`` attribute. :: + + aws dynamodb transact-write-items \ + --transact-items file://transact-items.json \ + --return-consumed-capacity TOTAL \ + --return-item-collection-metrics SIZE + +Contents of the ``transact-items.json`` file:: + + [ + { + "Update": { + "Key": { + "Artist": {"S": "Acme Band"}, + "SongTitle": {"S": "Happy Day"} + }, + "UpdateExpression": "SET AlbumTitle = :newval", + "ExpressionAttributeValues": { + ":newval": {"S": "Updated Album Title"} + }, + "TableName": "MusicCollection", + "ConditionExpression": "attribute_not_exists(Rating)" + } + }, + { + "Delete": { + "Key": { + "Artist": {"S": "No One You Know"}, + "SongTitle": {"S": "Call Me Today"} + }, + "TableName": "MusicCollection", + "ConditionExpression": "attribute_not_exists(Rating)" + } + } + ] + +Output:: + + { + "ConsumedCapacity": [ + { + "TableName": "MusicCollection", + "CapacityUnits": 10.0, + "WriteCapacityUnits": 10.0 + } + ], + "ItemCollectionMetrics": { + "MusicCollection": [ + { + "ItemCollectionKey": { + "Artist": { + "S": "No One You Know" + } + }, + "SizeEstimateRangeGB": [ + 0.0, + 1.0 + ] + }, + { + "ItemCollectionKey": { + "Artist": { + "S": "Acme Band" + } + }, + "SizeEstimateRangeGB": [ + 0.0, + 1.0 + ] + } + ] + } + } + +For more information, see `Managing Complex Workflows with DynamoDB Transactions `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 2: To write items atomically using a client request token** + +The following command uses a client request token to make the call to ``transact-write-items`` idempotent, meaning that multiple calls have the same effect as one single call. :: + + aws dynamodb transact-write-items \ + --transact-items file://transact-items.json \ + --client-request-token abc123 + +Contents of the ``transact-items.json`` file:: + + [ + { + "Update": { + "Key": { + "Artist": {"S": "Acme Band"}, + "SongTitle": {"S": "Happy Day"} + }, + "UpdateExpression": "SET AlbumTitle = :newval", + "ExpressionAttributeValues": { + ":newval": {"S": "Updated Album Title"} + }, + "TableName": "MusicCollection", + "ConditionExpression": "attribute_not_exists(Rating)" + } + }, + { + "Delete": { + "Key": { + "Artist": {"S": "No One You Know"}, + "SongTitle": {"S": "Call Me Today"} + }, + "TableName": "MusicCollection", + "ConditionExpression": "attribute_not_exists(Rating)" + } + } + ] + +This command produces no output. + +For more information, see `Managing Complex Workflows with DynamoDB Transactions `__ in the *Amazon DynamoDB Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/untag-resource.rst new file mode 100755 index 000000000..e2b18853d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/untag-resource.rst @@ -0,0 +1,12 @@ +**To remove a tag from a DynamoDB resource** + +The following ``untag-resource`` example removes the tag with the key ``Owner`` from the ``MusicCollection`` table. :: + + aws dynamodb untag-resource \ + --resource-arn arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection \ + --tag-keys Owner + + +This command produces no output. + +For more information, see `Tagging for DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-continuous-backups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-continuous-backups.rst new file mode 100755 index 000000000..9eb1af8e9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-continuous-backups.rst @@ -0,0 +1,22 @@ +**To update continuous backup settings for a DynamoDB table** + +The following ``update-continuous-backups`` example enables point-in-time recovery for the ``MusicCollection`` table. :: + + aws dynamodb update-continuous-backups \ + --table-name MusicCollection \ + --point-in-time-recovery-specification PointInTimeRecoveryEnabled=true + +Output:: + + { + "ContinuousBackupsDescription": { + "ContinuousBackupsStatus": "ENABLED", + "PointInTimeRecoveryDescription": { + "PointInTimeRecoveryStatus": "ENABLED", + "EarliestRestorableDateTime": 1576622404.0, + "LatestRestorableDateTime": 1576622404.0 + } + } + } + +For more information, see `Point-in-Time Recovery for DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-contributor-insights.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-contributor-insights.rst new file mode 100644 index 000000000..a3c068343 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-contributor-insights.rst @@ -0,0 +1,18 @@ +**To enable Contributor Insights on a table** + +The following ``update-contributor-insights`` example enables Contributor Insights on the ``MusicCollection`` table and the ``AlbumTitle-index`` global secondary index. :: + + aws dynamodb update-contributor-insights \ + --table-name MusicCollection \ + --index-name AlbumTitle-index \ + --contributor-insights-action ENABLE + +Output:: + + { + "TableName": "MusicCollection", + "IndexName": "AlbumTitle-index", + "ContributorInsightsStatus": "ENABLING" + } + +For more information, see `Analyzing Data Access Using CloudWatch Contributor Insights for DynamoDB `__ in the *Amazon DynamoDB Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-global-table-settings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-global-table-settings.rst new file mode 100755 index 000000000..9f819a5b6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-global-table-settings.rst @@ -0,0 +1,53 @@ +**To update provisioned write capacity settings on a DynamoDB global table** + +The following ``update-global-table-settings`` example sets the provisioned write capacity of the ``MusicCollection`` global table to 15. :: + + aws dynamodb update-global-table-settings \ + --global-table-name MusicCollection \ + --global-table-provisioned-write-capacity-units 15 + +Output:: + + { + "GlobalTableName": "MusicCollection", + "ReplicaSettings": [ + { + "RegionName": "eu-west-1", + "ReplicaStatus": "UPDATING", + "ReplicaProvisionedReadCapacityUnits": 10, + "ReplicaProvisionedReadCapacityAutoScalingSettings": { + "AutoScalingDisabled": true + }, + "ReplicaProvisionedWriteCapacityUnits": 10, + "ReplicaProvisionedWriteCapacityAutoScalingSettings": { + "AutoScalingDisabled": true + } + }, + { + "RegionName": "us-east-1", + "ReplicaStatus": "UPDATING", + "ReplicaProvisionedReadCapacityUnits": 10, + "ReplicaProvisionedReadCapacityAutoScalingSettings": { + "AutoScalingDisabled": true + }, + "ReplicaProvisionedWriteCapacityUnits": 10, + "ReplicaProvisionedWriteCapacityAutoScalingSettings": { + "AutoScalingDisabled": true + } + }, + { + "RegionName": "us-east-2", + "ReplicaStatus": "UPDATING", + "ReplicaProvisionedReadCapacityUnits": 10, + "ReplicaProvisionedReadCapacityAutoScalingSettings": { + "AutoScalingDisabled": true + }, + "ReplicaProvisionedWriteCapacityUnits": 10, + "ReplicaProvisionedWriteCapacityAutoScalingSettings": { + "AutoScalingDisabled": true + } + } + ] + } + +For more information, see `DynamoDB Global Tables `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-global-table.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-global-table.rst new file mode 100755 index 000000000..9906ba420 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-global-table.rst @@ -0,0 +1,31 @@ +**To update a DynamoDB global table** + +The following ``update-global-table`` example adds a replica in the specified Region to the ``MusicCollection`` global table. :: + + aws dynamodb update-global-table \ + --global-table-name MusicCollection \ + --replica-updates Create={RegionName=eu-west-1} + +Output:: + + { + "GlobalTableDescription": { + "ReplicationGroup": [ + { + "RegionName": "eu-west-1" + }, + { + "RegionName": "us-east-2" + }, + { + "RegionName": "us-east-1" + } + ], + "GlobalTableArn": "arn:aws:dynamodb::123456789012:global-table/MusicCollection", + "CreationDateTime": 1576625818.532, + "GlobalTableStatus": "ACTIVE", + "GlobalTableName": "MusicCollection" + } + } + +For more information, see `DynamoDB Global Tables `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-item.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-item.rst new file mode 100644 index 000000000..79bd30d1d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-item.rst @@ -0,0 +1,111 @@ +**Example 1: To update an item in a table** + +The following ``update-item`` example updates an item in the ``MusicCollection`` table. It adds a new attribute (``Year``) and modifies the ``AlbumTitle`` attribute. All of the attributes in the item, as they appear after the update, are returned in the response. :: + + aws dynamodb update-item \ + --table-name MusicCollection \ + --key file://key.json \ + --update-expression "SET #Y = :y, #AT = :t" \ + --expression-attribute-names file://expression-attribute-names.json \ + --expression-attribute-values file://expression-attribute-values.json \ + --return-values ALL_NEW \ + --return-consumed-capacity TOTAL \ + --return-item-collection-metrics SIZE + +Contents of ``key.json``:: + + { + "Artist": {"S": "Acme Band"}, + "SongTitle": {"S": "Happy Day"} + } + +Contents of ``expression-attribute-names.json``:: + + { + "#Y":"Year", "#AT":"AlbumTitle" + } + +Contents of ``expression-attribute-values.json``:: + + { + ":y":{"N": "2015"}, + ":t":{"S": "Louder Than Ever"} + } + +Output:: + + { + "Attributes": { + "AlbumTitle": { + "S": "Louder Than Ever" + }, + "Awards": { + "N": "10" + }, + "Artist": { + "S": "Acme Band" + }, + "Year": { + "N": "2015" + }, + "SongTitle": { + "S": "Happy Day" + } + }, + "ConsumedCapacity": { + "TableName": "MusicCollection", + "CapacityUnits": 3.0 + }, + "ItemCollectionMetrics": { + "ItemCollectionKey": { + "Artist": { + "S": "Acme Band" + } + }, + "SizeEstimateRangeGB": [ + 0.0, + 1.0 + ] + } + } + +For more information, see `Writing an Item `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 2: To update an item conditionally** + +The following example updates an item in the ``MusicCollection`` table, but only if the existing item does not already have a ``Year`` attribute. :: + + aws dynamodb update-item \ + --table-name MusicCollection \ + --key file://key.json \ + --update-expression "SET #Y = :y, #AT = :t" \ + --expression-attribute-names file://expression-attribute-names.json \ + --expression-attribute-values file://expression-attribute-values.json \ + --condition-expression "attribute_not_exists(#Y)" + +Contents of ``key.json``:: + + { + "Artist": {"S": "Acme Band"}, + "SongTitle": {"S": "Happy Day"} + } + +Contents of ``expression-attribute-names.json``:: + + { + "#Y":"Year", + "#AT":"AlbumTitle" + } + +Contents of ``expression-attribute-values.json``:: + + { + ":y":{"N": "2015"}, + ":t":{"S": "Louder Than Ever"} + } + +If the item already has a ``Year`` attribute, DynamoDB returns the following output. :: + + An error occurred (ConditionalCheckFailedException) when calling the UpdateItem operation: The conditional request failed + +For more information, see `Writing an Item `__ in the *Amazon DynamoDB Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-table-replica-auto-scaling.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-table-replica-auto-scaling.rst new file mode 100755 index 000000000..c60cfc475 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-table-replica-auto-scaling.rst @@ -0,0 +1,127 @@ +**To update auto scaling settings across replicas of a global table** + +The following ``update-table-replica-auto-scaling`` example updates write capacity auto scaling settings across replicas of the specified global table. :: + + aws dynamodb update-table-replica-auto-scaling \ + --table-name MusicCollection \ + --provisioned-write-capacity-auto-scaling-update file://auto-scaling-policy.json + +Contents of ``auto-scaling-policy.json``:: + + { + "MinimumUnits": 10, + "MaximumUnits": 100, + "AutoScalingDisabled": false, + "ScalingPolicyUpdate": { + "PolicyName": "DynamoDBWriteCapacityUtilization:table/MusicCollection", + "TargetTrackingScalingPolicyConfiguration": { + "TargetValue": 80 + } + } + } + +Output:: + + { + "TableAutoScalingDescription": { + "TableName": "MusicCollection", + "TableStatus": "ACTIVE", + "Replicas": [ + { + "RegionName": "eu-central-1", + "GlobalSecondaryIndexes": [], + "ReplicaProvisionedReadCapacityAutoScalingSettings": { + "MinimumUnits": 5, + "MaximumUnits": 40000, + "AutoScalingRoleArn": "arn:aws:iam::123456789012:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable", + "ScalingPolicies": [ + { + "PolicyName": "DynamoDBReadCapacityUtilization:table/MusicCollection", + "TargetTrackingScalingPolicyConfiguration": { + "TargetValue": 70.0 + } + } + ] + }, + "ReplicaProvisionedWriteCapacityAutoScalingSettings": { + "MinimumUnits": 10, + "MaximumUnits": 100, + "AutoScalingRoleArn": "arn:aws:iam::123456789012:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable", + "ScalingPolicies": [ + { + "PolicyName": "DynamoDBWriteCapacityUtilization:table/MusicCollection", + "TargetTrackingScalingPolicyConfiguration": { + "TargetValue": 80.0 + } + } + ] + }, + "ReplicaStatus": "ACTIVE" + }, + { + "RegionName": "us-east-1", + "GlobalSecondaryIndexes": [], + "ReplicaProvisionedReadCapacityAutoScalingSettings": { + "MinimumUnits": 5, + "MaximumUnits": 40000, + "AutoScalingRoleArn": "arn:aws:iam::123456789012:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable", + "ScalingPolicies": [ + { + "PolicyName": "DynamoDBReadCapacityUtilization:table/MusicCollection", + "TargetTrackingScalingPolicyConfiguration": { + "TargetValue": 70.0 + } + } + ] + }, + "ReplicaProvisionedWriteCapacityAutoScalingSettings": { + "MinimumUnits": 10, + "MaximumUnits": 100, + "AutoScalingRoleArn": "arn:aws:iam::123456789012:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable", + "ScalingPolicies": [ + { + "PolicyName": "DynamoDBWriteCapacityUtilization:table/MusicCollection", + "TargetTrackingScalingPolicyConfiguration": { + "TargetValue": 80.0 + } + } + ] + }, + "ReplicaStatus": "ACTIVE" + }, + { + "RegionName": "us-east-2", + "GlobalSecondaryIndexes": [], + "ReplicaProvisionedReadCapacityAutoScalingSettings": { + "MinimumUnits": 5, + "MaximumUnits": 40000, + "AutoScalingRoleArn": "arn:aws:iam::123456789012:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable", + "ScalingPolicies": [ + { + "PolicyName": "DynamoDBReadCapacityUtilization:table/MusicCollection", + "TargetTrackingScalingPolicyConfiguration": { + "TargetValue": 70.0 + } + } + ] + }, + "ReplicaProvisionedWriteCapacityAutoScalingSettings": { + "MinimumUnits": 10, + "MaximumUnits": 100, + "AutoScalingRoleArn": "arn:aws:iam::123456789012:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable", + "ScalingPolicies": [ + { + "PolicyName": "DynamoDBWriteCapacityUtilization:table/MusicCollection", + "TargetTrackingScalingPolicyConfiguration": { + "TargetValue": 80.0 + } + } + ] + }, + "ReplicaStatus": "ACTIVE" + } + ] + } + } + +For more information, see `DynamoDB Global Tables `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-table.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-table.rst new file mode 100644 index 000000000..a88bcdb9d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-table.rst @@ -0,0 +1,391 @@ +**Example 1: To modify a table's billing mode** + +The following ``update-table`` example increases the provisioned read and write capacity on the ``MusicCollection`` table. :: + + aws dynamodb update-table \ + --table-name MusicCollection \ + --billing-mode PROVISIONED \ + --provisioned-throughput ReadCapacityUnits=15,WriteCapacityUnits=10 + +Output:: + + { + "TableDescription": { + "AttributeDefinitions": [ + { + "AttributeName": "AlbumTitle", + "AttributeType": "S" + }, + { + "AttributeName": "Artist", + "AttributeType": "S" + }, + { + "AttributeName": "SongTitle", + "AttributeType": "S" + } + ], + "TableName": "MusicCollection", + "KeySchema": [ + { + "AttributeName": "Artist", + "KeyType": "HASH" + }, + { + "AttributeName": "SongTitle", + "KeyType": "RANGE" + } + ], + "TableStatus": "UPDATING", + "CreationDateTime": "2020-05-26T15:59:49.473000-07:00", + "ProvisionedThroughput": { + "LastIncreaseDateTime": "2020-07-28T13:18:18.921000-07:00", + "NumberOfDecreasesToday": 0, + "ReadCapacityUnits": 15, + "WriteCapacityUnits": 10 + }, + "TableSizeBytes": 182, + "ItemCount": 2, + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", + "TableId": "abcd0123-01ab-23cd-0123-abcdef123456", + "BillingModeSummary": { + "BillingMode": "PROVISIONED", + "LastUpdateToPayPerRequestDateTime": "2020-07-28T13:14:48.366000-07:00" + } + } + } + +For more information, see `Updating a Table `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 2: To create a global secondary index** + +The following example adds a global secondary index to the ``MusicCollection`` table. :: + + aws dynamodb update-table \ + --table-name MusicCollection \ + --attribute-definitions AttributeName=AlbumTitle,AttributeType=S \ + --global-secondary-index-updates file://gsi-updates.json + +Contents of ``gsi-updates.json``:: + + [ + { + "Create": { + "IndexName": "AlbumTitle-index", + "KeySchema": [ + { + "AttributeName": "AlbumTitle", + "KeyType": "HASH" + } + ], + "ProvisionedThroughput": { + "ReadCapacityUnits": 10, + "WriteCapacityUnits": 10 + }, + "Projection": { + "ProjectionType": "ALL" + } + } + } + ] + +Output:: + + { + "TableDescription": { + "AttributeDefinitions": [ + { + "AttributeName": "AlbumTitle", + "AttributeType": "S" + }, + { + "AttributeName": "Artist", + "AttributeType": "S" + }, + { + "AttributeName": "SongTitle", + "AttributeType": "S" + } + ], + "TableName": "MusicCollection", + "KeySchema": [ + { + "AttributeName": "Artist", + "KeyType": "HASH" + }, + { + "AttributeName": "SongTitle", + "KeyType": "RANGE" + } + ], + "TableStatus": "UPDATING", + "CreationDateTime": "2020-05-26T15:59:49.473000-07:00", + "ProvisionedThroughput": { + "LastIncreaseDateTime": "2020-07-28T12:59:17.537000-07:00", + "NumberOfDecreasesToday": 0, + "ReadCapacityUnits": 15, + "WriteCapacityUnits": 10 + }, + "TableSizeBytes": 182, + "ItemCount": 2, + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", + "TableId": "abcd0123-01ab-23cd-0123-abcdef123456", + "BillingModeSummary": { + "BillingMode": "PROVISIONED", + "LastUpdateToPayPerRequestDateTime": "2020-07-28T13:14:48.366000-07:00" + }, + "GlobalSecondaryIndexes": [ + { + "IndexName": "AlbumTitle-index", + "KeySchema": [ + { + "AttributeName": "AlbumTitle", + "KeyType": "HASH" + } + ], + "Projection": { + "ProjectionType": "ALL" + }, + "IndexStatus": "CREATING", + "Backfilling": false, + "ProvisionedThroughput": { + "NumberOfDecreasesToday": 0, + "ReadCapacityUnits": 10, + "WriteCapacityUnits": 10 + }, + "IndexSizeBytes": 0, + "ItemCount": 0, + "IndexArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/index/AlbumTitle-index" + } + ] + } + } + +For more information, see `Updating a Table `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 3: To enable DynamoDB Streams on a table** + +The following command enables DynamoDB Streams on the ``MusicCollection`` table. :: + + aws dynamodb update-table \ + --table-name MusicCollection \ + --stream-specification StreamEnabled=true,StreamViewType=NEW_IMAGE + +Output:: + + { + "TableDescription": { + "AttributeDefinitions": [ + { + "AttributeName": "AlbumTitle", + "AttributeType": "S" + }, + { + "AttributeName": "Artist", + "AttributeType": "S" + }, + { + "AttributeName": "SongTitle", + "AttributeType": "S" + } + ], + "TableName": "MusicCollection", + "KeySchema": [ + { + "AttributeName": "Artist", + "KeyType": "HASH" + }, + { + "AttributeName": "SongTitle", + "KeyType": "RANGE" + } + ], + "TableStatus": "UPDATING", + "CreationDateTime": "2020-05-26T15:59:49.473000-07:00", + "ProvisionedThroughput": { + "LastIncreaseDateTime": "2020-07-28T12:59:17.537000-07:00", + "NumberOfDecreasesToday": 0, + "ReadCapacityUnits": 15, + "WriteCapacityUnits": 10 + }, + "TableSizeBytes": 182, + "ItemCount": 2, + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", + "TableId": "abcd0123-01ab-23cd-0123-abcdef123456", + "BillingModeSummary": { + "BillingMode": "PROVISIONED", + "LastUpdateToPayPerRequestDateTime": "2020-07-28T13:14:48.366000-07:00" + }, + "LocalSecondaryIndexes": [ + { + "IndexName": "AlbumTitleIndex", + "KeySchema": [ + { + "AttributeName": "Artist", + "KeyType": "HASH" + }, + { + "AttributeName": "AlbumTitle", + "KeyType": "RANGE" + } + ], + "Projection": { + "ProjectionType": "INCLUDE", + "NonKeyAttributes": [ + "Year", + "Genre" + ] + }, + "IndexSizeBytes": 139, + "ItemCount": 2, + "IndexArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/index/AlbumTitleIndex" + } + ], + "GlobalSecondaryIndexes": [ + { + "IndexName": "AlbumTitle-index", + "KeySchema": [ + { + "AttributeName": "AlbumTitle", + "KeyType": "HASH" + } + ], + "Projection": { + "ProjectionType": "ALL" + }, + "IndexStatus": "ACTIVE", + "ProvisionedThroughput": { + "NumberOfDecreasesToday": 0, + "ReadCapacityUnits": 10, + "WriteCapacityUnits": 10 + }, + "IndexSizeBytes": 0, + "ItemCount": 0, + "IndexArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/index/AlbumTitle-index" + } + ], + "StreamSpecification": { + "StreamEnabled": true, + "StreamViewType": "NEW_IMAGE" + }, + "LatestStreamLabel": "2020-07-28T21:53:39.112", + "LatestStreamArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/stream/2020-07-28T21:53:39.112" + } + } + +For more information, see `Updating a Table `__ in the *Amazon DynamoDB Developer Guide*. + +**Example 4: To enable server-side encryption** + +The following example enables server-side encryption on the ``MusicCollection`` table. :: + + aws dynamodb update-table \ + --table-name MusicCollection \ + --sse-specification Enabled=true,SSEType=KMS + +Output:: + + { + "TableDescription": { + "AttributeDefinitions": [ + { + "AttributeName": "AlbumTitle", + "AttributeType": "S" + }, + { + "AttributeName": "Artist", + "AttributeType": "S" + }, + { + "AttributeName": "SongTitle", + "AttributeType": "S" + } + ], + "TableName": "MusicCollection", + "KeySchema": [ + { + "AttributeName": "Artist", + "KeyType": "HASH" + }, + { + "AttributeName": "SongTitle", + "KeyType": "RANGE" + } + ], + "TableStatus": "ACTIVE", + "CreationDateTime": "2020-05-26T15:59:49.473000-07:00", + "ProvisionedThroughput": { + "LastIncreaseDateTime": "2020-07-28T12:59:17.537000-07:00", + "NumberOfDecreasesToday": 0, + "ReadCapacityUnits": 15, + "WriteCapacityUnits": 10 + }, + "TableSizeBytes": 182, + "ItemCount": 2, + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", + "TableId": "abcd0123-01ab-23cd-0123-abcdef123456", + "BillingModeSummary": { + "BillingMode": "PROVISIONED", + "LastUpdateToPayPerRequestDateTime": "2020-07-28T13:14:48.366000-07:00" + }, + "LocalSecondaryIndexes": [ + { + "IndexName": "AlbumTitleIndex", + "KeySchema": [ + { + "AttributeName": "Artist", + "KeyType": "HASH" + }, + { + "AttributeName": "AlbumTitle", + "KeyType": "RANGE" + } + ], + "Projection": { + "ProjectionType": "INCLUDE", + "NonKeyAttributes": [ + "Year", + "Genre" + ] + }, + "IndexSizeBytes": 139, + "ItemCount": 2, + "IndexArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/index/AlbumTitleIndex" + } + ], + "GlobalSecondaryIndexes": [ + { + "IndexName": "AlbumTitle-index", + "KeySchema": [ + { + "AttributeName": "AlbumTitle", + "KeyType": "HASH" + } + ], + "Projection": { + "ProjectionType": "ALL" + }, + "IndexStatus": "ACTIVE", + "ProvisionedThroughput": { + "NumberOfDecreasesToday": 0, + "ReadCapacityUnits": 10, + "WriteCapacityUnits": 10 + }, + "IndexSizeBytes": 0, + "ItemCount": 0, + "IndexArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/index/AlbumTitle-index" + } + ], + "StreamSpecification": { + "StreamEnabled": true, + "StreamViewType": "NEW_IMAGE" + }, + "LatestStreamLabel": "2020-07-28T21:53:39.112", + "LatestStreamArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/stream/2020-07-28T21:53:39.112", + "SSEDescription": { + "Status": "UPDATING" + } + } + } + +For more information, see `Updating a Table `__ in the *Amazon DynamoDB Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-time-to-live.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-time-to-live.rst new file mode 100755 index 000000000..1dc031eb7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/update-time-to-live.rst @@ -0,0 +1,18 @@ +**To update Time to Live settings on a table** + +The following ``update-time-to-live`` example enables Time to Live on the specified table. :: + + aws dynamodb update-time-to-live \ + --table-name MusicCollection \ + --time-to-live-specification Enabled=true,AttributeName=ttl + +Output:: + + { + "TimeToLiveSpecification": { + "Enabled": true, + "AttributeName": "ttl" + } + } + +For more information, see `Time to Live `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/wait/table-exists.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/wait/table-exists.rst new file mode 100755 index 000000000..fb6d83673 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodb/wait/table-exists.rst @@ -0,0 +1,11 @@ +**To wait for the existence of a table** + +The following ``wait`` example pauses and resumes only after it can confirm that the specified table exists. :: + + aws dynamodb wait table-exists \ + --table-name MusicCollection + + +This command produces no output. + +For more information, see `Basic Operations for Tables `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodbstreams/describe-stream.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodbstreams/describe-stream.rst new file mode 100644 index 000000000..88bcbffa6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodbstreams/describe-stream.rst @@ -0,0 +1,47 @@ +**To get information about a DynamoDB stream** + +The following ``describe-stream`` command displays information about the specific DynamoDB stream. :: + + aws dynamodbstreams describe-stream \ + --stream-arn arn:aws:dynamodb:us-west-1:123456789012:table/Music/stream/2019-10-22T18:02:01.576 + +Output:: + + { + "StreamDescription": { + "StreamArn": "arn:aws:dynamodb:us-west-1:123456789012:table/Music/stream/2019-10-22T18:02:01.576", + "StreamLabel": "2019-10-22T18:02:01.576", + "StreamStatus": "ENABLED", + "StreamViewType": "NEW_AND_OLD_IMAGES", + "CreationRequestDateTime": 1571767321.571, + "TableName": "Music", + "KeySchema": [ + { + "AttributeName": "Artist", + "KeyType": "HASH" + }, + { + "AttributeName": "SongTitle", + "KeyType": "RANGE" + } + ], + "Shards": [ + { + "ShardId": "shardId-00000001571767321804-697ce3d2", + "SequenceNumberRange": { + "StartingSequenceNumber": "4000000000000642977831", + "EndingSequenceNumber": "4000000000000642977831" + } + }, + { + "ShardId": "shardId-00000001571780995058-40810d86", + "SequenceNumberRange": { + "StartingSequenceNumber": "757400000000005655171150" + }, + "ParentShardId": "shardId-00000001571767321804-697ce3d2" + } + ] + } + } + +For more information, see `Capturing Table Activity with DynamoDB Streams `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodbstreams/get-records.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodbstreams/get-records.rst new file mode 100644 index 000000000..20d07eb0f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodbstreams/get-records.rst @@ -0,0 +1,135 @@ +**To get records from a Dynamodb stream** + +The following ``get-records`` command retrieves records using the specified Amazon DynamoDB shard iterator. :: + + aws dynamodbstreams get-records \ + --shard-iterator "arn:aws:dynamodb:us-west-1:123456789012:table/Music/stream/2019-10-22T18:02:01.576|1|AAAAAAAAAAGgM3YZ89vLZZxjmoQeo33r9M4x3+zmmTLsiL86MfrF4+B4EbsByi52InVmiONmy6xVW4IRcIIbs1zO7MNIlqZfx8WQzMwVDyINtGG2hCLg78JKbYxFasXeePGlApTyf3rJxR765uyOVaBvBHAJuwF2TXIuxhaAlOupNGHr52qAC3a49ZOmf+CjNPlqQjnyRSAnfOwWmKhL1/KNParWSfz2odf780oOObIDIWRRMkt7+Hyzh9SD+hFxFAWR5C7QIlOXPc8mRBfNIazfrVCjJK8/jsjCzsqNyXKzJbhh+GXCoxYN+Kpmg4nyj1EAsYhbGL35muvHFoHjcyuynbsczbWaXNfThDwRAyvoTmc8XhHKtAWUbJiaVd8ZPtQwDsThCrmDRPIdmTRGWllGfUr5ezN5LscvkQezzgpaU5p8BgCqRzjv5Vl8LB6wHgQWNG+w/lEGS05ha1qNP+Vl4+tuhz2TRnhnJo/pny9GI/yGpce97mWvSPr5KPwy+Dtcm5BHayBs+PVYHITaTliInFlT+LCwvaz1QH3MY3b8A05Z800wjpktm60iQqtMeDwN4NX6FrcxR34JoFKGsgR8XkHVJzz2xr1xqSJ12ycpNTyHnndusw==" + +Output:: + + { + "Records": [ + { + "eventID": "c3b5d798eef6215d42f8137b19a88e50", + "eventName": "INSERT", + "eventVersion": "1.1", + "eventSource": "aws:dynamodb", + "awsRegion": "us-west-1", + "dynamodb": { + "ApproximateCreationDateTime": 1571849028.0, + "Keys": { + "Artist": { + "S": "No One You Know" + }, + "SongTitle": { + "S": "Call Me Today" + } + }, + "NewImage": { + "AlbumTitle": { + "S": "Somewhat Famous" + }, + "Artist": { + "S": "No One You Know" + }, + "Awards": { + "N": "1" + }, + "SongTitle": { + "S": "Call Me Today" + } + }, + "SequenceNumber": "700000000013256296913", + "SizeBytes": 119, + "StreamViewType": "NEW_AND_OLD_IMAGES" + } + }, + { + "eventID": "878960a6967867e2da16b27380a27328", + "eventName": "INSERT", + "eventVersion": "1.1", + "eventSource": "aws:dynamodb", + "awsRegion": "us-west-1", + "dynamodb": { + "ApproximateCreationDateTime": 1571849029.0, + "Keys": { + "Artist": { + "S": "Acme Band" + }, + "SongTitle": { + "S": "Happy Day" + } + }, + "NewImage": { + "AlbumTitle": { + "S": "Songs About Life" + }, + "Artist": { + "S": "Acme Band" + }, + "Awards": { + "N": "10" + }, + "SongTitle": { + "S": "Happy Day" + } + }, + "SequenceNumber": "800000000013256297217", + "SizeBytes": 100, + "StreamViewType": "NEW_AND_OLD_IMAGES" + } + }, + { + "eventID": "520fabde080e159fc3710b15ee1d4daa", + "eventName": "MODIFY", + "eventVersion": "1.1", + "eventSource": "aws:dynamodb", + "awsRegion": "us-west-1", + "dynamodb": { + "ApproximateCreationDateTime": 1571849734.0, + "Keys": { + "Artist": { + "S": "Acme Band" + }, + "SongTitle": { + "S": "Happy Day" + } + }, + "NewImage": { + "AlbumTitle": { + "S": "Updated Album Title" + }, + "Artist": { + "S": "Acme Band" + }, + "Awards": { + "N": "10" + }, + "SongTitle": { + "S": "Happy Day" + } + }, + "OldImage": { + "AlbumTitle": { + "S": "Songs About Life" + }, + "Artist": { + "S": "Acme Band" + }, + "Awards": { + "N": "10" + }, + "SongTitle": { + "S": "Happy Day" + } + }, + "SequenceNumber": "900000000013256687845", + "SizeBytes": 170, + "StreamViewType": "NEW_AND_OLD_IMAGES" + } + } + ], + "NextShardIterator": "arn:aws:dynamodb:us-west-1:123456789012:table/Music/stream/2019-10-23T16:41:08.740|1|AAAAAAAAAAEhEI04jkFLW+LKOwivjT8d/IHEh3iExV2xK00aTxEzVy1C1C7Kbb5+ZOW6bT9VQ2n1/mrs7+PRiaOZCHJu7JHJVW7zlsqOi/ges3fw8GYEymyL+piEk35cx67rQqwKKyq+Q6w9JyjreIOj4F2lWLV26lBwRTrIYC4IB7C3BZZK4715QwYdDxNdVHiSBRZX8UqoS6WOt0F87xZLNB9F/NhYBLXi/wcGvAcBcC0TNIOH+N0NqwtoB/FGCkNrf8YZ0xRoNN6RgGuVWHF3pxOhxEJeFZoSoJTIKeG9YcYxzi5Ci/mhdtm7tBXnbw5c6xmsGsBqTirNjlDyJLcWl8Cl0UOLX63Ufo/5QliztcjEbKsQe28x8LM8o7VH1Is0fF/ITt8awSA4igyJS0P87GN8Qri8kj8iaE35805jBHWF2wvwT6Iy2xGrR2r2HzYps9dwGOarVdEITaJfWzNoL4HajMhmREZLYfM7Pb0PvRMO7JkENyPIU6e2w16W1CvJO2EGFIxtNk+V04i1YIeHMXJfcwetNRuIbdQXfJht2NQZa4PVV6iknY6d19MrdbSTMKoqAuvp6g3Q2jH4t7GKCLWgodcPAn8g5+43DaNkh4Z5zKOfNw==" + } + +For more information, see `Capturing Table Activity with DynamoDB Streams `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodbstreams/get-shard-iterator.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodbstreams/get-shard-iterator.rst new file mode 100644 index 000000000..371d42bb6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodbstreams/get-shard-iterator.rst @@ -0,0 +1,16 @@ +**To get a shard iterator** + +The following ``get-shard-iterator`` command retrieves a shard iterator for the specified shard. :: + + aws dynamodbstreams get-shard-iterator \ + --stream-arn arn:aws:dynamodb:us-west-1:12356789012:table/Music/stream/2019-10-22T18:02:01.576 \ + --shard-id shardId-00000001571780995058-40810d86 \ + --shard-iterator-type LATEST + +Output:: + + { + "ShardIterator": "arn:aws:dynamodb:us-west-1:123456789012:table/Music/stream/2019-10-22T18:02:01.576|1|AAAAAAAAAAGgM3YZ89vLZZxjmoQeo33r9M4x3+zmmTLsiL86MfrF4+B4EbsByi52InVmiONmy6xVW4IRcIIbs1zO7MNIlqZfx8WQzMwVDyINtGG2hCLg78JKbYxFasXeePGlApTyf3rJxR765uyOVaBvBHAJuwF2TXIuxhaAlOupNGHr52qAC3a49ZOmf+CjNPlqQjnyRSAnfOwWmKhL1/KNParWSfz2odf780oOObIDIWRRMkt7+Hyzh9SD+hFxFAWR5C7QIlOXPc8mRBfNIazfrVCjJK8/jsjCzsqNyXKzJbhh+GXCoxYN+Kpmg4nyj1EAsYhbGL35muvHFoHjcyuynbsczbWaXNfThDwRAyvoTmc8XhHKtAWUbJiaVd8ZPtQwDsThCrmDRPIdmTRGWllGfUr5ezN5LscvkQezzgpaU5p8BgCqRzjv5Vl8LB6wHgQWNG+w/lEGS05ha1qNP+Vl4+tuhz2TRnhnJo/pny9GI/yGpce97mWvSPr5KPwy+Dtcm5BHayBs+PVYHITaTliInFlT+LCwvaz1QH3MY3b8A05Z800wjpktm60iQqtMeDwN4NX6FrcxR34JoFKGsgR8XkHVJzz2xr1xqSJ12ycpNTyHnndusw==" + } + +For more information, see `Capturing Table Activity with DynamoDB Streams `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodbstreams/list-streams.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodbstreams/list-streams.rst new file mode 100644 index 000000000..fd5a13232 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/dynamodbstreams/list-streams.rst @@ -0,0 +1,19 @@ +**To list DynamoDB streams** + +The following ``list-streams`` command lists all existing Amazon DynamoDB streams within the default AWS Region. :: + + aws dynamodbstreams list-streams + +Output:: + + { + "Streams": [ + { + "StreamArn": "arn:aws:dynamodb:us-west-1:123456789012:table/Music/stream/2019-10-22T18:02:01.576", + "TableName": "Music", + "StreamLabel": "2019-10-22T18:02:01.576" + } + ] + } + +For more information, see `Capturing Table Activity with DynamoDB Streams `__ in the *Amazon DynamoDB Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2-instance-connect/send-ssh-public-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2-instance-connect/send-ssh-public-key.rst new file mode 100644 index 000000000..30e692923 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2-instance-connect/send-ssh-public-key.rst @@ -0,0 +1,11 @@ +**To send a an SSH public key to an instance** + +The following ``send-ssh-public-key`` example sends the specified SSH public key to the specified instance. The key is used to authenticate the specified user. :: + + aws ec2-instance-connect send-ssh-public-key \ + --instance-id i-1234567890abcdef0 \ + --instance-os-user ec2-user \ + --availability-zone us-east-2b \ + --ssh-public-key file://path/my-rsa-key.pub + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/accept-address-transfer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/accept-address-transfer.rst new file mode 100644 index 000000000..af9e5880a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/accept-address-transfer.rst @@ -0,0 +1,21 @@ +**To accept an Elastic IP address transferred to your account** + +The following ``accept-address-transfer`` example accepts the transfer of the specified Elastic IP address to your account. :: + + aws ec2 accept-address-transfer \ + --address 100.21.184.216 + +Output:: + + { + "AddressTransfer": { + "PublicIp": "100.21.184.216", + "AllocationId": "eipalloc-09ad461b0d03f6aaf", + "TransferAccountId": "123456789012", + "TransferOfferExpirationTimestamp": "2023-02-22T20:51:10.000Z", + "TransferOfferAcceptedTimestamp": "2023-02-22T22:52:54.000Z", + "AddressTransferStatus": "accepted" + } + } + +For more information, see `Transfer Elastic IP addresses `__ in the *Amazon VPC User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/accept-reserved-instances-exchange-quote.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/accept-reserved-instances-exchange-quote.rst new file mode 100644 index 000000000..02287c775 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/accept-reserved-instances-exchange-quote.rst @@ -0,0 +1,13 @@ +**To perform a Convertible Reserved Instance exchange** + +This example performs an exchange of the specified Convertible Reserved Instances. + +Command:: + + aws ec2 accept-reserved-instances-exchange-quote --reserved-instance-ids 7b8750c3-397e-4da4-bbcb-a45ebexample --target-configurations OfferingId=b747b472-423c-48f3-8cee-679bcexample + +Output:: + + { + "ExchangeId": "riex-e68ed3c1-8bc8-4c17-af77-811afexample" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/accept-transit-gateway-peering-attachment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/accept-transit-gateway-peering-attachment.rst new file mode 100644 index 000000000..0f3392661 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/accept-transit-gateway-peering-attachment.rst @@ -0,0 +1,29 @@ +**To accept a transit gateway peering attachment** + +The following ``accept-transit-gateway-peering-attachment`` example accepts the specified transit gateway peering attachment. The ``--region`` parameter specifies the Region that the accepter transit gateway is located in. :: + + aws ec2 accept-transit-gateway-peering-attachment \ + --transit-gateway-attachment-id tgw-attach-4455667788aabbccd \ + --region us-east-2 + +Output:: + + { + "TransitGatewayPeeringAttachment": { + "TransitGatewayAttachmentId": "tgw-attach-4455667788aabbccd", + "RequesterTgwInfo": { + "TransitGatewayId": "tgw-123abc05e04123abc", + "OwnerId": "123456789012", + "Region": "us-west-2" + }, + "AccepterTgwInfo": { + "TransitGatewayId": "tgw-11223344aabbcc112", + "OwnerId": "123456789012", + "Region": "us-east-2" + }, + "State": "pending", + "CreationTime": "2019-12-09T11:38:31.000Z" + } + } + +For more information, see `Transit Gateway Peering Attachments `__ in the *Transit Gateways Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/accept-transit-gateway-vpc-attachment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/accept-transit-gateway-vpc-attachment.rst new file mode 100755 index 000000000..314b21b58 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/accept-transit-gateway-vpc-attachment.rst @@ -0,0 +1,28 @@ +**To accept a request to attach a VPC to a transit gateway.** + +The following ``accept-transit-gateway-vpc-attachment`` example accepts the request forte specified attachment. :: + + aws ec2 accept-transit-gateway-vpc-attachment \ + --transit-gateway-attachment-id tgw-attach-0a34fe6b4fEXAMPLE + +Output:: + + { + "TransitGatewayVpcAttachment": { + "TransitGatewayAttachmentId": "tgw-attach-0a34fe6b4fEXAMPLE", + "TransitGatewayId": "tgw-0262a0e521EXAMPLE", + "VpcId": "vpc-07e8ffd50fEXAMPLE", + "VpcOwnerId": "123456789012", + "State": "pending", + "SubnetIds": [ + "subnet-0752213d59EXAMPLE" + ], + "CreationTime": "2019-07-10T17:33:46.000Z", + "Options": { + "DnsSupport": "enable", + "Ipv6Support": "disable" + } + } + } + +For more information, see `Transit Gateway Attachments to a VPC `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/accept-vpc-endpoint-connections.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/accept-vpc-endpoint-connections.rst new file mode 100644 index 000000000..78f33d614 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/accept-vpc-endpoint-connections.rst @@ -0,0 +1,13 @@ +**To accept an interface endpoint connection request** + +This example accepts the specified endpoint connection request for the specified endpoint service. + +Command:: + + aws ec2 accept-vpc-endpoint-connections --service-id vpce-svc-03d5ebb7d9579a2b3 --vpc-endpoint-ids vpce-0c1308d7312217abc + +Output:: + + { + "Unsuccessful": [] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/accept-vpc-peering-connection.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/accept-vpc-peering-connection.rst new file mode 100644 index 000000000..36b71d8f0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/accept-vpc-peering-connection.rst @@ -0,0 +1,30 @@ +**To accept a VPC peering connection** + +This example accepts the specified VPC peering connection request. + +Command:: + + aws ec2 accept-vpc-peering-connection --vpc-peering-connection-id pcx-1a2b3c4d + +Output:: + + { + "VpcPeeringConnection": { + "Status": { + "Message": "Provisioning", + "Code": "provisioning" + }, + "Tags": [], + "AccepterVpcInfo": { + "OwnerId": "444455556666", + "VpcId": "vpc-44455566", + "CidrBlock": "10.0.1.0/28" + }, + "VpcPeeringConnectionId": "pcx-1a2b3c4d", + "RequesterVpcInfo": { + "OwnerId": "444455556666", + "VpcId": "vpc-111abc45", + "CidrBlock": "10.0.0.0/28" + } + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/advertise-byoip-cidr.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/advertise-byoip-cidr.rst new file mode 100644 index 000000000..51214b8a8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/advertise-byoip-cidr.rst @@ -0,0 +1,16 @@ +**To advertise an address range** + +The following ``advertise-byoip-cidr`` example advertises the specified public IPv4 address range. :: + + aws ec2 advertise-byoip-cidr \ + --cidr 203.0.113.25/24 + +Output:: + + { + "ByoipCidr": { + "Cidr": "203.0.113.25/24", + "StatusMessage": "ipv4pool-ec2-1234567890abcdef0", + "State": "provisioned" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/allocate-address.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/allocate-address.rst new file mode 100755 index 000000000..c46f6c91e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/allocate-address.rst @@ -0,0 +1,77 @@ +**Example 1: To allocate an Elastic IP address from Amazon's address pool** + +The following ``allocate-address`` example allocates an Elastic IP address. Amazon EC2 selects the address from Amazon's address pool. :: + + aws ec2 allocate-address + +Output:: + + { + "PublicIp": "70.224.234.241", + "AllocationId": "eipalloc-01435ba59eEXAMPLE", + "PublicIpv4Pool": "amazon", + "NetworkBorderGroup": "us-west-2", + "Domain": "vpc" + } + +For more information, see `Elastic IP addresses `__ in the *Amazon EC2 User Guide*. + +**Example 2: To allocate an Elastic IP address and associate it with a network border group** + +The following ``allocate-address`` example allocates an Elastic IP address and associates it with the specified network border group. :: + + aws ec2 allocate-address \ + --network-border-group us-west-2-lax-1 + +Output:: + + { + "PublicIp": "70.224.234.241", + "AllocationId": "eipalloc-e03dd489ceEXAMPLE", + "PublicIpv4Pool": "amazon", + "NetworkBorderGroup": "us-west-2-lax-1", + "Domain": "vpc" + } + +For more information, see `Elastic IP addresses `__ in the *Amazon EC2 User Guide*. + +**Example 3: To allocate an Elastic IP address from an address pool that you own** + +The following ``allocate-address`` example allocates an Elastic IP address from an address pool that you have brought to your Amazon Web Services account. Amazon EC2 selects the address from the address pool. :: + + aws ec2 allocate-address \ + --public-ipv4-pool ipv4pool-ec2-1234567890abcdef0 + +Output:: + + { + "AllocationId": "eipalloc-02463d08ceEXAMPLE", + "NetworkBorderGroup": "us-west-2", + "CustomerOwnedIp": "18.218.95.81", + "CustomerOwnedIpv4Pool": "ipv4pool-ec2-1234567890abcdef0", + "Domain": "vpc" + "NetworkBorderGroup": "us-west-2", + } + +For more information, see `Elastic IP addresses `__ in the *Amazon EC2 User Guide*. + +**Example 4: To allocate an Elastic IP address from an IPAM pool** + +The following ``allocate-address`` example allocates a specific /32 Elastic IP address from an Amazon VPC IP Address Manager (IPAM) pool. :: + + aws ec2 allocate-address \ + --region us-east-1 \ + --ipam-pool-id ipam-pool-1234567890abcdef0 \ + --address 192.0.2.0 + +Output:: + + { + "PublicIp": "192.0.2.0", + "AllocationId": "eipalloc-abcdef01234567890", + "PublicIpv4Pool": "ipam-pool-1234567890abcdef0", + "NetworkBorderGroup": "us-east-1", + "Domain": "vpc" + } + +For more information, see `Allocate sequential Elastic IP addresses from an IPAM pool `__ in the *Amazon VPC IPAM User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/allocate-hosts.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/allocate-hosts.rst new file mode 100644 index 000000000..1b5ef1752 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/allocate-hosts.rst @@ -0,0 +1,55 @@ +**Example 1: To allocate a Dedicated Host** + +The following ``allocate-hosts`` example allocates a single Dedicated Host in the ``eu-west-1a`` Availability Zone, onto which you can launch ``m5.large`` instances. By default, the Dedicated Host accepts only target instance launches, and does not support host recovery. :: + + aws ec2 allocate-hosts \ + --instance-type m5.large \ + --availability-zone eu-west-1a \ + --quantity 1 + +Output:: + + { + "HostIds": [ + "h-07879acf49EXAMPLE" + ] + } + +**Example 2: To allocate a Dedicated Host with auto-placement and host recovery enabled** + +The following ``allocate-hosts`` example allocates a single Dedicated Host in the ``eu-west-1a`` Availability Zone with auto-placement and host recovery enabled. :: + + aws ec2 allocate-hosts \ + --instance-type m5.large \ + --availability-zone eu-west-1a \ + --auto-placement on \ + --host-recovery on \ + --quantity 1 + +Output:: + + { + "HostIds": [ + "h-07879acf49EXAMPLE" + ] + } + +**Example 3: To allocate a Dedicated Host with tags** + +The following ``allocate-hosts`` example allocates a single Dedicated Host and applies a tag with a key named ``purpose`` and a value of ``production``. :: + + aws ec2 allocate-hosts \ + --instance-type m5.large \ + --availability-zone eu-west-1a \ + --quantity 1 \ + --tag-specifications 'ResourceType=dedicated-host,Tags={Key=purpose,Value=production}' + +Output:: + + { + "HostIds": [ + "h-07879acf49EXAMPLE" + ] + } + +For more information, see `Allocate a Dedicated Host `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/allocate-ipam-pool-cidr.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/allocate-ipam-pool-cidr.rst new file mode 100644 index 000000000..5a369cdc8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/allocate-ipam-pool-cidr.rst @@ -0,0 +1,28 @@ +**To allocate a CIDR from an IPAM pool** + +The following ``allocate-ipam-pool-cidr`` example allocates a CIDR from an IPAM pool. + +(Linux):: + + aws ec2 allocate-ipam-pool-cidr \ + --ipam-pool-id ipam-pool-0533048da7d823723 \ + --netmask-length 24 + +(Windows):: + + aws ec2 allocate-ipam-pool-cidr ^ + --ipam-pool-id ipam-pool-0533048da7d823723 ^ + --netmask-length 24 + +Output:: + + { + "IpamPoolAllocation": { + "Cidr": "10.0.0.0/24", + "IpamPoolAllocationId": "ipam-pool-alloc-018ecc28043b54ba38e2cd99943cebfbd", + "ResourceType": "custom", + "ResourceOwner": "123456789012" + } + } + +For more information, see `Manually allocate a CIDR to a pool to reserve IP address space `__ in the *Amazon VPC IPAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/apply-security-groups-to-client-vpn-target-network.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/apply-security-groups-to-client-vpn-target-network.rst new file mode 100644 index 000000000..192407cd5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/apply-security-groups-to-client-vpn-target-network.rst @@ -0,0 +1,18 @@ +**To apply security groups to a target network for a Client VPN endpoint** + +The following ``apply-security-groups-to-client-vpn-target-network`` example applies security group ``sg-01f6e627a89f4db32`` to the association between the specified target network and Client VPN endpoint. :: + + aws ec2 apply-security-groups-to-client-vpn-target-network \ + --security-group-ids sg-01f6e627a89f4db32 \ + --vpc-id vpc-0e2110c2f324332e0 \ + --client-vpn-endpoint-id cvpn-endpoint-123456789123abcde + +Output:: + + { + "SecurityGroupIds": [ + "sg-01f6e627a89f4db32" + ] + } + +For more information, see `Target Networks `__ in the *AWS Client VPN Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/assign-ipv6-addresses.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/assign-ipv6-addresses.rst new file mode 100644 index 000000000..3582b3fb3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/assign-ipv6-addresses.rst @@ -0,0 +1,35 @@ +**To assign specific IPv6 addresses to a network interface** + +This example assigns the specified IPv6 addresses to the specified network interface. + +Command:: + + aws ec2 assign-ipv6-addresses --network-interface-id eni-38664473 --ipv6-addresses 2001:db8:1234:1a00:3304:8879:34cf:4071 2001:db8:1234:1a00:9691:9503:25ad:1761 + +Output:: + + { + "AssignedIpv6Addresses": [ + "2001:db8:1234:1a00:3304:8879:34cf:4071", + "2001:db8:1234:1a00:9691:9503:25ad:1761" + ], + "NetworkInterfaceId": "eni-38664473" + } + +**To assign IPv6 addresses that Amazon selects to a network interface** + +This example assigns two IPv6 addresses to the specified network interface. Amazon automatically assigns these IPv6 addresses from the available IPv6 addresses in the IPv6 CIDR block range of the subnet. + +Command:: + + aws ec2 assign-ipv6-addresses --network-interface-id eni-38664473 --ipv6-address-count 2 + +Output:: + + { + "AssignedIpv6Addresses": [ + "2001:db8:1234:1a00:3304:8879:34cf:4071", + "2001:db8:1234:1a00:9691:9503:25ad:1761" + ], + "NetworkInterfaceId": "eni-38664473" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/assign-private-ip-addresses.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/assign-private-ip-addresses.rst new file mode 100644 index 000000000..7ad78c46d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/assign-private-ip-addresses.rst @@ -0,0 +1,15 @@ +**To assign a specific secondary private IP address a network interface** + +This example assigns the specified secondary private IP address to the specified network interface. If the command succeeds, no output is returned. + +Command:: + + aws ec2 assign-private-ip-addresses --network-interface-id eni-e5aa89a3 --private-ip-addresses 10.0.0.82 + +**To assign secondary private IP addresses that Amazon EC2 selects to a network interface** + +This example assigns two secondary private IP addresses to the specified network interface. Amazon EC2 automatically assigns these IP addresses from the available IP addresses in the CIDR block range of the subnet the network interface is associated with. If the command succeeds, no output is returned. + +Command:: + + aws ec2 assign-private-ip-addresses --network-interface-id eni-e5aa89a3 --secondary-private-ip-address-count 2 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/assign-private-nat-gateway-address.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/assign-private-nat-gateway-address.rst new file mode 100644 index 000000000..667ad7cdd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/assign-private-nat-gateway-address.rst @@ -0,0 +1,27 @@ +**To assign private IP addresses to your private NAT gateway** + +The following ``assign-private-nat-gateway-address`` example assigns two private IP addresses to the specified private NAT gateway. :: + + aws ec2 assign-private-nat-gateway-address \ + --nat-gateway-id nat-1234567890abcdef0 \ + --private-ip-address-count 2 + +Output:: + + { + "NatGatewayId": "nat-1234567890abcdef0", + "NatGatewayAddresses": [ + { + "NetworkInterfaceId": "eni-0065a61b324d1897a", + "IsPrimary": false, + "Status": "assigning" + }, + { + "NetworkInterfaceId": "eni-0065a61b324d1897a", + "IsPrimary": false, + "Status": "assigning" + } + ] + } + +For more information, see `NAT gateways `__ in the *Amazon VPC User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-address.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-address.rst new file mode 100644 index 000000000..08a8fdf3b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-address.rst @@ -0,0 +1,44 @@ +**Example 1: To associate an Elastic IP address with an instance** + +The following ``associate-address`` example associates an Elastic IP address with the specified EC2 instance. :: + + aws ec2 associate-address \ + --instance-id i-0b263919b6498b123 \ + --allocation-id eipalloc-64d5890a + +Output:: + + { + "AssociationId": "eipassoc-2bebb745" + } + +**Example 2: To associate an Elastic IP address with a network interface** + +The following ``associate-address`` example associates the specified Elastic IP address with the specified network interface. :: + + aws ec2 associate-address + --allocation-id eipalloc-64d5890a \ + --network-interface-id eni-1a2b3c4d + +Output:: + + { + "AssociationId": "eipassoc-2bebb745" + } + +**Example 3: To associate an Elastic IP address with a private IP address** + +The following ``associate-address`` example associates the specified Elastic IP address with the specified private IP address in the specified network interface. :: + + aws ec2 associate-address \ + --allocation-id eipalloc-64d5890a \ + --network-interface-id eni-1a2b3c4d \ + --private-ip-address 10.0.0.85 + +Output:: + + { + "AssociationId": "eipassoc-2bebb745" + } + +For more information, see `Elastic IP addresses `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-client-vpn-target-network.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-client-vpn-target-network.rst new file mode 100644 index 000000000..f460f1c7e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-client-vpn-target-network.rst @@ -0,0 +1,18 @@ +**To associate a target network with a Client VPN endpoint** + +The following ``associate-client-vpn-target-network`` example associates a subnet with the specified Client VPN endpoint. :: + + aws ec2 associate-client-vpn-target-network \ + --subnet-id subnet-0123456789abcabca \ + --client-vpn-endpoint-id cvpn-endpoint-123456789123abcde + +Output:: + + { + "AssociationId": "cvpn-assoc-12312312312312312", + "Status": { + "Code": "associating" + } + } + +For more information, see `Target Networks `__ in the *AWS Client VPN Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-dhcp-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-dhcp-options.rst new file mode 100644 index 000000000..b1a5ae526 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-dhcp-options.rst @@ -0,0 +1,15 @@ +**To associate a DHCP options set with your VPC** + +This example associates the specified DHCP options set with the specified VPC. If the command succeeds, no output is returned. + +Command:: + + aws ec2 associate-dhcp-options --dhcp-options-id dopt-d9070ebb --vpc-id vpc-a01106c2 + +**To associate the default DHCP options set with your VPC** + +This example associates the default DHCP options set with the specified VPC. If the command succeeds, no output is returned. + +Command:: + + aws ec2 associate-dhcp-options --dhcp-options-id default --vpc-id vpc-a01106c2 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-iam-instance-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-iam-instance-profile.rst new file mode 100644 index 000000000..35c816141 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-iam-instance-profile.rst @@ -0,0 +1,21 @@ +**To associate an IAM instance profile with an instance** + +This example associates an IAM instance profile named ``admin-role`` with instance ``i-123456789abcde123``. + +Command:: + + aws ec2 associate-iam-instance-profile --instance-id i-123456789abcde123 --iam-instance-profile Name=admin-role + +Output:: + + { + "IamInstanceProfileAssociation": { + "InstanceId": "i-123456789abcde123", + "State": "associating", + "AssociationId": "iip-assoc-0e7736511a163c209", + "IamInstanceProfile": { + "Id": "AIPAJBLK7RKJKWDXVHIEC", + "Arn": "arn:aws:iam::123456789012:instance-profile/admin-role" + } + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-instance-event-window.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-instance-event-window.rst new file mode 100644 index 000000000..e909e012a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-instance-event-window.rst @@ -0,0 +1,94 @@ +**Example 1: To associate one or more instances with an event window** + +The following ``associate-instance-event-window`` example associates one or more instances with an event window. :: + + aws ec2 associate-instance-event-window \ + --region us-east-1 \ + --instance-event-window-id iew-0abcdef1234567890 \ + --association-target "InstanceIds=i-1234567890abcdef0,i-0598c7d356eba48d7" + +Output:: + + { + "InstanceEventWindow": { + "InstanceEventWindowId": "iew-0abcdef1234567890", + "Name": "myEventWindowName", + "CronExpression": "* 21-23 * * 2,3", + "AssociationTarget": { + "InstanceIds": [ + "i-1234567890abcdef0", + "i-0598c7d356eba48d7" + ], + "Tags": [], + "DedicatedHostIds": [] + }, + "State": "creating" + } + } + +For event window constraints, see `Considerations `__ in the Scheduled Events section of the *Amazon EC2 User Guide*. + +**Example 2: To associate instance tags with an event window** + +The following ``associate-instance-event-window`` example associates instance tags with an event window. Enter an ``instance-event-window-id`` parameter to specify the event window. To associate instance tags, specify the ``association-target`` parameter, and for the parameter value, specify one or more tags. :: + + aws ec2 associate-instance-event-window \ + --region us-east-1 \ + --instance-event-window-id iew-0abcdef1234567890 \ + --association-target "InstanceTags=[{Key=k2,Value=v2},{Key=k1,Value=v1}]" + +Output:: + + { + "InstanceEventWindow": { + "InstanceEventWindowId": "iew-0abcdef1234567890", + "Name": "myEventWindowName", + "CronExpression": "* 21-23 * * 2,3", + "AssociationTarget": { + "InstanceIds": [], + "Tags": [ + { + "Key": "k2", + "Value": "v2" + }, + { + "Key": "k1", + "Value": "v1" + } + ], + "DedicatedHostIds": [] + }, + "State": "creating" + } + } + +For event window constraints, see `Considerations `__ in the Scheduled Events section of the *Amazon EC2 User Guide*. + +**Example 3: To associate a Dedicated Host with an event window** + +The following ``associate-instance-event-window`` example associates a Dedicated Host with an event window. Enter an ``instance-event-window-id`` parameter to specify the event window. To associate a Dedicated Host, specify the ``--association-target`` parameter, and for the parameter values, specify one of more Dedicated Host IDs. :: + + aws ec2 associate-instance-event-window \ + --region us-east-1 \ + --instance-event-window-id iew-0abcdef1234567890 \ + --association-target "DedicatedHostIds=h-029fa35a02b99801d" + +Output:: + + { + "InstanceEventWindow": { + "InstanceEventWindowId": "iew-0abcdef1234567890", + "Name": "myEventWindowName", + "CronExpression": "* 21-23 * * 2,3", + "AssociationTarget": { + "InstanceIds": [], + "Tags": [], + "DedicatedHostIds": [ + "h-029fa35a02b99801d" + ] + }, + "State": "creating" + } + } + +For event window constraints, see `Considerations `__ in the Scheduled Events section of the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-ipam-resource-discovery.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-ipam-resource-discovery.rst new file mode 100644 index 000000000..4e1e5b674 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-ipam-resource-discovery.rst @@ -0,0 +1,39 @@ +**To associate a resource discovery with an IPAM** + +In this example, you are an IPAM delegated admin and a resource discovery has been created and shared with you by another AWS account so that you can use IPAM to manage and monitor resource CIDRs owned by the other account. + +Note + +* To complete this request, you'll need the resource discovery ID which you can get with `describe-ipam-resource-discoveries `__ and the IPAM ID which you can get with `describe-ipams `__. +* The resource discovery that you are associating must have first been shared with your account using AWS RAM. +* The ``--region`` you enter must match the home Region of the IPAM you are associating it with. + +The following ``associate-ipam-resource-discovery`` example associates a resource discovery with an IPAM. :: + + aws ec2 associate-ipam-resource-discovery \ + --ipam-id ipam-005f921c17ebd5107 \ + --ipam-resource-discovery-id ipam-res-disco-03e0406de76a044ee \ + --tag-specifications 'ResourceType=ipam-resource-discovery,Tags=[{Key=cost-center,Value=cc123}]' \ + --region us-east-1 + +Output:: + + { + { + "IpamResourceDiscoveryAssociation": { + "OwnerId": "320805250157", + "IpamResourceDiscoveryAssociationId": "ipam-res-disco-assoc-04382a6346357cf82", + "IpamResourceDiscoveryAssociationArn": "arn:aws:ec2::320805250157:ipam-resource-discovery-association/ipam-res-disco-assoc-04382a6346357cf82", + "IpamResourceDiscoveryId": "ipam-res-disco-0365d2977fc1672fe", + "IpamId": "ipam-005f921c17ebd5107", + "IpamArn": "arn:aws:ec2::320805250157:ipam/ipam-005f921c17ebd5107", + "IpamRegion": "us-east-1", + "IsDefault": false, + "ResourceDiscoveryStatus": "active", + "State": "associate-in-progress", + "Tags": [] + } + } + } + +Once you associate a resource discovery, you can monitor and/or manage the IP addresses of resources created by the other accounts. For more information, see `Integrate IPAM with accounts outside of your organization `__ in the *Amazon VPC IPAM User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-nat-gateway-address.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-nat-gateway-address.rst new file mode 100644 index 000000000..31051462a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-nat-gateway-address.rst @@ -0,0 +1,23 @@ +**To associate an Elastic IP address with a public NAT gateway** + +The following ``associate-nat-gateway-address`` example associates the specified Elastic IP address with the specified public NAT gateway. AWS automatically assigns a secondary private IPv4 address. :: + + aws ec2 associate-nat-gateway-address \ + --nat-gateway-id nat-1234567890abcdef0 \ + --allocation-ids eipalloc-0be6ecac95EXAMPLE + +Output:: + + { + "NatGatewayId": "nat-1234567890abcdef0", + "NatGatewayAddresses": [ + { + "AllocationId": "eipalloc-0be6ecac95EXAMPLE", + "NetworkInterfaceId": "eni-09cc4b2558794f7f9", + "IsPrimary": false, + "Status": "associating" + } + ] + } + +For more information, see `NAT gateways `__ in the *Amazon VPC User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-route-table.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-route-table.rst new file mode 100644 index 000000000..8ad2afcbe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-route-table.rst @@ -0,0 +1,13 @@ +**To associate a route table with a subnet** + +This example associates the specified route table with the specified subnet. + +Command:: + + aws ec2 associate-route-table --route-table-id rtb-22574640 --subnet-id subnet-9d4a7b6c + +Output:: + + { + "AssociationId": "rtbassoc-781d0d1a" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-security-group-vpc.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-security-group-vpc.rst new file mode 100644 index 000000000..1629b6690 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-security-group-vpc.rst @@ -0,0 +1,15 @@ +**To associate a security group with another VPC** + +The following ``associate-security-group-vpc`` example associates the specified security group with the specified VPC. :: + + aws ec2 associate-security-group-vpc \ + --group-id sg-04dbb43907d3f8a78 \ + --vpc-id vpc-0bf4c2739bc05a694 + +Output:: + + { + "State": "associating" + } + +For more information, see `Associate security groups with multiple VPCs `__ in the *Amazon VPC User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-subnet-cidr-block.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-subnet-cidr-block.rst new file mode 100644 index 000000000..5b9885511 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-subnet-cidr-block.rst @@ -0,0 +1,20 @@ +**To associate an IPv6 CIDR block with a subnet** + +This example associates an IPv6 CIDR block with the specified subnet. + +Command:: + + aws ec2 associate-subnet-cidr-block --subnet-id subnet-5f46ec3b --ipv6-cidr-block 2001:db8:1234:1a00::/64 + +Output:: + + { + "SubnetId": "subnet-5f46ec3b", + "Ipv6CidrBlockAssociation": { + "Ipv6CidrBlock": "2001:db8:1234:1a00::/64", + "AssociationId": "subnet-cidr-assoc-3aa54053", + "Ipv6CidrBlockState": { + "State": "associating" + } + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-transit-gateway-multicast-domain.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-transit-gateway-multicast-domain.rst new file mode 100755 index 000000000..d68563864 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-transit-gateway-multicast-domain.rst @@ -0,0 +1,28 @@ +**To associate a transit gateway with a multicast domain** + +The following ``associate-transit-gateway-multicast-domain`` example associates the specified subnet and attachment with the specified multicast domain. :: + + aws ec2 associate-transit-gateway-multicast-domain \ + --transit-gateway-multicast-domain-id tgw-mcast-domain-0c4905cef79d6e597 \ + --transit-gateway-attachment-id tgw-attach-028c1dd0f8f5cbe8e \ + --subnet-ids subnet-000de86e3b49c932a \ + --transit-gateway-multicast-domain-id tgw-mcast-domain-0c4905cef7EXAMPLE + +Output:: + + { + "Associations": { + "TransitGatewayMulticastDomainId": "tgw-mcast-domain-0c4905cef79d6e597", + "TransitGatewayAttachmentId": "tgw-attach-028c1dd0f8f5cbe8e", + "ResourceId": "vpc-01128d2c240c09bd5", + "ResourceType": "vpc", + "Subnets": [ + { + "SubnetId": "subnet-000de86e3b49c932a", + "State": "associating" + } + ] + } + } + +For more information, see `Multicast domains `__ in the *Transit Gateways Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-transit-gateway-route-table.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-transit-gateway-route-table.rst new file mode 100755 index 000000000..4bf1f1be9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-transit-gateway-route-table.rst @@ -0,0 +1,21 @@ +**To associate a transit gateway route table with a transit gateway attachment** + +The following example associates the specified transit gateway route table with the specified VPC attachment. :: + + aws ec2 associate-transit-gateway-route-table \ + --transit-gateway-route-table-id tgw-rtb-002573ed1eEXAMPLE \ + --transit-gateway-attachment-id tgw-attach-0b5968d3b6EXAMPLE + +Output:: + + { + "Association": { + "TransitGatewayRouteTableId": "tgw-rtb-002573ed1eEXAMPLE", + "TransitGatewayAttachmentId": "tgw-attach-0b5968d3b6EXAMPLE", + "ResourceId": "vpc-0065acced4EXAMPLE", + "ResourceType": "vpc", + "State": "associating" + } + } + +For more information, see `Associate a Transit Gateway Route Table `__ in the *AWS Transit Gateways Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-vpc-cidr-block.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-vpc-cidr-block.rst new file mode 100755 index 000000000..9e378c21a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/associate-vpc-cidr-block.rst @@ -0,0 +1,42 @@ +**Example 1: To associate an Amazon-provided IPv6 CIDR block with a VPC** + +The following ``associate-vpc-cidr-block`` example associates an IPv6 CIDR block with the specified VPC.:: + + aws ec2 associate-vpc-cidr-block \ + --amazon-provided-ipv6-cidr-block \ + --ipv6-cidr-block-network-border-group us-west-2-lax-1 \ + --vpc-id vpc-8EXAMPLE + +Output:: + + { + "Ipv6CidrBlockAssociation": { + "AssociationId": "vpc-cidr-assoc-0838ce7d9dEXAMPLE", + "Ipv6CidrBlockState": { + "State": "associating" + }, + "NetworkBorderGroup": "us-west-2-lax-1" + }, + "VpcId": "vpc-8EXAMPLE" + } + +**Example 2:To associate an additional IPv4 CIDR block with a VPC** + +The following ``associate-vpc-cidr-block`` example associates the IPv4 CIDR block ``10.2.0.0/16`` with the specified VPC. :: + + aws ec2 associate-vpc-cidr-block \ + --vpc-id vpc-1EXAMPLE \ + --cidr-block 10.2.0.0/16 + +Output:: + + { + "CidrBlockAssociation": { + "AssociationId": "vpc-cidr-assoc-2EXAMPLE", + "CidrBlock": "10.2.0.0/16", + "CidrBlockState": { + "State": "associating" + } + }, + "VpcId": "vpc-1EXAMPLE" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/attach-classic-link-vpc.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/attach-classic-link-vpc.rst new file mode 100644 index 000000000..a8efa261c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/attach-classic-link-vpc.rst @@ -0,0 +1,13 @@ +**To link (attach) an EC2-Classic instance to a VPC** + +This example links instance i-1234567890abcdef0 to VPC vpc-88888888 through the VPC security group sg-12312312. + +Command:: + + aws ec2 attach-classic-link-vpc --instance-id i-1234567890abcdef0 --vpc-id vpc-88888888 --groups sg-12312312 + +Output:: + + { + "Return": true + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/attach-internet-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/attach-internet-gateway.rst new file mode 100644 index 000000000..dce28ba4e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/attach-internet-gateway.rst @@ -0,0 +1,11 @@ +**To attach an internet gateway to your VPC** + +The following ``attach-internet-gateway`` example attaches the specified internet gateway to the specific VPC. :: + + aws ec2 attach-internet-gateway \ + --internet-gateway-id igw-0d0fb496b3EXAMPLE \ + --vpc-id vpc-0a60eb65b4EXAMPLE + +This command produces no output. + +For more information, see `Internet gateways `__ in the *Amazon VPC User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/attach-network-interface.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/attach-network-interface.rst new file mode 100644 index 000000000..2fd04278a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/attach-network-interface.rst @@ -0,0 +1,34 @@ +**Example 1: To attach a network interface to an instance** + +The following ``attach-network-interface`` example attaches the specified network interface to the specified instance. :: + + aws ec2 attach-network-interface \ + --network-interface-id eni-0dc56a8d4640ad10a \ + --instance-id i-1234567890abcdef0 \ + --device-index 1 + +Output:: + + { + "AttachmentId": "eni-attach-01a8fc87363f07cf9" + } + +For more information, see `Elastic network interfaces `__ in the *Amazon EC2 User Guide*. + +**Example 2: To attach a network interface to an instance with multiple network cards** + +The following ``attach-network-interface`` example attaches the specified network interface to the specified instance and network card. :: + + aws ec2 attach-network-interface \ + --network-interface-id eni-07483b1897541ad83 \ + --instance-id i-01234567890abcdef \ + --network-card-index 1 \ + --device-index 1 + +Output:: + + { + "AttachmentId": "eni-attach-0fbd7ee87a88cd06c" + } + +For more information, see `Elastic network interfaces `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/attach-verified-access-trust-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/attach-verified-access-trust-provider.rst new file mode 100644 index 000000000..24a5a262b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/attach-verified-access-trust-provider.rst @@ -0,0 +1,36 @@ +**To attach a trust provider to an instance** + +The following ``attach-verified-access-trust-provider`` example attaches the specified Verified Access trust provider to the specified Verified Access instance. :: + + aws ec2 attach-verified-access-trust-provider \ + --verified-access-instance-id vai-0ce000c0b7643abea \ + --verified-access-trust-provider-id vatp-0bb32de759a3e19e7 + +Output:: + + { + "VerifiedAccessTrustProvider": { + "VerifiedAccessTrustProviderId": "vatp-0bb32de759a3e19e7", + "Description": "", + "TrustProviderType": "user", + "UserTrustProviderType": "iam-identity-center", + "PolicyReferenceName": "idc", + "CreationTime": "2023-08-25T19:00:38", + "LastUpdatedTime": "2023-08-25T19:00:38" + }, + "VerifiedAccessInstance": { + "VerifiedAccessInstanceId": "vai-0ce000c0b7643abea", + "Description": "", + "VerifiedAccessTrustProviders": [ + { + "VerifiedAccessTrustProviderId": "vatp-0bb32de759a3e19e7", + "TrustProviderType": "user", + "UserTrustProviderType": "iam-identity-center" + } + ], + "CreationTime": "2023-08-25T18:27:56", + "LastUpdatedTime": "2023-08-25T18:27:56" + } + } + +For more information, see `Verified Access instances `__ in the *AWS Verified Access User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/attach-volume.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/attach-volume.rst new file mode 100644 index 000000000..2601121c6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/attach-volume.rst @@ -0,0 +1,17 @@ +**To attach a volume to an instance** + +This example command attaches a volume (``vol-1234567890abcdef0``) to an instance (``i-01474ef662b89480``) as ``/dev/sdf``. + +Command:: + + aws ec2 attach-volume --volume-id vol-1234567890abcdef0 --instance-id i-01474ef662b89480 --device /dev/sdf + +Output:: + + { + "AttachTime": "YYYY-MM-DDTHH:MM:SS.000Z", + "InstanceId": "i-01474ef662b89480", + "VolumeId": "vol-1234567890abcdef0", + "State": "attaching", + "Device": "/dev/sdf" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/attach-vpn-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/attach-vpn-gateway.rst new file mode 100644 index 000000000..7bd7f34c1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/attach-vpn-gateway.rst @@ -0,0 +1,17 @@ +**To attach a virtual private gateway to your VPC** + +The following ``attach-vpn-gateway`` example attaches the specified virtual private gateway to the specified VPC. :: + + aws ec2 attach-vpn-gateway \ + --vpn-gateway-id vgw-9a4cacf3 \ + --vpc-id vpc-a01106c2 + +Output:: + + { + "VpcAttachment": { + "State": "attaching", + "VpcId": "vpc-a01106c2" + } + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/authorize-client-vpn-ingress.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/authorize-client-vpn-ingress.rst new file mode 100644 index 000000000..53daf0f5f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/authorize-client-vpn-ingress.rst @@ -0,0 +1,18 @@ +**To add an authorization rule for a Client VPN endpoint** + +The following ``authorize-client-vpn-ingress`` example adds an ingress authorization rule that permits all clients to access the internet (``0.0.0.0/0``). :: + + aws ec2 authorize-client-vpn-ingress \ + --client-vpn-endpoint-id cvpn-endpoint-123456789123abcde \ + --target-network-cidr 0.0.0.0/0 \ + --authorize-all-groups + +Output:: + + { + "Status": { + "Code": "authorizing" + } + } + +For more information, see `Authorization Rules `__ in the *AWS Client VPN Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/authorize-security-group-egress.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/authorize-security-group-egress.rst new file mode 100644 index 000000000..998212a87 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/authorize-security-group-egress.rst @@ -0,0 +1,56 @@ +**Example 1: To add a rule that allows outbound traffic to a specific address range** + +The following ``authorize-security-group-egress`` example adds a rule that grants access to the specified address ranges on TCP port 80. :: + + aws ec2 authorize-security-group-egress \ + --group-id sg-1234567890abcdef0 \ + --ip-permissions 'IpProtocol=tcp,FromPort=80,ToPort=80,IpRanges=[{CidrIp=10.0.0.0/16}]' + +Output:: + + { + "Return": true, + "SecurityGroupRules": [ + { + "SecurityGroupRuleId": "sgr-0b15794cdb17bf29c", + "GroupId": "sg-1234567890abcdef0", + "GroupOwnerId": "123456789012", + "IsEgress": true, + "IpProtocol": "tcp", + "FromPort": 80, + "ToPort": 80, + "CidrIpv4": "10.0.0.0/16" + } + ] + } + +**Example 2: To add a rule that allows outbound traffic to a specific security group** + +The following ``authorize-security-group-egress`` example adds a rule that grants access to the specified security group on TCP port 80. :: + + aws ec2 authorize-security-group-egress \ + --group-id sg-1234567890abcdef0 \ + --ip-permissions 'IpProtocol=tcp,FromPort=80,ToPort=80,UserIdGroupPairs=[{GroupId=sg-0aad1c26bbeec5c22}]' + +Output:: + + { + "Return": true, + "SecurityGroupRules": [ + { + "SecurityGroupRuleId": "sgr-0b5dd815afcea9cc3", + "GroupId": "sg-1234567890abcdef0", + "GroupOwnerId": "123456789012", + "IsEgress": true, + "IpProtocol": "tcp", + "FromPort": 80, + "ToPort": 80, + "ReferencedGroupInfo": { + "GroupId": "sg-0aad1c26bbeec5c22", + "UserId": "123456789012" + } + } + ] + } + +For more information, see `Security groups `__ in the *Amazon VPC User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/authorize-security-group-ingress.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/authorize-security-group-ingress.rst new file mode 100644 index 000000000..9da7c89b6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/authorize-security-group-ingress.rst @@ -0,0 +1,227 @@ +**Example 1: To add a rule that allows inbound SSH traffic** + +The following ``authorize-security-group-ingress`` example adds a rule that allows inbound traffic on TCP port 22 (SSH). :: + + aws ec2 authorize-security-group-ingress \ + --group-id sg-1234567890abcdef0 \ + --protocol tcp \ + --port 22 \ + --cidr 203.0.113.0/24 + +Output:: + + { + "Return": true, + "SecurityGroupRules": [ + { + "SecurityGroupRuleId": "sgr-01afa97ef3e1bedfc", + "GroupId": "sg-1234567890abcdef0", + "GroupOwnerId": "123456789012", + "IsEgress": false, + "IpProtocol": "tcp", + "FromPort": 22, + "ToPort": 22, + "CidrIpv4": "203.0.113.0/24" + } + ] + } + +**Example 2: To add a rule that allows inbound HTTP traffic from another security group** + +The following ``authorize-security-group-ingress`` example adds a rule that allows inbound access on TCP port 80 from the source security group ``sg-1a2b3c4d``. The source group must be in the same VPC or in a peer VPC (requires a VPC peering connection). Incoming traffic is allowed based on the private IP addresses of instances that are associated with the source security group (not the public IP address or Elastic IP address). :: + + aws ec2 authorize-security-group-ingress \ + --group-id sg-1234567890abcdef0 \ + --protocol tcp \ + --port 80 \ + --source-group sg-1a2b3c4d + +Output:: + + { + "Return": true, + "SecurityGroupRules": [ + { + "SecurityGroupRuleId": "sgr-01f4be99110f638a7", + "GroupId": "sg-1234567890abcdef0", + "GroupOwnerId": "123456789012", + "IsEgress": false, + "IpProtocol": "tcp", + "FromPort": 80, + "ToPort": 80, + "ReferencedGroupInfo": { + "GroupId": "sg-1a2b3c4d", + "UserId": "123456789012" + } + } + ] + } + +**Example 3: To add multiple rules in the same call** + +The following ``authorize-security-group-ingress`` example uses the ``ip-permissions`` parameter to add two inbound rules, one that enables inbound access on TCP port 3389 (RDP) and the other that enables ping/ICMP. :: + + aws ec2 authorize-security-group-ingress \ + --group-id sg-1234567890abcdef0 \ + --ip-permissions 'IpProtocol=tcp,FromPort=3389,ToPort=3389,IpRanges=[{CidrIp=172.31.0.0/16}]' 'IpProtocol=icmp,FromPort=-1,ToPort=-1,IpRanges=[{CidrIp=172.31.0.0/16}]' + +Output:: + + { + "Return": true, + "SecurityGroupRules": [ + { + "SecurityGroupRuleId": "sgr-00e06e5d3690f29f3", + "GroupId": "sg-1234567890abcdef0", + "GroupOwnerId": "123456789012", + "IsEgress": false, + "IpProtocol": "tcp", + "FromPort": 3389, + "ToPort": 3389, + "CidrIpv4": "172.31.0.0/16" + }, + { + "SecurityGroupRuleId": "sgr-0a133dd4493944b87", + "GroupId": "sg-1234567890abcdef0", + "GroupOwnerId": "123456789012", + "IsEgress": false, + "IpProtocol": "tcp", + "FromPort": -1, + "ToPort": -1, + "CidrIpv4": "172.31.0.0/16" + } + ] + } + +**Example 4: To add a rule for ICMP traffic** + +The following ``authorize-security-group-ingress`` example uses the ``ip-permissions`` parameter to add an inbound rule that allows the ICMP message ``Destination Unreachable: Fragmentation Needed and Don't Fragment was Set`` (Type 3, Code 4) from anywhere. :: + + aws ec2 authorize-security-group-ingress \ + --group-id sg-1234567890abcdef0 \ + --ip-permissions 'IpProtocol=icmp,FromPort=3,ToPort=4,IpRanges=[{CidrIp=0.0.0.0/0}]' + +Output:: + + { + "Return": true, + "SecurityGroupRules": [ + { + "SecurityGroupRuleId": "sgr-0de3811019069b787", + "GroupId": "sg-1234567890abcdef0", + "GroupOwnerId": "123456789012", + "IsEgress": false, + "IpProtocol": "icmp", + "FromPort": 3, + "ToPort": 4, + "CidrIpv4": "0.0.0.0/0" + } + ] + } + +**Example 5: To add a rule for IPv6 traffic** + +The following ``authorize-security-group-ingress`` example uses the ``ip-permissions`` parameter to add an inbound rule that allows SSH access (port 22) from the IPv6 range ``2001:db8:1234:1a00::/64``. :: + + aws ec2 authorize-security-group-ingress \ + --group-id sg-1234567890abcdef0 \ + --ip-permissions 'IpProtocol=tcp,FromPort=22,ToPort=22,Ipv6Ranges=[{CidrIpv6=2001:db8:1234:1a00::/64}]' + +Output:: + + { + "Return": true, + "SecurityGroupRules": [ + { + "SecurityGroupRuleId": "sgr-0455bc68b60805563", + "GroupId": "sg-1234567890abcdef0", + "GroupOwnerId": "123456789012", + "IsEgress": false, + "IpProtocol": "tcp", + "FromPort": 22, + "ToPort": 22, + "CidrIpv6": "2001:db8:1234:1a00::/64" + } + ] + } + +**Example 6: To add a rule for ICMPv6 traffic** + +The following ``authorize-security-group-ingress`` example uses the ``ip-permissions`` parameter to add an inbound rule that allows ICMPv6 traffic from anywhere. :: + + aws ec2 authorize-security-group-ingress \ + --group-id sg-1234567890abcdef0 \ + --ip-permissions 'IpProtocol=icmpv6,Ipv6Ranges=[{CidrIpv6=::/0}]' + +Output:: + + { + "Return": true, + "SecurityGroupRules": [ + { + "SecurityGroupRuleId": "sgr-04b612d9363ab6327", + "GroupId": "sg-1234567890abcdef0", + "GroupOwnerId": "123456789012", + "IsEgress": false, + "IpProtocol": "icmpv6", + "FromPort": -1, + "ToPort": -1, + "CidrIpv6": "::/0" + } + ] + } + +**Example 7: Add a rule with a description** + +The following ``authorize-security-group-ingress`` example uses the ``ip-permissions`` parameter to add an inbound rule that allows RDP traffic from the specified IPv4 address range. The rule includes a description to help you identify it later. :: + + aws ec2 authorize-security-group-ingress \ + --group-id sg-1234567890abcdef0 \ + --ip-permissions 'IpProtocol=tcp,FromPort=3389,ToPort=3389,IpRanges=[{CidrIp=203.0.113.0/24,Description='RDP access from NY office'}]' + +Output:: + + { + "Return": true, + "SecurityGroupRules": [ + { + "SecurityGroupRuleId": "sgr-0397bbcc01e974db3", + "GroupId": "sg-1234567890abcdef0", + "GroupOwnerId": "123456789012", + "IsEgress": false, + "IpProtocol": "tcp", + "FromPort": 3389, + "ToPort": 3389, + "CidrIpv4": "203.0.113.0/24", + "Description": "RDP access from NY office" + } + ] + } + +**Example 8: To add an inbound rule that uses a prefix list** + +The following ``authorize-security-group-ingress`` example uses the ``ip-permissions`` parameter to add an inbound rule that allows all traffic for the CIDR ranges in the specified prefix list. :: + + aws ec2 authorize-security-group-ingress \ + --group-id sg-04a351bfe432d4e71 \ + --ip-permissions 'IpProtocol=all,PrefixListIds=[{PrefixListId=pl-002dc3ec097de1514}]' + +Output:: + + { + "Return": true, + "SecurityGroupRules": [ + { + "SecurityGroupRuleId": "sgr-09c74b32f677c6c7c", + "GroupId": "sg-1234567890abcdef0", + "GroupOwnerId": "123456789012", + "IsEgress": false, + "IpProtocol": "-1", + "FromPort": -1, + "ToPort": -1, + "PrefixListId": "pl-0721453c7ac4ec009" + } + ] + } + +For more information, see `Security groups `__ in the *Amazon VPC User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/bundle-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/bundle-instance.rst new file mode 100644 index 000000000..a9cf21e8a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/bundle-instance.rst @@ -0,0 +1,27 @@ +**To bundle an instance** + +This example bundles instance ``i-1234567890abcdef0`` to a bucket called ``bundletasks``. Before you specify values for your access key IDs, review and follow the guidance in `Best Practices for Managing AWS Access Keys`_. + +Command:: + + aws ec2 bundle-instance --instance-id i-1234567890abcdef0 --bucket bundletasks --prefix winami --owner-akid AK12AJEXAMPLE --owner-sak example123example + +Output:: + + { + "BundleTask": { + "UpdateTime": "2015-09-15T13:30:35.000Z", + "InstanceId": "i-1234567890abcdef0", + "Storage": { + "S3": { + "Prefix": "winami", + "Bucket": "bundletasks" + } + }, + "State": "pending", + "StartTime": "2015-09-15T13:30:35.000Z", + "BundleId": "bun-294e041f" + } + } + +.. _`Best Practices for Managing AWS Access Keys`: http://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-bundle-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-bundle-task.rst new file mode 100644 index 000000000..0d597ea91 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-bundle-task.rst @@ -0,0 +1,25 @@ +**To cancel a bundle task** + +This example cancels bundle task ``bun-2a4e041c``. + +Command:: + + aws ec2 cancel-bundle-task --bundle-id bun-2a4e041c + +Output:: + + { + "BundleTask": { + "UpdateTime": "2015-09-15T13:27:40.000Z", + "InstanceId": "i-1234567890abcdef0", + "Storage": { + "S3": { + "Prefix": "winami", + "Bucket": "bundletasks" + } + }, + "State": "cancelling", + "StartTime": "2015-09-15T13:24:35.000Z", + "BundleId": "bun-2a4e041c" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-capacity-reservation-fleets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-capacity-reservation-fleets.rst new file mode 100644 index 000000000..3a935cbdf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-capacity-reservation-fleets.rst @@ -0,0 +1,21 @@ +**To cancel a Capacity Reservation Fleet** + +The following ``cancel-capacity-reservation-fleets`` example cancels the specified Capacity Reservation Fleet and the capacity it reserves. When you cancel a Fleet, its status changes to ``cancelled``, and it can no longer create new Capacity Reservations. Additionally, all of the individual Capacity Reservations in the Fleet are cancelled, and the instances that were previously running in the reserved capacity continue to run normally in shared capacity. :: + + aws ec2 cancel-capacity-reservation-fleets \ + --capacity-reservation-fleet-ids crf-abcdef01234567890 + +Output:: + + { + "SuccessfulFleetCancellations": [ + { + "CurrentFleetState": "cancelling", + "PreviousFleetState": "active", + "CapacityReservationFleetId": "crf-abcdef01234567890" + } + ], + "FailedFleetCancellations": [] + } + +For more information about Capacity Reservation Fleets, see `Capacity Reservation Fleets `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-capacity-reservation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-capacity-reservation.rst new file mode 100644 index 000000000..d604e1b05 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-capacity-reservation.rst @@ -0,0 +1,14 @@ +**To cancel a capacity reservation** + +The following ``cancel-capacity-reservation`` example cancels the specified capacity reservation. :: + + aws ec2 cancel-capacity-reservation \ + --capacity-reservation-id cr-1234abcd56EXAMPLE + +Output:: + + { + "Return": true + } + +For more information, see `Cancel a Capacity Reservation `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-conversion-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-conversion-task.rst new file mode 100644 index 000000000..909c58566 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-conversion-task.rst @@ -0,0 +1,7 @@ +**To cancel an active conversion of an instance or a volume** + +This example cancels the upload associated with the task ID import-i-fh95npoc. If the command succeeds, no output is returned. + +Command:: + + aws ec2 cancel-conversion-task --conversion-task-id import-i-fh95npoc diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-export-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-export-task.rst new file mode 100644 index 000000000..6cb910f55 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-export-task.rst @@ -0,0 +1,7 @@ +**To cancel an active export task** + +This example cancels an active export task with the task ID export-i-fgelt0i7. If the command succeeds, no output is returned. + +Command:: + + aws ec2 cancel-export-task --export-task-id export-i-fgelt0i7 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-image-launch-permission.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-image-launch-permission.rst new file mode 100644 index 000000000..f854e2f1d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-image-launch-permission.rst @@ -0,0 +1,15 @@ +**To cancel having an AMI shared with your Amazon Web Services account** + +The following ``cancel-image-launch-permission`` example removes your account from the specified AMI's launch permissions. :: + + aws ec2 cancel-image-launch-permission \ + --image-id ami-0123456789example \ + --region us-east-1 + +Output:: + + { + "Return": true + } + +For more information, see `Cancel having an AMI shared with your Amazon Web Services account `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-import-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-import-task.rst new file mode 100755 index 000000000..92e1991a7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-import-task.rst @@ -0,0 +1,14 @@ +**To cancel an import task** + +The following ``cancel-import-task`` example cancels the specified import image task. :: + + aws ec2 cancel-import-task \ + --import-task-id import-ami-1234567890abcdef0 + +Output:: + + { + "ImportTaskId": "import-ami-1234567890abcdef0", + "PreviousState": "active", + "State": "deleting" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-reserved-instances-listing.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-reserved-instances-listing.rst new file mode 100755 index 000000000..1f7a03617 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-reserved-instances-listing.rst @@ -0,0 +1,6 @@ +**To cancel a Reserved Instance listing** + +The following ``cancel-reserved-instances-listing`` example cancels the specified Reserved Instance listing. :: + + aws ec2 cancel-reserved-instances-listing \ + --reserved-instances-listing-id 5ec28771-05ff-4b9b-aa31-9e57dexample diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-spot-fleet-requests.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-spot-fleet-requests.rst new file mode 100644 index 000000000..25a498189 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-spot-fleet-requests.rst @@ -0,0 +1,43 @@ +**Example 1: To cancel a Spot fleet request and terminate the associated instances** + +The following ``cancel-spot-fleet-requests`` example cancels a Spot Fleet request and terminates the associated On-Demand Instances and Spot Instances. :: + + aws ec2 cancel-spot-fleet-requests \ + --spot-fleet-request-ids sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \ + --terminate-instances + +Output:: + + { + "SuccessfulFleetRequests": [ + { + "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", + "CurrentSpotFleetRequestState": "cancelled_terminating", + "PreviousSpotFleetRequestState": "active" + } + ], + "UnsuccessfulFleetRequests": [] + } + +**Example 2: To cancel a Spot fleet request without terminating the associated instances** + +The following ``cancel-spot-fleet-requests`` example cancels a Spot Fleet request without terminating the associated On-Demand Instances and Spot Instances. :: + + aws ec2 cancel-spot-fleet-requests \ + --spot-fleet-request-ids sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \ + --no-terminate-instances + +Output:: + + { + "SuccessfulFleetRequests": [ + { + "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", + "CurrentSpotFleetRequestState": "cancelled_running", + "PreviousSpotFleetRequestState": "active" + } + ], + "UnsuccessfulFleetRequests": [] + } + +For more information, see `Cancel a Spot Fleet request `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-spot-instance-requests.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-spot-instance-requests.rst new file mode 100644 index 000000000..506bc1d7d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/cancel-spot-instance-requests.rst @@ -0,0 +1,19 @@ +**To cancel Spot Instance requests** + +This example command cancels a Spot Instance request. + +Command:: + + aws ec2 cancel-spot-instance-requests --spot-instance-request-ids sir-08b93456 + +Output:: + + { + "CancelledSpotInstanceRequests": [ + { + "State": "cancelled", + "SpotInstanceRequestId": "sir-08b93456" + } + ] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/confirm-product-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/confirm-product-instance.rst new file mode 100644 index 000000000..d6ea51418 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/confirm-product-instance.rst @@ -0,0 +1,13 @@ +**To confirm the product instance** + +This example determines whether the specified product code is associated with the specified instance. + +Command:: + + aws ec2 confirm-product-instance --product-code 774F4FF8 --instance-id i-1234567890abcdef0 + +Output:: + + { + "OwnerId": "123456789012" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/copy-fpga-image.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/copy-fpga-image.rst new file mode 100644 index 000000000..b029752c6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/copy-fpga-image.rst @@ -0,0 +1,13 @@ +**To copy an Amazon FPGA image** + +This example copies the specified AFI from the ``us-east-1`` region to the current region (``eu-west-1``). + +Command:: + + aws ec2 copy-fpga-image --name copy-afi --source-fpga-image-id afi-0d123e123bfc85abc --source-region us-east-1 --region eu-west-1 + +Output:: + + { + "FpgaImageId": "afi-06b12350a123fbabc" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/copy-image.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/copy-image.rst new file mode 100644 index 000000000..66facd980 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/copy-image.rst @@ -0,0 +1,57 @@ +**Example 1: To copy an AMI to another Region** + +The following ``copy-image`` example command copies the specified AMI from the ``us-west-2`` Region to the ``us-east-1`` Region and adds a short description. :: + + aws ec2 copy-image \ + --region us-east-1 \ + --name ami-name \ + --source-region us-west-2 \ + --source-image-id ami-066877671789bd71b \ + --description "This is my copied image." + +Output:: + + { + "ImageId": "ami-0123456789abcdefg" + } + +For more information, see `Copy an AMI `__ in the *Amazon EC2 User Guide*. + +**Example 2: To copy an AMI to another Region and encrypt the backing snapshot** + +The following ``copy-image`` command copies the specified AMI from the ``us-west-2`` Region to the current Region and encrypts the backing snapshot using the specified KMS key. :: + + aws ec2 copy-image \ + --source-region us-west-2 \ + --name ami-name \ + --source-image-id ami-066877671789bd71b \ + --encrypted \ + --kms-key-id alias/my-kms-key + +Output:: + + { + "ImageId": "ami-0123456789abcdefg" + } + +For more information, see `Copy an AMI `__ in the *Amazon EC2 User Guide*. + +**Example 3: To include your user-defined AMI tags when copying an AMI** + +The following ``copy-image`` command uses the ``--copy-image-tags`` parameter to copy your user-defined AMI tags when copying the AMI. :: + + aws ec2 copy-image \ + --region us-east-1 \ + --name ami-name \ + --source-region us-west-2 \ + --source-image-id ami-066877671789bd71b \ + --description "This is my copied image." + --copy-image-tags + +Output:: + + { + "ImageId": "ami-0123456789abcdefg" + } + +For more information, see `Copy an AMI `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/copy-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/copy-snapshot.rst new file mode 100644 index 000000000..bdcacc94e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/copy-snapshot.rst @@ -0,0 +1,33 @@ +**Example 1: To copy a snapshot to another Region** + +The following ``copy-snapshot`` example command copies the specified snapshot from the ``us-west-2`` Region to the ``us-east-1`` Region and adds a short description. :: + + aws ec2 copy-snapshot \ + --region us-east-1 \ + --source-region us-west-2 \ + --source-snapshot-id snap-066877671789bd71b \ + --description 'This is my copied snapshot.' + +Output:: + + { + "SnapshotId": "snap-066877671789bd71b" + } + +**Example 2: To copy an unencrypted snapshot and encrypt the new snapshot** + +The following ``copy-snapshot`` command copies the specified unencrypted snapshot from the ``us-west-2`` Region to the current Region and encrypts the new snapshot using the specified KMS key. :: + + aws ec2 copy-snapshot \ + --source-region us-west-2 \ + --source-snapshot-id snap-066877671789bd71b \ + --encrypted \ + --kms-key-id alias/my-kms-key + +Output:: + + { + "SnapshotId": "snap-066877671789bd71b" + } + +For more information, see `Copy an Amazon EBS snapshot `__ in the *Amazon EBS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-capacity-reservation-fleet.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-capacity-reservation-fleet.rst new file mode 100644 index 000000000..3952e8292 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-capacity-reservation-fleet.rst @@ -0,0 +1,39 @@ +**To create a Capacity Reservation Fleet** + +The following ``create-capacity-reservation-fleet`` example creates a Capacity Reservation Fleet for the instance type specified in the request, up to the specified total target capacity. The number of instances for which the Capacity Reservation Fleet reserves capacity depends on the total target capacity and instance type weights that you specify in the request. Specify the instance types to use and a priority for each of the designated instance types. :: + + aws ec2 create-capacity-reservation-fleet \ + --total-target-capacity 24 \ + --allocation-strategy prioritized \ + --instance-match-criteria open \ + --tenancy default \ + --end-date 2022-12-31T23:59:59.000Z \ + --instance-type-specifications file://instanceTypeSpecification.json + +Contents of ``instanceTypeSpecification.json``:: + + [ + { + "InstanceType": "m5.xlarge", + "InstancePlatform": "Linux/UNIX", + "Weight": 3.0, + "AvailabilityZone":"us-east-1a", + "EbsOptimized": true, + "Priority" : 1 + } + ] + +Output:: + + { + "Status": "submitted", + "TotalFulfilledCapacity": 0.0, + "CapacityReservationFleetId": "crf-abcdef01234567890", + "TotalTargetCapacity": 24 + } + +For more information about Capacity Reservation Fleets, see `Capacity Reservation Fleets `__ in the *Amazon EC2 User Guide*. + +For more information about instance type weight and total target capacity, see `Instance type weight `__ and `Total target capacity `__ in the *Amazon EC2 User Guide*. + +For more information about designating priority for specified instance types, see `Allocation strategy `__ and `Instance type priority `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-capacity-reservation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-capacity-reservation.rst new file mode 100644 index 000000000..5c1780721 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-capacity-reservation.rst @@ -0,0 +1,95 @@ +**Example 1: To create a Capacity Reservation** + +The following ``create-capacity-reservation`` example creates a capacity reservation in the ``eu-west-1a`` Availability Zone, into which you can launch three ``t2.medium`` instances running a Linux/Unix operating system. By default, the capacity reservation is created with open instance matching criteria and no support for ephemeral storage, and it remains active until you manually cancel it. :: + + aws ec2 create-capacity-reservation \ + --availability-zone eu-west-1a \ + --instance-type t2.medium \ + --instance-platform Linux/UNIX \ + --instance-count 3 + +Output:: + + { + "CapacityReservation": { + "CapacityReservationId": "cr-1234abcd56EXAMPLE ", + "EndDateType": "unlimited", + "AvailabilityZone": "eu-west-1a", + "InstanceMatchCriteria": "open", + "EphemeralStorage": false, + "CreateDate": "2019-08-16T09:27:35.000Z", + "AvailableInstanceCount": 3, + "InstancePlatform": "Linux/UNIX", + "TotalInstanceCount": 3, + "State": "active", + "Tenancy": "default", + "EbsOptimized": false, + "InstanceType": "t2.medium" + } + } + +**Example 2: To create a Capacity Reservation that automatically ends at a specified date/time** + +The following ``create-capacity-reservation`` example creates a capacity reservation in the ``eu-west-1a`` Availability Zone, into which you can launch three ``m5.large`` instances running a Linux/Unix operating system. This capacity reservation automatically ends on 08/31/2019 at 23:59:59. :: + + aws ec2 create-capacity-reservation \ + --availability-zone eu-west-1a \ + --instance-type m5.large \ + --instance-platform Linux/UNIX \ + --instance-count 3 \ + --end-date-type limited \ + --end-date 2019-08-31T23:59:59Z + +Output:: + + { + "CapacityReservation": { + "CapacityReservationId": "cr-1234abcd56EXAMPLE ", + "EndDateType": "limited", + "AvailabilityZone": "eu-west-1a", + "EndDate": "2019-08-31T23:59:59.000Z", + "InstanceMatchCriteria": "open", + "EphemeralStorage": false, + "CreateDate": "2019-08-16T10:15:53.000Z", + "AvailableInstanceCount": 3, + "InstancePlatform": "Linux/UNIX", + "TotalInstanceCount": 3, + "State": "active", + "Tenancy": "default", + "EbsOptimized": false, + "InstanceType": "m5.large" + } + } + +**Example 3: To create a Capacity Reservation that accepts only targeted instance launches** + +The following ``create-capacity-reservation`` example creates a capacity reservation that accepts only targeted instance launches. :: + + aws ec2 create-capacity-reservation \ + --availability-zone eu-west-1a \ + --instance-type m5.large \ + --instance-platform Linux/UNIX \ + --instance-count 3 \ + --instance-match-criteria targeted + +Output:: + + { + "CapacityReservation": { + "CapacityReservationId": "cr-1234abcd56EXAMPLE ", + "EndDateType": "unlimited", + "AvailabilityZone": "eu-west-1a", + "InstanceMatchCriteria": "targeted", + "EphemeralStorage": false, + "CreateDate": "2019-08-16T10:21:57.000Z", + "AvailableInstanceCount": 3, + "InstancePlatform": "Linux/UNIX", + "TotalInstanceCount": 3, + "State": "active", + "Tenancy": "default", + "EbsOptimized": false, + "InstanceType": "m5.large" + } + } + +For more information, see `Create a Capacity Reservation `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-carrier-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-carrier-gateway.rst new file mode 100644 index 000000000..7f6bde7df --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-carrier-gateway.rst @@ -0,0 +1,19 @@ +**To create a carrier gateway** + +The following ``create-carrier-gateway`` example creates a carrier gateway for the specified VPC. :: + + aws ec2 create-carrier-gateway \ + --vpc-id vpc-0c529aEXAMPLE1111 + +Output:: + + { + "CarrierGateway": { + "CarrierGatewayId": "cagw-0465cdEXAMPLE1111", + "VpcId": "vpc-0c529aEXAMPLE1111", + "State": "pending", + "OwnerId": "123456789012" + } + } + +For more information, see `Carrier gateways `__ in the *AWS Wavelength User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-client-vpn-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-client-vpn-endpoint.rst new file mode 100644 index 000000000..32aac786a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-client-vpn-endpoint.rst @@ -0,0 +1,21 @@ +**To create a Client VPN endpoint** + +The following ``create-client-vpn-endpoint`` example creates a Client VPN endpoint that uses mutual authentication and specifies a value for the client CIDR block. :: + + aws ec2 create-client-vpn-endpoint \ + --client-cidr-block "172.31.0.0/16" \ + --server-certificate-arn arn:aws:acm:ap-south-1:123456789012:certificate/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE \ + --authentication-options Type=certificate-authentication,MutualAuthentication={ClientRootCertificateChainArn=arn:aws:acm:ap-south-1:123456789012:certificate/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE} \ + --connection-log-options Enabled=false + +Output:: + + { + "ClientVpnEndpointId": "cvpn-endpoint-123456789123abcde", + "Status": { + "Code": "pending-associate" + }, + "DnsName": "cvpn-endpoint-123456789123abcde.prod.clientvpn.ap-south-1.amazonaws.com" + } + +For more information, see `Client VPN Endpoints `__ in the *AWS Client VPN Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-client-vpn-route.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-client-vpn-route.rst new file mode 100644 index 000000000..eab0628a9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-client-vpn-route.rst @@ -0,0 +1,18 @@ +**To create a route for a Client VPN endpoint** + +The following ``create-client-vpn-route`` example adds a route to the internet (``0.0.0.0/0``) for the specified subnet of the Client VPN endpoint. :: + + aws ec2 create-client-vpn-route \ + --client-vpn-endpoint-id cvpn-endpoint-123456789123abcde \ + --destination-cidr-block 0.0.0.0/0 \ + --target-vpc-subnet-id subnet-0123456789abcabca + +Output:: + + { + "Status": { + "Code": "creating" + } + } + +For more information, see `Routes `__ in the *AWS Client VPN Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-coip-cidr.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-coip-cidr.rst new file mode 100644 index 000000000..80d6fba0f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-coip-cidr.rst @@ -0,0 +1,19 @@ +**To create a range of customer-owned IP (CoIP) addresses** + +The following ``create-coip-cidr`` example creates the specified range of CoIP addresses in the specified CoIP pool. :: + + aws ec2 create-coip-cidr \ + --cidr 15.0.0.0/24 \ + --coip-pool-id ipv4pool-coip-1234567890abcdefg + +Output:: + + { + "CoipCidr": { + "Cidr": "15.0.0.0/24", + "CoipPoolId": "ipv4pool-coip-1234567890abcdefg", + "LocalGatewayRouteTableId": "lgw-rtb-abcdefg1234567890" + } + } + +For more information, see `Customer-owned IP addresses `__ in the *AWS Outposts User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-coip-pool.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-coip-pool.rst new file mode 100644 index 000000000..6647a91fc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-coip-pool.rst @@ -0,0 +1,18 @@ +**To create a pool of customer-owned IP (CoIP) addresses** + +The following ``create-coip-pool`` example creates a CoIP pool for CoIP addresses in the specified local gateway route table. :: + + aws ec2 create-coip-pool \ + --local-gateway-route-table-id lgw-rtb-abcdefg1234567890 + +Output:: + + { + "CoipPool": { + "PoolId": "ipv4pool-coip-1234567890abcdefg", + "LocalGatewayRouteTableId": "lgw-rtb-abcdefg1234567890", + "PoolArn": "arn:aws:ec2:us-west-2:123456789012:coip-pool/ipv4pool-coip-1234567890abcdefg" + } + } + +For more information, see `Customer-owned IP addresses `__ in the *AWS Outposts User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-customer-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-customer-gateway.rst new file mode 100644 index 000000000..07f68c9b2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-customer-gateway.rst @@ -0,0 +1,19 @@ +**To create a customer gateway** + +This example creates a customer gateway with the specified IP address for its outside interface. + +Command:: + + aws ec2 create-customer-gateway --type ipsec.1 --public-ip 12.1.2.3 --bgp-asn 65534 + +Output:: + + { + "CustomerGateway": { + "CustomerGatewayId": "cgw-0e11f167", + "IpAddress": "12.1.2.3", + "State": "available", + "Type": "ipsec.1", + "BgpAsn": "65534" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-default-subnet.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-default-subnet.rst new file mode 100644 index 000000000..0865d8227 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-default-subnet.rst @@ -0,0 +1,23 @@ +**To create a default subnet** + +This example creates a default subnet in Availability Zone ``us-east-2a``. + +Command:: + + aws ec2 create-default-subnet --availability-zone us-east-2a + + { + "Subnet": { + "AvailabilityZone": "us-east-2a", + "Tags": [], + "AvailableIpAddressCount": 4091, + "DefaultForAz": true, + "Ipv6CidrBlockAssociationSet": [], + "VpcId": "vpc-1a2b3c4d", + "State": "available", + "MapPublicIpOnLaunch": true, + "SubnetId": "subnet-1122aabb", + "CidrBlock": "172.31.32.0/20", + "AssignIpv6AddressOnCreation": false + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-default-vpc.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-default-vpc.rst new file mode 100644 index 000000000..02d1e9465 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-default-vpc.rst @@ -0,0 +1,22 @@ +**To create a default VPC** + +This example creates a default VPC. + +Command:: + + aws ec2 create-default-vpc + +Output:: + + { + "Vpc": { + "VpcId": "vpc-8eaae5ea", + "InstanceTenancy": "default", + "Tags": [], + "Ipv6CidrBlockAssociationSet": [], + "State": "pending", + "DhcpOptionsId": "dopt-af0c32c6", + "CidrBlock": "172.31.0.0/16", + "IsDefault": true + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-dhcp-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-dhcp-options.rst new file mode 100644 index 000000000..077ea9aed --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-dhcp-options.rst @@ -0,0 +1,46 @@ +**To create a set of DHCP options** + +The following ``create-dhcp-options`` example creates a set of DHCP options that specifies the domain name, the domain name servers, and the NetBIOS node type. :: + + aws ec2 create-dhcp-options \ + --dhcp-configuration \ + "Key=domain-name-servers,Values=10.2.5.1,10.2.5.2" \ + "Key=domain-name,Values=example.com" \ + "Key=netbios-node-type,Values=2" + +Output:: + + { + "DhcpOptions": { + "DhcpConfigurations": [ + { + "Key": "domain-name", + "Values": [ + { + "Value": "example.com" + } + ] + }, + { + "Key": "domain-name-servers", + "Values": [ + { + "Value": "10.2.5.1" + }, + { + "Value": "10.2.5.2" + } + ] + }, + { + "Key": "netbios-node-type", + "Values": [ + { + "Value": "2" + } + ] + } + ], + "DhcpOptionsId": "dopt-06d52773eff4c55f3" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-egress-only-internet-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-egress-only-internet-gateway.rst new file mode 100644 index 000000000..1964a5cd7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-egress-only-internet-gateway.rst @@ -0,0 +1,21 @@ +**To create an egress-only Internet gateway** + +This example creates an egress-only Internet gateway for the specified VPC. + +Command:: + + aws ec2 create-egress-only-internet-gateway --vpc-id vpc-0c62a468 + +Output:: + + { + "EgressOnlyInternetGateway": { + "EgressOnlyInternetGatewayId": "eigw-015e0e244e24dfe8a", + "Attachments": [ + { + "State": "attached", + "VpcId": "vpc-0c62a468" + } + ] + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-fleet.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-fleet.rst new file mode 100644 index 000000000..e89a134cf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-fleet.rst @@ -0,0 +1,144 @@ +**Example 1: To create an EC2 Fleet that launches Spot Instances as the default purchasing model** + +The following ``create-fleet`` example creates an EC2 Fleet using the minimum parameters required to launch a fleet: a launch template, target capacity, and default purchasing model. The launch template is identified by its launch template ID and version number. The target capacity for the fleet is 2 instances, and the default purchasing model is ``spot``, which results in the fleet launching 2 Spot Instances. + +When you create an EC2 Fleet, use a JSON file to specify information about the instances to launch. :: + + aws ec2 create-fleet \ + --cli-input-json file://file_name.json + +Contents of file_name.json:: + + { + "LaunchTemplateConfigs": [ + { + "LaunchTemplateSpecification": { + "LaunchTemplateId": "lt-0e8c754449b27161c", + "Version": "1" + } + } + ], + "TargetCapacitySpecification": { + "TotalTargetCapacity": 2, + "DefaultTargetCapacityType": "spot" + } + } + +Output:: + + { + "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE" + } + +**Example 2: To create an EC2 Fleet that launches On-Demand Instances as the default purchasing model** + +The following ``create-fleet`` example creates an EC2 Fleet using the minimum parameters required to launch a fleet: a launch template, target capacity, and default purchasing model. The launch template is identified by its launch template ID and version number. The target capacity for the fleet is 2 instances, and the default purchasing model is ``on-demand``, which results in the fleet launching 2 On-Demand Instances. + +When you create an EC2 Fleet, use a JSON file to specify information about the instances to launch. :: + + aws ec2 create-fleet \ + --cli-input-json file://file_name.json + +Contents of file_name.json:: + + { + "LaunchTemplateConfigs": [ + { + "LaunchTemplateSpecification": { + "LaunchTemplateId": "lt-0e8c754449b27161c", + "Version": "1" + } + } + ], + "TargetCapacitySpecification": { + "TotalTargetCapacity": 2, + "DefaultTargetCapacityType": "on-demand" + } + } + +Output:: + + { + "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE" + } + + +**Example 3: To create an EC2 Fleet that launches On-Demand Instances as the primary capacity** + +The following ``create-fleet`` example creates an EC2 Fleet that specifies the total target capacity of 2 instances for the fleet, and a target capacity of 1 On-Demand Instance. The default purchasing model is ``spot``. The fleet launches 1 On-Demand Instance as specified, but needs to launch one more instance to fulfil the total target capacity. The purchasing model for the difference is calculated as ``TotalTargetCapacity`` - ``OnDemandTargetCapacity`` = ``DefaultTargetCapacityType``, which results in the fleet launching 1 Spot Instance. + +When you create an EC2 Fleet, use a JSON file to specify information about the instances to launch. :: + + aws ec2 create-fleet \ + --cli-input-json file://file_name.json + +Contents of file_name.json:: + + { + "LaunchTemplateConfigs": [ + { + "LaunchTemplateSpecification": { + "LaunchTemplateId": "lt-0e8c754449b27161c", + "Version": "1" + } + } + ], + "TargetCapacitySpecification": { + "TotalTargetCapacity": 2, + "OnDemandTargetCapacity":1, + "DefaultTargetCapacityType": "spot" + } + } + +Output:: + + { + "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE" + } + +**Example 4: To create an EC2 Fleet that launches Spot Instances using the lowest-price allocation strategy** + +If the allocation strategy for Spot Instances is not specified, the default allocation strategy, which is ``lowest-price``, is used. The following ``create-fleet`` example creates an EC2 Fleet using the ``lowest-price`` allocation strategy. The three launch specifications, which override the launch template, have different instance types but the same weighted capacity and subnet. The total target capacity is 2 instances and the default purchasing model is ``spot``. The EC2 Fleet launches 2 Spot Instances using the instance type of the launch specification with the lowest price. + +When you create an EC2 Fleet, use a JSON file to specify information about the instances to launch. :: + + aws ec2 create-fleet \ + --cli-input-json file://file_name.jsonContents of file_name.json:: + + { + "LaunchTemplateConfigs": [ + { + "LaunchTemplateSpecification": { + "LaunchTemplateId": "lt-0e8c754449b27161c", + "Version": "1" + }, + "Overrides": [ + { + "InstanceType": "c4.large", + "WeightedCapacity": 1, + "SubnetId": "subnet-a4f6c5d3" + }, + { + "InstanceType": "c3.large", + "WeightedCapacity": 1, + "SubnetId": "subnet-a4f6c5d3" + }, + { + "InstanceType": "c5.large", + "WeightedCapacity": 1, + "SubnetId": "subnet-a4f6c5d3" + } + ] + } + ], + "TargetCapacitySpecification": { + "TotalTargetCapacity": 2, + "DefaultTargetCapacityType": "spot" + } + } + +Output:: + + { + "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-flow-logs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-flow-logs.rst new file mode 100644 index 000000000..4f4a315ec --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-flow-logs.rst @@ -0,0 +1,50 @@ +**Example 1: To create a flow log** + +The following ``create-flow-logs`` example creates a flow log that captures all rejected traffic for the specified network interface. The flow logs are delivered to a log group in CloudWatch Logs using the permissions in the specified IAM role. :: + + aws ec2 create-flow-logs \ + --resource-type NetworkInterface \ + --resource-ids eni-11223344556677889 \ + --traffic-type REJECT \ + --log-group-name my-flow-logs \ + --deliver-logs-permission-arn arn:aws:iam::123456789101:role/publishFlowLogs + +Output:: + + { + "ClientToken": "so0eNA2uSHUNlHI0S2cJ305GuIX1CezaRdGtexample", + "FlowLogIds": [ + "fl-12345678901234567" + ], + "Unsuccessful": [] + } + +For more information, see `VPC Flow Logs `__ in the *Amazon VPC User Guide*. + +**Example 2: To create a flow log with a custom format** + +The following ``create-flow-logs`` example creates a flow log that captures all traffic for the specified VPC and delivers the flow logs to an Amazon S3 bucket. The ``--log-format`` parameter specifies a custom format for the flow log records. To run this command on Windows, change the single quotes (') to double quotes ("). :: + + aws ec2 create-flow-logs \ + --resource-type VPC \ + --resource-ids vpc-00112233344556677 \ + --traffic-type ALL \ + --log-destination-type s3 \ + --log-destination arn:aws:s3:::flow-log-bucket/my-custom-flow-logs/ \ + --log-format '${version} ${vpc-id} ${subnet-id} ${instance-id} ${srcaddr} ${dstaddr} ${srcport} ${dstport} ${protocol} ${tcp-flags} ${type} ${pkt-srcaddr} ${pkt-dstaddr}' + +For more information, see `VPC Flow Logs `__ in the *Amazon VPC User Guide*. + +**Example 3: To create a flow log with a one-minute maximum aggregation interval** + +The following ``create-flow-logs`` example creates a flow log that captures all traffic for the specified VPC and delivers the flow logs to an Amazon S3 bucket. The ``--max-aggregation-interval`` parameter specifies a maximum aggregation interval of 60 seconds (1 minute). :: + + aws ec2 create-flow-logs \ + --resource-type VPC \ + --resource-ids vpc-00112233344556677 \ + --traffic-type ALL \ + --log-destination-type s3 \ + --log-destination arn:aws:s3:::flow-log-bucket/my-custom-flow-logs/ \ + --max-aggregation-interval 60 + +For more information, see `VPC Flow Logs `__ in the *Amazon VPC User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-fpga-image.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-fpga-image.rst new file mode 100644 index 000000000..826b05b67 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-fpga-image.rst @@ -0,0 +1,14 @@ +**To create an Amazon FPGA image** + +This example creates an AFI from the specified tarball in the specified bucket. + +Command:: + + aws ec2 create-fpga-image --name my-afi --description test-afi --input-storage-location Bucket=my-fpga-bucket,Key=dcp/17_12_22-103226.Developer_CL.tar --logs-storage-location Bucket=my-fpga-bucket,Key=logs + +Output:: + + { + "FpgaImageId": "afi-0d123e123bfc85abc", + "FpgaImageGlobalId": "agfi-123cb27b5e84a0abc" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-image.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-image.rst new file mode 100644 index 000000000..d01e82a4b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-image.rst @@ -0,0 +1,52 @@ +**Example 1: To create an AMI from an Amazon EBS-backed instance** + +The following ``create-image`` example creates an AMI from the specified instance. :: + + aws ec2 create-image \ + --instance-id i-1234567890abcdef0 \ + --name "My server" \ + --description "An AMI for my server" + +Output:: + + { + "ImageId": "ami-abcdef01234567890" + } + +For more information about specifying a block device mapping for your AMI, see `Specifying a block device mapping for an AMI `__ in the *Amazon EC2 User Guide*. + +**Example 2: To create an AMI from an Amazon EBS-backed instance without reboot** + +The following ``create-image`` example creates an AMI and sets the --no-reboot parameter, so that the instance is not rebooted before the image is created. :: + + aws ec2 create-image \ + --instance-id i-1234567890abcdef0 \ + --name "My server" \ + --no-reboot + +Output:: + + { + "ImageId": "ami-abcdef01234567890" + } + +For more information about specifying a block device mapping for your AMI, see `Specifying a block device mapping for an AMI `__ in the *Amazon EC2 User Guide*. + + +**Example 3: To tag an AMI and snapshots on creation** + +The following ``create-image`` example creates an AMI, and tags the AMI and the snapshots with the same tag ``cost-center=cc123`` :: + + aws ec2 create-image \ + --instance-id i-1234567890abcdef0 \ + --name "My server" \ + --tag-specifications "ResourceType=image,Tags=[{Key=cost-center,Value=cc123}]" "ResourceType=snapshot,Tags=[{Key=cost-center,Value=cc123}]" + + +Output:: + + { + "ImageId": "ami-abcdef01234567890" + } + +For more information about tagging your resources on creation, see `Add tags on resource creation `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-instance-connect-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-instance-connect-endpoint.rst new file mode 100644 index 000000000..7fe9807d5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-instance-connect-endpoint.rst @@ -0,0 +1,33 @@ +**To create an EC2 Instance Connect Endpoint** + +The following ``create-instance-connect-endpoint`` example creates an EC2 Instance Connect Endpoint in the specified subnet. :: + + aws ec2 create-instance-connect-endpoint \ + --region us-east-1 \ + --subnet-id subnet-0123456789example + +Output:: + + { + "VpcId": "vpc-0123abcd", + "InstanceConnectEndpointArn": "arn:aws:ec2:us-east-1:111111111111:instance-connect-endpoint/eice-0123456789example", + "AvailabilityZone": "us-east-1a", + "NetworkInterfaceIds": [ + "eni-0123abcd" + ], + "PreserveClientIp": true, + "Tags": [], + "FipsDnsName": "eice-0123456789example.0123abcd.fips.ec2-instance-connect-endpoint.us-east-1.amazonaws.com", + "StateMessage": "", + "State": "create-complete", + "DnsName": "eice-0123456789example.0123abcd.ec2-instance-connect-endpoint.us-east-1.amazonaws.com", + "SubnetId": "subnet-0123abcd", + "OwnerId": "111111111111", + "SecurityGroupIds": [ + "sg-0123abcd" + ], + "InstanceConnectEndpointId": "eice-0123456789example", + "CreatedAt": "2023-04-07T15:43:53.000Z" + } + +For more information, see `Create an EC2 Instance Connect Endpoint `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-instance-event-window.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-instance-event-window.rst new file mode 100644 index 000000000..31f7915ef --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-instance-event-window.rst @@ -0,0 +1,64 @@ +**Example 1: To create an event window with a time range** + +The following ``create-instance-event-window`` example creates an event window with a time range. You can't also specify the ``cron-expression`` parameter. :: + + aws ec2 create-instance-event-window \ + --region us-east-1 \ + --time-range StartWeekDay=monday,StartHour=2,EndWeekDay=wednesday,EndHour=8 \ + --tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1}]" \ + --name myEventWindowName + +Output:: + + { + "InstanceEventWindow": { + "InstanceEventWindowId": "iew-0abcdef1234567890", + "TimeRanges": [ + { + "StartWeekDay": "monday", + "StartHour": 2, + "EndWeekDay": "wednesday", + "EndHour": 8 + } + ], + "Name": "myEventWindowName", + "State": "creating", + "Tags": [ + { + "Key": "K1", + "Value": "V1" + } + ] + } + } + +For event window constraints, see `Considerations `__ in the Scheduled Events section of the *Amazon EC2 User Guide*. + +**Example 2: To create an event window with a cron expression** + +The following ``create-instance-event-window`` example creates an event window with a cron expression. You can't also specify the ``time-range`` parameter. :: + + aws ec2 create-instance-event-window \ + --region us-east-1 \ + --cron-expression "* 21-23 * * 2,3" \ + --tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1}]" \ + --name myEventWindowName + +Output:: + + { + "InstanceEventWindow": { + "InstanceEventWindowId": "iew-0abcdef1234567890", + "Name": "myEventWindowName", + "CronExpression": "* 21-23 * * 2,3", + "State": "creating", + "Tags": [ + { + "Key": "K1", + "Value": "V1" + } + ] + } + } + +For event window constraints, see `Considerations `__ in the Scheduled Events section of the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-instance-export-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-instance-export-task.rst new file mode 100644 index 000000000..13d442f77 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-instance-export-task.rst @@ -0,0 +1,28 @@ +**To export an instance** + +This example command creates a task to export the instance i-1234567890abcdef0 to the Amazon S3 bucket +myexportbucket. + +Command:: + + aws ec2 create-instance-export-task --description "RHEL5 instance" --instance-id i-1234567890abcdef0 --target-environment vmware --export-to-s3-task DiskImageFormat=vmdk,ContainerFormat=ova,S3Bucket=myexportbucket,S3Prefix=RHEL5 + +Output:: + + { + "ExportTask": { + "State": "active", + "InstanceExportDetails": { + "InstanceId": "i-1234567890abcdef0", + "TargetEnvironment": "vmware" + }, + "ExportToS3Task": { + "S3Bucket": "myexportbucket", + "S3Key": "RHEL5export-i-fh8sjjsq.ova", + "DiskImageFormat": "vmdk", + "ContainerFormat": "ova" + }, + "Description": "RHEL5 instance", + "ExportTaskId": "export-i-fh8sjjsq" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-internet-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-internet-gateway.rst new file mode 100644 index 000000000..0ece5083c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-internet-gateway.rst @@ -0,0 +1,24 @@ +**To create an internet gateway** + +The following ``create-internet-gateway`` example creates an internet gateway with the tag ``Name=my-igw``. :: + + aws ec2 create-internet-gateway \ + --tag-specifications ResourceType=internet-gateway,Tags=[{Key=Name,Value=my-igw}] + +Output:: + + { + "InternetGateway": { + "Attachments": [], + "InternetGatewayId": "igw-0d0fb496b3994d755", + "OwnerId": "123456789012", + "Tags": [ + { + "Key": "Name", + "Value": "my-igw" + } + ] + } + } + +For more information, see `Internet gateways `__ in the *Amazon VPC User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-ipam-pool.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-ipam-pool.rst new file mode 100644 index 000000000..75396b8e9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-ipam-pool.rst @@ -0,0 +1,63 @@ +**To create an IPAM pool** + +The following ``create-ipam-pool`` example creates an IPAM pool. + +(Linux):: + + aws ec2 create-ipam-pool \ + --ipam-scope-id ipam-scope-02fc38cd4c48e7d38 \ + --address-family ipv4 \ + --auto-import \ + --allocation-min-netmask-length 16 \ + --allocation-max-netmask-length 26 \ + --allocation-default-netmask-length 24 \ + --allocation-resource-tags "Key=Environment,Value=Preprod" \ + --tag-specifications 'ResourceType=ipam-pool,Tags=[{Key=Name,Value="Preprod pool"}]' + +(Windows):: + + aws ec2 create-ipam-pool ^ + --ipam-scope-id ipam-scope-02fc38cd4c48e7d38 ^ + --address-family ipv4 ^ + --auto-import ^ + --allocation-min-netmask-length 16 ^ + --allocation-max-netmask-length 26 ^ + --allocation-default-netmask-length 24 ^ + --allocation-resource-tags "Key=Environment,Value=Preprod" ^ + --tag-specifications ResourceType=ipam-pool,Tags=[{Key=Name,Value="Preprod pool"}] + +Output:: + + { + "IpamPool": { + "OwnerId": "123456789012", + "IpamPoolId": "ipam-pool-0533048da7d823723", + "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0533048da7d823723", + "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-02fc38cd4c48e7d38", + "IpamScopeType": "private", + "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-08440e7a3acde3908", + "IpamRegion": "us-east-1", + "Locale": "None", + "PoolDepth": 1, + "State": "create-in-progress", + "AutoImport": true, + "AddressFamily": "ipv4", + "AllocationMinNetmaskLength": 16, + "AllocationMaxNetmaskLength": 26, + "AllocationDefaultNetmaskLength": 24, + "AllocationResourceTags": [ + { + "Key": "Environment", + "Value": "Preprod" + } + ], + "Tags": [ + { + "Key": "Name", + "Value": "Preprod pool" + } + ] + } + } + +For more information, see `Plan for IP address provisioning `__ in the *Amazon VPC IPAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-ipam-resource-discovery.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-ipam-resource-discovery.rst new file mode 100644 index 000000000..2c9804354 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-ipam-resource-discovery.rst @@ -0,0 +1,46 @@ +**To create a resource discovery** + +In this example, you're a delegated IPAM admin who wants to create and share a resource discovery with the IPAM admin in another AWS Organization so that the admin in the other organization can manage and monitor the IP addresses of resources in your organization. + +Important + +* This example includes both the ``--region`` and ``--operating-regions`` options because, while they are optional, they must be configured in a particular way to successfully integrate a resource discovery with an IPAM. + * ``--operating-regions`` must match the Regions where you have resources that you want IPAM to discover. If there are Regions where you do not want IPAM to manage the IP addresses (for example for compliance reasons), do not include them. + * ``--region`` must match the home Region of the IPAM you want to associate it with. You must create the resource discovery in the same Region that the IPAM was created in. For example, if the IPAM you are associating with was created in us-east-1, include ``--region us-east-1`` in the request. +* Both the ``--region`` and ``--operating-regions`` options default to the Region you're running the command in if you don't specify them. + +In this example, the operating Regions of the IPAM we're integrating with include ``us-west-1``, ``us-west-2``, and ``ap-south-1``. When we create the resource discovery, we want IPAM to discover the resource IP addresses in ``us-west-1`` and ``us-west-2`` but not ``ap-south-1``. So we are including only ``--operating-regions RegionName='us-west-1' RegionName='us-west-2'`` in the request. + +The following ``create-ipam-resource-discovery`` example creates an IPAM resource discovery. :: + + aws ec2 create-ipam-resource-discovery \ + --description 'Example-resource-discovery' \ + --tag-specifications 'ResourceType=ipam-resource-discovery,Tags=[{Key=cost-center,Value=cc123}]' \ + --operating-regions RegionName='us-west-1' RegionName='us-west-2' \ + --region us-east-1 + +Output:: + + { + "IpamResourceDiscovery":{ + "OwnerId": "149977607591", + "IpamResourceDiscoveryId": "ipam-res-disco-0257046d8aa78b8bc", + "IpamResourceDiscoveryArn": "arn:aws:ec2::149977607591:ipam-resource-discovery/ipam-res-disco-0257046d8aa78b8bc", + "IpamResourceDiscoveryRegion": "us-east-1", + "Description": "'Example-resource-discovery'", + "OperatingRegions":[ + {"RegionName": "us-west-1"}, + {"RegionName": "us-west-2"}, + {"RegionName": "us-east-1"} + ], + "IsDefault": false, + "State": "create-in-progress", + "Tags": [ + { + "Key": "cost-center", + "Value": "cc123" + } + ] + } + +Once you create a resource discovery, you may want to share it with another IPAM delegated admin, which you can do with `create-resource-share `__. For more information, see `Integrate IPAM with accounts outside of your organization `__ in the *Amazon VPC IPAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-ipam-scope.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-ipam-scope.rst new file mode 100644 index 000000000..dace88074 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-ipam-scope.rst @@ -0,0 +1,42 @@ +**To create an IPAM scope** + +The following ``create-ipam-scope`` example creates an IPAM scope. + +(Linux):: + + aws ec2 create-ipam-scope \ + --ipam-id ipam-08440e7a3acde3908 \ + --description "Example description" \ + --tag-specifications 'ResourceType=ipam-scope,Tags=[{Key=Name,Value="Example name value"}]' + +(Windows):: + + aws ec2 create-ipam-scope ^ + --ipam-id ipam-08440e7a3acde3908 ^ + --description "Example description" ^ + --tag-specifications ResourceType=ipam-scope,Tags=[{Key=Name,Value="Example name value"}] + +Output:: + + { + "IpamScope": { + "OwnerId": "123456789012", + "IpamScopeId": "ipam-scope-01c1ebab2b63bd7e4", + "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-01c1ebab2b63bd7e4", + "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-08440e7a3acde3908", + "IpamRegion": "us-east-1", + "IpamScopeType": "private", + "IsDefault": false, + "Description": "Example description", + "PoolCount": 0, + "State": "create-in-progress", + "Tags": [ + { + "Key": "Name", + "Value": "Example name value" + } + ] + } + } + +For more information, see `Create additional scopes `__ in the *Amazon VPC IPAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-ipam.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-ipam.rst new file mode 100644 index 000000000..10d468351 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-ipam.rst @@ -0,0 +1,51 @@ +**To create an IPAM** + +The following ``create-ipam`` example creates an IPAM. + +(Linux):: + + aws ec2 create-ipam \ + --description "Example description" \ + --operating-regions "RegionName=us-east-2" "RegionName=us-west-1" \ + --tag-specifications 'ResourceType=ipam,Tags=[{Key=Name,Value=ExampleIPAM}]' + +(Windows):: + + aws ec2 create-ipam ^ + --description "Example description" ^ + --operating-regions "RegionName=us-east-2" "RegionName=us-west-1" ^ + --tag-specifications ResourceType=ipam,Tags=[{Key=Name,Value=ExampleIPAM}] + +Output:: + + { + "Ipam": { + "OwnerId": "123456789012", + "IpamId": "ipam-036486dfa6af58ee0", + "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-036486dfa6af58ee0", + "IpamRegion": "us-east-1", + "PublicDefaultScopeId": "ipam-scope-071b8042b0195c183", + "PrivateDefaultScopeId": "ipam-scope-0807405dece705a30", + "ScopeCount": 2, + "OperatingRegions": [ + { + "RegionName": "us-east-2" + }, + { + "RegionName": "us-west-1" + }, + { + "RegionName": "us-east-1" + } + ], + "State": "create-in-progress", + "Tags": [ + { + "Key": "Name", + "Value": "ExampleIPAM" + } + ] + } + } + +For more information, see `Create an IPAM `__ in the *Amazon VPC IPAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-key-pair.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-key-pair.rst new file mode 100644 index 000000000..1535321fb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-key-pair.rst @@ -0,0 +1,14 @@ +**To create a key pair** + +This example creates a key pair named ``MyKeyPair``. + +Command:: + + aws ec2 create-key-pair --key-name MyKeyPair + +The output is an ASCII version of the private key and key fingerprint. You need to save the key to a file. + +For more information, see `Using Key Pairs`_ in the *AWS Command Line Interface User Guide*. + +.. _`Using Key Pairs`: http://docs.aws.amazon.com/cli/latest/userguide/cli-ec2-keypairs.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-launch-template-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-launch-template-version.rst new file mode 100644 index 000000000..e6562412c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-launch-template-version.rst @@ -0,0 +1,37 @@ +**To create a launch template version** + +This example creates a new launch template version based on version 1 of the launch template and specifies a different AMI ID. + +Command:: + + aws ec2 create-launch-template-version --launch-template-id lt-0abcd290751193123 --version-description WebVersion2 --source-version 1 --launch-template-data '{"ImageId":"ami-c998b6b2"}' + +Output:: + + { + "LaunchTemplateVersion": { + "VersionDescription": "WebVersion2", + "LaunchTemplateId": "lt-0abcd290751193123", + "LaunchTemplateName": "WebServers", + "VersionNumber": 2, + "CreatedBy": "arn:aws:iam::123456789012:root", + "LaunchTemplateData": { + "ImageId": "ami-c998b6b2", + "InstanceType": "t2.micro", + "NetworkInterfaces": [ + { + "Ipv6Addresses": [ + { + "Ipv6Address": "2001:db8:1234:1a00::123" + } + ], + "DeviceIndex": 0, + "SubnetId": "subnet-7b16de0c", + "AssociatePublicIpAddress": true + } + ] + }, + "DefaultVersion": false, + "CreateTime": "2017-12-01T13:35:46.000Z" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-launch-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-launch-template.rst new file mode 100644 index 000000000..21e573fe3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-launch-template.rst @@ -0,0 +1,108 @@ +**Example 1: To create a launch template** + +The following ``create-launch-template`` example creates a launch template that specifies the subnet in which to launch the instance , assigns a public IP address and an IPv6 address to the instance, and creates a tag for the instance. :: + + aws ec2 create-launch-template \ + --launch-template-name TemplateForWebServer \ + --version-description WebVersion1 \ + --launch-template-data '{"NetworkInterfaces":[{"AssociatePublicIpAddress":true,"DeviceIndex":0,"Ipv6AddressCount":1,"SubnetId":"subnet-7b16de0c"}],"ImageId":"ami-8c1be5f6","InstanceType":"t2.small","TagSpecifications":[{"ResourceType":"instance","Tags":[{"Key":"purpose","Value":"webserver"}]}]}' + +Output:: + + { + "LaunchTemplate": { + "LatestVersionNumber": 1, + "LaunchTemplateId": "lt-01238c059e3466abc", + "LaunchTemplateName": "TemplateForWebServer", + "DefaultVersionNumber": 1, + "CreatedBy": "arn:aws:iam::123456789012:user/Bob", + "CreateTime": "2019-01-27T09:13:24.000Z" + } + } + +For more information, see `Launching an Instance from a Launch Template`_ in the *Amazon Elastic Compute Cloud User Guide*. +For information about quoting JSON-formatted parameters, see `Quoting Strings`_ in the *AWS Command Line Interface User Guide*. + +**Example 2: To create a launch template for Amazon EC2 Auto Scaling** + +The following ``create-launch-template`` example creates a launch template with multiple tags and a block device mapping to specify an additional EBS volume when an instance launches. Specify a value for ``Groups`` that corresponds to security groups for the VPC that your Auto Scaling group will launch instances into. Specify the VPC and subnets as properties of the Auto Scaling group. :: + + aws ec2 create-launch-template \ + --launch-template-name TemplateForAutoScaling \ + --version-description AutoScalingVersion1 \ + --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"AssociatePublicIpAddress":true,"Groups":["sg-7c227019,sg-903004f8"],"DeleteOnTermination":true}],"ImageId":"ami-b42209de","InstanceType":"m4.large","TagSpecifications":[{"ResourceType":"instance","Tags":[{"Key":"environment","Value":"production"},{"Key":"purpose","Value":"webserver"}]},{"ResourceType":"volume","Tags":[{"Key":"environment","Value":"production"},{"Key":"cost-center","Value":"cc123"}]}],"BlockDeviceMappings":[{"DeviceName":"/dev/sda1","Ebs":{"VolumeSize":100}}]}' --region us-east-1 + +Output:: + + { + "LaunchTemplate": { + "LatestVersionNumber": 1, + "LaunchTemplateId": "lt-0123c79c33a54e0abc", + "LaunchTemplateName": "TemplateForAutoScaling", + "DefaultVersionNumber": 1, + "CreatedBy": "arn:aws:iam::123456789012:user/Bob", + "CreateTime": "2019-04-30T18:16:06.000Z" + } + } + +For more information, see `Creating a Launch Template for an Auto Scaling Group`_ in the *Amazon EC2 Auto Scaling User Guide*. +For information about quoting JSON-formatted parameters, see `Quoting Strings`_ in the *AWS Command Line Interface User Guide*. + +**Example 3: To create a launch template that specifies encryption of EBS volumes** + +The following ``create-launch-template`` example creates a launch template that includes encrypted EBS volumes created from an unencrypted snapshot. It also tags the volumes during creation. If encryption by default is disabled, you must specify the ``"Encrypted"`` option as shown in the following example. If you use the ``"KmsKeyId"`` option to specify a customer managed CMK, you also must specify the ``"Encrypted"`` option even if encryption by default is enabled. :: + + aws ec2 create-launch-template \ + --launch-template-name TemplateForEncryption \ + --launch-template-data file://config.json + +Contents of ``config.json``:: + + { + "BlockDeviceMappings":[ + { + "DeviceName":"/dev/sda1", + "Ebs":{ + "VolumeType":"gp2", + "DeleteOnTermination":true, + "SnapshotId":"snap-066877671789bd71b", + "Encrypted":true, + "KmsKeyId":"arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef" + } + } + ], + "ImageId":"ami-00068cd7555f543d5", + "InstanceType":"c5.large", + "TagSpecifications":[ + { + "ResourceType":"volume", + "Tags":[ + { + "Key":"encrypted", + "Value":"yes" + } + ] + } + ] + } + +Output:: + + { + "LaunchTemplate": { + "LatestVersionNumber": 1, + "LaunchTemplateId": "lt-0d5bd51bcf8530abc", + "LaunchTemplateName": "TemplateForEncryption", + "DefaultVersionNumber": 1, + "CreatedBy": "arn:aws:iam::123456789012:user/Bob", + "CreateTime": "2020-01-07T19:08:36.000Z" + } + } + +For more information, see `Restoring an Amazon EBS Volume from a Snapshot`_ and `Encryption by Default`_ in the *Amazon Elastic Compute Cloud User Guide*. + +.. _`Launching an Instance from a Launch Template`: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html +.. _`Creating a Launch Template for an Auto Scaling Group`: https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html +.. _`Quoting Strings`: https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters.html#quoting-strings +.. _`Restoring an Amazon EBS Volume from a Snapshot`: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-restoring-volume.html +.. _`Encryption by Default`: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-local-gateway-route-table-virtual-interface-group-association.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-local-gateway-route-table-virtual-interface-group-association.rst new file mode 100644 index 000000000..32e9dd529 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-local-gateway-route-table-virtual-interface-group-association.rst @@ -0,0 +1,24 @@ +**To associate a local gateway route table with a virtual interfaces (VIFs) group** + +The following ``create-local-gateway-route-table-virtual-interface-group-association`` example creates an association between the specified local gateway route table and VIF group. :: + + aws ec2 create-local-gateway-route-table-virtual-interface-group-association \ + --local-gateway-route-table-id lgw-rtb-exampleidabcd1234 \ + --local-gateway-virtual-interface-group-id lgw-vif-grp-exampleid0123abcd + +Output:: + + { + "LocalGatewayRouteTableVirtualInterfaceGroupAssociation": { + "LocalGatewayRouteTableVirtualInterfaceGroupAssociationId": "lgw-vif-grp-assoc-exampleid12345678", + "LocalGatewayVirtualInterfaceGroupId": "lgw-vif-grp-exampleid0123abcd", + "LocalGatewayId": "lgw-exampleid11223344", + "LocalGatewayRouteTableId": "lgw-rtb-exampleidabcd1234", + "LocalGatewayRouteTableArn": "arn:aws:ec2:us-west-2:111122223333:local-gateway-route-table/lgw-rtb-exampleidabcd1234", + "OwnerId": "111122223333", + "State": "pending", + "Tags": [] + } + } + +For more information, see `VIF group associations `__ in the *AWS Outposts User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-local-gateway-route-table-vpc-association.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-local-gateway-route-table-vpc-association.rst new file mode 100755 index 000000000..b798c8ef4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-local-gateway-route-table-vpc-association.rst @@ -0,0 +1,19 @@ +**To associate a VPC with a route table** + +The following ``create-local-gateway-route-table-vpc-association`` example associates the specified VPC with the specified local gateway route table. :: + + aws ec2 create-local-gateway-route-table-vpc-association \ + --local-gateway-route-table-id lgw-rtb-059615ef7dEXAMPLE \ + --vpc-id vpc-07ef66ac71EXAMPLE + +Output:: + + { + "LocalGatewayRouteTableVpcAssociation": { + "LocalGatewayRouteTableVpcAssociationId": "lgw-vpc-assoc-0ee765bcc8EXAMPLE", + "LocalGatewayRouteTableId": "lgw-rtb-059615ef7dEXAMPLE", + "LocalGatewayId": "lgw-09b493aa7cEXAMPLE", + "VpcId": "vpc-07ef66ac71EXAMPLE", + "State": "associated" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-local-gateway-route-table.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-local-gateway-route-table.rst new file mode 100644 index 000000000..01af18352 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-local-gateway-route-table.rst @@ -0,0 +1,24 @@ +**To create a local gateway route table** + +The following ``create-local-gateway-route-table`` example creates a local gateway route table with the direct VPC routing mode. :: + + aws ec2 create-local-gateway-route-table \ + --local-gateway-id lgw-1a2b3c4d5e6f7g8h9 \ + --mode direct-vpc-routing + +Output:: + + { + "LocalGatewayRouteTable": { + "LocalGatewayRouteTableId": "lgw-rtb-abcdefg1234567890", + "LocalGatewayRouteTableArn": "arn:aws:ec2:us-west-2:111122223333:local-gateway-route-table/lgw-rtb-abcdefg1234567890", + "LocalGatewayId": "lgw-1a2b3c4d5e6f7g8h9", + "OutpostArn": "arn:aws:outposts:us-west-2:111122223333:outpost/op-021345abcdef67890", + "OwnerId": "111122223333", + "State": "pending", + "Tags": [], + "Mode": "direct-vpc-routing" + } + } + +For more information, see `Local gateway route tables `__ in the *AWS Outposts User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-local-gateway-route.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-local-gateway-route.rst new file mode 100755 index 000000000..c1bf13a87 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-local-gateway-route.rst @@ -0,0 +1,19 @@ +**To create a static route for a local gateway route table** + +The following ``create-local-gateway-route`` example creates the specified route in the specified local gateway route table. :: + + aws ec2 create-local-gateway-route \ + --destination-cidr-block 0.0.0.0/0 \ + --local-gateway-route-table-id lgw-rtb-059615ef7dEXAMPLE + +Output:: + + { + "Route": { + "DestinationCidrBlock": "0.0.0.0/0", + "LocalGatewayVirtualInterfaceGroupId": "lgw-vif-grp-07145b276bEXAMPLE", + "Type": "static", + "State": "deleted", + "LocalGatewayRouteTableId": "lgw-rtb-059615ef7dEXAMPLE" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-managed-prefix-list.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-managed-prefix-list.rst new file mode 100644 index 000000000..b1329fcad --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-managed-prefix-list.rst @@ -0,0 +1,27 @@ +**To create a prefix list** + +The following ``create-managed-prefix-list`` example creates an IPv4 prefix list with a maximum of 10 entries, and creates 2 entries in the prefix list. :: + + aws ec2 create-managed-prefix-list \ + --address-family IPv4 \ + --max-entries 10 \ + --entries Cidr=10.0.0.0/16,Description=vpc-a Cidr=10.2.0.0/16,Description=vpc-b \ + --prefix-list-name vpc-cidrs + +Output:: + + { + "PrefixList": { + "PrefixListId": "pl-0123456abcabcabc1", + "AddressFamily": "IPv4", + "State": "create-in-progress", + "PrefixListArn": "arn:aws:ec2:us-west-2:123456789012:prefix-list/pl-0123456abcabcabc1", + "PrefixListName": "vpc-cidrs", + "MaxEntries": 10, + "Version": 1, + "Tags": [], + "OwnerId": "123456789012" + } + } + +For more information, see `Managed prefix lists `__ in the *Amazon VPC User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-nat-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-nat-gateway.rst new file mode 100644 index 000000000..707c37db7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-nat-gateway.rst @@ -0,0 +1,53 @@ +**Example 1: To create a public NAT gateway** + +The following ``create-nat-gateway`` example creates a public NAT gateway in the specified subnet and associates the Elastic IP address with the specified allocation ID. When you create a public NAT gateway, you must associate an Elastic IP address. :: + + aws ec2 create-nat-gateway \ + --subnet-id subnet-0250c25a1fEXAMPLE \ + --allocation-id eipalloc-09ad461b0dEXAMPLE + +Output:: + + { + "NatGateway": { + "CreateTime": "2021-12-01T22:22:38.000Z", + "NatGatewayAddresses": [ + { + "AllocationId": "eipalloc-09ad461b0dEXAMPLE" + } + ], + "NatGatewayId": "nat-0c61bf8a12EXAMPLE", + "State": "pending", + "SubnetId": "subnet-0250c25a1fEXAMPLE", + "VpcId": "vpc-0a60eb65b4EXAMPLE", + "ConnectivityType": "public" + } + } + +For more information, see `NAT gateways `__ in the *Amazon VPC User Guide*. + +**Example 2: To create a private NAT gateway** + +The following ``create-nat-gateway`` example creates a private NAT gateway in the specified subnet. A private NAT gateway does not have an associated Elastic IP address. :: + + aws ec2 create-nat-gateway \ + --subnet-id subnet-0250c25a1fEXAMPLE \ + --connectivity-type private + +Output:: + + { + "NatGateway": { + "CreateTime": "2021-12-01T22:26:00.000Z", + "NatGatewayAddresses": [ + {} + ], + "NatGatewayId": "nat-011b568379EXAMPLE", + "State": "pending", + "SubnetId": "subnet-0250c25a1fEXAMPLE", + "VpcId": "vpc-0a60eb65b4EXAMPLE", + "ConnectivityType": "private" + } + } + +For more information, see `NAT gateways `__ in the *Amazon VPC User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-network-acl-entry.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-network-acl-entry.rst new file mode 100644 index 000000000..0e3a1cae6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-network-acl-entry.rst @@ -0,0 +1,14 @@ +**To create a network ACL entry** + +This example creates an entry for the specified network ACL. The rule allows ingress traffic from any IPv4 address (0.0.0.0/0) on UDP port 53 (DNS) into any associated subnet. If the command succeeds, no output is returned. + +Command:: + + aws ec2 create-network-acl-entry --network-acl-id acl-5fb85d36 --ingress --rule-number 100 --protocol udp --port-range From=53,To=53 --cidr-block 0.0.0.0/0 --rule-action allow + + +This example creates a rule for the specified network ACL that allows ingress traffic from any IPv6 address (::/0) on TCP port 80 (HTTP). + +Command:: + + aws ec2 create-network-acl-entry --network-acl-id acl-5fb85d36 --ingress --rule-number 120 --protocol tcp --port-range From=80,To=80 --ipv6-cidr-block ::/0 --rule-action allow \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-network-acl.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-network-acl.rst new file mode 100644 index 000000000..a95e16987 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-network-acl.rst @@ -0,0 +1,35 @@ +**To create a network ACL** + +This example creates a network ACL for the specified VPC. + +Command:: + + aws ec2 create-network-acl --vpc-id vpc-a01106c2 + +Output:: + + { + "NetworkAcl": { + "Associations": [], + "NetworkAclId": "acl-5fb85d36", + "VpcId": "vpc-a01106c2", + "Tags": [], + "Entries": [ + { + "CidrBlock": "0.0.0.0/0", + "RuleNumber": 32767, + "Protocol": "-1", + "Egress": true, + "RuleAction": "deny" + }, + { + "CidrBlock": "0.0.0.0/0", + "RuleNumber": 32767, + "Protocol": "-1", + "Egress": false, + "RuleAction": "deny" + } + ], + "IsDefault": false + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-network-insights-access-scope.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-network-insights-access-scope.rst new file mode 100644 index 000000000..fc6d35d5a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-network-insights-access-scope.rst @@ -0,0 +1,71 @@ +**To create a Network Access Scope** + +The following ``create-network-insights-access-scope`` example creates a Network Access Scope. :: + + aws ec2 create-network-insights-access-scope \ + --cli-input-json file://access-scope-file.json + +Contents of ``access-scope-file.json``:: + + { + "MatchPaths": [ + { + "Source": { + "ResourceStatement": { + "Resources": [ + "vpc-abcd12e3" + ] + } + } + } + ], + "ExcludePaths": [ + { + "Source": { + "ResourceStatement": { + "ResourceTypes": [ + "AWS::EC2::InternetGateway" + ] + } + } + } + ] + } + +Output:: + + { + "NetworkInsightsAccessScope": { + "NetworkInsightsAccessScopeId": "nis-123456789abc01234", + "NetworkInsightsAccessScopeArn": "arn:aws:ec2:us-east-1:123456789012:network-insights-access-scope/nis-123456789abc01234", + "CreatedDate": "2022-01-25T19:20:28.796000+00:00", + "UpdatedDate": "2022-01-25T19:20:28.797000+00:00" + }, + "NetworkInsightsAccessScopeContent": { + "NetworkInsightsAccessScopeId": "nis-123456789abc01234", + "MatchPaths": [ + { + "Source": { + "ResourceStatement": { + "Resources": [ + "vpc-abcd12e3" + ] + } + } + } + ], + "ExcludePaths": [ + { + "Source": { + "ResourceStatement": { + "ResourceTypes": [ + "AWS::EC2::InternetGateway" + ] + } + } + } + ] + } + } + +For more information, see `Getting started with Network Access Analyzer using the AWS CLI `__ in the *Network Access Analyzer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-network-insights-path.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-network-insights-path.rst new file mode 100644 index 000000000..84d22cf7b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-network-insights-path.rst @@ -0,0 +1,24 @@ +**To create a path** + +The following ``create-network-insights-path`` example creates a path. The source is the specified internet gateway and the destination is the specified EC2 instance. To determine whether the destination is reachable using the specified protocol and port, analyze the path using the ``start-network-insights-analysis`` command. :: + + aws ec2 create-network-insights-path \ + --source igw-0797cccdc9d73b0e5 \ + --destination i-0495d385ad28331c7 \ + --destination-port 22 \ + --protocol TCP + +Output:: + + { + "NetworkInsightsPaths": { + "NetworkInsightsPathId": "nip-0b26f224f1d131fa8", + "NetworkInsightsPathArn": "arn:aws:ec2:us-east-1:123456789012:network-insights-path/nip-0b26f224f1d131fa8", + "CreatedDate": "2021-01-20T22:43:46.933Z", + "Source": "igw-0797cccdc9d73b0e5", + "Destination": "i-0495d385ad28331c7", + "Protocol": "tcp" + } + } + +For more information, see `Getting started using the AWS CLI `__ in the *Reachability Analyzer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-network-interface-permission.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-network-interface-permission.rst new file mode 100644 index 000000000..4847cb887 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-network-interface-permission.rst @@ -0,0 +1,21 @@ +**To create a network interface permission** + +This example grants permission to account ``123456789012`` to attach network interface ``eni-1a2b3c4d`` to an instance. + +Command:: + + aws ec2 create-network-interface-permission --network-interface-id eni-1a2b3c4d --aws-account-id 123456789012 --permission INSTANCE-ATTACH + +Output:: + + { + "InterfacePermission": { + "PermissionState": { + "State": "GRANTED" + }, + "NetworkInterfacePermissionId": "eni-perm-06fd19020ede149ea", + "NetworkInterfaceId": "eni-1a2b3c4d", + "Permission": "INSTANCE-ATTACH", + "AwsAccountId": "123456789012" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-network-interface.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-network-interface.rst new file mode 100644 index 000000000..dfecc3979 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-network-interface.rst @@ -0,0 +1,194 @@ +**Example 1: To specify an IPv4 address for a network interface** + +The following ``create-network-interface`` example creates a network interface for the specified subnet with the specified primary IPv4 address. :: + + aws ec2 create-network-interface \ + --subnet-id subnet-00a24d0d67acf6333 \ + --description "my network interface" \ + --groups sg-09dfba7ed20cda78b \ + --private-ip-address 10.0.8.17 + +Output:: + + { + "NetworkInterface": { + "AvailabilityZone": "us-west-2a", + "Description": "my network interface", + "Groups": [ + { + "GroupName": "my-security-group", + "GroupId": "sg-09dfba7ed20cda78b" + } + ], + "InterfaceType": "interface", + "Ipv6Addresses": [], + "MacAddress": "06:6a:0f:9a:49:37", + "NetworkInterfaceId": "eni-0492b355f0cf3b3f8", + "OwnerId": "123456789012", + "PrivateDnsName": "ip-10-0-8-18.us-west-2.compute.internal", + "PrivateIpAddress": "10.0.8.17", + "PrivateIpAddresses": [ + { + "Primary": true, + "PrivateDnsName": "ip-10-0-8-17.us-west-2.compute.internal", + "PrivateIpAddress": "10.0.8.17" + } + ], + "RequesterId": "AIDA4Z3Y7GSXTMEXAMPLE", + "RequesterManaged": false, + "SourceDestCheck": true, + "Status": "pending", + "SubnetId": "subnet-00a24d0d67acf6333", + "TagSet": [], + "VpcId": "vpc-02723a0feeeb9d57b" + } + } + +**Example 2: To create a network interface with an IPv4 address and an IPv6 address** + +The following ``create-network-interface`` example creates a network interface for the specified subnet with an IPv4 address and an IPv6 address that are selected by Amazon EC2. :: + + aws ec2 create-network-interface \ + --subnet-id subnet-00a24d0d67acf6333 \ + --description "my dual stack network interface" \ + --ipv6-address-count 1 \ + --groups sg-09dfba7ed20cda78b + +Output:: + + { + "NetworkInterface": { + "AvailabilityZone": "us-west-2a", + "Description": "my dual stack network interface", + "Groups": [ + { + "GroupName": "my-security-group", + "GroupId": "sg-09dfba7ed20cda78b" + } + ], + "InterfaceType": "interface", + "Ipv6Addresses": [ + { + "Ipv6Address": "2600:1f13:cfe:3650:a1dc:237c:393a:4ba7", + "IsPrimaryIpv6": false + } + ], + "MacAddress": "06:b8:68:d2:b2:2d", + "NetworkInterfaceId": "eni-05da417453f9a84bf", + "OwnerId": "123456789012", + "PrivateDnsName": "ip-10-0-8-18.us-west-2.compute.internal", + "PrivateIpAddress": "10.0.8.18", + "PrivateIpAddresses": [ + { + "Primary": true, + "PrivateDnsName": "ip-10-0-8-18.us-west-2.compute.internal", + "PrivateIpAddress": "10.0.8.18" + } + ], + "RequesterId": "AIDA4Z3Y7GSXTMEXAMPLE", + "RequesterManaged": false, + "SourceDestCheck": true, + "Status": "pending", + "SubnetId": "subnet-00a24d0d67acf6333", + "TagSet": [], + "VpcId": "vpc-02723a0feeeb9d57b", + "Ipv6Address": "2600:1f13:cfe:3650:a1dc:237c:393a:4ba7" + } + } + +**Example 3: To create a network interface with connection tracking configuration options** + +The following ``create-network-interface`` example creates a network interface and configures the idle connection tracking timeouts. :: + + aws ec2 create-network-interface \ + --subnet-id subnet-00a24d0d67acf6333 \ + --groups sg-02e57dbcfe0331c1b \ + --connection-tracking-specification TcpEstablishedTimeout=86400,UdpTimeout=60 + +Output:: + + { + "NetworkInterface": { + "AvailabilityZone": "us-west-2a", + "ConnectionTrackingConfiguration": { + "TcpEstablishedTimeout": 86400, + "UdpTimeout": 60 + }, + "Description": "", + "Groups": [ + { + "GroupName": "my-security-group", + "GroupId": "sg-02e57dbcfe0331c1b" + } + ], + "InterfaceType": "interface", + "Ipv6Addresses": [], + "MacAddress": "06:4c:53:de:6d:91", + "NetworkInterfaceId": "eni-0c133586e08903d0b", + "OwnerId": "123456789012", + "PrivateDnsName": "ip-10-0-8-94.us-west-2.compute.internal", + "PrivateIpAddress": "10.0.8.94", + "PrivateIpAddresses": [ + { + "Primary": true, + "PrivateDnsName": "ip-10-0-8-94.us-west-2.compute.internal", + "PrivateIpAddress": "10.0.8.94" + } + ], + "RequesterId": "AIDA4Z3Y7GSXTMEXAMPLE", + "RequesterManaged": false, + "SourceDestCheck": true, + "Status": "pending", + "SubnetId": "subnet-00a24d0d67acf6333", + "TagSet": [], + "VpcId": "vpc-02723a0feeeb9d57b" + } + } + +**Example 4: To create an Elastic Fabric Adapter** + +The following ``create-network-interface`` example creates an EFA. :: + + aws ec2 create-network-interface \ + --interface-type efa \ + --subnet-id subnet-00a24d0d67acf6333 \ + --description "my efa" \ + --groups sg-02e57dbcfe0331c1b + +Output:: + + { + "NetworkInterface": { + "AvailabilityZone": "us-west-2a", + "Description": "my efa", + "Groups": [ + { + "GroupName": "my-efa-sg", + "GroupId": "sg-02e57dbcfe0331c1b" + } + ], + "InterfaceType": "efa", + "Ipv6Addresses": [], + "MacAddress": "06:d7:a4:f7:4d:57", + "NetworkInterfaceId": "eni-034acc2885e862b65", + "OwnerId": "123456789012", + "PrivateDnsName": "ip-10-0-8-180.us-west-2.compute.internal", + "PrivateIpAddress": "10.0.8.180", + "PrivateIpAddresses": [ + { + "Primary": true, + "PrivateDnsName": "ip-10-0-8-180.us-west-2.compute.internal", + "PrivateIpAddress": "10.0.8.180" + } + ], + "RequesterId": "AIDA4Z3Y7GSXTMEXAMPLE", + "RequesterManaged": false, + "SourceDestCheck": true, + "Status": "pending", + "SubnetId": "subnet-00a24d0d67acf6333", + "TagSet": [], + "VpcId": "vpc-02723a0feeeb9d57b" + } + } + +For more information, see `Elastic network interfaces `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-placement-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-placement-group.rst new file mode 100644 index 000000000..db1632544 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-placement-group.rst @@ -0,0 +1,15 @@ +**To create a placement group** + +This example command creates a placement group with the specified name. + +Command:: + + aws ec2 create-placement-group --group-name my-cluster --strategy cluster + +**To create a partition placement group** + +This example command creates a partition placement group named ``HDFS-Group-A`` with five partitions. + +Command:: + + aws ec2 create-placement-group --group-name HDFS-Group-A --strategy partition --partition-count 5 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-replace-root-volume-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-replace-root-volume-task.rst new file mode 100644 index 000000000..978ae3393 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-replace-root-volume-task.rst @@ -0,0 +1,42 @@ +**Example 1: To restore a root volume to its initial launch state** + +The following ``create-replace-root-volume-task`` example restores the root volume of instance i-0123456789abcdefa to its initial launch state. :: + + aws ec2 create-replace-root-volume-task \ + --instance-id i-0123456789abcdefa + +Output:: + + { + "ReplaceRootVolumeTask": + { + "InstanceId": "i-0123456789abcdefa", + "ReplaceRootVolumeTaskId": "replacevol-0111122223333abcd", + "TaskState": "pending", + "StartTime": "2022-03-14T15:06:38Z", + "Tags": [] + } + } + +**Example 2: To restore a root volume to a specific snapshot** + +The following ``create-replace-root-volume-task`` example restores the root volume of instance i-0123456789abcdefa to snapshot snap-0abcdef1234567890. :: + + aws ec2 create-replace-root-volume-task \ + --instance-id i-0123456789abcdefa \ + --snapshot-id snap-0abcdef1234567890 + +Output:: + + { + "ReplaceRootVolumeTask": + { + "InstanceId": "i-0123456789abcdefa", + "ReplaceRootVolumeTaskId": "replacevol-0555566667777abcd", + "TaskState": "pending", + "StartTime": "2022-03-14T15:16:28Z", + "Tags": [] + } + } + +For more information, see `Replace a root volume `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-reserved-instances-listing.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-reserved-instances-listing.rst new file mode 100755 index 000000000..5ea175710 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-reserved-instances-listing.rst @@ -0,0 +1,9 @@ +**To list a Reserved Instance in the Reserved Instance Marketplace** + +The following ``create-reserved-instances-listing`` example creates a listing for the specified Reserved Instance in the Reserved Instance Marketplace. :: + + aws ec2 create-reserved-instances-listing \ + --reserved-instances-id 5ec28771-05ff-4b9b-aa31-9e57dexample \ + --instance-count 3 \ + --price-schedules CurrencyCode=USD,Price=25.50 \ + --client-token 550e8400-e29b-41d4-a716-446655440000 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-restore-image-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-restore-image-task.rst new file mode 100644 index 000000000..b9a27daa2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-restore-image-task.rst @@ -0,0 +1,16 @@ +**To restore an AMI from an S3 bucket** + +The following ``create-restore-image-task`` example restores an AMI from an S3 bucket. Use the values for ``S3ObjectKey `` and ``Bucket`` from the ``describe-store-image-tasks`` output, specify the object key of the AMI and the name of the S3 bucket to which the AMI was copied, and specify the name for the restored AMI. The name must be unique for AMIs in the Region for this account. The restored AMI will receive a new AMI ID. :: + + aws ec2 create-restore-image-task \ + --object-key ami-1234567890abcdef0.bin \ + --bucket my-ami-bucket \ + --name 'New AMI Name' + +Output:: + + { + "ImageId": "ami-0eab20fe36f83e1a8" + } + +For more information, see `Store and restore an AMI using S3 `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-route-table.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-route-table.rst new file mode 100644 index 000000000..c4ff5bbd1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-route-table.rst @@ -0,0 +1,26 @@ +**To create a route table** + +This example creates a route table for the specified VPC. + +Command:: + + aws ec2 create-route-table --vpc-id vpc-a01106c2 + +Output:: + + { + "RouteTable": { + "Associations": [], + "RouteTableId": "rtb-22574640", + "VpcId": "vpc-a01106c2", + "PropagatingVgws": [], + "Tags": [], + "Routes": [ + { + "GatewayId": "local", + "DestinationCidrBlock": "10.0.0.0/16", + "State": "active" + } + ] + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-route.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-route.rst new file mode 100644 index 000000000..735f4ef64 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-route.rst @@ -0,0 +1,21 @@ +**To create a route** + +This example creates a route for the specified route table. The route matches all IPv4 traffic (``0.0.0.0/0``) and routes it to the specified Internet gateway. If the command succeeds, no output is returned. + +Command:: + + aws ec2 create-route --route-table-id rtb-22574640 --destination-cidr-block 0.0.0.0/0 --gateway-id igw-c0a643a9 + +This example command creates a route in route table rtb-g8ff4ea2. The route matches traffic for the IPv4 CIDR block +10.0.0.0/16 and routes it to VPC peering connection, pcx-111aaa22. This route enables traffic to be directed to the peer +VPC in the VPC peering connection. If the command succeeds, no output is returned. + +Command:: + + aws ec2 create-route --route-table-id rtb-g8ff4ea2 --destination-cidr-block 10.0.0.0/16 --vpc-peering-connection-id pcx-1a2b3c4d + +This example creates a route in the specified route table that matches all IPv6 traffic (``::/0``) and routes it to the specified egress-only Internet gateway. + +Command:: + + aws ec2 create-route --route-table-id rtb-dce620b8 --destination-ipv6-cidr-block ::/0 --egress-only-internet-gateway-id eigw-01eadbd45ecd7943f diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-security-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-security-group.rst new file mode 100644 index 000000000..dbd78e0eb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-security-group.rst @@ -0,0 +1,31 @@ +**To create a security group for EC2-Classic** + +This example creates a security group named ``MySecurityGroup``. + +Command:: + + aws ec2 create-security-group --group-name MySecurityGroup --description "My security group" + +Output:: + + { + "GroupId": "sg-903004f8" + } + +**To create a security group for EC2-VPC** + +This example creates a security group named ``MySecurityGroup`` for the specified VPC. + +Command:: + + aws ec2 create-security-group --group-name MySecurityGroup --description "My security group" --vpc-id vpc-1a2b3c4d + +Output:: + + { + "GroupId": "sg-903004f8" + } + +For more information, see `Using Security Groups`_ in the *AWS Command Line Interface User Guide*. + +.. _`Using Security Groups`: http://docs.aws.amazon.com/cli/latest/userguide/cli-ec2-sg.html diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-snapshot.rst new file mode 100644 index 000000000..cc7f930a5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-snapshot.rst @@ -0,0 +1,54 @@ +**To create a snapshot** + +This example command creates a snapshot of the volume with a volume ID of ``vol-1234567890abcdef0`` and a short description to identify the snapshot. + +Command:: + + aws ec2 create-snapshot --volume-id vol-1234567890abcdef0 --description "This is my root volume snapshot" + +Output:: + + { + "Description": "This is my root volume snapshot", + "Tags": [], + "Encrypted": false, + "VolumeId": "vol-1234567890abcdef0", + "State": "pending", + "VolumeSize": 8, + "StartTime": "2018-02-28T21:06:01.000Z", + "Progress": "", + "OwnerId": "012345678910", + "SnapshotId": "snap-066877671789bd71b" + } + +**To create a snapshot with tags** + +This example command creates a snapshot and applies two tags: purpose=prod and costcenter=123. + +Command:: + + aws ec2 create-snapshot --volume-id vol-1234567890abcdef0 --description 'Prod backup' --tag-specifications 'ResourceType=snapshot,Tags=[{Key=purpose,Value=prod},{Key=costcenter,Value=123}]' + +Output:: + + { + "Description": "Prod backup", + "Tags": [ + { + "Value": "prod", + "Key": "purpose" + }, + { + "Value": "123", + "Key": "costcenter" + } + ], + "Encrypted": false, + "VolumeId": "vol-1234567890abcdef0", + "State": "pending", + "VolumeSize": 8, + "StartTime": "2018-02-28T21:06:06.000Z", + "Progress": "", + "OwnerId": "012345678910", + "SnapshotId": "snap-09ed24a70bc19bbe4" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-snapshots.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-snapshots.rst new file mode 100644 index 000000000..7610abc7a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-snapshots.rst @@ -0,0 +1,92 @@ +**Example 1: To create a multi-volume snapshot** + +The following ``create-snapshots`` example creates snapshots of all volumes attached to the specified instance. :: + + aws ec2 create-snapshots \ + --instance-specification InstanceId=i-1234567890abcdef0 \ + --description "This is snapshot of a volume from my-instance" + +Output:: + + { + "Snapshots": [ + { + "Description": "This is a snapshot of a volume from my-instance", + "Tags": [], + "Encrypted": false, + "VolumeId": "vol-0a01d2d5a34697479", + "State": "pending", + "VolumeSize": 16, + "StartTime": "2019-08-05T16:58:19.000Z", + "Progress": "", + "OwnerId": "123456789012", + "SnapshotId": "snap-07f30e3909aa0045e" + }, + { + "Description": "This is a snapshot of a volume from my-instance", + "Tags": [], + "Encrypted": false, + "VolumeId": "vol-02d0d4947008cb1a2", + "State": "pending", + "VolumeSize": 20, + "StartTime": "2019-08-05T16:58:19.000Z", + "Progress": "", + "OwnerId": "123456789012", + "SnapshotId": "snap-0ec20b602264aad48" + }, + ... + ] + } + +**Example 2: To create a multi-volume snapshot with tags from the source volume** + +The following ``create-snapshots`` example creates snapshots of all volumes attached to the specified instance and copies the tags from each volume to its corresponding snapshot. :: + + aws ec2 create-snapshots \ + --instance-specification InstanceId=i-1234567890abcdef0 \ + --copy-tags-from-source volume \ + --description "This is snapshot of a volume from my-instance" + +Output:: + + { + "Snapshots": [ + { + "Description": "This is a snapshot of a volume from my-instance", + "Tags": [ + { + "Key": "Name", + "Value": "my-volume" + } + ], + "Encrypted": false, + "VolumeId": "vol-02d0d4947008cb1a2", + "State": "pending", + "VolumeSize": 20, + "StartTime": "2019-08-05T16:53:04.000Z", + "Progress": "", + "OwnerId": "123456789012", + "SnapshotId": "snap-053bfaeb821a458dd" + } + ... + ] + } + +**Example 3: To create a multi-volume snapshot not including the root volume** + +The following ``create-snapshots`` example creates a snapshot of all volumes attached to the specified instance except for the root volume. :: + + aws ec2 create-snapshots \ + --instance-specification InstanceId=i-1234567890abcdef0,ExcludeBootVolume=true + +See example 1 for sample output. + +**Example 4: To create a multi-volume snapshot and add tags** + +The following ``create-snapshots`` example creates snapshots of all volumes attached to the specified instance and adds two tags to each snapshot. :: + + aws ec2 create-snapshots \ + --instance-specification InstanceId=i-1234567890abcdef0 \ + --tag-specifications 'ResourceType=snapshot,Tags=[{Key=Name,Value=backup},{Key=costcenter,Value=123}]' + +See example 1 for sample output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-spot-datafeed-subscription.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-spot-datafeed-subscription.rst new file mode 100644 index 000000000..29dd39927 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-spot-datafeed-subscription.rst @@ -0,0 +1,24 @@ +**To create a Spot Instance data feed** + +The following ``create-spot-datafeed-subscription`` example creates a Spot Instance data feed. :: + + aws ec2 create-spot-datafeed-subscription \ + --bucket amzn-s3-demo-bucket \ + --prefix spot-data-feed + +Output:: + + { + "SpotDatafeedSubscription": { + "Bucket": "amzn-s3-demo-bucket", + "OwnerId": "123456789012", + "Prefix": "spot-data-feed", + "State": "Active" + } + } + +The data feed is stored in the Amazon S3 bucket that you specified. The file names for this data feed have the following format. :: + + amzn-s3-demo-bucket.s3.amazonaws.com/spot-data-feed/123456789012.YYYY-MM-DD-HH.n.abcd1234.gz + +For more information, see `Spot Instance data feed `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-store-image-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-store-image-task.rst new file mode 100644 index 000000000..6ce408b51 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-store-image-task.rst @@ -0,0 +1,16 @@ +**To store an AMI in an S3 bucket** + +The following ``create-store-image-task`` example stores an AMI in an S3 bucket. Specify the ID of the AMI and the name of the S3 bucket in which to store the AMI. :: + + aws ec2 create-store-image-task \ + --image-id ami-1234567890abcdef0 \ + --bucket my-ami-bucket + +Output:: + + { + "ObjectKey": "ami-1234567890abcdef0.bin" + } + +For more information, see `Store and restore an AMI using S3 `__ in the *Amazon EC2 User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-subnet-cidr-reservation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-subnet-cidr-reservation.rst new file mode 100644 index 000000000..5c8ed640a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-subnet-cidr-reservation.rst @@ -0,0 +1,22 @@ +**To create a subnet CIDR reservation** + +The following ``create-subnet-cidr-reservation`` example creates a subnet CIDR reservation for the specified subnet and CIDR range. :: + + aws ec2 create-subnet-cidr-reservation \ + --subnet-id subnet-03c51e2eEXAMPLE \ + --reservation-type prefix \ + --cidr 10.1.0.20/26 + +Output:: + + { + "SubnetCidrReservation": { + "SubnetCidrReservationId": "scr-044f977c4eEXAMPLE", + "SubnetId": "subnet-03c51e2e6cEXAMPLE", + "Cidr": "10.1.0.16/28", + "ReservationType": "prefix", + "OwnerId": "123456789012" + } + } + +For more information, see `Subnet CIDR reservations `__ in the *Amazon VPC User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-subnet.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-subnet.rst new file mode 100644 index 000000000..8d64fb531 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-subnet.rst @@ -0,0 +1,123 @@ +**Example 1: To create a subnet with an IPv4 CIDR block only** + +The following ``create-subnet`` example creates a subnet in the specified VPC with the specified IPv4 CIDR block. :: + + aws ec2 create-subnet \ + --vpc-id vpc-081ec835f3EXAMPLE \ + --cidr-block 10.0.0.0/24 \ + --tag-specifications ResourceType=subnet,Tags=[{Key=Name,Value=my-ipv4-only-subnet}] + +Output:: + + { + "Subnet": { + "AvailabilityZone": "us-west-2a", + "AvailabilityZoneId": "usw2-az2", + "AvailableIpAddressCount": 251, + "CidrBlock": "10.0.0.0/24", + "DefaultForAz": false, + "MapPublicIpOnLaunch": false, + "State": "available", + "SubnetId": "subnet-0e99b93155EXAMPLE", + "VpcId": "vpc-081ec835f3EXAMPLE", + "OwnerId": "123456789012", + "AssignIpv6AddressOnCreation": false, + "Ipv6CidrBlockAssociationSet": [], + "Tags": [ + { + "Key": "Name", + "Value": "my-ipv4-only-subnet" + } + ], + "SubnetArn": "arn:aws:ec2:us-west-2:123456789012:subnet/subnet-0e99b93155EXAMPLE" + } + } + +**Example 2: To create a subnet with both IPv4 and IPv6 CIDR blocks** + +The following ``create-subnet`` example creates a subnet in the specified VPC with the specified IPv4 and IPv6 CIDR blocks. :: + + aws ec2 create-subnet \ + --vpc-id vpc-081ec835f3EXAMPLE \ + --cidr-block 10.0.0.0/24 \ + --ipv6-cidr-block 2600:1f16:cfe:3660::/64 \ + --tag-specifications ResourceType=subnet,Tags=[{Key=Name,Value=my-ipv4-ipv6-subnet}] + +Output:: + + { + "Subnet": { + "AvailabilityZone": "us-west-2a", + "AvailabilityZoneId": "usw2-az2", + "AvailableIpAddressCount": 251, + "CidrBlock": "10.0.0.0/24", + "DefaultForAz": false, + "MapPublicIpOnLaunch": false, + "State": "available", + "SubnetId": "subnet-0736441d38EXAMPLE", + "VpcId": "vpc-081ec835f3EXAMPLE", + "OwnerId": "123456789012", + "AssignIpv6AddressOnCreation": false, + "Ipv6CidrBlockAssociationSet": [ + { + "AssociationId": "subnet-cidr-assoc-06c5f904499fcc623", + "Ipv6CidrBlock": "2600:1f13:cfe:3660::/64", + "Ipv6CidrBlockState": { + "State": "associating" + } + } + ], + "Tags": [ + { + "Key": "Name", + "Value": "my-ipv4-ipv6-subnet" + } + ], + "SubnetArn": "arn:aws:ec2:us-west-2:123456789012:subnet/subnet-0736441d38EXAMPLE" + } + } + +**Example 3: To create a subnet with an IPv6 CIDR block only** + +The following ``create-subnet`` example creates a subnet in the specified VPC with the specified IPv6 CIDR block. :: + + aws ec2 create-subnet \ + --vpc-id vpc-081ec835f3EXAMPLE \ + --ipv6-native \ + --ipv6-cidr-block 2600:1f16:115:200::/64 \ + --tag-specifications ResourceType=subnet,Tags=[{Key=Name,Value=my-ipv6-only-subnet}] + +Output:: + + { + "Subnet": { + "AvailabilityZone": "us-west-2a", + "AvailabilityZoneId": "usw2-az2", + "AvailableIpAddressCount": 0, + "DefaultForAz": false, + "MapPublicIpOnLaunch": false, + "State": "available", + "SubnetId": "subnet-03f720e7deEXAMPLE", + "VpcId": "vpc-081ec835f3EXAMPLE", + "OwnerId": "123456789012", + "AssignIpv6AddressOnCreation": true, + "Ipv6CidrBlockAssociationSet": [ + { + "AssociationId": "subnet-cidr-assoc-01ef639edde556709", + "Ipv6CidrBlock": "2600:1f13:cfe:3660::/64", + "Ipv6CidrBlockState": { + "State": "associating" + } + } + ], + "Tags": [ + { + "Key": "Name", + "Value": "my-ipv6-only-subnet" + } + ], + "SubnetArn": "arn:aws:ec2:us-west-2:123456789012:subnet/subnet-03f720e7deEXAMPLE" + } + } + +For more information, see `VPCs and subnets `__ in the *Amazon VPC User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-tags.rst new file mode 100755 index 000000000..2024d83b2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-tags.rst @@ -0,0 +1,43 @@ +**Example 1: To add a tag to a resource** + +The following ``create-tags`` example adds the tag ``Stack=production`` to the specified image, or overwrites an existing tag for the AMI where the tag key is ``Stack``. :: + + aws ec2 create-tags \ + --resources ami-1234567890abcdef0 \ + --tags Key=Stack,Value=production + +This command produces no output + +**Example 2: To add tags to multiple resources** + +The following ``create-tags`` example adds (or overwrites) two tags for an AMI and an instance. One of the tags has a key (``webserver``) but no value (value is set to an empty string). The other tag has a key (``stack``) and a value (``Production``). :: + + aws ec2 create-tags \ + --resources ami-1a2b3c4d i-1234567890abcdef0 \ + --tags Key=webserver,Value= Key=stack,Value=Production + +This command produces no output + +**Example 3: To add tags containing special characters** + +The following ``create-tags`` examples add the tag ``[Group]=test`` for an instance. The square brackets ([ and ]) are special characters, and must be escaped. The following examples also use the line continuation character appropriate for each environment. + +If you are using Windows, surround the element that has special characters with double quotes ("), and then precede each double quote character with a backslash (\\) as follows. :: + + aws ec2 create-tags ^ + --resources i-1234567890abcdef0 ^ + --tags Key=\"[Group]\",Value=test + +If you are using Windows PowerShell, surround the element the value that has special characters with double quotes ("), precede each double quote character with a backslash (\\), and then surround the entire key and value structure with single quotes (') as follows. :: + + aws ec2 create-tags ` + --resources i-1234567890abcdef0 ` + --tags 'Key=\"[Group]\",Value=test' + +If you are using Linux or OS X, surround the element that has special characters with double quotes ("), and then surround the entire key and value structure with single quotes (') as follows. :: + + aws ec2 create-tags \ + --resources i-1234567890abcdef0 \ + --tags 'Key="[Group]",Value=test' + +For more information, see `Tag your Amazon EC2 resources `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-traffic-mirror-filter-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-traffic-mirror-filter-rule.rst new file mode 100644 index 000000000..52ae18172 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-traffic-mirror-filter-rule.rst @@ -0,0 +1,32 @@ +**To create a filter rule for incoming TCP traffic** + +The following ``create-traffic-mirror-filter-rule`` example creates a rule that you can use to mirror all incoming TCP traffic. Before you run this command, use ``create-traffic-mirror-filter`` to create the the traffic mirror filter. :: + + aws ec2 create-traffic-mirror-filter-rule \ + --description 'TCP Rule' \ + --destination-cidr-block 0.0.0.0/0 \ + --protocol 6 \ + --rule-action accept \ + --rule-number 1 \ + --source-cidr-block 0.0.0.0/0 \ + --traffic-direction ingress \ + --traffic-mirror-filter-id tmf-04812ff784b25ae67 + +Output:: + + { + "TrafficMirrorFilterRule": { + "DestinationCidrBlock": "0.0.0.0/0", + "TrafficMirrorFilterId": "tmf-04812ff784b25ae67", + "TrafficMirrorFilterRuleId": "tmfr-02d20d996673f3732", + "SourceCidrBlock": "0.0.0.0/0", + "TrafficDirection": "ingress", + "Description": "TCP Rule", + "RuleNumber": 1, + "RuleAction": "accept", + "Protocol": 6 + }, + "ClientToken": "4752b573-40a6-4eac-a8a4-a72058761219" + } + +For more information, see `Create a traffic mirror filter `__ in the *Traffic Mirroring Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-traffic-mirror-filter.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-traffic-mirror-filter.rst new file mode 100644 index 000000000..23ab1f981 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-traffic-mirror-filter.rst @@ -0,0 +1,22 @@ +**To create a traffic mirror filter** + +The following ``create-traffic-mirror-filter`` example creates a traffic mirror filter. After you create the filter, use ``create-traffic-mirror-filter-rule`` to add rules. :: + + aws ec2 create-traffic-mirror-filter \ + --description 'TCP Filter' + +Output:: + + { + "ClientToken": "28908518-100b-4987-8233-8c744EXAMPLE", + "TrafficMirrorFilter": { + "TrafficMirrorFilterId": "tmf-04812ff784EXAMPLE", + "Description": "TCP Filter", + "EgressFilterRules": [], + "IngressFilterRules": [], + "Tags": [], + "NetworkServices": [] + } + } + +For more information, see `Create a traffic mirror filter `__ in the *Traffic Mirroring Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-traffic-mirror-session.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-traffic-mirror-session.rst new file mode 100644 index 000000000..c3c44aace --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-traffic-mirror-session.rst @@ -0,0 +1,31 @@ +**To create a traffic mirror session** + +The following ``create-traffic-mirror-session`` command creates a traffic mirror session for the specified source and target for 25 bytes of the packet. :: + + aws ec2 create-traffic-mirror-session \ + --description 'example session' \ + --traffic-mirror-target-id tmt-07f75d8feeEXAMPLE \ + --network-interface-id eni-070203f901EXAMPLE \ + --session-number 1 \ + --packet-length 25 \ + --traffic-mirror-filter-id tmf-04812ff784EXAMPLE + +Output:: + + { + "TrafficMirrorSession": { + "TrafficMirrorSessionId": "tms-08a33b1214EXAMPLE", + "TrafficMirrorTargetId": "tmt-07f75d8feeEXAMPLE", + "TrafficMirrorFilterId": "tmf-04812ff784EXAMPLE", + "NetworkInterfaceId": "eni-070203f901EXAMPLE", + "OwnerId": "111122223333", + "PacketLength": 25, + "SessionNumber": 1, + "VirtualNetworkId": 7159709, + "Description": "example session", + "Tags": [] + }, + "ClientToken": "5236cffc-ee13-4a32-bb5b-388d9da09d96" + } + +For more information, see `Create a traffic mirror session `__ in the *Traffic Mirroring Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-traffic-mirror-target.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-traffic-mirror-target.rst new file mode 100644 index 000000000..8d5089bdb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-traffic-mirror-target.rst @@ -0,0 +1,45 @@ +**To create a a Network Load Balancer traffic mirror target** + +The following ``create-traffic-mirror-target`` example creates a Network Load Balancer traffic mirror target. :: + + aws ec2 create-traffic-mirror-target \ + --description 'Example Network Load Balancer Target' \ + --network-load-balancer-arn arn:aws:elasticloadbalancing:us-east-1:111122223333:loadbalancer/net/NLB/7cdec873EXAMPLE + +Output:: + + { + "TrafficMirrorTarget": { + "Type": "network-load-balancer", + "Tags": [], + "Description": "Example Network Load Balancer Target", + "OwnerId": "111122223333", + "NetworkLoadBalancerArn": "arn:aws:elasticloadbalancing:us-east-1:724145273726:loadbalancer/net/NLB/7cdec873EXAMPLE", + "TrafficMirrorTargetId": "tmt-0dabe9b0a6EXAMPLE" + }, + "ClientToken": "d5c090f5-8a0f-49c7-8281-72c796a21f72" + } + +**To create a network traffic mirror target** + +The following ``create-traffic-mirror-target`` example creates a network interface Traffic Mirror target. :: + + aws ec2 create-traffic-mirror-target \ + --description 'Network interface target' \ + --network-interface-id eni-eni-01f6f631eEXAMPLE + +Output:: + + { + "ClientToken": "5289a345-0358-4e62-93d5-47ef3061d65e", + "TrafficMirrorTarget": { + "Description": "Network interface target", + "NetworkInterfaceId": "eni-01f6f631eEXAMPLE", + "TrafficMirrorTargetId": "tmt-02dcdbe2abEXAMPLE", + "OwnerId": "111122223333", + "Type": "network-interface", + "Tags": [] + } + } + +For more information, see `Create a traffic mirror target `__ in the *Traffic Mirroring Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-connect-peer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-connect-peer.rst new file mode 100644 index 000000000..3842fcb16 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-connect-peer.rst @@ -0,0 +1,45 @@ +**To create a Transit Gateway Connect peer** + +The following ``create-transit-gateway-connect-peer`` example creates a Connect peer. :: + + aws ec2 create-transit-gateway-connect-peer \ + --transit-gateway-attachment-id tgw-attach-0f0927767cEXAMPLE \ + --peer-address 172.31.1.11 \ + --inside-cidr-blocks 169.254.6.0/29 + +Output:: + + { + "TransitGatewayConnectPeer": { + "TransitGatewayAttachmentId": "tgw-attach-0f0927767cEXAMPLE", + "TransitGatewayConnectPeerId": "tgw-connect-peer-0666adbac4EXAMPLE", + "State": "pending", + "CreationTime": "2021-10-13T03:35:17.000Z", + "ConnectPeerConfiguration": { + "TransitGatewayAddress": "10.0.0.234", + "PeerAddress": "172.31.1.11", + "InsideCidrBlocks": [ + "169.254.6.0/29" + ], + "Protocol": "gre", + "BgpConfigurations": [ + { + "TransitGatewayAsn": 64512, + "PeerAsn": 64512, + "TransitGatewayAddress": "169.254.6.2", + "PeerAddress": "169.254.6.1", + "BgpStatus": "down" + }, + { + "TransitGatewayAsn": 64512, + "PeerAsn": 64512, + "TransitGatewayAddress": "169.254.6.3", + "PeerAddress": "169.254.6.1", + "BgpStatus": "down" + } + ] + } + } + } + +For more information, see `Transit gateway Connect attachments and Transit Gateway Connect peers `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-connect.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-connect.rst new file mode 100644 index 000000000..195898d3f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-connect.rst @@ -0,0 +1,24 @@ +**To create a transit gateway Connect attachment** + +The following ``create-transit-gateway-connect`` example creates a Connect attachment, with the "gre" protocol, for the specified attachment. :: + + aws ec2 create-transit-gateway-connect \ + --transport-transit-gateway-attachment-id tgw-attach-0a89069f57EXAMPLE \ + --options "Protocol=gre" + +Output:: + + { + "TransitGatewayConnect": { + "TransitGatewayAttachmentId": "tgw-attach-037012e5dcEXAMPLE", + "TransportTransitGatewayAttachmentId": "tgw-attach-0a89069f57EXAMPLE", + "TransitGatewayId": "tgw-02f776b1a7EXAMPLE", + "State": "pending", + "CreationTime": "2021-03-09T19:59:17+00:00", + "Options": { + "Protocol": "gre" + } + } + } + +For more information, see `Transit gateway Connect attachments and Transit Gateway Connect peers `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-multicast-domain.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-multicast-domain.rst new file mode 100644 index 000000000..a4efff723 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-multicast-domain.rst @@ -0,0 +1,53 @@ +**Example 1: To create an IGMP multicast domain** + +The following ``create-transit-gateway-multicast-domain`` example creates a multicast domain for the specified transit gateway. With static sources disabled, any instances in subnets associated with the multicast domain can send multicast traffic. If at least one member uses the IGMP protocol, you must enable IGMPv2 support. :: + + aws ec2 create-transit-gateway-multicast-domain \ + --transit-gateway-id tgw-0bf0bffefaEXAMPLE \ + --options StaticSourcesSupport=disable,Igmpv2Support=enable + +Output:: + + { + "TransitGatewayMulticastDomain": { + "TransitGatewayMulticastDomainId": "tgw-mcast-domain-0c9e29e2a7EXAMPLE", + "TransitGatewayId": "tgw-0bf0bffefaEXAMPLE", + "TransitGatewayMulticastDomainArn": "arn:aws:ec2:us-west-2:123456789012:transit-gateway-multicast-domain/tgw-mcast-domain-0c9e29e2a7EXAMPLE", + "OwnerId": "123456789012", + "Options": { + "Igmpv2Support": "enable", + "StaticSourcesSupport": "disable", + "AutoAcceptSharedAssociations": "disable" + }, + "State": "pending", + "CreationTime": "2021-09-29T22:17:13.000Z" + } + } + +**Example 2: To create a static multicast domain** + +The following ``create-transit-gateway-multicast-domain`` example creates a multicast domain for the specified transit gateway. With static sources enabled, you must statically add sources. :: + + aws ec2 create-transit-gateway-multicast-domain \ + --transit-gateway-id tgw-0bf0bffefaEXAMPLE \ + --options StaticSourcesSupport=enable,Igmpv2Support=disable + +Output:: + + { + "TransitGatewayMulticastDomain": { + "TransitGatewayMulticastDomainId": "tgw-mcast-domain-000fb24d04EXAMPLE", + "TransitGatewayId": "tgw-0bf0bffefaEXAMPLE", + "TransitGatewayMulticastDomainArn": "arn:aws:ec2:us-west-2:123456789012:transit-gateway-multicast-domain/tgw-mcast-domain-000fb24d04EXAMPLE", + "OwnerId": "123456789012", + "Options": { + "Igmpv2Support": "disable", + "StaticSourcesSupport": "enable", + "AutoAcceptSharedAssociations": "disable" + }, + "State": "pending", + "CreationTime": "2021-09-29T22:20:19.000Z" + } + } + +For more information, see `Managing multicast domains `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-peering-attachment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-peering-attachment.rst new file mode 100644 index 000000000..4659d8a81 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-peering-attachment.rst @@ -0,0 +1,31 @@ +**To create a transit gateway peering attachment** + +The following ``create-transit-gateway-peering-attachment`` example creates a peering attachment request between the two specified transit gateways. :: + + aws ec2 create-transit-gateway-peering-attachment \ + --transit-gateway-id tgw-123abc05e04123abc \ + --peer-transit-gateway-id tgw-11223344aabbcc112 \ + --peer-account-id 123456789012 \ + --peer-region us-east-2 + +Output:: + + { + "TransitGatewayPeeringAttachment": { + "TransitGatewayAttachmentId": "tgw-attach-4455667788aabbccd", + "RequesterTgwInfo": { + "TransitGatewayId": "tgw-123abc05e04123abc", + "OwnerId": "123456789012", + "Region": "us-west-2" + }, + "AccepterTgwInfo": { + "TransitGatewayId": "tgw-11223344aabbcc112", + "OwnerId": "123456789012", + "Region": "us-east-2" + }, + "State": "initiatingRequest", + "CreationTime": "2019-12-09T11:38:05.000Z" + } + } + +For more information, see `Transit Gateway Peering Attachments `__ in the *Transit Gateways Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-policy-table.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-policy-table.rst new file mode 100644 index 000000000..d299ee491 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-policy-table.rst @@ -0,0 +1,19 @@ +**To create a transit gateway policy table** + +The following ``create-transit-gateway-policy-table`` example creates a transit gateway policy table for the specified transit gateway. :: + + aws ec2 create-transit-gateway-policy-table \ + --transit-gateway-id tgw-067f8505c18f0bd6e + +Output:: + + { + "TransitGatewayPolicyTable": { + "TransitGatewayPolicyTableId": "tgw-ptb-0a16f134b78668a81", + "TransitGatewayId": "tgw-067f8505c18f0bd6e", + "State": "pending", + "CreationTime": "2023-11-28T16:36:43+00:00" + } + } + +For more information, see `Transit gateway policy tables `__ in the *Transit Gateway User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-prefix-list-reference.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-prefix-list-reference.rst new file mode 100644 index 000000000..2c677d391 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-prefix-list-reference.rst @@ -0,0 +1,27 @@ +**To create a reference to a prefix list** + +The following ``create-transit-gateway-prefix-list-reference`` example creates a reference to the specified prefix list in the specified transit gateway route table. :: + + aws ec2 create-transit-gateway-prefix-list-reference \ + --transit-gateway-route-table-id tgw-rtb-0123456789abcd123 \ + --prefix-list-id pl-11111122222222333 \ + --transit-gateway-attachment-id tgw-attach-aaaaaabbbbbb11111 + +Output:: + + { + "TransitGatewayPrefixListReference": { + "TransitGatewayRouteTableId": "tgw-rtb-0123456789abcd123", + "PrefixListId": "pl-11111122222222333", + "PrefixListOwnerId": "123456789012", + "State": "pending", + "Blackhole": false, + "TransitGatewayAttachment": { + "TransitGatewayAttachmentId": "tgw-attach-aaaaaabbbbbb11111", + "ResourceType": "vpc", + "ResourceId": "vpc-112233445566aabbc" + } + } + } + +For more information, see `Create a prefix list reference `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-route-table.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-route-table.rst new file mode 100644 index 000000000..fcd84e785 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-route-table.rst @@ -0,0 +1,21 @@ +**To create a Transit Gateway Route Table** + +The following ``create-transit-gateway-route-table`` example creates a route table for the specified transit gateway. :: + + aws ec2 create-transit-gateway-route-table \ + --transit-gateway-id tgw-0262a0e521EXAMPLE + +Output:: + + { + "TransitGatewayRouteTable": { + "TransitGatewayRouteTableId": "tgw-rtb-0960981be7EXAMPLE", + "TransitGatewayId": "tgw-0262a0e521EXAMPLE", + "State": "pending", + "DefaultAssociationRouteTable": false, + "DefaultPropagationRouteTable": false, + "CreationTime": "2019-07-10T19:01:46.000Z" + } + } + +For more information, see `Create a transit gateway route table `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-route.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-route.rst new file mode 100755 index 000000000..f606f7830 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-route.rst @@ -0,0 +1,27 @@ +**To create a transit gateway route** + +The following ``create-transit-gateway-route`` example creates a route, with the specified destination, for the specified route table. :: + + aws ec2 create-transit-gateway-route \ + --destination-cidr-block 10.0.2.0/24 \ + --transit-gateway-route-table-id tgw-rtb-0b6f6aaa01EXAMPLE \ + --transit-gateway-attachment-id tgw-attach-0b5968d3b6EXAMPLE + +Output:: + + { + "Route": { + "DestinationCidrBlock": "10.0.2.0/24", + "TransitGatewayAttachments": [ + { + "ResourceId": "vpc-0065acced4EXAMPLE", + "TransitGatewayAttachmentId": "tgw-attach-0b5968d3b6EXAMPLE", + "ResourceType": "vpc" + } + ], + "Type": "static", + "State": "active" + } + } + +For more information, see `Transit gateway route tables `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-vpc-attachment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-vpc-attachment.rst new file mode 100755 index 000000000..433109709 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway-vpc-attachment.rst @@ -0,0 +1,62 @@ +**Example 1: To associate a transit gateway with a VPC** + +The following ``create-transit-gateway-vpc-attachment`` example creates a transit gateway attachment to the specified VPC. :: + + aws ec2 create-transit-gateway-vpc-attachment \ + --transit-gateway-id tgw-0262a0e521EXAMPLE \ + --vpc-id vpc-07e8ffd50f49335df \ + --subnet-id subnet-0752213d59EXAMPLE + +Output:: + + { + "TransitGatewayVpcAttachment": { + "TransitGatewayAttachmentId": "tgw-attach-0a34fe6b4fEXAMPLE", + "TransitGatewayId": "tgw-0262a0e521EXAMPLE", + "VpcId": "vpc-07e8ffd50fEXAMPLE", + "VpcOwnerId": "111122223333", + "State": "pending", + "SubnetIds": [ + "subnet-0752213d59EXAMPLE" + ], + "CreationTime": "2019-07-10T17:33:46.000Z", + "Options": { + "DnsSupport": "enable", + "Ipv6Support": "disable" + } + } + } + +For more information, see `Create a transit gateway attachment to a VPC `__ in the *Transit Gateways Guide*. + +**Example 2: To associate a transit gateway with multiple subnets in a VPC** + +The following ``create-transit-gateway-vpc-attachment`` example creates a transit gateway attachment to the specified VPC and subnets. :: + + aws ec2 create-transit-gateway-vpc-attachment \ + --transit-gateway-id tgw-02f776b1a7EXAMPLE \ + --vpc-id vpc-3EXAMPLE \ + --subnet-ids "subnet-dEXAMPLE" "subnet-6EXAMPLE" + +Output:: + + { + "TransitGatewayVpcAttachment": { + "TransitGatewayAttachmentId": "tgw-attach-0e141e0bebEXAMPLE", + "TransitGatewayId": "tgw-02f776b1a7EXAMPLE", + "VpcId": "vpc-3EXAMPLE", + "VpcOwnerId": "111122223333", + "State": "pending", + "SubnetIds": [ + "subnet-6EXAMPLE", + "subnet-dEXAMPLE" + ], + "CreationTime": "2019-12-17T20:07:52.000Z", + "Options": { + "DnsSupport": "enable", + "Ipv6Support": "disable" + } + } + } + +For more information, see `Create a transit gateway attachment to a VPC `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway.rst new file mode 100644 index 000000000..0d2f17988 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-transit-gateway.rst @@ -0,0 +1,32 @@ +**To create a transit gateway** + +The following ``create-transit-gateway`` example creates a transit gateway. :: + + aws ec2 create-transit-gateway \ + --description MyTGW \ + --options AmazonSideAsn=64516,AutoAcceptSharedAttachments=enable,DefaultRouteTableAssociation=enable,DefaultRouteTablePropagation=enable,VpnEcmpSupport=enable,DnsSupport=enable + +Output:: + + { + "TransitGateway": { + "TransitGatewayId": "tgw-0262a0e521EXAMPLE", + "TransitGatewayArn": "arn:aws:ec2:us-east-2:111122223333:transit-gateway/tgw-0262a0e521EXAMPLE", + "State": "pending", + "OwnerId": "111122223333", + "Description": "MyTGW", + "CreationTime": "2019-07-10T14:02:12.000Z", + "Options": { + "AmazonSideAsn": 64516, + "AutoAcceptSharedAttachments": "enable", + "DefaultRouteTableAssociation": "enable", + "AssociationDefaultRouteTableId": "tgw-rtb-018774adf3EXAMPLE", + "DefaultRouteTablePropagation": "enable", + "PropagationDefaultRouteTableId": "tgw-rtb-018774adf3EXAMPLE", + "VpnEcmpSupport": "enable", + "DnsSupport": "enable" + } + } + } + +For more information, see `Create a transit gateway `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-verified-access-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-verified-access-endpoint.rst new file mode 100644 index 000000000..6a08d5ab1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-verified-access-endpoint.rst @@ -0,0 +1,51 @@ +**To create a Verified Access endpoint** + +The following ``create-verified-access-endpoint`` example creates a Verified Access endpoint for the specified Verified Access group. The specified network interface and security group must belong to the same VPC. :: + + aws ec2 create-verified-access-endpoint \ + --verified-access-group-id vagr-0dbe967baf14b7235 \ + --endpoint-type network-interface \ + --attachment-type vpc \ + --domain-certificate-arn arn:aws:acm:us-east-2:123456789012:certificate/eb065ea0-26f9-4e75-a6ce-0a1a7EXAMPLE \ + --application-domain example.com \ + --endpoint-domain-prefix my-ava-app \ + --security-group-ids sg-004915970c4c8f13a \ + --network-interface-options NetworkInterfaceId=eni-0aec70418c8d87a0f,Protocol=https,Port=443 \ + --tag-specifications ResourceType=verified-access-endpoint,Tags=[{Key=Name,Value=my-va-endpoint}] + +Output:: + + { + "VerifiedAccessEndpoint": { + "VerifiedAccessInstanceId": "vai-0ce000c0b7643abea", + "VerifiedAccessGroupId": "vagr-0dbe967baf14b7235", + "VerifiedAccessEndpointId": "vae-066fac616d4d546f2", + "ApplicationDomain": "example.com", + "EndpointType": "network-interface", + "AttachmentType": "vpc", + "DomainCertificateArn": "arn:aws:acm:us-east-2:123456789012:certificate/eb065ea0-26f9-4e75-a6ce-0a1a7EXAMPLE", + "EndpointDomain": "my-ava-app.edge-00c3372d53b1540bb.vai-0ce000c0b7643abea.prod.verified-access.us-east-2.amazonaws.com", + "SecurityGroupIds": [ + "sg-004915970c4c8f13a" + ], + "NetworkInterfaceOptions": { + "NetworkInterfaceId": "eni-0aec70418c8d87a0f", + "Protocol": "https", + "Port": 443 + }, + "Status": { + "Code": "pending" + }, + "Description": "", + "CreationTime": "2023-08-25T20:54:43", + "LastUpdatedTime": "2023-08-25T20:54:43", + "Tags": [ + { + "Key": "Name", + "Value": "my-va-endpoint" + } + ] + } + } + +For more information, see `Verified Access endpoints `__ in the *AWS Verified Access User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-verified-access-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-verified-access-group.rst new file mode 100644 index 000000000..432935cdb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-verified-access-group.rst @@ -0,0 +1,30 @@ +**To create a Verified Access group** + +The following ``create-verified-access-group`` example creates a Verified Access group for the specified Verified Access instance. :: + + aws ec2 create-verified-access-group \ + --verified-access-instance-id vai-0ce000c0b7643abea \ + --tag-specifications ResourceType=verified-access-group,Tags=[{Key=Name,Value=my-va-group}] + + +Output:: + + { + "VerifiedAccessGroup": { + "VerifiedAccessGroupId": "vagr-0dbe967baf14b7235", + "VerifiedAccessInstanceId": "vai-0ce000c0b7643abea", + "Description": "", + "Owner": "123456789012", + "VerifiedAccessGroupArn": "arn:aws:ec2:us-east-2:123456789012:verified-access-group/vagr-0dbe967baf14b7235", + "CreationTime": "2023-08-25T19:55:19", + "LastUpdatedTime": "2023-08-25T19:55:19", + "Tags": [ + { + "Key": "Name", + "Value": "my-va-group" + } + ] + } + } + +For more information, see `Verified Access groups `__ in the *AWS Verified Access User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-verified-access-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-verified-access-instance.rst new file mode 100644 index 000000000..9dd2a4b8c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-verified-access-instance.rst @@ -0,0 +1,26 @@ +**To create a Verified Access instance** + +The following ``create-verified-access-instance`` example creates a Verified Access instance with a Name tag. :: + + aws ec2 create-verified-access-instance \ + --tag-specifications ResourceType=verified-access-instance,Tags=[{Key=Name,Value=my-va-instance}] + +Output:: + + { + "VerifiedAccessInstance": { + "VerifiedAccessInstanceId": "vai-0ce000c0b7643abea", + "Description": "", + "VerifiedAccessTrustProviders": [], + "CreationTime": "2023-08-25T18:27:56", + "LastUpdatedTime": "2023-08-25T18:27:56", + "Tags": [ + { + "Key": "Name", + "Value": "my-va-instance" + } + ] + } + } + +For more information, see `Verified Access instances `__ in the *AWS Verified Access User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-verified-access-trust-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-verified-access-trust-provider.rst new file mode 100644 index 000000000..590c02382 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-verified-access-trust-provider.rst @@ -0,0 +1,31 @@ +**To create a Verified Access trust provider** + +The following ``create-verified-access-trust-provider`` example sets up a Verified Access trust provider using AWS Identity Center. :: + + aws ec2 create-verified-access-trust-provider \ + --trust-provider-type user \ + --user-trust-provider-type iam-identity-center \ + --policy-reference-name idc \ + --tag-specifications ResourceType=verified-access-trust-provider,Tags=[{Key=Name,Value=my-va-trust-provider}] + +Output:: + + { + "VerifiedAccessTrustProvider": { + "VerifiedAccessTrustProviderId": "vatp-0bb32de759a3e19e7", + "Description": "", + "TrustProviderType": "user", + "UserTrustProviderType": "iam-identity-center", + "PolicyReferenceName": "idc", + "CreationTime": "2023-08-25T18:40:36", + "LastUpdatedTime": "2023-08-25T18:40:36", + "Tags": [ + { + "Key": "Name", + "Value": "my-va-trust-provider" + } + ] + } + } + +For more information, see `Trust providers for Verified Access `__ in the *AWS Verified Access User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-volume.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-volume.rst new file mode 100644 index 000000000..b1a0a6140 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-volume.rst @@ -0,0 +1,103 @@ +**To create an empty General Purpose SSD (gp2) volume** + +The following ``create-volume`` example creates an 80 GiB General Purpose SSD (gp2) volume in the specified Availability Zone. Note that the current Region must be ``us-east-1``, or you can add the ``--region`` parameter to specify the Region for the command. :: + + aws ec2 create-volume \ + --volume-type gp2 \ + --size 80 \ + --availability-zone us-east-1a + +Output:: + + { + "AvailabilityZone": "us-east-1a", + "Tags": [], + "Encrypted": false, + "VolumeType": "gp2", + "VolumeId": "vol-1234567890abcdef0", + "State": "creating", + "Iops": 240, + "SnapshotId": "", + "CreateTime": "YYYY-MM-DDTHH:MM:SS.000Z", + "Size": 80 + } + +If you do not specify a volume type, the default volume type is ``gp2``. :: + + aws ec2 create-volume \ + --size 80 \ + --availability-zone us-east-1a + +**Example 2: To create a Provisioned IOPS SSD (io1) volume from a snapshot** + +The following ``create-volume`` example creates a Provisioned IOPS SSD (io1) volume with 1000 provisioned IOPS in the specified Availability Zone using the specified snapshot. :: + + aws ec2 create-volume \ + --volume-type io1 \ + --iops 1000 \ + --snapshot-id snap-066877671789bd71b \ + --availability-zone us-east-1a + +Output:: + + { + "AvailabilityZone": "us-east-1a", + "Tags": [], + "Encrypted": false, + "VolumeType": "io1", + "VolumeId": "vol-1234567890abcdef0", + "State": "creating", + "Iops": 1000, + "SnapshotId": "snap-066877671789bd71b", + "CreateTime": "YYYY-MM-DDTHH:MM:SS.000Z", + "Size": 500 + } + +**Example 3: To create an encrypted volume** + +The following ``create-volume`` example creates an encrypted volume using the default CMK for EBS encryption. If encryption by default is disabled, you must specify the ``--encrypted`` parameter as follows. :: + + aws ec2 create-volume \ + --size 80 \ + --encrypted \ + --availability-zone us-east-1a + +Output:: + + { + "AvailabilityZone": "us-east-1a", + "Tags": [], + "Encrypted": true, + "VolumeType": "gp2", + "VolumeId": "vol-1234567890abcdef0", + "State": "creating", + "Iops": 240, + "SnapshotId": "", + "CreateTime": "YYYY-MM-DDTHH:MM:SS.000Z", + "Size": 80 + } + +If encryption by default is enabled, the following example command creates an encrypted volume, even without the ``--encrypted`` parameter. :: + + aws ec2 create-volume \ + --size 80 \ + --availability-zone us-east-1a + +If you use the ``--kms-key-id`` parameter to specify a customer managed CMK, you must specify the ``--encrypted`` parameter even if encryption by default is enabled. :: + + aws ec2 create-volume \ + --volume-type gp2 \ + --size 80 \ + --encrypted \ + --kms-key-id 0ea3fef3-80a7-4778-9d8c-1c0c6EXAMPLE \ + --availability-zone us-east-1a + +**Example 4: To create a volume with tags** + +The following ``create-volume`` example creates a volume and adds two tags. :: + + aws ec2 create-volume \ + --availability-zone us-east-1a \ + --volume-type gp2 \ + --size 80 \ + --tag-specifications 'ResourceType=volume,Tags=[{Key=purpose,Value=production},{Key=cost-center,Value=cc123}]' diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpc-endpoint-connection-notification.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpc-endpoint-connection-notification.rst new file mode 100644 index 000000000..63a17539b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpc-endpoint-connection-notification.rst @@ -0,0 +1,23 @@ +**To create an endpoint connection notification** + +This example creates a notification for a specific endpoint service that alerts you when interface endpoints have connected to your service and when endpoints have been accepted for your service. + +Command:: + + aws ec2 create-vpc-endpoint-connection-notification --connection-notification-arn arn:aws:sns:us-east-2:123456789012:VpceNotification --connection-events Connect Accept --service-id vpce-svc-1237881c0d25a3abc + +Output:: + + { + "ConnectionNotification": { + "ConnectionNotificationState": "Enabled", + "ConnectionNotificationType": "Topic", + "ServiceId": "vpce-svc-1237881c0d25a3abc", + "ConnectionEvents": [ + "Accept", + "Connect" + ], + "ConnectionNotificationId": "vpce-nfn-008776de7e03f5abc", + "ConnectionNotificationArn": "arn:aws:sns:us-east-2:123456789012:VpceNotification" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpc-endpoint-service-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpc-endpoint-service-configuration.rst new file mode 100644 index 000000000..69bc5275b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpc-endpoint-service-configuration.rst @@ -0,0 +1,67 @@ +**Example 1: To create an endpoint service configuration for an interface endpoint** + +The following ``create-vpc-endpoint-service-configuration`` example creates a VPC endpoint service configuration using the Network Load Balancer ``nlb-vpce``. This example also specifies that requests to connect to the service through an interface endpoint must be accepted. :: + + aws ec2 create-vpc-endpoint-service-configuration \ + --network-load-balancer-arns arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/net/nlb-vpce/e94221227f1ba532 \ + --acceptance-required + +Output:: + + { + "ServiceConfiguration": { + "ServiceType": [ + { + "ServiceType": "Interface" + } + ], + "NetworkLoadBalancerArns": [ + "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/net/nlb-vpce/e94221227f1ba532" + ], + "ServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-03d5ebb7d9579a2b3", + "ServiceState": "Available", + "ServiceId": "vpce-svc-03d5ebb7d9579a2b3", + "AcceptanceRequired": true, + "AvailabilityZones": [ + "us-east-1d" + ], + "BaseEndpointDnsNames": [ + "vpce-svc-03d5ebb7d9579a2b3.us-east-1.vpce.amazonaws.com" + ] + } + } + +For more information, see `Create an endpoint service `__ in the *AWS PrivateLink User Guide*. + +**Example 2: To create an endpoint service configuration for a Gateway Load Balancer endpoint** + +The following ``create-vpc-endpoint-service-configuration`` example creates a VPC endpoint service configuration using the Gateway Load Balancer ``GWLBService``. Requests to connect to the service through a Gateway Load Balancer endpoint are automatically accepted. :: + + aws ec2 create-vpc-endpoint-service-configuration \ + --gateway-load-balancer-arns arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/gwy/GWLBService/123123123123abcc \ + --no-acceptance-required + +Output:: + + { + "ServiceConfiguration": { + "ServiceType": [ + { + "ServiceType": "GatewayLoadBalancer" + } + ], + "ServiceId": "vpce-svc-123123a1c43abc123", + "ServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-123123a1c43abc123", + "ServiceState": "Available", + "AvailabilityZones": [ + "us-east-1d" + ], + "AcceptanceRequired": false, + "ManagesVpcEndpoints": false, + "GatewayLoadBalancerArns": [ + "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/gwy/GWLBService/123123123123abcc" + ] + } + } + +For more information, see `Create a Gateway Load Balancer endpoint service `__ in the *AWS PrivateLink User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpc-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpc-endpoint.rst new file mode 100644 index 000000000..5f93b9496 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpc-endpoint.rst @@ -0,0 +1,196 @@ +**Example 1: To create a gateway endpoint** + +The following ``create-vpc-endpoint`` example creates a gateway VPC endpoint between VPC ``vpc-1a2b3c4d`` and Amazon S3 in the ``us-east-1`` region, and associates route table ``rtb-11aa22bb`` with the endpoint. :: + + aws ec2 create-vpc-endpoint \ + --vpc-id vpc-1a2b3c4d \ + --service-name com.amazonaws.us-east-1.s3 \ + --route-table-ids rtb-11aa22bb + +Output:: + + { + "VpcEndpoint": { + "PolicyDocument": "{\"Version\":\"2008-10-17\",\"Statement\":[{\"Sid\":\"\",\"Effect\":\"Allow\",\"Principal\":\"\*\",\"Action\":\"\*\",\"Resource\":\"\*\"}]}", + "VpcId": "vpc-1a2b3c4d", + "State": "available", + "ServiceName": "com.amazonaws.us-east-1.s3", + "RouteTableIds": [ + "rtb-11aa22bb" + ], + "VpcEndpointId": "vpc-1a2b3c4d", + "CreationTimestamp": "2015-05-15T09:40:50Z" + } + } + +For more information, see `Create a gateway endpoint `__ in the *AWS PrivateLink User Guide*. + +**Example 2: To create an interface endpoint** + +The following ``create-vpc-endpoint`` example creates an interface VPC endpoint between VPC ``vpc-1a2b3c4d`` and Amazon S3 in the ``us-east-1`` region. The command creates the endpoint in subnet ``subnet-1a2b3c4d``, associates it with security group ``sg-1a2b3c4d``, and adds a tag with a key of "Service" and a Value of "S3". :: + + aws ec2 create-vpc-endpoint \ + --vpc-id vpc-1a2b3c4d \ + --vpc-endpoint-type Interface \ + --service-name com.amazonaws.us-east-1.s3 \ + --subnet-ids subnet-7b16de0c \ + --security-group-id sg-1a2b3c4d \ + --tag-specifications ResourceType=vpc-endpoint,Tags=[{Key=service,Value=S3}] + +Output:: + + { + "VpcEndpoint": { + "VpcEndpointId": "vpce-1a2b3c4d5e6f1a2b3", + "VpcEndpointType": "Interface", + "VpcId": "vpc-1a2b3c4d", + "ServiceName": "com.amazonaws.us-east-1.s3", + "State": "pending", + "RouteTableIds": [], + "SubnetIds": [ + "subnet-1a2b3c4d" + ], + "Groups": [ + { + "GroupId": "sg-1a2b3c4d", + "GroupName": "default" + } + ], + "PrivateDnsEnabled": false, + "RequesterManaged": false, + "NetworkInterfaceIds": [ + "eni-0b16f0581c8ac6877" + ], + "DnsEntries": [ + { + "DnsName": "*.vpce-1a2b3c4d5e6f1a2b3-9hnenorg.s3.us-east-1.vpce.amazonaws.com", + "HostedZoneId": "Z7HUB22UULQXV" + }, + { + "DnsName": "*.vpce-1a2b3c4d5e6f1a2b3-9hnenorg-us-east-1c.s3.us-east-1.vpce.amazonaws.com", + "HostedZoneId": "Z7HUB22UULQXV" + } + ], + "CreationTimestamp": "2021-03-05T14:46:16.030000+00:00", + "Tags": [ + { + "Key": "service", + "Value": "S3" + } + ], + "OwnerId": "123456789012" + } + } + +For more information, see `Create an interface VPC endpoint `__ in the *AWS PrivateLink User Guide*. + +**Example 3: To create a Gateway Load Balancer endpoint** + +The following ``create-vpc-endpoint`` example creates a Gateway Load Balancer endpoint between VPC ``vpc-111122223333aabbc`` and and a service that is configured using a Gateway Load Balancer. :: + + aws ec2 create-vpc-endpoint \ + --service-name com.amazonaws.vpce.us-east-1.vpce-svc-123123a1c43abc123 \ + --vpc-endpoint-type GatewayLoadBalancer \ + --vpc-id vpc-111122223333aabbc \ + --subnet-ids subnet-0011aabbcc2233445 + +Output:: + + { + "VpcEndpoint": { + "VpcEndpointId": "vpce-aabbaabbaabbaabba", + "VpcEndpointType": "GatewayLoadBalancer", + "VpcId": "vpc-111122223333aabbc", + "ServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-123123a1c43abc123", + "State": "pending", + "SubnetIds": [ + "subnet-0011aabbcc2233445" + ], + "RequesterManaged": false, + "NetworkInterfaceIds": [ + "eni-01010120203030405" + ], + "CreationTimestamp": "2020-11-11T08:06:03.522Z", + "OwnerId": "123456789012" + } + } + +For more information, see `Gateway Load Balancer endpoints `__ in the *AWS PrivateLink User Guide*. + +**Example 4: To create a resource endpoint** + +The following ``create-vpc-endpoint`` example creates a resource endpoint. :: + + aws ec2 create-vpc-endpoint \ + --vpc-endpoint-type Resource \ + --vpc-id vpc-111122223333aabbc \ + --subnet-ids subnet-0011aabbcc2233445 \ + --resource-configuration-arn arn:aws:vpc-lattice-us-east-1:123456789012:resourceconfiguration/rcfg-0123abcde98765432 + +Output:: + + { + "VpcEndpoint": { + "VpcEndpointId": "vpce-00939a7ed9EXAMPLE", + "VpcEndpointType": "Resource", + "VpcId": "vpc-111122223333aabbc", + "State": "Pending", + "SubnetIds": [ + "subnet-0011aabbcc2233445" + ], + "Groups": [ + { + "GroupId": "sg-03e2f15fbfc09b000", + "GroupName": "default" + } + ], + "IpAddressType": "IPV4", + "PrivateDnsEnabled": false, + "CreationTimestamp": "2025-02-06T23:38:49.525000+00:00", + "Tags": [], + "OwnerId": "123456789012", + "ResourceConfigurationArn": "arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-0123abcde98765432" + } + } + +For more information, see `Resource endpoints `__ in the *AWS PrivateLink User Guide*. + +**Example 5: To create a service network endpoint** + +The following ``create-vpc-endpoint`` example creates a service network endpoint. :: + + aws ec2 create-vpc-endpoint \ + --vpc-endpoint-type ServiceNetwork \ + --vpc-id vpc-111122223333aabbc \ + --subnet-ids subnet-0011aabbcc2233445 \ + --service-network-arn arn:aws:vpc-lattice:us-east-1:123456789012:servicenetwork/sn-0101abcd5432abcd0 \ + --security-group-ids sg-0123456789012abcd + +Output:: + + { + "VpcEndpoint": { + "VpcEndpointId": "vpce-0f00567fa8EXAMPLE", + "VpcEndpointType": "ServiceNetwork", + "VpcId": "vpc-111122223333aabbc", + "State": "Pending", + "SubnetIds": [ + "subnet-0011aabbcc2233445" + ], + "Groups": [ + { + "GroupId": "sg-0123456789012abcd", + "GroupName": "my-security-group" + } + ], + "IpAddressType": "IPV4", + "PrivateDnsEnabled": false, + "CreationTimestamp": "2025-02-06T23:44:20.449000+00:00", + "Tags": [], + "OwnerId": "123456789012", + "ServiceNetworkArn": "arn:aws:vpc-lattice:us-east-1:123456789012:servicenetwork/sn-0101abcd5432abcd0" + } + } + +For more information, see `Service network endpoints `__ in the *AWS PrivateLink User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpc-peering-connection.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpc-peering-connection.rst new file mode 100644 index 000000000..c2b8af9d5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpc-peering-connection.rst @@ -0,0 +1,52 @@ +**To create a VPC peering connection between your VPCs** + +This example requests a peering connection between your VPCs vpc-1a2b3c4d and vpc-11122233. + +Command:: + + aws ec2 create-vpc-peering-connection --vpc-id vpc-1a2b3c4d --peer-vpc-id vpc-11122233 + +Output:: + + { + "VpcPeeringConnection": { + "Status": { + "Message": "Initiating Request to 444455556666", + "Code": "initiating-request" + }, + "Tags": [], + "RequesterVpcInfo": { + "OwnerId": "444455556666", + "VpcId": "vpc-1a2b3c4d", + "CidrBlock": "10.0.0.0/28" + }, + "VpcPeeringConnectionId": "pcx-111aaa111", + "ExpirationTime": "2014-04-02T16:13:36.000Z", + "AccepterVpcInfo": { + "OwnerId": "444455556666", + "VpcId": "vpc-11122233" + } + } + } + +**To create a VPC peering connection with a VPC in another account** + +This example requests a peering connection between your VPC (vpc-1a2b3c4d), and a VPC (vpc-11122233) that belongs AWS account 123456789012. + +Command:: + + aws ec2 create-vpc-peering-connection --vpc-id vpc-1a2b3c4d --peer-vpc-id vpc-11122233 --peer-owner-id 123456789012 + +**To create a VPC peering connection with a VPC in a different region** + +This example requests a peering connection between your VPC in the current region (vpc-1a2b3c4d), and a VPC (vpc-11122233) in your account in the ``us-west-2`` region. + +Command:: + + aws ec2 create-vpc-peering-connection --vpc-id vpc-1a2b3c4d --peer-vpc-id vpc-11122233 --peer-region us-west-2 + +This example requests a peering connection between your VPC in the current region (vpc-1a2b3c4d), and a VPC (vpc-11122233) that belongs AWS account 123456789012 that's in the ``us-west-2`` region. + +Command:: + + aws ec2 create-vpc-peering-connection --vpc-id vpc-1a2b3c4d --peer-vpc-id vpc-11122233 --peer-owner-id 123456789012 --peer-region us-west-2 \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpc.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpc.rst new file mode 100755 index 000000000..7980ed7de --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpc.rst @@ -0,0 +1,163 @@ +**Example 1: To create a VPC** + +The following ``create-vpc`` example creates a VPC with the specified IPv4 CIDR block and a Name tag. :: + + aws ec2 create-vpc \ + --cidr-block 10.0.0.0/16 \ + --tag-specifications ResourceType=vpc,Tags=[{Key=Name,Value=MyVpc}] + +Output:: + + { + "Vpc": { + "CidrBlock": "10.0.0.0/16", + "DhcpOptionsId": "dopt-5EXAMPLE", + "State": "pending", + "VpcId": "vpc-0a60eb65b4EXAMPLE", + "OwnerId": "123456789012", + "InstanceTenancy": "default", + "Ipv6CidrBlockAssociationSet": [], + "CidrBlockAssociationSet": [ + { + "AssociationId": "vpc-cidr-assoc-07501b79ecEXAMPLE", + "CidrBlock": "10.0.0.0/16", + "CidrBlockState": { + "State": "associated" + } + } + ], + "IsDefault": false, + "Tags": [ + { + "Key": "Name", + "Value": MyVpc" + } + ] + } + } + +**Example 2: To create a VPC with dedicated tenancy** + +The following ``create-vpc`` example creates a VPC with the specified IPv4 CIDR block and dedicated tenancy. :: + + aws ec2 create-vpc \ + --cidr-block 10.0.0.0/16 \ + --instance-tenancy dedicated + +Output:: + + { + "Vpc": { + "CidrBlock": "10.0.0.0/16", + "DhcpOptionsId": "dopt-19edf471", + "State": "pending", + "VpcId": "vpc-0a53287fa4EXAMPLE", + "OwnerId": "111122223333", + "InstanceTenancy": "dedicated", + "Ipv6CidrBlockAssociationSet": [], + "CidrBlockAssociationSet": [ + { + "AssociationId": "vpc-cidr-assoc-00b24cc1c2EXAMPLE", + "CidrBlock": "10.0.0.0/16", + "CidrBlockState": { + "State": "associated" + } + } + ], + "IsDefault": false + } + } + +**Example 3: To create a VPC with an IPv6 CIDR block** + +The following ``create-vpc`` example creates a VPC with an Amazon-provided IPv6 CIDR block. :: + + aws ec2 create-vpc \ + --cidr-block 10.0.0.0/16 \ + --amazon-provided-ipv6-cidr-block + +Output:: + + { + "Vpc": { + "CidrBlock": "10.0.0.0/16", + "DhcpOptionsId": "dopt-dEXAMPLE", + "State": "pending", + "VpcId": "vpc-0fc5e3406bEXAMPLE", + "OwnerId": "123456789012", + "InstanceTenancy": "default", + "Ipv6CidrBlockAssociationSet": [ + { + "AssociationId": "vpc-cidr-assoc-068432c60bEXAMPLE", + "Ipv6CidrBlock": "", + "Ipv6CidrBlockState": { + "State": "associating" + }, + "Ipv6Pool": "Amazon", + "NetworkBorderGroup": "us-west-2" + } + ], + "CidrBlockAssociationSet": [ + { + "AssociationId": "vpc-cidr-assoc-0669f8f9f5EXAMPLE", + "CidrBlock": "10.0.0.0/16", + "CidrBlockState": { + "State": "associated" + } + } + ], + "IsDefault": false + } + } + +**Example 4: To create a VPC with a CIDR from an IPAM pool** + +The following ``create-vpc`` example creates a VPC with a CIDR from an Amazon VPC IP Address Manager (IPAM) pool. + +Linux and macOS:: + + aws ec2 create-vpc \ + --ipv4-ipam-pool-id ipam-pool-0533048da7d823723 \ + --tag-specifications ResourceType=vpc,Tags='[{Key=Environment,Value="Preprod"},{Key=Owner,Value="Build Team"}]' + +Windows:: + + aws ec2 create-vpc ^ + --ipv4-ipam-pool-id ipam-pool-0533048da7d823723 ^ + --tag-specifications ResourceType=vpc,Tags=[{Key=Environment,Value="Preprod"},{Key=Owner,Value="Build Team"}] + +Output:: + + { + "Vpc": { + "CidrBlock": "10.0.1.0/24", + "DhcpOptionsId": "dopt-2afccf50", + "State": "pending", + "VpcId": "vpc-010e1791024eb0af9", + "OwnerId": "123456789012", + "InstanceTenancy": "default", + "Ipv6CidrBlockAssociationSet": [], + "CidrBlockAssociationSet": [ + { + "AssociationId": "vpc-cidr-assoc-0a77de1d803226d4b", + "CidrBlock": "10.0.1.0/24", + "CidrBlockState": { + "State": "associated" + } + } + ], + "IsDefault": false, + "Tags": [ + { + "Key": "Environment", + "Value": "Preprod" + }, + { + "Key": "Owner", + "Value": "Build Team" + } + ] + } + } + +For more information, see `Create a VPC that uses an IPAM pool CIDR `__ in the *Amazon VPC IPAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpn-connection-route.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpn-connection-route.rst new file mode 100644 index 000000000..a115f534a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpn-connection-route.rst @@ -0,0 +1,7 @@ +**To create a static route for a VPN connection** + +This example creates a static route for the specified VPN connection. If the command succeeds, no output is returned. + +Command:: + + aws ec2 create-vpn-connection-route --vpn-connection-id vpn-40f41529 --destination-cidr-block 11.12.0.0/16 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpn-connection.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpn-connection.rst new file mode 100644 index 000000000..b8f149da3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpn-connection.rst @@ -0,0 +1,170 @@ +**Example 1: To create a VPN connection with dynamic routing** + +The following ``create-vpn-connection`` example creates a VPN connection between the specified virtual private gateway and the specified customer gateway, and applies tags to the VPN connection. The output includes the configuration information for your customer gateway device, in XML format. :: + + aws ec2 create-vpn-connection \ + --type ipsec.1 \ + --customer-gateway-id cgw-001122334455aabbc \ + --vpn-gateway-id vgw-1a1a1a1a1a1a2b2b2 \ + --tag-specification 'ResourceType=vpn-connection,Tags=[{Key=Name,Value=BGP-VPN}]' + +Output:: + + { + "VpnConnection": { + "CustomerGatewayConfiguration": "...configuration information...", + "CustomerGatewayId": "cgw-001122334455aabbc", + "Category": "VPN", + "State": "pending", + "VpnConnectionId": "vpn-123123123123abcab", + "VpnGatewayId": "vgw-1a1a1a1a1a1a2b2b2", + "Options": { + "EnableAcceleration": false, + "StaticRoutesOnly": false, + "LocalIpv4NetworkCidr": "0.0.0.0/0", + "RemoteIpv4NetworkCidr": "0.0.0.0/0", + "TunnelInsideIpVersion": "ipv4", + "TunnelOptions": [ + {}, + {} + ] + }, + "Routes": [], + "Tags": [ + { + "Key": "Name", + "Value": "BGP-VPN" + } + ] + } + } + +For more information, see `How AWS Site-to-Site VPN works `__ in the *AWS Site-to-Site VPN User Guide*. + +**Example 2: To create a VPN connection with static routing** + +The following ``create-vpn-connection`` example creates a VPN connection between the specified virtual private gateway and the specified customer gateway. The options specify static routing. The output includes the configuration information for your customer gateway device, in XML format. :: + + aws ec2 create-vpn-connection \ + --type ipsec.1 \ + --customer-gateway-id cgw-001122334455aabbc \ + --vpn-gateway-id vgw-1a1a1a1a1a1a2b2b2 \ + --options "{\"StaticRoutesOnly\":true}" + +Output:: + + { + "VpnConnection": { + "CustomerGatewayConfiguration": "..configuration information...", + "CustomerGatewayId": "cgw-001122334455aabbc", + "Category": "VPN", + "State": "pending", + "VpnConnectionId": "vpn-123123123123abcab", + "VpnGatewayId": "vgw-1a1a1a1a1a1a2b2b2", + "Options": { + "EnableAcceleration": false, + "StaticRoutesOnly": true, + "LocalIpv4NetworkCidr": "0.0.0.0/0", + "RemoteIpv4NetworkCidr": "0.0.0.0/0", + "TunnelInsideIpVersion": "ipv4", + "TunnelOptions": [ + {}, + {} + ] + }, + "Routes": [], + "Tags": [] + } + } + +For more information, see `How AWS Site-to-Site VPN works `__ in the *AWS Site-to-Site VPN User Guide*. + +**Example 3: To create a VPN connection and specify your own inside CIDR and pre-shared key** + +The following ``create-vpn-connection`` example creates a VPN connection and specifies the inside IP address CIDR block and a custom pre-shared key for each tunnel. The specified values are returned in the ``CustomerGatewayConfiguration`` information. :: + + aws ec2 create-vpn-connection \ + --type ipsec.1 \ + --customer-gateway-id cgw-001122334455aabbc \ + --vpn-gateway-id vgw-1a1a1a1a1a1a2b2b2 \ + --options TunnelOptions='[{TunnelInsideCidr=169.254.12.0/30,PreSharedKey=ExamplePreSharedKey1},{TunnelInsideCidr=169.254.13.0/30,PreSharedKey=ExamplePreSharedKey2}]' + +Output:: + + { + "VpnConnection": { + "CustomerGatewayConfiguration": "..configuration information...", + "CustomerGatewayId": "cgw-001122334455aabbc", + "Category": "VPN", + "State": "pending", + "VpnConnectionId": "vpn-123123123123abcab", + "VpnGatewayId": "vgw-1a1a1a1a1a1a2b2b2", + "Options": { + "EnableAcceleration": false, + "StaticRoutesOnly": false, + "LocalIpv4NetworkCidr": "0.0.0.0/0", + "RemoteIpv4NetworkCidr": "0.0.0.0/0", + "TunnelInsideIpVersion": "ipv4", + "TunnelOptions": [ + { + "OutsideIpAddress": "203.0.113.3", + "TunnelInsideCidr": "169.254.12.0/30", + "PreSharedKey": "ExamplePreSharedKey1" + }, + { + "OutsideIpAddress": "203.0.113.5", + "TunnelInsideCidr": "169.254.13.0/30", + "PreSharedKey": "ExamplePreSharedKey2" + } + ] + }, + "Routes": [], + "Tags": [] + } + } + +For more information, see `How AWS Site-to-Site VPN works `__ in the *AWS Site-to-Site VPN User Guide*. + +**Example 4: To create a VPN connection that supports IPv6 traffic** + +The following ``create-vpn-connection`` example creates a VPN connection that supports IPv6 traffic between the specified transit gateway and specified customer gateway. The tunnel options for both tunnels specify that AWS must initiate the IKE negotiation. :: + + aws ec2 create-vpn-connection \ + --type ipsec.1 \ + --transit-gateway-id tgw-12312312312312312 \ + --customer-gateway-id cgw-001122334455aabbc \ + --options TunnelInsideIpVersion=ipv6,TunnelOptions=[{StartupAction=start},{StartupAction=start}] + +Output:: + + { + "VpnConnection": { + "CustomerGatewayConfiguration": "..configuration information...", + "CustomerGatewayId": "cgw-001122334455aabbc", + "Category": "VPN", + "State": "pending", + "VpnConnectionId": "vpn-11111111122222222", + "TransitGatewayId": "tgw-12312312312312312", + "Options": { + "EnableAcceleration": false, + "StaticRoutesOnly": false, + "LocalIpv6NetworkCidr": "::/0", + "RemoteIpv6NetworkCidr": "::/0", + "TunnelInsideIpVersion": "ipv6", + "TunnelOptions": [ + { + "OutsideIpAddress": "203.0.113.3", + "StartupAction": "start" + }, + { + "OutsideIpAddress": "203.0.113.5", + "StartupAction": "start" + } + ] + }, + "Routes": [], + "Tags": [] + } + } + +For more information, see `How AWS Site-to-Site VPN works `__ in the *AWS Site-to-Site VPN User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpn-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpn-gateway.rst new file mode 100644 index 000000000..cd285ea3f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/create-vpn-gateway.rst @@ -0,0 +1,39 @@ +**To create a virtual private gateway** + +This example creates a virtual private gateway. + +Command:: + + aws ec2 create-vpn-gateway --type ipsec.1 + +Output:: + + { + "VpnGateway": { + "AmazonSideAsn": 64512, + "State": "available", + "Type": "ipsec.1", + "VpnGatewayId": "vgw-9a4cacf3", + "VpcAttachments": [] + } + } + +**To create a virtual private gateway with a specific Amazon-side ASN** + +This example creates a virtual private gateway and specifies the Autonomous System Number (ASN) for the Amazon side of the BGP session. + +Command:: + + aws ec2 create-vpn-gateway --type ipsec.1 --amazon-side-asn 65001 + +Output:: + + { + "VpnGateway": { + "AmazonSideAsn": 65001, + "State": "available", + "Type": "ipsec.1", + "VpnGatewayId": "vgw-9a4cacf3", + "VpcAttachments": [] + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-carrier-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-carrier-gateway.rst new file mode 100644 index 000000000..da70267b9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-carrier-gateway.rst @@ -0,0 +1,20 @@ +**To delete your carrier gateway** + +The following ``delete-carrier-gateway`` example deletes the specified carrier gateway. :: + + aws ec2 delete-carrier-gateway \ + --carrier-gateway-id cagw-0465cdEXAMPLE1111 + +Output:: + + { + "CarrierGateway": { + "CarrierGatewayId": "cagw-0465cdEXAMPLE1111", + "VpcId": "vpc-0c529aEXAMPLE1111", + "State": "deleting", + "OwnerId": "123456789012" + } + } + +For more information, see `Carrier gateways `__ in the *Amazon Virtual Private Cloud +User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-client-vpn-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-client-vpn-endpoint.rst new file mode 100644 index 000000000..3e9c94132 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-client-vpn-endpoint.rst @@ -0,0 +1,16 @@ +**To delete a Client VPN endpoint** + +The following ``delete-client-vpn-endpoint`` example deletes the specified Client VPN endpoint. :: + + aws ec2 delete-client-vpn-endpoint \ + --client-vpn-endpoint-id cvpn-endpoint-123456789123abcde + +Output:: + + { + "Status": { + "Code": "deleting" + } + } + +For more information, see `Client VPN Endpoints `__ in the *AWS Client VPN Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-client-vpn-route.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-client-vpn-route.rst new file mode 100644 index 000000000..fdf8f33ff --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-client-vpn-route.rst @@ -0,0 +1,18 @@ +**To delete a route for a Client VPN endpoint** + +The following ``delete-client-vpn-route`` example deletes the ``0.0.0.0/0`` route for the specified subnet of a Client VPN endpoint. :: + + aws ec2 delete-client-vpn-route \ + --client-vpn-endpoint-id cvpn-endpoint-123456789123abcde \ + --destination-cidr-block 0.0.0.0/0 \ + --target-vpc-subnet-id subnet-0123456789abcabca + +Output:: + + { + "Status": { + "Code": "deleting" + } + } + +For more information, see `Routes `__ in the *AWS Client VPN Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-coip-cidr.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-coip-cidr.rst new file mode 100644 index 000000000..0dd3dab8d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-coip-cidr.rst @@ -0,0 +1,19 @@ +**To delete a range of customer-owned IP (CoIP) addresses** + +The following ``delete-coip-cidr`` example deletes the specified range of CoIP addresses in the specified CoIP pool. :: + + aws ec2 delete-coip-cidr \ + --cidr 14.0.0.0/24 \ + --coip-pool-id ipv4pool-coip-1234567890abcdefg + +Output:: + + { + "CoipCidr": { + "Cidr": "14.0.0.0/24", + "CoipPoolId": "ipv4pool-coip-1234567890abcdefg", + "LocalGatewayRouteTableId": "lgw-rtb-abcdefg1234567890" + } + } + +For more information, see `Customer-owned IP addresses `__ in the *AWS Outposts User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-coip-pool.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-coip-pool.rst new file mode 100644 index 000000000..d47b4be7a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-coip-pool.rst @@ -0,0 +1,18 @@ +**To delete a pool of customer-owned IP (CoIP) addresses** + +The following ``delete-coip-pool`` example deletes a CoIP pool of CoIP addresses. :: + + aws ec2 delete-coip-pool \ + --coip-pool-id ipv4pool-coip-1234567890abcdefg + +Output:: + + { + "CoipPool": { + "PoolId": "ipv4pool-coip-1234567890abcdefg", + "LocalGatewayRouteTableId": "lgw-rtb-abcdefg1234567890", + "PoolArn": "arn:aws:ec2:us-west-2:123456789012:coip-pool/ipv4pool-coip-1234567890abcdefg" + } + } + +For more information, see `Customer-owned IP addresses `__ in the *AWS Outposts User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-customer-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-customer-gateway.rst new file mode 100644 index 000000000..33bd9f62f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-customer-gateway.rst @@ -0,0 +1,7 @@ +**To delete a customer gateway** + +This example deletes the specified customer gateway. If the command succeeds, no output is returned. + +Command:: + + aws ec2 delete-customer-gateway --customer-gateway-id cgw-0e11f167 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-dhcp-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-dhcp-options.rst new file mode 100644 index 000000000..34d7b5a5f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-dhcp-options.rst @@ -0,0 +1,7 @@ +**To delete a DHCP options set** + +This example deletes the specified DHCP options set. If the command succeeds, no output is returned. + +Command:: + + aws ec2 delete-dhcp-options --dhcp-options-id dopt-d9070ebb diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-egress-only-internet-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-egress-only-internet-gateway.rst new file mode 100644 index 000000000..e22a55365 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-egress-only-internet-gateway.rst @@ -0,0 +1,13 @@ +**To delete an egress-only Internet gateway** + +This example deletes the specified egress-only Internet gateway. + +Command:: + + aws ec2 delete-egress-only-internet-gateway --egress-only-internet-gateway-id eigw-01eadbd45ecd7943f + +Output:: + + { + "ReturnCode": true + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-fleets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-fleets.rst new file mode 100644 index 000000000..89dd0e2fe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-fleets.rst @@ -0,0 +1,45 @@ +**Example 1: To delete an EC2 Fleet and terminate the associated instances** + +The following ``delete-fleets`` example deletes the specified EC2 Fleet and terminates the associated On-Demand Instances and Spot Instances. :: + + aws ec2 delete-fleets \ + --fleet-ids fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE \ + --terminate-instances + +Output:: + + { + "SuccessfulFleetDeletions": [ + { + "CurrentFleetState": "deleted_terminating", + "PreviousFleetState": "active", + "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE" + } + ], + "UnsuccessfulFleetDeletions": [] + } + +For more information, see `Delete an EC2 Fleet `__ in the *Amazon Elastic Compute Cloud User Guide for Linux Instances*. + +**Example 2: To delete an EC2 Fleet without terminating the associated instances** + +The following ``delete-fleets`` example deletes the specified EC2 Fleet without terminating the associated On-Demand Instances and Spot Instances. :: + + aws ec2 delete-fleets \ + --fleet-ids fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE \ + --no-terminate-instances + +Output:: + + { + "SuccessfulFleetDeletions": [ + { + "CurrentFleetState": "deleted_running", + "PreviousFleetState": "active", + "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE" + } + ], + "UnsuccessfulFleetDeletions": [] + } + +For more information, see `Delete an EC2 Fleet `__ in the *Amazon Elastic Compute Cloud User Guide for Linux Instances*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-flow-logs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-flow-logs.rst new file mode 100644 index 000000000..d3d7f318e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-flow-logs.rst @@ -0,0 +1,11 @@ +**To delete a flow log** + +The following ``delete-flow-logs`` example deletes the specified flow log. :: + + aws ec2 delete-flow-logs --flow-log-id fl-11223344556677889 + +Output:: + + { + "Unsuccessful": [] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-fpga-image.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-fpga-image.rst new file mode 100644 index 000000000..fdec611ce --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-fpga-image.rst @@ -0,0 +1,13 @@ +**To delete an Amazon FPGA image** + +This example deletes the specified AFI. + +Command:: + + aws ec2 delete-fpga-image --fpga-image-id afi-06b12350a123fbabc + +Output:: + + { + "Return": true + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-instance-connect-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-instance-connect-endpoint.rst new file mode 100644 index 000000000..870decafd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-instance-connect-endpoint.rst @@ -0,0 +1,25 @@ +**To delete an EC2 Instance Connect Endpoint** + +The following ``delete-instance-connect-endpoint`` example deletes the specified EC2 Instance Connect Endpoint. :: + + aws ec2 delete-instance-connect-endpoint \ + --instance-connect-endpoint-id eice-03f5e49b83924bbc7 + +Output:: + + { + "InstanceConnectEndpoint": { + "OwnerId": "111111111111", + "InstanceConnectEndpointId": "eice-0123456789example", + "InstanceConnectEndpointArn": "arn:aws:ec2:us-east-1:111111111111:instance-connect-endpoint/eice-0123456789example", + "State": "delete-in-progress", + "StateMessage": "", + "NetworkInterfaceIds": [], + "VpcId": "vpc-0123abcd", + "AvailabilityZone": "us-east-1d", + "CreatedAt": "2023-02-07T12:05:37+00:00", + "SubnetId": "subnet-0123abcd" + } + } + +For more information, see `Remove EC2 Instance Connect Endpoint `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-instance-event-window.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-instance-event-window.rst new file mode 100644 index 000000000..bff4ac598 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-instance-event-window.rst @@ -0,0 +1,38 @@ +**Example 1: To delete an event window** + +The following ``delete-instance-event-window`` example deletes an event window. :: + + aws ec2 delete-instance-event-window \ + --region us-east-1 \ + --instance-event-window-id iew-0abcdef1234567890 + +Output:: + + { + "InstanceEventWindowState": { + "InstanceEventWindowId": "iew-0abcdef1234567890", + "State": "deleting" + } + } + +For event window constraints, see `Considerations `__ in the Scheduled Events section of the *Amazon EC2 User Guide*. + +**Example 2: To force delete an event window** + +The following ``delete-instance-event-window`` example force deletes an event window if the event window is currently associated with targets. :: + + aws ec2 delete-instance-event-window \ + --region us-east-1 \ + --instance-event-window-id iew-0abcdef1234567890 \ + --force-delete + +Output:: + + { + "InstanceEventWindowState": { + "InstanceEventWindowId": "iew-0abcdef1234567890", + "State": "deleting" + } + } + +For event window constraints, see `Considerations `__ in the Scheduled Events section of the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-internet-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-internet-gateway.rst new file mode 100644 index 000000000..533427f06 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-internet-gateway.rst @@ -0,0 +1,10 @@ +**To delete an internet gateway** + +The following ``delete-internet-gateway`` example deletes the specified internet gateway. :: + + aws ec2 delete-internet-gateway \ + --internet-gateway-id igw-0d0fb496b3EXAMPLE + +This command produces no output. + +For more information, see `Internet gateways `__ in the *Amazon VPC User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-ipam-pool.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-ipam-pool.rst new file mode 100644 index 000000000..bf81fe837 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-ipam-pool.rst @@ -0,0 +1,39 @@ +**To delete an IPAM pool** + +In this example, you're a IPAM delegated admin who wants to delete an IPAM pool that you no longer need, but the pool has a CIDR provisioned to it. You cannot delete a pool if it has CIDRs provisioned to it unless you use the ``--cascade`` option, so you'll use ``--cascade``. + +To complete this request: + +* You'll need the IPAM pool ID which you can get with `describe-ipam-pools `__. +* The ``--region`` must be the IPAM home Region. + +The following ``delete-ipam-pool`` example deletes an IPAM pool in your AWS account. :: + + aws ec2 delete-ipam-pool \ + --ipam-pool-id ipam-pool-050c886a3ca41cd5b \ + --cascade \ + --region us-east-1 + +Output:: + + { + "IpamPool": { + "OwnerId": "320805250157", + "IpamPoolId": "ipam-pool-050c886a3ca41cd5b", + "IpamPoolArn": "arn:aws:ec2::320805250157:ipam-pool/ipam-pool-050c886a3ca41cd5b", + "IpamScopeArn": "arn:aws:ec2::320805250157:ipam-scope/ipam-scope-0a158dde35c51107b", + "IpamScopeType": "private", + "IpamArn": "arn:aws:ec2::320805250157:ipam/ipam-005f921c17ebd5107", + "IpamRegion": "us-east-1", + "Locale": "None", + "PoolDepth": 1, + "State": "delete-in-progress", + "Description": "example", + "AutoImport": false, + "AddressFamily": "ipv4", + "AllocationMinNetmaskLength": 0, + "AllocationMaxNetmaskLength": 32 + } + } + +For more information, see `Delete a pool `__ in the *Amazon VPC IPAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-ipam-resource-discovery.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-ipam-resource-discovery.rst new file mode 100644 index 000000000..ba7a1aa9c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-ipam-resource-discovery.rst @@ -0,0 +1,34 @@ +**To delete a resource discovery** + +In this example, you're a IPAM delegated admin who wants to delete a non-default resource discovery that you created to share with another IPAM admin during the process of integrating IPAM with accounts outside of your organization. + +To complete this request: + +* The ``--region`` must be the Region where you created the resource discovery. +* You cannot delete a default resource discovery if ``"IsDefault": true``. A default resource discovery is one that is created automatically in the account that creates an IPAM. To delete a default resource discovery, you have to delete the IPAM. + +The following ``delete-ipam-resource-discovery`` example deletes a resource discovery. :: + + aws ec2 delete-ipam-resource-discovery \ + --ipam-resource-discovery-id ipam-res-disco-0e39761475298ee0f \ + --region us-east-1 + +Output:: + + { + "IpamResourceDiscovery": { + "OwnerId": "149977607591", + "IpamResourceDiscoveryId": "ipam-res-disco-0e39761475298ee0f", + "IpamResourceDiscoveryArn": "arn:aws:ec2::149977607591:ipam-resource-discovery/ipam-res-disco-0e39761475298ee0f", + "IpamResourceDiscoveryRegion": "us-east-1", + "OperatingRegions": [ + { + "RegionName": "us-east-1" + } + ], + "IsDefault": false, + "State": "delete-in-progress" + } + } + +For more information about resource discoveries, see `Work with resource discoveries `__ in the *Amazon VPC IPAM User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-ipam-scope.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-ipam-scope.rst new file mode 100644 index 000000000..e5c1dc39f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-ipam-scope.rst @@ -0,0 +1,25 @@ +**To delete an IPAM scope** + +The following ``delete-ipam-scope`` example deletes an IPAM. :: + + aws ec2 delete-ipam-scope \ + --ipam-scope-id ipam-scope-01c1ebab2b63bd7e4 + +Output:: + + { + "IpamScope": { + "OwnerId": "123456789012", + "IpamScopeId": "ipam-scope-01c1ebab2b63bd7e4", + "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-01c1ebab2b63bd7e4", + "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-08440e7a3acde3908", + "IpamRegion": "us-east-1", + "IpamScopeType": "private", + "IsDefault": false, + "Description": "Example description", + "PoolCount": 0, + "State": "delete-in-progress" + } + } + +For more information, see `Delete a scope `__ in the *Amazon VPC IPAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-ipam.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-ipam.rst new file mode 100644 index 000000000..8ca159256 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-ipam.rst @@ -0,0 +1,34 @@ +**To delete an IPAM** + +The following ``delete-ipam`` example deletes an IPAM. :: + + aws ec2 delete-ipam \ + --ipam-id ipam-036486dfa6af58ee0 + +Output:: + + { + "Ipam": { + "OwnerId": "123456789012", + "IpamId": "ipam-036486dfa6af58ee0", + "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-036486dfa6af58ee0", + "IpamRegion": "us-east-1", + "PublicDefaultScopeId": "ipam-scope-071b8042b0195c183", + "PrivateDefaultScopeId": "ipam-scope-0807405dece705a30", + "ScopeCount": 2, + "OperatingRegions": [ + { + "RegionName": "us-east-1" + }, + { + "RegionName": "us-east-2" + }, + { + "RegionName": "us-west-1" + } + ], + "State": "delete-in-progress" + } + } + +For more information, see `Delete an IPAM `__ in the *Amazon VPC IPAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-key-pair.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-key-pair.rst new file mode 100644 index 000000000..770a74e21 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-key-pair.rst @@ -0,0 +1,15 @@ +**To delete a key pair** + +The following ``delete-key-pair`` example deletes the specified key pair. :: + + aws ec2 delete-key-pair \ + --key-name my-key-pair + +Output:: + + { + "Return": true, + "KeyPairId": "key-03c8d3aceb53b507" + } + +For more information, see `Create and delete key pairs `__ in the *AWS Command Line Interface User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-launch-template-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-launch-template-versions.rst new file mode 100644 index 000000000..7b8a653a5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-launch-template-versions.rst @@ -0,0 +1,20 @@ +**To delete a launch template version** + +This example deletes the specified launch template version. + +Command:: + + aws ec2 delete-launch-template-versions --launch-template-id lt-0abcd290751193123 --versions 1 + +Output:: + + { + "UnsuccessfullyDeletedLaunchTemplateVersions": [], + "SuccessfullyDeletedLaunchTemplateVersions": [ + { + "LaunchTemplateName": "TestVersion", + "VersionNumber": 1, + "LaunchTemplateId": "lt-0abcd290751193123" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-launch-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-launch-template.rst new file mode 100644 index 000000000..23073902a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-launch-template.rst @@ -0,0 +1,20 @@ +**To delete a launch template** + +This example deletes the specified launch template. + +Command:: + + aws ec2 delete-launch-template --launch-template-id lt-0abcd290751193123 + +Output:: + + { + "LaunchTemplate": { + "LatestVersionNumber": 2, + "LaunchTemplateId": "lt-0abcd290751193123", + "LaunchTemplateName": "TestTemplate", + "DefaultVersionNumber": 2, + "CreatedBy": "arn:aws:iam::123456789012:root", + "CreateTime": "2017-11-23T16:46:25.000Z" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-local-gateway-route-table-virtual-interface-group-association.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-local-gateway-route-table-virtual-interface-group-association.rst new file mode 100644 index 000000000..4070ae970 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-local-gateway-route-table-virtual-interface-group-association.rst @@ -0,0 +1,23 @@ +**To disassociate a local gateway route table from a virtual interfaces (VIFs) group** + +The following ``delete-local-gateway-route-table-virtual-interface-group-association`` example deletes the association between the specified local gateway route table and VIF group. :: + + aws ec2 delete-local-gateway-route-table-virtual-interface-group-association \ + --local-gateway-route-table-virtual-interface-group-association-id lgw-vif-grp-assoc-exampleid12345678 + +Output:: + + { + "LocalGatewayRouteTableVirtualInterfaceGroupAssociation": { + "LocalGatewayRouteTableVirtualInterfaceGroupAssociationId": "lgw-vif-grp-assoc-exampleid12345678", + "LocalGatewayVirtualInterfaceGroupId": "lgw-vif-grp-exampleid0123abcd", + "LocalGatewayId": "lgw-exampleid11223344", + "LocalGatewayRouteTableId": "lgw-rtb-exampleidabcd1234", + "LocalGatewayRouteTableArn": "arn:aws:ec2:us-west-2:111122223333:local-gateway-route-table/lgw-rtb-exampleidabcd1234", + "OwnerId": "111122223333", + "State": "disassociating", + "Tags": [] + } + } + +For more information, see `VIF group associations `__ in the *AWS Outposts User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-local-gateway-route-table-vpc-association.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-local-gateway-route-table-vpc-association.rst new file mode 100644 index 000000000..2b01e2b9c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-local-gateway-route-table-vpc-association.rst @@ -0,0 +1,22 @@ +**To disassociate a local gateway route table from a VPC** + +The following ``delete-local-gateway-route-table-vpc-association`` example deletes the association between the specified local gateway route table and VPC. :: + + aws ec2 delete-local-gateway-route-table-vpc-association \ + --local-gateway-route-table-vpc-association-id vpc-example0123456789 + +Output:: + + { + "LocalGatewayRouteTableVpcAssociation": { + "LocalGatewayRouteTableVpcAssociationId": "lgw-vpc-assoc-abcd1234wxyz56789", + "LocalGatewayRouteTableId": "lgw-rtb-abcdefg1234567890", + "LocalGatewayRouteTableArn": "arn:aws:ec2:us-west-2:555555555555:local-gateway-route-table/lgw-rtb-abcdefg1234567890", + "LocalGatewayId": "lgw-exampleid01234567", + "VpcId": "vpc-example0123456789", + "OwnerId": "555555555555", + "State": "disassociating" + } + } + +For more information, see `VPC associations `__ in the *AWS Outposts User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-local-gateway-route-table.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-local-gateway-route-table.rst new file mode 100644 index 000000000..96cbe94a9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-local-gateway-route-table.rst @@ -0,0 +1,23 @@ +**To delete a local gateway route table** + +The following ``delete-local-gateway-route-table`` example creates a local gateway route table with the direct VPC routing mode. :: + + aws ec2 delete-local-gateway-route-table \ + --local-gateway-route-table-id lgw-rtb-abcdefg1234567890 + +Output:: + + { + "LocalGatewayRouteTable": { + "LocalGatewayRouteTableId": "lgw-rtb-abcdefg1234567890", + "LocalGatewayRouteTableArn": "arn:aws:ec2:us-west-2:111122223333:local-gateway-route-table/lgw-rtb-abcdefg1234567890", + "LocalGatewayId": "lgw-1a2b3c4d5e6f7g8h9", + "OutpostArn": "arn:aws:outposts:us-west-2:111122223333:outpost/op-021345abcdef67890", + "OwnerId": "111122223333", + "State": "deleting", + "Tags": [], + "Mode": "direct-vpc-routing" + } + } + +For more information, see `Local gateway route tables `__ in the *AWS Outposts User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-local-gateway-route.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-local-gateway-route.rst new file mode 100755 index 000000000..88763b995 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-local-gateway-route.rst @@ -0,0 +1,19 @@ +**To delete a route from a local gateway route table** + +The following ``delete-local-gateway-route`` example deletes the specified route from the specified local gateway route table. :: + + aws ec2 delete-local-gateway-route \ + --destination-cidr-block 0.0.0.0/0 \ + --local-gateway-route-table-id lgw-rtb-059615ef7dEXAMPLE + +Output:: + + { + "Route": { + "DestinationCidrBlock": "0.0.0.0/0", + "LocalGatewayVirtualInterfaceGroupId": "lgw-vif-grp-07145b276bEXAMPLE", + "Type": "static", + "State": "deleted", + "LocalGatewayRouteTableId": "lgw-rtb-059615ef7EXAMPLE" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-managed-prefix-list.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-managed-prefix-list.rst new file mode 100644 index 000000000..29f4ebe24 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-managed-prefix-list.rst @@ -0,0 +1,23 @@ +**To delete a prefix list** + +The following ``delete-managed-prefix-list`` example deletes the specified prefix list. :: + + aws ec2 delete-managed-prefix-list \ + --prefix-list-id pl-0123456abcabcabc1 + +Output:: + + { + "PrefixList": { + "PrefixListId": "pl-0123456abcabcabc1", + "AddressFamily": "IPv4", + "State": "delete-in-progress", + "PrefixListArn": "arn:aws:ec2:us-west-2:123456789012:prefix-list/pl-0123456abcabcabc1", + "PrefixListName": "test", + "MaxEntries": 10, + "Version": 1, + "OwnerId": "123456789012" + } + } + +For more information, see `Managed prefix lists `__ in the *Amazon VPC User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-nat-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-nat-gateway.rst new file mode 100644 index 000000000..8c6a6bf95 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-nat-gateway.rst @@ -0,0 +1,13 @@ +**To delete a NAT gateway** + +This example deletes NAT gateway ``nat-04ae55e711cec5680``. + +Command:: + + aws ec2 delete-nat-gateway --nat-gateway-id nat-04ae55e711cec5680 + +Output:: + + { + "NatGatewayId": "nat-04ae55e711cec5680" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-acl-entry.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-acl-entry.rst new file mode 100644 index 000000000..eb725f350 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-acl-entry.rst @@ -0,0 +1,7 @@ +**To delete a network ACL entry** + +This example deletes ingress rule number 100 from the specified network ACL. If the command succeeds, no output is returned. + +Command:: + + aws ec2 delete-network-acl-entry --network-acl-id acl-5fb85d36 --ingress --rule-number 100 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-acl.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-acl.rst new file mode 100644 index 000000000..344b45bdf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-acl.rst @@ -0,0 +1,7 @@ +**To delete a network ACL** + +This example deletes the specified network ACL. If the command succeeds, no output is returned. + +Command:: + + aws ec2 delete-network-acl --network-acl-id acl-5fb85d36 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-insights-access-scope-analysis.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-insights-access-scope-analysis.rst new file mode 100644 index 000000000..26a4a1d11 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-insights-access-scope-analysis.rst @@ -0,0 +1,14 @@ +**To delete a Network Access Scope analysis** + +The following ``delete-network-insights-access-scope-analysis`` example deletes the specified Network Access Scope analysis. :: + + aws ec2 delete-network-insights-access-scope-analysis \ + --network-insights-access-scope-analysis-id nisa-01234567891abcdef + +Output:: + + { + "NetworkInsightsAccessScopeAnalysisId": "nisa-01234567891abcdef + } + +For more information, see `Getting started with Network Access Analyzer using the AWS CLI `__ in the *Network Access Analyzer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-insights-access-scope.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-insights-access-scope.rst new file mode 100644 index 000000000..2b82c0b43 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-insights-access-scope.rst @@ -0,0 +1,14 @@ +**To delete a Network Access Scope** + +The following ``delete-network-insights-access-scope`` example deletes the specified Network Access Scope. :: + + aws ec2 delete-network-insights-access-scope \ + --network-insights-access-scope-id nis-123456789abc01234 + +Output:: + + { + "NetworkInsightsAccessScopeId": "nis-123456789abc01234" + } + +For more information, see `Getting started with Network Access Analyzer using the AWS CLI `__ in the *Network Access Analyzer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-insights-analysis.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-insights-analysis.rst new file mode 100644 index 000000000..968210be2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-insights-analysis.rst @@ -0,0 +1,15 @@ +**To delete a path analysis** + +The following ``delete-network-insights-analysis`` example deletes the specified analysis. :: + + aws ec2 delete-network-insights-analysis \ + --network-insights-analysis-id nia-02207aa13eb480c7a + +Output:: + + { + "NetworkInsightsAnalysisId": "nia-02207aa13eb480c7a" + } + +For more information, see `Getting started using the AWS CLI `__ in the *Reachability Analyzer Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-insights-path.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-insights-path.rst new file mode 100644 index 000000000..cfde48157 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-insights-path.rst @@ -0,0 +1,14 @@ +**To delete a path** + +The following ``delete-network-insights-path`` example deletes the specified path. Before you can delete a path, you must delete all its analyses using the ``delete-network-insights-analysis`` command. :: + + aws ec2 delete-network-insights-path \ + --network-insights-path-id nip-0b26f224f1d131fa8 + +Output:: + + { + "NetworkInsightsPathId": "nip-0b26f224f1d131fa8" + } + +For more information, see `Getting started using the AWS CLI `__ in the *Reachability Analyzer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-interface-permission.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-interface-permission.rst new file mode 100644 index 000000000..31b9b6ce2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-interface-permission.rst @@ -0,0 +1,13 @@ +**To delete a network interface permission** + +This example deletes the specified network interface permission. + +Command:: + + aws ec2 delete-network-interface-permission --network-interface-permission-id eni-perm-06fd19020ede149ea + +Output:: + + { + "Return": true + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-interface.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-interface.rst new file mode 100644 index 000000000..4bb126c73 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-network-interface.rst @@ -0,0 +1,7 @@ +**To delete a network interface** + +This example deletes the specified network interface. If the command succeeds, no output is returned. + +Command:: + + aws ec2 delete-network-interface --network-interface-id eni-e5aa89a3 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-placement-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-placement-group.rst new file mode 100644 index 000000000..d09426923 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-placement-group.rst @@ -0,0 +1,7 @@ +**To delete a placement group** + +This example command deletes the specified placement group. + +Command:: + + aws ec2 delete-placement-group --group-name my-cluster diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-queued-reserved-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-queued-reserved-instances.rst new file mode 100755 index 000000000..cd2895680 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-queued-reserved-instances.rst @@ -0,0 +1,17 @@ +**To delete a queued purchase** + +The following ``delete-queued-reserved-instances`` example deletes the specified Reserved Instance, which was queued for purchase. :: + + aws ec2 delete-queued-reserved-instances \ + --reserved-instances-ids af9f760e-6f91-4559-85f7-4980eexample + +Output:: + + { + "SuccessfulQueuedPurchaseDeletions": [ + { + "ReservedInstancesId": "af9f760e-6f91-4559-85f7-4980eexample" + } + ], + "FailedQueuedPurchaseDeletions": [] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-route-table.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-route-table.rst new file mode 100644 index 000000000..a1b3923b3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-route-table.rst @@ -0,0 +1,7 @@ +**To delete a route table** + +This example deletes the specified route table. If the command succeeds, no output is returned. + +Command:: + + aws ec2 delete-route-table --route-table-id rtb-22574640 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-route.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-route.rst new file mode 100644 index 000000000..fbedd4995 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-route.rst @@ -0,0 +1,7 @@ +**To delete a route** + +This example deletes the specified route from the specified route table. If the command succeeds, no output is returned. + +Command:: + + aws ec2 delete-route --route-table-id rtb-22574640 --destination-cidr-block 0.0.0.0/0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-security-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-security-group.rst new file mode 100644 index 000000000..1e2480d10 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-security-group.rst @@ -0,0 +1,19 @@ +**[EC2-Classic] To delete a security group** + +This example deletes the security group named ``MySecurityGroup``. If the command succeeds, no output is returned. + +Command:: + + aws ec2 delete-security-group --group-name MySecurityGroup + +**[EC2-VPC] To delete a security group** + +This example deletes the security group with the ID ``sg-903004f8``. Note that you can't reference a security group for EC2-VPC by name. If the command succeeds, no output is returned. + +Command:: + + aws ec2 delete-security-group --group-id sg-903004f8 + +For more information, see `Using Security Groups`_ in the *AWS Command Line Interface User Guide*. + +.. _`Using Security Groups`: http://docs.aws.amazon.com/cli/latest/userguide/cli-ec2-sg.html diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-snapshot.rst new file mode 100644 index 000000000..19db7a0fe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-snapshot.rst @@ -0,0 +1,7 @@ +**To delete a snapshot** + +This example command deletes a snapshot with the snapshot ID of ``snap-1234567890abcdef0``. If the command succeeds, no output is returned. + +Command:: + + aws ec2 delete-snapshot --snapshot-id snap-1234567890abcdef0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-spot-datafeed-subscription.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-spot-datafeed-subscription.rst new file mode 100644 index 000000000..62cad5737 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-spot-datafeed-subscription.rst @@ -0,0 +1,7 @@ +**To cancel a Spot Instance data feed subscription** + +This example command deletes a Spot data feed subscription for the account. If the command succeeds, no output is returned. + +Command:: + + aws ec2 delete-spot-datafeed-subscription diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-subnet-cidr-reservation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-subnet-cidr-reservation.rst new file mode 100644 index 000000000..e42e45814 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-subnet-cidr-reservation.rst @@ -0,0 +1,20 @@ +**To delete a subnet CIDR reservation** + +The following ``delete-subnet-cidr-reservation`` example deletes the specified subnet CIDR reservation. :: + + aws ec2 delete-subnet-cidr-reservation \ + --subnet-cidr-reservation-id scr-044f977c4eEXAMPLE + +Output:: + + { + "DeletedSubnetCidrReservation": { + "SubnetCidrReservationId": "scr-044f977c4eEXAMPLE", + "SubnetId": "subnet-03c51e2e6cEXAMPLE", + "Cidr": "10.1.0.16/28", + "ReservationType": "prefix", + "OwnerId": "123456789012" + } + } + +For more information, see `Subnet CIDR reservations `__ in the *Amazon VPC User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-subnet.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-subnet.rst new file mode 100644 index 000000000..ba2c1b1f8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-subnet.rst @@ -0,0 +1,7 @@ +**To delete a subnet** + +This example deletes the specified subnet. If the command succeeds, no output is returned. + +Command:: + + aws ec2 delete-subnet --subnet-id subnet-9d4a7b6c diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-tags.rst new file mode 100755 index 000000000..66c7e8d49 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-tags.rst @@ -0,0 +1,27 @@ +**Example 1: To delete a tag from a resource** + +The following ``delete-tags`` example deletes the tag ``Stack=Test`` from the specified image. When you specify both a value and a key name, the tag is deleted only if the tag's value matches the specified value. :: + + aws ec2 delete-tags \ + --resources ami-1234567890abcdef0 \ + --tags Key=Stack,Value=Test + +It's optional to specify the value for a tag. The following ``delete-tags`` example deletes the tag with the key name ``purpose`` from the specified instance, regardless of the tag value for the tag. :: + + aws ec2 delete-tags \ + --resources i-1234567890abcdef0 \ + --tags Key=purpose + +If you specify the empty string as the tag value, the tag is deleted only if the tag's value is the empty string. The following ``delete-tags`` example specifies the empty string as the tag value for the tag to delete. :: + + aws ec2 delete-tags \ + --resources i-1234567890abcdef0 \ + --tags Key=Name,Value= + +**Example 2: To delete a tag from multiple resources** + +The following ``delete-tags`` example deletes the tag``Purpose=Test`` from both an instance and an AMI. As shown in the previous example, you can omit the tag value from the command. :: + + aws ec2 delete-tags \ + --resources i-1234567890abcdef0 ami-1234567890abcdef0 \ + --tags Key=Purpose diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-traffic-mirror-filter-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-traffic-mirror-filter-rule.rst new file mode 100644 index 000000000..0c6772519 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-traffic-mirror-filter-rule.rst @@ -0,0 +1,14 @@ +**To delete a traffic mirror filter rule** + +The following ``delete-traffic-mirror-filter-rule`` example deletes the specified traffic mirror filter rule. :: + + aws ec2 delete-traffic-mirror-filter-rule \ + --traffic-mirror-filter-rule-id tmfr-081f71283bEXAMPLE + +Output:: + + { + "TrafficMirrorFilterRuleId": "tmfr-081f71283bEXAMPLE" + } + +For more information, see `Modify Your Traffic Mirror Filter Rules `__ in the *AWS Traffic Mirroring Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-traffic-mirror-filter.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-traffic-mirror-filter.rst new file mode 100644 index 000000000..329bf8fd2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-traffic-mirror-filter.rst @@ -0,0 +1,14 @@ +**To delete a traffic mirror filter** + +The following ``delete-traffic-mirror-filter`` example deletes the specified traffic mirror filter. :: + + aws ec2 delete-traffic-mirror-filter \ + --traffic-mirror-filter-id tmf-0be0b25fcdEXAMPLE + +Output:: + + { + "TrafficMirrorFilterId": "tmf-0be0b25fcdEXAMPLE" + } + +For more information, see `Delete a Traffic Mirror Filter `__ in the *AWS Traffic Mirroring Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-traffic-mirror-session.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-traffic-mirror-session.rst new file mode 100644 index 000000000..0e84ebc53 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-traffic-mirror-session.rst @@ -0,0 +1,14 @@ +**To delete a traffic mirror session** + +The following ``delete-traffic-mirror-session`` example deletes the specified traffic mirror-session. :: + + aws ec2 delete-traffic-mirror-session \ + --traffic-mirror-session-id tms-0af3141ce5EXAMPLE + +Output:: + + { + "TrafficMirrorSessionId": "tms-0af3141ce5EXAMPLE" + } + +For more information, see `Delete a Traffic Mirror Session `__ in the *AWS Traffic Mirroring Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-traffic-mirror-target.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-traffic-mirror-target.rst new file mode 100644 index 000000000..ee26ae3e0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-traffic-mirror-target.rst @@ -0,0 +1,14 @@ +**To delete a traffic mirror target** + +The following ``delete-traffic-mirror-target`` example deletes the specified traffic mirror target. :: + + aws ec2 delete-traffic-mirror-target \ + --traffic-mirror-target-id tmt-060f48ce9EXAMPLE + +Output:: + + { + "TrafficMirrorTargetId": "tmt-060f48ce9EXAMPLE" + } + +For more information, see `Delete a Traffic Mirror Target `__ in the *AWS Traffic Mirroring Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-connect-peer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-connect-peer.rst new file mode 100644 index 000000000..7ce191153 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-connect-peer.rst @@ -0,0 +1,43 @@ +**To delete a Transit Gateway Connect peer** + +The following ``delete-transit-gateway-connect-peer`` example deletes the specified Connect peer. :: + + aws ec2 delete-transit-gateway-connect-peer \ + --transit-gateway-connect-peer-id tgw-connect-peer-0666adbac4EXAMPLE + +Output:: + + { + "TransitGatewayConnectPeer": { + "TransitGatewayAttachmentId": "tgw-attach-0f0927767cEXAMPLE", + "TransitGatewayConnectPeerId": "tgw-connect-peer-0666adbac4EXAMPLE", + "State": "deleting", + "CreationTime": "2021-10-13T03:35:17.000Z", + "ConnectPeerConfiguration": { + "TransitGatewayAddress": "10.0.0.234", + "PeerAddress": "172.31.1.11", + "InsideCidrBlocks": [ + "169.254.6.0/29" + ], + "Protocol": "gre", + "BgpConfigurations": [ + { + "TransitGatewayAsn": 64512, + "PeerAsn": 64512, + "TransitGatewayAddress": "169.254.6.2", + "PeerAddress": "169.254.6.1", + "BgpStatus": "down" + }, + { + "TransitGatewayAsn": 64512, + "PeerAsn": 64512, + "TransitGatewayAddress": "169.254.6.3", + "PeerAddress": "169.254.6.1", + "BgpStatus": "down" + } + ] + } + } + } + +For more information, see `Transit gateway Connect attachments and Transit Gateway Connect peers `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-connect.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-connect.rst new file mode 100644 index 000000000..beadd5f54 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-connect.rst @@ -0,0 +1,23 @@ +**To delete a transit gateway Connect attachment** + +The following ``delete-transit-gateway-connect`` example deletes the specified Connect attachment. :: + + aws ec2 delete-transit-gateway-connect \ + --transit-gateway-attachment-id tgw-attach-037012e5dcEXAMPLE + +Output:: + + { + "TransitGatewayConnect": { + "TransitGatewayAttachmentId": "tgw-attach-037012e5dcEXAMPLE", + "TransportTransitGatewayAttachmentId": "tgw-attach-0a89069f57EXAMPLE", + "TransitGatewayId": "tgw-02f776b1a7EXAMPLE", + "State": "deleting", + "CreationTime": "2021-03-09T19:59:17+00:00", + "Options": { + "Protocol": "gre" + } + } + } + +For more information, see `Transit gateway Connect attachments and Transit Gateway Connect peers `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-multicast-domain.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-multicast-domain.rst new file mode 100755 index 000000000..d22f44493 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-multicast-domain.rst @@ -0,0 +1,19 @@ +**To delete a transit gateway multicast domain** + +The following ``delete-transit-gateway-multicast-domain`` example deletes the specified multicast domain. :: + + aws ec2 delete-transit-gateway-multicast-domain \ + --transit-gateway-multicast-domain-id tgw-mcast-domain-0c4905cef7EXAMPLE + +Output:: + + { + "TransitGatewayMulticastDomain": { + "TransitGatewayMulticastDomainId": "tgw-mcast-domain-02bb79002bEXAMPLE", + "TransitGatewayId": "tgw-0d88d2d0d5EXAMPLE", + "State": "deleting", + "CreationTime": "2019-11-20T22:02:03.000Z" + } + } + +For more information, see `Managing multicast domains `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-peering-attachment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-peering-attachment.rst new file mode 100644 index 000000000..42733ba74 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-peering-attachment.rst @@ -0,0 +1,28 @@ +**To delete a transit gateway peering attachment** + +The following ``delete-transit-gateway-peering-attachment`` example deletes the specified transit gateway peering attachment. :: + + aws ec2 delete-transit-gateway-peering-attachment \ + --transit-gateway-attachment-id tgw-attach-4455667788aabbccd + +Output:: + + { + "TransitGatewayPeeringAttachment": { + "TransitGatewayAttachmentId": "tgw-attach-4455667788aabbccd", + "RequesterTgwInfo": { + "TransitGatewayId": "tgw-123abc05e04123abc", + "OwnerId": "123456789012", + "Region": "us-west-2" + }, + "AccepterTgwInfo": { + "TransitGatewayId": "tgw-11223344aabbcc112", + "OwnerId": "123456789012", + "Region": "us-east-2" + }, + "State": "deleting", + "CreationTime": "2019-12-09T11:38:31.000Z" + } + } + +For more information, see `Transit Gateway Peering Attachments `__ in the *Transit Gateways Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-policy-table.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-policy-table.rst new file mode 100644 index 000000000..f609140b3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-policy-table.rst @@ -0,0 +1,22 @@ +**To delete a transit gateway policy table** + +The following ``delete-transit-gateway-policy-table`` example deletes the specified transit gateway policy table. :: + + aws ec2 delete-transit-gateway-policy-table \ + --transit-gateway-policy-table-id tgw-ptb-0a16f134b78668a81 + +Output:: + + { + "TransitGatewayPolicyTables": [ + { + "TransitGatewayPolicyTableId": "tgw-ptb-0a16f134b78668a81", + "TransitGatewayId": "tgw-067f8505c18f0bd6e", + "State": "deleting", + "CreationTime": "2023-11-28T16:36:43+00:00", + "Tags": [] + } + ] + } + +For more information, see `Transit gateway policy tables `__ in the *Transit Gateway User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-prefix-list-reference.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-prefix-list-reference.rst new file mode 100644 index 000000000..d0725f1f1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-prefix-list-reference.rst @@ -0,0 +1,26 @@ +**To delete a prefix list reference** + +The following ``delete-transit-gateway-prefix-list-reference`` example deletes the specified prefix list reference. :: + + aws ec2 delete-transit-gateway-prefix-list-reference \ + --transit-gateway-route-table-id tgw-rtb-0123456789abcd123 \ + --prefix-list-id pl-11111122222222333 + +Output:: + + { + "TransitGatewayPrefixListReference": { + "TransitGatewayRouteTableId": "tgw-rtb-0123456789abcd123", + "PrefixListId": "pl-11111122222222333", + "PrefixListOwnerId": "123456789012", + "State": "deleting", + "Blackhole": false, + "TransitGatewayAttachment": { + "TransitGatewayAttachmentId": "tgw-attach-aabbccddaabbccaab", + "ResourceType": "vpc", + "ResourceId": "vpc-112233445566aabbc" + } + } + } + +For more information, see `Prefix list references `__ in the *Transit Gateways Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-route-table.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-route-table.rst new file mode 100755 index 000000000..93cfe12cc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-route-table.rst @@ -0,0 +1,21 @@ +**To delete a transit gateway route table** + +The following ``delete-transit-gateway-route-table`` example deletes the specified transit gateway route table. :: + + aws ec2 delete-transit-gateway-route-table \ + --transit-gateway-route-table-id tgw-rtb-0b6f6aaa01EXAMPLE + +Output:: + + { + "TransitGatewayRouteTable": { + "TransitGatewayRouteTableId": "tgw-rtb-0b6f6aaa01EXAMPLE", + "TransitGatewayId": "tgw-02f776b1a7EXAMPLE", + "State": "deleting", + "DefaultAssociationRouteTable": false, + "DefaultPropagationRouteTable": false, + "CreationTime": "2019-07-17T20:27:26.000Z" + } + } + +For more information, see `Delete a transit gateway route table `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-route.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-route.rst new file mode 100755 index 000000000..3b89410b9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-route.rst @@ -0,0 +1,26 @@ +**To delete a CIDR block from a route table** + +The following ``delete-transit-gateway-route`` example deletes the CIDR block from the specified transit gateway route table. :: + + aws ec2 delete-transit-gateway-route \ + --transit-gateway-route-table-id tgw-rtb-0b6f6aaa01EXAMPLE \ + --destination-cidr-block 10.0.2.0/24 + +Output:: + + { + "Route": { + "DestinationCidrBlock": "10.0.2.0/24", + "TransitGatewayAttachments": [ + { + "ResourceId": "vpc-0065acced4EXAMPLE", + "TransitGatewayAttachmentId": "tgw-attach-0b5968d3b6EXAMPLE", + "ResourceType": "vpc" + } + ], + "Type": "static", + "State": "deleted" + } + } + +For more information, see `Delete a static route `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-vpc-attachment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-vpc-attachment.rst new file mode 100644 index 000000000..10f630724 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway-vpc-attachment.rst @@ -0,0 +1,21 @@ +**To delete a transit gateway VPC attachment** + +The following ``delete-transit-gateway-vpc-attachment`` example deletes the specified VPC attachment. :: + + aws ec2 delete-transit-gateway-vpc-attachment \ + --transit-gateway-attachment-id tgw-attach-0d2c54bdbEXAMPLE + +Output:: + + { + "TransitGatewayVpcAttachment": { + "TransitGatewayAttachmentId": "tgw-attach-0d2c54bdb3EXAMPLE", + "TransitGatewayId": "tgw-02f776b1a7EXAMPLE", + "VpcId": "vpc-0065acced4f61c651", + "VpcOwnerId": "111122223333", + "State": "deleting", + "CreationTime": "2019-07-17T16:04:27.000Z" + } + } + +For more information, see `Delete a VPC attachment `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway.rst new file mode 100755 index 000000000..bd787dcf6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-transit-gateway.rst @@ -0,0 +1,30 @@ +**To delete a transit gateway** + +The following ``delete-transit-gateway`` example deletes the specified transit gateway. :: + + aws ec2 delete-transit-gateway \ + --transit-gateway-id tgw-01f04542b2EXAMPLE + +Output:: + + { + "TransitGateway": { + "TransitGatewayId": "tgw-01f04542b2EXAMPLE", + "State": "deleting", + "OwnerId": "123456789012", + "Description": "Example Transit Gateway", + "CreationTime": "2019-08-27T15:04:35.000Z", + "Options": { + "AmazonSideAsn": 64515, + "AutoAcceptSharedAttachments": "disable", + "DefaultRouteTableAssociation": "enable", + "AssociationDefaultRouteTableId": "tgw-rtb-0ce7a6948fEXAMPLE", + "DefaultRouteTablePropagation": "enable", + "PropagationDefaultRouteTableId": "tgw-rtb-0ce7a6948fEXAMPLE", + "VpnEcmpSupport": "enable", + "DnsSupport": "enable" + } + } + } + +For more information, see `Delete a transit gateway `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-verified-access-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-verified-access-endpoint.rst new file mode 100644 index 000000000..958fbe118 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-verified-access-endpoint.rst @@ -0,0 +1,37 @@ +**To delete a Verified Access endpoint** + +The following ``delete-verified-access-endpoint`` example deletes the specified Verified Access endpoint. :: + + aws ec2 delete-verified-access-endpoint \ + --verified-access-endpoint-id vae-066fac616d4d546f2 + +Output:: + + { + "VerifiedAccessEndpoint": { + "VerifiedAccessInstanceId": "vai-0ce000c0b7643abea", + "VerifiedAccessGroupId": "vagr-0dbe967baf14b7235", + "VerifiedAccessEndpointId": "vae-066fac616d4d546f2", + "ApplicationDomain": "example.com", + "EndpointType": "network-interface", + "AttachmentType": "vpc", + "DomainCertificateArn": "arn:aws:acm:us-east-2:123456789012:certificate/eb065ea0-26f9-4e75-a6ce-0a1a7EXAMPLE", + "EndpointDomain": "my-ava-app.edge-00c3372d53b1540bb.vai-0ce000c0b7643abea.prod.verified-access.us-east-2.amazonaws.com", + "SecurityGroupIds": [ + "sg-004915970c4c8f13a" + ], + "NetworkInterfaceOptions": { + "NetworkInterfaceId": "eni-0aec70418c8d87a0f", + "Protocol": "https", + "Port": 443 + }, + "Status": { + "Code": "deleting" + }, + "Description": "Testing Verified Access", + "CreationTime": "2023-08-25T20:54:43", + "LastUpdatedTime": "2023-08-25T22:46:32" + } + } + +For more information, see `Verified Access endpoints `__ in the *AWS Verified Access User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-verified-access-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-verified-access-group.rst new file mode 100644 index 000000000..b22b9d5c8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-verified-access-group.rst @@ -0,0 +1,23 @@ +**To delete a Verified Access group** + +The following ``delete-verified-access-group`` example deletes the specified Verified Access group. :: + + aws ec2 delete-verified-access-group \ + --verified-access-group-id vagr-0dbe967baf14b7235 + +Output:: + + { + "VerifiedAccessGroup": { + "VerifiedAccessGroupId": "vagr-0dbe967baf14b7235", + "VerifiedAccessInstanceId": "vai-0ce000c0b7643abea", + "Description": "Testing Verified Access", + "Owner": "123456789012", + "VerifiedAccessGroupArn": "arn:aws:ec2:us-east-2:123456789012:verified-access-group/vagr-0dbe967baf14b7235", + "CreationTime": "2023-08-25T19:55:19", + "LastUpdatedTime": "2023-08-25T22:49:03", + "DeletionTime": "2023-08-26T00:58:31" + } + } + +For more information, see `Verified Access groups `__ in the *AWS Verified Access User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-verified-access-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-verified-access-instance.rst new file mode 100644 index 000000000..9fc02cd8f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-verified-access-instance.rst @@ -0,0 +1,20 @@ +**To delete a Verified Access instance** + +The following ``delete-verified-access-instance`` example deletes the specified Verified Access instance. :: + + aws ec2 delete-verified-access-instance \ + --verified-access-instance-id vai-0ce000c0b7643abea + +Output:: + + { + "VerifiedAccessInstance": { + "VerifiedAccessInstanceId": "vai-0ce000c0b7643abea", + "Description": "Testing Verified Access", + "VerifiedAccessTrustProviders": [], + "CreationTime": "2023-08-25T18:27:56", + "LastUpdatedTime": "2023-08-26T01:00:18" + } + } + +For more information, see `Verified Access instances `__ in the *AWS Verified Access User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-verified-access-trust-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-verified-access-trust-provider.rst new file mode 100644 index 000000000..5831f90a4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-verified-access-trust-provider.rst @@ -0,0 +1,22 @@ +**To delete a Verified Access trust provider** + +The following ``delete-verified-access-trust-provider`` example deletes the specified Verified Access trust provider. :: + + aws ec2 delete-verified-access-trust-provider \ + --verified-access-trust-provider-id vatp-0bb32de759a3e19e7 + +Output:: + + { + "VerifiedAccessTrustProvider": { + "VerifiedAccessTrustProviderId": "vatp-0bb32de759a3e19e7", + "Description": "Testing Verified Access", + "TrustProviderType": "user", + "UserTrustProviderType": "iam-identity-center", + "PolicyReferenceName": "idc", + "CreationTime": "2023-08-25T18:40:36", + "LastUpdatedTime": "2023-08-25T18:40:36" + } + } + +For more information, see `Trust providers for Verified Access `__ in the *AWS Verified Access User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-volume.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-volume.rst new file mode 100644 index 000000000..117440130 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-volume.rst @@ -0,0 +1,7 @@ +**To delete a volume** + +This example command deletes an available volume with the volume ID of ``vol-049df61146c4d7901``. If the command succeeds, no output is returned. + +Command:: + + aws ec2 delete-volume --volume-id vol-049df61146c4d7901 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpc-endpoint-connection-notifications.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpc-endpoint-connection-notifications.rst new file mode 100644 index 000000000..8a703134c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpc-endpoint-connection-notifications.rst @@ -0,0 +1,13 @@ +**To delete an endpoint connection notification** + +This example deletes the specified endpoint connection notification. + +Command:: + + aws ec2 delete-vpc-endpoint-connection-notifications --connection-notification-ids vpce-nfn-008776de7e03f5abc + +Output:: + + { + "Unsuccessful": [] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpc-endpoint-service-configurations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpc-endpoint-service-configurations.rst new file mode 100644 index 000000000..32210c7ba --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpc-endpoint-service-configurations.rst @@ -0,0 +1,13 @@ +**To delete an endpoint service configuration** + +This example deletes the specified endpoint service configuration. + +Command:: + + aws ec2 delete-vpc-endpoint-service-configurations --service-ids vpce-svc-03d5ebb7d9579a2b3 + +Output:: + + { + "Unsuccessful": [] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpc-endpoints.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpc-endpoints.rst new file mode 100644 index 000000000..0f1bf6eb4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpc-endpoints.rst @@ -0,0 +1,13 @@ +**To delete an endpoint** + +This example deletes endpoints vpce-aa22bb33 and vpce-1a2b3c4d. If the command is partially successful or unsuccessful, a list of unsuccessful items is returned. If the command succeeds, the returned list is empty. + +Command:: + + aws ec2 delete-vpc-endpoints --vpc-endpoint-ids vpce-aa22bb33 vpce-1a2b3c4d + +Output:: + + { + "Unsuccessful": [] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpc-peering-connection.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpc-peering-connection.rst new file mode 100644 index 000000000..e8d3b4acc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpc-peering-connection.rst @@ -0,0 +1,13 @@ +**To delete a VPC peering connection** + +This example deletes the specified VPC peering connection. + +Command:: + + aws ec2 delete-vpc-peering-connection --vpc-peering-connection-id pcx-1a2b3c4d + +Output:: + + { + "Return": true + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpc.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpc.rst new file mode 100644 index 000000000..ecac7f9d9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpc.rst @@ -0,0 +1,7 @@ +**To delete a VPC** + +This example deletes the specified VPC. If the command succeeds, no output is returned. + +Command:: + + aws ec2 delete-vpc --vpc-id vpc-a01106c2 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpn-connection-route.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpn-connection-route.rst new file mode 100644 index 000000000..7e352b1ba --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpn-connection-route.rst @@ -0,0 +1,7 @@ +**To delete a static route from a VPN connection** + +This example deletes the specified static route from the specified VPN connection. If the command succeeds, no output is returned. + +Command:: + + aws ec2 delete-vpn-connection-route --vpn-connection-id vpn-40f41529 --destination-cidr-block 11.12.0.0/16 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpn-connection.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpn-connection.rst new file mode 100644 index 000000000..9e197c69b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpn-connection.rst @@ -0,0 +1,7 @@ +**To delete a VPN connection** + +This example deletes the specified VPN connection. If the command succeeds, no output is returned. + +Command:: + + aws ec2 delete-vpn-connection --vpn-connection-id vpn-40f41529 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpn-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpn-gateway.rst new file mode 100644 index 000000000..0e3d2a6f4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/delete-vpn-gateway.rst @@ -0,0 +1,7 @@ +**To delete a virtual private gateway** + +This example deletes the specified virtual private gateway. If the command succeeds, no output is returned. + +Command:: + + aws ec2 delete-vpn-gateway --vpn-gateway-id vgw-9a4cacf3 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/deprovision-byoip-cidr.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/deprovision-byoip-cidr.rst new file mode 100644 index 000000000..424148da7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/deprovision-byoip-cidr.rst @@ -0,0 +1,15 @@ +**To remove an IP address range from use** + +The following example removes the specified address range from use with AWS. :: + + aws ec2 deprovision-byoip-cidr \ + --cidr 203.0.113.25/24 + +Output:: + + { + "ByoipCidr": { + "Cidr": "203.0.113.25/24", + "State": "pending-deprovision" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/deprovision-ipam-pool-cidr.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/deprovision-ipam-pool-cidr.rst new file mode 100644 index 000000000..ddbd8b91c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/deprovision-ipam-pool-cidr.rst @@ -0,0 +1,26 @@ +**To deprovision an IPAM pool CIDR** + +The following ``deprovision-ipam-pool-cidr`` example deprovisions a CIDR provisioned to an IPAM pool. + +(Linux):: + + aws ec2 deprovision-ipam-pool-cidr \ + --ipam-pool-id ipam-pool-02ec043a19bbe5d08 \ + --cidr 11.0.0.0/16 + +(Windows):: + + aws ec2 deprovision-ipam-pool-cidr ^ + --ipam-pool-id ipam-pool-02ec043a19bbe5d08 ^ + --cidr 11.0.0.0/16 + +Output:: + + { + "IpamPoolCidr": { + "Cidr": "11.0.0.0/16", + "State": "pending-deprovision" + } + } + +For more information, see `Deprovision pool CIDRs `__ in the *Amazon VPC IPAM User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/deregister-image.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/deregister-image.rst new file mode 100644 index 000000000..0c6140736 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/deregister-image.rst @@ -0,0 +1,7 @@ +**To deregister an AMI** + +This example deregisters the specified AMI. If the command succeeds, no output is returned. + +Command:: + + aws ec2 deregister-image --image-id ami-4fa54026 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/deregister-instance-event-notification-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/deregister-instance-event-notification-attributes.rst new file mode 100644 index 000000000..c605b1166 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/deregister-instance-event-notification-attributes.rst @@ -0,0 +1,37 @@ +**Example 1: To remove all tags from event notifications** + +The following ``deregister-instance-event-notification-attributes`` example removes ``IncludeAllTagsOfInstance=true``, which has the effect of setting ``IncludeAllTagsOfInstance`` to ``false``. :: + + aws ec2 deregister-instance-event-notification-attributes \ + --instance-tag-attribute IncludeAllTagsOfInstance=true + +Output:: + + { + "InstanceTagAttribute": { + "InstanceTagKeys": [], + "IncludeAllTagsOfInstance": true + } + } + +For more information, see `Scheduled events for your instances `__ in the *Amazon Elastic Compute Cloud User Guide for Linux Instances*. + +**Example 2: To remove specific tags from event notifications** + +The following ``deregister-instance-event-notification-attributes`` example removes the specified tag from the tags included in event notifications. To describe the remaining tags included in event notifications, use ``describe-instance-event-notification-attributes``. :: + + aws ec2 deregister-instance-event-notification-attributes \ + --instance-tag-attribute InstanceTagKeys="tag-key2" + +Output:: + + { + "InstanceTagAttribute": { + "InstanceTagKeys": [ + "tag-key2" + ], + "IncludeAllTagsOfInstance": false + } + } + +For more information, see `Scheduled events for your instances `__ in the *Amazon Elastic Compute Cloud User Guide for Linux Instances*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/deregister-transit-gateway-multicast-group-members.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/deregister-transit-gateway-multicast-group-members.rst new file mode 100755 index 000000000..8db7f73cc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/deregister-transit-gateway-multicast-group-members.rst @@ -0,0 +1,22 @@ +**To deregister group members from a multicast group** + +This example deregisters the specified network interface group member from the transit gateway multicast group. :: + + aws ec2 deregister-transit-gateway-multicast-group-members \ + --transit-gateway-multicast-domain-id tgw-mcast-domain-0c4905cef7EXAMPLE \ + --group-ip-address 224.0.1.0 \ + --network-interface-ids eni-0e246d3269EXAMPLE + +Output:: + + { + "DeregisteredMulticastGroupMembers": { + "TransitGatewayMulticastDomainId": "tgw-mcast-domain-0c4905cef7EXAMPLE", + "RegisteredNetworkInterfaceIds": [ + "eni-0e246d3269EXAMPLE" + ], + "GroupIpAddress": "224.0.1.0" + } + } + +For more information, see `Deregister Members from a Multicast Group `__ in the *AWS Transit Gateways Users Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/deregister-transit-gateway-multicast-group-source.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/deregister-transit-gateway-multicast-group-source.rst new file mode 100755 index 000000000..e47e5aec2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/deregister-transit-gateway-multicast-group-source.rst @@ -0,0 +1,22 @@ +**To deregister a source from the transit gateway multicast group** + +This example deregisters the specified network interface group source from the multicast group. :: + + aws ec2 register-transit-gateway-multicast-group-sources \ + --transit-gateway-multicast-domain-id tgw-mcast-domain-0c4905cef79d6e597 \ + --group-ip-address 224.0.1.0 \ + --network-interface-ids eni-07f290fc3c090cbae + +Output:: + + { + "DeregisteredMulticastGroupSources": { + "TransitGatewayMulticastDomainId": "tgw-mcast-domain-0c4905cef79d6e597", + "DeregisteredNetworkInterfaceIds": [ + "eni-07f290fc3c090cbae" + ], + "GroupIpAddress": "224.0.1.0" + } + } + +For more information, see `Deregister Sources from a Multicast Group `__ in the *AWS Transit Gateways User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-account-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-account-attributes.rst new file mode 100644 index 000000000..1dbae2d15 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-account-attributes.rst @@ -0,0 +1,92 @@ +**To describe all the attributes for your AWS account** + +This example describes the attributes for your AWS account. + +Command:: + + aws ec2 describe-account-attributes + +Output:: + + { + "AccountAttributes": [ + { + "AttributeName": "vpc-max-security-groups-per-interface", + "AttributeValues": [ + { + "AttributeValue": "5" + } + ] + }, + { + "AttributeName": "max-instances", + "AttributeValues": [ + { + "AttributeValue": "20" + } + ] + }, + { + "AttributeName": "supported-platforms", + "AttributeValues": [ + { + "AttributeValue": "EC2" + }, + { + "AttributeValue": "VPC" + } + ] + }, + { + "AttributeName": "default-vpc", + "AttributeValues": [ + { + "AttributeValue": "none" + } + ] + }, + { + "AttributeName": "max-elastic-ips", + "AttributeValues": [ + { + "AttributeValue": "5" + } + ] + }, + { + "AttributeName": "vpc-max-elastic-ips", + "AttributeValues": [ + { + "AttributeValue": "5" + } + ] + } + ] + } + +**To describe a single attribute for your AWS account** + +This example describes the ``supported-platforms`` attribute for your AWS account. + +Command:: + + aws ec2 describe-account-attributes --attribute-names supported-platforms + +Output:: + + { + "AccountAttributes": [ + { + "AttributeName": "supported-platforms", + "AttributeValues": [ + { + "AttributeValue": "EC2" + }, + { + "AttributeValue": "VPC" + } + ] + } + ] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-address-transfers.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-address-transfers.rst new file mode 100644 index 000000000..bd0a85520 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-address-transfers.rst @@ -0,0 +1,22 @@ +**To describe an Elastic IP address transfer** + +The following ``describe-address-transfers`` example describes the Elastic IP address transfer for the specified Elastic IP address. :: + + aws ec2 describe-address-transfers \ + --allocation-ids eipalloc-09ad461b0d03f6aaf + +Output:: + + { + "AddressTransfers": [ + { + "PublicIp": "100.21.184.216", + "AllocationId": "eipalloc-09ad461b0d03f6aaf", + "TransferAccountId": "123456789012", + "TransferOfferExpirationTimestamp": "2023-02-22T22:51:01.000Z", + "AddressTransferStatus": "pending" + } + ] + } + +For more information, see `Transfer Elastic IP addresses `__ in the *Amazon VPC User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-addresses-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-addresses-attribute.rst new file mode 100644 index 000000000..a1611cfa3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-addresses-attribute.rst @@ -0,0 +1,29 @@ +**To view the attributes of the domain name associated with an elastic IP address** + +The following ``describe-addresses-attribute`` examples return the attributes of the domain name associated with the elastic IP address. + +Linux:: + + aws ec2 describe-addresses-attribute \ + --allocation-ids eipalloc-abcdef01234567890 \ + --attribute domain-name + +Windows:: + + aws ec2 describe-addresses-attribute ^ + --allocation-ids eipalloc-abcdef01234567890 ^ + --attribute domain-name + +Output:: + + { + "Addresses": [ + { + "PublicIp": "192.0.2.0", + "AllocationId": "eipalloc-abcdef01234567890", + "PtrRecord": "example.com." + } + ] + } + +To view the attributes of an elastic IP address, you must have first associated a domain name with the elastic IP address. For more information, see `Use reverse DNS for email applications `__ in the *Amazon EC2 User Guide* or `modify-address-attribute `__ in the *AWS CLI Command Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-addresses.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-addresses.rst new file mode 100644 index 000000000..8c10d4575 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-addresses.rst @@ -0,0 +1,127 @@ +**Example 1: To retrieve details about all of your Elastic IP addresses** + +The following ``describe addresses`` example displays details about your Elastic IP addresses. :: + + aws ec2 describe-addresses + +Output:: + + { + "Addresses": [ + { + "InstanceId": "i-1234567890abcdef0", + "PublicIp": "198.51.100.0", + "PublicIpv4Pool": "amazon", + "Domain": "standard" + }, + { + "Domain": "vpc", + "PublicIpv4Pool": "amazon", + "InstanceId": "i-1234567890abcdef0", + "NetworkInterfaceId": "eni-12345678", + "AssociationId": "eipassoc-12345678", + "NetworkInterfaceOwnerId": "123456789012", + "PublicIp": "203.0.113.0", + "AllocationId": "eipalloc-12345678", + "PrivateIpAddress": "10.0.1.241" + } + ] + } + +**Example 2: To retrieve details your Elastic IP addresses for EC2-VPC** + +The following ``describe-addresses`` example displays details about your Elastic IP addresses for use with instances in a VPC. :: + + aws ec2 describe-addresses \ + --filters "Name=domain,Values=vpc" + +Output:: + + { + "Addresses": [ + { + "Domain": "vpc", + "PublicIpv4Pool": "amazon", + "InstanceId": "i-1234567890abcdef0", + "NetworkInterfaceId": "eni-12345678", + "AssociationId": "eipassoc-12345678", + "NetworkInterfaceOwnerId": "123456789012", + "PublicIp": "203.0.113.0", + "AllocationId": "eipalloc-12345678", + "PrivateIpAddress": "10.0.1.241" + } + ] + } + +**Example 3: To retrieve details about an Elastic IP address specified by allocation ID** + +The following ``describe-addresses`` example displays details about the Elastic IP address with the specified allocation ID, which is associated with an instance in EC2-VPC. :: + + aws ec2 describe-addresses \ + --allocation-ids eipalloc-282d9641 + +Output:: + + { + "Addresses": [ + { + "Domain": "vpc", + "PublicIpv4Pool": "amazon", + "InstanceId": "i-1234567890abcdef0", + "NetworkInterfaceId": "eni-1a2b3c4d", + "AssociationId": "eipassoc-123abc12", + "NetworkInterfaceOwnerId": "1234567891012", + "PublicIp": "203.0.113.25", + "AllocationId": "eipalloc-282d9641", + "PrivateIpAddress": "10.251.50.12" + } + ] + } + +**Example 4: To retrieve details about an Elastic IP address specified by its VPC private IP address** + +The following ``describe-addresses`` example displays details about the Elastic IP address associated with a particular private IP address in EC2-VPC. :: + + aws ec2 describe-addresses \ + --filters "Name=private-ip-address,Values=10.251.50.12" + +**Example 5: To retrieve details about Elastic IP addresses in EC2-Classic** + +The following ``describe-addresses`` example displays details about your Elastic IP addresses for use in EC2-Classic. :: + + aws ec2 describe-addresses \ + --filters "Name=domain,Values=standard" + +Output:: + + { + "Addresses": [ + { + "InstanceId": "i-1234567890abcdef0", + "PublicIp": "203.0.110.25", + "PublicIpv4Pool": "amazon", + "Domain": "standard" + } + ] + } + +**Example 6: To retrieve details about an Elastic IP addresses specified by its public IP address** + +The following ``describe-addresses`` example displays details about the Elastic IP address with the value ``203.0.110.25``, which is associated with an instance in EC2-Classic. :: + + aws ec2 describe-addresses \ + --public-ips 203.0.110.25 + +Output:: + + { + "Addresses": [ + { + "InstanceId": "i-1234567890abcdef0", + "PublicIp": "203.0.110.25", + "PublicIpv4Pool": "amazon", + "Domain": "standard" + } + ] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-aggregate-id-format.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-aggregate-id-format.rst new file mode 100755 index 000000000..b057d2c8d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-aggregate-id-format.rst @@ -0,0 +1,29 @@ +**To describe the longer ID format settings for all resource types in a Region** + +The following ``describe-aggregate-id-format`` example describes the overall long ID format status for the current Region. The ``Deadline`` value indicates that the deadlines for these resources to permanently switch from the short ID format to the long ID format expired. The ``UseLongIdsAggregated`` value indicates that all IAM users and IAM roles are configured to use long ID format for all resource types. :: + + aws ec2 describe-aggregate-id-format + +Output:: + + { + "UseLongIdsAggregated": true, + "Statuses": [ + { + "Deadline": "2018-08-13T02:00:00.000Z", + "Resource": "network-interface-attachment", + "UseLongIds": true + }, + { + "Deadline": "2016-12-13T02:00:00.000Z", + "Resource": "instance", + "UseLongIds": true + }, + { + "Deadline": "2018-08-13T02:00:00.000Z", + "Resource": "elastic-ip-association", + "UseLongIds": true + }, + ... + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-availability-zones.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-availability-zones.rst new file mode 100755 index 000000000..2b75a4419 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-availability-zones.rst @@ -0,0 +1,62 @@ +**To describe your Availability Zones** + +The following example ``describe-availability-zones`` displays details for the Availability Zones that are available to you. The response includes Availability Zones only for the current Region. In this example, it uses the profiles default ``us-west-2`` (Oregon) Region. :: + + aws ec2 describe-availability-zones + +Output:: + + { + "AvailabilityZones": [ + { + "State": "available", + "OptInStatus": "opt-in-not-required", + "Messages": [], + "RegionName": "us-west-2", + "ZoneName": "us-west-2a", + "ZoneId": "usw2-az1", + "GroupName": "us-west-2", + "NetworkBorderGroup": "us-west-2" + }, + { + "State": "available", + "OptInStatus": "opt-in-not-required", + "Messages": [], + "RegionName": "us-west-2", + "ZoneName": "us-west-2b", + "ZoneId": "usw2-az2", + "GroupName": "us-west-2", + "NetworkBorderGroup": "us-west-2" + }, + { + "State": "available", + "OptInStatus": "opt-in-not-required", + "Messages": [], + "RegionName": "us-west-2", + "ZoneName": "us-west-2c", + "ZoneId": "usw2-az3", + "GroupName": "us-west-2", + "NetworkBorderGroup": "us-west-2" + }, + { + "State": "available", + "OptInStatus": "opt-in-not-required", + "Messages": [], + "RegionName": "us-west-2", + "ZoneName": "us-west-2d", + "ZoneId": "usw2-az4", + "GroupName": "us-west-2", + "NetworkBorderGroup": "us-west-2" + }, + { + "State": "available", + "OptInStatus": "opted-in", + "Messages": [], + "RegionName": "us-west-2", + "ZoneName": "us-west-2-lax-1a", + "ZoneId": "usw2-lax1-az1", + "GroupName": "us-west-2-lax-1", + "NetworkBorderGroup": "us-west-2-lax-1" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-aws-network-performance-metric-subscription.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-aws-network-performance-metric-subscription.rst new file mode 100644 index 000000000..d4d8a824b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-aws-network-performance-metric-subscription.rst @@ -0,0 +1,21 @@ +**To describe your metric subscriptions** + +The following ``describe-aws-network-performance-metric-subscriptions`` example describes your metric subscriptions. :: + + aws ec2 describe-aws-network-performance-metric-subscriptions + +Output:: + + { + "Subscriptions": [ + { + "Source": "us-east-1", + "Destination": "eu-west-1", + "Metric": "aggregate-latency", + "Statistic": "p50", + "Period": "five-minutes" + } + ] + } + +For more information, see `Manage subscriptions `__ in the *Infrastructure Performance User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-aws-network-performance-metric-subscriptions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-aws-network-performance-metric-subscriptions.rst new file mode 100644 index 000000000..3477c32fa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-aws-network-performance-metric-subscriptions.rst @@ -0,0 +1,21 @@ +**To describe your metric subscriptions** + +The following ``describe-aws-network-performance-metric-subscriptions`` example describes your metric subscriptions. :: + + aws ec2 describe-aws-network-performance-metric-subscriptions + +Output:: + + { + "Subscriptions": [ + { + "Source": "us-east-1", + "Destination": "eu-west-1", + "Metric": "aggregate-latency", + "Statistic": "p50", + "Period": "five-minutes" + } + ] + } + +For more information, see `Manage subscriptions `__ in the *Infrastructure Performance User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-bundle-tasks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-bundle-tasks.rst new file mode 100644 index 000000000..8c6376e22 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-bundle-tasks.rst @@ -0,0 +1,28 @@ +**To describe your bundle tasks** + +This example describes all of your bundle tasks. + +Command:: + + aws ec2 describe-bundle-tasks + +Output:: + + { + "BundleTasks": [ + { + "UpdateTime": "2015-09-15T13:26:54.000Z", + "InstanceId": "i-1234567890abcdef0", + "Storage": { + "S3": { + "Prefix": "winami", + "Bucket": "bundletasks" + } + }, + "State": "bundling", + "StartTime": "2015-09-15T13:24:35.000Z", + "Progress": "3%", + "BundleId": "bun-2a4e041c" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-byoip-cidrs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-byoip-cidrs.rst new file mode 100644 index 000000000..f2940408d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-byoip-cidrs.rst @@ -0,0 +1,17 @@ +**To describe your provisioned address ranges** + +The following ``describe-byoip-cidrs`` example displays details about the public IPv4 address ranges that you provisioned for use by AWS. :: + + aws ec2 describe-byoip-cidrs + +Output:: + + { + "ByoipCidrs": [ + { + "Cidr": "203.0.113.25/24", + "StatusMessage": "ipv4pool-ec2-1234567890abcdef0", + "State": "provisioned" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-capacity-reservation-fleets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-capacity-reservation-fleets.rst new file mode 100644 index 000000000..0b55a285f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-capacity-reservation-fleets.rst @@ -0,0 +1,41 @@ +**To view a Capacity Reservation Fleet** + +The following ``describe-capacity-reservation-fleets`` example lists configuration and capacity information for the specified Capacity Reservation Fleet. It also lists details about the individual Capacity Reservations that are inside the Fleet. :: + + aws ec2 describe-capacity-reservation-fleets \ + --capacity-reservation-fleet-ids crf-abcdef01234567890 + +Output:: + + { + "CapacityReservationFleets": [ + { + "State": "active", + "EndDate": "2022-12-31T23:59:59.000Z", + "InstanceMatchCriteria": "open", + "Tags": [], + "CapacityReservationFleetId": "crf-abcdef01234567890", + "Tenancy": "default", + "InstanceTypeSpecifications": [ + { + "CapacityReservationId": "cr-1234567890abcdef0", + "AvailabilityZone": "us-east-1a", + "FulfilledCapacity": 5.0, + "Weight": 1.0, + "CreateDate": "2022-07-02T08:34:33.398Z", + "InstancePlatform": "Linux/UNIX", + "TotalInstanceCount": 5, + "Priority": 1, + "EbsOptimized": true, + "InstanceType": "m5.xlarge" + } + ], + "TotalTargetCapacity": 5, + "TotalFulfilledCapacity": 5.0, + "CreateTime": "2022-07-02T08:34:33.397Z", + "AllocationStrategy": "prioritized" + } + ] + } + +For more information about Capacity Reservation Fleets, see `Capacity Reservation Fleets `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-capacity-reservations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-capacity-reservations.rst new file mode 100644 index 000000000..f6151c288 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-capacity-reservations.rst @@ -0,0 +1,91 @@ +**Example 1: To describe one or more of your capacity reservations** + +The following ``describe-capacity-reservations`` example displays details about all of your capacity reservations in the current AWS Region. :: + + aws ec2 describe-capacity-reservations + +Output:: + + { + "CapacityReservations": [ + { + "CapacityReservationId": "cr-1234abcd56EXAMPLE ", + "OwnerId": "123456789111", + "CapacityReservationArn": "arn:aws:ec2:us-east-1:123456789111:capacity-reservation/cr-1234abcd56EXAMPLE", + "AvailabilityZoneId": "use1-az2", + "InstanceType": "c5.large", + "InstancePlatform": "Linux/UNIX", + "AvailabilityZone": "us-east-1a", + "Tenancy": "default", + "TotalInstanceCount": 1, + "AvailableInstanceCount": 1, + "EbsOptimized": true, + "EphemeralStorage": false, + "State": "active", + "StartDate": "2024-10-23T15:00:24+00:00", + "EndDateType": "unlimited", + "InstanceMatchCriteria": "open", + "CreateDate": "2024-10-23T15:00:24+00:00", + "Tags": [], + "CapacityAllocations": [] + }, + { + "CapacityReservationId": "cr-abcdEXAMPLE9876ef ", + "OwnerId": "123456789111", + "CapacityReservationArn": "arn:aws:ec2:us-east-1:123456789111:capacity-reservation/cr-abcdEXAMPLE9876ef", + "AvailabilityZoneId": "use1-az2", + "InstanceType": "c4.large", + "InstancePlatform": "Linux/UNIX", + "AvailabilityZone": "us-east-1a", + "Tenancy": "default", + "TotalInstanceCount": 1, + "AvailableInstanceCount": 1, + "EbsOptimized": true, + "EphemeralStorage": false, + "State": "cancelled", + "StartDate": "2024-10-23T15:01:03+00:00", + "EndDateType": "unlimited", + "InstanceMatchCriteria": "open", + "CreateDate": "2024-10-23T15:01:02+00:00", + "Tags": [], + "CapacityAllocations": [] + } + ] + } + +**Example 2: To describe one or more of your capacity reservations** + +The following ``describe-capacity-reservations`` example displays details about the specified capacity reservation. :: + + aws ec2 describe-capacity-reservations \ + --capacity-reservation-ids cr-1234abcd56EXAMPLE + +Output:: + + { + "CapacityReservations": [ + { + "CapacityReservationId": "cr-abcdEXAMPLE9876ef ", + "OwnerId": "123456789111", + "CapacityReservationArn": "arn:aws:ec2:us-east-1:123456789111:capacity-reservation/cr-abcdEXAMPLE9876ef", + "AvailabilityZoneId": "use1-az2", + "InstanceType": "c4.large", + "InstancePlatform": "Linux/UNIX", + "AvailabilityZone": "us-east-1a", + "Tenancy": "default", + "TotalInstanceCount": 1, + "AvailableInstanceCount": 1, + "EbsOptimized": true, + "EphemeralStorage": false, + "State": "active", + "StartDate": "2024-10-23T15:01:03+00:00", + "EndDateType": "unlimited", + "InstanceMatchCriteria": "open", + "CreateDate": "2024-10-23T15:01:02+00:00", + "Tags": [], + "CapacityAllocations": [] + } + ] + } + +For more information, see `Viewing a Capacity Reservation `__ in the *Amazon Elastic Compute Cloud User Guide for Linux Instances*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-carrier-gateways.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-carrier-gateways.rst new file mode 100644 index 000000000..65982cba4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-carrier-gateways.rst @@ -0,0 +1,28 @@ +**To describe all carrier gateways** + +The following ``describe-carrier-gateways`` example lists all your carrier gateways. :: + + aws ec2 describe-carrier-gateways + +Output:: + + { + "CarrierGateways": [ + { + "CarrierGatewayId": "cagw-0465cdEXAMPLE1111", + "VpcId": "vpc-0c529aEXAMPLE", + "State": "available", + "OwnerId": "123456789012", + "Tags": [ + { + + "Key": "example", + "Value": "tag" + } + ] + } + ] + } + +For more information, see `Carrier gateways`__ in the *Amazon Virtual Private Cloud +User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-classic-link-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-classic-link-instances.rst new file mode 100644 index 000000000..eec8edd78 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-classic-link-instances.rst @@ -0,0 +1,72 @@ +**To describe linked EC2-Classic instances** + +This example lists all of your linked EC2-Classic instances. + +Command:: + + aws ec2 describe-classic-link-instances + +Output:: + + { + "Instances": [ + { + "InstanceId": "i-1234567890abcdef0", + "VpcId": "vpc-88888888", + "Groups": [ + { + "GroupId": "sg-11122233" + } + ], + "Tags": [ + { + "Value": "ClassicInstance", + "Key": "Name" + } + ] + }, + { + "InstanceId": "i-0598c7d356eba48d7", + "VpcId": "vpc-12312312", + "Groups": [ + { + "GroupId": "sg-aabbccdd" + } + ], + "Tags": [ + { + "Value": "ClassicInstance2", + "Key": "Name" + } + ] + } + ] + } + +This example lists all of your linked EC2-Classic instances, and filters the response to include only instances that are linked to VPC vpc-88888888. + +Command:: + + aws ec2 describe-classic-link-instances --filter "Name=vpc-id,Values=vpc-88888888" + +Output:: + + { + "Instances": [ + { + "InstanceId": "i-1234567890abcdef0", + "VpcId": "vpc-88888888", + "Groups": [ + { + "GroupId": "sg-11122233" + } + ], + "Tags": [ + { + "Value": "ClassicInstance", + "Key": "Name" + } + ] + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-client-vpn-authorization-rules.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-client-vpn-authorization-rules.rst new file mode 100644 index 000000000..c9a38c7cf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-client-vpn-authorization-rules.rst @@ -0,0 +1,24 @@ +**To describe the authorization rules for a Client VPN endpoint** + +The following ``describe-client-vpn-authorization-rules`` example displays details about the authorization rules for the specified Client VPN endpoint. :: + + aws ec2 describe-client-vpn-authorization-rules \ + --client-vpn-endpoint-id cvpn-endpoint-123456789123abcde + +Output:: + + { + "AuthorizationRules": [ + { + "ClientVpnEndpointId": "cvpn-endpoint-123456789123abcde", + "GroupId": "", + "AccessAll": true, + "DestinationCidr": "0.0.0.0/0", + "Status": { + "Code": "active" + } + } + ] + } + +For more information, see `Authorization Rules `__ in the *AWS Client VPN Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-client-vpn-connections.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-client-vpn-connections.rst new file mode 100644 index 000000000..75901932b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-client-vpn-connections.rst @@ -0,0 +1,47 @@ +**To describe the connections to a Client VPN endpoint** + +The following ``describe-client-vpn-connections`` example displays details about the client connections to the specified Client VPN endpoint. :: + + aws ec2 describe-client-vpn-connections \ + --client-vpn-endpoint-id cvpn-endpoint-123456789123abcde + +Output:: + + { + "Connections": [ + { + "ClientVpnEndpointId": "cvpn-endpoint-123456789123abcde", + "Timestamp": "2019-08-12 07:58:34", + "ConnectionId": "cvpn-connection-0e03eb24267165acd", + "ConnectionEstablishedTime": "2019-08-12 07:57:14", + "IngressBytes": "32302", + "EgressBytes": "5696", + "IngressPackets": "332", + "EgressPackets": "67", + "ClientIp": "172.31.0.225", + "CommonName": "client1.domain.tld", + "Status": { + "Code": "terminated" + }, + "ConnectionEndTime": "2019-08-12 07:58:34" + }, + { + "ClientVpnEndpointId": "cvpn-endpoint-123456789123abcde", + "Timestamp": "2019-08-12 08:02:54", + "ConnectionId": "cvpn-connection-00668867a40f18253", + "ConnectionEstablishedTime": "2019-08-12 08:02:53", + "IngressBytes": "2951", + "EgressBytes": "2611", + "IngressPackets": "9", + "EgressPackets": "6", + "ClientIp": "172.31.0.226", + "CommonName": "client1.domain.tld", + "Status": { + "Code": "active" + }, + "ConnectionEndTime": "-" + } + ] + } + +For more information, see `Client Connections `__ in the *AWS Client VPN Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-client-vpn-endpoints.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-client-vpn-endpoints.rst new file mode 100644 index 000000000..d6b9c8be5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-client-vpn-endpoints.rst @@ -0,0 +1,59 @@ +**To describe your Client VPN endpoints** + +The following ``describe-client-vpn-endpoints`` example displays details about all of your Client VPN endpoints. :: + + aws ec2 describe-client-vpn-endpoints + +Output:: + + { + "ClientVpnEndpoints": [ + { + "ClientVpnEndpointId": "cvpn-endpoint-123456789123abcde", + "Description": "Endpoint for Admin access", + "Status": { + "Code": "available" + }, + "CreationTime": "2020-11-13T11:37:27", + "DnsName": "*.cvpn-endpoint-123456789123abcde.prod.clientvpn.ap-south-1.amazonaws.com", + "ClientCidrBlock": "172.31.0.0/16", + "DnsServers": [ + "8.8.8.8" + ], + "SplitTunnel": false, + "VpnProtocol": "openvpn", + "TransportProtocol": "udp", + "VpnPort": 443, + "ServerCertificateArn": "arn:aws:acm:ap-south-1:123456789012:certificate/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", + "AuthenticationOptions": [ + { + "Type": "certificate-authentication", + "MutualAuthentication": { + "ClientRootCertificateChain": "arn:aws:acm:ap-south-1:123456789012:certificate/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE" + } + } + ], + "ConnectionLogOptions": { + "Enabled": true, + "CloudwatchLogGroup": "Client-vpn-connection-logs", + "CloudwatchLogStream": "cvpn-endpoint-123456789123abcde-ap-south-1-2020/11/13-FCD8HEMVaCcw" + }, + "Tags": [ + { + "Key": "Name", + "Value": "Client VPN" + } + ], + "SecurityGroupIds": [ + "sg-aabbcc11223344567" + ], + "VpcId": "vpc-a87f92c1", + "SelfServicePortalUrl": "https://self-service.clientvpn.amazonaws.com/endpoints/cvpn-endpoint-123456789123abcde", + "ClientConnectOptions": { + "Enabled": false + } + } + ] + } + +For more information, see `Client VPN Endpoints `__ in the *AWS Client VPN Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-client-vpn-routes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-client-vpn-routes.rst new file mode 100644 index 000000000..90a417e76 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-client-vpn-routes.rst @@ -0,0 +1,36 @@ +**To describe the routes for a Client VPN endpoint** + +The following ``describe-client-vpn-routes`` example displays details about the routes for the specified Client VPN endpoint. :: + + aws ec2 describe-client-vpn-routes \ + --client-vpn-endpoint-id cvpn-endpoint-123456789123abcde + +Output:: + + { + "Routes": [ + { + "ClientVpnEndpointId": "cvpn-endpoint-123456789123abcde", + "DestinationCidr": "10.0.0.0/16", + "TargetSubnet": "subnet-0123456789abcabca", + "Type": "Nat", + "Origin": "associate", + "Status": { + "Code": "active" + }, + "Description": "Default Route" + }, + { + "ClientVpnEndpointId": "cvpn-endpoint-123456789123abcde", + "DestinationCidr": "0.0.0.0/0", + "TargetSubnet": "subnet-0123456789abcabca", + "Type": "Nat", + "Origin": "add-route", + "Status": { + "Code": "active" + } + } + ] + } + +For more information, see `Routes `__ in the *AWS Client VPN Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-client-vpn-target-networks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-client-vpn-target-networks.rst new file mode 100644 index 000000000..776388b8e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-client-vpn-target-networks.rst @@ -0,0 +1,27 @@ +**To describe the target networks for a Client VPN endpoint** + +The following ``describe-client-vpn-target-networks`` example displays details about the target networks for the specified Client VPN endpoint. :: + + aws ec2 describe-client-vpn-target-networks \ + --client-vpn-endpoint-id cvpn-endpoint-123456789123abcde + +Output:: + + { + "ClientVpnTargetNetworks": [ + { + "AssociationId": "cvpn-assoc-012e837060753dc3d", + "VpcId": "vpc-11111222222333333", + "TargetNetworkId": "subnet-0123456789abcabca", + "ClientVpnEndpointId": "cvpn-endpoint-123456789123abcde", + "Status": { + "Code": "associating" + }, + "SecurityGroups": [ + "sg-012345678910abcab" + ] + } + ] + } + +For more information, see `Target Networks `__ in the *AWS Client VPN Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-coip-pools.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-coip-pools.rst new file mode 100644 index 000000000..b311d0d8e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-coip-pools.rst @@ -0,0 +1,22 @@ +**To describe customer-owned IP address pools** + +The following ``describe-coip-pools`` example describes the customer-owned IP address pools in your AWS account. :: + + aws ec2 describe-coip-pools + +Output:: + + { + "CoipPools": [ + { + "PoolId": "ipv4pool-coip-123a45678bEXAMPLE", + "PoolCidrs": [ + "0.0.0.0/0" + ], + "LocalGatewayRouteTableId": "lgw-rtb-059615ef7dEXAMPLE", + "PoolArn": "arn:aws:ec2:us-west-2:123456789012:coip-pool/ipv4pool-coip-123a45678bEXAMPLE" + } + ] + } + +For more information, see `Customer-owned IP addresses `__ in the *AWS Outposts User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-conversion-tasks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-conversion-tasks.rst new file mode 100644 index 000000000..ddfbcd54d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-conversion-tasks.rst @@ -0,0 +1,38 @@ +**To view the status of a conversion task** + +This example returns the status of a conversion task with the ID import-i-ffvko9js. + +Command:: + + aws ec2 describe-conversion-tasks --conversion-task-ids import-i-ffvko9js + +Output:: + + { + "ConversionTasks": [ + { + "ConversionTaskId": "import-i-ffvko9js", + "ImportInstance": { + "InstanceId": "i-1234567890abcdef0", + "Volumes": [ + { + "Volume": { + "Id": "vol-049df61146c4d7901", + "Size": 16 + }, + "Status": "completed", + "Image": { + "Size": 1300687360, + "ImportManifestUrl": "https://s3.amazonaws.com/myimportbucket/411443cd-d620-4f1c-9d66-13144EXAMPLE/RHEL5.vmdkmanifest.xml?AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&Expires=140EXAMPLE&Signature=XYNhznHNgCqsjDxL9wRL%2FJvEXAMPLE", + "Format": "VMDK" + }, + "BytesConverted": 1300682960, + "AvailabilityZone": "us-east-1d" + } + ] + }, + "ExpirationTime": "2014-05-14T22:06:23Z", + "State": "completed" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-customer-gateways.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-customer-gateways.rst new file mode 100644 index 000000000..fa2b221bd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-customer-gateways.rst @@ -0,0 +1,50 @@ +**To describe your customer gateways** + +This example describes your customer gateways. + +Command:: + + aws ec2 describe-customer-gateways + +Output:: + + { + "CustomerGateways": [ + { + "CustomerGatewayId": "cgw-b4dc3961", + "IpAddress": "203.0.113.12", + "State": "available", + "Type": "ipsec.1", + "BgpAsn": "65000" + }, + { + "CustomerGatewayId": "cgw-0e11f167", + "IpAddress": "12.1.2.3", + "State": "available", + "Type": "ipsec.1", + "BgpAsn": "65534" + } + ] + } + +**To describe a specific customer gateway** + +This example describes the specified customer gateway. + +Command:: + + aws ec2 describe-customer-gateways --customer-gateway-ids cgw-0e11f167 + +Output:: + + { + "CustomerGateways": [ + { + "CustomerGatewayId": "cgw-0e11f167", + "IpAddress": "12.1.2.3", + "State": "available", + "Type": "ipsec.1", + "BgpAsn": "65534" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-dhcp-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-dhcp-options.rst new file mode 100644 index 000000000..9f71bbaaf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-dhcp-options.rst @@ -0,0 +1,94 @@ +**Example 1: To describe your DHCP options** + +The following ``describe-dhcp-options`` example retrieves details about your DHCP options. :: + + aws ec2 describe-dhcp-options + +Output:: + + { + "DhcpOptions": [ + { + "DhcpConfigurations": [ + { + "Key": "domain-name", + "Values": [ + { + "Value": "us-east-2.compute.internal" + } + ] + }, + { + "Key": "domain-name-servers", + "Values": [ + { + "Value": "AmazonProvidedDNS" + } + ] + } + ], + "DhcpOptionsId": "dopt-19edf471", + "OwnerId": "111122223333" + }, + { + "DhcpConfigurations": [ + { + "Key": "domain-name", + "Values": [ + { + "Value": "us-east-2.compute.internal" + } + ] + }, + { + "Key": "domain-name-servers", + "Values": [ + { + "Value": "AmazonProvidedDNS" + } + ] + } + ], + "DhcpOptionsId": "dopt-fEXAMPLE", + "OwnerId": "111122223333" + } + ] + } + +For more information, see `Working with DHCP Option Sets `__ in the *AWS VPC User Guide*. + +**Example 2: To describe your DHCP options and filter the output** + +The following ``describe-dhcp-options`` example describes your DHCP options and uses a filter to return only DHCP options that have ``example.com`` for the domain name server. The example uses the ``--query`` parameter to display only the configuration information and ID in the output. :: + + aws ec2 describe-dhcp-options \ + --filters Name=key,Values=domain-name-servers Name=value,Values=example.com \ + --query "DhcpOptions[*].[DhcpConfigurations,DhcpOptionsId]" + +Output:: + + [ + [ + [ + { + "Key": "domain-name", + "Values": [ + { + "Value": "example.com" + } + ] + }, + { + "Key": "domain-name-servers", + "Values": [ + { + "Value": "172.16.16.16" + } + ] + } + ], + "dopt-001122334455667ab" + ] + ] + +For more information, see `Working with DHCP Option Sets `__ in the *AWS VPC User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-egress-only-internet-gateways.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-egress-only-internet-gateways.rst new file mode 100644 index 000000000..7a9b81ebf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-egress-only-internet-gateways.rst @@ -0,0 +1,23 @@ +**To describe your egress-only Internet gateways** + +This example describes your egress-only Internet gateways. + +Command:: + + aws ec2 describe-egress-only-internet-gateways + +Output:: + + { + "EgressOnlyInternetGateways": [ + { + "EgressOnlyInternetGatewayId": "eigw-015e0e244e24dfe8a", + "Attachments": [ + { + "State": "attached", + "VpcId": "vpc-0c62a468" + } + ] + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-elastic-gpus.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-elastic-gpus.rst new file mode 100644 index 000000000..848b0a334 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-elastic-gpus.rst @@ -0,0 +1,5 @@ +**To describe an Elastic GPU** + +Command:: + + aws ec2 describe-elastic-gpus --elastic-gpu-ids egpu-12345678901234567890abcdefghijkl \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-export-image-tasks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-export-image-tasks.rst new file mode 100755 index 000000000..9c2f38829 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-export-image-tasks.rst @@ -0,0 +1,40 @@ +**To monitor an export image task** + +The following ``describe-export-image-tasks`` example checks the status of the specified export image task. The resulting image file in Amazon S3 is ``my-export-bucket/exports/export-ami-1234567890abcdef0.vmdk``. :: + + aws ec2 describe-export-image-tasks \ + --export-image-task-ids export-ami-1234567890abcdef0 + +Output for an export image task that is in progress. :: + + { + "ExportImageTasks": [ + { + "ExportImageTaskId": "export-ami-1234567890abcdef0" + "Progress": "21", + "S3ExportLocation": { + "S3Bucket": "my-export-bucket", + "S3Prefix": "exports/" + }, + "Status": "active", + "StatusMessage": "updating" + } + ] + } + +Output for an export image task that is completed. :: + + { + "ExportImageTasks": [ + { + "ExportImageTaskId": "export-ami-1234567890abcdef0" + "S3ExportLocation": { + "S3Bucket": "my-export-bucket", + "S3Prefix": "exports/" + }, + "Status": "completed" + } + ] + } + +For more information, see `Export a VM from an AMI `__ in the *VM Import/Export User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-export-tasks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-export-tasks.rst new file mode 100644 index 000000000..b61dcabe8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-export-tasks.rst @@ -0,0 +1,30 @@ +**To list details about an instance export task** + +This example describes the export task with ID export-i-fh8sjjsq. + +Command:: + + aws ec2 describe-export-tasks --export-task-ids export-i-fh8sjjsq + +Output:: + + { + "ExportTasks": [ + { + "State": "active", + "InstanceExportDetails": { + "InstanceId": "i-1234567890abcdef0", + "TargetEnvironment": "vmware" + }, + "ExportToS3Task": { + "S3Bucket": "myexportbucket", + "S3Key": "RHEL5export-i-fh8sjjsq.ova", + "DiskImageFormat": "vmdk", + "ContainerFormat": "ova" + }, + "Description": "RHEL5 instance", + "ExportTaskId": "export-i-fh8sjjsq" + } + ] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-fast-launch-images.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-fast-launch-images.rst new file mode 100644 index 000000000..968a753e1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-fast-launch-images.rst @@ -0,0 +1,29 @@ +**To describe the details for Windows AMIs that are configured for faster launching** + +The following ``describe-fast-launch-images`` example describes the details for each of the AMIs in your account that are configured for faster launching, including the resource type, the snapshot configuration, the launch template details, the maximum number of parallel launches, the AMI owner ID, the state of the fast launch configuration, the reason the state was changed, and the time that the state change occurred. :: + + aws ec2 describe-fast-launch-images + +Output:: + + { + "FastLaunchImages": [ + { + "ImageId": "ami-01234567890abcedf", + "ResourceType": "snapshot", + "SnapshotConfiguration": {}, + "LaunchTemplate": { + "LaunchTemplateId": "lt-01234567890abcedf", + "LaunchTemplateName": "EC2FastLaunchDefaultResourceCreation-a8c6215d-94e6-441b-9272-dbd1f87b07e2", + "Version": "1" + }, + "MaxParallelLaunches": 6, + "OwnerId": "0123456789123", + "State": "enabled", + "StateTransitionReason": "Client.UserInitiated", + "StateTransitionTime": "2022-01-27T22:20:06.552000+00:00" + } + ] + } + +For more information about configuring a Windows AMI for faster launching, see `Configure your AMI for faster launching `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-fast-snapshot-restores.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-fast-snapshot-restores.rst new file mode 100755 index 000000000..5f88ceaba --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-fast-snapshot-restores.rst @@ -0,0 +1,29 @@ +**To describe fast snapshot restores** + +The following ``describe-fast-snapshot-restores`` example displays details for all fast snapshot restores with a state of ``disabled``. :: + + aws ec2 describe-fast-snapshot-restores \ + --filters Name=state,Values=disabled + +Output:: + + { + "FastSnapshotRestores": [ + { + "SnapshotId": "snap-1234567890abcdef0", + "AvailabilityZone": "us-west-2c", + "State": "disabled", + "StateTransitionReason": "Client.UserInitiated - Lifecycle state transition", + "OwnerId": "123456789012", + "EnablingTime": "2020-01-25T23:57:49.596Z", + "OptimizingTime": "2020-01-25T23:58:25.573Z", + "EnabledTime": "2020-01-25T23:59:29.852Z", + "DisablingTime": "2020-01-26T00:40:56.069Z", + "DisabledTime": "2020-01-26T00:41:27.390Z" + } + ] + } + +The following ``describe-fast-snapshot-restores`` example describes all fast snapshot restores. :: + + aws ec2 describe-fast-snapshot-restores diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-fleet-history.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-fleet-history.rst new file mode 100644 index 000000000..9601b04d8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-fleet-history.rst @@ -0,0 +1,59 @@ +**To describe EC2 Fleet history** + +The following ``describe-fleet-history`` example returns the history for the specified EC2 Fleet starting at the specified time. The output is for an EC2 Fleet with two running instances. :: + + aws ec2 describe-fleet-history \ + --fleet-id fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE \ + --start-time 2020-09-01T00:00:00Z + +Output:: + + { + "HistoryRecords": [ + { + "EventInformation": { + "EventSubType": "submitted" + }, + "EventType": "fleetRequestChange", + "Timestamp": "2020-09-01T18:26:05.000Z" + }, + { + "EventInformation": { + "EventSubType": "active" + }, + "EventType": "fleetRequestChange", + "Timestamp": "2020-09-01T18:26:15.000Z" + }, + { + "EventInformation": { + "EventDescription": "t2.small, ami-07c8bc5c1ce9598c3, ...", + "EventSubType": "progress" + }, + "EventType": "fleetRequestChange", + "Timestamp": "2020-09-01T18:26:17.000Z" + }, + { + "EventInformation": { + "EventDescription": "{\"instanceType\":\"t2.small\", ...}", + "EventSubType": "launched", + "InstanceId": "i-083a1c446e66085d2" + }, + "EventType": "instanceChange", + "Timestamp": "2020-09-01T18:26:17.000Z" + }, + { + "EventInformation": { + "EventDescription": "{\"instanceType\":\"t2.small\", ...}", + "EventSubType": "launched", + "InstanceId": "i-090db02406cc3c2d6" + }, + "EventType": "instanceChange", + "Timestamp": "2020-09-01T18:26:17.000Z" + } + ], + "LastEvaluatedTime": "2020-09-01T19:10:19.000Z", + "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE", + "StartTime": "2020-08-31T23:53:20.000Z" + } + +For more information, see `Managing an EC2 Fleet `__ in the *Amazon Elastic Compute Cloud User Guide for Linux Instances*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-fleet-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-fleet-instances.rst new file mode 100644 index 000000000..e53355c2f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-fleet-instances.rst @@ -0,0 +1,28 @@ +**To describe the running instances for an EC2 Fleet** + +The following ``describe-fleet-instances`` example describes the running instances for the specified EC2 Fleet. :: + + aws ec2 describe-fleet-instances \ + --fleet-id 12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE + +Output:: + + { + "ActiveInstances": [ + { + "InstanceId": "i-090db02406cc3c2d6", + "InstanceType": "t2.small", + "SpotInstanceRequestId": "sir-a43gtpfk", + "InstanceHealth": "healthy" + }, + { + "InstanceId": "i-083a1c446e66085d2", + "InstanceType": "t2.small", + "SpotInstanceRequestId": "sir-iwcit2nj", + "InstanceHealth": "healthy" + } + ], + "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE" + } + +For more information, see `Managing an EC2 Fleet `__ in the *Amazon Elastic Compute Cloud User Guide for Linux Instances*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-fleets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-fleets.rst new file mode 100644 index 000000000..cb1001cd4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-fleets.rst @@ -0,0 +1,49 @@ +**To describe an EC2 Fleet** + +The following ``describe-fleets`` example describes the specified EC2 Fleet. :: + + aws ec2 describe-fleets \ + --fleet-ids fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE + +Output:: + + { + "Fleets": [ + { + "ActivityStatus": "pending_fulfillment", + "CreateTime": "2020-09-01T18:26:05.000Z", + "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE", + "FleetState": "active", + "ExcessCapacityTerminationPolicy": "termination", + "FulfilledCapacity": 0.0, + "FulfilledOnDemandCapacity": 0.0, + "LaunchTemplateConfigs": [ + { + "LaunchTemplateSpecification": { + "LaunchTemplateId": "lt-0e632f2855a979cd5", + "Version": "1" + } + } + ], + "TargetCapacitySpecification": { + "TotalTargetCapacity": 2, + "OnDemandTargetCapacity": 0, + "SpotTargetCapacity": 2, + "DefaultTargetCapacityType": "spot" + }, + "TerminateInstancesWithExpiration": false, + "Type": "maintain", + "ReplaceUnhealthyInstances": false, + "SpotOptions": { + "AllocationStrategy": "lowestPrice", + "InstanceInterruptionBehavior": "terminate", + "InstancePoolsToUseCount": 1 + }, + "OnDemandOptions": { + "AllocationStrategy": "lowestPrice" + } + } + ] + } + +For more information, see `Managing an EC2 Fleet `__ in the *Amazon Elastic Compute Cloud User Guide for Linux Instances*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-flow-logs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-flow-logs.rst new file mode 100644 index 000000000..aa54d9330 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-flow-logs.rst @@ -0,0 +1,44 @@ +**Example 1: To describe all of your flow logs** + +The following ``describe-flow-logs`` example displays details for all of your flow logs. :: + + aws ec2 describe-flow-logs + +Output:: + + { + "FlowLogs": [ + { + "CreationTime": "2018-02-21T13:22:12.644Z", + "DeliverLogsPermissionArn": "arn:aws:iam::123456789012:role/flow-logs-role", + "DeliverLogsStatus": "SUCCESS", + "FlowLogId": "fl-aabbccdd112233445", + "MaxAggregationInterval": 600, + "FlowLogStatus": "ACTIVE", + "LogGroupName": "FlowLogGroup", + "ResourceId": "subnet-12345678901234567", + "TrafficType": "ALL", + "LogDestinationType": "cloud-watch-logs", + "LogFormat": "${version} ${account-id} ${interface-id} ${srcaddr} ${dstaddr} ${srcport} ${dstport} ${protocol} ${packets} ${bytes} ${start} ${end} ${action} ${log-status}" + }, + { + "CreationTime": "2020-02-04T15:22:29.986Z", + "DeliverLogsStatus": "SUCCESS", + "FlowLogId": "fl-01234567890123456", + "MaxAggregationInterval": 60, + "FlowLogStatus": "ACTIVE", + "ResourceId": "vpc-00112233445566778", + "TrafficType": "ACCEPT", + "LogDestinationType": "s3", + "LogDestination": "arn:aws:s3:::my-flow-log-bucket/custom", + "LogFormat": "${version} ${vpc-id} ${subnet-id} ${instance-id} ${interface-id} ${account-id} ${type} ${srcaddr} ${dstaddr} ${srcport} ${dstport} ${pkt-srcaddr} ${pkt-dstaddr} ${protocol} ${bytes} ${packets} ${start} ${end} ${action} ${tcp-flags} ${log-status}" + } + ] + } + +**Example 2: To describe a subset of your flow logs** + +The following ``describe-flow-logs`` example uses a filter to display details for only those flow logs that are in the specified log group in Amazon CloudWatch Logs. :: + + aws ec2 describe-flow-logs \ + --filter "Name=log-group-name,Values=MyFlowLogs" diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-fpga-image-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-fpga-image-attribute.rst new file mode 100644 index 000000000..34e9c4e6b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-fpga-image-attribute.rst @@ -0,0 +1,20 @@ +**To describe the attributes of an Amazon FPGA image** + +This example describes the load permissions for the specified AFI. + +Command:: + + aws ec2 describe-fpga-image-attribute --fpga-image-id afi-0d123e123bfc85abc --attribute loadPermission + +Output:: + + { + "FpgaImageAttribute": { + "FpgaImageId": "afi-0d123e123bfc85abc", + "LoadPermissions": [ + { + "UserId": "123456789012" + } + ] + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-fpga-images.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-fpga-images.rst new file mode 100644 index 000000000..0731deb2b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-fpga-images.rst @@ -0,0 +1,34 @@ +**To describe Amazon FPGA images** + +This example describes AFIs that are owned by account ``123456789012``. + +Command:: + + aws ec2 describe-fpga-images --filters Name=owner-id,Values=123456789012 + +Output:: + + { + "FpgaImages": [ + { + "UpdateTime": "2017-12-22T12:09:14.000Z", + "Name": "my-afi", + "PciId": { + "SubsystemVendorId": "0xfedd", + "VendorId": "0x1d0f", + "DeviceId": "0xf000", + "SubsystemId": "0x1d51" + }, + "FpgaImageGlobalId": "agfi-123cb27b5e84a0abc", + "Public": false, + "State": { + "Code": "available" + }, + "ShellVersion": "0x071417d3", + "OwnerId": "123456789012", + "FpgaImageId": "afi-0d123e123bfc85abc", + "CreateTime": "2017-12-22T11:43:33.000Z", + "Description": "my-afi" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-host-reservation-offerings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-host-reservation-offerings.rst new file mode 100644 index 000000000..e9596adf2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-host-reservation-offerings.rst @@ -0,0 +1,62 @@ +**To describe Dedicated Host Reservation offerings** + +This example describes the Dedicated Host Reservations for the M4 instance family that are available to purchase. + +Command:: + + aws ec2 describe-host-reservation-offerings --filter Name=instance-family,Values=m4 + +Output:: + + { + "OfferingSet": [ + { + "HourlyPrice": "1.499", + "OfferingId": "hro-03f707bf363b6b324", + "InstanceFamily": "m4", + "PaymentOption": "NoUpfront", + "UpfrontPrice": "0.000", + "Duration": 31536000 + }, + { + "HourlyPrice": "1.045", + "OfferingId": "hro-0ef9181cabdef7a02", + "InstanceFamily": "m4", + "PaymentOption": "NoUpfront", + "UpfrontPrice": "0.000", + "Duration": 94608000 + }, + { + "HourlyPrice": "0.714", + "OfferingId": "hro-04567a15500b92a51", + "InstanceFamily": "m4", + "PaymentOption": "PartialUpfront", + "UpfrontPrice": "6254.000", + "Duration": 31536000 + }, + { + "HourlyPrice": "0.484", + "OfferingId": "hro-0d5d7a9d23ed7fbfe", + "InstanceFamily": "m4", + "PaymentOption": "PartialUpfront", + "UpfrontPrice": "12720.000", + "Duration": 94608000 + }, + { + "HourlyPrice": "0.000", + "OfferingId": "hro-05da4108ca998c2e5", + "InstanceFamily": "m4", + "PaymentOption": "AllUpfront", + "UpfrontPrice": "23913.000", + "Duration": 94608000 + }, + { + "HourlyPrice": "0.000", + "OfferingId": "hro-0a9f9be3b95a3dc8f", + "InstanceFamily": "m4", + "PaymentOption": "AllUpfront", + "UpfrontPrice": "12257.000", + "Duration": 31536000 + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-host-reservations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-host-reservations.rst new file mode 100644 index 000000000..e22f3189f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-host-reservations.rst @@ -0,0 +1,30 @@ +**To describe Dedicated Host Reservations in your account** + +This example describes the Dedicated Host Reservations in your account. + +Command:: + + aws ec2 describe-host-reservations + +Output:: + + { + "HostReservationSet": [ + { + "Count": 1, + "End": "2019-01-10T12:14:09Z", + "HourlyPrice": "1.499", + "InstanceFamily": "m4", + "OfferingId": "hro-03f707bf363b6b324", + "PaymentOption": "NoUpfront", + "State": "active", + "HostIdSet": [ + "h-013abcd2a00cbd123" + ], + "Start": "2018-01-10T12:14:09Z", + "HostReservationId": "hr-0d418a3a4ffc669ae", + "UpfrontPrice": "0.000", + "Duration": 31536000 + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-hosts.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-hosts.rst new file mode 100644 index 000000000..f4d19f40c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-hosts.rst @@ -0,0 +1,45 @@ +**To view details about Dedicated Hosts** + +The following ``describe-hosts`` example displays details for the ``available`` Dedicated Hosts in your AWS account. :: + + aws ec2 describe-hosts --filter "Name=state,Values=available" + +Output:: + + { + "Hosts": [ + { + "HostId": "h-07879acf49EXAMPLE", + "Tags": [ + { + "Value": "production", + "Key": "purpose" + } + ], + "HostProperties": { + "Cores": 48, + "TotalVCpus": 96, + "InstanceType": "m5.large", + "Sockets": 2 + }, + "Instances": [], + "State": "available", + "AvailabilityZone": "eu-west-1a", + "AvailableCapacity": { + "AvailableInstanceCapacity": [ + { + "AvailableCapacity": 48, + "InstanceType": "m5.large", + "TotalCapacity": 48 + } + ], + "AvailableVCpus": 96 + }, + "HostRecovery": "on", + "AllocationTime": "2019-08-19T08:57:44.000Z", + "AutoPlacement": "off" + } + ] + } + +For more information, see `Viewing Dedicated Hosts `__ in the *Amazon Elastic Compute Cloud User Guide for Linux Instances*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-iam-instance-profile-associations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-iam-instance-profile-associations.rst new file mode 100644 index 000000000..7ca8dd65b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-iam-instance-profile-associations.rst @@ -0,0 +1,32 @@ +**To describe IAM instance profile associations** + +This example describes all of your IAM instance profile associations. + +Command:: + + aws ec2 describe-iam-instance-profile-associations + +Output:: + + { + "IamInstanceProfileAssociations": [ + { + "InstanceId": "i-09eb09efa73ec1dee", + "State": "associated", + "AssociationId": "iip-assoc-0db249b1f25fa24b8", + "IamInstanceProfile": { + "Id": "AIPAJVQN4F5WVLGCJDRGM", + "Arn": "arn:aws:iam::123456789012:instance-profile/admin-role" + } + }, + { + "InstanceId": "i-0402909a2f4dffd14", + "State": "associating", + "AssociationId": "iip-assoc-0d1ec06278d29f44a", + "IamInstanceProfile": { + "Id": "AGJAJVQN4F5WVLGCJABCM", + "Arn": "arn:aws:iam::123456789012:instance-profile/user1-role" + } + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-id-format.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-id-format.rst new file mode 100755 index 000000000..31ac007d7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-id-format.rst @@ -0,0 +1,24 @@ +**Example 1: To describe the ID format of a resource** + +The following ``describe-id-format`` example describes the ID format for security groups. :: + + aws ec2 describe-id-format \ + --resource security-group + +In the following example output, the ``Deadline`` value indicates that the deadline for this resource type to permanently switch from the short ID format to the long ID format expired at 00:00 UTC on August 15, 2018. :: + + { + "Statuses": [ + { + "Deadline": "2018-08-15T00:00:00.000Z", + "Resource": "security-group", + "UseLongIds": true + } + ] + } + +**Example 2: To describe the ID format for all resources** + +The following ``describe-id-format`` example describes the ID format for all resource types. All resource types that supported the short ID format were switched to use the long ID format. :: + + aws ec2 describe-id-format diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-identity-id-format.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-identity-id-format.rst new file mode 100755 index 000000000..d287dfd4b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-identity-id-format.rst @@ -0,0 +1,39 @@ +**To describe the ID format for an IAM role** + +The following ``describe-identity-id-format`` example describes the ID format received by instances created by the IAM role ``EC2Role`` in your AWS account. :: + + aws ec2 describe-identity-id-format \ + --principal-arn arn:aws:iam::123456789012:role/my-iam-role \ + --resource instance + +The following output indicates that instances created by this role receive IDs in long ID format. :: + + { + "Statuses": [ + { + "Deadline": "2016-12-15T00:00:00Z", + "Resource": "instance", + "UseLongIds": true + } + ] + } + +**To describe the ID format for an IAM user** + +The following ``describe-identity-id-format`` example describes the ID format received by snapshots created by the IAM user ``AdminUser`` in your AWS account. :: + + aws ec2 describe-identity-id-format \ + --principal-arn arn:aws:iam::123456789012:user/AdminUser \ + --resource snapshot + +The output indicates that snapshots created by this user receive IDs in long ID format. :: + + { + "Statuses": [ + { + "Deadline": "2016-12-15T00:00:00Z", + "Resource": "snapshot", + "UseLongIds": true + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-image-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-image-attribute.rst new file mode 100644 index 000000000..15db24934 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-image-attribute.rst @@ -0,0 +1,33 @@ +**To describe the launch permissions for an AMI** + +This example describes the launch permissions for the specified AMI. + +Command:: + + aws ec2 describe-image-attribute --image-id ami-5731123e --attribute launchPermission + +Output:: + + { + "LaunchPermissions": [ + { + "UserId": "123456789012" + } + ], + "ImageId": "ami-5731123e", + } + +**To describe the product codes for an AMI** + +This example describes the product codes for the specified AMI. Note that this AMI has no product codes. + +Command:: + + aws ec2 describe-image-attribute --image-id ami-5731123e --attribute productCodes + +Output:: + + { + "ProductCodes": [], + "ImageId": "ami-5731123e", + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-images.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-images.rst new file mode 100644 index 000000000..9949523e8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-images.rst @@ -0,0 +1,76 @@ +**Example 1: To describe an AMI** + +The following ``describe-images`` example describes the specified AMI in the specified Region. :: + + aws ec2 describe-images \ + --region us-east-1 \ + --image-ids ami-1234567890EXAMPLE + +Output:: + + { + "Images": [ + { + "VirtualizationType": "hvm", + "Description": "Provided by Red Hat, Inc.", + "PlatformDetails": "Red Hat Enterprise Linux", + "EnaSupport": true, + "Hypervisor": "xen", + "State": "available", + "SriovNetSupport": "simple", + "ImageId": "ami-1234567890EXAMPLE", + "UsageOperation": "RunInstances:0010", + "BlockDeviceMappings": [ + { + "DeviceName": "/dev/sda1", + "Ebs": { + "SnapshotId": "snap-111222333444aaabb", + "DeleteOnTermination": true, + "VolumeType": "gp2", + "VolumeSize": 10, + "Encrypted": false + } + } + ], + "Architecture": "x86_64", + "ImageLocation": "123456789012/RHEL-8.0.0_HVM-20190618-x86_64-1-Hourly2-GP2", + "RootDeviceType": "ebs", + "OwnerId": "123456789012", + "RootDeviceName": "/dev/sda1", + "CreationDate": "2019-05-10T13:17:12.000Z", + "Public": true, + "ImageType": "machine", + "Name": "RHEL-8.0.0_HVM-20190618-x86_64-1-Hourly2-GP2" + } + ] + } + +For more information, see `Amazon Machine Images (AMI) `__ in the *Amazon EC2 User Guide*. + +**Example 2: To describe AMIs based on filters** + +The following ``describe-images`` example describes Windows AMIs provided by Amazon that are backed by Amazon EBS. :: + + aws ec2 describe-images \ + --owners amazon \ + --filters "Name=platform,Values=windows" "Name=root-device-type,Values=ebs" + +For an example of the output for ``describe-images``, see Example 1. + +For additional examples using filters, see `Listing and filtering your resources `__ in the *Amazon EC2 User Guide*. + +**Example 3: To describe AMIs based on tags** + +The following ``describe-images`` example describes all AMIs that have the tag ``Type=Custom``. The example uses the ``--query`` parameter to display only the AMI IDs. :: + + aws ec2 describe-images \ + --filters "Name=tag:Type,Values=Custom" \ + --query 'Images[*].[ImageId]' \ + --output text + +Output:: + + ami-1234567890EXAMPLE + ami-0abcdef1234567890 + +For additional examples using tag filters, see `Working with tags `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-import-image-tasks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-import-image-tasks.rst new file mode 100755 index 000000000..e9bc48488 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-import-image-tasks.rst @@ -0,0 +1,54 @@ +**To monitor an import image task** + +The following ``describe-import-image-tasks`` example checks the status of the specified import image task. :: + + aws ec2 describe-import-image-tasks \ + --import-task-ids import-ami-1234567890abcdef0 + +Output for an import image task that is in progress. :: + + { + "ImportImageTasks": [ + { + "ImportTaskId": "import-ami-1234567890abcdef0", + "Progress": "28", + "SnapshotDetails": [ + { + "DiskImageSize": 705638400.0, + "Format": "ova", + "Status": "completed", + "UserBucket": { + "S3Bucket": "my-import-bucket", + "S3Key": "vms/my-server-vm.ova" + } + } + ], + "Status": "active", + "StatusMessage": "converting" + } + ] + } + +Output for an import image task that is completed. The ID of the resulting AMI is provided by ``ImageId``. :: + + { + "ImportImageTasks": [ + { + "ImportTaskId": "import-ami-1234567890abcdef0", + "ImageId": "ami-1234567890abcdef0", + "SnapshotDetails": [ + { + "DiskImageSize": 705638400.0, + "Format": "ova", + "SnapshotId": "snap-1234567890abcdef0" + "Status": "completed", + "UserBucket": { + "S3Bucket": "my-import-bucket", + "S3Key": "vms/my-server-vm.ova" + } + } + ], + "Status": "completed" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-import-snapshot-tasks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-import-snapshot-tasks.rst new file mode 100755 index 000000000..91dc11692 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-import-snapshot-tasks.rst @@ -0,0 +1,51 @@ +**To monitor an import snapshot task** + +The following ``describe-import-snapshot-tasks`` example checks the status of the specified import snapshot task. :: + + aws ec2 describe-import-snapshot-tasks \ + --import-task-ids import-snap-1234567890abcdef0 + +Output for an import snapshot task that is in progress:: + + { + "ImportSnapshotTasks": [ + { + "Description": "My server VMDK", + "ImportTaskId": "import-snap-1234567890abcdef0", + "SnapshotTaskDetail": { + "Description": "My server VMDK", + "DiskImageSize": "705638400.0", + "Format": "VMDK", + "Progress": "42", + "Status": "active", + "StatusMessage": "downloading/converting", + "UserBucket": { + "S3Bucket": "my-import-bucket", + "S3Key": "vms/my-server-vm.vmdk" + } + } + } + ] + } + +Output for an import snapshot task that is completed. The ID of the resulting snapshot is provided by ``SnapshotId``. :: + + { + "ImportSnapshotTasks": [ + { + "Description": "My server VMDK", + "ImportTaskId": "import-snap-1234567890abcdef0", + "SnapshotTaskDetail": { + "Description": "My server VMDK", + "DiskImageSize": "705638400.0", + "Format": "VMDK", + "SnapshotId": "snap-1234567890abcdef0" + "Status": "completed", + "UserBucket": { + "S3Bucket": "my-import-bucket", + "S3Key": "vms/my-server-vm.vmdk" + } + } + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-attribute.rst new file mode 100644 index 000000000..c4d5b11cf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-attribute.rst @@ -0,0 +1,67 @@ +**To describe the instance type** + +This example describes the instance type of the specified instance. + +Command:: + + aws ec2 describe-instance-attribute --instance-id i-1234567890abcdef0 --attribute instanceType + +Output:: + + { + "InstanceId": "i-1234567890abcdef0" + "InstanceType": { + "Value": "t1.micro" + } + } + +**To describe the disableApiTermination attribute** + +This example describes the ``disableApiTermination`` attribute of the specified instance. + +Command:: + + aws ec2 describe-instance-attribute --instance-id i-1234567890abcdef0 --attribute disableApiTermination + +Output:: + + { + "InstanceId": "i-1234567890abcdef0" + "DisableApiTermination": { + "Value": "false" + } + } + +**To describe the block device mapping for an instance** + +This example describes the ``blockDeviceMapping`` attribute of the specified instance. + +Command:: + + aws ec2 describe-instance-attribute --instance-id i-1234567890abcdef0 --attribute blockDeviceMapping + +Output:: + + { + "InstanceId": "i-1234567890abcdef0" + "BlockDeviceMappings": [ + { + "DeviceName": "/dev/sda1", + "Ebs": { + "Status": "attached", + "DeleteOnTermination": true, + "VolumeId": "vol-049df61146c4d7901", + "AttachTime": "2013-05-17T22:42:34.000Z" + } + }, + { + "DeviceName": "/dev/sdf", + "Ebs": { + "Status": "attached", + "DeleteOnTermination": false, + "VolumeId": "vol-049df61146c4d7901", + "AttachTime": "2013-09-10T23:07:00.000Z" + } + } + ], + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-connect-endpoints.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-connect-endpoints.rst new file mode 100644 index 000000000..5b74ad6d0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-connect-endpoints.rst @@ -0,0 +1,32 @@ +**To describe an EC2 Instance Connect Endpoint** + +The following ``describe-instance-connect-endpoints`` example describes the specified EC2 Instance Connect Endpoint. :: + + aws ec2 describe-instance-connect-endpoints \ + --region us-east-1 \ + --instance-connect-endpoint-ids eice-0123456789example + +Output:: + + { + "InstanceConnectEndpoints": [ + { + "OwnerId": "111111111111", + "InstanceConnectEndpointId": "eice-0123456789example", + "InstanceConnectEndpointArn": "arn:aws:ec2:us-east-1:111111111111:instance-connect-endpoint/eice-0123456789example", + "State": "create-complete", + "StateMessage": "", + "DnsName": "eice-0123456789example.b67b86ba.ec2-instance-connect-endpoint.us-east-1.amazonaws.com", + "NetworkInterfaceIds": [ + "eni-0123456789example" + ], + "VpcId": "vpc-0123abcd", + "AvailabilityZone": "us-east-1d", + "CreatedAt": "2023-02-07T12:05:37+00:00", + "SubnetId": "subnet-0123abcd", + "Tags": [] + } + ] + } + +For more information, see `Create an EC2 Instance Connect Endpoint `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-credit-specifications.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-credit-specifications.rst new file mode 100644 index 000000000..b61be3392 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-credit-specifications.rst @@ -0,0 +1,19 @@ +**To describe the credit option for CPU usage of one or more instances** + +The following ``describe-instance-credit-specifications`` example describes the CPU credit option for the specified instance. :: + + aws ec2 describe-instance-credit-specifications \ + --instance-ids i-1234567890abcdef0 + +Output:: + + { + "InstanceCreditSpecifications": [ + { + "InstanceId": "i-1234567890abcdef0", + "CpuCredits": "unlimited" + } + ] + } + +For more information, see `Work with burstable performance instances `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-event-notification-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-event-notification-attributes.rst new file mode 100644 index 000000000..df39a4b34 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-event-notification-attributes.rst @@ -0,0 +1,16 @@ +**To describe the tags for scheduled event notifications** + +The following ``describe-instance-event-notification-attributes`` example describes the tags to appear in scheduled event notifications. :: + + aws ec2 describe-instance-event-notification-attributes + +Output:: + + { + "InstanceTagAttribute": { + "InstanceTagKeys": [], + "IncludeAllTagsOfInstance": true + } + } + +For more information, see `Scheduled events for your instances `__ in the *Amazon Elastic Compute Cloud User Guide for Linux Instances*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-event-windows.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-event-windows.rst new file mode 100644 index 000000000..20379b03f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-event-windows.rst @@ -0,0 +1,103 @@ +**Example 1: To describe all event windows** + +The following ``describe-instance-event-windows`` example describes all event windows in the specified Region. :: + + aws ec2 describe-instance-event-windows \ + --region us-east-1 + +Output:: + + { + "InstanceEventWindows": [ + { + "InstanceEventWindowId": "iew-0abcdef1234567890", + "Name": "myEventWindowName", + "CronExpression": "* 21-23 * * 2,3", + "AssociationTarget": { + "InstanceIds": [ + "i-1234567890abcdef0", + "i-0598c7d356eba48d7" + ], + "Tags": [], + "DedicatedHostIds": [] + }, + "State": "active", + "Tags": [] + } + + ... + + ], + "NextToken": "9d624e0c-388b-4862-a31e-a85c64fc1d4a" + } + +**Example 2: To describe a specific event window** + +The following ``describe-instance-event-windows`` example describes a specific event by using the ``instance-event-window`` parameter to describe a specific event window. :: + + aws ec2 describe-instance-event-windows \ + --region us-east-1 \ + --instance-event-window-ids iew-0abcdef1234567890 + +Output:: + + { + "InstanceEventWindows": [ + { + "InstanceEventWindowId": "iew-0abcdef1234567890", + "Name": "myEventWindowName", + "CronExpression": "* 21-23 * * 2,3", + "AssociationTarget": { + "InstanceIds": [ + "i-1234567890abcdef0", + "i-0598c7d356eba48d7" + ], + "Tags": [], + "DedicatedHostIds": [] + }, + "State": "active", + "Tags": [] + } + } + +**Example 3: To describe event windows that match one or more filters** + +The following ``describe-instance-event-windows`` example describes event windows that match one or more filters using the ``filter`` parameter. The ``instance-id`` filter is used to describe all of the event windows that are associated with the specified instance. When a filter is used, it performs a direct match. However, the ``instance-id`` filter is different. If there is no direct match to the instance ID, then it falls back to indirect associations with the event window, such as the tags of the instance or Dedicated Host ID (if the instance is a Dedicated Host). :: + + aws ec2 describe-instance-event-windows \ + --region us-east-1 \ + --filters Name=instance-id,Values=i-1234567890abcdef0 \ + --max-results 100 \ + --next-token + +Output:: + + { + "InstanceEventWindows": [ + { + "InstanceEventWindowId": "iew-0dbc0adb66f235982", + "TimeRanges": [ + { + "StartWeekDay": "sunday", + "StartHour": 2, + "EndWeekDay": "sunday", + "EndHour": 8 + } + ], + "Name": "myEventWindowName", + "AssociationTarget": { + "InstanceIds": [], + "Tags": [], + "DedicatedHostIds": [ + "h-0140d9a7ecbd102dd" + ] + }, + "State": "active", + "Tags": [] + } + ] + } + +In the example output, the instance is on a Dedicated Host, which is associated with the event window. + +For event window constraints, see `Considerations `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-image-metadata.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-image-metadata.rst new file mode 100644 index 000000000..c768a6610 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-image-metadata.rst @@ -0,0 +1,186 @@ +**Example 1: To describe the AMI metadata for all instances** + +The following ``describe-instance-image-metadata`` example describes the AMI metadata of all the instances in your AWS account in the specified Region. :: + + aws ec2 describe-instance-image-metadata \ + --region us-east-1 + +Output:: + + { + "InstanceImageMetadata": [ + { + "InstanceId": "i-1234567890EXAMPLE", + "InstanceType": "t2.micro", + "LaunchTime": "2024-08-28T11:25:45+00:00", + "AvailabilityZone": "us-east-1a", + "State": { + "Code": 16, + "Name": "running" + }, + "OwnerId": "123412341234", + "Tags": [ + { + "Key": "MyTagName", + "Value": "my-tag-value" + } + ], + "ImageMetadata": { + "ImageId": "ami-0b752bf1df193a6c4", + "Name": "al2023-ami-2023.5.20240819.0-kernel-6.1-x86_64", + "OwnerId": "137112412989", + "State": "available", + "ImageOwnerAlias": "amazon", + "CreationDate": "2023-01-25T17:20:40Z", + "DeprecationTime": "2025-01-25T17:20:40Z", + "IsPublic": true + } + } + ], + "NextToken": "...EXAMPLEwIAABAA2JHaFxLnEXAMPLE..." + } + +For more information, see `Amazon Machine Images in Amazon EC2 `__ in the *Amazon EC2 User Guide*. + +**Example 2: To describe the AMI metadata for the specified instances** + +The following ``describe-instance-image-metadata`` example describes the AMI metadata for the specified instances. :: + + aws ec2 describe-instance-image-metadata \ + --region us-east-1 \ + --instance-ids i-1234567890EXAMPLE i-0987654321EXAMPLE + +Output:: + + { + "InstanceImageMetadata": [ + { + "InstanceId": "i-1234567890EXAMPLE", + "InstanceType": "t2.micro", + "LaunchTime": "2024-08-28T11:25:45+00:00", + "AvailabilityZone": "us-east-1a", + "State": { + "Code": 16, + "Name": "running" + }, + "OwnerId": "123412341234", + "Tags": [ + { + "Key": "MyTagName", + "Value": "my-tag-value" + } + ], + "ImageMetadata": { + "ImageId": "ami-0b752bf1df193a6c4", + "Name": "al2023-ami-2023.5.20240819.0-kernel-6.1-x86_64", + "OwnerId": "137112412989", + "State": "available", + "ImageOwnerAlias": "amazon", + "CreationDate": "2023-01-25T17:20:40Z", + "DeprecationTime": "2025-01-25T17:20:40Z", + "IsPublic": true + } + }, + { + "InstanceId": "i-0987654321EXAMPLE", + "InstanceType": "t2.micro", + "LaunchTime": "2024-08-28T11:25:45+00:00", + "AvailabilityZone": "us-east-1a", + "State": { + "Code": 16, + "Name": "running" + }, + "OwnerId": "123412341234", + "Tags": [ + { + "Key": "MyTagName", + "Value": "my-tag-value" + } + ], + "ImageMetadata": { + "ImageId": "ami-0b752bf1df193a6c4", + "Name": "al2023-ami-2023.5.20240819.0-kernel-6.1-x86_64", + "OwnerId": "137112412989", + "State": "available", + "ImageOwnerAlias": "amazon", + "CreationDate": "2023-01-25T17:20:40Z", + "DeprecationTime": "2025-01-25T17:20:40Z", + "IsPublic": true + } + } + ] + } + +For more information, see `Amazon Machine Images in Amazon EC2 `__ in the *Amazon EC2 User Guide*. + +**Example 3: To describe the AMI metadata for instances based on filters** + +The following ``describe-instance-image-metadata`` example describes the AMI metadata for ``t2.nano`` and ``t2.micro`` instances in the ``us-east-1a`` Availability Zone. :: + + aws ec2 describe-instance-image-metadata \ + --region us-east-1 \ + --filters Name=availability-zone,Values=us-east-1a Name=instance-type,Values=t2.nano,t2.micro + +Output:: + + { + "InstanceImageMetadata": [ + { + "InstanceId": "i-1234567890EXAMPLE", + "InstanceType": "t2.micro", + "LaunchTime": "2024-08-28T11:25:45+00:00", + "AvailabilityZone": "us-east-1a", + "State": { + "Code": 16, + "Name": "running" + }, + "OwnerId": "123412341234", + "Tags": [ + { + "Key": "MyTagName", + "Value": "my-tag-value" + } + ], + "ImageMetadata": { + "ImageId": "ami-0b752bf1df193a6c4", + "Name": "al2023-ami-2023.5.20240819.0-kernel-6.1-x86_64", + "OwnerId": "137112412989", + "State": "available", + "ImageOwnerAlias": "amazon", + "CreationDate": "2023-01-25T17:20:40Z", + "DeprecationTime": "2025-01-25T17:20:40Z", + "IsPublic": true + } + }, + { + "InstanceId": "i-0987654321EXAMPLE", + "InstanceType": "t2.micro", + "LaunchTime": "2024-08-28T11:25:45+00:00", + "AvailabilityZone": "us-east-1a", + "State": { + "Code": 16, + "Name": "running" + }, + "OwnerId": "123412341234", + "Tags": [ + { + "Key": "MyTagName", + "Value": "my-tag-value" + } + ], + "ImageMetadata": { + "ImageId": "ami-0b752bf1df193a6c4", + "Name": "al2023-ami-2023.5.20240819.0-kernel-6.1-x86_64", + "OwnerId": "137112412989", + "State": "available", + "ImageOwnerAlias": "amazon", + "CreationDate": "2023-01-25T17:20:40Z", + "DeprecationTime": "2025-01-25T17:20:40Z", + "IsPublic": true + } + } + ], + "NextToken": "...EXAMPLEV7ixRYHwIAABAA2JHaFxLnDAzpatfEXAMPLE..." + } + +For more information, see `Amazon Machine Images in Amazon EC2 `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-status.rst new file mode 100644 index 000000000..180af12c9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-status.rst @@ -0,0 +1,41 @@ +**To describe the status of an instance** + +The following ``describe-instance-status`` example describes the current status of the specified instance. :: + + aws ec2 describe-instance-status \ + --instance-ids i-1234567890abcdef0 + +Output:: + + { + "InstanceStatuses": [ + { + "InstanceId": "i-1234567890abcdef0", + "InstanceState": { + "Code": 16, + "Name": "running" + }, + "AvailabilityZone": "us-east-1d", + "SystemStatus": { + "Status": "ok", + "Details": [ + { + "Status": "passed", + "Name": "reachability" + } + ] + }, + "InstanceStatus": { + "Status": "ok", + "Details": [ + { + "Status": "passed", + "Name": "reachability" + } + ] + } + } + ] + } + +For more information, see `Monitor the status of your instances `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-topology.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-topology.rst new file mode 100644 index 000000000..ce501365e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-topology.rst @@ -0,0 +1,61 @@ +**To describe the instance topology of all your instances** + +The following ``describe-instance-topology`` example describes the topology of all your instances that match the supported instance types for this command. :: + + aws ec2 describe-instance-topology \ + --region us-west-2 + +Output:: + + { + "Instances": [ + { + "InstanceId": "i-1111111111example", + "InstanceType": "p4d.24xlarge", + "GroupName": "my-ml-cpg", + "NetworkNodes": [ + "nn-1111111111example", + "nn-2222222222example", + "nn-3333333333example" + ], + "ZoneId": "usw2-az2", + "AvailabilityZone": "us-west-2a" + }, + { + "InstanceId": "i-2222222222example", + "InstanceType": "p4d.24xlarge", + "NetworkNodes": [ + "nn-1111111111example", + "nn-2222222222example", + "nn-3333333333example" + ], + "ZoneId": "usw2-az2", + "AvailabilityZone": "us-west-2a" + }, + { + "InstanceId": "i-3333333333example", + "InstanceType": "trn1.32xlarge", + "NetworkNodes": [ + "nn-1212121212example", + "nn-1211122211example", + "nn-1311133311example" + ], + "ZoneId": "usw2-az4", + "AvailabilityZone": "us-west-2d" + }, + { + "InstanceId": "i-444444444example", + "InstanceType": "trn1.2xlarge", + "NetworkNodes": [ + "nn-1111111111example", + "nn-5434334334example", + "nn-1235301234example" + ], + "ZoneId": "usw2-az2", + "AvailabilityZone": "us-west-2a" + } + ], + "NextToken": "SomeEncryptedToken" + } + +For more information, including more examples, see `Amazon EC2 instance topology `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-type-offerings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-type-offerings.rst new file mode 100755 index 000000000..49bbd9fbd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-type-offerings.rst @@ -0,0 +1,82 @@ +**Example 1: To list the instance types offered in a Region** + +The following ``describe-instance-type-offerings`` example lists the instance types offered in the Region configured as the default Region for the AWS CLI. :: + + aws ec2 describe-instance-type-offerings + +To list the instance types offered in a different Region, specify the Region using the ``--region`` parameter. :: + + aws ec2 describe-instance-type-offerings \ + --region us-east-2 + +Output:: + + { + "InstanceTypeOfferings": [ + { + "InstanceType": "m5.2xlarge", + "LocationType": "region", + "Location": "us-east-2" + }, + { + "InstanceType": "t3.micro", + "LocationType": "region", + "Location": "us-east-2" + }, + ... + ] + } + +**Example 2: To list the instance types offered in an Availability Zone** + +The following ``describe-instance-type-offerings`` example lists the instance types offered in the specified Availability Zone. The Availability Zone must be in the specified Region. :: + + aws ec2 describe-instance-type-offerings \ + --location-type availability-zone \ + --filters Name=location,Values=us-east-2a \ + --region us-east-2 + +**Example 3: To check whether an instance type is supported** + +The following ``describe-instance-type-offerings`` command indicates whether the ``c5.xlarge`` instance type is supported in the specified Region. :: + + aws ec2 describe-instance-type-offerings \ + --filters Name=instance-type,Values=c5.xlarge \ + --region us-east-2 + +The following ``describe-instance-type-offerings`` example lists all C5 instance types that are supported in the specified Region. :: + + aws ec2 describe-instance-type-offerings \ + --filters Name=instance-type,Values=c5* \ + --query "InstanceTypeOfferings[].InstanceType" \ + --region us-east-2 + +Output:: + + [ + "c5d.12xlarge", + "c5d.9xlarge", + "c5n.xlarge", + "c5.xlarge", + "c5d.metal", + "c5n.metal", + "c5.large", + "c5d.2xlarge", + "c5n.4xlarge", + "c5.2xlarge", + "c5n.large", + "c5n.9xlarge", + "c5d.large", + "c5.18xlarge", + "c5d.18xlarge", + "c5.12xlarge", + "c5n.18xlarge", + "c5.metal", + "c5d.4xlarge", + "c5.24xlarge", + "c5d.xlarge", + "c5n.2xlarge", + "c5d.24xlarge", + "c5.9xlarge", + "c5.4xlarge" + ] diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-types.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-types.rst new file mode 100755 index 000000000..f15a051e0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instance-types.rst @@ -0,0 +1,104 @@ +**Example 1: To describe an instance type** + +The following ``describe-instance-types`` example displays details for the specified instance type. :: + + aws ec2 describe-instance-types \ + --instance-types t2.micro + +Output:: + + { + "InstanceTypes": [ + { + "InstanceType": "t2.micro", + "CurrentGeneration": true, + "FreeTierEligible": true, + "SupportedUsageClasses": [ + "on-demand", + "spot" + ], + "SupportedRootDeviceTypes": [ + "ebs" + ], + "BareMetal": false, + "Hypervisor": "xen", + "ProcessorInfo": { + "SupportedArchitectures": [ + "i386", + "x86_64" + ], + "SustainedClockSpeedInGhz": 2.5 + }, + "VCpuInfo": { + "DefaultVCpus": 1, + "DefaultCores": 1, + "DefaultThreadsPerCore": 1, + "ValidCores": [ + 1 + ], + "ValidThreadsPerCore": [ + 1 + ] + }, + "MemoryInfo": { + "SizeInMiB": 1024 + }, + "InstanceStorageSupported": false, + "EbsInfo": { + "EbsOptimizedSupport": "unsupported", + "EncryptionSupport": "supported" + }, + "NetworkInfo": { + "NetworkPerformance": "Low to Moderate", + "MaximumNetworkInterfaces": 2, + "Ipv4AddressesPerInterface": 2, + "Ipv6AddressesPerInterface": 2, + "Ipv6Supported": true, + "EnaSupport": "unsupported" + }, + "PlacementGroupInfo": { + "SupportedStrategies": [ + "partition", + "spread" + ] + }, + "HibernationSupported": false, + "BurstablePerformanceSupported": true, + "DedicatedHostsSupported": false, + "AutoRecoverySupported": true + } + ] + } + +For more information, see `Instance Types `__ in *Amazon Elastic Compute Cloud +User Guide for Linux Instances*. + +**Example 2: To filter the available instance types** + +You can specify a filter to scope the results to instance types that have a specific characteristic. The following ``describe-instance-types`` example lists the instance types that support hibernation. :: + + aws ec2 describe-instance-types \ + --filters Name=hibernation-supported,Values=true --query 'InstanceTypes[*].InstanceType' + +Output:: + + [ + "m5.8xlarge", + "r3.large", + "c3.8xlarge", + "r5.large", + "m4.4xlarge", + "c4.large", + "m5.xlarge", + "m4.xlarge", + "c3.large", + "c4.8xlarge", + "c4.4xlarge", + "c5.xlarge", + "c5.12xlarge", + "r5.4xlarge", + "c5.4xlarge" + ] + +For more information, see `Instance Types `__ in *Amazon Elastic Compute Cloud +User Guide for Linux Instances*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instances.rst new file mode 100644 index 000000000..3ab4a32e5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-instances.rst @@ -0,0 +1,389 @@ +**Example 1: To describe an instance** + +The following ``describe-instances`` example describes the specified instance. :: + + aws ec2 describe-instances \ + --instance-ids i-1234567890abcdef0 + +Output:: + + { + "Reservations": [ + { + "Groups": [], + "Instances": [ + { + "AmiLaunchIndex": 0, + "ImageId": "ami-0abcdef1234567890", + "InstanceId": "i-1234567890abcdef0", + "InstanceType": "t3.nano", + "KeyName": "my-key-pair", + "LaunchTime": "2022-11-15T10:48:59+00:00", + "Monitoring": { + "State": "disabled" + }, + "Placement": { + "AvailabilityZone": "us-east-2a", + "GroupName": "", + "Tenancy": "default" + }, + "PrivateDnsName": "ip-10-0-0-157.us-east-2.compute.internal", + "PrivateIpAddress": "10-0-0-157", + "ProductCodes": [], + "PublicDnsName": "ec2-34-253-223-13.us-east-2.compute.amazonaws.com", + "PublicIpAddress": "34.253.223.13", + "State": { + "Code": 16, + "Name": "running" + }, + "StateTransitionReason": "", + "SubnetId": "subnet-04a636d18e83cfacb", + "VpcId": "vpc-1234567890abcdef0", + "Architecture": "x86_64", + "BlockDeviceMappings": [ + { + "DeviceName": "/dev/xvda", + "Ebs": { + "AttachTime": "2022-11-15T10:49:00+00:00", + "DeleteOnTermination": true, + "Status": "attached", + "VolumeId": "vol-02e6ccdca7de29cf2" + } + } + ], + "ClientToken": "1234abcd-1234-abcd-1234-d46a8903e9bc", + "EbsOptimized": true, + "EnaSupport": true, + "Hypervisor": "xen", + "IamInstanceProfile": { + "Arn": "arn:aws:iam::111111111111:instance-profile/AmazonSSMRoleForInstancesQuickSetup", + "Id": "111111111111111111111" + }, + "NetworkInterfaces": [ + { + "Association": { + "IpOwnerId": "amazon", + "PublicDnsName": "ec2-34-253-223-13.us-east-2.compute.amazonaws.com", + "PublicIp": "34.253.223.13" + }, + "Attachment": { + "AttachTime": "2022-11-15T10:48:59+00:00", + "AttachmentId": "eni-attach-1234567890abcdefg", + "DeleteOnTermination": true, + "DeviceIndex": 0, + "Status": "attached", + "NetworkCardIndex": 0 + }, + "Description": "", + "Groups": [ + { + "GroupName": "launch-wizard-146", + "GroupId": "sg-1234567890abcdefg" + } + ], + "Ipv6Addresses": [], + "MacAddress": "00:11:22:33:44:55", + "NetworkInterfaceId": "eni-1234567890abcdefg", + "OwnerId": "104024344472", + "PrivateDnsName": "ip-10-0-0-157.us-east-2.compute.internal", + "PrivateIpAddress": "10-0-0-157", + "PrivateIpAddresses": [ + { + "Association": { + "IpOwnerId": "amazon", + "PublicDnsName": "ec2-34-253-223-13.us-east-2.compute.amazonaws.com", + "PublicIp": "34.253.223.13" + }, + "Primary": true, + "PrivateDnsName": "ip-10-0-0-157.us-east-2.compute.internal", + "PrivateIpAddress": "10-0-0-157" + } + ], + "SourceDestCheck": true, + "Status": "in-use", + "SubnetId": "subnet-1234567890abcdefg", + "VpcId": "vpc-1234567890abcdefg", + "InterfaceType": "interface" + } + ], + "RootDeviceName": "/dev/xvda", + "RootDeviceType": "ebs", + "SecurityGroups": [ + { + "GroupName": "launch-wizard-146", + "GroupId": "sg-1234567890abcdefg" + } + ], + "SourceDestCheck": true, + "Tags": [ + { + "Key": "Name", + "Value": "my-instance" + } + ], + "VirtualizationType": "hvm", + "CpuOptions": { + "CoreCount": 1, + "ThreadsPerCore": 2 + }, + "CapacityReservationSpecification": { + "CapacityReservationPreference": "open" + }, + "HibernationOptions": { + "Configured": false + }, + "MetadataOptions": { + "State": "applied", + "HttpTokens": "optional", + "HttpPutResponseHopLimit": 1, + "HttpEndpoint": "enabled", + "HttpProtocolIpv6": "disabled", + "InstanceMetadataTags": "enabled" + }, + "EnclaveOptions": { + "Enabled": false + }, + "PlatformDetails": "Linux/UNIX", + "UsageOperation": "RunInstances", + "UsageOperationUpdateTime": "2022-11-15T10:48:59+00:00", + "PrivateDnsNameOptions": { + "HostnameType": "ip-name", + "EnableResourceNameDnsARecord": true, + "EnableResourceNameDnsAAAARecord": false + }, + "MaintenanceOptions": { + "AutoRecovery": "default" + } + } + ], + "OwnerId": "111111111111", + "ReservationId": "r-1234567890abcdefg" + } + ] + } + +**Example 2: To filter for instances with the specified type** + +The following ``describe-instances`` example uses filters to scope the results to instances of the specified type. :: + + aws ec2 describe-instances \ + --filters Name=instance-type,Values=m5.large + +For example output, see Example 1. + +For more information, see `List and filter using the CLI `__ in the *Amazon EC2 User Guide*. + +**Example 3: To filter for instances with the specified type and Availability Zone** + +The following ``describe-instances`` example uses multiple filters to scope the results to instances with the specified type that are also in the specified Availability Zone. :: + + aws ec2 describe-instances \ + --filters Name=instance-type,Values=t2.micro,t3.micro Name=availability-zone,Values=us-east-2c + +For example output, see Example 1. + +**Example 4: To filter for instances with the specified type and Availability Zone using a JSON file** + +The following ``describe-instances`` example uses a JSON input file to perform the same filtering as the previous example. When filters get more complicated, they can be easier to specify in a JSON file. :: + + aws ec2 describe-instances \ + --filters file://filters.json + +Contents of ``filters.json``:: + + [ + { + "Name": "instance-type", + "Values": ["t2.micro", "t3.micro"] + }, + { + "Name": "availability-zone", + "Values": ["us-east-2c"] + } + ] + +For example output, see Example 1. + +**Example 5: To filter for instances with the specified Owner tag** + +The following ``describe-instances`` example uses tag filters to scope the results to instances that have a tag with the specified tag key (Owner), regardless of the tag value. :: + + aws ec2 describe-instances \ + --filters "Name=tag-key,Values=Owner" + +For example output, see Example 1. + +**Example 6: To filter for instances with the specified my-team tag value** + +The following ``describe-instances`` example uses tag filters to scope the results to instances that have a tag with the specified tag value (my-team), regardless of the tag key. :: + + aws ec2 describe-instances \ + --filters "Name=tag-value,Values=my-team" + +For example output, see Example 1. + +**Example 7: To filter for instances with the specified Owner tag and my-team value** + +The following ``describe-instances`` example uses tag filters to scope the results to instances that have the specified tag (Owner=my-team). :: + + aws ec2 describe-instances \ + --filters "Name=tag:Owner,Values=my-team" + +For example output, see Example 1. + +**Example 8: To display only instance and subnet IDs for all instances** + +The following ``describe-instances`` examples use the ``--query`` parameter to display only the instance and subnet IDs for all instances, in JSON format. + +Linux and macOS:: + + aws ec2 describe-instances \ + --query 'Reservations[*].Instances[*].{Instance:InstanceId,Subnet:SubnetId}' \ + --output json + +Windows:: + + aws ec2 describe-instances ^ + --query "Reservations[*].Instances[*].{Instance:InstanceId,Subnet:SubnetId}" ^ + --output json + +Output:: + + [ + { + "Instance": "i-057750d42936e468a", + "Subnet": "subnet-069beee9b12030077" + }, + { + "Instance": "i-001efd250faaa6ffa", + "Subnet": "subnet-0b715c6b7db68927a" + }, + { + "Instance": "i-027552a73f021f3bd", + "Subnet": "subnet-0250c25a1f4e15235" + } + ... + ] + +**Example 9: To filter instances of the specified type and only display their instance IDs** + +The following ``describe-instances`` example uses filters to scope the results to instances of the specified type and the ``--query`` parameter to display only the instance IDs. :: + + aws ec2 describe-instances \ + --filters "Name=instance-type,Values=t2.micro" \ + --query "Reservations[*].Instances[*].[InstanceId]" \ + --output text + +Output:: + + i-031c0dc19de2fb70c + i-00d8bff789a736b75 + i-0b715c6b7db68927a + i-0626d4edd54f1286d + i-00b8ae04f9f99908e + i-0fc71c25d2374130c + +**Example 10: To filter instances of the specified type and only display their instance IDs, Availability Zone, and the specified tag value** + +The following ``describe-instances`` examples display the instance ID, Availability Zone, and the value of the ``Name`` tag for instances that have a tag with the name ``tag-key``, in table format. + +Linux and macOS:: + + aws ec2 describe-instances \ + --filters Name=tag-key,Values=Name \ + --query 'Reservations[*].Instances[*].{Instance:InstanceId,AZ:Placement.AvailabilityZone,Name:Tags[?Key==`Name`]|[0].Value}' \ + --output table + +Windows:: + + aws ec2 describe-instances ^ + --filters Name=tag-key,Values=Name ^ + --query "Reservations[*].Instances[*].{Instance:InstanceId,AZ:Placement.AvailabilityZone,Name:Tags[?Key=='Name']|[0].Value}" ^ + --output table + +Output:: + + ------------------------------------------------------------- + | DescribeInstances | + +--------------+-----------------------+--------------------+ + | AZ | Instance | Name | + +--------------+-----------------------+--------------------+ + | us-east-2b | i-057750d42936e468a | my-prod-server | + | us-east-2a | i-001efd250faaa6ffa | test-server-1 | + | us-east-2a | i-027552a73f021f3bd | test-server-2 | + +--------------+-----------------------+--------------------+ + +**Example 11: To describe instances in a partition placement group** + +The following ``describe-instances`` example describes the specified instance. The output includes the placement information for the instance, which contains the placement group name and the partition number for the instance. :: + + aws ec2 describe-instances \ + --instance-ids i-0123a456700123456 \ + --query "Reservations[*].Instances[*].Placement" + +Output:: + + [ + [ + { + "AvailabilityZone": "us-east-1c", + "GroupName": "HDFS-Group-A", + "PartitionNumber": 3, + "Tenancy": "default" + } + + ] + ] + +For more information, see `Describing instances in a placement group `__ in the *Amazon EC2 User Guide*. + +**Example 12: To filter to instances with the specified placement group and partition number** + +The following ``describe-instances`` example filters the results to only those instances with the specified placement group and partition number. :: + + aws ec2 describe-instances \ + --filters "Name=placement-group-name,Values=HDFS-Group-A" "Name=placement-partition-number,Values=7" + +The following shows only the relevant information from the output. :: + + "Instances": [ + { + "InstanceId": "i-0123a456700123456", + "InstanceType": "r4.large", + "Placement": { + "AvailabilityZone": "us-east-1c", + "GroupName": "HDFS-Group-A", + "PartitionNumber": 7, + "Tenancy": "default" + } + }, + { + "InstanceId": "i-9876a543210987654", + "InstanceType": "r4.large", + "Placement": { + "AvailabilityZone": "us-east-1c", + "GroupName": "HDFS-Group-A", + "PartitionNumber": 7, + "Tenancy": "default" + } + ], + +For more information, see `Describing instances in a placement group `__ in the *Amazon EC2 User Guide*. + +**Example 13: To filter to instances that are configured to allow access to tags from instance metadata** + +The following ``describe-instances`` example filters the results to only those instances that are configured to allow access to instance tags from instance metadata. :: + + aws ec2 describe-instances \ + --filters "Name=metadata-options.instance-metadata-tags,Values=enabled" \ + --query "Reservations[*].Instances[*].InstanceId" \ + --output text + +The following shows the expected output. :: + + i-1234567890abcdefg + i-abcdefg1234567890 + i-11111111aaaaaaaaa + i-aaaaaaaa111111111 + +For more information, see `Work with instance tags in instance metadata `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-internet-gateways.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-internet-gateways.rst new file mode 100644 index 000000000..00a2fabf9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-internet-gateways.rst @@ -0,0 +1,31 @@ +**To describe an internet gateway** + +The following ``describe-internet-gateways`` example describes the specified internet gateway. :: + + aws ec2 describe-internet-gateways \ + --internet-gateway-ids igw-0d0fb496b3EXAMPLE + +Output:: + + { + "InternetGateways": [ + { + "Attachments": [ + { + "State": "available", + "VpcId": "vpc-0a60eb65b4EXAMPLE" + } + ], + "InternetGatewayId": "igw-0d0fb496b3EXAMPLE", + "OwnerId": "123456789012", + "Tags": [ + { + "Key": "Name", + "Value": "my-igw" + } + ] + } + ] + } + +For more information, see `Internet gateways `__ in the *Amazon VPC User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-ipam-pools.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-ipam-pools.rst new file mode 100644 index 000000000..74bb162aa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-ipam-pools.rst @@ -0,0 +1,49 @@ +**To view the details for an IPAM pool** + +The following ``describe-ipam-pools`` example shows the details for pools. + +(Linux):: + + aws ec2 describe-ipam-pools \ + --filters Name=owner-id,Values=123456789012 Name=ipam-scope-id,Values=ipam-scope-02fc38cd4c48e7d38 + +(Windows):: + + aws ec2 describe-ipam-pools ^ + --filters Name=owner-id,Values=123456789012 Name=ipam-scope-id,Values=ipam-scope-02fc38cd4c48e7d38 + +Output:: + + { + "IpamPools": [ + { + "OwnerId": "123456789012", + "IpamPoolId": "ipam-pool-02ec043a19bbe5d08", + "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-02ec043a19bbe5d08", + "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-02fc38cd4c48e7d38", + "IpamScopeType": "private", + "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-08440e7a3acde3908", + "IpamRegion": "us-east-1", + "Locale": "None", + "PoolDepth": 1, + "State": "create-complete", + "AutoImport": true, + "AddressFamily": "ipv4", + "AllocationMinNetmaskLength": 16, + "AllocationMaxNetmaskLength": 26, + "AllocationDefaultNetmaskLength": 24, + "AllocationResourceTags": [ + { + "Key": "Environment", + "Value": "Preprod" + } + ], + "Tags": [ + { + "Key": "Name", + "Value": "Preprod pool" + } + ] + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-ipam-resource-discoveries.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-ipam-resource-discoveries.rst new file mode 100644 index 000000000..38149c14e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-ipam-resource-discoveries.rst @@ -0,0 +1,50 @@ +**Example 1: View complete details of resource discoveries** + +In this example, you're a delegated IPAM admin who wants to create and share a resource discovery with the IPAM admin in another AWS Organization so that the admin can manage and monitor the IP addresses of resources in your organization. + +This example may be useful if: + +* You tried to create a resource discovery, but you got an error that you've reached your limit of 1. You realize that you may have already created a resource discovery and you want to view it in your account. +* You have resources in a Region that are not being discovered by the IPAM. You want to view the ``--operating-regions`` defined for the resource and ensure that you've added the right Region as an operating Region so that the resources there can be discovered. + +The following ``describe-ipam-resource-discoveries`` example lists the details of the resource discovery in your AWS account. You can have one resource discovery per AWS Region. :: + + aws ec2 describe-ipam-resource-discoveries \ + --region us-east-1 + +Output:: + + { + "IpamResourceDiscoveries": [ + { + "OwnerId": "149977607591", + "IpamResourceDiscoveryId": "ipam-res-disco-0f8bdee9067137c0d", + "IpamResourceDiscoveryArn": "arn:aws:ec2::149977607591:ipam-resource-discovery/ipam-res-disco-0f8bdee9067137c0d", + "IpamResourceDiscoveryRegion": "us-east-1", + "OperatingRegions": [ + { + "RegionName": "us-east-1" + } + ], + "IsDefault": false, + "State": "create-complete", + "Tags": [] + } + ] + } + +For more information, see `Integrate IPAM with accounts outside of your organization `__ in the *Amazon VPC IPAM User Guide*. + +**Example 2: View only resource discovery IDs** + +The following ``describe-ipam-resource-discoveries`` example lists the ID of the resource discovery in your AWS account. You can have one resource discovery per AWS Region. :: + + aws ec2 describe-ipam-resource-discoveries \ + --query "IpamResourceDiscoveries[*].IpamResourceDiscoveryId" \ + --output text + +Output:: + + ipam-res-disco-0481e39b242860333 + +For more information, see `Integrate IPAM with accounts outside of your organization `__ in the *Amazon VPC IPAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-ipam-resource-discovery-associations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-ipam-resource-discovery-associations.rst new file mode 100644 index 000000000..c08711e91 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-ipam-resource-discovery-associations.rst @@ -0,0 +1,50 @@ +**To view all resource discovery associations with your IPAM** + +In this example, you're a IPAM delegated admin who has associated resource discoveries with your IPAM to integrate other accounts with your IPAM. You've noticed that your IPAM is not discovering the resources in the operating Regions of the resource discovery as expected. You want to check the status and state of the resource discovery to ensure that the account that created it is still active and the resource discovery is still being shared. + +The ``--region`` must be the home Region of your IPAM. + +The following ``describe-ipam-resource-discovery-associations`` example lists the resource discovery associations in your AWS account. :: + + aws ec2 describe-ipam-resource-discovery-associations \ + --region us-east-1 + +Output:: + + { + "IpamResourceDiscoveryAssociations": [ + { + "OwnerId": "320805250157", + "IpamResourceDiscoveryAssociationId": "ipam-res-disco-assoc-05e6b45eca5bf5cf7", + "IpamResourceDiscoveryAssociationArn": "arn:aws:ec2::320805250157:ipam-resource-discovery-association/ipam-res-disco-assoc-05e6b45eca5bf5cf7", + "IpamResourceDiscoveryId": "ipam-res-disco-0f4ef577a9f37a162", + "IpamId": "ipam-005f921c17ebd5107", + "IpamArn": "arn:aws:ec2::320805250157:ipam/ipam-005f921c17ebd5107", + "IpamRegion": "us-east-1", + "IsDefault": true, + "ResourceDiscoveryStatus": "active", + "State": "associate-complete", + "Tags": [] + }, + { + "OwnerId": "149977607591", + "IpamResourceDiscoveryAssociationId": "ipam-res-disco-assoc-0dfd21ae189ab5f62", + "IpamResourceDiscoveryAssociationArn": "arn:aws:ec2::149977607591:ipam-resource-discovery-association/ipam-res-disco-assoc-0dfd21ae189ab5f62", + "IpamResourceDiscoveryId": "ipam-res-disco-0365d2977fc1672fe", + "IpamId": "ipam-005f921c17ebd5107", + "IpamArn": "arn:aws:ec2::149977607591:ipam/ipam-005f921c17ebd5107", + "IpamRegion": "us-east-1", + "IsDefault": false, + "ResourceDiscoveryStatus": "active", + "State": "create-complete", + "Tags": [] + } + ] + } + +In this example, after running this command, you notice that you have one non-default resource discovery (``"IsDefault": false ``) that is ``"ResourceDiscoveryStatus": "not-found"`` and ``"State": "create-complete"``. The resource discovery owner's account has been closed. If, in another case, you notice that is ``"ResourceDiscoveryStatus": "not-found"`` and ``"State": "associate-complete"``, this indicates that one of the following has happened: + +* The resource discovery was deleted by the resource discovery owner. +* The resource discovery owner unshared the resource discovery. + +For more information, see `Integrate IPAM with accounts outside of your organization `__ in the *Amazon VPC IPAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-ipam-scopes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-ipam-scopes.rst new file mode 100644 index 000000000..a19fd7fe8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-ipam-scopes.rst @@ -0,0 +1,55 @@ +**To view the details for an IPAM scope** + +The following ``describe-ipam-scopes`` example shows the details for scopes. :: + + aws ec2 describe-ipam-scopes \ + --filters Name=owner-id,Values=123456789012 Name=ipam-id,Values=ipam-08440e7a3acde3908 + +Output:: + + { + "IpamScopes": [ + { + "OwnerId": "123456789012", + "IpamScopeId": "ipam-scope-02fc38cd4c48e7d38", + "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-02fc38cd4c48e7d38", + "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-08440e7a3acde3908", + "IpamRegion": "us-east-1", + "IpamScopeType": "private", + "IsDefault": true, + "PoolCount": 2, + "State": "create-complete", + "Tags": [] + }, + { + "OwnerId": "123456789012", + "IpamScopeId": "ipam-scope-0b9eed026396dbc16", + "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-0b9eed026396dbc16", + "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-08440e7a3acde3908", + "IpamRegion": "us-east-1", + "IpamScopeType": "public", + "IsDefault": true, + "PoolCount": 0, + "State": "create-complete", + "Tags": [] + }, + { + "OwnerId": "123456789012", + "IpamScopeId": "ipam-scope-0f1aff29486355c22", + "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-0f1aff29486355c22", + "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-08440e7a3acde3908", + "IpamRegion": "us-east-1", + "IpamScopeType": "private", + "IsDefault": false, + "Description": "Example description", + "PoolCount": 0, + "State": "create-complete", + "Tags": [ + { + "Key": "Name", + "Value": "Example name value" + } + ] + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-ipams.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-ipams.rst new file mode 100644 index 000000000..0c9b78a42 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-ipams.rst @@ -0,0 +1,40 @@ +**To view the details for an IPAM** + +The following ``describe-ipams`` example shows the details of an IPAM. :: + + aws ec2 describe-ipams \ + --filters Name=owner-id,Values=123456789012 + +Output:: + + { + "Ipams": [ + { + "OwnerId": "123456789012", + "IpamId": "ipam-08440e7a3acde3908", + "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-08440e7a3acde3908", + "IpamRegion": "us-east-1", + "PublicDefaultScopeId": "ipam-scope-0b9eed026396dbc16", + "PrivateDefaultScopeId": "ipam-scope-02fc38cd4c48e7d38", + "ScopeCount": 3, + "OperatingRegions": [ + { + "RegionName": "us-east-1" + }, + { + "RegionName": "us-east-2" + }, + { + "RegionName": "us-west-1" + } + ], + "State": "create-complete", + "Tags": [ + { + "Key": "Name", + "Value": "ExampleIPAM" + } + ] + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-ipv6-pools.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-ipv6-pools.rst new file mode 100644 index 000000000..0d33f0a94 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-ipv6-pools.rst @@ -0,0 +1,26 @@ +**To describe your IPv6 address pools** + +The following ``describe-ipv6-pools`` example displays details for all of your IPv6 address pools. :: + + aws ec2 describe-ipv6-pools + +Output:: + + { + "Ipv6Pools": [ + { + "PoolId": "ipv6pool-ec2-012345abc12345abc", + "PoolCidrBlocks": [ + { + "Cidr": "2001:db8:123::/48" + } + ], + "Tags": [ + { + "Key": "pool-1", + "Value": "public" + } + ] + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-key-pairs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-key-pairs.rst new file mode 100644 index 000000000..b0b236b57 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-key-pairs.rst @@ -0,0 +1,23 @@ +**To display a key pair** + +The following ``describe-key-pairs`` example displays information about the specified key pair. :: + + aws ec2 describe-key-pairs \ + --key-names my-key-pair + +Output:: + + { + "KeyPairs": [ + { + "KeyPairId": "key-0b94643da6EXAMPLE", + "KeyFingerprint": "1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f", + "KeyName": "my-key-pair", + "KeyType": "rsa", + "Tags": [], + "CreateTime": "2022-05-27T21:51:16.000Z" + } + ] + } + +For more information, see `Describe public keys `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-launch-template-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-launch-template-versions.rst new file mode 100644 index 000000000..1874a8604 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-launch-template-versions.rst @@ -0,0 +1,83 @@ +**To describe launch template versions** + +This example describes the versions of the specified launch template. + +Command:: + + aws ec2 describe-launch-template-versions --launch-template-id lt-068f72b72934aff71 + +Output:: + + { + "LaunchTemplateVersions": [ + { + "LaunchTemplateId": "lt-068f72b72934aff71", + "LaunchTemplateName": "Webservers", + "VersionNumber": 3, + "CreatedBy": "arn:aws:iam::123456789102:root", + "LaunchTemplateData": { + "KeyName": "kp-us-east", + "ImageId": "ami-6057e21a", + "InstanceType": "t2.small", + "NetworkInterfaces": [ + { + "SubnetId": "subnet-7b16de0c", + "DeviceIndex": 0, + "Groups": [ + "sg-7c227019" + ] + } + ] + }, + "DefaultVersion": false, + "CreateTime": "2017-11-20T13:19:54.000Z" + }, + { + "LaunchTemplateId": "lt-068f72b72934aff71", + "LaunchTemplateName": "Webservers", + "VersionNumber": 2, + "CreatedBy": "arn:aws:iam::123456789102:root", + "LaunchTemplateData": { + "KeyName": "kp-us-east", + "ImageId": "ami-6057e21a", + "InstanceType": "t2.medium", + "NetworkInterfaces": [ + { + "SubnetId": "subnet-1a2b3c4d", + "DeviceIndex": 0, + "Groups": [ + "sg-7c227019" + ] + } + ] + }, + "DefaultVersion": false, + "CreateTime": "2017-11-20T13:12:32.000Z" + }, + { + "LaunchTemplateId": "lt-068f72b72934aff71", + "LaunchTemplateName": "Webservers", + "VersionNumber": 1, + "CreatedBy": "arn:aws:iam::123456789102:root", + "LaunchTemplateData": { + "UserData": "", + "KeyName": "kp-us-east", + "ImageId": "ami-aabbcc11", + "InstanceType": "t2.medium", + "NetworkInterfaces": [ + { + "SubnetId": "subnet-7b16de0c", + "DeviceIndex": 0, + "DeleteOnTermination": false, + "Groups": [ + "sg-7c227019" + ], + "AssociatePublicIpAddress": true + } + ] + }, + "DefaultVersion": true, + "CreateTime": "2017-11-20T12:52:33.000Z" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-launch-templates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-launch-templates.rst new file mode 100644 index 000000000..c9d536a8b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-launch-templates.rst @@ -0,0 +1,46 @@ +**To describe launch templates** + +This example describes your launch templates. + +Command:: + + aws ec2 describe-launch-templates + +Output:: + + { + "LaunchTemplates": [ + { + "LatestVersionNumber": 2, + "LaunchTemplateId": "lt-0e06d290751193123", + "LaunchTemplateName": "TemplateForWebServer", + "DefaultVersionNumber": 2, + "CreatedBy": "arn:aws:iam::123456789012:root", + "CreateTime": "2017-11-27T09:30:23.000Z" + }, + { + "LatestVersionNumber": 6, + "LaunchTemplateId": "lt-0c45b5e061ec98456", + "LaunchTemplateName": "DBServersTemplate", + "DefaultVersionNumber": 1, + "CreatedBy": "arn:aws:iam::123456789012:root", + "CreateTime": "2017-11-20T09:25:22.000Z" + }, + { + "LatestVersionNumber": 1, + "LaunchTemplateId": "lt-0d47d774e8e52dabc", + "LaunchTemplateName": "MyLaunchTemplate2", + "DefaultVersionNumber": 1, + "CreatedBy": "arn:aws:iam::123456789012:root", + "CreateTime": "2017-11-02T12:06:21.000Z" + }, + { + "LatestVersionNumber": 3, + "LaunchTemplateId": "lt-01e5f948eb4f589d6", + "LaunchTemplateName": "testingtemplate2", + "DefaultVersionNumber": 1, + "CreatedBy": "arn:aws:sts::123456789012:assumed-role/AdminRole/i-03ee35176e2e5aabc", + "CreateTime": "2017-12-01T08:19:48.000Z" + }, + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-local-gateway-route-table-virtual-interface-group-associations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-local-gateway-route-table-virtual-interface-group-associations.rst new file mode 100644 index 000000000..0d9b26684 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-local-gateway-route-table-virtual-interface-group-associations.rst @@ -0,0 +1,24 @@ +**To describe associations between virtual interface groups and local gateway route tables** + +The following ``describe-local-gateway-route-table-virtual-interface-group-associations`` example describes the associations between virtual interface groups and local gateway route tables in your AWS account. :: + + aws ec2 describe-local-gateway-route-table-virtual-interface-group-associations + +Output:: + + { + "LocalGatewayRouteTableVirtualInterfaceGroupAssociations": [ + { + "LocalGatewayRouteTableVirtualInterfaceGroupAssociationId": "lgw-vif-grp-assoc-07145b276bEXAMPLE", + "LocalGatewayVirtualInterfaceGroupId": "lgw-vif-grp-07145b276bEXAMPLE", + "LocalGatewayId": "lgw-0ab1c23d4eEXAMPLE", + "LocalGatewayRouteTableId": "lgw-rtb-059615ef7dEXAMPLE", + "LocalGatewayRouteTableArn": "arn:aws:ec2:us-west-2:123456789012:local-gateway-route-table/lgw-rtb-059615ef7dEXAMPLE", + "OwnerId": "123456789012", + "State": "associated", + "Tags": [] + } + ] + } + +For more information, see `Working with local gateways `__ in the *AWS Outposts User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-local-gateway-route-table-vpc-associations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-local-gateway-route-table-vpc-associations.rst new file mode 100755 index 000000000..ab35441e0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-local-gateway-route-table-vpc-associations.rst @@ -0,0 +1,20 @@ +**To describe the associations between VPCs and local gateway route tables** + +The following ``describe-local-gateway-route-table-vpc-associations`` example displays information about the specified association between VPCs and local gateway route tables. :: + + aws ec2 describe-local-gateway-route-table-vpc-associations \ + --local-gateway-route-table-vpc-association-ids lgw-vpc-assoc-0e0f27af15EXAMPLE + +Output:: + + { + "LocalGatewayRouteTableVpcAssociation": { + "LocalGatewayRouteTableVpcAssociationId": "lgw-vpc-assoc-0e0f27af1EXAMPLE", + "LocalGatewayRouteTableId": "lgw-rtb-059615ef7dEXAMPLE", + "LocalGatewayId": "lgw-09b493aa7cEXAMPLE", + "VpcId": "vpc-0efe9bde08EXAMPLE", + "State": "associated" + } + } + +For more information, see `Local gateway route tables `__ in the *Outposts User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-local-gateway-route-tables.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-local-gateway-route-tables.rst new file mode 100755 index 000000000..d4c10c46a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-local-gateway-route-tables.rst @@ -0,0 +1,18 @@ +**To describe your Local Gateway Route Tables** + +The following ``describe-local-gateway-route-tables`` example displays details about the local gateway route tables. :: + + aws ec2 describe-local-gateway-route-tables + +Output:: + + { + "LocalGatewayRouteTables": [ + { + "LocalGatewayRouteTableId": "lgw-rtb-059615ef7deEXAMPLE", + "LocalGatewayId": "lgw-09b493aa7cEXAMPLE", + "OutpostArn": "arn:aws:outposts:us-west-2:111122223333:outpost/op-0dc11b66edEXAMPLE", + "State": "available" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-local-gateway-virtual-interface-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-local-gateway-virtual-interface-groups.rst new file mode 100644 index 000000000..852e19e73 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-local-gateway-virtual-interface-groups.rst @@ -0,0 +1,24 @@ +**To describe local gateway virtual interface groups** + +The following ``describe-local-gateway-virtual-interface-groups`` example describes the local gateway virtual interface groups in your AWS account. :: + + aws ec2 describe-local-gateway-virtual-interface-groups + +Output:: + + { + "LocalGatewayVirtualInterfaceGroups": [ + { + "LocalGatewayVirtualInterfaceGroupId": "lgw-vif-grp-07145b276bEXAMPLE", + "LocalGatewayVirtualInterfaceIds": [ + "lgw-vif-01a23bc4d5EXAMPLE", + "lgw-vif-543ab21012EXAMPLE" + ], + "LocalGatewayId": "lgw-0ab1c23d4eEXAMPLE", + "OwnerId": "123456789012", + "Tags": [] + } + ] + } + +For more information, see `Working with local gateways `__ in the *AWS Outposts User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-local-gateway-virtual-interfaces.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-local-gateway-virtual-interfaces.rst new file mode 100644 index 000000000..e72069cf3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-local-gateway-virtual-interfaces.rst @@ -0,0 +1,36 @@ +**To describe local gateway virtual interfaces** + +The following ``describe-local-gateway-virtual-interfaces`` example describes the local gateway virtual interfaces in your AWS account. :: + + aws ec2 describe-local-gateway-virtual-interfaces + +Output:: + + { + "LocalGatewayVirtualInterfaces": [ + { + "LocalGatewayVirtualInterfaceId": "lgw-vif-01a23bc4d5EXAMPLE", + "LocalGatewayId": "lgw-0ab1c23d4eEXAMPLE", + "Vlan": 2410, + "LocalAddress": "0.0.0.0/0", + "PeerAddress": "0.0.0.0/0", + "LocalBgpAsn": 65010, + "PeerBgpAsn": 65000, + "OwnerId": "123456789012", + "Tags": [] + }, + { + "LocalGatewayVirtualInterfaceId": "lgw-vif-543ab21012EXAMPLE", + "LocalGatewayId": "lgw-0ab1c23d4eEXAMPLE", + "Vlan": 2410, + "LocalAddress": "0.0.0.0/0", + "PeerAddress": "0.0.0.0/0", + "LocalBgpAsn": 65010, + "PeerBgpAsn": 65000, + "OwnerId": "123456789012", + "Tags": [] + } + ] + } + +For more information, see `Working with local gateways `__ in the *AWS Outposts User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-local-gateways.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-local-gateways.rst new file mode 100755 index 000000000..cbe3c30fe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-local-gateways.rst @@ -0,0 +1,18 @@ +**To describe your Local Gateways** + +The following ``describe-local-gateways`` example displays details for the local gateways that are available to you. :: + + aws ec2 describe-local-gateways + +Output:: + + { + "LocalGateways": [ + { + "LocalGatewayId": "lgw-09b493aa7cEXAMPLE", + "OutpostArn": "arn:aws:outposts:us-west-2:123456789012:outpost/op-0dc11b66ed59f995a", + "OwnerId": "123456789012", + "State": "available" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-locked-snapshots.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-locked-snapshots.rst new file mode 100644 index 000000000..6900577e8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-locked-snapshots.rst @@ -0,0 +1,24 @@ +**To describe the lock status of a snapshot** + +The following ``describe-locked-snapshots`` example describes the lock status of the specified snapshot. :: + + aws ec2 describe-locked-snapshots \ + --snapshot-ids snap-0b5e733b4a8df6e0d + +Output:: + + { + "Snapshots": [ + { + "OwnerId": "123456789012", + "SnapshotId": "snap-0b5e733b4a8df6e0d", + "LockState": "governance", + "LockDuration": 365, + "LockCreatedOn": "2024-05-05T00:56:06.208000+00:00", + "LockDurationStartTime": "2024-05-05T00:56:06.208000+00:00", + "LockExpiresOn": "2025-05-05T00:56:06.208000+00:00" + } + ] + } + +For more information, see `Snapshot lock `__ in the *Amazon EBS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-managed-prefix-lists.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-managed-prefix-lists.rst new file mode 100644 index 000000000..34c735d2b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-managed-prefix-lists.rst @@ -0,0 +1,37 @@ +**To describe managed prefix lists** + +The following ``describe-managed-prefix-lists`` example describes the prefix lists owned by AWS account ``123456789012``. :: + + aws ec2 describe-managed-prefix-lists \ + --filters Name=owner-id,Values=123456789012 + +Output:: + + { + "PrefixLists": [ + { + "PrefixListId": "pl-11223344556677aab", + "AddressFamily": "IPv6", + "State": "create-complete", + "PrefixListArn": "arn:aws:ec2:us-west-2:123456789012:prefix-list/pl-11223344556677aab", + "PrefixListName": "vpc-ipv6-cidrs", + "MaxEntries": 25, + "Version": 1, + "Tags": [], + "OwnerId": "123456789012" + }, + { + "PrefixListId": "pl-0123456abcabcabc1", + "AddressFamily": "IPv4", + "State": "active", + "PrefixListArn": "arn:aws:ec2:us-west-2:123456789012:prefix-list/pl-0123456abcabcabc1", + "PrefixListName": "vpc-cidrs", + "MaxEntries": 10, + "Version": 1, + "Tags": [], + "OwnerId": "123456789012" + } + ] + } + +For more information, see `Managed prefix lists `__ in the *Amazon VPC User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-moving-addresses.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-moving-addresses.rst new file mode 100644 index 000000000..43528dae1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-moving-addresses.rst @@ -0,0 +1,24 @@ +**To describe your moving addresses** + +This example describes all of your moving Elastic IP addresses. + +Command:: + + aws ec2 describe-moving-addresses + +Output:: + + { + "MovingAddressStatuses": [ + { + "PublicIp": "198.51.100.0", + "MoveStatus": "MovingToVpc" + } + ] + } + +This example describes all addresses that are moving to the EC2-VPC platform. + +Command:: + + aws ec2 describe-moving-addresses --filters Name=moving-status,Values=MovingToVpc \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-nat-gateways.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-nat-gateways.rst new file mode 100644 index 000000000..908638be1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-nat-gateways.rst @@ -0,0 +1,97 @@ +**Example 1: To describe a public NAT gateway** + +The following ``describe-nat-gateways`` example describes the specified public NAT gateway. :: + + aws ec2 describe-nat-gateways \ + --nat-gateway-id nat-01234567890abcdef + +Output:: + + { + "NatGateways": [ + { + "CreateTime": "2023-08-25T01:56:51.000Z", + "NatGatewayAddresses": [ + { + "AllocationId": "eipalloc-0790180cd2EXAMPLE", + "NetworkInterfaceId": "eni-09cc4b2558794f7f9", + "PrivateIp": "10.0.0.211", + "PublicIp": "54.85.121.213", + "AssociationId": "eipassoc-04d295cc9b8815b24", + "IsPrimary": true, + "Status": "succeeded" + }, + { + "AllocationId": "eipalloc-0be6ecac95EXAMPLE", + "NetworkInterfaceId": "eni-09cc4b2558794f7f9", + "PrivateIp": "10.0.0.74", + "PublicIp": "3.211.231.218", + "AssociationId": "eipassoc-0f96bdca17EXAMPLE", + "IsPrimary": false, + "Status": "succeeded" + } + ], + "NatGatewayId": "nat-01234567890abcdef", + "State": "available", + "SubnetId": "subnet-655eab5f08EXAMPLE", + "VpcId": "vpc-098eb5ef58EXAMPLE", + "Tags": [ + { + "Key": "Name", + "Value": "public-nat" + } + ], + "ConnectivityType": "public" + } + ] + } + +**Example 2: To describe a private NAT gateway** + +The following ``describe-nat-gateways`` example describes the specified private NAT gateway. :: + + aws ec2 describe-nat-gateways \ + --nat-gateway-id nat-1234567890abcdef0 + +Output:: + + { + "NatGateways": [ + { + "CreateTime": "2023-08-25T00:50:05.000Z", + "NatGatewayAddresses": [ + { + "NetworkInterfaceId": "eni-0065a61b324d1897a", + "PrivateIp": "10.0.20.240", + "IsPrimary": true, + "Status": "succeeded" + }, + { + "NetworkInterfaceId": "eni-0065a61b324d1897a", + "PrivateIp": "10.0.20.33", + "IsPrimary": false, + "Status": "succeeded" + }, + { + "NetworkInterfaceId": "eni-0065a61b324d1897a", + "PrivateIp": "10.0.20.197", + "IsPrimary": false, + "Status": "succeeded" + } + ], + "NatGatewayId": "nat-1234567890abcdef0", + "State": "available", + "SubnetId": "subnet-08fc749671EXAMPLE", + "VpcId": "vpc-098eb5ef58EXAMPLE", + "Tags": [ + { + "Key": "Name", + "Value": "private-nat" + } + ], + "ConnectivityType": "private" + } + ] + } + +For more information, see `NAT gateways `__ in the *Amazon VPC User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-acls.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-acls.rst new file mode 100644 index 000000000..1d3140094 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-acls.rst @@ -0,0 +1,125 @@ +**To describe your network ACLs** + +The following ``describe-network-acls`` example retrieves details about your network ACLs. :: + + aws ec2 describe-network-acls + +Output:: + + { + "NetworkAcls": [ + { + "Associations": [ + { + "NetworkAclAssociationId": "aclassoc-0c1679dc41EXAMPLE", + "NetworkAclId": "acl-0ea1f54ca7EXAMPLE", + "SubnetId": "subnet-0931fc2fa5EXAMPLE" + } + ], + "Entries": [ + { + "CidrBlock": "0.0.0.0/0", + "Egress": true, + "Protocol": "-1", + "RuleAction": "allow", + "RuleNumber": 100 + }, + { + "CidrBlock": "0.0.0.0/0", + "Egress": true, + "Protocol": "-1", + "RuleAction": "deny", + "RuleNumber": 32767 + }, + { + "CidrBlock": "0.0.0.0/0", + "Egress": false, + "Protocol": "-1", + "RuleAction": "allow", + "RuleNumber": 100 + }, + { + "CidrBlock": "0.0.0.0/0", + "Egress": false, + "Protocol": "-1", + "RuleAction": "deny", + "RuleNumber": 32767 + } + ], + "IsDefault": true, + "NetworkAclId": "acl-0ea1f54ca7EXAMPLE", + "Tags": [], + "VpcId": "vpc-06e4ab6c6cEXAMPLE", + "OwnerId": "111122223333" + }, + { + "Associations": [], + "Entries": [ + { + "CidrBlock": "0.0.0.0/0", + "Egress": true, + "Protocol": "-1", + "RuleAction": "allow", + "RuleNumber": 100 + }, + { + "Egress": true, + "Ipv6CidrBlock": "::/0", + "Protocol": "-1", + "RuleAction": "allow", + "RuleNumber": 101 + }, + { + "CidrBlock": "0.0.0.0/0", + "Egress": true, + "Protocol": "-1", + "RuleAction": "deny", + "RuleNumber": 32767 + }, + { + "Egress": true, + "Ipv6CidrBlock": "::/0", + "Protocol": "-1", + "RuleAction": "deny", + "RuleNumber": 32768 + }, + { + "CidrBlock": "0.0.0.0/0", + "Egress": false, + "Protocol": "-1", + "RuleAction": "allow", + "RuleNumber": 100 + }, + { + "Egress": false, + "Ipv6CidrBlock": "::/0", + "Protocol": "-1", + "RuleAction": "allow", + "RuleNumber": 101 + }, + { + "CidrBlock": "0.0.0.0/0", + "Egress": false, + "Protocol": "-1", + "RuleAction": "deny", + "RuleNumber": 32767 + }, + { + "Egress": false, + "Ipv6CidrBlock": "::/0", + "Protocol": "-1", + "RuleAction": "deny", + "RuleNumber": 32768 + } + ], + "IsDefault": true, + "NetworkAclId": "acl-0e2a78e4e2EXAMPLE", + "Tags": [], + "VpcId": "vpc-03914afb3eEXAMPLE", + "OwnerId": "111122223333" + } + ] + } + + +For more information, see `Network ACLs `__ in the *AWS VPC User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-insights-access-scope-analyses.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-insights-access-scope-analyses.rst new file mode 100644 index 000000000..725309e8e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-insights-access-scope-analyses.rst @@ -0,0 +1,24 @@ +**To describe Network Insights access scope analyses** + +The following ``describe-network-insights-access-scope-analyses`` example describes the access scope analysis in your AWS account. :: + + aws ec2 describe-network-insights-access-scope-analyses \ + --region us-east-1 + +Output:: + + { + "NetworkInsightsAccessScopeAnalyses": [ + { + "NetworkInsightsAccessScopeAnalysisId": "nisa-123456789111", + "NetworkInsightsAccessScopeAnalysisArn": "arn:aws:ec2:us-east-1:123456789012:network-insights-access-scope-analysis/nisa-123456789111", + "NetworkInsightsAccessScopeId": "nis-123456789222", + "Status": "succeeded", + "StartDate": "2022-01-25T19:45:36.842000+00:00", + "FindingsFound": "true", + "Tags": [] + } + ] + } + +For more information, see `Getting started with Network Access Analyzer using the AWS CLI `__ in the *Network Access Analyzer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-insights-access-scopes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-insights-access-scopes.rst new file mode 100644 index 000000000..433b56f6b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-insights-access-scopes.rst @@ -0,0 +1,22 @@ +**To describe Network Insights access scopes** + +The following ``describe-network-insights-access-scopes`` example describes the access-scope analyses in your AWS account. :: + + aws ec2 describe-network-insights-access-scopes \ + --region us-east-1 + +Output:: + + { + "NetworkInsightsAccessScopes": [ + { + "NetworkInsightsAccessScopeId": "nis-123456789111", + "NetworkInsightsAccessScopeArn": "arn:aws:ec2:us-east-1:123456789012:network-insights-access-scope/nis-123456789111", + "CreatedDate": "2021-11-29T21:12:41.416000+00:00", + "UpdatedDate": "2021-11-29T21:12:41.416000+00:00", + "Tags": [] + } + ] + } + +For more information, see `Getting started with Network Access Analyzer using the AWS CLI `__ in the *Network Access Analyzer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-insights-analyses.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-insights-analyses.rst new file mode 100644 index 000000000..9a1aee8c0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-insights-analyses.rst @@ -0,0 +1,48 @@ +**To view the results of a path analysis** + +The following ``describe-network-insights-analyses`` example describes the specified analysis. In this example, the source is an internet gateway, the destination is an EC2 instance, and the protocol is TCP. The analysis succeeded (``Status`` is ``succeeded``) and the path is not reachable (``NetworkPathFound`` is ``false``). The explanation code ``ENI_SG_RULES_MISMATCH`` indicates that the security group for the instance does not contain a rule that allows traffic on the destination port. :: + + aws ec2 describe-network-insights-analyses \ + --network-insights-analysis-ids nia-02207aa13eb480c7a + +Output:: + + { + "NetworkInsightsAnalyses": [ + { + "NetworkInsightsAnalysisId": "nia-02207aa13eb480c7a", + "NetworkInsightsAnalysisArn": "arn:aws:ec2:us-east-1:123456789012:network-insights-analysis/nia-02207aa13eb480c7a", + "NetworkInsightsPathId": "nip-0b26f224f1d131fa8", + "StartDate": "2021-01-20T22:58:37.495Z", + "Status": "succeeded", + "NetworkPathFound": false, + "Explanations": [ + { + "Direction": "ingress", + "ExplanationCode": "ENI_SG_RULES_MISMATCH", + "NetworkInterface": { + "Id": "eni-0a25edef15a6cc08c", + "Arn": "arn:aws:ec2:us-east-1:123456789012:network-interface/eni-0a25edef15a6cc08c" + }, + "SecurityGroups": [ + { + "Id": "sg-02f0d35a850ba727f", + "Arn": "arn:aws:ec2:us-east-1:123456789012:security-group/sg-02f0d35a850ba727f" + } + ], + "Subnet": { + "Id": "subnet-004ff41eccb4d1194", + "Arn": "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-004ff41eccb4d1194" + }, + "Vpc": { + "Id": "vpc-f1663d98ad28331c7", + "Arn": "arn:aws:ec2:us-east-1:123456789012:vpc/vpc-f1663d98ad28331c7" + } + } + ], + "Tags": [] + } + ] + } + +For more information, see `Getting started using the AWS CLI `__ in the *Reachability Analyzer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-insights-paths.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-insights-paths.rst new file mode 100644 index 000000000..d133f4958 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-insights-paths.rst @@ -0,0 +1,23 @@ +**To describe a path** + +The following ``describe-network-insights-paths`` example describes the specified path. :: + + aws ec2 describe-network-insights-paths \ + --network-insights-path-ids nip-0b26f224f1d131fa8 + +Output:: + + { + "NetworkInsightsPaths": [ + { + "NetworkInsightsPathId": "nip-0b26f224f1d131fa8", + "NetworkInsightsPathArn": "arn:aws:ec2:us-east-1:123456789012:network-insights-path/nip-0b26f224f1d131fa8", + "CreatedDate": "2021-01-20T22:43:46.933Z", + "Source": "igw-0797cccdc9d73b0e5", + "Destination": "i-0495d385ad28331c7", + "Protocol": "tcp" + } + ] + } + +For more information, see `Getting started using the AWS CLI `__ in the *Reachability Analyzer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-interface-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-interface-attribute.rst new file mode 100644 index 000000000..a5e23f692 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-interface-attribute.rst @@ -0,0 +1,76 @@ +**To describe the attachment attribute of a network interface** + +This example command describes the ``attachment`` attribute of the specified network interface. + +Command:: + + aws ec2 describe-network-interface-attribute --network-interface-id eni-686ea200 --attribute attachment + +Output:: + + { + "NetworkInterfaceId": "eni-686ea200", + "Attachment": { + "Status": "attached", + "DeviceIndex": 0, + "AttachTime": "2015-05-21T20:02:20.000Z", + "InstanceId": "i-1234567890abcdef0", + "DeleteOnTermination": true, + "AttachmentId": "eni-attach-43348162", + "InstanceOwnerId": "123456789012" + } + } + +**To describe the description attribute of a network interface** + +This example command describes the ``description`` attribute of the specified network interface. + +Command:: + + aws ec2 describe-network-interface-attribute --network-interface-id eni-686ea200 --attribute description + +Output:: + + { + "NetworkInterfaceId": "eni-686ea200", + "Description": { + "Value": "My description" + } + } + +**To describe the groupSet attribute of a network interface** + +This example command describes the ``groupSet`` attribute of the specified network interface. + +Command:: + + aws ec2 describe-network-interface-attribute --network-interface-id eni-686ea200 --attribute groupSet + +Output:: + + { + "NetworkInterfaceId": "eni-686ea200", + "Groups": [ + { + "GroupName": "my-security-group", + "GroupId": "sg-903004f8" + } + ] + } + +**To describe the sourceDestCheck attribute of a network interface** + +This example command describes the ``sourceDestCheck`` attribute of the specified network interface. + +Command:: + + aws ec2 describe-network-interface-attribute --network-interface-id eni-686ea200 --attribute sourceDestCheck + +Output:: + + { + "NetworkInterfaceId": "eni-686ea200", + "SourceDestCheck": { + "Value": true + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-interface-permissions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-interface-permissions.rst new file mode 100644 index 000000000..f11fb7b83 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-interface-permissions.rst @@ -0,0 +1,23 @@ +**To describe your network interface permissions** + +This example describes all of your network interface permissions. + +Command:: + + aws ec2 describe-network-interface-permissions + +Output:: + + { + "NetworkInterfacePermissions": [ + { + "PermissionState": { + "State": "GRANTED" + }, + "NetworkInterfacePermissionId": "eni-perm-06fd19020ede149ea", + "NetworkInterfaceId": "eni-b909511a", + "Permission": "INSTANCE-ATTACH", + "AwsAccountId": "123456789012" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-interfaces.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-interfaces.rst new file mode 100644 index 000000000..e4975c109 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-network-interfaces.rst @@ -0,0 +1,161 @@ +**To describe your network interfaces** + +This example describes all your network interfaces. + +Command:: + + aws ec2 describe-network-interfaces + +Output:: + + { + "NetworkInterfaces": [ + { + "Status": "in-use", + "MacAddress": "02:2f:8f:b0:cf:75", + "SourceDestCheck": true, + "VpcId": "vpc-a01106c2", + "Description": "my network interface", + "Association": { + "PublicIp": "203.0.113.12", + "AssociationId": "eipassoc-0fbb766a", + "PublicDnsName": "ec2-203-0-113-12.compute-1.amazonaws.com", + "IpOwnerId": "123456789012" + }, + "NetworkInterfaceId": "eni-e5aa89a3", + "PrivateIpAddresses": [ + { + "PrivateDnsName": "ip-10-0-1-17.ec2.internal", + "Association": { + "PublicIp": "203.0.113.12", + "AssociationId": "eipassoc-0fbb766a", + "PublicDnsName": "ec2-203-0-113-12.compute-1.amazonaws.com", + "IpOwnerId": "123456789012" + }, + "Primary": true, + "PrivateIpAddress": "10.0.1.17" + } + ], + "RequesterManaged": false, + "Ipv6Addresses": [], + "PrivateDnsName": "ip-10-0-1-17.ec2.internal", + "AvailabilityZone": "us-east-1d", + "Attachment": { + "Status": "attached", + "DeviceIndex": 1, + "AttachTime": "2013-11-30T23:36:42.000Z", + "InstanceId": "i-1234567890abcdef0", + "DeleteOnTermination": false, + "AttachmentId": "eni-attach-66c4350a", + "InstanceOwnerId": "123456789012" + }, + "Groups": [ + { + "GroupName": "default", + "GroupId": "sg-8637d3e3" + } + ], + "SubnetId": "subnet-b61f49f0", + "OwnerId": "123456789012", + "TagSet": [], + "PrivateIpAddress": "10.0.1.17" + }, + { + "Status": "in-use", + "MacAddress": "02:58:f5:ef:4b:06", + "SourceDestCheck": true, + "VpcId": "vpc-a01106c2", + "Description": "Primary network interface", + "Association": { + "PublicIp": "198.51.100.0", + "IpOwnerId": "amazon" + }, + "NetworkInterfaceId": "eni-f9ba99bf", + "PrivateIpAddresses": [ + { + "Association": { + "PublicIp": "198.51.100.0", + "IpOwnerId": "amazon" + }, + "Primary": true, + "PrivateIpAddress": "10.0.1.149" + } + ], + "RequesterManaged": false, + "Ipv6Addresses": [], + "AvailabilityZone": "us-east-1d", + "Attachment": { + "Status": "attached", + "DeviceIndex": 0, + "AttachTime": "2013-11-30T23:35:33.000Z", + "InstanceId": "i-0598c7d356eba48d7", + "DeleteOnTermination": true, + "AttachmentId": "eni-attach-1b9db777", + "InstanceOwnerId": "123456789012" + }, + "Groups": [ + { + "GroupName": "default", + "GroupId": "sg-8637d3e3" + } + ], + "SubnetId": "subnet-b61f49f0", + "OwnerId": "123456789012", + "TagSet": [], + "PrivateIpAddress": "10.0.1.149" + } + ] + } + + +This example describes network interfaces that have a tag with the key ``Purpose`` and the value ``Prod``. + +Command:: + + aws ec2 describe-network-interfaces --filters Name=tag:Purpose,Values=Prod + +Output:: + + { + "NetworkInterfaces": [ + { + "Status": "available", + "MacAddress": "12:2c:bd:f9:bf:17", + "SourceDestCheck": true, + "VpcId": "vpc-8941ebec", + "Description": "ProdENI", + "NetworkInterfaceId": "eni-b9a5ac93", + "PrivateIpAddresses": [ + { + "PrivateDnsName": "ip-10-0-1-55.ec2.internal", + "Primary": true, + "PrivateIpAddress": "10.0.1.55" + }, + { + "PrivateDnsName": "ip-10-0-1-117.ec2.internal", + "Primary": false, + "PrivateIpAddress": "10.0.1.117" + } + ], + "RequesterManaged": false, + "PrivateDnsName": "ip-10-0-1-55.ec2.internal", + "AvailabilityZone": "us-east-1d", + "Ipv6Addresses": [], + "Groups": [ + { + "GroupName": "MySG", + "GroupId": "sg-905002f5" + } + ], + "SubnetId": "subnet-31d6c219", + "OwnerId": "123456789012", + "TagSet": [ + { + "Value": "Prod", + "Key": "Purpose" + } + ], + "PrivateIpAddress": "10.0.1.55" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-placement-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-placement-groups.rst new file mode 100644 index 000000000..2cdbd4e08 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-placement-groups.rst @@ -0,0 +1,20 @@ +**To describe your placement groups** + +This example command describes all of your placement groups. + +Command:: + + aws ec2 describe-placement-groups + +Output:: + + { + "PlacementGroups": [ + { + "GroupName": "my-cluster", + "State": "available", + "Strategy": "cluster" + }, + ... + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-prefix-lists.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-prefix-lists.rst new file mode 100644 index 000000000..d4ad49eb8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-prefix-lists.rst @@ -0,0 +1,21 @@ +**To describe prefix lists** + +This example lists all available prefix lists for the region. + +Command:: + + aws ec2 describe-prefix-lists + +Output:: + + { + "PrefixLists": [ + { + "PrefixListName": "com.amazonaws.us-east-1.s3", + "Cidrs": [ + "54.231.0.0/17" + ], + "PrefixListId": "pl-63a5400a" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-principal-id-format.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-principal-id-format.rst new file mode 100755 index 000000000..a24cea09d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-principal-id-format.rst @@ -0,0 +1,34 @@ +**To describe the ID format for IAM users and roles with long ID format enabled** + +The following ``describe-principal-id-format`` example describes the ID format for the root user, all IAM roles, and all IAM users with long ID format enabled. :: + + aws ec2 describe-principal-id-format \ + --resource instance + +Output:: + + { + "Principals": [ + { + "Arn": "arn:aws:iam::123456789012:root", + "Statuses": [ + { + "Deadline": "2016-12-15T00:00:00.000Z", + "Resource": "reservation", + "UseLongIds": true + }, + { + "Deadline": "2016-12-15T00:00:00.000Z", + "Resource": "instance", + "UseLongIds": true + }, + { + "Deadline": "2016-12-15T00:00:00.000Z", + "Resource": "volume", + "UseLongIds": true + }, + ] + }, + ... + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-public-ipv4-pools.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-public-ipv4-pools.rst new file mode 100644 index 000000000..6d926eba3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-public-ipv4-pools.rst @@ -0,0 +1,25 @@ +**To describe your public IPv4 address pools** + +The following ``describe-public-ipv4-pools`` example displays details about the address pools that were created when you provisioned public IPv4 address ranges using Bring Your Own IP Addresses (BYOIP). :: + + aws ec2 describe-public-ipv4-pools + +Output:: + + { + "PublicIpv4Pools": [ + { + "PoolId": "ipv4pool-ec2-1234567890abcdef0", + "PoolAddressRanges": [ + { + "FirstAddress": "203.0.113.0", + "LastAddress": "203.0.113.255", + "AddressCount": 256, + "AvailableAddressCount": 256 + } + ], + "TotalAddressCount": 256, + "TotalAvailableAddressCount": 256 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-regions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-regions.rst new file mode 100755 index 000000000..f68bd8cf7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-regions.rst @@ -0,0 +1,275 @@ +**Example 1: To describe all of your enabled Regions** + +The following ``describe-regions`` example describes all of the Regions that are enabled for your account. :: + + aws ec2 describe-regions + +Output:: + + { + "Regions": [ + { + "Endpoint": "ec2.eu-north-1.amazonaws.com", + "RegionName": "eu-north-1", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.ap-south-1.amazonaws.com", + "RegionName": "ap-south-1", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.eu-west-3.amazonaws.com", + "RegionName": "eu-west-3", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.eu-west-2.amazonaws.com", + "RegionName": "eu-west-2", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.eu-west-1.amazonaws.com", + "RegionName": "eu-west-1", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.ap-northeast-3.amazonaws.com", + "RegionName": "ap-northeast-3", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.ap-northeast-2.amazonaws.com", + "RegionName": "ap-northeast-2", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.ap-northeast-1.amazonaws.com", + "RegionName": "ap-northeast-1", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.sa-east-1.amazonaws.com", + "RegionName": "sa-east-1", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.ca-central-1.amazonaws.com", + "RegionName": "ca-central-1", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.ap-southeast-1.amazonaws.com", + "RegionName": "ap-southeast-1", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.ap-southeast-2.amazonaws.com", + "RegionName": "ap-southeast-2", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.eu-central-1.amazonaws.com", + "RegionName": "eu-central-1", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.us-east-1.amazonaws.com", + "RegionName": "us-east-1", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.us-east-2.amazonaws.com", + "RegionName": "us-east-2", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.us-west-1.amazonaws.com", + "RegionName": "us-west-1", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.us-west-2.amazonaws.com", + "RegionName": "us-west-2", + "OptInStatus": "opt-in-not-required" + } + ] + } + +For more information, see `Regions and Zones `__ in the *Amazon EC2 User Guide*. + +**Example 2: To describe enabled Regions with an endpoint whose name contains a specific string** + +The following ``describe-regions`` example describes all Regions that you have enabled that have the string "us" in the endpoint. :: + + aws ec2 describe-regions \ + --filters "Name=endpoint,Values=*us*" + +Output:: + + { + "Regions": [ + { + "Endpoint": "ec2.us-east-1.amazonaws.com", + "RegionName": "us-east-1" + }, + { + "Endpoint": "ec2.us-east-2.amazonaws.com", + "RegionName": "us-east-2" + }, + { + "Endpoint": "ec2.us-west-1.amazonaws.com", + "RegionName": "us-west-1" + }, + { + "Endpoint": "ec2.us-west-2.amazonaws.com", + "RegionName": "us-west-2" + } + ] + } + +For more information, see `Regions and Zones `__ in the *Amazon EC2 User Guide*. + +**Example 3: To describe all Regions** + +The following ``describe-regions`` example describes all available Regions, including Regions that are disabled. :: + + aws ec2 describe-regions \ + --all-regions + +Output:: + + { + "Regions": [ + { + "Endpoint": "ec2.eu-north-1.amazonaws.com", + "RegionName": "eu-north-1", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.ap-south-1.amazonaws.com", + "RegionName": "ap-south-1", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.eu-west-3.amazonaws.com", + "RegionName": "eu-west-3", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.eu-west-2.amazonaws.com", + "RegionName": "eu-west-2", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.eu-west-1.amazonaws.com", + "RegionName": "eu-west-1", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.ap-northeast-3.amazonaws.com", + "RegionName": "ap-northeast-3", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.me-south-1.amazonaws.com", + "RegionName": "me-south-1", + "OptInStatus": "not-opted-in" + }, + { + "Endpoint": "ec2.ap-northeast-2.amazonaws.com", + "RegionName": "ap-northeast-2", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.ap-northeast-1.amazonaws.com", + "RegionName": "ap-northeast-1", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.sa-east-1.amazonaws.com", + "RegionName": "sa-east-1", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.ca-central-1.amazonaws.com", + "RegionName": "ca-central-1", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.ap-east-1.amazonaws.com", + "RegionName": "ap-east-1", + "OptInStatus": "not-opted-in" + }, + { + "Endpoint": "ec2.ap-southeast-1.amazonaws.com", + "RegionName": "ap-southeast-1", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.ap-southeast-2.amazonaws.com", + "RegionName": "ap-southeast-2", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.eu-central-1.amazonaws.com", + "RegionName": "eu-central-1", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.us-east-1.amazonaws.com", + "RegionName": "us-east-1", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.us-east-2.amazonaws.com", + "RegionName": "us-east-2", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.us-west-1.amazonaws.com", + "RegionName": "us-west-1", + "OptInStatus": "opt-in-not-required" + }, + { + "Endpoint": "ec2.us-west-2.amazonaws.com", + "RegionName": "us-west-2", + "OptInStatus": "opt-in-not-required" + } + ] + } + +For more information, see `Regions and Zones `__ in the *Amazon EC2 User Guide*. + +**Example 4: To list the Region names only** + +The following ``describe-regions`` example uses the ``--query`` parameter to filter the output and return only the names of the Regions as text. :: + + aws ec2 describe-regions \ + --all-regions \ + --query "Regions[].{Name:RegionName}" \ + --output text + +Output:: + + eu-north-1 + ap-south-1 + eu-west-3 + eu-west-2 + eu-west-1 + ap-northeast-3 + ap-northeast-2 + me-south-1 + ap-northeast-1 + sa-east-1 + ca-central-1 + ap-east-1 + ap-southeast-1 + ap-southeast-2 + eu-central-1 + us-east-1 + us-east-2 + us-west-1 + us-west-2 + +For more information, see `Regions and Zones `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-replace-root-volume-tasks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-replace-root-volume-tasks.rst new file mode 100644 index 000000000..f96b912e6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-replace-root-volume-tasks.rst @@ -0,0 +1,56 @@ +**Example 1: To view information about a specific root volume replacement task** + +The following ``describe-replace-root-volume-tasks`` example describes root volume replacement task replacevol-0111122223333abcd. :: + + aws ec2 describe-replace-root-volume-tasks \ + --replace-root-volume-task-ids replacevol-0111122223333abcd + +Output:: + + { + "ReplaceRootVolumeTasks": [ + { + "ReplaceRootVolumeTaskId": "replacevol-0111122223333abcd", + "Tags": [], + "InstanceId": "i-0123456789abcdefa", + "TaskState": "succeeded", + "StartTime": "2022-03-14T15:16:28Z", + "CompleteTime": "2022-03-14T15:16:52Z" + } + ] + } + +For more information, see `Replace a root volume `__ in the *Amazon Elastic Compute Cloud User Guide*. + + +**Example 2: To view information about all root volume replacement tasks for a specific instance** + +The following ``describe-replace-root-volume-tasks`` example describes all of the root volume replacement tasks for instance i-0123456789abcdefa. :: + + aws ec2 describe-replace-root-volume-tasks \ + --filters Name=instance-id,Values=i-0123456789abcdefa + +Output:: + + { + "ReplaceRootVolumeTasks": [ + { + "ReplaceRootVolumeTaskId": "replacevol-0111122223333abcd", + "Tags": [], + "InstanceId": "i-0123456789abcdefa", + "TaskState": "succeeded", + "StartTime": "2022-03-14T15:06:38Z", + "CompleteTime": "2022-03-14T15:07:03Z" + }, + { + "ReplaceRootVolumeTaskId": "replacevol-0444455555555abcd", + "Tags": [], + "InstanceId": "i-0123456789abcdefa", + "TaskState": "succeeded", + "StartTime": "2022-03-14T15:16:28Z", + "CompleteTime": "2022-03-14T15:16:52Z" + } + ] + } + +For more information, see `Replace a root volume `__ in the *Amazon Elastic Compute Cloud User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-reserved-instances-listings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-reserved-instances-listings.rst new file mode 100755 index 000000000..2b316e38f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-reserved-instances-listings.rst @@ -0,0 +1,8 @@ +**To describe a Reserved Instance listing** + +The following ``describe-reserved-instances-listings`` example retrieves information about the specified Reserved Instance listing. :: + + aws ec2 describe-reserved-instances-listings \ + --reserved-instances-listing-id 5ec28771-05ff-4b9b-aa31-9e57dexample + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-reserved-instances-modifications.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-reserved-instances-modifications.rst new file mode 100644 index 000000000..37e888dea --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-reserved-instances-modifications.rst @@ -0,0 +1,47 @@ +**To describe Reserved Instances modifications** + +This example command describes all the Reserved Instances modification requests that have been submitted for your account. + +Command:: + + aws ec2 describe-reserved-instances-modifications + +Output:: + + { + "ReservedInstancesModifications": [ + { + "Status": "fulfilled", + "ModificationResults": [ + { + "ReservedInstancesId": "93bbbca2-62f1-4d9d-b225-16bada29e6c7", + "TargetConfiguration": { + "AvailabilityZone": "us-east-1b", + "InstanceType": "m1.large", + "InstanceCount": 3 + } + }, + { + "ReservedInstancesId": "1ba8e2e3-aabb-46c3-bcf5-3fe2fda922e6", + "TargetConfiguration": { + "AvailabilityZone": "us-east-1d", + "InstanceType": "m1.xlarge", + "InstanceCount": 1 + } + } + ], + "EffectiveDate": "2015-08-12T17:00:00.000Z", + "CreateDate": "2015-08-12T17:52:52.630Z", + "UpdateDate": "2015-08-12T18:08:06.698Z", + "ClientToken": "c9adb218-3222-4889-8216-0cf0e52dc37e: + "ReservedInstancesModificationId": "rimod-d3ed4335-b1d3-4de6-ab31-0f13aaf46687", + "ReservedInstancesIds": [ + { + "ReservedInstancesId": "b847fa93-e282-4f55-b59a-1342f5bd7c02" + } + ] + } + ] + } + + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-reserved-instances-offerings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-reserved-instances-offerings.rst new file mode 100644 index 000000000..dd4bd3983 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-reserved-instances-offerings.rst @@ -0,0 +1,112 @@ +**To describe Reserved Instances offerings** + +This example command describes all Reserved Instances available for purchase in the region. + +Command:: + + aws ec2 describe-reserved-instances-offerings + +Output:: + + { + "ReservedInstancesOfferings": [ + { + "OfferingType": "Partial Upfront", + "AvailabilityZone": "us-east-1b", + "InstanceTenancy": "default", + "PricingDetails": [], + "ProductDescription": "Red Hat Enterprise Linux", + "UsagePrice": 0.0, + "RecurringCharges": [ + { + "Amount": 0.088, + "Frequency": "Hourly" + } + ], + "Marketplace": false, + "CurrencyCode": "USD", + "FixedPrice": 631.0, + "Duration": 94608000, + "ReservedInstancesOfferingId": "9a06095a-bdc6-47fe-a94a-2a382f016040", + "InstanceType": "c1.medium" + }, + { + "OfferingType": "PartialUpfront", + "AvailabilityZone": "us-east-1b", + "InstanceTenancy": "default", + "PricingDetails": [], + "ProductDescription": "Linux/UNIX", + "UsagePrice": 0.0, + "RecurringCharges": [ + { + "Amount": 0.028, + "Frequency": "Hourly" + } + ], + "Marketplace": false, + "CurrencyCode": "USD", + "FixedPrice": 631.0, + "Duration": 94608000, + "ReservedInstancesOfferingId": "bfbefc6c-0d10-418d-b144-7258578d329d", + "InstanceType": "c1.medium" + }, + ... + } + +**To describe your Reserved Instances offerings using options** + +This example lists Reserved Instances offered by AWS with the following specifications: t1.micro instance types, Windows (Amazon VPC) product, and Heavy Utilization offerings. + +Command:: + + aws ec2 describe-reserved-instances-offerings --no-include-marketplace --instance-type "t1.micro" --product-description "Windows (Amazon VPC)" --offering-type "no upfront" + +Output:: + + { + "ReservedInstancesOfferings": [ + { + "OfferingType": "No Upfront", + "AvailabilityZone": "us-east-1b", + "InstanceTenancy": "default", + "PricingDetails": [], + "ProductDescription": "Windows", + "UsagePrice": 0.0, + "RecurringCharges": [ + { + "Amount": 0.015, + "Frequency": "Hourly" + } + ], + "Marketplace": false, + "CurrencyCode": "USD", + "FixedPrice": 0.0, + "Duration": 31536000, + "ReservedInstancesOfferingId": "c48ab04c-fe69-4f94-8e39-a23842292823", + "InstanceType": "t1.micro" + }, + + ... + { + "OfferingType": "No Upfront", + "AvailabilityZone": "us-east-1d", + "InstanceTenancy": "default", + "PricingDetails": [], + "ProductDescription": "Windows (Amazon VPC)", + "UsagePrice": 0.0, + "RecurringCharges": [ + { + "Amount": 0.015, + "Frequency": "Hourly" + } + ], + "Marketplace": false, + "CurrencyCode": "USD", + "FixedPrice": 0.0, + "Duration": 31536000, + "ReservedInstancesOfferingId": "3a98bf7d-2123-42d4-b4f5-8dbec4b06dc6", + "InstanceType": "t1.micro" + } + ] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-reserved-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-reserved-instances.rst new file mode 100644 index 000000000..78d09725d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-reserved-instances.rst @@ -0,0 +1,74 @@ +**To describe your Reserved Instances** + +This example command describes the Reserved Instances that you own. + +Command:: + + aws ec2 describe-reserved-instances + +Output:: + + { + "ReservedInstances": [ + { + "ReservedInstancesId": "b847fa93-e282-4f55-b59a-1342fexample", + "OfferingType": "No Upfront", + "AvailabilityZone": "us-west-1c", + "End": "2016-08-14T21:34:34.000Z", + "ProductDescription": "Linux/UNIX", + "UsagePrice": 0.00, + "RecurringCharges": [ + { + "Amount": 0.104, + "Frequency": "Hourly" + } + ], + "Start": "2015-08-15T21:34:35.086Z", + "State": "active", + "FixedPrice": 0.0, + "CurrencyCode": "USD", + "Duration": 31536000, + "InstanceTenancy": "default", + "InstanceType": "m3.medium", + "InstanceCount": 2 + }, + ... + ] + } + +**To describe your Reserved Instances using filters** + +This example filters the response to include only three-year, t2.micro Linux/UNIX Reserved Instances in us-west-1c. + +Command:: + + aws ec2 describe-reserved-instances --filters Name=duration,Values=94608000 Name=instance-type,Values=t2.micro Name=product-description,Values=Linux/UNIX Name=availability-zone,Values=us-east-1e + +Output:: + + { + "ReservedInstances": [ + { + "ReservedInstancesId": "f127bd27-edb7-44c9-a0eb-0d7e09259af0", + "OfferingType": "All Upfront", + "AvailabilityZone": "us-east-1e", + "End": "2018-03-26T21:34:34.000Z", + "ProductDescription": "Linux/UNIX", + "UsagePrice": 0.00, + "RecurringCharges": [], + "Start": "2015-03-27T21:34:35.848Z", + "State": "active", + "FixedPrice": 151.0, + "CurrencyCode": "USD", + "Duration": 94608000, + "InstanceTenancy": "default", + "InstanceType": "t2.micro", + "InstanceCount": 1 + } + ] + } + +For more information, see `Using Amazon EC2 Instances`_ in the *AWS Command Line Interface User Guide*. + +.. _`Using Amazon EC2 Instances`: http://docs.aws.amazon.com/cli/latest/userguide/cli-ec2-launch.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-route-tables.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-route-tables.rst new file mode 100644 index 000000000..8400961c5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-route-tables.rst @@ -0,0 +1,99 @@ +**To describe your route tables** + +The following ``describe-route-tables`` example retrieves the details about your route tables :: + + aws ec2 describe-route-tables + +Output:: + + { + "RouteTables": [ + { + "Associations": [ + { + "Main": true, + "RouteTableAssociationId": "rtbassoc-0df3f54e06EXAMPLE", + "RouteTableId": "rtb-09ba434c1bEXAMPLE" + } + ], + "PropagatingVgws": [], + "RouteTableId": "rtb-09ba434c1bEXAMPLE", + "Routes": [ + { + "DestinationCidrBlock": "10.0.0.0/16", + "GatewayId": "local", + "Origin": "CreateRouteTable", + "State": "active" + }, + { + "DestinationCidrBlock": "0.0.0.0/0", + "NatGatewayId": "nat-06c018cbd8EXAMPLE", + "Origin": "CreateRoute", + "State": "blackhole" + } + ], + "Tags": [], + "VpcId": "vpc-0065acced4EXAMPLE", + "OwnerId": "111122223333" + }, + { + "Associations": [ + { + "Main": true, + "RouteTableAssociationId": "rtbassoc-9EXAMPLE", + "RouteTableId": "rtb-a1eec7de" + } + ], + "PropagatingVgws": [], + "RouteTableId": "rtb-a1eec7de", + "Routes": [ + { + "DestinationCidrBlock": "172.31.0.0/16", + "GatewayId": "local", + "Origin": "CreateRouteTable", + "State": "active" + }, + { + "DestinationCidrBlock": "0.0.0.0/0", + "GatewayId": "igw-fEXAMPLE", + "Origin": "CreateRoute", + "State": "active" + } + ], + "Tags": [], + "VpcId": "vpc-3EXAMPLE", + "OwnerId": "111122223333" + }, + { + "Associations": [ + { + "Main": false, + "RouteTableAssociationId": "rtbassoc-0b100c28b2EXAMPLE", + "RouteTableId": "rtb-07a98f76e5EXAMPLE", + "SubnetId": "subnet-0d3d002af8EXAMPLE" + } + ], + "PropagatingVgws": [], + "RouteTableId": "rtb-07a98f76e5EXAMPLE", + "Routes": [ + { + "DestinationCidrBlock": "10.0.0.0/16", + "GatewayId": "local", + "Origin": "CreateRouteTable", + "State": "active" + }, + { + "DestinationCidrBlock": "0.0.0.0/0", + "GatewayId": "igw-06cf664d80EXAMPLE", + "Origin": "CreateRoute", + "State": "active" + } + ], + "Tags": [], + "VpcId": "vpc-0065acced4EXAMPLE", + "OwnerId": "111122223333" + } + ] + } + +For more information, see `Working with Route Tables `__ in the *AWS VPC User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-scheduled-instance-availability.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-scheduled-instance-availability.rst new file mode 100644 index 000000000..4a3bd17d5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-scheduled-instance-availability.rst @@ -0,0 +1,43 @@ +**To describe an available schedule** + +This example describes a schedule that occurs every week on Sunday, starting on the specified date. + +Command:: + + aws ec2 describe-scheduled-instance-availability --recurrence Frequency=Weekly,Interval=1,OccurrenceDays=[1] --first-slot-start-time-range EarliestTime=2016-01-31T00:00:00Z,LatestTime=2016-01-31T04:00:00Z + +Output:: + + { + "ScheduledInstanceAvailabilitySet": [ + { + "AvailabilityZone": "us-west-2b", + "TotalScheduledInstanceHours": 1219, + "PurchaseToken": "eyJ2IjoiMSIsInMiOjEsImMiOi...", + "MinTermDurationInDays": 366, + "AvailableInstanceCount": 20, + "Recurrence": { + "OccurrenceDaySet": [ + 1 + ], + "Interval": 1, + "Frequency": "Weekly", + "OccurrenceRelativeToEnd": false + }, + "Platform": "Linux/UNIX", + "FirstSlotStartTime": "2016-01-31T00:00:00Z", + "MaxTermDurationInDays": 366, + "SlotDurationInHours": 23, + "NetworkPlatform": "EC2-VPC", + "InstanceType": "c4.large", + "HourlyPrice": "0.095" + }, + ... + ] + } + +To narrow the results, you can add filters that specify the operating system, network, and instance type. + +Command: + + --filters Name=platform,Values=Linux/UNIX Name=network-platform,Values=EC2-VPC Name=instance-type,Values=c4.large diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-scheduled-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-scheduled-instances.rst new file mode 100644 index 000000000..10b99790e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-scheduled-instances.rst @@ -0,0 +1,44 @@ +**To describe your Scheduled Instances** + +This example describes the specified Scheduled Instance. + +Command:: + + aws ec2 describe-scheduled-instances --scheduled-instance-ids sci-1234-1234-1234-1234-123456789012 + +Output:: + + { + "ScheduledInstanceSet": [ + { + "AvailabilityZone": "us-west-2b", + "ScheduledInstanceId": "sci-1234-1234-1234-1234-123456789012", + "HourlyPrice": "0.095", + "CreateDate": "2016-01-25T21:43:38.612Z", + "Recurrence": { + "OccurrenceDaySet": [ + 1 + ], + "Interval": 1, + "Frequency": "Weekly", + "OccurrenceRelativeToEnd": false, + "OccurrenceUnit": "" + }, + "Platform": "Linux/UNIX", + "TermEndDate": "2017-01-31T09:00:00Z", + "InstanceCount": 1, + "SlotDurationInHours": 32, + "TermStartDate": "2016-01-31T09:00:00Z", + "NetworkPlatform": "EC2-VPC", + "TotalScheduledInstanceHours": 1696, + "NextSlotStartTime": "2016-01-31T09:00:00Z", + "InstanceType": "c4.large" + } + ] + } + +This example describes all your Scheduled Instances. + +Command:: + + aws ec2 describe-scheduled-instances diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-security-group-references.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-security-group-references.rst new file mode 100644 index 000000000..dbf82a68f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-security-group-references.rst @@ -0,0 +1,19 @@ +**To describe security group references** + +This example describes the security group references for ``sg-bbbb2222``. The response indicates that security group ``sg-bbbb2222`` is being referenced by a security group in VPC ``vpc-aaaaaaaa``. + +Command:: + + aws ec2 describe-security-group-references --group-id sg-bbbbb22222 + +Output:: + + { + "SecurityGroupsReferenceSet": [ + { + "ReferencingVpcId": "vpc-aaaaaaaa ", + "GroupId": "sg-bbbbb22222", + "VpcPeeringConnectionId": "pcx-b04deed9" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-security-group-rules.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-security-group-rules.rst new file mode 100644 index 000000000..6a2263159 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-security-group-rules.rst @@ -0,0 +1,76 @@ +**Example 1: To describe the security group rules for a security group** + +The following ``describe-security-group-rules`` example describes the security group rules of a specified security group. Use the ``filters`` option to scope the results to a specific security group. :: + + aws ec2 describe-security-group-rules \ + --filters Name="group-id",Values="sg-1234567890abcdef0" + +Output:: + + { + "SecurityGroupRules": [ + { + "SecurityGroupRuleId": "sgr-abcdef01234567890", + "GroupId": "sg-1234567890abcdef0", + "GroupOwnerId": "111122223333", + "IsEgress": false, + "IpProtocol": "-1", + "FromPort": -1, + "ToPort": -1, + "ReferencedGroupInfo": { + "GroupId": "sg-1234567890abcdef0", + "UserId": "111122223333" + }, + "Tags": [] + }, + { + "SecurityGroupRuleId": "sgr-bcdef01234567890a", + "GroupId": "sg-1234567890abcdef0", + "GroupOwnerId": "111122223333", + "IsEgress": true, + "IpProtocol": "-1", + "FromPort": -1, + "ToPort": -1, + "CidrIpv6": "::/0", + "Tags": [] + }, + { + "SecurityGroupRuleId": "sgr-cdef01234567890ab", + "GroupId": "sg-1234567890abcdef0", + "GroupOwnerId": "111122223333", + "IsEgress": true, + "IpProtocol": "-1", + "FromPort": -1, + "ToPort": -1, + "CidrIpv4": "0.0.0.0/0", + "Tags": [] + } + ] + } + +**Example 2: To describe a security group rule** + +The following ``describe-security-group-rules`` example describes the specified security group rule. :: + + aws ec2 describe-security-group-rules \ + --security-group-rule-ids sgr-cdef01234567890ab + +Output:: + + { + "SecurityGroupRules": [ + { + "SecurityGroupRuleId": "sgr-cdef01234567890ab", + "GroupId": "sg-1234567890abcdef0", + "GroupOwnerId": "111122223333", + "IsEgress": true, + "IpProtocol": "-1", + "FromPort": -1, + "ToPort": -1, + "CidrIpv4": "0.0.0.0/0", + "Tags": [] + } + ] + } + +For more information, see `Security group rules `__ in the *Amazon VPC User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-security-group-vpc-associations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-security-group-vpc-associations.rst new file mode 100644 index 000000000..6efdaea8b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-security-group-vpc-associations.rst @@ -0,0 +1,21 @@ +**To describe VPC associations** + +The following ``describe-security-group-vpc-associations`` example describes the VPC associations for the specified security group. :: + + aws ec2 describe-security-group-vpc-associations \ + --filters Name=group-id,Values=sg-04dbb43907d3f8a78 + +Output:: + + { + "SecurityGroupVpcAssociations": [ + { + "GroupId": "sg-04dbb43907d3f8a78", + "VpcId": "vpc-0bf4c2739bc05a694", + "VpcOwnerId": "123456789012", + "State": "associated" + } + ] + } + +For more information, see `Associate security groups with multiple VPCs `__ in the *Amazon VPC User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-security-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-security-groups.rst new file mode 100644 index 000000000..b78c111d1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-security-groups.rst @@ -0,0 +1,103 @@ +**Example 1: To describe a security group** + +The following ``describe-security-groups`` example describes the specified security group. :: + + aws ec2 describe-security-groups \ + --group-ids sg-903004f8 + +Output:: + + { + "SecurityGroups": [ + { + "IpPermissionsEgress": [ + { + "IpProtocol": "-1", + "IpRanges": [ + { + "CidrIp": "0.0.0.0/0" + } + ], + "UserIdGroupPairs": [], + "PrefixListIds": [] + } + ], + "Description": "My security group", + "Tags": [ + { + "Value": "SG1", + "Key": "Name" + } + ], + "IpPermissions": [ + { + "IpProtocol": "-1", + "IpRanges": [], + "UserIdGroupPairs": [ + { + "UserId": "123456789012", + "GroupId": "sg-903004f8" + } + ], + "PrefixListIds": [] + }, + { + "PrefixListIds": [], + "FromPort": 22, + "IpRanges": [ + { + "Description": "Access from NY office", + "CidrIp": "203.0.113.0/24" + } + ], + "ToPort": 22, + "IpProtocol": "tcp", + "UserIdGroupPairs": [] + } + ], + "GroupName": "MySecurityGroup", + "VpcId": "vpc-1a2b3c4d", + "OwnerId": "123456789012", + "GroupId": "sg-903004f8", + } + ] + } + +**Example 2: To describe security groups that have specific rules** + +The following ``describe-security-groups`` example uses filters to scope the results to security groups that have a rule that allows SSH traffic (port 22) and a rule that allows traffic from all addresses (``0.0.0.0/0``). The example uses the ``--query`` parameter to display only the names of the security groups. Security groups must match all filters to be returned in the results; however, a single rule does not have to match all filters. For example, the output returns a security group with a rule that allows SSH traffic from a specific IP address and another rule that allows HTTP traffic from all addresses. :: + + aws ec2 describe-security-groups \ + --filters Name=ip-permission.from-port,Values=22 Name=ip-permission.to-port,Values=22 Name=ip-permission.cidr,Values='0.0.0.0/0' \ + --query "SecurityGroups[*].[GroupName]" \ + --output text + +Output:: + + default + my-security-group + web-servers + launch-wizard-1 + +**Example 3: To describe security groups based on tags** + +The following ``describe-security-groups`` example uses filters to scope the results to security groups that include ``test`` in the security group name, and that have the tag ``Test=To-delete``. The example uses the ``--query`` parameter to display only the names and IDs of the security groups. :: + + aws ec2 describe-security-groups \ + --filters Name=group-name,Values=*test* Name=tag:Test,Values=To-delete \ + --query "SecurityGroups[*].{Name:GroupName,ID:GroupId}" + +Output:: + + [ + { + "Name": "testfornewinstance", + "ID": "sg-33bb22aa" + }, + { + "Name": "newgrouptest", + "ID": "sg-1a2b3c4d" + } + ] + +For additional examples using tag filters, see `Working with tags `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-snapshot-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-snapshot-attribute.rst new file mode 100644 index 000000000..cac65fe4a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-snapshot-attribute.rst @@ -0,0 +1,20 @@ +**To describe the snapshot attributes for a snapshot** + +The following ``describe-snapshot-attribute`` example lists the accounts with which a snapshot is shared. :: + + aws ec2 describe-snapshot-attribute \ + --snapshot-id snap-01234567890abcedf \ + --attribute createVolumePermission + +Output:: + + { + "SnapshotId": "snap-01234567890abcedf", + "CreateVolumePermissions": [ + { + "UserId": "123456789012" + } + ] + } + +For more information, see `Share an Amazon EBS snapshot `__ in the *Amazon Elastic Compute Cloud User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-snapshot-tier-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-snapshot-tier-status.rst new file mode 100644 index 000000000..ddd56a13c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-snapshot-tier-status.rst @@ -0,0 +1,27 @@ +**To view archival information about an archived snapshot** + +The following ``describe-snapshot-tier-status`` example provides archival information about an archived snapshot. :: + + aws ec2 describe-snapshot-tier-status \ + --filters "Name=snapshot-id, Values=snap-01234567890abcedf" + +Output:: + + { + "SnapshotTierStatuses": [ + { + "Status": "completed", + "ArchivalCompleteTime": "2021-09-15T17:33:16.147Z", + "LastTieringProgress": 100, + "Tags": [], + "VolumeId": "vol-01234567890abcedf", + "LastTieringOperationState": "archival-completed", + "StorageTier": "archive", + "OwnerId": "123456789012", + "SnapshotId": "snap-01234567890abcedf", + "LastTieringStartTime": "2021-09-15T16:44:37.574Z" + } + ] + } + +For more information, see `View archived snapshots `__ in the *Amazon Elastic Compute Cloud User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-snapshots.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-snapshots.rst new file mode 100644 index 000000000..df4eadde4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-snapshots.rst @@ -0,0 +1,120 @@ +**Example 1: To describe a snapshot** + +The following ``describe-snapshots`` example describes the specified snapshot. :: + + aws ec2 describe-snapshots \ + --snapshot-ids snap-1234567890abcdef0 + +Output:: + + { + "Snapshots": [ + { + "Description": "This is my snapshot", + "Encrypted": false, + "VolumeId": "vol-049df61146c4d7901", + "State": "completed", + "VolumeSize": 8, + "StartTime": "2019-02-28T21:28:32.000Z", + "Progress": "100%", + "OwnerId": "012345678910", + "SnapshotId": "snap-01234567890abcdef", + "Tags": [ + { + "Key": "Stack", + "Value": "test" + } + ] + } + ] + } + +For more information, see `Amazon EBS snapshots `__ in the *Amazon EC2 User Guide*. + +**Example 2: To describe snapshots based on filters** + +The following ``describe-snapshots`` example uses filters to scope the results to snapshots owned by your AWS account that are in the ``pending`` state. The example uses the ``--query`` parameter to display only the snapshot IDs and the time the snapshot was started. :: + + aws ec2 describe-snapshots \ + --owner-ids self \ + --filters Name=status,Values=pending \ + --query "Snapshots[*].{ID:SnapshotId,Time:StartTime}" + +Output:: + + [ + { + "ID": "snap-1234567890abcdef0", + "Time": "2019-08-04T12:48:18.000Z" + }, + { + "ID": "snap-066877671789bd71b", + "Time": "2019-08-04T02:45:16.000Z + }, + ... + ] + +The following ``describe-snapshots`` example uses filters to scope the results to snapshots created from the specified volume. The example uses the ``--query`` parameter to display only the snapshot IDs. :: + + aws ec2 describe-snapshots \ + --filters Name=volume-id,Values=049df61146c4d7901 \ + --query "Snapshots[*].[SnapshotId]" \ + --output text + +Output:: + + snap-1234567890abcdef0 + snap-08637175a712c3fb9 + ... + +For additional examples using filters, see `Listing and filtering your resources `__ in the *Amazon EC2 User Guide*. + +**Example 3: To describe snapshots based on tags** + +The following ``describe-snapshots`` example uses tag filters to scope the results to snapshots that have the tag ``Stack=Prod``. :: + + aws ec2 describe-snapshots \ + --filters Name=tag:Stack,Values=prod + +For an example of the output for ``describe-snapshots``, see Example 1. + +For additional examples using tag filters, see `Working with tags `__ in the *Amazon EC2 User Guide*. + +**Example 4: To describe snapshots based on age** + +The following ``describe-snapshots`` example uses JMESPath expressions to describe all snapshots created by your AWS account before the specified date. It displays only the snapshot IDs. :: + + aws ec2 describe-snapshots \ + --owner-ids 012345678910 \ + --query "Snapshots[?(StartTime<='2020-03-31')].[SnapshotId]" + +For additional examples using filters, see `Listing and filtering your resources `__ in the *Amazon EC2 User Guide*. + +**Example 5: To view only archived snapshots** + +The following ``describe-snapshots`` example lists only snapshots that are stored in the archive tier. :: + + aws ec2 describe-snapshots \ + --filters "Name=storage-tier,Values=archive" + +Output:: + + { + "Snapshots": [ + { + "Description": "Snap A", + "Encrypted": false, + "VolumeId": "vol-01234567890aaaaaa", + "State": "completed", + "VolumeSize": 8, + "StartTime": "2021-09-07T21:00:00.000Z", + "Progress": "100%", + "OwnerId": "123456789012", + "SnapshotId": "snap-01234567890aaaaaa", + "StorageTier": "archive", + "Tags": [] + }, + ] + } + +For more information, see `View archived snapshots `__ in the *Amazon Elastic Compute Cloud User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-spot-datafeed-subscription.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-spot-datafeed-subscription.rst new file mode 100644 index 000000000..24f68d689 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-spot-datafeed-subscription.rst @@ -0,0 +1,19 @@ +**To describe Spot Instance datafeed subscription for an account** + +This example command describes the data feed for the account. + +Command:: + + aws ec2 describe-spot-datafeed-subscription + +Output:: + + { + "SpotDatafeedSubscription": { + "OwnerId": "123456789012", + "Prefix": "spotdata", + "Bucket": "amzn-s3-demo-bucket", + "State": "Active" + } + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-spot-fleet-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-spot-fleet-instances.rst new file mode 100644 index 000000000..a6e7134ef --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-spot-fleet-instances.rst @@ -0,0 +1,21 @@ +**To describe the Spot Instances associated with a Spot fleet** + +This example command lists the Spot instances associated with the specified Spot fleet. + +Command:: + + aws ec2 describe-spot-fleet-instances --spot-fleet-request-id sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE + +Output:: + + { + "ActiveInstances": [ + { + "InstanceId": "i-1234567890abcdef0", + "InstanceType": "m3.medium", + "SpotInstanceRequestId": "sir-08b93456" + }, + ... + ], + "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-spot-fleet-request-history.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-spot-fleet-request-history.rst new file mode 100644 index 000000000..bd0e7aa3d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-spot-fleet-request-history.rst @@ -0,0 +1,49 @@ +**To describe Spot fleet history** + +This example command returns the history for the specified Spot fleet starting at the specified time. + +Command:: + + aws ec2 describe-spot-fleet-request-history --spot-fleet-request-id sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --start-time 2015-05-26T00:00:00Z + +The following example output shows the successful launches of two Spot Instances for the Spot fleet. + +Output:: + + { + "HistoryRecords": [ + { + "Timestamp": "2015-05-26T23:17:20.697Z", + "EventInformation": { + "EventSubType": "submitted" + }, + "EventType": "fleetRequestChange" + }, + { + "Timestamp": "2015-05-26T23:17:20.873Z", + "EventInformation": { + "EventSubType": "active" + }, + "EventType": "fleetRequestChange" + }, + { + "Timestamp": "2015-05-26T23:21:21.712Z", + "EventInformation": { + "InstanceId": "i-1234567890abcdef0", + "EventSubType": "launched" + }, + "EventType": "instanceChange" + }, + { + "Timestamp": "2015-05-26T23:21:21.816Z", + "EventInformation": { + "InstanceId": "i-1234567890abcdef1", + "EventSubType": "launched" + }, + "EventType": "instanceChange" + } + ], + "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", + "NextToken": "CpHNsscimcV5oH7bSbub03CI2Qms5+ypNpNm+53MNlR0YcXAkp0xFlfKf91yVxSExmbtma3awYxMFzNA663ZskT0AHtJ6TCb2Z8bQC2EnZgyELbymtWPfpZ1ZbauVg+P+TfGlWxWWB/Vr5dk5d4LfdgA/DRAHUrYgxzrEXAMPLE=", + "StartTime": "2015-05-26T00:00:00Z" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-spot-fleet-requests.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-spot-fleet-requests.rst new file mode 100644 index 000000000..d52ab4db5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-spot-fleet-requests.rst @@ -0,0 +1,132 @@ +**To describe your Spot fleet requests** + +This example describes all of your Spot fleet requests. + +Command:: + + aws ec2 describe-spot-fleet-requests + +Output:: + + { + "SpotFleetRequestConfigs": [ + { + "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", + "SpotFleetRequestConfig": { + "TargetCapacity": 20, + "LaunchSpecifications": [ + { + "EbsOptimized": false, + "NetworkInterfaces": [ + { + "SubnetId": "subnet-a61dafcf", + "DeviceIndex": 0, + "DeleteOnTermination": false, + "AssociatePublicIpAddress": true, + "SecondaryPrivateIpAddressCount": 0 + } + ], + "InstanceType": "cc2.8xlarge", + "ImageId": "ami-1a2b3c4d" + }, + { + "EbsOptimized": false, + "NetworkInterfaces": [ + { + "SubnetId": "subnet-a61dafcf", + "DeviceIndex": 0, + "DeleteOnTermination": false, + "AssociatePublicIpAddress": true, + "SecondaryPrivateIpAddressCount": 0 + } + ], + "InstanceType": "r3.8xlarge", + "ImageId": "ami-1a2b3c4d" + } + ], + "SpotPrice": "0.05", + "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role" + }, + "SpotFleetRequestState": "active" + }, + { + "SpotFleetRequestId": "sfr-306341ed-9739-402e-881b-ce47bEXAMPLE", + "SpotFleetRequestConfig": { + "TargetCapacity": 20, + "LaunchSpecifications": [ + { + "EbsOptimized": false, + "NetworkInterfaces": [ + { + "SubnetId": "subnet-6e7f829e", + "DeviceIndex": 0, + "DeleteOnTermination": false, + "AssociatePublicIpAddress": true, + "SecondaryPrivateIpAddressCount": 0 + } + ], + "InstanceType": "m3.medium", + "ImageId": "ami-1a2b3c4d" + } + ], + "SpotPrice": "0.05", + "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role" + }, + "SpotFleetRequestState": "active" + } + ] + } + +**To describe a Spot fleet request** + +This example describes the specified Spot fleet request. + +Command:: + + aws ec2 describe-spot-fleet-requests --spot-fleet-request-ids sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE + +Output:: + + { + "SpotFleetRequestConfigs": [ + { + "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", + "SpotFleetRequestConfig": { + "TargetCapacity": 20, + "LaunchSpecifications": [ + { + "EbsOptimized": false, + "NetworkInterfaces": [ + { + "SubnetId": "subnet-a61dafcf", + "DeviceIndex": 0, + "DeleteOnTermination": false, + "AssociatePublicIpAddress": true, + "SecondaryPrivateIpAddressCount": 0 + } + ], + "InstanceType": "cc2.8xlarge", + "ImageId": "ami-1a2b3c4d" + }, + { + "EbsOptimized": false, + "NetworkInterfaces": [ + { + "SubnetId": "subnet-a61dafcf", + "DeviceIndex": 0, + "DeleteOnTermination": false, + "AssociatePublicIpAddress": true, + "SecondaryPrivateIpAddressCount": 0 + } + ], + "InstanceType": "r3.8xlarge", + "ImageId": "ami-1a2b3c4d" + } + ], + "SpotPrice": "0.05", + "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role" + }, + "SpotFleetRequestState": "active" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-spot-instance-requests.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-spot-instance-requests.rst new file mode 100644 index 000000000..287192be2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-spot-instance-requests.rst @@ -0,0 +1,96 @@ +**Example 1: To describe a Spot Instance request** + +The following ``describe-spot-instance-requests`` example describes the specified Spot Instance request. :: + + aws ec2 describe-spot-instance-requests \ + --spot-instance-request-ids sir-08b93456 + +Output:: + + { + "SpotInstanceRequests": [ + { + "CreateTime": "2018-04-30T18:14:55.000Z", + "InstanceId": "i-1234567890abcdef1", + "LaunchSpecification": { + "InstanceType": "t2.micro", + "ImageId": "ami-003634241a8fcdec0", + "KeyName": "my-key-pair", + "SecurityGroups": [ + { + "GroupName": "default", + "GroupId": "sg-e38f24a7" + } + ], + "BlockDeviceMappings": [ + { + "DeviceName": "/dev/sda1", + "Ebs": { + "DeleteOnTermination": true, + "SnapshotId": "snap-0e54a519c999adbbd", + "VolumeSize": 8, + "VolumeType": "standard", + "Encrypted": false + } + } + ], + "NetworkInterfaces": [ + { + "DeleteOnTermination": true, + "DeviceIndex": 0, + "SubnetId": "subnet-049df61146c4d7901" + } + ], + "Placement": { + "AvailabilityZone": "us-east-2b", + "Tenancy": "default" + }, + "Monitoring": { + "Enabled": false + } + }, + "LaunchedAvailabilityZone": "us-east-2b", + "ProductDescription": "Linux/UNIX", + "SpotInstanceRequestId": "sir-08b93456", + "SpotPrice": "0.010000" + "State": "active", + "Status": { + "Code": "fulfilled", + "Message": "Your Spot request is fulfilled.", + "UpdateTime": "2018-04-30T18:16:21.000Z" + }, + "Tags": [], + "Type": "one-time", + "InstanceInterruptionBehavior": "terminate" + } + ] + } + +**Example 2: To describe Spot Instance requests based on filters** + +The following ``describe-spot-instance-requests`` example uses filters to scope the results to Spot Instance requests with the specified instance type in the specified Availability Zone. The example uses the ``--query`` parameter to display only the instance IDs. :: + + aws ec2 describe-spot-instance-requests \ + --filters Name=launch.instance-type,Values=m3.medium Name=launched-availability-zone,Values=us-east-2a \ + --query "SpotInstanceRequests[*].[InstanceId]" \ + --output text + +Output:: + + i-057750d42936e468a + i-001efd250faaa6ffa + i-027552a73f021f3bd + ... + +For additional examples using filters, see `Listing and filtering your resources `__ in the *Amazon Elastic Compute Cloud User Guide*. + +**Example 3: To describe Spot Instance requests based on tags** + +The following ``describe-spot-instance-requests`` example uses tag filters to scope the results to Spot Instance requests that have the tag ``cost-center=cc123``. :: + + aws ec2 describe-spot-instance-requests \ + --filters Name=tag:cost-center,Values=cc123 + +For an example of the output for ``describe-spot-instance-requests``, see Example 1. + +For additional examples using tag filters, see `Working with tags `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-spot-price-history.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-spot-price-history.rst new file mode 100644 index 000000000..35dbfadbb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-spot-price-history.rst @@ -0,0 +1,65 @@ +**To describe Spot price history** + +This example command returns the Spot Price history for m1.xlarge instances for a particular day in January. + +Command:: + + aws ec2 describe-spot-price-history --instance-types m1.xlarge --start-time 2014-01-06T07:08:09 --end-time 2014-01-06T08:09:10 + +Output:: + + { + "SpotPriceHistory": [ + { + "Timestamp": "2014-01-06T07:10:55.000Z", + "ProductDescription": "SUSE Linux", + "InstanceType": "m1.xlarge", + "SpotPrice": "0.087000", + "AvailabilityZone": "us-west-1b" + }, + { + "Timestamp": "2014-01-06T07:10:55.000Z", + "ProductDescription": "SUSE Linux", + "InstanceType": "m1.xlarge", + "SpotPrice": "0.087000", + "AvailabilityZone": "us-west-1c" + }, + { + "Timestamp": "2014-01-06T05:42:36.000Z", + "ProductDescription": "SUSE Linux (Amazon VPC)", + "InstanceType": "m1.xlarge", + "SpotPrice": "0.087000", + "AvailabilityZone": "us-west-1a" + }, + ... + } + + +**To describe Spot price history for Linux/UNIX Amazon VPC** + +This example command returns the Spot Price history for m1.xlarge, Linux/UNIX Amazon VPC instances for a particular day in January. + +Command:: + + aws ec2 describe-spot-price-history --instance-types m1.xlarge --product-description "Linux/UNIX (Amazon VPC)" --start-time 2014-01-06T07:08:09 --end-time 2014-01-06T08:09:10 + +Output:: + + { + "SpotPriceHistory": [ + { + "Timestamp": "2014-01-06T04:32:53.000Z", + "ProductDescription": "Linux/UNIX (Amazon VPC)", + "InstanceType": "m1.xlarge", + "SpotPrice": "0.080000", + "AvailabilityZone": "us-west-1a" + }, + { + "Timestamp": "2014-01-05T11:28:26.000Z", + "ProductDescription": "Linux/UNIX (Amazon VPC)", + "InstanceType": "m1.xlarge", + "SpotPrice": "0.080000", + "AvailabilityZone": "us-west-1c" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-stale-security-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-stale-security-groups.rst new file mode 100644 index 000000000..764964cab --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-stale-security-groups.rst @@ -0,0 +1,59 @@ +**To describe stale security groups** + +This example describes stale security group rules for ``vpc-11223344``. The response shows that sg-5fa68d3a in your account has a stale ingress SSH rule that references ``sg-279ab042`` in the peer VPC, and that ``sg-fe6fba9a`` in your account has a stale egress SSH rule that references ``sg-ef6fba8b`` in the peer VPC. + +Command:: + + aws ec2 describe-stale-security-groups --vpc-id vpc-11223344 + +Output:: + + { + "StaleSecurityGroupSet": [ + { + "VpcId": "vpc-11223344", + "StaleIpPermissionsEgress": [ + { + "ToPort": 22, + "FromPort": 22, + "UserIdGroupPairs": [ + { + "VpcId": "vpc-7a20e51f", + "GroupId": "sg-ef6fba8b", + "VpcPeeringConnectionId": "pcx-b04deed9", + "PeeringStatus": "active" + } + ], + "IpProtocol": "tcp" + } + ], + "GroupName": "MySG1", + "StaleIpPermissions": [], + "GroupId": "sg-fe6fba9a", + "Description": MySG1" + }, + { + "VpcId": "vpc-11223344", + "StaleIpPermissionsEgress": [], + "GroupName": "MySG2", + "StaleIpPermissions": [ + { + "ToPort": 22, + "FromPort": 22, + "UserIdGroupPairs": [ + { + "VpcId": "vpc-7a20e51f", + "GroupId": "sg-279ab042", + "Description": "Access from pcx-b04deed9", + "VpcPeeringConnectionId": "pcx-b04deed9", + "PeeringStatus": "active" + } + ], + "IpProtocol": "tcp" + } + ], + "GroupId": "sg-5fa68d3a", + "Description": "MySG2" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-store-image-tasks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-store-image-tasks.rst new file mode 100644 index 000000000..ad62ec8e8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-store-image-tasks.rst @@ -0,0 +1,23 @@ +**To describe the progress of an AMI store task** + +The following ``describe-store-image-tasks`` example describes the progress of an AMI store task. :: + + aws ec2 describe-store-image-tasks + +Output:: + + { + "StoreImageTaskResults": [ + { + "AmiId": "ami-1234567890abcdef0", + "Bucket": "my-ami-bucket", + "ProgressPercentage": 17, + "S3objectKey": "ami-1234567890abcdef0.bin", + "StoreTaskState": "InProgress", + "StoreTaskFailureReason": null, + "TaskStartTime": "2022-01-01T01:01:01.001Z" + } + ] + } + +For more information about storing and restoring an AMI using S3, see `Store and restore an AMI using S3 ` in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-subnets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-subnets.rst new file mode 100644 index 000000000..0bbb78c86 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-subnets.rst @@ -0,0 +1,129 @@ +**Example 1: To describe all your subnets** + +The following ``describe-subnets`` example displays the details of your subnets. :: + + aws ec2 describe-subnets + +Output:: + + { + "Subnets": [ + { + "AvailabilityZone": "us-east-1d", + "AvailabilityZoneId": "use1-az2", + "AvailableIpAddressCount": 4089, + "CidrBlock": "172.31.80.0/20", + "DefaultForAz": true, + "MapPublicIpOnLaunch": false, + "MapCustomerOwnedIpOnLaunch": true, + "State": "available", + "SubnetId": "subnet-0bb1c79de3EXAMPLE", + "VpcId": "vpc-0ee975135dEXAMPLE", + "OwnerId": "111122223333", + "AssignIpv6AddressOnCreation": false, + "Ipv6CidrBlockAssociationSet": [], + "CustomerOwnedIpv4Pool:": 'pool-2EXAMPLE', + "SubnetArn": "arn:aws:ec2:us-east-2:111122223333:subnet/subnet-0bb1c79de3EXAMPLE", + "EnableDns64": false, + "Ipv6Native": false, + "PrivateDnsNameOptionsOnLaunch": { + "HostnameType": "ip-name", + "EnableResourceNameDnsARecord": false, + "EnableResourceNameDnsAAAARecord": false + } + }, + { + "AvailabilityZone": "us-east-1d", + "AvailabilityZoneId": "use1-az2", + "AvailableIpAddressCount": 4089, + "CidrBlock": "172.31.80.0/20", + "DefaultForAz": true, + "MapPublicIpOnLaunch": true, + "MapCustomerOwnedIpOnLaunch": false, + "State": "available", + "SubnetId": "subnet-8EXAMPLE", + "VpcId": "vpc-3EXAMPLE", + "OwnerId": "1111222233333", + "AssignIpv6AddressOnCreation": false, + "Ipv6CidrBlockAssociationSet": [], + "Tags": [ + { + "Key": "Name", + "Value": "MySubnet" + } + ], + "SubnetArn": "arn:aws:ec2:us-east-1:111122223333:subnet/subnet-8EXAMPLE", + "EnableDns64": false, + "Ipv6Native": false, + "PrivateDnsNameOptionsOnLaunch": { + "HostnameType": "ip-name", + "EnableResourceNameDnsARecord": false, + "EnableResourceNameDnsAAAARecord": false + } + } + ] + } + +For more information, see `Working with VPCs and Subnets `__ in the *AWS VPC User Guide*. + +**Example 2: To describe the subnets of a specific VPC** + +The following ``describe-subnets`` example uses a filter to retrieve details for the subnets of the specified VPC. :: + + aws ec2 describe-subnets \ + --filters "Name=vpc-id,Values=vpc-3EXAMPLE" + +Output:: + + { + "Subnets": [ + { + "AvailabilityZone": "us-east-1d", + "AvailabilityZoneId": "use1-az2", + "AvailableIpAddressCount": 4089, + "CidrBlock": "172.31.80.0/20", + "DefaultForAz": true, + "MapPublicIpOnLaunch": true, + "MapCustomerOwnedIpOnLaunch": false, + "State": "available", + "SubnetId": "subnet-8EXAMPLE", + "VpcId": "vpc-3EXAMPLE", + "OwnerId": "1111222233333", + "AssignIpv6AddressOnCreation": false, + "Ipv6CidrBlockAssociationSet": [], + "Tags": [ + { + "Key": "Name", + "Value": "MySubnet" + } + ], + "SubnetArn": "arn:aws:ec2:us-east-1:111122223333:subnet/subnet-8EXAMPLE", + "EnableDns64": false, + "Ipv6Native": false, + "PrivateDnsNameOptionsOnLaunch": { + "HostnameType": "ip-name", + "EnableResourceNameDnsARecord": false, + "EnableResourceNameDnsAAAARecord": false + } + } + ] + } + +For more information, see `Working with VPCs and Subnets `__ in the *AWS VPC User Guide*. + +**Example 3: To describe the subnets with a specific tag** + +The following ``describe-subnets`` example uses a filter to retrieve the details of those subnets with the tag ``CostCenter=123`` and the ``--query`` parameter to display the subnet IDs of the subnets with this tag. :: + + aws ec2 describe-subnets \ + --filters "Name=tag:CostCenter,Values=123" \ + --query "Subnets[*].SubnetId" \ + --output text + +Output:: + + subnet-0987a87c8b37348ef + subnet-02a95061c45f372ee + subnet-03f720e7de2788d73 + +For more information, see `Working with VPCs and Subnets `__ in the *Amazon VPC User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-tags.rst new file mode 100755 index 000000000..fcc3c8da8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-tags.rst @@ -0,0 +1,132 @@ +**Example 1: To describe all tags for a single resource** + +The following ``describe-tags`` example describes the tags for the specified instance. :: + + aws ec2 describe-tags \ + --filters "Name=resource-id,Values=i-1234567890abcdef8" + +Output:: + + { + "Tags": [ + { + "ResourceType": "instance", + "ResourceId": "i-1234567890abcdef8", + "Value": "Test", + "Key": "Stack" + }, + { + "ResourceType": "instance", + "ResourceId": "i-1234567890abcdef8", + "Value": "Beta Server", + "Key": "Name" + } + ] + } + +**Example 2: To describe all tags for a resource type** + +The following ``describe-tags`` example describes the tags for your volumes. :: + + aws ec2 describe-tags \ + --filters "Name=resource-type,Values=volume" + +Output:: + + { + "Tags": [ + { + "ResourceType": "volume", + "ResourceId": "vol-1234567890abcdef0", + "Value": "Project1", + "Key": "Purpose" + }, + { + "ResourceType": "volume", + "ResourceId": "vol-049df61146c4d7901", + "Value": "Logs", + "Key": "Purpose" + } + ] + } + +**Example 3: To describe all your tags** + +The following ``describe-tags`` example describes the tags for all your resources. :: + + aws ec2 describe-tags + +**Example 4: To describe the tags for your resources based on a tag key** + +The following ``describe-tags`` example describes the tags for your resources that have a tag with the key ``Stack``. :: + + aws ec2 describe-tags \ + --filters Name=key,Values=Stack + +Output:: + + { + "Tags": [ + { + "ResourceType": "volume", + "ResourceId": "vol-027552a73f021f3b", + "Value": "Production", + "Key": "Stack" + }, + { + "ResourceType": "instance", + "ResourceId": "i-1234567890abcdef8", + "Value": "Test", + "Key": "Stack" + } + ] + } + +**Example 5: To describe the tags for your resources based on a tag key and tag value** + +The following ``describe-tags`` example describes the tags for your resources that have the tag ``Stack=Test``. :: + + aws ec2 describe-tags \ + --filters Name=key,Values=Stack Name=value,Values=Test + +Output:: + + { + "Tags": [ + { + "ResourceType": "image", + "ResourceId": "ami-3ac336533f021f3bd", + "Value": "Test", + "Key": "Stack" + }, + { + "ResourceType": "instance", + "ResourceId": "i-1234567890abcdef8", + "Value": "Test", + "Key": "Stack" + } + ] + } + +The following ``describe-tags`` example uses alternate syntax to describe resources with the tag ``Stack=Test``. :: + + aws ec2 describe-tags \ + --filters "Name=tag:Stack,Values=Test" + +The following ``describe-tags`` example describes the tags for all your instances that have a tag with the key ``Purpose`` and no value. :: + + aws ec2 describe-tags \ + --filters "Name=resource-type,Values=instance" "Name=key,Values=Purpose" "Name=value,Values=" + +Output:: + + { + "Tags": [ + { + "ResourceType": "instance", + "ResourceId": "i-1234567890abcdef5", + "Value": null, + "Key": "Purpose" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-traffic-mirror-filters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-traffic-mirror-filters.rst new file mode 100755 index 000000000..4f7021023 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-traffic-mirror-filters.rst @@ -0,0 +1,34 @@ +**To view your traffic mirror filters** + +The following ``describe-traffic-mirror-filters`` example displays details for all of your traffic mirror filters. :: + + aws ec2 describe-traffic-mirror-filters + +Output:: + + { + "TrafficMirrorFilters": [ + { + "TrafficMirrorFilterId": "tmf-0293f26e86EXAMPLE", + "IngressFilterRules": [ + { + "TrafficMirrorFilterRuleId": "tmfr-0ca76e0e08EXAMPLE", + "TrafficMirrorFilterId": "tmf-0293f26e86EXAMPLE", + "TrafficDirection": "ingress", + "RuleNumber": 100, + "RuleAction": "accept", + "Protocol": 6, + "DestinationCidrBlock": "10.0.0.0/24", + "SourceCidrBlock": "10.0.0.0/24", + "Description": "TCP Rule" + } + ], + "EgressFilterRules": [], + "NetworkServices": [], + "Description": "Example filter", + "Tags": [] + } + ] + } + +For more information, see `View your traffic mirror filters `__ in the *Traffic Mirroring Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-traffic-mirror-sessions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-traffic-mirror-sessions.rst new file mode 100644 index 000000000..8422ae08c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-traffic-mirror-sessions.rst @@ -0,0 +1,42 @@ +**To describe a Traffic Mirror Session** + +The following ``describe-traffic-mirror-sessions`` example displays details of the your Traffic Mirror sessions. :: + + aws ec2 describe-traffic-mirror-sessions + +Output:: + + { + "TrafficMirrorSessions": [ + { + "Tags": [], + "VirtualNetworkId": 42, + "OwnerId": "111122223333", + "Description": "TCP Session", + "NetworkInterfaceId": "eni-0a471a5cf3EXAMPLE", + "TrafficMirrorTargetId": "tmt-0dabe9b0a6EXAMPLE", + "TrafficMirrorFilterId": "tmf-083e18f985EXAMPLE", + "PacketLength": 20, + "SessionNumber": 1, + "TrafficMirrorSessionId": "tms-0567a4c684EXAMPLE" + }, + { + "Tags": [ + { + "Key": "Name", + "Value": "tag test" + } + ], + "VirtualNetworkId": 13314501, + "OwnerId": "111122223333", + "Description": "TCP Session", + "NetworkInterfaceId": "eni-0a471a5cf3EXAMPLE", + "TrafficMirrorTargetId": "tmt-03665551cbEXAMPLE", + "TrafficMirrorFilterId": "tmf-06c787846cEXAMPLE", + "SessionNumber": 2, + "TrafficMirrorSessionId": "tms-0060101cf8EXAMPLE" + } + ] + } + +For more information, see `View Traffic Mirror Session Details `__ in the *AWS Traffic Mirroring Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-traffic-mirror-targets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-traffic-mirror-targets.rst new file mode 100644 index 000000000..450be95c9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-traffic-mirror-targets.rst @@ -0,0 +1,23 @@ +**To describe a traffic mirror target** + +The following ``describe-traffic-mirror-targets`` example displays information about the specified traffic mirror target. :: + + aws ec2 describe-traffic-mirror-targets \ + --traffic-mirror-target-ids tmt-0dabe9b0a6EXAMPLE + +Output:: + + { + "TrafficMirrorTargets": [ + { + "TrafficMirrorTargetId": "tmt-0dabe9b0a6EXAMPLE", + "NetworkLoadBalancerArn": "arn:aws:elasticloadbalancing:us-east-1:111122223333:loadbalancer/net/NLB/7cdec873fEXAMPLE", + "Type": "network-load-balancer", + "Description": "Example Network Load Balancer target", + "OwnerId": "111122223333", + "Tags": [] + } + ] + } + +For more information, see `Traffic mirror targets `__ in the *Amazon VPC Traffic Mirroring Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-attachments.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-attachments.rst new file mode 100755 index 000000000..61b377506 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-attachments.rst @@ -0,0 +1,79 @@ +**To view your transit gateway attachments** + + The following ``describe-transit-gateway-attachments`` example displays details for your transit gateway attachments. :: + + aws ec2 describe-transit-gateway-attachments + +Output:: + + { + "TransitGatewayAttachments": [ + { + "TransitGatewayAttachmentId": "tgw-attach-01f8100bc7EXAMPLE", + "TransitGatewayId": "tgw-02f776b1a7EXAMPLE", + "TransitGatewayOwnerId": "123456789012", + "ResourceOwnerId": "123456789012", + "ResourceType": "vpc", + "ResourceId": "vpc-3EXAMPLE", + "State": "available", + "Association": { + "TransitGatewayRouteTableId": "tgw-rtb-002573ed1eEXAMPLE", + "State": "associated" + }, + "CreationTime": "2019-08-26T14:59:25.000Z", + "Tags": [ + { + "Key": "Name", + "Value": "Example" + } + ] + }, + { + "TransitGatewayAttachmentId": "tgw-attach-0b5968d3b6EXAMPLE", + "TransitGatewayId": "tgw-02f776b1a7EXAMPLE", + "TransitGatewayOwnerId": "123456789012", + "ResourceOwnerId": "123456789012", + "ResourceType": "vpc", + "ResourceId": "vpc-0065acced4EXAMPLE", + "State": "available", + "Association": { + "TransitGatewayRouteTableId": "tgw-rtb-002573ed1eEXAMPLE", + "State": "associated" + }, + "CreationTime": "2019-08-07T17:03:07.000Z", + "Tags": [] + }, + { + "TransitGatewayAttachmentId": "tgw-attach-08e0bc912cEXAMPLE", + "TransitGatewayId": "tgw-02f776b1a7EXAMPLE", + "TransitGatewayOwnerId": "123456789012", + "ResourceOwnerId": "123456789012", + "ResourceType": "direct-connect-gateway", + "ResourceId": "11460968-4ac1-4fd3-bdb2-00599EXAMPLE", + "State": "available", + "Association": { + "TransitGatewayRouteTableId": "tgw-rtb-002573ed1eEXAMPLE", + "State": "associated" + }, + "CreationTime": "2019-08-14T20:27:44.000Z", + "Tags": [] + }, + { + "TransitGatewayAttachmentId": "tgw-attach-0a89069f57EXAMPLE", + "TransitGatewayId": "tgw-02f776b1a7EXAMPLE", + "TransitGatewayOwnerId": "123456789012", + "ResourceOwnerId": "123456789012", + "ResourceType": "direct-connect-gateway", + "ResourceId": "8384da05-13ce-4a91-aada-5a1baEXAMPLE", + "State": "available", + "Association": { + "TransitGatewayRouteTableId": "tgw-rtb-002573ed1eEXAMPLE", + "State": "associated" + }, + "CreationTime": "2019-08-14T20:33:02.000Z", + "Tags": [] + } + ] + } + +For more information, see `Work with transit gateways `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-connect-peers.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-connect-peers.rst new file mode 100644 index 000000000..11e4a3011 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-connect-peers.rst @@ -0,0 +1,46 @@ +**To describe a Transit Gateway Connect peer** + +The following ``describe-transit-gateway-connect-peers`` example describes the specified Connect peer. :: + + aws ec2 describe-transit-gateway-connect-peers \ + --transit-gateway-connect-peer-ids tgw-connect-peer-0666adbac4EXAMPLE + +Output:: + + { + "TransitGatewayConnectPeers": [ + { + "TransitGatewayAttachmentId": "tgw-attach-0f0927767cEXAMPLE", + "TransitGatewayConnectPeerId": "tgw-connect-peer-0666adbac4EXAMPLE", + "State": "available", + "CreationTime": "2021-10-13T03:35:17.000Z", + "ConnectPeerConfiguration": { + "TransitGatewayAddress": "10.0.0.234", + "PeerAddress": "172.31.1.11", + "InsideCidrBlocks": [ + "169.254.6.0/29" + ], + "Protocol": "gre", + "BgpConfigurations": [ + { + "TransitGatewayAsn": 64512, + "PeerAsn": 64512, + "TransitGatewayAddress": "169.254.6.2", + "PeerAddress": "169.254.6.1", + "BgpStatus": "down" + }, + { + "TransitGatewayAsn": 64512, + "PeerAsn": 64512, + "TransitGatewayAddress": "169.254.6.3", + "PeerAddress": "169.254.6.1", + "BgpStatus": "down" + } + ] + }, + "Tags": [] + } + ] + } + +For more information, see `Transit gateway Connect attachments and Transit Gateway Connect peers `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-connects.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-connects.rst new file mode 100644 index 000000000..1ab15cedd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-connects.rst @@ -0,0 +1,26 @@ +**To describe a transit gateway Connect attachment** + +The following ``describe-transit-gateway-connects`` example describes the specified Connect attachment. :: + + aws ec2 describe-transit-gateway-connects \ + --transit-gateway-attachment-ids tgw-attach-037012e5dcEXAMPLE + +Output:: + + { + "TransitGatewayConnects": [ + { + "TransitGatewayAttachmentId": "tgw-attach-037012e5dcEXAMPLE", + "TransportTransitGatewayAttachmentId": "tgw-attach-0a89069f57EXAMPLE", + "TransitGatewayId": "tgw-02f776b1a7EXAMPLE", + "State": "available", + "CreationTime": "2021-03-09T19:59:17+00:00", + "Options": { + "Protocol": "gre" + }, + "Tags": [] + } + ] + } + +For more information, see `Transit gateway Connect attachments and Transit Gateway Connect peers `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-multicast-domains.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-multicast-domains.rst new file mode 100644 index 000000000..fe91a23e2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-multicast-domains.rst @@ -0,0 +1,34 @@ +**To describe your transit gateway multicast domains** + +The following ``describe-transit-gateway-multicast-domains`` example displays details for all of your transit gateway multicast domains. :: + + aws ec2 describe-transit-gateway-multicast-domains + +Output:: + + { + + "TransitGatewayMulticastDomains": [ + { + "TransitGatewayMulticastDomainId": "tgw-mcast-domain-000fb24d04EXAMPLE", + "TransitGatewayId": "tgw-0bf0bffefaEXAMPLE", + "TransitGatewayMulticastDomainArn": "arn:aws:ec2:us-east-1:123456789012:transit-gateway-multicast-domain/tgw-mcast-domain-000fb24d04EXAMPLE", + "OwnerId": "123456789012", + "Options": { + "Igmpv2Support": "disable", + "StaticSourcesSupport": "enable", + "AutoAcceptSharedAssociations": "disable" + }, + "State": "available", + "CreationTime": "2019-12-10T18:32:50+00:00", + "Tags": [ + { + "Key": "Name", + "Value": "mc1" + } + ] + } + ] + } + +For more information, see `Managing multicast domains `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-peering-attachments.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-peering-attachments.rst new file mode 100644 index 000000000..e3ee1ca45 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-peering-attachments.rst @@ -0,0 +1,30 @@ +**To describe your transit gateway peering attachments** + +The following ``describe-transit-gateway-peering-attachments`` example displays details for all of your transit gateway peering attachments. :: + + aws ec2 describe-transit-gateway-peering-attachments + +Output:: + + { + "TransitGatewayPeeringAttachments": [ + { + "TransitGatewayAttachmentId": "tgw-attach-4455667788aabbccd", + "RequesterTgwInfo": { + "TransitGatewayId": "tgw-123abc05e04123abc", + "OwnerId": "123456789012", + "Region": "us-west-2" + }, + "AccepterTgwInfo": { + "TransitGatewayId": "tgw-11223344aabbcc112", + "OwnerId": "123456789012", + "Region": "us-east-2" + }, + "State": "pendingAcceptance", + "CreationTime": "2019-12-09T11:38:05.000Z", + "Tags": [] + } + ] + } + +For more information, see `Transit Gateway Peering Attachments `__ in the *Transit Gateways Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-policy-tables.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-policy-tables.rst new file mode 100644 index 000000000..27475aa04 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-policy-tables.rst @@ -0,0 +1,22 @@ +**To describe a transit gateway policy table** + +The following ``describe-transit-gateway-policy-tables`` example describes the specified transit gateway policy table. :: + + aws ec2 describe-transit-gateway-policy-tables \ + --transit-gateway-policy-table-ids tgw-ptb-0a16f134b78668a81 + +Output:: + + { + "TransitGatewayPolicyTables": [ + { + "TransitGatewayPolicyTableId": "tgw-ptb-0a16f134b78668a81", + "TransitGatewayId": "tgw-067f8505c18f0bd6e", + "State": "available", + "CreationTime": "2023-11-28T16:36:43+00:00", + "Tags": [] + } + ] + } + +For more information, see `Transit gateway policy tables `__ in the *Transit Gateway User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-route-tables.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-route-tables.rst new file mode 100755 index 000000000..c2a2e8857 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-route-tables.rst @@ -0,0 +1,32 @@ +**To describe your transit gateway route tables** + +The following ``describe-transit-gateway-route-tables`` example displays details for your transit gateway route tables. :: + + aws ec2 describe-transit-gateway-route-tables + +Output:: + + { + "TransitGatewayRouteTables": [ + { + "TransitGatewayRouteTableId": "tgw-rtb-0ca78a549EXAMPLE", + "TransitGatewayId": "tgw-0bc994abffEXAMPLE", + "State": "available", + "DefaultAssociationRouteTable": true, + "DefaultPropagationRouteTable": true, + "CreationTime": "2018-11-28T14:24:49.000Z", + "Tags": [] + }, + { + "TransitGatewayRouteTableId": "tgw-rtb-0e8f48f148EXAMPLE", + "TransitGatewayId": "tgw-0043d72bb4EXAMPLE", + "State": "available", + "DefaultAssociationRouteTable": true, + "DefaultPropagationRouteTable": true, + "CreationTime": "2018-11-28T14:24:00.000Z", + "Tags": [] + } + ] + } + +For more information, see `View transit gateway route tables `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-vpc-attachments.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-vpc-attachments.rst new file mode 100644 index 000000000..7620c4441 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateway-vpc-attachments.rst @@ -0,0 +1,36 @@ +**To describe your transit gateway VPC attachments** + +The following ``describe-transit-gateway-vpc-attachments`` example displays details for your transit gateway VPC attachments. :: + + aws ec2 describe-transit-gateway-vpc-attachments + +Output:: + + { + "TransitGatewayVpcAttachments": [ + { + "TransitGatewayAttachmentId": "tgw-attach-0a08e88308EXAMPLE", + "TransitGatewayId": "tgw-0043d72bb4EXAMPLE", + "VpcId": "vpc-0f501f7ee8EXAMPLE", + "VpcOwnerId": "111122223333", + "State": "available", + "SubnetIds": [ + "subnet-045d586432EXAMPLE", + "subnet-0a0ad478a6EXAMPLE" + ], + "CreationTime": "2019-02-13T11:04:02.000Z", + "Options": { + "DnsSupport": "enable", + "Ipv6Support": "disable" + }, + "Tags": [ + { + "Key": "Name", + "Value": "attachment name" + } + ] + } + ] + } + +For more information, see `View your VPC attachments `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateways.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateways.rst new file mode 100644 index 000000000..c24d1e61a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-transit-gateways.rst @@ -0,0 +1,54 @@ +**To describe your transit gateways** + +The following ``describe-transit-gateways`` example retrieves details about your transit gateways. :: + + aws ec2 describe-transit-gateways + +Output:: + + { + "TransitGateways": [ + { + "TransitGatewayId": "tgw-0262a0e521EXAMPLE", + "TransitGatewayArn": "arn:aws:ec2:us-east-2:111122223333:transit-gateway/tgw-0262a0e521EXAMPLE", + "State": "available", + "OwnerId": "111122223333", + "Description": "MyTGW", + "CreationTime": "2019-07-10T14:02:12.000Z", + "Options": { + "AmazonSideAsn": 64516, + "AutoAcceptSharedAttachments": "enable", + "DefaultRouteTableAssociation": "enable", + "AssociationDefaultRouteTableId": "tgw-rtb-018774adf3EXAMPLE", + "DefaultRouteTablePropagation": "enable", + "PropagationDefaultRouteTableId": "tgw-rtb-018774adf3EXAMPLE", + "VpnEcmpSupport": "enable", + "DnsSupport": "enable" + }, + "Tags": [] + }, + { + "TransitGatewayId": "tgw-0fb8421e2dEXAMPLE", + "TransitGatewayArn": "arn:aws:ec2:us-east-2:111122223333:transit-gateway/tgw-0fb8421e2da853bf3", + "State": "available", + "OwnerId": "111122223333", + "CreationTime": "2019-03-15T22:57:33.000Z", + "Options": { + "AmazonSideAsn": 65412, + "AutoAcceptSharedAttachments": "disable", + "DefaultRouteTableAssociation": "enable", + "AssociationDefaultRouteTableId": "tgw-rtb-06a241a3d8EXAMPLE", + "DefaultRouteTablePropagation": "enable", + "PropagationDefaultRouteTableId": "tgw-rtb-06a241a3d8EXAMPLE", + "VpnEcmpSupport": "enable", + "DnsSupport": "enable" + }, + "Tags": [ + { + "Key": "Name", + "Value": "TGW1" + } + ] + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-verified-access-endpoints.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-verified-access-endpoints.rst new file mode 100644 index 000000000..65926683b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-verified-access-endpoints.rst @@ -0,0 +1,45 @@ +**To describe a Verified Access endpoint** + +The following ``describe-verified-access-endpoints`` example describes the specified Verified Access endpoint. :: + + aws ec2 describe-verified-access-endpoints \ + --verified-access-endpoint-ids vae-066fac616d4d546f2 + +Output:: + + { + "VerifiedAccessEndpoints": [ + { + "VerifiedAccessInstanceId": "vai-0ce000c0b7643abea", + "VerifiedAccessGroupId": "vagr-0dbe967baf14b7235", + "VerifiedAccessEndpointId": "vae-066fac616d4d546f2", + "ApplicationDomain": "example.com", + "EndpointType": "network-interface", + "AttachmentType": "vpc", + "DomainCertificateArn": "arn:aws:acm:us-east-2:123456789012:certificate/eb065ea0-26f9-4e75-a6ce-0a1a7EXAMPLE", + "EndpointDomain": "my-ava-app.edge-00c3372d53b1540bb.vai-0ce000c0b7643abea.prod.verified-access.us-east-2.amazonaws.com", + "SecurityGroupIds": [ + "sg-004915970c4c8f13a" + ], + "NetworkInterfaceOptions": { + "NetworkInterfaceId": "eni-0aec70418c8d87a0f", + "Protocol": "https", + "Port": 443 + }, + "Status": { + "Code": "active" + }, + "Description": "", + "CreationTime": "2023-08-25T20:54:43", + "LastUpdatedTime": "2023-08-25T22:17:26", + "Tags": [ + { + "Key": "Name", + "Value": "my-va-endpoint" + } + ] + } + ] + } + +For more information, see `Verified Access endpoints `__ in the *AWS Verified Access User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-verified-access-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-verified-access-groups.rst new file mode 100644 index 000000000..341f2d13d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-verified-access-groups.rst @@ -0,0 +1,30 @@ +**To describe a Verified Access group** + +The following ``describe-verified-access-groups`` example describes the specified Verified Access group. :: + + aws ec2 describe-verified-access-groups \ + --verified-access-group-ids vagr-0dbe967baf14b7235 + +Output:: + + { + "VerifiedAccessGroups": [ + { + "VerifiedAccessGroupId": "vagr-0dbe967baf14b7235", + "VerifiedAccessInstanceId": "vai-0ce000c0b7643abea", + "Description": "Testing Verified Access", + "Owner": "123456789012", + "VerifiedAccessGroupArn": "arn:aws:ec2:us-east-2:123456789012:verified-access-group/vagr-0dbe967baf14b7235", + "CreationTime": "2023-08-25T19:55:19", + "LastUpdatedTime": "2023-08-25T22:17:25", + "Tags": [ + { + "Key": "Name", + "Value": "my-va-group" + } + ] + } + ] + } + +For more information, see `Verified Access groups `__ in the *AWS Verified Access User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-verified-access-instance-logging-configurations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-verified-access-instance-logging-configurations.rst new file mode 100644 index 000000000..ddfde1f48 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-verified-access-instance-logging-configurations.rst @@ -0,0 +1,35 @@ +**To describe the logging configuration for a Verified Access instance** + +The following ``describe-verified-access-instance-logging-configurations`` example describes the logging configuration for the specified Verified Access instance. :: + + aws ec2 describe-verified-access-instance-logging-configurations \ + --verified-access-instance-ids vai-0ce000c0b7643abea + +Output:: + + { + "LoggingConfigurations": [ + { + "VerifiedAccessInstanceId": "vai-0ce000c0b7643abea", + "AccessLogs": { + "S3": { + "Enabled": false + }, + "CloudWatchLogs": { + "Enabled": true, + "DeliveryStatus": { + "Code": "success" + }, + "LogGroup": "my-log-group" + }, + "KinesisDataFirehose": { + "Enabled": false + }, + "LogVersion": "ocsf-1.0.0-rc.2", + "IncludeTrustContext": false + } + } + ] + } + +For more information, see `Verified Access logs `__ in the *AWS Verified Access User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-verified-access-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-verified-access-instances.rst new file mode 100644 index 000000000..4e7703e15 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-verified-access-instances.rst @@ -0,0 +1,34 @@ +**To describe a Verified Access instance** + +The following ``describe-verified-access-instances`` example describes the specified Verified Access instance. :: + + aws ec2 describe-verified-access-instances \ + --verified-access-instance-ids vai-0ce000c0b7643abea + +Output:: + + { + "VerifiedAccessInstances": [ + { + "VerifiedAccessInstanceId": "vai-0ce000c0b7643abea", + "Description": "Testing Verified Access", + "VerifiedAccessTrustProviders": [ + { + "VerifiedAccessTrustProviderId": "vatp-0bb32de759a3e19e7", + "TrustProviderType": "user", + "UserTrustProviderType": "iam-identity-center" + } + ], + "CreationTime": "2023-08-25T18:27:56", + "LastUpdatedTime": "2023-08-25T19:03:32", + "Tags": [ + { + "Key": "Name", + "Value": "my-ava-instance" + } + ] + } + ] + } + +For more information, see `Verified Access instances `__ in the *AWS Verified Access User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-verified-access-trust-providers.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-verified-access-trust-providers.rst new file mode 100644 index 000000000..77c1fd7b0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-verified-access-trust-providers.rst @@ -0,0 +1,30 @@ +**To describe a Verified Access trust provider** + +The following ``describe-verified-access-trust-providers`` example describes the specified Verified Access trust provider. :: + + aws ec2 describe-verified-access-trust-providers \ + --verified-access-trust-provider-ids vatp-0bb32de759a3e19e7 + +Output:: + + { + "VerifiedAccessTrustProviders": [ + { + "VerifiedAccessTrustProviderId": "vatp-0bb32de759a3e19e7", + "Description": "Testing Verified Access", + "TrustProviderType": "user", + "UserTrustProviderType": "iam-identity-center", + "PolicyReferenceName": "idc", + "CreationTime": "2023-08-25T19:00:38", + "LastUpdatedTime": "2023-08-25T19:03:32", + "Tags": [ + { + "Key": "Name", + "Value": "my-va-trust-provider" + } + ] + } + ] + } + +For more information, see `Trust providers for Verified Access `__ in the *AWS Verified Access User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-volume-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-volume-attribute.rst new file mode 100644 index 000000000..efb57fee7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-volume-attribute.rst @@ -0,0 +1,16 @@ +**To describe a volume attribute** + +This example command describes the ``autoEnableIo`` attribute of the volume with the ID ``vol-049df61146c4d7901``. + +Command:: + + aws ec2 describe-volume-attribute --volume-id vol-049df61146c4d7901 --attribute autoEnableIO + +Output:: + + { + "AutoEnableIO": { + "Value": false + }, + "VolumeId": "vol-049df61146c4d7901" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-volume-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-volume-status.rst new file mode 100644 index 000000000..1affba99e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-volume-status.rst @@ -0,0 +1,51 @@ +**To describe the status of a single volume** + +This example command describes the status for the volume ``vol-1234567890abcdef0``. + +Command:: + + aws ec2 describe-volume-status --volume-ids vol-1234567890abcdef0 + +Output:: + + { + "VolumeStatuses": [ + { + "VolumeStatus": { + "Status": "ok", + "Details": [ + { + "Status": "passed", + "Name": "io-enabled" + }, + { + "Status": "not-applicable", + "Name": "io-performance" + } + ] + }, + "AvailabilityZone": "us-east-1a", + "VolumeId": "vol-1234567890abcdef0", + "Actions": [], + "Events": [] + } + ] + } + +**To describe the status of impaired volumes** + +This example command describes the status for all volumes that are impaired. In this example output, there are no impaired volumes. + +Command:: + + aws ec2 describe-volume-status --filters Name=volume-status.status,Values=impaired + +Output:: + + { + "VolumeStatuses": [] + } + +If you have a volume with a failed status check (status is impaired), see `Working with an Impaired Volume`_ in the *Amazon EC2 User Guide*. + +.. _`Working with an Impaired Volume`: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-volume-status.html#work_volumes_impaired diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-volumes-modifications.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-volumes-modifications.rst new file mode 100644 index 000000000..8780b5669 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-volumes-modifications.rst @@ -0,0 +1,23 @@ +**To describe the modification status for a volume** + +The following ``describe-volumes-modifications`` example describes the volume modification status of the specified volume. :: + + aws ec2 describe-volumes-modifications \ + --volume-ids vol-1234567890abcdef0 + +Output:: + + { + "VolumeModification": { + "TargetSize": 150, + "TargetVolumeType": "io1", + "ModificationState": "optimizing", + "VolumeId": " vol-1234567890abcdef0", + "TargetIops": 100, + "StartTime": "2019-05-17T11:27:19.000Z", + "Progress": 70, + "OriginalVolumeType": "io1", + "OriginalIops": 100, + "OriginalSize": 100 + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-volumes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-volumes.rst new file mode 100644 index 000000000..20d783187 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-volumes.rst @@ -0,0 +1,99 @@ +**Example 1: To describe a volume** + +The following ``describe-volumes`` example describes the specified volumes in the current Region. :: + + aws ec2 describe-volumes \ + --volume-ids vol-049df61146c4d7901 vol-1234567890abcdef0 + +Output:: + + { + "Volumes": [ + { + "AvailabilityZone": "us-east-1a", + "Attachments": [ + { + "AttachTime": "2013-12-18T22:35:00.000Z", + "InstanceId": "i-1234567890abcdef0", + "VolumeId": "vol-049df61146c4d7901", + "State": "attached", + "DeleteOnTermination": true, + "Device": "/dev/sda1" + } + ], + "Encrypted": true, + "KmsKeyId": "arn:aws:kms:us-east-2a:123456789012:key/8c5b2c63-b9bc-45a3-a87a-5513eEXAMPLE, + "VolumeType": "gp2", + "VolumeId": "vol-049df61146c4d7901", + "State": "in-use", + "Iops": 100, + "SnapshotId": "snap-1234567890abcdef0", + "CreateTime": "2019-12-18T22:35:00.084Z", + "Size": 8 + }, + { + "AvailabilityZone": "us-east-1a", + "Attachments": [], + "Encrypted": false, + "VolumeType": "gp2", + "VolumeId": "vol-1234567890abcdef0", + "State": "available", + "Iops": 300, + "SnapshotId": "", + "CreateTime": "2020-02-27T00:02:41.791Z", + "Size": 100 + } + ] + } + +**Example 2: To describe volumes that are attached to a specific instance** + +The following ``describe-volumes`` example describes all volumes that are both attached to the specified instance and set to delete when the instance terminates. :: + + aws ec2 describe-volumes \ + --region us-east-1 \ + --filters Name=attachment.instance-id,Values=i-1234567890abcdef0 Name=attachment.delete-on-termination,Values=true + +For an example of the output for ``describe-volumes``, see Example 1. + +**Example 3: To describe available volumes in a specific Availability Zone** + +The following ``describe-volumes`` example describes all volumes that have a status of ``available`` and are in the specified Availability Zone. :: + + aws ec2 describe-volumes \ + --filters Name=status,Values=available Name=availability-zone,Values=us-east-1a + +For an example of the output for ``describe-volumes``, see Example 1. + +**Example 4: To describe volumes based on tags** + +The following ``describe-volumes`` example describes all volumes that have the tag key ``Name`` and a value that begins with ``Test``. The output is then filtered with a query that displays only the tags and IDs of the volumes. :: + + aws ec2 describe-volumes \ + --filters Name=tag:Name,Values=Test* \ + --query "Volumes[*].{ID:VolumeId,Tag:Tags}" + +Output:: + + [ + { + "Tag": [ + { + "Value": "Test2", + "Key": "Name" + } + ], + "ID": "vol-1234567890abcdef0" + }, + { + "Tag": [ + { + "Value": "Test1", + "Key": "Name" + } + ], + "ID": "vol-049df61146c4d7901" + } + ] + +For additional examples using tag filters, see `Working with tags `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-attribute.rst new file mode 100644 index 000000000..df3583188 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-attribute.rst @@ -0,0 +1,33 @@ +**To describe the enableDnsSupport attribute** + +This example describes the ``enableDnsSupport`` attribute. This attribute indicates whether DNS resolution is enabled for the VPC. If this attribute is ``true``, the Amazon DNS server resolves DNS hostnames for your instances to their corresponding IP addresses; otherwise, it does not. + +Command:: + + aws ec2 describe-vpc-attribute --vpc-id vpc-a01106c2 --attribute enableDnsSupport + +Output:: + + { + "VpcId": "vpc-a01106c2", + "EnableDnsSupport": { + "Value": true + } + } + +**To describe the enableDnsHostnames attribute** + +This example describes the ``enableDnsHostnames`` attribute. This attribute indicates whether the instances launched in the VPC get DNS hostnames. If this attribute is ``true``, instances in the VPC get DNS hostnames; otherwise, they do not. + +Command:: + + aws ec2 describe-vpc-attribute --vpc-id vpc-a01106c2 --attribute enableDnsHostnames + +Output:: + + { + "VpcId": "vpc-a01106c2", + "EnableDnsHostnames": { + "Value": true + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-classic-link-dns-support.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-classic-link-dns-support.rst new file mode 100644 index 000000000..013e0b8b5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-classic-link-dns-support.rst @@ -0,0 +1,22 @@ +**To describe ClassicLink DNS support for your VPCs** + +This example describes the ClassicLink DNS support status of all of your VPCs. + +Command:: + + aws ec2 describe-vpc-classic-link-dns-support + +Output:: + + { + "Vpcs": [ + { + "VpcId": "vpc-88888888", + "ClassicLinkDnsSupported": true + }, + { + "VpcId": "vpc-1a2b3c4d", + "ClassicLinkDnsSupported": false + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-classic-link.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-classic-link.rst new file mode 100644 index 000000000..a38e1d19d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-classic-link.rst @@ -0,0 +1,30 @@ +**To describe the ClassicLink status of your VPCs** + +This example lists the ClassicLink status of vpc-88888888. + +Command:: + + aws ec2 describe-vpc-classic-link --vpc-id vpc-88888888 + +Output:: + + { + "Vpcs": [ + { + "ClassicLinkEnabled": true, + "VpcId": "vpc-88888888", + "Tags": [ + { + "Value": "classiclinkvpc", + "Key": "Name" + } + ] + } + ] + } + +This example lists only VPCs that are enabled for Classiclink (the filter value of ``is-classic-link-enabled`` is set to ``true``). + +Command:: + + aws ec2 describe-vpc-classic-link --filter "Name=is-classic-link-enabled,Values=true" diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-endpoint-associations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-endpoint-associations.rst new file mode 100644 index 000000000..59d98c094 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-endpoint-associations.rst @@ -0,0 +1,24 @@ +**To describe VPC endpoint associations** + +The following ``describe-vpc-endpoint-associations`` example describes your VPC endpoint associations. :: + + aws ec2 describe-vpc-endpoint-associations + +Output:: + + { + "VpcEndpointAssociations": [ + { + "Id": "vpce-rsc-asc-0a810ca6ac8866bf9", + "VpcEndpointId": "vpce-019b90d6f16d4f958", + "AssociatedResourceAccessibility": "Accessible", + "DnsEntry": { + "DnsName": "vpce-019b90d6f16d4f958.rcfg-07129f3acded87625.4232ccc.vpc-lattice-rsc.us-east-2.on.aws", + "HostedZoneId": "Z03265862FOUNWMZOKUF4" + }, + "AssociatedResourceArn": "arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-07129f3acded87625" + } + ] + } + +For more information, see `Manage VPC endpoint associations `__ in the *AWS PrivateLink User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-endpoint-connection-notifications.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-endpoint-connection-notifications.rst new file mode 100644 index 000000000..cd79b2a33 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-endpoint-connection-notifications.rst @@ -0,0 +1,25 @@ +**To describe endpoint connection notifications** + +The following ``describe-vpc-endpoint-connection-notifications`` example describes all of your endpoint connection notifications. :: + + aws ec2 describe-vpc-endpoint-connection-notifications + +Output:: + + { + "ConnectionNotificationSet": [ + { + "ConnectionNotificationState": "Enabled", + "ConnectionNotificationType": "Topic", + "ConnectionEvents": [ + "Accept", + "Reject", + "Delete", + "Connect" + ], + "ConnectionNotificationId": "vpce-nfn-04bcb952bc8af7abc", + "ConnectionNotificationArn": "arn:aws:sns:us-east-1:123456789012:VpceNotification", + "VpcEndpointId": "vpce-0324151a02f327123" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-endpoint-connections.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-endpoint-connections.rst new file mode 100644 index 000000000..41890970a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-endpoint-connections.rst @@ -0,0 +1,21 @@ +**To describe VPC endpoint connections** + +This example describes the interface endpoint connections to your endpoint service and filters the results to display endpoints that are ``PendingAcceptance``. + +Command:: + + aws ec2 describe-vpc-endpoint-connections --filters Name=vpc-endpoint-state,Values=pendingAcceptance + +Output:: + + { + "VpcEndpointConnections": [ + { + "VpcEndpointId": "vpce-0abed31004e618123", + "ServiceId": "vpce-svc-0abced088d20def56", + "CreationTimestamp": "2017-11-30T10:00:24.350Z", + "VpcEndpointState": "pendingAcceptance", + "VpcEndpointOwner": "123456789012" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-endpoint-service-configurations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-endpoint-service-configurations.rst new file mode 100644 index 000000000..7a917077d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-endpoint-service-configurations.rst @@ -0,0 +1,62 @@ +**To describe endpoint service configurations** + +The following ``describe-vpc-endpoint-service-configurations`` example describes your endpoint service configurations. :: + + aws ec2 describe-vpc-endpoint-service-configurations + +Output:: + + { + "ServiceConfigurations": [ + { + "ServiceType": [ + { + "ServiceType": "GatewayLoadBalancer" + } + ], + "ServiceId": "vpce-svc-012d33a1c4321cabc", + "ServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-012d33a1c4321cabc", + "ServiceState": "Available", + "AvailabilityZones": [ + "us-east-1d" + ], + "AcceptanceRequired": false, + "ManagesVpcEndpoints": false, + "GatewayLoadBalancerArns": [ + "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/gwy/GWLBService/123210844e429123" + ], + "Tags": [] + }, + { + "ServiceType": [ + { + "ServiceType": "Interface" + } + ], + "ServiceId": "vpce-svc-123cabc125efa123", + "ServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-123cabc125efa123", + "ServiceState": "Available", + "AvailabilityZones": [ + "us-east-1a" + ], + "AcceptanceRequired": true, + "ManagesVpcEndpoints": false, + "NetworkLoadBalancerArns": [ + "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/net/NLBforService/1238753950b25123" + ], + "BaseEndpointDnsNames": [ + "vpce-svc-123cabc125efa123.us-east-1.vpce.amazonaws.com" + ], + "PrivateDnsName": "example.com", + "PrivateDnsNameConfiguration": { + "State": "failed", + "Type": "TXT", + "Value": "vpce:qUAth3FdeABCApUiXabc", + "Name": "_1d367jvbg34znqvyefrj" + }, + "Tags": [] + } + ] + } + +For more information, see `Concepts `__ in the *AWS PrivateLink User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-endpoint-service-permissions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-endpoint-service-permissions.rst new file mode 100644 index 000000000..d947f6010 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-endpoint-service-permissions.rst @@ -0,0 +1,18 @@ +**To describe endpoint service permissions** + +This example describes the permissions for the specified endpoint service. + +Command:: + + aws ec2 describe-vpc-endpoint-service-permissions --service-id vpce-svc-03d5ebb7d9579a2b3 + +Output:: + + { + "AllowedPrincipals": [ + { + "PrincipalType": "Account", + "Principal": "arn:aws:iam::123456789012:root" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-endpoint-services.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-endpoint-services.rst new file mode 100644 index 000000000..bf57f83b6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-endpoint-services.rst @@ -0,0 +1,132 @@ +**Example 1: To describe all VPC endpoint services** + +The following ``describe-vpc-endpoint-services`` example lists all VPC endpoint services for an AWS Region. :: + + aws ec2 describe-vpc-endpoint-services + +Output:: + + { + "ServiceDetails": [ + { + "ServiceType": [ + { + "ServiceType": "Gateway" + } + ], + "AcceptanceRequired": false, + "ServiceName": "com.amazonaws.us-east-1.dynamodb", + "VpcEndpointPolicySupported": true, + "Owner": "amazon", + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1c", + "us-east-1d", + "us-east-1e", + "us-east-1f" + ], + "BaseEndpointDnsNames": [ + "dynamodb.us-east-1.amazonaws.com" + ] + }, + { + "ServiceType": [ + { + "ServiceType": "Interface" + } + ], + "PrivateDnsName": "ec2.us-east-1.amazonaws.com", + "ServiceName": "com.amazonaws.us-east-1.ec2", + "VpcEndpointPolicySupported": false, + "Owner": "amazon", + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1c", + "us-east-1d", + "us-east-1e", + "us-east-1f" + ], + "AcceptanceRequired": false, + "BaseEndpointDnsNames": [ + "ec2.us-east-1.vpce.amazonaws.com" + ] + }, + { + "ServiceType": [ + { + "ServiceType": "Interface" + } + ], + "PrivateDnsName": "ssm.us-east-1.amazonaws.com", + "ServiceName": "com.amazonaws.us-east-1.ssm", + "VpcEndpointPolicySupported": true, + "Owner": "amazon", + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1c", + "us-east-1d", + "us-east-1e" + ], + "AcceptanceRequired": false, + "BaseEndpointDnsNames": [ + "ssm.us-east-1.vpce.amazonaws.com" + ] + } + ], + "ServiceNames": [ + "com.amazonaws.us-east-1.dynamodb", + "com.amazonaws.us-east-1.ec2", + "com.amazonaws.us-east-1.ec2messages", + "com.amazonaws.us-east-1.elasticloadbalancing", + "com.amazonaws.us-east-1.kinesis-streams", + "com.amazonaws.us-east-1.s3", + "com.amazonaws.us-east-1.ssm" + ] + } + +**Example 2: To describe the details about an endpoint service** + +The following ``describe-vpc-endpoint-services`` example lists the details of the Amazon S3 interface endpoint service. :: + + aws ec2 describe-vpc-endpoint-services \ + --filter 'Name=service-type,Values=Interface' Name=service-name,Values=com.amazonaws.us-east-1.s3 + +Output:: + + { + "ServiceDetails": [ + { + "ServiceName": "com.amazonaws.us-east-1.s3", + "ServiceId": "vpce-svc-081d84efcdEXAMPLE", + "ServiceType": [ + { + "ServiceType": "Interface" + } + ], + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1c", + "us-east-1d", + "us-east-1e", + "us-east-1f" + ], + "Owner": "amazon", + "BaseEndpointDnsNames": [ + "s3.us-east-1.vpce.amazonaws.com" + ], + "VpcEndpointPolicySupported": true, + "AcceptanceRequired": false, + "ManagesVpcEndpoints": false, + "Tags": [] + } + ], + "ServiceNames": [ + "com.amazonaws.us-east-1.s3" + ] + } + +For more information, see `View available AWS service names `__ in the *AWS PrivateLink User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-endpoints.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-endpoints.rst new file mode 100644 index 000000000..ad7902e63 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-endpoints.rst @@ -0,0 +1,89 @@ +**To describe your VPC endpoints** + +The following ``describe-vpc-endpoints`` example displays details for all of your VPC endpoints. :: + + aws ec2 describe-vpc-endpoints + +Output:: + + { + "VpcEndpoints": [ + { + "PolicyDocument": "{\"Version\":\"2008-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"*\",\"Resource\":\"*\"}]}", + "VpcId": "vpc-aabb1122", + "NetworkInterfaceIds": [], + "SubnetIds": [], + "PrivateDnsEnabled": true, + "State": "available", + "ServiceName": "com.amazonaws.us-east-1.dynamodb", + "RouteTableIds": [ + "rtb-3d560345" + ], + "Groups": [], + "VpcEndpointId": "vpce-032a826a", + "VpcEndpointType": "Gateway", + "CreationTimestamp": "2017-09-05T20:41:28Z", + "DnsEntries": [], + "OwnerId": "123456789012" + }, + { + "PolicyDocument": "{\n \"Statement\": [\n {\n \"Action\": \"*\", \n \"Effect\": \"Allow\", \n \"Principal\": \"*\", \n \"Resource\": \"*\"\n }\n ]\n}", + "VpcId": "vpc-1a2b3c4d", + "NetworkInterfaceIds": [ + "eni-2ec2b084", + "eni-1b4a65cf" + ], + "SubnetIds": [ + "subnet-d6fcaa8d", + "subnet-7b16de0c" + ], + "PrivateDnsEnabled": false, + "State": "available", + "ServiceName": "com.amazonaws.us-east-1.elasticloadbalancing", + "RouteTableIds": [], + "Groups": [ + { + "GroupName": "default", + "GroupId": "sg-54e8bf31" + } + ], + "VpcEndpointId": "vpce-0f89a33420c1931d7", + "VpcEndpointType": "Interface", + "CreationTimestamp": "2017-09-05T17:55:27.583Z", + "DnsEntries": [ + { + "HostedZoneId": "Z7HUB22UULQXV", + "DnsName": "vpce-0f89a33420c1931d7-bluzidnv.elasticloadbalancing.us-east-1.vpce.amazonaws.com" + }, + { + "HostedZoneId": "Z7HUB22UULQXV", + "DnsName": "vpce-0f89a33420c1931d7-bluzidnv-us-east-1b.elasticloadbalancing.us-east-1.vpce.amazonaws.com" + }, + { + "HostedZoneId": "Z7HUB22UULQXV", + "DnsName": "vpce-0f89a33420c1931d7-bluzidnv-us-east-1a.elasticloadbalancing.us-east-1.vpce.amazonaws.com" + } + ], + "OwnerId": "123456789012" + }, + { + "VpcEndpointId": "vpce-aabbaabbaabbaabba", + "VpcEndpointType": "GatewayLoadBalancer", + "VpcId": "vpc-111122223333aabbc", + "ServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-123123a1c43abc123", + "State": "available", + "SubnetIds": [ + "subnet-0011aabbcc2233445" + ], + "RequesterManaged": false, + "NetworkInterfaceIds": [ + "eni-01010120203030405" + ], + "CreationTimestamp": "2020-11-11T08:06:03.522Z", + "Tags": [], + "OwnerId": "123456789012" + } + ] + } + +For more information, see `Concepts `__ in the *AWS PrivateLink User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-peering-connections.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-peering-connections.rst new file mode 100644 index 000000000..e34ea35b9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpc-peering-connections.rst @@ -0,0 +1,87 @@ +**To describe your VPC peering connections** + +This example describes all of your VPC peering connections. + +Command:: + + aws ec2 describe-vpc-peering-connections + +Output:: + + { + "VpcPeeringConnections": [ + { + "Status": { + "Message": "Active", + "Code": "active" + }, + "Tags": [ + { + "Value": "Peering-1", + "Key": "Name" + } + ], + "AccepterVpcInfo": { + "OwnerId": "111122223333", + "VpcId": "vpc-1a2b3c4d", + "CidrBlock": "10.0.1.0/28" + }, + "VpcPeeringConnectionId": "pcx-11122233", + "RequesterVpcInfo": { + "PeeringOptions": { + "AllowEgressFromLocalVpcToRemoteClassicLink": false, + "AllowEgressFromLocalClassicLinkToRemoteVpc": false + }, + "OwnerId": "444455556666", + "VpcId": "vpc-123abc45", + "CidrBlock": "192.168.0.0/16" + } + }, + { + "Status": { + "Message": "Pending Acceptance by 444455556666", + "Code": "pending-acceptance" + }, + "Tags": [], + "RequesterVpcInfo": { + "PeeringOptions": { + "AllowEgressFromLocalVpcToRemoteClassicLink": false, + "AllowEgressFromLocalClassicLinkToRemoteVpc": false + }, + "OwnerId": "444455556666", + "VpcId": "vpc-11aa22bb", + "CidrBlock": "10.0.0.0/28" + }, + "VpcPeeringConnectionId": "pcx-abababab", + "ExpirationTime": "2014-04-03T09:12:43.000Z", + "AccepterVpcInfo": { + "OwnerId": "444455556666", + "VpcId": "vpc-33cc44dd" + } + } + ] + } + + +**To describe specific VPC peering connections** + +This example describes all of your VPC peering connections that are in the pending-acceptance state. + +Command:: + + aws ec2 describe-vpc-peering-connections --filters Name=status-code,Values=pending-acceptance + + +This example describes all of your VPC peering connections that have the tag Owner=Finance. + +Command:: + + aws ec2 describe-vpc-peering-connections --filters Name=tag:Owner,Values=Finance + + +This example describes all of the VPC peering connections you requested for the specified VPC, vpc-1a2b3c4d. + +Command:: + + aws ec2 describe-vpc-peering-connections --filters Name=requester-vpc-info.vpc-id,Values=vpc-1a2b3c4d + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpcs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpcs.rst new file mode 100644 index 000000000..63cad86dc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpcs.rst @@ -0,0 +1,98 @@ +**Example 1: To describe all of your VPCs** + +The following ``describe-vpcs`` example retrieves details about your VPCs. :: + + aws ec2 describe-vpcs + +Output:: + + { + "Vpcs": [ + { + "CidrBlock": "30.1.0.0/16", + "DhcpOptionsId": "dopt-19edf471", + "State": "available", + "VpcId": "vpc-0e9801d129EXAMPLE", + "OwnerId": "111122223333", + "InstanceTenancy": "default", + "CidrBlockAssociationSet": [ + { + "AssociationId": "vpc-cidr-assoc-062c64cfafEXAMPLE", + "CidrBlock": "30.1.0.0/16", + "CidrBlockState": { + "State": "associated" + } + } + ], + "IsDefault": false, + "Tags": [ + { + "Key": "Name", + "Value": "Not Shared" + } + ] + }, + { + "CidrBlock": "10.0.0.0/16", + "DhcpOptionsId": "dopt-19edf471", + "State": "available", + "VpcId": "vpc-06e4ab6c6cEXAMPLE", + "OwnerId": "222222222222", + "InstanceTenancy": "default", + "CidrBlockAssociationSet": [ + { + "AssociationId": "vpc-cidr-assoc-00b17b4eddEXAMPLE", + "CidrBlock": "10.0.0.0/16", + "CidrBlockState": { + "State": "associated" + } + } + ], + "IsDefault": false, + "Tags": [ + { + "Key": "Name", + "Value": "Shared VPC" + } + ] + } + ] + } + +**Example 2: To describe a specified VPC** + +The following ``describe-vpcs`` example retrieves details for the specified VPC. :: + + aws ec2 describe-vpcs \ + --vpc-ids vpc-06e4ab6c6cEXAMPLE + +Output:: + + { + "Vpcs": [ + { + "CidrBlock": "10.0.0.0/16", + "DhcpOptionsId": "dopt-19edf471", + "State": "available", + "VpcId": "vpc-06e4ab6c6cEXAMPLE", + "OwnerId": "111122223333", + "InstanceTenancy": "default", + "CidrBlockAssociationSet": [ + { + "AssociationId": "vpc-cidr-assoc-00b17b4eddEXAMPLE", + "CidrBlock": "10.0.0.0/16", + "CidrBlockState": { + "State": "associated" + } + } + ], + "IsDefault": false, + "Tags": [ + { + "Key": "Name", + "Value": "Shared VPC" + } + ] + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpn-connections.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpn-connections.rst new file mode 100644 index 000000000..7a1b0496c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpn-connections.rst @@ -0,0 +1,62 @@ +**Example 1: To describe your VPN connections** + +The following ``describe-vpn-connections`` example describes all of your Site-to-Site VPN connections. :: + + aws ec2 describe-vpn-connections + +Output:: + + { + "VpnConnections": [ + { + "CustomerGatewayConfiguration": "...configuration information...", + "CustomerGatewayId": "cgw-01234567abcde1234", + "Category": "VPN", + "State": "available", + "Type": "ipsec.1", + "VpnConnectionId": "vpn-1122334455aabbccd", + "TransitGatewayId": "tgw-00112233445566aab", + "Options": { + "EnableAcceleration": false, + "StaticRoutesOnly": true, + "LocalIpv4NetworkCidr": "0.0.0.0/0", + "RemoteIpv4NetworkCidr": "0.0.0.0/0", + "TunnelInsideIpVersion": "ipv4" + }, + "Routes": [], + "Tags": [ + { + "Key": "Name", + "Value": "CanadaVPN" + } + ], + "VgwTelemetry": [ + { + "AcceptedRouteCount": 0, + "LastStatusChange": "2020-07-29T10:35:11.000Z", + "OutsideIpAddress": "203.0.113.3", + "Status": "DOWN", + "StatusMessage": "" + }, + { + "AcceptedRouteCount": 0, + "LastStatusChange": "2020-09-02T09:09:33.000Z", + "OutsideIpAddress": "203.0.113.5", + "Status": "UP", + "StatusMessage": "" + } + ] + } + ] + } + +For more information, see `How AWS Site-to-Site VPN works `__ in the *AWS Site-to-Site VPN User Guide*. + +**Example 2: To describe your available VPN connections** + +The following ``describe-vpn-connections`` example describes your Site-to-Site VPN connections with a state of ``available``. :: + + aws ec2 describe-vpn-connections \ + --filters "Name=state,Values=available" + +For more information, see `How AWS Site-to-Site VPN works `__ in the *AWS Site-to-Site VPN User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpn-gateways.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpn-gateways.rst new file mode 100644 index 000000000..3f031485d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/describe-vpn-gateways.rst @@ -0,0 +1,36 @@ +**To describe your virtual private gateways** + +This example describes your virtual private gateways. + +Command:: + + aws ec2 describe-vpn-gateways + +Output:: + + { + "VpnGateways": [ + { + "State": "available", + "Type": "ipsec.1", + "VpnGatewayId": "vgw-f211f09b", + "VpcAttachments": [ + { + "State": "attached", + "VpcId": "vpc-98eb5ef5" + } + ] + }, + { + "State": "available", + "Type": "ipsec.1", + "VpnGatewayId": "vgw-9a4cacf3", + "VpcAttachments": [ + { + "State": "attaching", + "VpcId": "vpc-a01106c2" + } + ] + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/detach-classic-link-vpc.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/detach-classic-link-vpc.rst new file mode 100644 index 000000000..75213ee25 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/detach-classic-link-vpc.rst @@ -0,0 +1,13 @@ +**To unlink (detach) an EC2-Classic instance from a VPC** + +This example unlinks instance i-0598c7d356eba48d7 from VPC vpc-88888888. + +Command:: + + aws ec2 detach-classic-link-vpc --instance-id i-0598c7d356eba48d7 --vpc-id vpc-88888888 + +Output:: + + { + "Return": true + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/detach-internet-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/detach-internet-gateway.rst new file mode 100644 index 000000000..a7bfd69f3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/detach-internet-gateway.rst @@ -0,0 +1,11 @@ +**To detach an internet gateway from your VPC** + +The following ``detach-internet-gateway`` example detaches the specified internet gateway from the specific VPC. :: + + aws ec2 detach-internet-gateway \ + --internet-gateway-id igw-0d0fb496b3EXAMPLE \ + --vpc-id vpc-0a60eb65b4EXAMPLE + +This command produces no output. + +For more information, see `Internet gateways `__ in the *Amazon VPC User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/detach-network-interface.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/detach-network-interface.rst new file mode 100644 index 000000000..4869e2664 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/detach-network-interface.rst @@ -0,0 +1,7 @@ +**To detach a network interface from your instance** + +This example detaches the specified network interface from the specified instance. If the command succeeds, no output is returned. + +Command:: + + aws ec2 detach-network-interface --attachment-id eni-attach-66c4350a diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/detach-verified-access-trust-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/detach-verified-access-trust-provider.rst new file mode 100644 index 000000000..154c48943 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/detach-verified-access-trust-provider.rst @@ -0,0 +1,30 @@ +**To detach a trust provider from an instance** + +The following ``detach-verified-access-trust-provider`` example detaches the specified Verified Access trust provider from the specified Verified Access instance. :: + + aws ec2 detach-verified-access-trust-provider \ + --verified-access-instance-id vai-0ce000c0b7643abea \ + --verified-access-trust-provider-id vatp-0bb32de759a3e19e7 + +Output:: + + { + "VerifiedAccessTrustProvider": { + "VerifiedAccessTrustProviderId": "vatp-0bb32de759a3e19e7", + "Description": "Testing Verified Access", + "TrustProviderType": "user", + "UserTrustProviderType": "iam-identity-center", + "PolicyReferenceName": "idc", + "CreationTime": "2023-08-25T19:00:38", + "LastUpdatedTime": "2023-08-25T19:00:38" + }, + "VerifiedAccessInstance": { + "VerifiedAccessInstanceId": "vai-0ce000c0b7643abea", + "Description": "Testing Verified Access", + "VerifiedAccessTrustProviders": [], + "CreationTime": "2023-08-25T18:27:56", + "LastUpdatedTime": "2023-08-25T18:27:56" + } + } + +For more information, see `Verified Access instances `__ in the *AWS Verified Access User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/detach-volume.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/detach-volume.rst new file mode 100644 index 000000000..b71864921 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/detach-volume.rst @@ -0,0 +1,17 @@ +**To detach a volume from an instance** + +This example command detaches the volume (``vol-049df61146c4d7901``) from the instance it is attached to. + +Command:: + + aws ec2 detach-volume --volume-id vol-1234567890abcdef0 + +Output:: + + { + "AttachTime": "2014-02-27T19:23:06.000Z", + "InstanceId": "i-1234567890abcdef0", + "VolumeId": "vol-049df61146c4d7901", + "State": "detaching", + "Device": "/dev/sdb" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/detach-vpn-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/detach-vpn-gateway.rst new file mode 100644 index 000000000..60f2070c2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/detach-vpn-gateway.rst @@ -0,0 +1,7 @@ +**To detach a virtual private gateway from your VPC** + +This example detaches the specified virtual private gateway from the specified VPC. If the command succeeds, no output is returned. + +Command:: + + aws ec2 detach-vpn-gateway --vpn-gateway-id vgw-9a4cacf3 --vpc-id vpc-a01106c2 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-address-transfer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-address-transfer.rst new file mode 100644 index 000000000..0653c3a38 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-address-transfer.rst @@ -0,0 +1,18 @@ +**To disable an Elastic IP address transfer** + +The following ``disable-address-transfer`` example disables Elastic IP address transfer for the specified Elastic IP address. :: + + aws ec2 disable-address-transfer \ + --allocation-id eipalloc-09ad461b0d03f6aaf + +Output:: + + { + "AddressTransfer": { + "PublicIp": "100.21.184.216", + "AllocationId": "eipalloc-09ad461b0d03f6aaf", + "AddressTransferStatus": "disabled" + } + } + +For more information, see `Transfer Elastic IP addresses `__ in the *Amazon VPC User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-aws-network-performance-metric-subscription.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-aws-network-performance-metric-subscription.rst new file mode 100644 index 000000000..b70677e4a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-aws-network-performance-metric-subscription.rst @@ -0,0 +1,17 @@ +**To disable a metric subscription** + +The following ``disable-aws-network-performance-metric-subscription`` example disables the monitoring of aggregate network latency between the specified source and destination Regions. :: + + aws ec2 disable-aws-network-performance-metric-subscription \ + --source us-east-1 \ + --destination eu-west-1 \ + --metric aggregate-latency \ + --statistic p50 + +Output:: + + { + "Output": true + } + +For more information, see `Manage CloudWatch subscriptions using the CLI `__ in the *Infrastructure Performance User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-ebs-encryption-by-default.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-ebs-encryption-by-default.rst new file mode 100644 index 000000000..2fc9fc017 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-ebs-encryption-by-default.rst @@ -0,0 +1,11 @@ +**To disable EBS encryption by default** + +The following ``disable-ebs-encryption-by-default`` example disables EBS encryption by default for your AWS account in the current Region. :: + + aws ec2 disable-ebs-encryption-by-default + +Output:: + + { + "EbsEncryptionByDefault": false + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-fast-launch.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-fast-launch.rst new file mode 100644 index 000000000..28b9b2046 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-fast-launch.rst @@ -0,0 +1,26 @@ +**To discontinue fast launching for an image** + +The following ``disable-fast-launch`` example discontinues Fast Launch for the specified AMI, and cleans up existing pre-provisioned snapshots. :: + + aws ec2 disable-fast-launch \ + --image-id ami-01234567890abcedf + +Output:: + + { + "ImageId": "ami-01234567890abcedf", + "ResourceType": "snapshot", + "SnapshotConfiguration": {}, + "LaunchTemplate": { + "LaunchTemplateId": "lt-01234567890abcedf", + "LaunchTemplateName": "EC2FastLaunchDefaultResourceCreation-a8c6215d-94e6-441b-9272-dbd1f87b07e2", + "Version": "1" + }, + "MaxParallelLaunches": 6, + "OwnerId": "0123456789123", + "State": "disabling", + "StateTransitionReason": "Client.UserInitiated", + "StateTransitionTime": "2022-01-27T22:47:29.265000+00:00" + } + +For more information, see `Configure EC2 Fast Launch settings for your Windows AMI `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-fast-snapshot-restores.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-fast-snapshot-restores.rst new file mode 100755 index 000000000..5b93cb51b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-fast-snapshot-restores.rst @@ -0,0 +1,23 @@ +**To disable fast snapshot restore** + +The following ``disable-fast-snapshot-restores`` example disables fast snapshot restore for the specified snapshot in the specified Availability Zone. :: + + aws ec2 disable-fast-snapshot-restores \ + --availability-zones us-east-2a \ + --source-snapshot-ids snap-1234567890abcdef0 + +Output:: + + { + "Successful": [ + { + "SnapshotId": "snap-1234567890abcdef0" + "AvailabilityZone": "us-east-2a", + "State": "disabling", + "StateTransitionReason": "Client.UserInitiated", + "OwnerId": "123456789012", + "EnablingTime": "2020-01-25T23:57:49.602Z" + } + ], + "Unsuccessful": [] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-image-block-public-access.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-image-block-public-access.rst new file mode 100644 index 000000000..83e765900 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-image-block-public-access.rst @@ -0,0 +1,14 @@ +**To disable block public access for AMIs in the specified Region** + +The following ``disable-image-block-public-access`` example disables block public access for AMIs at the account level in the specified Region. :: + + aws ec2 disable-image-block-public-access \ + --region us-east-1 + +Output:: + + { + "ImageBlockPublicAccessState": "unblocked" + } + +For more information, see `Block public access to your AMIs `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-image-deprecation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-image-deprecation.rst new file mode 100644 index 000000000..ad137bb3d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-image-deprecation.rst @@ -0,0 +1,15 @@ +**To cancel the deprecation of an AMI** + +The following ``disable-image-deprecation`` example cancels the deprecation of an AMI, which removes the ``DeprecationTime`` field from the ``describe-images`` output. You must be the AMI owner to perform this procedure. :: + + aws ec2 disable-image-deprecation \ + --image-id ami-1234567890abcdef0 + +Output:: + + { + "RequestID": "11aabb229-4eac-35bd-99ed-be587EXAMPLE", + "Return": "true" + } + +For more information, see `Deprecate an AMI `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-image-deregistration-protection.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-image-deregistration-protection.rst new file mode 100644 index 000000000..7a017f380 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-image-deregistration-protection.rst @@ -0,0 +1,14 @@ +**To disable deregistration protection** + +The following ``disable-image-deregistration-protection`` example disables deregistration protection for the specified image. :: + + aws ec2 disable-image-deregistration-protection \ + --image-id ami-0b1a928a144a74ec9 + +Output:: + + { + "Return": "disabled" + } + +For more information, see `Protect an AMI from deregistration `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-image.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-image.rst new file mode 100644 index 000000000..d1da9534a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-image.rst @@ -0,0 +1,14 @@ +**To disable an AMI** + +The following ``disable-image`` example disables the specified AMI. :: + + aws ec2 disable-image \ + --image-id ami-1234567890abcdef0 + +Output:: + + { + "Return": "true" + } + +For more information, see `Disable an AMI `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-ipam-organization-admin-account.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-ipam-organization-admin-account.rst new file mode 100644 index 000000000..d4482a979 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-ipam-organization-admin-account.rst @@ -0,0 +1,21 @@ +**To disable the delegated IPAM admin** + +In certain scenarios, you'll integrate IPAM with AWS Organizations. When you do that, the AWS Organizations management account delegates an AWS Organizations member account as the IPAM admin. + +In this example, you are the AWS Organizations management account that delegated the IPAM admin account and you want to disable that account from being the IPAM admin. + +You can use any AWS Region for ``--region`` when making this request. You don't have to use the Region where you originally delegated the admin, where the IPAM was created, or an IPAM operating Region. If you disable the delegated admin account, you can re-enable it at any time or delegate a new account as IPAM admin. + +The following ``disable-ipam-organization-admin-account`` example disables the delegated IPAM admin in your AWS account. :: + + aws ec2 disable-ipam-organization-admin-account \ + --delegated-admin-account-id 320805250157 \ + --region ap-south-1 + +Output:: + + { + "Success": true + } + +For more information, see `Integrate IPAM with accounts in an AWS Organization `__ in the *Amazon VPC IPAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-serial-console-access.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-serial-console-access.rst new file mode 100644 index 000000000..6341ec4b1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-serial-console-access.rst @@ -0,0 +1,13 @@ +**To disable access to the EC2 serial console for your account** + +The following ``disable-serial-console-access`` example disables account access to the serial console. :: + + aws ec2 disable-serial-console-access + +Output:: + + { + "SerialConsoleAccessEnabled": false + } + +For more information, see `EC2 Serial Console `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-snapshot-block-public-access.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-snapshot-block-public-access.rst new file mode 100644 index 000000000..4821347f0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-snapshot-block-public-access.rst @@ -0,0 +1,13 @@ +**To disable block public access for snapshots** + +The following ``disable-snapshot-block-public-access`` example disables block public access for snapshots to allow public sharing of your snapshots. :: + + aws ec2 disable-snapshot-block-public-access + +Output:: + + { + "State": "unblocked" + } + +For more information, see `Block public access for snapshots `__ in the *Amazon EBS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-transit-gateway-route-table-propagation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-transit-gateway-route-table-propagation.rst new file mode 100644 index 000000000..ef1bfb5e5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-transit-gateway-route-table-propagation.rst @@ -0,0 +1,21 @@ +**To disable a transit gateway attachment to propagate routes to the specified propagation route table** + +The following ``disable-transit-gateway-route-table-propagation`` example disables the specified attachment to propagate routes to the specified propagation route table. :: + + aws ec2 disable-transit-gateway-route-table-propagation \ + --transit-gateway-route-table-id tgw-rtb-0a823edbdeEXAMPLE \ + --transit-gateway-attachment-id tgw-attach-09b52ccdb5EXAMPLE + +Output:: + + { + "Propagation": { + "TransitGatewayAttachmentId": "tgw-attach-09b52ccdb5EXAMPLE", + "ResourceId": "vpc-4d7de228", + "ResourceType": "vpc", + "TransitGatewayRouteTableId": "tgw-rtb-0a823edbdeEXAMPLE", + "State": "disabled" + } + } + +For more information, see `Transit gateway route tables `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-vgw-route-propagation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-vgw-route-propagation.rst new file mode 100644 index 000000000..9fa3312f1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-vgw-route-propagation.rst @@ -0,0 +1,7 @@ +**To disable route propagation** + +This example disables the specified virtual private gateway from propagating static routes to the specified route table. If the command succeeds, no output is returned. + +Command:: + + aws ec2 disable-vgw-route-propagation --route-table-id rtb-22574640 --gateway-id vgw-9a4cacf3 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-vpc-classic-link-dns-support.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-vpc-classic-link-dns-support.rst new file mode 100644 index 000000000..f92de6ebc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-vpc-classic-link-dns-support.rst @@ -0,0 +1,13 @@ +**To disable ClassicLink DNS support for a VPC** + +This example disables ClassicLink DNS support for ``vpc-88888888``. + +Command:: + + aws ec2 disable-vpc-classic-link-dns-support --vpc-id vpc-88888888 + +Output:: + + { + "Return": true + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-vpc-classic-link.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-vpc-classic-link.rst new file mode 100644 index 000000000..937fb4f29 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disable-vpc-classic-link.rst @@ -0,0 +1,13 @@ +**To disable ClassicLink for a VPC** + +This example disables ClassicLink for vpc-8888888. + +Command:: + + aws ec2 disable-vpc-classic-link --vpc-id vpc-88888888 + +Output:: + + { + "Return": true + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-address.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-address.rst new file mode 100644 index 000000000..0dcabca6d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-address.rst @@ -0,0 +1,15 @@ +**To disassociate an Elastic IP addresses in EC2-Classic** + +This example disassociates an Elastic IP address from an instance in EC2-Classic. If the command succeeds, no output is returned. + +Command:: + + aws ec2 disassociate-address --public-ip 198.51.100.0 + +**To disassociate an Elastic IP address in EC2-VPC** + +This example disassociates an Elastic IP address from an instance in a VPC. If the command succeeds, no output is returned. + +Command:: + + aws ec2 disassociate-address --association-id eipassoc-2bebb745 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-client-vpn-target-network.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-client-vpn-target-network.rst new file mode 100644 index 000000000..495521f88 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-client-vpn-target-network.rst @@ -0,0 +1,18 @@ +**To disassociate a network from a Client VPN endpoint** + +The following ``disassociate-client-vpn-target-network`` example disassociates the target network that's associated with the ``cvpn-assoc-12312312312312312`` association ID for the specified Client VPN endpoint. :: + + aws ec2 disassociate-client-vpn-target-network \ + --client-vpn-endpoint-id cvpn-endpoint-123456789123abcde \ + --association-id cvpn-assoc-12312312312312312 + +Output:: + + { + "AssociationId": "cvpn-assoc-12312312312312312", + "Status": { + "Code": "disassociating" + } + } + +For more information, see `Target Networks `__ in the *AWS Client VPN Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-iam-instance-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-iam-instance-profile.rst new file mode 100644 index 000000000..429e77c9d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-iam-instance-profile.rst @@ -0,0 +1,21 @@ +**To disassociate an IAM instance profile** + +This example disassociates an IAM instance profile with the association ID ``iip-assoc-05020b59952902f5f``. + +Command:: + + aws ec2 disassociate-iam-instance-profile --association-id iip-assoc-05020b59952902f5f + +Output:: + + { + "IamInstanceProfileAssociation": { + "InstanceId": "i-123456789abcde123", + "State": "disassociating", + "AssociationId": "iip-assoc-05020b59952902f5f", + "IamInstanceProfile": { + "Id": "AIPAI5IVIHMFFYY2DKV5Y", + "Arn": "arn:aws:iam::123456789012:instance-profile/admin-role" + } + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-instance-event-window.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-instance-event-window.rst new file mode 100644 index 000000000..c5301cb8f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-instance-event-window.rst @@ -0,0 +1,80 @@ +**Example 1: To disassociate one or more instances from an event window** + +The following ``disassociate-instance-event-window`` example disassociates one or more instances from an event window. Specify the ``instance-event-window-id`` parameter to specify the event window. To disassociate instances, specify the ``association-target`` parameter, and for the parameter values, specify one or more instance IDs. :: + + aws ec2 disassociate-instance-event-window \ + --region us-east-1 \ + --instance-event-window-id iew-0abcdef1234567890 \ + --association-target "InstanceIds=i-1234567890abcdef0,i-0598c7d356eba48d7" + +Output:: + + { + "InstanceEventWindow": { + "InstanceEventWindowId": "iew-0abcdef1234567890", + "Name": "myEventWindowName", + "CronExpression": "* 21-23 * * 2,3", + "AssociationTarget": { + "InstanceIds": [], + "Tags": [], + "DedicatedHostIds": [] + }, + "State": "creating" + } + } + +For event window constraints, see `Considerations `__ in the Scheduled Events section of the *Amazon EC2 User Guide*. + +**Example 2: To disassociate instance tags from an event window** + +The following ``disassociate-instance-event-window`` example disassociates instance tags from an event window. Specify the ``instance-event-window-id`` parameter to specify the event window. To disassociate instance tags, specify the ``association-target`` parameter, and for the parameter values, specify one or more tags. :: + + aws ec2 disassociate-instance-event-window \ + --region us-east-1 \ + --instance-event-window-id iew-0abcdef1234567890 \ + --association-target "InstanceTags=[{Key=k2,Value=v2},{Key=k1,Value=v1}]" + +Output:: + + { + "InstanceEventWindow": { + "InstanceEventWindowId": "iew-0abcdef1234567890", + "Name": "myEventWindowName", + "CronExpression": "* 21-23 * * 2,3", + "AssociationTarget": { + "InstanceIds": [], + "Tags": [], + "DedicatedHostIds": [] + }, + "State": "creating" + } + } + +For event window constraints, see `Considerations `__ in the Scheduled Events section of the *Amazon EC2 User Guide*. + +**Example 3: To disassociate a Dedicated Host from an event window** + +The following ``disassociate-instance-event-window`` example disassociates a Dedicated Host from an event window. Specify the ``instance-event-window-id`` parameter to specify the event window. To disassociate a Dedicated Host, specify the ``association-target`` parameter, and for the parameter values, specify one or more Dedicated Host IDs. :: + + aws ec2 disassociate-instance-event-window \ + --region us-east-1 \ + --instance-event-window-id iew-0abcdef1234567890 \ + --association-target DedicatedHostIds=h-029fa35a02b99801d + +Output:: + + { + "InstanceEventWindow": { + "InstanceEventWindowId": "iew-0abcdef1234567890", + "Name": "myEventWindowName", + "CronExpression": "* 21-23 * * 2,3", + "AssociationTarget": { + "InstanceIds": [], + "Tags": [], + "DedicatedHostIds": [] + }, + "State": "creating" + } + } + +For event window constraints, see `Considerations `__ in the Scheduled Events section of the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-ipam-resource-discovery.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-ipam-resource-discovery.rst new file mode 100644 index 000000000..6cacfc0ef --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-ipam-resource-discovery.rst @@ -0,0 +1,28 @@ +**To disassociate a resource discovery from an IPAM** + +In this example, you are an IPAM delegated admin account and you want to disassociate an IPAM resource discovery from your IPAM. You ran the describe command and noticed that the ``"ResourceDiscoveryStatus": "not-found"`` and you want to disassociate it from your IPAM to make room for other associations. + +The following ``disassociate-ipam-resource-discovery`` example disassociates an IPAM resource discovery in your AWS account. :: + + aws ec2 disassociate-ipam-resource-discovery \ + --ipam-resource-discovery-association-id ipam-res-disco-assoc-04382a6346357cf82 \ + --region us-east-1 + +Output:: + + { + "IpamResourceDiscoveryAssociation": { + "OwnerId": "320805250157", + "IpamResourceDiscoveryAssociationId": "ipam-res-disco-assoc-04382a6346357cf82", + "IpamResourceDiscoveryAssociationArn": "arn:aws:ec2::320805250157:ipam-resource-discovery-association/ipam-res-disco-assoc-04382a6346357cf82", + "IpamResourceDiscoveryId": "ipam-res-disco-0365d2977fc1672fe", + "IpamId": "ipam-005f921c17ebd5107", + "IpamArn": "arn:aws:ec2::320805250157:ipam/ipam-005f921c17ebd5107", + "IpamRegion": "us-east-1", + "IsDefault": false, + "ResourceDiscoveryStatus": "not-found", + "State": "disassociate-in-progress" + } + } + +For more information, see `Integrate IPAM with accounts outside of your organization `__ in the *Amazon VPC IPAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-nat-gateway-address.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-nat-gateway-address.rst new file mode 100644 index 000000000..478621148 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-nat-gateway-address.rst @@ -0,0 +1,26 @@ +**To disassociate an Elastic IP address from a public NAT gateway** + +The following ``disassociate-nat-gateway-address`` example disassociates the specified Elastic IP address from the specified public NAT gateway. :: + + aws ec2 disassociate-nat-gateway-address \ + --nat-gateway-id nat-1234567890abcdef0 \ + --association-ids eipassoc-0f96bdca17EXAMPLE + +Output:: + + { + "NatGatewayId": "nat-1234567890abcdef0", + "NatGatewayAddresses": [ + { + "AllocationId": "eipalloc-0be6ecac95EXAMPLE", + "NetworkInterfaceId": "eni-09cc4b2558794f7f9", + "PrivateIp": "10.0.0.74", + "PublicIp": "3.211.231.218", + "AssociationId": "eipassoc-0f96bdca17EXAMPLE", + "IsPrimary": false, + "Status": "disassociating" + } + ] + } + +For more information, see `NAT gateways `__ in the *Amazon VPC User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-route-table.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-route-table.rst new file mode 100644 index 000000000..2ca78830b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-route-table.rst @@ -0,0 +1,7 @@ +**To disassociate a route table** + +This example disassociates the specified route table from the specified subnet. If the command succeeds, no output is returned. + +Command:: + + aws ec2 disassociate-route-table --association-id rtbassoc-781d0d1a diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-security-group-vpc.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-security-group-vpc.rst new file mode 100644 index 000000000..e66494dd2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-security-group-vpc.rst @@ -0,0 +1,15 @@ +**To disassociate a security group from a VPC** + +The following ``disassociate-security-group-vpc`` example disassociates the specified security group from the specified VPC. :: + + aws ec2 disassociate-security-group-vpc \ + --group-id sg-04dbb43907d3f8a78 \ + --vpc-id vpc-0bf4c2739bc05a694 + +Output:: + + { + "State": "disassociating" + } + +For more information, see `Associate security groups with multiple VPCs `__ in the *Amazon VPC User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-subnet-cidr-block.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-subnet-cidr-block.rst new file mode 100644 index 000000000..19a706011 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-subnet-cidr-block.rst @@ -0,0 +1,20 @@ +**To disassociate an IPv6 CIDR block from a subnet** + +This example disassociates an IPv6 CIDR block from a subnet using the association ID for the CIDR block. + +Command:: + + aws ec2 disassociate-subnet-cidr-block --association-id subnet-cidr-assoc-3aa54053 + +Output:: + + { + "SubnetId": "subnet-5f46ec3b", + "Ipv6CidrBlockAssociation": { + "Ipv6CidrBlock": "2001:db8:1234:1a00::/64", + "AssociationId": "subnet-cidr-assoc-3aa54053", + "Ipv6CidrBlockState": { + "State": "disassociating" + } + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-transit-gateway-multicast-domain.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-transit-gateway-multicast-domain.rst new file mode 100755 index 000000000..21620d965 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-transit-gateway-multicast-domain.rst @@ -0,0 +1,27 @@ +**To disassociate subnets from a multicast domain** + +The following ``disassociate-transit-gateway-multicast-domain`` example disassociates a subnet from the specified multicast domain. :: + + aws ec2 disassociate-transit-gateway-multicast-domain \ + --transit-gateway-attachment-id tgw-attach-070e571cd1EXAMPLE \ + --subnet-id subnet-000de86e3bEXAMPLE \ + --transit-gateway-multicast-domain-id tgw-mcast-domain-0c4905cef7EXAMPLE + +Output:: + + { + "Associations": { + "TransitGatewayMulticastDomainId": "tgw-mcast-domain-0c4905cef7EXAMPLE", + "TransitGatewayAttachmentId": "tgw-attach-070e571cd1EXAMPLE", + "ResourceId": "vpc-7EXAMPLE", + "ResourceType": "vpc", + "Subnets": [ + { + "SubnetId": "subnet-000de86e3bEXAMPLE", + "State": "disassociating" + } + ] + } + } + +For more information, see `Multicast domains `__ in the *Transit Gateways Guide*'. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-transit-gateway-route-table.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-transit-gateway-route-table.rst new file mode 100755 index 000000000..909ac0c70 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-transit-gateway-route-table.rst @@ -0,0 +1,21 @@ +**To disassociate a transit gateway route table from a resource attachment** + +The following ``disassociate-transit-gateway-route-table`` example disassociates the specified attachment from the transit gateway route table. :: + + aws ec2 disassociate-transit-gateway-route-table \ + --transit-gateway-route-table-id tgw-rtb-002573ed1eEXAMPLE \ + --transit-gateway-attachment-id tgw-attach-08e0bc912cEXAMPLE + +Output:: + + { + "Association": { + "TransitGatewayRouteTableId": "tgw-rtb-002573ed1eEXAMPLE", + "TransitGatewayAttachmentId": "tgw-attach-08e0bc912cEXAMPLE", + "ResourceId": "11460968-4ac1-4fd3-bdb2-00599EXAMPLE", + "ResourceType": "direct-connect-gateway", + "State": "disassociating" + } + } + +For more information, see `Transit gateway route tables `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-vpc-cidr-block.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-vpc-cidr-block.rst new file mode 100644 index 000000000..32b6e70e2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/disassociate-vpc-cidr-block.rst @@ -0,0 +1,41 @@ +**To disassociate an IPv6 CIDR block from a VPC** + +This example disassociates an IPv6 CIDR block from a VPC using the association ID for the CIDR block. + +Command:: + + aws ec2 disassociate-vpc-cidr-block --association-id vpc-cidr-assoc-eca54085 + +Output:: + + { + "Ipv6CidrBlockAssociation": { + "Ipv6CidrBlock": "2001:db8:1234:1a00::/56", + "AssociationId": "vpc-cidr-assoc-eca54085", + "Ipv6CidrBlockState": { + "State": "disassociating" + } + }, + "VpcId": "vpc-a034d6c4" + } + +**To disassociate an IPv4 CIDR block from a VPC** + +This example disassociates an IPv4 CIDR block from a VPC. + +Command:: + + aws ec2 disassociate-vpc-cidr-block --association-id vpc-cidr-assoc-0287ac6b + +Output:: + + { + "CidrBlockAssociation": { + "AssociationId": "vpc-cidr-assoc-0287ac6b", + "CidrBlock": "172.18.0.0/16", + "CidrBlockState": { + "State": "disassociating" + } + }, + "VpcId": "vpc-27621243" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-address-transfer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-address-transfer.rst new file mode 100644 index 000000000..e35d3d5c8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-address-transfer.rst @@ -0,0 +1,21 @@ +**To enable an Elastic IP address transfer** + +The following ``enable-address-transfer`` example enables Elastic IP address transfer for the specified Elastic IP address to the specified account. :: + + aws ec2 enable-address-transfer \ + --allocation-id eipalloc-09ad461b0d03f6aaf \ + --transfer-account-id 123456789012 + +Output:: + + { + "AddressTransfer": { + "PublicIp": "100.21.184.216", + "AllocationId": "eipalloc-09ad461b0d03f6aaf", + "TransferAccountId": "123456789012", + "TransferOfferExpirationTimestamp": "2023-02-22T20:51:01.000Z", + "AddressTransferStatus": "pending" + } + } + +For more information, see `Transfer Elastic IP addresses `__ in the *Amazon VPC User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-aws-network-performance-metric-subscription.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-aws-network-performance-metric-subscription.rst new file mode 100644 index 000000000..b0ea7e6df --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-aws-network-performance-metric-subscription.rst @@ -0,0 +1,17 @@ +**To enable a metric subscription** + +The following ``enable-aws-network-performance-metric-subscription`` example enables the monitoring of aggregate network latency between the specified source and destination Regions. :: + + aws ec2 enable-aws-network-performance-metric-subscription \ + --source us-east-1 \ + --destination eu-west-1 \ + --metric aggregate-latency \ + --statistic p50 + +Output:: + + { + "Output": true + } + +For more information, see `Manage subscriptions `__ in the *Infrastructure Performance User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-ebs-encryption-by-default.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-ebs-encryption-by-default.rst new file mode 100644 index 000000000..7747d3d19 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-ebs-encryption-by-default.rst @@ -0,0 +1,11 @@ +**To enable EBS encryption by default** + +The following ``enable-ebs-encryption-by-default`` example enables EBS encryption by default for your AWS account in the current Region. :: + + aws ec2 enable-ebs-encryption-by-default + +Output:: + + { + "EbsEncryptionByDefault": true + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-fast-launch.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-fast-launch.rst new file mode 100644 index 000000000..5b3ba2af9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-fast-launch.rst @@ -0,0 +1,26 @@ +**To start fast launching for an image** + +The following ``enable-fast-launch`` example configures the specified AMI for Fast Launch and sets the maximum number of parallel instances to launch to 6. The type of resource to use to pre-provision the AMI is set to ``snapshot``, which is also the default value. :: + + aws ec2 enable-fast-launch \ + --image-id ami-01234567890abcedf \ + --max-parallel-launches 6 \ + --resource-type snapshot + +Output:: + + { + "ImageId": "ami-01234567890abcedf", + "ResourceType": "snapshot", + "SnapshotConfiguration": { + "TargetResourceCount": 10 + }, + "LaunchTemplate": {}, + "MaxParallelLaunches": 6, + "OwnerId": "0123456789123", + "State": "enabling", + "StateTransitionReason": "Client.UserInitiated", + "StateTransitionTime": "2022-01-27T22:16:03.199000+00:00" + } + +For more information, see `Configure EC2 Fast Launch settings for your Windows AMI `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-fast-snapshot-restores.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-fast-snapshot-restores.rst new file mode 100755 index 000000000..6e7390f9b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-fast-snapshot-restores.rst @@ -0,0 +1,31 @@ +**To enable fast snapshot restore** + +The following ``enable-fast-snapshot-restores`` example enables fast snapshot restore for the specified snapshot in the specified Availability Zones. :: + + aws ec2 enable-fast-snapshot-restores \ + --availability-zones us-east-2a us-east-2b \ + --source-snapshot-ids snap-1234567890abcdef0 + +Output:: + + { + "Successful": [ + { + "SnapshotId": "snap-1234567890abcdef0" + "AvailabilityZone": "us-east-2a", + "State": "enabling", + "StateTransitionReason": "Client.UserInitiated", + "OwnerId": "123456789012", + "EnablingTime": "2020-01-25T23:57:49.602Z" + }, + { + "SnapshotId": "snap-1234567890abcdef0" + "AvailabilityZone": "us-east-2b", + "State": "enabling", + "StateTransitionReason": "Client.UserInitiated", + "OwnerId": "123456789012", + "EnablingTime": "2020-01-25T23:57:49.596Z" + } + ], + "Unsuccessful": [] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-image-block-public-access.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-image-block-public-access.rst new file mode 100644 index 000000000..ccdd141fd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-image-block-public-access.rst @@ -0,0 +1,15 @@ +**To enable block public access for AMIs in the specified Region** + +The following ``enable-image-block-public-access`` example enables block public access for AMIs at the account level in the specified Region. :: + + aws ec2 enable-image-block-public-access \ + --region us-east-1 \ + --image-block-public-access-state block-new-sharing + +Output:: + + { + "ImageBlockPublicAccessState": "block-new-sharing" + } + +For more information, see `Block public access to your AMIs `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-image-deprecation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-image-deprecation.rst new file mode 100644 index 000000000..4f1580634 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-image-deprecation.rst @@ -0,0 +1,16 @@ +**To deprecate an AMI** + +The following ``enable-image-deprecation`` example deprecates an AMI on a specific date and time. If you specify a value for seconds, Amazon EC2 rounds the seconds to the nearest minute. You must be the AMI owner to perform this procedure. :: + + aws ec2 enable-image-deprecation \ + --image-id ami-1234567890abcdef0 \ + --deprecate-at '2022-10-15T13:17:12.000Z' + +Output:: + + { + "RequestID": "59dbff89-35bd-4eac-99ed-be587EXAMPLE", + "Return": "true" + } + +For more information, see `Deprecate an AMI `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-image-deregistration-protection.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-image-deregistration-protection.rst new file mode 100644 index 000000000..66874f881 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-image-deregistration-protection.rst @@ -0,0 +1,14 @@ +**To enable deregistration protection** + +The following ``enable-image-deregistration-protection`` example enables deregistration protection for the specified image. :: + + aws ec2 enable-image-deregistration-protection \ + --image-id ami-0b1a928a144a74ec9 + +Output:: + + { + "Return": "enabled-without-cooldown" + } + +For more information, see `Protect an EC2 AMI from deregistration `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-image.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-image.rst new file mode 100644 index 000000000..7efce426d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-image.rst @@ -0,0 +1,14 @@ +**To enable an AMI** + +The following ``enable-image`` example enables the specified AMI. :: + + aws ec2 enable-image \ + --image-id ami-1234567890abcdef0 + +Output:: + + { + "Return": "true" + } + +For more information, see `Disable an AMI `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-ipam-organization-admin-account.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-ipam-organization-admin-account.rst new file mode 100644 index 000000000..2e80d0759 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-ipam-organization-admin-account.rst @@ -0,0 +1,14 @@ +**To integrate with AWS Organizations and delegate a member account as the IPAM account** + +The following ``enable-ipam-organization-admin-account`` example integrates IPAM with AWS Organizations and delegates a member account as the IPAM account. :: + + aws ec2 enable-ipam-organization-admin-account \ + --delegated-admin-account-id 320805250157 + +Output:: + + { + "Success": true + } + +For more information, see `Integrate IPAM with AWS Organizations `__ in the *Amazon VPC IPAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-reachability-analyzer-organization-sharing.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-reachability-analyzer-organization-sharing.rst new file mode 100644 index 000000000..6c5919829 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-reachability-analyzer-organization-sharing.rst @@ -0,0 +1,9 @@ +**To enable trusted access for Reachability Analyzer** + +The following ``enable-reachability-analyzer-organization-sharing`` example enables trusted access for Reachability Analyzer. :: + + aws ec2 enable-reachability-analyzer-organization-sharing + +This command produces no output. + +For more information, see `Cross-account analyses `__ in the *Reachability Analyzer User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-serial-console-access.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-serial-console-access.rst new file mode 100644 index 000000000..7230265dc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-serial-console-access.rst @@ -0,0 +1,13 @@ +**To enable access to the serial console for your account** + +The following ``enable-serial-console-access`` example enables account access to the serial console. :: + + aws ec2 enable-serial-console-access + +Output:: + + { + "SerialConsoleAccessEnabled": true + } + +For more information, see `EC2 Serial Console `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-snapshot-block-public-access.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-snapshot-block-public-access.rst new file mode 100644 index 000000000..fcfefe9f1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-snapshot-block-public-access.rst @@ -0,0 +1,14 @@ +**To enable block public access for snapshots** + +The following ``enable-snapshot-block-public-access`` example blocks all public sharing of your snapshots. :: + + aws ec2 enable-snapshot-block-public-access \ + --state block-all-sharing + +Output:: + + { + "State": "block-all-sharing" + } + +For more information, see `Block public access for snapshots `__ in the *Amazon EBS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-transit-gateway-route-table-propagation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-transit-gateway-route-table-propagation.rst new file mode 100644 index 000000000..295c85962 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-transit-gateway-route-table-propagation.rst @@ -0,0 +1,21 @@ +**To enable a transit gateway attachment to propagate routes to the specified propagation route table** + +The following ``enable-transit-gateway-route-table-propagation`` example enables the specified attachment to propagate routes to the specified propagation route table. :: + + aws ec2 enable-transit-gateway-route-table-propagation \ + --transit-gateway-route-table-id tgw-rtb-0a823edbdeEXAMPLE \ + --transit-gateway-attachment-id tgw-attach-09b52ccdb5EXAMPLE + +Output:: + + { + "Propagation": { + "TransitGatewayAttachmentId": "tgw-attach-09b52ccdb5EXAMPLE", + "ResourceId": "vpc-4d7de228", + "ResourceType": "vpc", + "TransitGatewayRouteTableId": "tgw-rtb-0a823edbdeEXAMPLE", + "State": "disabled" + } + } + +For more information, see `Transit gateway route tables `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-vgw-route-propagation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-vgw-route-propagation.rst new file mode 100644 index 000000000..8890fb8e2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-vgw-route-propagation.rst @@ -0,0 +1,7 @@ +**To enable route propagation** + +This example enables the specified virtual private gateway to propagate static routes to the specified route table. If the command succeeds, no output is returned. + +Command:: + + aws ec2 enable-vgw-route-propagation --route-table-id rtb-22574640 --gateway-id vgw-9a4cacf3 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-volume-io.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-volume-io.rst new file mode 100644 index 000000000..370fa8bc8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-volume-io.rst @@ -0,0 +1,13 @@ +**To enable I/O for a volume** + +This example enables I/O on volume ``vol-1234567890abcdef0``. + +Command:: + + aws ec2 enable-volume-io --volume-id vol-1234567890abcdef0 + +Output:: + + { + "Return": true + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-vpc-classic-link-dns-support.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-vpc-classic-link-dns-support.rst new file mode 100644 index 000000000..c9416eb2f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-vpc-classic-link-dns-support.rst @@ -0,0 +1,13 @@ +**To enable ClassicLink DNS support for a VPC** + +This example enables ClassicLink DNS support for ``vpc-88888888``. + +Command:: + + aws ec2 enable-vpc-classic-link-dns-support --vpc-id vpc-88888888 + +Output:: + + { + "Return": true + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-vpc-classic-link.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-vpc-classic-link.rst new file mode 100644 index 000000000..00f42c6c3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/enable-vpc-classic-link.rst @@ -0,0 +1,13 @@ +**To enable a VPC for ClassicLink** + +This example enables vpc-8888888 for ClassicLink. + +Command:: + + aws ec2 enable-vpc-classic-link --vpc-id vpc-88888888 + +Output:: + + { + "Return": true + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/export-client-vpn-client-certificate-revocation-list.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/export-client-vpn-client-certificate-revocation-list.rst new file mode 100644 index 000000000..5282bb4eb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/export-client-vpn-client-certificate-revocation-list.rst @@ -0,0 +1,29 @@ +**To export a client certificate revocation list** + +The following ``export-client-vpn-client-certificate-revocation-list`` example exports the client certificate revocation list for the specified Client VPN endpoint. In this example, the output is returned in text format to make it easier to read. :: + + aws ec2 export-client-vpn-client-certificate-revocation-list \ + --client-vpn-endpoint-id cvpn-endpoint-123456789123abcde \ + --output text + +Output:: + + -----BEGIN X509 CRL----- + MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC + VVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 + b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd + BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN + MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD + VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z + b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt + YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ + 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T + rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE + Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 + nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb + FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb + NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE= + -----END X509 CRL----- + STATUS pending + +For more information, see `Client Certificate Revocation Lists `__ in the *AWS Client VPN Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/export-client-vpn-client-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/export-client-vpn-client-configuration.rst new file mode 100644 index 000000000..3aef880d2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/export-client-vpn-client-configuration.rst @@ -0,0 +1,43 @@ +**To export the client configuration** + +The following ``export-client-vpn-client-configuration`` example exports the client configuration for the specified Client VPN endpoint. In this example, the output is returned in text format to make it easier to read. :: + + aws ec2 export-client-vpn-client-configuration \ + --client-vpn-endpoint-id cvpn-endpoint-123456789123abcde \ + --output text + +Output:: + + client + dev tun + proto udp + remote cvpn-endpoint-123456789123abcde.prod.clientvpn.ap-south-1.amazonaws.com 443 + remote-random-hostname + resolv-retry infinite + nobind + persist-key + persist-tun + remote-cert-tls server + cipher AES-256-GCM + verb 3 + + -----BEGIN CERTIFICATE----- + MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC + VVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 + b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd + BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN + MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD + VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z + b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt + YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ + 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T + rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE + Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 + nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb + FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb + NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE= + -----END CERTIFICATE----- + + reneg-sec 0 + +For more information, see `Client VPN endpoint configuration file export `__ in the *AWS Client VPN Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/export-image.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/export-image.rst new file mode 100755 index 000000000..43ea48bda --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/export-image.rst @@ -0,0 +1,24 @@ +**To export a VM from an AMI** + +The following ``export-image`` example exports the specified AMI to the specified bucket in the specified format. :: + + aws ec2 export-image \ + --image-id ami-1234567890abcdef0 \ + --disk-image-format VMDK \ + --s3-export-location S3Bucket=my-export-bucket,S3Prefix=exports/ + +Output:: + + { + "DiskImageFormat": "vmdk", + "ExportImageTaskId": "export-ami-1234567890abcdef0" + "ImageId": "ami-1234567890abcdef0", + "RoleName": "vmimport", + "Progress": "0", + "S3ExportLocation": { + "S3Bucket": "my-export-bucket", + "S3Prefix": "exports/" + }, + "Status": "active", + "StatusMessage": "validating" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-associated-ipv6-pool-cidrs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-associated-ipv6-pool-cidrs.rst new file mode 100644 index 000000000..fe4265d29 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-associated-ipv6-pool-cidrs.rst @@ -0,0 +1,17 @@ +**To get the associations for an IPv6 address pool** + +The following ``get-associated-ipv6-pool-cidrs`` example gets the associations for the specified IPv6 address pool. :: + + aws ec2 get-associated-ipv6-pool-cidrs \ + --pool-id ipv6pool-ec2-012345abc12345abc + +Output:: + + { + "Ipv6CidrAssociations": [ + { + "Ipv6Cidr": "2001:db8:1234:1a00::/56", + "AssociatedResource": "vpc-111111222222333ab" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-aws-network-performance-data.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-aws-network-performance-data.rst new file mode 100644 index 000000000..4462587d4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-aws-network-performance-data.rst @@ -0,0 +1,69 @@ +**To get network performance data** + +The following ``get-aws-network-performance-data`` example retrieves data about the network performance between the specified Regions in the specified time period. :: + + aws ec2 get-aws-network-performance-data \ + --start-time 2022-10-26T12:00:00.000Z \ + --end-time 2022-10-26T12:30:00.000Z \ + --data-queries Id=my-query,Source=us-east-1,Destination=eu-west-1,Metric=aggregate-latency,Statistic=p50,Period=five-minutes + +Output:: + + { + "DataResponses": [ + { + "Id": "my-query", + "Source": "us-east-1", + "Destination": "eu-west-1", + "Metric": "aggregate-latency", + "Statistic": "p50", + "Period": "five-minutes", + "MetricPoints": [ + { + "StartDate": "2022-10-26T12:00:00+00:00", + "EndDate": "2022-10-26T12:05:00+00:00", + "Value": 62.44349, + "Status": "OK" + }, + { + "StartDate": "2022-10-26T12:05:00+00:00", + "EndDate": "2022-10-26T12:10:00+00:00", + "Value": 62.483498, + "Status": "OK" + }, + { + "StartDate": "2022-10-26T12:10:00+00:00", + "EndDate": "2022-10-26T12:15:00+00:00", + "Value": 62.51248, + "Status": "OK" + }, + { + "StartDate": "2022-10-26T12:15:00+00:00", + "EndDate": "2022-10-26T12:20:00+00:00", + "Value": 62.635475, + "Status": "OK" + }, + { + "StartDate": "2022-10-26T12:20:00+00:00", + "EndDate": "2022-10-26T12:25:00+00:00", + "Value": 62.733974, + "Status": "OK" + }, + { + "StartDate": "2022-10-26T12:25:00+00:00", + "EndDate": "2022-10-26T12:30:00+00:00", + "Value": 62.773975, + "Status": "OK" + }, + { + "StartDate": "2022-10-26T12:30:00+00:00", + "EndDate": "2022-10-26T12:35:00+00:00", + "Value": 62.75349, + "Status": "OK" + } + ] + } + ] + } + +For more information, see `Monitor network performance `__ in the *Infrastructure Performance User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-capacity-reservation-usage.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-capacity-reservation-usage.rst new file mode 100644 index 000000000..579a3203e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-capacity-reservation-usage.rst @@ -0,0 +1,24 @@ +**To view capacity reservation usage across AWS accounts** + +The following ``get-capacity-reservation-usage`` example displays usage information for the specified capacity reservation. :: + + aws ec2 get-capacity-reservation-usage \ + --capacity-reservation-id cr-1234abcd56EXAMPLE + +Output:: + + { + "CapacityReservationId": "cr-1234abcd56EXAMPLE ", + "InstanceUsages": [ + { + "UsedInstanceCount": 1, + "AccountId": "123456789012" + } + ], + "AvailableInstanceCount": 4, + "TotalInstanceCount": 5, + "State": "active", + "InstanceType": "t2.medium" + } + +For more information, see `Shared Capacity Reservations `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-coip-pool-usage.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-coip-pool-usage.rst new file mode 100644 index 000000000..7daf8cea7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-coip-pool-usage.rst @@ -0,0 +1,30 @@ +**To get customer-owned IP address pool usage** + +The following ``get-coip-pool-usage`` example gets the usage details for the specified customer-owned IP address pool. :: + + aws ec2 get-coip-pool-usage \ + --pool-id ipv4pool-coip-123a45678bEXAMPLE + +Output:: + + { + "CoipPoolId": "ipv4pool-coip-123a45678bEXAMPLE", + "CoipAddressUsages": [ + { + "CoIp": "0.0.0.0" + }, + { + "AllocationId": "eipalloc-123ab45c6dEXAMPLE", + "AwsAccountId": "123456789012", + "CoIp": "0.0.0.0" + }, + { + "AllocationId": "eipalloc-123ab45c6dEXAMPLE", + "AwsAccountId": "123456789111", + "CoIp": "0.0.0.0" + } + ], + "LocalGatewayRouteTableId": "lgw-rtb-059615ef7dEXAMPLE" + } + +For more information, see `Customer-owned IP addresses `__ in the *AWS Outposts User Guide for Outposts racks*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-console-output.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-console-output.rst new file mode 100644 index 000000000..ae4533a90 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-console-output.rst @@ -0,0 +1,39 @@ +**Example 1: To get the console output** + +The following ``get-console-output`` example gets the console output for the specified Linux instance. :: + + aws ec2 get-console-output \ + --instance-id i-1234567890abcdef0 + +Output:: + + { + "InstanceId": "i-1234567890abcdef0", + "Timestamp": "2013-07-25T21:23:53.000Z", + "Output": "..." + } + +For more information, see `Instance console output `__ in the *Amazon EC2 User Guide*. + + +**Example 2: To get the latest console output** + +The following ``get-console-output`` example gets the latest console output for the specified Linux instance. :: + + aws ec2 get-console-output \ + --instance-id i-1234567890abcdef0 \ + --latest \ + --output text + +Output:: + + i-1234567890abcdef0 [ 0.000000] Command line: root=LABEL=/ console=tty1 console=ttyS0 selinux=0 nvme_core.io_timeout=4294967295 + [ 0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers' + [ 0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers' + [ 0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers' + ... + Cloud-init v. 0.7.6 finished at Wed, 09 May 2018 19:01:13 +0000. Datasource DataSourceEc2. Up 21.50 seconds + Amazon Linux AMI release 2018.03 + Kernel 4.14.26-46.32.amzn1.x + +For more information, see `Instance console output `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-console-screenshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-console-screenshot.rst new file mode 100755 index 000000000..c2be0e5c7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-console-screenshot.rst @@ -0,0 +1,13 @@ +**To retrieve a screenshot of a running instance** + +The following ``get-console-screenshot`` example retrieves a screenshot of the specified instance in .jpg format. The screenshot is returned as a Base64-encoded string. :: + + aws ec2 get-console-screenshot \ + --instance-id i-1234567890abcdef0 + +Output:: + + { + "ImageData": "997987/8kgj49ikjhewkwwe0008084EXAMPLE", + "InstanceId": "i-1234567890abcdef0" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-default-credit-specification.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-default-credit-specification.rst new file mode 100755 index 000000000..9962e55d6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-default-credit-specification.rst @@ -0,0 +1,15 @@ +**To describe the default credit option** + +The following ``get-default-credit-specification`` example describes the default credit option for T2 instances. :: + + aws ec2 get-default-credit-specification \ + --instance-family t2 + +Output:: + + { + "InstanceFamilyCreditSpecification": { + "InstanceFamily": "t2", + "CpuCredits": "standard" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ebs-default-kms-key-id.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ebs-default-kms-key-id.rst new file mode 100644 index 000000000..7fa0cd690 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ebs-default-kms-key-id.rst @@ -0,0 +1,17 @@ +**To describe your default CMK for EBS encryption** + +The following ``get-ebs-default-kms-key-id`` example describes the default CMK for EBS encryption for your AWS account. :: + + aws ec2 get-ebs-default-kms-key-id + +The output shows the default CMK for EBS encryption, which is an AWS managed CMK with the alias ``alias/aws/ebs``. :: + + { + "KmsKeyId": "alias/aws/ebs" + } + +The following output shows a custom CMK for EBS encryption. :: + + { + "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/0ea3fef3-80a7-4778-9d8c-1c0c6EXAMPLE" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ebs-encryption-by-default.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ebs-encryption-by-default.rst new file mode 100644 index 000000000..739e5f278 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ebs-encryption-by-default.rst @@ -0,0 +1,17 @@ +**To describe whether EBS encryption by default is enabled** + +The following ``get-ebs-encryption-by-default`` example indicates whether EBS encryption by default is enabled for your AWS account in the current Region. :: + + aws ec2 get-ebs-encryption-by-default + +The following output indicates that EBS encryption by default is disabled. :: + + { + "EbsEncryptionByDefault": false + } + +The following output indicates that EBS encryption by default is enabled. :: + + { + "EbsEncryptionByDefault": true + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-flow-logs-integration-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-flow-logs-integration-template.rst new file mode 100644 index 000000000..1ee8fa5fb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-flow-logs-integration-template.rst @@ -0,0 +1,27 @@ +**To create a CloudFormation template to automate the integration of VPC flow logs with Amazon Athena** + +The following ``get-flow-logs-integration-template`` examples create a CloudFormation template to automate the integration of VPC flow logs with Amazon Athena. + +Linux:: + + aws ec2 get-flow-logs-integration-template \ + --flow-log-id fl-1234567890abcdef0 \ + --config-delivery-s3-destination-arn arn:aws:s3:::amzn-s3-demo-bucket \ + --integrate-services AthenaIntegrations='[{IntegrationResultS3DestinationArn=arn:aws:s3:::amzn-s3-demo-bucket,PartitionLoadFrequency=none,PartitionStartDate=2021-07-21T00:40:00,PartitionEndDate=2021-07-21T00:42:00},{IntegrationResultS3DestinationArn=arn:aws:s3:::amzn-s3-demo-bucket,PartitionLoadFrequency=none,PartitionStartDate=2021-07-21T00:40:00,PartitionEndDate=2021-07-21T00:42:00}]' + +Windows:: + + aws ec2 get-flow-logs-integration-template ^ + --flow-log-id fl-1234567890abcdef0 ^ + --config-delivery-s3-destination-arn arn:aws:s3:::amzn-s3-demo-bucket ^ + --integrate-services AthenaIntegrations=[{IntegrationResultS3DestinationArn=arn:aws:s3:::amzn-s3-demo-bucket,PartitionLoadFrequency=none,PartitionStartDate=2021-07-21T00:40:00,PartitionEndDate=2021-07-21T00:42:00},{IntegrationResultS3DestinationArn=arn:aws:s3:::amzn-s3-demo-bucket,PartitionLoadFrequency=none,PartitionStartDate=2021-07-21T00:40:00,PartitionEndDate=2021-07-21T00:42:00}] + +Output:: + + { + "Result": "https://amzn-s3-demo-bucket.s3.us-east-2.amazonaws.com/VPCFlowLogsIntegrationTemplate_fl-1234567890abcdef0_Wed%20Jul%2021%2000%3A57%3A56%20UTC%202021.yml" + } + +For information on using CloudFormation templates, see `Working with AWS CloudFormation templates `__ in the *AWS CloudFormation User Guide*. + +For information on using Amazon Athena and flow logs, see `Query flow logs using Amazon Athena `__ in the *Amazon Virtual Private Cloud User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-groups-for-capacity-reservation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-groups-for-capacity-reservation.rst new file mode 100644 index 000000000..cdb4cb509 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-groups-for-capacity-reservation.rst @@ -0,0 +1,19 @@ +**To list the resource groups with a Capacity Reservation** + +The following ``get-groups-for-capacity-reservation`` example lists the resource groups to which the specified Capacity Reservation was added. :: + + aws ec2 get-groups-for-capacity-reservation \ + --capacity-reservation-id cr-1234abcd56EXAMPLE + +Output:: + + { + "CapacityReservationsGroup": [ + { + "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/my-resource-group", + "OwnerId": "123456789012" + } + ] + } + +For more information, see `Capacity Reservation groups `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-host-reservation-purchase-preview.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-host-reservation-purchase-preview.rst new file mode 100644 index 000000000..22566bec4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-host-reservation-purchase-preview.rst @@ -0,0 +1,26 @@ +**To get a purchase preview for a Dedicated Host Reservation** + +This example provides a preview of the costs for a specified Dedicated Host Reservation for the specified Dedicated Host in your account. + +Command:: + + aws ec2 get-host-reservation-purchase-preview --offering-id hro-03f707bf363b6b324 --host-id-set h-013abcd2a00cbd123 + +Output:: + + { + "TotalHourlyPrice": "1.499", + "Purchase": [ + { + "HourlyPrice": "1.499", + "InstanceFamily": "m4", + "PaymentOption": "NoUpfront", + "HostIdSet": [ + "h-013abcd2a00cbd123" + ], + "UpfrontPrice": "0.000", + "Duration": 31536000 + } + ], + "TotalUpfrontPrice": "0.000" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-image-block-public-access-state.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-image-block-public-access-state.rst new file mode 100644 index 000000000..23c06d479 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-image-block-public-access-state.rst @@ -0,0 +1,14 @@ +**To get the block public access state for AMIs in the specified Region** + +The following ``get-image-block-public-access-state`` example gets the block public access state for AMIs at the account level in the specified Region. :: + + aws ec2 get-image-block-public-access-state \ + --region us-east-1 + +Output:: + + { + "ImageBlockPublicAccessState": "block-new-sharing" + } + +For more information, see `Block public access to your AMIs `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-instance-types-from-instance-requirements.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-instance-types-from-instance-requirements.rst new file mode 100644 index 000000000..402cf0d80 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-instance-types-from-instance-requirements.rst @@ -0,0 +1,136 @@ +**To preview the instance types that match specified attributes** + +The following ``get-instance-types-from-instance-requirements`` example first generates a list of all of the possible attributes that can be specified using the ``--generate-cli-skeleton`` parameter, and saves the list to a JSON file. Then, the JSON file is used to customize the attributes for which to preview matched instance types. + +To generate all possible attributes and save the output directly to a JSON file, use the following command. :: + + aws ec2 get-instance-types-from-instance-requirements \ + --region us-east-1 \ + --generate-cli-skeleton input > attributes.json + +Output:: + + { + "DryRun": true, + "ArchitectureTypes": [ + "x86_64_mac" + ], + "VirtualizationTypes": [ + "paravirtual" + ], + "InstanceRequirements": { + "VCpuCount": { + "Min": 0, + "Max": 0 + }, + "MemoryMiB": { + "Min": 0, + "Max": 0 + }, + "CpuManufacturers": [ + "intel" + ], + "MemoryGiBPerVCpu": { + "Min": 0.0, + "Max": 0.0 + }, + "ExcludedInstanceTypes": [ + "" + ], + "InstanceGenerations": [ + "current" + ], + "SpotMaxPricePercentageOverLowestPrice": 0, + "OnDemandMaxPricePercentageOverLowestPrice": 0, + "BareMetal": "included", + "BurstablePerformance": "excluded", + "RequireHibernateSupport": true, + "NetworkInterfaceCount": { + "Min": 0, + "Max": 0 + }, + "LocalStorage": "required", + "LocalStorageTypes": [ + "hdd" + ], + "TotalLocalStorageGB": { + "Min": 0.0, + "Max": 0.0 + }, + "BaselineEbsBandwidthMbps": { + "Min": 0, + "Max": 0 + }, + "AcceleratorTypes": [ + "inference" + ], + "AcceleratorCount": { + "Min": 0, + "Max": 0 + }, + "AcceleratorManufacturers": [ + "xilinx" + ], + "AcceleratorNames": [ + "t4" + ], + "AcceleratorTotalMemoryMiB": { + "Min": 0, + "Max": 0 + } + }, + "MaxResults": 0, + "NextToken": "" + } + +Configure the JSON file. You must provide values for ``ArchitectureTypes``, ``VirtualizationTypes``, ``VCpuCount``, and ``MemoryMiB``. You can omit the other attributes. When omitted, default values are used. For a description of each attribute and their default values, see `get-instance-types-from-instance-requirements `. + +Preview the instance types that have the attributes specified in ``attributes.json``. Specify the name and path to your JSON file by using the ``--cli-input-json`` parameter. In the following request, the output is formatted as a table. :: + + aws ec2 get-instance-types-from-instance-requirements \ + --cli-input-json file://attributes.json \ + --output table + +Contents of ``attributes.json`` file:: + + { + + "ArchitectureTypes": [ + "x86_64" + ], + "VirtualizationTypes": [ + "hvm" + ], + "InstanceRequirements": { + "VCpuCount": { + "Min": 4, + "Max": 6 + }, + "MemoryMiB": { + "Min": 2048 + }, + "InstanceGenerations": [ + "current" + ] + } + } + +Output:: + + ------------------------------------------ + |GetInstanceTypesFromInstanceRequirements| + +----------------------------------------+ + || InstanceTypes || + |+--------------------------------------+| + || InstanceType || + |+--------------------------------------+| + || c4.xlarge || + || c5.xlarge || + || c5a.xlarge || + || c5ad.xlarge || + || c5d.xlarge || + || c5n.xlarge || + || d2.xlarge || + ... + +For more information about attribute-based instance type selection, see `How attribute-based instance type selection works `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-instance-uefi-data.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-instance-uefi-data.rst new file mode 100644 index 000000000..6dad10b73 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-instance-uefi-data.rst @@ -0,0 +1,17 @@ +**To retrieve UEFI data from an instance** + +The following ``get-instance-uefi-data`` example retrieves UEFI data from an instance. If the output is empty, the instance does not contain UEFI data. :: + + aws ec2 get-instance-uefi-data \ + --instance-id i-0123456789example + +Output:: + + { + "InstanceId": "i-0123456789example", + "UefiData": "QU1aTlVFRkkf+uLXAAAAAHj5a7fZ9+3dBzxXb/. + + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4L/J/AODshho=" + } + +For more information, see `UEFI Secure Boot `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ipam-address-history.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ipam-address-history.rst new file mode 100644 index 000000000..cd1b158d8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ipam-address-history.rst @@ -0,0 +1,64 @@ +**To get the history of a CIDR** + +The following ``get-ipam-address-history`` example gets the history of a CIDR. + +(Linux):: + + aws ec2 get-ipam-address-history \ + --cidr 10.0.0.0/16 \ + --ipam-scope-id ipam-scope-02fc38cd4c48e7d38 \ + --start-time 2021-12-08T01:00:00.000Z \ + --end-time 2021-12-10T01:00:00.000Z + +(Windows):: + + aws ec2 get-ipam-address-history ^ + --cidr 10.0.0.0/16 ^ + --ipam-scope-id ipam-scope-02fc38cd4c48e7d38 ^ + --start-time 2021-12-08T01:00:00.000Z ^ + --end-time 2021-12-10T01:00:00.000Z + +Output:: + + { + "HistoryRecords": [ + { + "ResourceOwnerId": "123456789012", + "ResourceRegion": "us-west-1", + "ResourceType": "vpc", + "ResourceId": "vpc-06cbefa9ee907e1c0", + "ResourceCidr": "10.0.0.0/16", + "ResourceName": "Demo", + "ResourceComplianceStatus": "unmanaged", + "ResourceOverlapStatus": "overlapping", + "VpcId": "vpc-06cbefa9ee907e1c0", + "SampledStartTime": "2021-12-08T19:54:57.675000+00:00" + }, + { + "ResourceOwnerId": "123456789012", + "ResourceRegion": "us-east-2", + "ResourceType": "vpc", + "ResourceId": "vpc-042702f474812c9ad", + "ResourceCidr": "10.0.0.0/16", + "ResourceName": "test", + "ResourceComplianceStatus": "unmanaged", + "ResourceOverlapStatus": "overlapping", + "VpcId": "vpc-042702f474812c9ad", + "SampledStartTime": "2021-12-08T19:54:59.019000+00:00" + }, + { + "ResourceOwnerId": "123456789012", + "ResourceRegion": "us-east-2", + "ResourceType": "vpc", + "ResourceId": "vpc-042b8a44f64267d67", + "ResourceCidr": "10.0.0.0/16", + "ResourceName": "tester", + "ResourceComplianceStatus": "unmanaged", + "ResourceOverlapStatus": "overlapping", + "VpcId": "vpc-042b8a44f64267d67", + "SampledStartTime": "2021-12-08T19:54:59.019000+00:00" + } + ] + } + +For more information, see `View the history of IP addresses `__ in the *Amazon VPC IPAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ipam-discovered-accounts.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ipam-discovered-accounts.rst new file mode 100644 index 000000000..c2cf1d686 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ipam-discovered-accounts.rst @@ -0,0 +1,26 @@ +**To view the accounts discovered by an IPAM** + +In this scenario, you're a IPAM delegated admin who wants to view the AWS accounts that own resources that the IPAM is discovering. + +The ``--discovery-region`` is the IPAM operating Region you want to view the monitored account statuses in. For example, if you have three IPAM operating Regions, you may want to make this request three times to view the timestamps specific to discovery in each of those particular Regions. + +The following ``get-ipam-discovered-accounts`` example lists the AWS accounts that own resources that the IPAM is discovering. :: + + aws ec2 get-ipam-discovered-accounts \ + --ipam-resource-discovery-id ipam-res-disco-0365d2977fc1672fe \ + --discovery-region us-east-1 + +Output:: + + { + "IpamDiscoveredAccounts": [ + { + "AccountId": "149977607591", + "DiscoveryRegion": "us-east-1", + "LastAttemptedDiscoveryTime": "2024-02-09T19:04:31.379000+00:00", + "LastSuccessfulDiscoveryTime": "2024-02-09T19:04:31.379000+00:00" + } + ] + } + +For more information, see `Integrate IPAM with accounts outside of your organization `__ in the *Amazon VPC IPAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ipam-discovered-public-addresses.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ipam-discovered-public-addresses.rst new file mode 100644 index 000000000..72eaba496 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ipam-discovered-public-addresses.rst @@ -0,0 +1,62 @@ +**To view discovered public IP addresses** + +In this example, you are an IPAM delegated admin and you want to view the IP addresses of resources discovered by IPAM. You can get the resource discovery ID with `describe-ipam-resource-discoveries `__. + +The following ``get-ipam-discovered-public-addresses`` example shows the discovered public IP addresses for a resource discovery. :: + + aws ec2 get-ipam-discovered-public-addresses \ + --ipam-resource-discovery-id ipam-res-disco-0f4ef577a9f37a162 \ + --address-region us-east-1 \ + --region us-east-1 + +Output:: + + { + "IpamDiscoveredPublicAddresses": [ + { + "IpamResourceDiscoveryId": "ipam-res-disco-0f4ef577a9f37a162", + "AddressRegion": "us-east-1", + "Address": "54.208.155.7", + "AddressOwnerId": "320805250157", + "AssociationStatus": "associated", + "AddressType": "ec2-public-ip", + "VpcId": "vpc-073b294916198ce49", + "SubnetId": "subnet-0b6c8a8839e9a4f15", + "NetworkInterfaceId": "eni-081c446b5284a5e06", + "NetworkInterfaceDescription": "", + "InstanceId": "i-07459a6fca5b35823", + "Tags": {}, + "NetworkBorderGroup": "us-east-1c", + "SecurityGroups": [ + { + "GroupName": "launch-wizard-2", + "GroupId": "sg-0a489dd6a65c244ce" + } + ], + "SampleTime": "2024-04-05T15:13:59.228000+00:00" + }, + { + "IpamResourceDiscoveryId": "ipam-res-disco-0f4ef577a9f37a162", + "AddressRegion": "us-east-1", + "Address": "44.201.251.218", + "AddressOwnerId": "470889052923", + "AssociationStatus": "associated", + "AddressType": "ec2-public-ip", + "VpcId": "vpc-6c31a611", + "SubnetId": "subnet-062f47608b99834b1", + "NetworkInterfaceId": "eni-024845359c2c3ae9b", + "NetworkInterfaceDescription": "", + "InstanceId": "i-04ef786d9c4e03f41", + "Tags": {}, + "NetworkBorderGroup": "us-east-1a", + "SecurityGroups": [ + { + "GroupName": "launch-wizard-32", + "GroupId": "sg-0ed1a426e96a68374" + } + ], + "SampleTime": "2024-04-05T15:13:59.145000+00:00" + } + } + +For more information, see `View public IP insights `__ in the *Amazon VPC IPAM User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ipam-discovered-resource-cidrs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ipam-discovered-resource-cidrs.rst new file mode 100644 index 000000000..00d37b6a7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ipam-discovered-resource-cidrs.rst @@ -0,0 +1,60 @@ +**To view the IP address CIDRs discovered by an IPAM** + +In this example, you're a IPAM delegated admin who wants to view details related to the IP address CIDRs for resources that the IPAM is discovering. + +To complete this request: + +* The resource discovery you choose must be associated with the IPAM. +* The ``--resource-region`` is the AWS Region where resource was created. + +The following ``get-ipam-discovered-resource-cidrs`` example lists the IP addresses for resources that the IPAM is discovering. :: + + aws ec2 get-ipam-discovered-resource-cidrs \ + --ipam-resource-discovery-id ipam-res-disco-0365d2977fc1672fe \ + --resource-region us-east-1 + +Output:: + + { + { + "IpamDiscoveredResourceCidrs": [ + { + "IpamResourceDiscoveryId": "ipam-res-disco-0365d2977fc1672fe", + "ResourceRegion": "us-east-1", + "ResourceId": "vpc-0c974c95ca7ceef4a", + "ResourceOwnerId": "149977607591", + "ResourceCidr": "172.31.0.0/16", + "ResourceType": "vpc", + "ResourceTags": [], + "IpUsage": 0.375, + "VpcId": "vpc-0c974c95ca7ceef4a", + "SampleTime": "2024-02-09T19:15:16.529000+00:00" + }, + { + "IpamResourceDiscoveryId": "ipam-res-disco-0365d2977fc1672fe", + "ResourceRegion": "us-east-1", + "ResourceId": "subnet-07fe028119082a8c1", + "ResourceOwnerId": "149977607591", + "ResourceCidr": "172.31.0.0/20", + "ResourceType": "subnet", + "ResourceTags": [], + "IpUsage": 0.0012, + "VpcId": "vpc-0c974c95ca7ceef4a", + "SampleTime": "2024-02-09T19:15:16.529000+00:00" + }, + { + "IpamResourceDiscoveryId": "ipam-res-disco-0365d2977fc1672fe", + "ResourceRegion": "us-east-1", + "ResourceId": "subnet-0a96893763984cc4e", + "ResourceOwnerId": "149977607591", + "ResourceCidr": "172.31.64.0/20", + "ResourceType": "subnet", + "ResourceTags": [], + "IpUsage": 0.0012, + "VpcId": "vpc-0c974c95ca7ceef4a", + "SampleTime": "2024-02-09T19:15:16.529000+00:00" + } + } + } + +For more information, see `Monitor CIDR usage by resource `__ in the *Amazon VPC IPAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ipam-pool-allocations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ipam-pool-allocations.rst new file mode 100644 index 000000000..0f9e5c865 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ipam-pool-allocations.rst @@ -0,0 +1,28 @@ +**To get the CIDRs allocated from an IPAM pool** + +The following ``get-ipam-pool-allocations`` example gets the CIDRs allocated from an IPAM pool. + +(Linux):: + + aws ec2 get-ipam-pool-allocations \ + --ipam-pool-id ipam-pool-0533048da7d823723 \ + --filters Name=ipam-pool-allocation-id,Values=ipam-pool-alloc-0e6186d73999e47389266a5d6991e6220 + +(Windows):: + + aws ec2 get-ipam-pool-allocations ^ + --ipam-pool-id ipam-pool-0533048da7d823723 ^ + --filters Name=ipam-pool-allocation-id,Values=ipam-pool-alloc-0e6186d73999e47389266a5d6991e6220 + +Output:: + + { + "IpamPoolAllocations": [ + { + "Cidr": "10.0.0.0/16", + "IpamPoolAllocationId": "ipam-pool-alloc-0e6186d73999e47389266a5d6991e6220", + "ResourceType": "custom", + "ResourceOwner": "123456789012" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ipam-pool-cidrs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ipam-pool-cidrs.rst new file mode 100644 index 000000000..4a2595d02 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ipam-pool-cidrs.rst @@ -0,0 +1,24 @@ +**To get the CIDRs provisioned to an IPAM pool** + +The following ``get-ipam-pool-cidrs`` example gets the CIDRs provisioned to an IPAM pool. + +(Linux):: + + aws ec2 get-ipam-pool-cidrs \ + --ipam-pool-id ipam-pool-0533048da7d823723 \ + --filters 'Name=cidr,Values=10.*' + +(Windows):: + + aws ec2 get-ipam-pool-cidrs ^ + --ipam-pool-id ipam-pool-0533048da7d823723 ^ + --filters Name=cidr,Values=10.* + +Output:: + + { + "IpamPoolCidr": { + "Cidr": "10.0.0.0/24", + "State": "provisioned" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ipam-resource-cidrs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ipam-resource-cidrs.rst new file mode 100644 index 000000000..5e347d4c9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-ipam-resource-cidrs.rst @@ -0,0 +1,49 @@ +**To get the CIDRs allocated to a resource** + +The following ``get-ipam-resource-cidrs`` example gets the CIDRs allocated to a resource. + +(Linux):: + + aws ec2 get-ipam-resource-cidrs \ + --ipam-scope-id ipam-scope-02fc38cd4c48e7d38 \ + --filters Name=management-state,Values=unmanaged + +(Windows):: + + aws ec2 get-ipam-resource-cidrs ^ + --ipam-scope-id ipam-scope-02fc38cd4c48e7d38 ^ + --filters Name=management-state,Values=unmanaged + +Output:: + + { + "IpamResourceCidrs": [ + { + "IpamId": "ipam-08440e7a3acde3908", + "IpamScopeId": "ipam-scope-02fc38cd4c48e7d38", + "ResourceRegion": "us-east-2", + "ResourceOwnerId": "123456789012", + "ResourceId": "vpc-621b8709", + "ResourceName": "Default AWS VPC", + "ResourceCidr": "172.33.0.0/16", + "ResourceType": "vpc", + "ResourceTags": [ + { + "Key": "Environment", + "Value": "Test" + }, + { + "Key": "Name", + "Value": "Default AWS VPC" + } + ], + "IpUsage": 0.0039, + "ComplianceStatus": "unmanaged", + "ManagementState": "unmanaged", + "OverlapStatus": "nonoverlapping", + "VpcId": "vpc-621b8709" + } + ] + } + +For more information, see `Monitor CIDR usage by resource `__ in the *Amazon VPC IPAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-launch-template-data.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-launch-template-data.rst new file mode 100644 index 000000000..ae493dc68 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-launch-template-data.rst @@ -0,0 +1,51 @@ +**To get instance data for a launch template** + +This example gets data about the specified instance and uses the ``--query`` option to return the contents in ``LaunchTemplateData``. You can use the output as a base to create a new launch template or launch template version. + +Command:: + + aws ec2 get-launch-template-data --instance-id i-0123d646e8048babc --query 'LaunchTemplateData' + +Output:: + + { + "Monitoring": {}, + "ImageId": "ami-8c1be5f6", + "BlockDeviceMappings": [ + { + "DeviceName": "/dev/xvda", + "Ebs": { + "DeleteOnTermination": true + } + } + ], + "EbsOptimized": false, + "Placement": { + "Tenancy": "default", + "GroupName": "", + "AvailabilityZone": "us-east-1a" + }, + "InstanceType": "t2.micro", + "NetworkInterfaces": [ + { + "Description": "", + "NetworkInterfaceId": "eni-35306abc", + "PrivateIpAddresses": [ + { + "Primary": true, + "PrivateIpAddress": "10.0.0.72" + } + ], + "SubnetId": "subnet-7b16de0c", + "Groups": [ + "sg-7c227019" + ], + "Ipv6Addresses": [ + { + "Ipv6Address": "2001:db8:1234:1a00::123" + } + ], + "PrivateIpAddress": "10.0.0.72" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-managed-prefix-list-associations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-managed-prefix-list-associations.rst new file mode 100644 index 000000000..cebcc524a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-managed-prefix-list-associations.rst @@ -0,0 +1,19 @@ +**To get prefix list associations** + +The following ``get-managed-prefix-list-associations`` example gets the resources that are associated with the specified prefix list. :: + + aws ec2 get-managed-prefix-list-associations \ + --prefix-list-id pl-0123456abcabcabc1 + +Output:: + + { + "PrefixListAssociations": [ + { + "ResourceId": "sg-0abc123456abc12345", + "ResourceOwner": "123456789012" + } + ] + } + +For more information, see `Managed prefix lists `__ in the *Amazon VPC User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-managed-prefix-list-entries.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-managed-prefix-list-entries.rst new file mode 100644 index 000000000..e9f51d3dd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-managed-prefix-list-entries.rst @@ -0,0 +1,23 @@ +**To get the entries for a prefix list** + +The following ``get-managed-prefix-list-entries`` gets the entries for the specified prefix list. :: + + aws ec2 get-managed-prefix-list-entries \ + --prefix-list-id pl-0123456abcabcabc1 + +Output:: + + { + "Entries": [ + { + "Cidr": "10.0.0.0/16", + "Description": "vpc-a" + }, + { + "Cidr": "10.2.0.0/16", + "Description": "vpc-b" + } + ] + } + +For more information, see `Managed prefix lists `__ in the *Amazon VPC User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-network-insights-access-scope-analysis-findings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-network-insights-access-scope-analysis-findings.rst new file mode 100644 index 000000000..c1d2d1f12 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-network-insights-access-scope-analysis-findings.rst @@ -0,0 +1,60 @@ +**To get the findings of Network Insights access scope analysis** + +The following ``get-network-insights-access-scope-analysis-findings`` example gets the selected scope analysis findings in your AWS account. :: + + aws ec2 get-network-insights-access-scope-analysis-findings \ + --region us-east-1 \ + --network-insights-access-scope-analysis-id nis \ + --nis-123456789111 + +Output:: + + { + "NetworkInsightsAccessScopeAnalysisId": "nisa-123456789222", + "AnalysisFindings": [ + { + "NetworkInsightsAccessScopeAnalysisId": "nisa-123456789222", + "NetworkInsightsAccessScopeId": "nis-123456789111", + "FindingComponents": [ + { + "SequenceNumber": 1, + "Component": { + "Id": "eni-02e3d42d5cceca67d", + "Arn": "arn:aws:ec2:us-east-1:936459623503:network-interface/eni-02e3d32d9cceca17d" + }, + "OutboundHeader": { + "DestinationAddresses": [ + "0.0.0.0/5", + "11.0.0.0/8", + "12.0.0.0/6", + "128.0.0.0/3", + "16.0.0.0/4", + "160.0.0.0/5", + "168.0.0.0/6", + "172.0.0.0/12" + "8.0.0.0/7" + ], + "DestinationPortRanges": [ + { + "From": 0, + "To": 65535 + } + ], + "Protocol": "6", + "SourceAddresses": [ + "10.0.2.253/32" + ], + "SourcePortRanges": [ + { + "From": 0, + "To": 65535 + } + ] + }, [etc] + ] + } + } + ] + } + +For more information, see `Getting started with Network Access Analyzer using the AWS CLI `__ in the *Network Access Analyzer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-network-insights-access-scope-content.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-network-insights-access-scope-content.rst new file mode 100644 index 000000000..f5a0013cd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-network-insights-access-scope-content.rst @@ -0,0 +1,35 @@ +**To get Network Insights access scope content** + +The following ``get-network-insights-access-scope-content`` example gets the content of the selected scope analysis ID in your AWS account. :: + + aws ec2 get-network-insights-access-scope-content \ + --region us-east-1 \ + --network-insights-access-scope-id nis-123456789222 + +Output:: + + { + "NetworkInsightsAccessScopeContent": { + "NetworkInsightsAccessScopeId": "nis-123456789222", + "MatchPaths": [ + { + "Source": { + "ResourceStatement": { + "ResourceTypes": [ + "AWS::EC2::NetworkInterface" + ] + } + }, + "Destination": { + "ResourceStatement": { + "ResourceTypes": [ + "AWS::EC2::InternetGateway" + ] + } + } + } + ] + } + } + +For more information, see `Getting started with Network Access Analyzer using the AWS CLI `__ in the *Network Access Analyzer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-password-data.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-password-data.rst new file mode 100644 index 000000000..29cb4461a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-password-data.rst @@ -0,0 +1,36 @@ +**To get the encrypted password** + +This example gets the encrypted password. + +Command:: + + aws ec2 get-password-data --instance-id i-1234567890abcdef0 + +Output:: + + { + "InstanceId": "i-1234567890abcdef0", + "Timestamp": "2013-08-07T22:18:38.000Z", + "PasswordData": "gSlJFq+VpcZXqy+iktxMF6NyxQ4qCrT4+gaOuNOenX1MmgXPTj7XEXAMPLE + UQ+YeFfb+L1U4C4AKv652Ux1iRB3CPTYP7WmU3TUnhsuBd+p6LVk7T2lKUml6OXbk6WPW1VYYm/TRPB1 + e1DQ7PY4an/DgZT4mwcpRFigzhniQgDDeO1InvSDcwoUTwNs0Y1S8ouri2W4n5GNlriM3Q0AnNVelVz/ + 53TkDtxbNoU606M1gK9zUWSxqEgwvbV2j8c5rP0WCuaMWSFl4ziDu4bd7q+4RSyi8NUsVWnKZ4aEZffu + DPGzKrF5yLlf3etP2L4ZR6CvG7K1hx7VKOQVN32Dajw==" + } + +**To get the decrypted password** + +This example gets the decrypted password. + +Command:: + + aws ec2 get-password-data --instance-id i-1234567890abcdef0 --priv-launch-key C:\Keys\MyKeyPair.pem + +Output:: + + { + "InstanceId": "i-1234567890abcdef0", + "Timestamp": "2013-08-30T23:18:05.000Z", + "PasswordData": "&ViJ652e*u" + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-reserved-instances-exchange-quote.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-reserved-instances-exchange-quote.rst new file mode 100644 index 000000000..a5f3be193 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-reserved-instances-exchange-quote.rst @@ -0,0 +1,49 @@ +**To get a quote for exchanging a Convertible Reserved Instance** + +This example gets the exchange information for the specified Convertible Reserved Instances. + +Command:: + + aws ec2 get-reserved-instances-exchange-quote --reserved-instance-ids 7b8750c3-397e-4da4-bbcb-a45ebexample --target-configurations OfferingId=6fea5434-b379-434c-b07b-a7abexample + +Output:: + + { + "CurrencyCode": "USD", + "ReservedInstanceValueSet": [ + { + "ReservedInstanceId": "7b8750c3-397e-4da4-bbcb-a45ebexample", + "ReservationValue": { + "RemainingUpfrontValue": "0.000000", + "HourlyPrice": "0.027800", + "RemainingTotalValue": "730.556200" + } + } + ], + "PaymentDue": "424.983828", + "TargetConfigurationValueSet": [ + { + "TargetConfiguration": { + "InstanceCount": 5, + "OfferingId": "6fea5434-b379-434c-b07b-a7abexample" + }, + "ReservationValue": { + "RemainingUpfrontValue": "424.983828", + "HourlyPrice": "0.016000", + "RemainingTotalValue": "845.447828" + } + } + ], + "IsValidExchange": true, + "OutputReservedInstancesWillExpireAt": "2020-10-01T13:03:39Z", + "ReservedInstanceValueRollup": { + "RemainingUpfrontValue": "0.000000", + "HourlyPrice": "0.027800", + "RemainingTotalValue": "730.556200" + }, + "TargetConfigurationValueRollup": { + "RemainingUpfrontValue": "424.983828", + "HourlyPrice": "0.016000", + "RemainingTotalValue": "845.447828" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-security-groups-for-vpc.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-security-groups-for-vpc.rst new file mode 100644 index 000000000..76df91f6c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-security-groups-for-vpc.rst @@ -0,0 +1,29 @@ +**To view security groups that can be associated with network interfaces in a specified VPC.** + +The following ``get-security-groups-for-vpc`` example shows the security groups that can be associated with network interfaces in the VPC. :: + + aws ec2 get-security-groups-for-vpc \ + --vpc-id vpc-6c31a611 \ + --region us-east-1 + +Output:: + + { + "SecurityGroupForVpcs": [ + { + "Description": "launch-wizard-36 created 2022-08-29T15:59:35.338Z", + "GroupName": "launch-wizard-36", + "OwnerId": "470889052923", + "GroupId": "sg-007e0c3027ee885f5", + "Tags": [], + "PrimaryVpcId": "vpc-6c31a611" + }, + { + "Description": "launch-wizard-18 created 2024-01-19T20:22:27.527Z", + "GroupName": "launch-wizard-18", + "OwnerId": "470889052923", + "GroupId": "sg-0147193bef51c9eef", + "Tags": [], + "PrimaryVpcId": "vpc-6c31a611" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-serial-console-access-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-serial-console-access-status.rst new file mode 100644 index 000000000..bc96aca55 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-serial-console-access-status.rst @@ -0,0 +1,13 @@ +**To view the status of account access to the serial console** + +The following ``get-serial-console-access-status`` example determines whether serial console access is enabled for your account. :: + + aws ec2 get-serial-console-access-status + +Output:: + + { + "SerialConsoleAccessEnabled": true + } + +For more information, see `EC2 Serial Console `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-snapshot-block-public-access-state.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-snapshot-block-public-access-state.rst new file mode 100644 index 000000000..5ce016dee --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-snapshot-block-public-access-state.rst @@ -0,0 +1,13 @@ +**To get the current state of block public access for snapshots** + +The following ``get-snapshot-block-public-access-state`` example gets the current state of block public access for snapshots. :: + + aws ec2 get-snapshot-block-public-access-state + +Output:: + + { + "State": "block-all-sharing" + } + +For more information, see `Block public access for snapshots `__ in the *Amazon EBS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-spot-placement-scores.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-spot-placement-scores.rst new file mode 100644 index 000000000..31ef482a3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-spot-placement-scores.rst @@ -0,0 +1,133 @@ +**To calculate the Spot placement score for specified requirements** + +The following ``get-spot-placement-scores`` example first generates a list of all of the possible parameters that can be specified for the Spot placement score configuration using the ``--generate-cli-skeleton`` parameter, and saves the list to a JSON file. Then, the JSON file is used to configure the requirements to use to calculate the Spot placement score. + +To generate all possible parameters that can be specified for the Spot placement score configuration, and save the output directly to a JSON file. :: + + aws ec2 get-spot-placement-scores \ + --region us-east-1 \ + --generate-cli-skeleton input > attributes.json + +Output:: + + { + "InstanceTypes": [ + "" + ], + "TargetCapacity": 0, + "TargetCapacityUnitType": "vcpu", + "SingleAvailabilityZone": true, + "RegionNames": [ + "" + ], + "InstanceRequirementsWithMetadata": { + "ArchitectureTypes": [ + "x86_64_mac" + ], + "VirtualizationTypes": [ + "hvm" + ], + "InstanceRequirements": { + "VCpuCount": { + "Min": 0, + "Max": 0 + }, + "MemoryMiB": { + "Min": 0, + "Max": 0 + }, + "CpuManufacturers": [ + "amd" + ], + "MemoryGiBPerVCpu": { + "Min": 0.0, + "Max": 0.0 + }, + "ExcludedInstanceTypes": [ + "" + ], + "InstanceGenerations": [ + "previous" + ], + "SpotMaxPricePercentageOverLowestPrice": 0, + "OnDemandMaxPricePercentageOverLowestPrice": 0, + "BareMetal": "excluded", + "BurstablePerformance": "excluded", + "RequireHibernateSupport": true, + "NetworkInterfaceCount": { + "Min": 0, + "Max": 0 + }, + "LocalStorage": "included", + "LocalStorageTypes": [ + "hdd" + ], + "TotalLocalStorageGB": { + "Min": 0.0, + "Max": 0.0 + }, + "BaselineEbsBandwidthMbps": { + "Min": 0, + "Max": 0 + }, + "AcceleratorTypes": [ + "fpga" + ], + "AcceleratorCount": { + "Min": 0, + "Max": 0 + }, + "AcceleratorManufacturers": [ + "amd" + ], + "AcceleratorNames": [ + "vu9p" + ], + "AcceleratorTotalMemoryMiB": { + "Min": 0, + "Max": 0 + } + } + }, + "DryRun": true, + "MaxResults": 0, + "NextToken": "" + } + +Configure the JSON file. You must provide a value for ``TargetCapacity``. For a description of each parameter and their default values, see `Calculate the Spot placement score (AWS CLI) `. + +Calculate the Spot placement score for the requirements specified in ``attributes.json``. Specify the name and path to your JSON file by using the ``--cli-input-json`` parameter. :: + + aws ec2 get-spot-placement-scores \ + --region us-east-1 \ + --cli-input-json file://attributes.json + +Output if ``SingleAvailabilityZone`` is set to ``false`` or omitted (if omitted, it defaults to ``false``). A scored list of Regions is returned. :: + + "Recommendation": [ + { + "Region": "us-east-1", + "Score": 7 + }, + { + "Region": "us-west-1", + "Score": 5 + }, + ... + +Output if ``SingleAvailabilityZone`` is set to ``true``. A scored list of SingleAvailability Zones is returned. :: + + "Recommendation": [ + { + "Region": "us-east-1", + "AvailabilityZoneId": "use1-az1" + "Score": 8 + }, + { + "Region": "us-east-1", + "AvailabilityZoneId": "usw2-az3" + "Score": 6 + }, + ... + +For more information about calculating a Spot placement score, and for example configurations, see `Calculate a Spot placement score `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-subnet-cidr-reservations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-subnet-cidr-reservations.rst new file mode 100644 index 000000000..b40ef4bdc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-subnet-cidr-reservations.rst @@ -0,0 +1,23 @@ +**To get information about a subnet CIDR reservation** + +The following ``get-subnet-cidr-reservations`` example displays information about the specified subnet CIDR reservation. :: + + aws ec2 get-subnet-cidr-reservations \ + --subnet-id subnet-03c51e2e6cEXAMPLE + +Output:: + + { + "SubnetIpv4CidrReservations": [ + { + "SubnetCidrReservationId": "scr-044f977c4eEXAMPLE", + "SubnetId": "subnet-03c51e2e6cEXAMPLE", + "Cidr": "10.1.0.16/28", + "ReservationType": "prefix", + "OwnerId": "123456789012" + } + ], + "SubnetIpv6CidrReservations": [] + } + +For more information, see `Subnet CIDR reservations `__ in the *Amazon VPC User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-transit-gateway-attachment-propagations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-transit-gateway-attachment-propagations.rst new file mode 100755 index 000000000..8760d6634 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-transit-gateway-attachment-propagations.rst @@ -0,0 +1,19 @@ +**To list the route tables to which the specified resource attachment propagates routes** + +The following ``get-transit-gateway-attachment-propagations`` example lists the route table to which the specified resource attachment propagates routes. :: + + aws ec2 get-transit-gateway-attachment-propagations \ + --transit-gateway-attachment-id tgw-attach-09fbd47ddfEXAMPLE + +Output:: + + { + "TransitGatewayAttachmentPropagations": [ + { + "TransitGatewayRouteTableId": "tgw-rtb-0882c61b97EXAMPLE", + "State": "enabled" + } + ] + } + +For more information, see `Transit gateway route tables `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-transit-gateway-multicast-domain-associations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-transit-gateway-multicast-domain-associations.rst new file mode 100755 index 000000000..90ddbbe1c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-transit-gateway-multicast-domain-associations.rst @@ -0,0 +1,60 @@ +**To view the information about the transit gateway multicast domain associations** + +The following ``get-transit-gateway-multicast-domain-associations`` example returns the associations for the specified multicast domain. :: + + aws ec2 get-transit-gateway-multicast-domain-associations \ + --transit-gateway-multicast-domain-id tgw-mcast-domain-0c4905cef7EXAMPLE + +Output:: + + { + "MulticastDomainAssociations": [ + { + "TransitGatewayAttachmentId": "tgw-attach-028c1dd0f8EXAMPLE", + "ResourceId": "vpc-01128d2c24EXAMPLE", + "ResourceType": "vpc", + "Subnet": { + "SubnetId": "subnet-000de86e3bEXAMPLE", + "State": "associated" + } + }, + { + "TransitGatewayAttachmentId": "tgw-attach-070e571cd1EXAMPLE", + "ResourceId": "vpc-7EXAMPLE", + "ResourceType": "vpc", + "Subnet": { + "SubnetId": "subnet-4EXAMPLE", + "State": "associated" + } + }, + { + "TransitGatewayAttachmentId": "tgw-attach-070e571cd1EXAMPLE", + "ResourceId": "vpc-7EXAMPLE", + "ResourceType": "vpc", + "Subnet": { + "SubnetId": "subnet-5EXAMPLE", + "State": "associated" + } + }, + { + "TransitGatewayAttachmentId": "tgw-attach-070e571cd1EXAMPLE", + "ResourceId": "vpc-7EXAMPLE", + "ResourceType": "vpc", + "Subnet": { + "SubnetId": "subnet-aEXAMPLE", + "State": "associated" + } + }, + { + "TransitGatewayAttachmentId": "tgw-attach-070e571cd1EXAMPLE", + "ResourceId": "vpc-7EXAMPLE", + "ResourceType": "vpc", + "Subnet": { + "SubnetId": "subnet-fEXAMPLE", + "State": "associated" + } + } + ] + } + +For more information, see `Multicast domains `__ in the *Transit Gateways Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-transit-gateway-prefix-list-references.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-transit-gateway-prefix-list-references.rst new file mode 100644 index 000000000..2a73a6e20 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-transit-gateway-prefix-list-references.rst @@ -0,0 +1,28 @@ +**To get prefix list references in a transit gateway route table** + +The following ``get-transit-gateway-prefix-list-references`` example gets the prefix list references for the specified transit gateway route table, and filters by the ID of a specific prefix list. :: + + aws ec2 get-transit-gateway-prefix-list-references \ + --transit-gateway-route-table-id tgw-rtb-0123456789abcd123 \ + --filters Name=prefix-list-id,Values=pl-11111122222222333 + +Output:: + + { + "TransitGatewayPrefixListReferences": [ + { + "TransitGatewayRouteTableId": "tgw-rtb-0123456789abcd123", + "PrefixListId": "pl-11111122222222333", + "PrefixListOwnerId": "123456789012", + "State": "available", + "Blackhole": false, + "TransitGatewayAttachment": { + "TransitGatewayAttachmentId": "tgw-attach-aabbccddaabbccaab", + "ResourceType": "vpc", + "ResourceId": "vpc-112233445566aabbc" + } + } + ] + } + +For more information, see `Prefix list references `__ in the *Transit Gateways Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-transit-gateway-route-table-associations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-transit-gateway-route-table-associations.rst new file mode 100644 index 000000000..a9bf2d203 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-transit-gateway-route-table-associations.rst @@ -0,0 +1,21 @@ +**To get information about the associations for the specified transit gateway route table** + +The following ``get-transit-gateway-route-table-associations`` example displays information about the associations for the specified transit gateway route table. :: + + aws ec2 get-transit-gateway-route-table-associations \ + --transit-gateway-route-table-id tgw-rtb-0a823edbdeEXAMPLE + +Output:: + + { + "Associations": [ + { + "TransitGatewayAttachmentId": "tgw-attach-09b52ccdb5EXAMPLE", + "ResourceId": "vpc-4d7de228", + "ResourceType": "vpc", + "State": "associating" + } + ] + } + +For more information, see `Transit gateway route tables `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-transit-gateway-route-table-propagations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-transit-gateway-route-table-propagations.rst new file mode 100755 index 000000000..a86c59c5f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-transit-gateway-route-table-propagations.rst @@ -0,0 +1,33 @@ +**To display information about the route table propagations for the specified transit gateway route table** + +The following ``get-transit-gateway-route-table-propagations`` example returns the route table propagations for the specified route table. :: + + aws ec2 get-transit-gateway-route-table-propagations \ + --transit-gateway-route-table-id tgw-rtb-002573ed1eEXAMPLE + +Output:: + + { + "TransitGatewayRouteTablePropagations": [ + { + "TransitGatewayAttachmentId": "tgw-attach-01f8100bc7EXAMPLE", + "ResourceId": "vpc-3EXAMPLE", + "ResourceType": "vpc", + "State": "enabled" + }, + { + "TransitGatewayAttachmentId": "tgw-attach-08e0bc912cEXAMPLE", + "ResourceId": "11460968-4ac1-4fd3-bdb2-00599EXAMPLE", + "ResourceType": "direct-connect-gateway", + "State": "enabled" + }, + { + "TransitGatewayAttachmentId": "tgw-attach-0a89069f57EXAMPLE", + "ResourceId": "8384da05-13ce-4a91-aada-5a1baEXAMPLE", + "ResourceType": "direct-connect-gateway", + "State": "enabled" + } + ] + } + +For more information, see `Transit gateway route tables `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-verified-access-endpoint-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-verified-access-endpoint-policy.rst new file mode 100644 index 000000000..abf218314 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-verified-access-endpoint-policy.rst @@ -0,0 +1,15 @@ +**To get the Verified Access policy of an endpoint** + +The following ``get-verified-access-endpoint-policy`` example gets the Verified Access policy of the specified endpoint. :: + + aws ec2 get-verified-access-endpoint-policy \ + --verified-access-endpoint-id vae-066fac616d4d546f2 + +Output:: + + { + "PolicyEnabled": true, + "PolicyDocument": "permit(principal,action,resource)\nwhen {\n context.identity.groups.contains(\"finance\") &&\n context.identity.email_verified == true\n};" + } + +For more information, see `Verified Access policies `__ in the *AWS Verified Access User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-verified-access-group-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-verified-access-group-policy.rst new file mode 100644 index 000000000..7c5f51a33 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-verified-access-group-policy.rst @@ -0,0 +1,15 @@ +**To get the Verified Access policy of a group** + +The following ``get-verified-access-group-policy`` example gets the Verified Access policy of the specified group. :: + + aws ec2 get-verified-access-group-policy \ + --verified-access-group-id vagr-0dbe967baf14b7235 + +Output:: + + { + "PolicyEnabled": true, + "PolicyDocument": "permit(principal,action,resource)\nwhen {\n context.identity.groups.contains(\"finance\") &&\n context.identity.email_verified == true\n};" + } + +For more information, see `Verified Access groups `__ in the *AWS Verified Access User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-vpn-connection-device-sample-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-vpn-connection-device-sample-configuration.rst new file mode 100644 index 000000000..64557939a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-vpn-connection-device-sample-configuration.rst @@ -0,0 +1,15 @@ +**To download a sample configuration file** + +The following ``get-vpn-connection-device-sample-configuration`` example downloads the specified sample configuration file. To list the gateway devices with a sample configuration file, call the ``get-vpn-connection-device-types`` command. :: + + aws ec2 get-vpn-connection-device-sample-configuration \ + --vpn-connection-id vpn-123456789abc01234 \ + --vpn-connection-device-type-id 5fb390ba + +Output:: + + { + "VpnConnectionDeviceSampleConfiguration": "contents-of-the-sample-configuration-file" + } + +For more information, see `Download the configuration file `__ in the *AWS Site-to-Site VPN User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-vpn-connection-device-types.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-vpn-connection-device-types.rst new file mode 100644 index 000000000..c2c7e0e9b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/get-vpn-connection-device-types.rst @@ -0,0 +1,31 @@ +**To list gateway devices with a sample configuration file** + +The following ``get-vpn-connection-device-types`` example lists the gateway devices from Palo Alto Networks that have sample configuration files. :: + + aws ec2 get-vpn-connection-device-types \ + --query "VpnConnectionDeviceTypes[?Vendor==`Palo Alto Networks`]" + +Output:: + + [ + { + "VpnConnectionDeviceTypeId": "754a6372", + "Vendor": "Palo Alto Networks", + "Platform": "PA Series", + "Software": "PANOS 4.1.2+" + }, + { + "VpnConnectionDeviceTypeId": "9612cbed", + "Vendor": "Palo Alto Networks", + "Platform": "PA Series", + "Software": "PANOS 4.1.2+ (GUI)" + }, + { + "VpnConnectionDeviceTypeId": "5fb390ba", + "Vendor": "Palo Alto Networks", + "Platform": "PA Series", + "Software": "PANOS 7.0+" + } + ] + +For more information, see `Download the configuration file `__ in the *AWS Site-to-Site VPN user Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/import-client-vpn-client-certificate-revocation-list.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/import-client-vpn-client-certificate-revocation-list.rst new file mode 100644 index 000000000..8a4b86218 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/import-client-vpn-client-certificate-revocation-list.rst @@ -0,0 +1,15 @@ +**To import a client certificate revocation list** + +The following ``import-client-vpn-client-certificate-revocation-list`` example imports a client certificate revocation list to the Client VPN endpoint by specifying the location of the file on the local computer. :: + + aws ec2 import-client-vpn-client-certificate-revocation-list \ + --certificate-revocation-list file:///path/to/crl.pem \ + --client-vpn-endpoint-id cvpn-endpoint-123456789123abcde + +Output:: + + { + "Return": true + } + +For more information, see `Client Certificate Revocation Lists `__ in the *AWS Client VPN Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/import-image.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/import-image.rst new file mode 100755 index 000000000..22042ce83 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/import-image.rst @@ -0,0 +1,25 @@ +**To import a VM image file as an AMI** + +The following ``import-image`` example imports the specified OVA. :: + + aws ec2 import-image \ + --disk-containers Format=ova,UserBucket="{S3Bucket=my-import-bucket,S3Key=vms/my-server-vm.ova}" + +Output:: + + { + "ImportTaskId": "import-ami-1234567890abcdef0", + "Progress": "2", + "SnapshotDetails": [ + { + "DiskImageSize": 0.0, + "Format": "ova", + "UserBucket": { + "S3Bucket": "my-import-bucket", + "S3Key": "vms/my-server-vm.ova" + } + } + ], + "Status": "active", + "StatusMessage": "pending" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/import-key-pair.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/import-key-pair.rst new file mode 100644 index 000000000..5ffca2690 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/import-key-pair.rst @@ -0,0 +1,29 @@ +**To import a public key** + +First, generate a key pair with the tool of your choice. For example, use this ssh-keygen command: + +Command:: + + ssh-keygen -t rsa -C "my-key" -f ~/.ssh/my-key + +Output:: + + Generating public/private rsa key pair. + Enter passphrase (empty for no passphrase): + Enter same passphrase again: + Your identification has been saved in /home/ec2-user/.ssh/my-key. + Your public key has been saved in /home/ec2-user/.ssh/my-key.pub. + ... + +This example command imports the specified public key. + +Command:: + + aws ec2 import-key-pair --key-name "my-key" --public-key-material fileb://~/.ssh/my-key.pub + +Output:: + + { + "KeyName": "my-key", + "KeyFingerprint": "1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/import-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/import-snapshot.rst new file mode 100755 index 000000000..60f21ac95 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/import-snapshot.rst @@ -0,0 +1,26 @@ +**To import a snapshot** + +The following ``import-snapshot`` example imports the specified disk as a snapshot. :: + + aws ec2 import-snapshot \ + --description "My server VMDK" \ + --disk-container Format=VMDK,UserBucket={'S3Bucket=my-import-bucket,S3Key=vms/my-server-vm.vmdk'} + +Output:: + + { + "Description": "My server VMDK", + "ImportTaskId": "import-snap-1234567890abcdef0", + "SnapshotTaskDetail": { + "Description": "My server VMDK", + "DiskImageSize": "0.0", + "Format": "VMDK", + "Progress": "3", + "Status": "active", + "StatusMessage": "pending" + "UserBucket": { + "S3Bucket": "my-import-bucket", + "S3Key": "vms/my-server-vm.vmdk" + } + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/list-images-in-recycle-bin.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/list-images-in-recycle-bin.rst new file mode 100644 index 000000000..ceee4b135 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/list-images-in-recycle-bin.rst @@ -0,0 +1,21 @@ +**To list the images in the Recycle Bin** + +The following ``list-images-in-recycle-bin`` example lists all of the images that are currently retained in the Recycle Bin. :: + + aws ec2 list-images-in-recycle-bin + +Output:: + + { + "Images": [ + { + "RecycleBinEnterTime": "2022-03-14T15:35:08.000Z", + "Description": "Monthly AMI One", + "RecycleBinExitTime": "2022-03-15T15:35:08.000Z", + "Name": "AMI_01", + "ImageId": "ami-0111222333444abcd" + } + ] + } + +For more information, see `Recover deleted AMIs from the Recycle Bin `__ in the *Amazon EBS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/list-snapshots-in-recycle-bin.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/list-snapshots-in-recycle-bin.rst new file mode 100644 index 000000000..9abe1fb74 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/list-snapshots-in-recycle-bin.rst @@ -0,0 +1,22 @@ +**To view snapshots in the Recycle Bin** + +The following ``list-snapshots-in-recycle-bin`` example lists information about snapshots in the Recycle Bin, including the snapshot ID, a description of the snapshot, The ID of the volume from which the snapshot was created, the date and time when the snapshot was deleted and it entered the Recycle Bin, and the date and time when the retention period expires. :: + + aws ec2 list-snapshots-in-recycle-bin \ + --snapshot-id snap-01234567890abcdef + +Output:: + + { + "SnapshotRecycleBinInfo": [ + { + "Description": "Monthly data backup snapshot", + "RecycleBinEnterTime": "2022-12-01T13:00:00.000Z", + "RecycleBinExitTime": "2022-12-15T13:00:00.000Z", + "VolumeId": "vol-abcdef09876543210", + "SnapshotId": "snap-01234567890abcdef" + } + ] + } + +For more information about Recycle Bin, see `Recover deleted snapshots from the Recycle Bin `__ in the *Amazon EBS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/lock-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/lock-snapshot.rst new file mode 100644 index 000000000..d6eed93af --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/lock-snapshot.rst @@ -0,0 +1,46 @@ +**Example 1: To lock a snapshot in governance mode** + +The following ``lock-snapshot`` example locks the specified snapshot in governance mode. :: + + aws ec2 lock-snapshot \ + --snapshot-id snap-0b5e733b4a8df6e0d \ + --lock-mode governance \ + --lock-duration 365 + +Output:: + + { + "SnapshotId": "snap-0b5e733b4a8df6e0d", + "LockState": "governance", + "LockDuration": 365, + "LockCreatedOn": "2024-05-05T00:56:06.208000+00:00", + "LockExpiresOn": "2025-05-05T00:56:06.208000+00:00", + "LockDurationStartTime": "2024-05-05T00:56:06.208000+00:00" + } + +For more information, see `Snapshot lock `__ in the *Amazon EBS User Guide*. + +**Example 2: To lock a snapshot in compliance mode** + +The following ``lock-snapshot`` example lock the specified snapshot in compliance mode. :: + + aws ec2 lock-snapshot \ + --snapshot-id snap-0163a8524c5b9901f \ + --lock-mode compliance \ + --cool-off-period 24 \ + --lock-duration 365 + +Output:: + + { + "SnapshotId": "snap-0b5e733b4a8df6e0d", + "LockState": "compliance-cooloff", + "LockDuration": 365, + "CoolOffPeriod": 24, + "CoolOffPeriodExpiresOn": "2024-05-06T01:02:20.527000+00:00", + "LockCreatedOn": "2024-05-05T01:02:20.527000+00:00", + "LockExpiresOn": "2025-05-05T01:02:20.527000+00:00", + "LockDurationStartTime": "2024-05-05T01:02:20.527000+00:00" + } + +For more information, see `Snapshot lock `__ in the *Amazon EBS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-address-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-address-attribute.rst new file mode 100644 index 000000000..ccf92e63e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-address-attribute.rst @@ -0,0 +1,32 @@ +**To modify the domain name attribute associated with an elastic IP address** + +The following ``modify-address-attribute`` examples modify the domain name attribute of an elastic IP address. + +Linux:: + + aws ec2 modify-address-attribute \ + --allocation-id eipalloc-abcdef01234567890 \ + --domain-name example.com + +Windows:: + + aws ec2 modify-address-attribute ^ + --allocation-id eipalloc-abcdef01234567890 ^ + --domain-name example.com + +Output:: + + { + "Addresses": [ + { + "PublicIp": "192.0.2.0", + "AllocationId": "eipalloc-abcdef01234567890", + "PtrRecord": "example.net." + "PtrRecordUpdate": { + "Value": "example.com.", + "Status": "PENDING" + } + ] + } + +To monitor the pending change and to view the modified attributes of an elastic IP address, see `describe-addresses-attribute `__ in the *AWS CLI Command Reference*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-availability-zone-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-availability-zone-group.rst new file mode 100644 index 000000000..c93151398 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-availability-zone-group.rst @@ -0,0 +1,15 @@ +**To enable a zone group** + +The following ``modify-availability-zone-group`` example enables the specified zone group. :: + + aws ec2 modify-availability-zone-group \ + --group-name us-west-2-lax-1 \ + --opt-in-status opted-in + +Output:: + + { + "Return": true + } + +For more information, see `Regions and Zones `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-capacity-reservation-fleet.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-capacity-reservation-fleet.rst new file mode 100644 index 000000000..62906cf3e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-capacity-reservation-fleet.rst @@ -0,0 +1,29 @@ +**Example 1: To modify the total target capacity of a Capacity Reservation Fleet** + +The following ``modify-capacity-reservation-fleet`` example modifies the total target capacity of the specified Capacity Reservation Fleet. When you modify the total target capacity of a Capacity Reservation Fleet, the Fleet automatically creates new Capacity Reservations, or modifies or cancels existing Capacity Reservations in the Fleet to meet the new total target capacity. You can't attempt additional modifications to a Fleet while it is in the ``modifying`` state. :: + + aws ec2 modify-capacity-reservation-fleet \ + --capacity-reservation-fleet-id crf-01234567890abcedf \ + --total-target-capacity 160 + +Output:: + + { + "Return": true + } + +**Example 2: To modify the end date of a Capacity Reservation Fleet** + +The following ``modify-capacity-reservation-fleet`` example modifies the end date of the specified Capacity Reservation Fleet. When you modify the end date for the Fleet, the end dates for all of the individual Capacity Reservations are updated accordingly. You can't attempt additional modifications to a Fleet while it is in the ``modifying`` state. :: + + aws ec2 modify-capacity-reservation-fleet \ + --capacity-reservation-fleet-id crf-01234567890abcedf \ + --end-date 2022-07-04T23:59:59.000Z + +Output:: + + { + "Return": true + } + +For more information about Capacity Reservation Fleets, see `Capacity Reservation Fleets `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-capacity-reservation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-capacity-reservation.rst new file mode 100644 index 000000000..4668040d7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-capacity-reservation.rst @@ -0,0 +1,26 @@ +**Example 1: To change the number of instances reserved by an existing capacity reservation** + +The following ``modify-capacity-reservation`` example changes the number of instances for which the capacity reservation reserves capacity. :: + + aws ec2 modify-capacity-reservation \ + --capacity-reservation-id cr-1234abcd56EXAMPLE \ + --instance-count 5 + +Output:: + + { + "Return": true + } + +For more information, see `Modify a Capacity Reservation `__ in the *Amazon EC2 User Guide*. + +**Example 2: To change the end date and time for an existing capacity reservation** + +The following ``modify-capacity-reservation`` example modifies an existing capacity reservation to end at the specified date and time. :: + + aws ec2 modify-capacity-reservation \ + --capacity-reservation-id cr-1234abcd56EXAMPLE \ + --end-date-type limited \ + --end-date 2019-08-31T23:59:59Z + +For more information, see `Modify a Capacity Reservation `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-client-vpn-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-client-vpn-endpoint.rst new file mode 100644 index 000000000..83b14ff8a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-client-vpn-endpoint.rst @@ -0,0 +1,15 @@ +**To modify a Client VPN endpoint** + +The following ``modify-client-vpn-endpoint`` example enables client connection logging for the specified Client VPN endpoint. :: + + aws ec2 modify-client-vpn-endpoint \ + --client-vpn-endpoint-id cvpn-endpoint-123456789123abcde \ + --connection-log-options Enabled=true,CloudwatchLogGroup=ClientVPNLogs + +Output:: + + { + "Return": true + } + +For more information, see `Client VPN Endpoints `__ in the *AWS Client VPN Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-default-credit-specification.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-default-credit-specification.rst new file mode 100755 index 000000000..6c50cdc2d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-default-credit-specification.rst @@ -0,0 +1,16 @@ +**To modify the default credit option** + +The following ``modify-default-credit-specification`` example modifies the default credit option for T2 instances. :: + + aws ec2 modify-default-credit-specification \ + --instance-family t2 \ + --cpu-credits unlimited + +Output:: + + { + "InstanceFamilyCreditSpecification": { + "InstanceFamily": "t2", + "CpuCredits": "unlimited" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-ebs-default-kms-key-id.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-ebs-default-kms-key-id.rst new file mode 100644 index 000000000..88a1df3b0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-ebs-default-kms-key-id.rst @@ -0,0 +1,12 @@ +**To set your default CMK for EBS encryption** + +The following ``modify-ebs-default-kms-key-id`` example sets the specified CMK as the default CMK for EBS encryption for your AWS account in the current Region. :: + + aws ec2 modify-ebs-default-kms-key-id \ + --kms-key-id alias/my-cmk + +Output:: + + { + "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/0ea3fef3-80a7-4778-9d8c-1c0c6EXAMPLE" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-fleet.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-fleet.rst new file mode 100644 index 000000000..922dca1f4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-fleet.rst @@ -0,0 +1,15 @@ +**To scale an EC2 Fleet** + +The following ``modify-fleet`` example modifies the target capacity of the specified EC2 Fleet. If the specified value is greater than the current capacity, the EC2 Fleet launches additional instances. If the specified value is less than the current capacity, the EC2 Fleet cancels any open requests and if the termination policy is ``terminate``, the EC2 fleet terminates any instances that exceed the new target capacity. :: + + aws ec2 modify-fleet \ + --fleet-ids fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE \ + --target-capacity-specification TotalTargetCapacity=5 + +Output:: + + { + "Return": true + } + +For more information, see `Manage an EC2 Fleet `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-fpga-image-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-fpga-image-attribute.rst new file mode 100644 index 000000000..12a27188c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-fpga-image-attribute.rst @@ -0,0 +1,20 @@ +**To modify the attributes of an Amazon FPGA image** + +This example adds load permissions for account ID ``123456789012`` for the specified AFI. + +Command:: + + aws ec2 modify-fpga-image-attribute --attribute loadPermission --fpga-image-id afi-0d123e123bfc85abc --load-permission Add=[{UserId=123456789012}] + +Output:: + + { + "FpgaImageAttribute": { + "FpgaImageId": "afi-0d123e123bfc85abc", + "LoadPermissions": [ + { + "UserId": "123456789012" + } + ] + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-hosts.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-hosts.rst new file mode 100644 index 000000000..952e9483c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-hosts.rst @@ -0,0 +1,37 @@ +**Example 1: To enable auto-placement for a Dedicated Host** + +The following ``modify-hosts`` example enables auto-placement for a Dedicated Host so that it accepts any untargeted instance launches that match its instance type configuration. :: + + aws ec2 modify-hosts \ + --host-id h-06c2f189b4EXAMPLE \ + --auto-placement on + +Output:: + + { + "Successful": [ + "h-06c2f189b4EXAMPLE" + ], + "Unsuccessful": [] + } + +For more information, see `Modify the auto-placement setting for a Dedicated Host `__ in the *Amazon EC2 User Guide*. + +**Example 2: To enable host recovery for a Dedicated Host** + +The following ``modify-hosts`` example enables host recovery for the specified Dedicated Host. :: + + aws ec2 modify-hosts \ + --host-id h-06c2f189b4EXAMPLE \ + --host-recovery on + +Output:: + + { + "Successful": [ + "h-06c2f189b4EXAMPLE" + ], + "Unsuccessful": [] + } + +For more information, see `Modify the auto-placement setting for a Dedicated Host `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-id-format.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-id-format.rst new file mode 100755 index 000000000..25ac5c634 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-id-format.rst @@ -0,0 +1,21 @@ +**To enable the longer ID format for a resource** + +The following ``modify-id-format`` example enables the longer ID format for the ``instance`` resource type. :: + + aws ec2 modify-id-format \ + --resource instance \ + --use-long-ids + +**To disable the longer ID format for a resource** + +The following ``modify-id-format`` example disables the longer ID format for the ``instance`` resource type. :: + + aws ec2 modify-id-format \ + --resource instance \ + --no-use-long-ids + +The following ``modify-id-format`` example enables the longer ID format for all supported resource types that are within their opt-in period. :: + + aws ec2 modify-id-format \ + --resource all-current \ + --use-long-ids diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-identity-id-format.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-identity-id-format.rst new file mode 100755 index 000000000..76c4399fc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-identity-id-format.rst @@ -0,0 +1,24 @@ +**To enable an IAM role to use longer IDs for a resource** + +The following ``modify-identity-id-format`` example enables the IAM role ``EC2Role`` in your AWS account to use long ID format for the ``instance`` resource type. :: + + aws ec2 modify-identity-id-format \ + --principal-arn arn:aws:iam::123456789012:role/EC2Role \ + --resource instance \ + --use-long-ids + +**To enable an IAM user to use longer IDs for a resource** + +The following ``modify-identity-id-format`` example enables the IAM user ``AdminUser`` in your AWS account to use the longer ID format for the ``volume`` resource type. :: + + aws ec2 modify-identity-id-format \ + --principal-arn arn:aws:iam::123456789012:user/AdminUser \ + --resource volume \ + --use-long-ids + +The following ``modify-identity-id-format`` example enables the IAM user ``AdminUser`` in your AWS account to use the longer ID format for all supported resource types that are within their opt-in period. :: + + aws ec2 modify-identity-id-format \ + --principal-arn arn:aws:iam::123456789012:user/AdminUser \ + --resource all-current \ + --use-long-ids diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-image-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-image-attribute.rst new file mode 100644 index 000000000..5358aeb87 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-image-attribute.rst @@ -0,0 +1,38 @@ +**Example 1: To make an AMI public** + +The following ``modify-instance-attribute`` example makes the specified AMI public. :: + + aws ec2 modify-image-attribute \ + --image-id ami-5731123e \ + --launch-permission "Add=[{Group=all}]" + +This command produces no output. + +**Example 2: To make an AMI private** + +The following ``modify-instance-attribute`` example makes the specified AMI private. :: + + aws ec2 modify-image-attribute \ + --image-id ami-5731123e \ + --launch-permission "Remove=[{Group=all}]" + +This command produces no output. + +**Example 3: To grant launch permission to an AWS account** + +The following ``modify-instance-attribute`` example grants launch permissions to the specified AWS account. :: + + aws ec2 modify-image-attribute \ + --image-id ami-5731123e \ + --launch-permission "Add=[{UserId=123456789012}]" + +This command produces no output. + +**Example 4: To remove launch permission from an AWS account** + +The following ``modify-instance-attribute`` example removes launch permissions from the specified AWS account. :: + + aws ec2 modify-image-attribute \ + --image-id ami-5731123e \ + --launch-permission "Remove=[{UserId=123456789012}]" + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-attribute.rst new file mode 100644 index 000000000..366b8ba69 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-attribute.rst @@ -0,0 +1,78 @@ +**Example 1: To modify the instance type** + +The following ``modify-instance-attribute`` example modifies the instance type of the specified instance. The instance must be in the ``stopped`` state. :: + + aws ec2 modify-instance-attribute \ + --instance-id i-1234567890abcdef0 \ + --instance-type "{\"Value\": \"m1.small\"}" + +This command produces no output. + +**Example 2: To enable enhanced networking on an instance** + +The following ``modify-instance-attribute`` example enables enhanced networking for the specified instance. The instance must be in the ``stopped`` state. :: + + aws ec2 modify-instance-attribute \ + --instance-id i-1234567890abcdef0 \ + --sriov-net-support simple + +This command produces no output. + +**Example 3: To modify the sourceDestCheck attribute** + +The following ``modify-instance-attribute`` example sets the ``sourceDestCheck`` attribute of the specified instance to ``true``. The instance must be in a VPC. :: + + aws ec2 modify-instance-attribute --instance-id i-1234567890abcdef0 --source-dest-check "{\"Value\": true}" + +This command produces no output. + +**Example 4: To modify the deleteOnTermination attribute of the root volume** + +The following ``modify-instance-attribute`` example sets the ``deleteOnTermination`` attribute for the root volume of the specified Amazon EBS-backed instance to ``false``. By default, this attribute is ``true`` for the root volume. + +Command:: + + aws ec2 modify-instance-attribute \ + --instance-id i-1234567890abcdef0 \ + --block-device-mappings "[{\"DeviceName\": \"/dev/sda1\",\"Ebs\":{\"DeleteOnTermination\":false}}]" + +This command produces no output. + +**Example 5: To modify the user data attached to an instance** + +The following ``modify-instance-attribute`` example adds the contents of the file ``UserData.txt`` as the UserData for the specified instance. + +Contents of original file ``UserData.txt``:: + + #!/bin/bash + yum update -y + service httpd start + chkconfig httpd on + +The contents of the file must be base64 encoded. The first command converts the text file to base64 and saves it as a new file. + +Linux/macOS version of the command:: + + base64 UserData.txt > UserData.base64.txt + +This command produces no output. + +Windows version of the command:: + + certutil -encode UserData.txt tmp.b64 && findstr /v /c:- tmp.b64 > UserData.base64.txt + +Output:: + + Input Length = 67 + Output Length = 152 + CertUtil: -encode command completed successfully. + +Now you can reference that file in the CLI command that follows:: + + aws ec2 modify-instance-attribute \ + --instance-id=i-09b5a14dbca622e76 \ + --attribute userData --value file://UserData.base64.txt + +This command produces no output. + +For more information, see `User Data and the AWS CLI `__ in the *EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-capacity-reservation-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-capacity-reservation-attributes.rst new file mode 100644 index 000000000..821dcc50e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-capacity-reservation-attributes.rst @@ -0,0 +1,31 @@ +**Example 1: To modify an instance's capacity reservation targeting settings** + +The following ``modify-instance-capacity-reservation-attributes`` example modifies a stopped instance to target a specific capacity reservation. :: + + aws ec2 modify-instance-capacity-reservation-attributes \ + --instance-id i-EXAMPLE8765abcd4e \ + --capacity-reservation-specification 'CapacityReservationTarget={CapacityReservationId= cr-1234abcd56EXAMPLE }' + +Output:: + + { + "Return": true + } + +For more information, see `Modify the Capacity Reservation settings of your instance `__ in the *Amazon EC2 User Guide*. + +**Example 2: To modify an instance's capacity reservation targeting settings** + +The following ``modify-instance-capacity-reservation-attributes`` example modifies a stopped instance that targets the specified capacity reservation to launch in any capacity reservation that has matching attributes (instance type, platform, Availability Zone) and that has open instance matching criteria. :: + + aws ec2 modify-instance-capacity-reservation-attributes \ + --instance-id i-EXAMPLE8765abcd4e \ + --capacity-reservation-specification 'CapacityReservationPreference=open' + +Output:: + + { + "Return": true + } + +For more information, see `Modify the Capacity Reservation settings of your instance `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-credit-specification.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-credit-specification.rst new file mode 100644 index 000000000..e3670a1ae --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-credit-specification.rst @@ -0,0 +1,18 @@ +**To modify the credit option for CPU usage of an instance** + +This example modifies the credit option for CPU usage of the specified instance in the specified region to "unlimited". Valid credit options are "standard" and "unlimited". + +Command:: + + aws ec2 modify-instance-credit-specification --instance-credit-specification "InstanceId=i-1234567890abcdef0,CpuCredits=unlimited" + +Output:: + + { + "SuccessfulInstanceCreditSpecifications": [ + { + "InstanceId": "i-1234567890abcdef0" + } + ], + "UnsuccessfulInstanceCreditSpecifications": [] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-event-start-time.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-event-start-time.rst new file mode 100644 index 000000000..ca49562bd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-event-start-time.rst @@ -0,0 +1,20 @@ +**To modify the event start time for an instance** + +The following ``modify-instance-event-start-time`` command shows how to modify the event start time for the specified instance. Specify the event ID by using the ``--instance-event-id`` parameter. Specify the new date and time by using the ``--not-before`` parameter. :: + + aws ec2 modify-instance-event-start-time --instance-id i-1234567890abcdef0 --instance-event-id instance-event-0abcdef1234567890 --not-before 2019-03-25T10:00:00.000 + +Output:: + + "Event": { + "InstanceEventId": "instance-event-0abcdef1234567890", + "Code": "system-reboot", + "Description": "scheduled reboot", + "NotAfter": "2019-03-25T12:00:00.000Z", + "NotBefore": "2019-03-25T10:00:00.000Z", + "NotBeforeDeadline": "2019-04-22T21:00:00.000Z" + } + +For more information, see `Working with Instances Scheduled for Reboot`_ in the *Amazon Elastic Compute Cloud User Guide* + +.. _`Working with Instances Scheduled for Reboot`: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-instances-status-check_sched.html#schedevents_actions_reboot diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-event-window.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-event-window.rst new file mode 100644 index 000000000..231ed4c01 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-event-window.rst @@ -0,0 +1,128 @@ +**Example 1: To modify the time range of an event window** + +The following ``modify-instance-event-window`` example modifies the time range of an event window. Specify the ``time-range`` parameter to modify the time range. You can't also specify the ``cron-expression`` parameter. :: + + aws ec2 modify-instance-event-window \ + --region us-east-1 \ + --instance-event-window-id iew-0abcdef1234567890 + --time-range StartWeekDay=monday,StartHour=2,EndWeekDay=wednesday,EndHour=8 + +Output:: + + { + "InstanceEventWindow": { + "InstanceEventWindowId": "iew-0abcdef1234567890", + "TimeRanges": [ + { + "StartWeekDay": "monday", + "StartHour": 2, + "EndWeekDay": "wednesday", + "EndHour": 8 + } + ], + "Name": "myEventWindowName", + "AssociationTarget": { + "InstanceIds": [ + "i-0abcdef1234567890", + "i-0be35f9acb8ba01f0" + ], + "Tags": [], + "DedicatedHostIds": [] + }, + "State": "creating", + "Tags": [ + { + "Key": "K1", + "Value": "V1" + } + ] + } + } + +For event window constraints, see `Considerations `__ in the Scheduled Events section of the *Amazon EC2 User Guide*. + +**Example 2: To modify a set of time ranges for an event window** + +The following ``modify-instance-event-window`` example modifies the time range of an event window. Specify the ``time-range`` parameter to modify the time range. You can't also specify the ``cron-expression`` parameter. :: + + aws ec2 modify-instance-event-window \ + --region us-east-1 \ + --instance-event-window-id iew-0abcdef1234567890 \ + --time-range '[{"StartWeekDay": "monday", "StartHour": 2, "EndWeekDay": "wednesday", "EndHour": 8}, + {"StartWeekDay": "thursday", "StartHour": 2, "EndWeekDay": "friday", "EndHour": 8}]' + +Output:: + + { + "InstanceEventWindow": { + "InstanceEventWindowId": "iew-0abcdef1234567890", + "TimeRanges": [ + { + "StartWeekDay": "monday", + "StartHour": 2, + "EndWeekDay": "wednesday", + "EndHour": 8 + }, + { + "StartWeekDay": "thursday", + "StartHour": 2, + "EndWeekDay": "friday", + "EndHour": 8 + } + ], + "Name": "myEventWindowName", + "AssociationTarget": { + "InstanceIds": [ + "i-0abcdef1234567890", + "i-0be35f9acb8ba01f0" + ], + "Tags": [], + "DedicatedHostIds": [] + }, + "State": "creating", + "Tags": [ + { + "Key": "K1", + "Value": "V1" + } + ] + } + } + +For event window constraints, see `Considerations `__ in the Scheduled Events section of the *Amazon EC2 User Guide*. + +**Example 3: To modify the cron expression of an event window** + +The following ``modify-instance-event-window`` example modifies the cron expression of an event window. Specify the ``cron-expression`` parameter to modify the cron expression. You can't also specify the ``time-range`` parameter. :: + + aws ec2 modify-instance-event-window \ + --region us-east-1 \ + --instance-event-window-id iew-0abcdef1234567890 \ + --cron-expression "* 21-23 * * 2,3" + +Output:: + + { + "InstanceEventWindow": { + "InstanceEventWindowId": "iew-0abcdef1234567890", + "Name": "myEventWindowName", + "CronExpression": "* 21-23 * * 2,3", + "AssociationTarget": { + "InstanceIds": [ + "i-0abcdef1234567890", + "i-0be35f9acb8ba01f0" + ], + "Tags": [], + "DedicatedHostIds": [] + }, + "State": "creating", + "Tags": [ + { + "Key": "K1", + "Value": "V1" + } + ] + } + } + +For event window constraints, see `Considerations `__ in the Scheduled Events section of the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-maintenance-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-maintenance-options.rst new file mode 100644 index 000000000..ffb974d38 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-maintenance-options.rst @@ -0,0 +1,33 @@ +**Example 1: To disable the recovery behavior of an instance** + +The following ``modify-instance-maintenance-options`` example disables simplified automatic recovery for a running or stopped instance. :: + + aws ec2 modify-instance-maintenance-options \ + --instance-id i-0abcdef1234567890 \ + --auto-recovery disabled + +Output:: + + { + "InstanceId": "i-0abcdef1234567890", + "AutoRecovery": "disabled" + } + +For more information, see `Configure simplified automatic recovery `__ in the *Amazon EC2 User Guide*. + +**Example 2: To set the recovery behavior of an instance to default** + +The following ``modify-instance-maintenance-options`` example sets the automatic recovery behavior to default which enables simplified automatic recovery for supported instance types. :: + + aws ec2 modify-instance-maintenance-options \ + --instance-id i-0abcdef1234567890 \ + --auto-recovery default + +Output:: + + { + "InstanceId": "i-0abcdef1234567890", + "AutoRecovery": "default" + } + +For more information, see `Configure simplified automatic recovery `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-metadata-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-metadata-options.rst new file mode 100644 index 000000000..d48be5aa7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-metadata-options.rst @@ -0,0 +1,68 @@ +**Example 1: To enable IMDSv2** + +The following ``modify-instance-metadata-options`` example configures the use of IMDSv2 on the specified instance. :: + + aws ec2 modify-instance-metadata-options \ + --instance-id i-1234567898abcdef0 \ + --http-tokens required \ + --http-endpoint enabled + +Output:: + + { + "InstanceId": "i-1234567898abcdef0", + "InstanceMetadataOptions": { + "State": "pending", + "HttpTokens": "required", + "HttpPutResponseHopLimit": 1, + "HttpEndpoint": "enabled" + } + } + +For more information, see `Instance metadata `__ in the *Amazon EC2 User Guide*. + +**Example 2: To disable instance metadata** + +The following ``modify-instance-metadata-options`` example disables the use of all versions of instance metadata on the specified instance. :: + + aws ec2 modify-instance-metadata-options \ + --instance-id i-1234567898abcdef0 \ + --http-endpoint disabled + +Output:: + + { + "InstanceId": "i-1234567898abcdef0", + "InstanceMetadataOptions": { + "State": "pending", + "HttpTokens": "required", + "HttpPutResponseHopLimit": 1, + "HttpEndpoint": "disabled" + } + } + +For more information, see `Instance metadata `__ in the *Amazon EC2 User Guide*. + +**Example 3: To enable instance metadata IPv6 endpoint for your instance** + +The following ``modify-instance-metadata-options`` example shows you how to turn on the IPv6 endpoint for the instance metadata service. By default, the IPv6 endpoint is disabled. This is true even if you have launched an instance into an IPv6-only subnet. The IPv6 endpoint for IMDS is only accessible on instances built on the Nitro System. :: + + aws ec2 modify-instance-metadata-options \ + --instance-id i-1234567898abcdef0 \ + --http-protocol-ipv6 enabled \ + --http-endpoint enabled + +Output:: + + { + "InstanceId": "i-1234567898abcdef0", + "InstanceMetadataOptions": { + "State": "pending", + "HttpTokens": "required", + "HttpPutResponseHopLimit": 1, + "HttpEndpoint": "enabled", + HttpProtocolIpv6": "enabled" + } + } + +For more information, see `Instance metadata `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-placement.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-placement.rst new file mode 100644 index 000000000..4c356c2e1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-instance-placement.rst @@ -0,0 +1,76 @@ +**Example 1: To remove an instance's affinity with a Dedicated Host** + +The following ``modify-instance-placement`` example removes an instance's affinity with a Dedicated Host and enables it to launch on any available Dedicated Host in your account that supports its instance type. :: + + aws ec2 modify-instance-placement \ + --instance-id i-0e6ddf6187EXAMPLE \ + --affinity default + +Output:: + + { + "Return": true + } + +**Example 2: To establish affinity between an instance and the specified Dedicated Host** + +The following ``modify-instance-placement`` example establishes a launch relationship between an instance and a Dedicated Host. The instance is only able to run on the specified Dedicated Host. :: + + aws ec2 modify-instance-placement \ + --instance-id i-0e6ddf6187EXAMPLE \ + --affinity host \ + --host-id i-0e6ddf6187EXAMPLE + +Output:: + + { + "Return": true + } + +**Example 3: To move an instance to a placement group** + +The following ``modify-instance-placement`` example moves an instance to a placement group, stop the instance, modify the instance placement, and then restart the instance. :: + + aws ec2 stop-instances \ + --instance-ids i-0123a456700123456 + + aws ec2 modify-instance-placement \ + --instance-id i-0123a456700123456 \ + --group-name MySpreadGroup + + aws ec2 start-instances \ + --instance-ids i-0123a456700123456 + +**Example 4: To remove an instance from a placement group** + +The following ``modify-instance-placement`` example removes an instance from a placement group by stopping the instance, modifying the instance placement, and then restarting the instance. The following example specifies an empty string ("") for the placement group name to indicate that the instance is not to be located in a placement group. + +Stop the instance:: + + aws ec2 stop-instances \ + --instance-ids i-0123a456700123456 + +Modify the placement (Windows Command Prompt):: + + aws ec2 modify-instance-placement \ + --instance-id i-0123a456700123456 \ + --group-name "" + +Modify the placement (Windows PowerShell, Linux, and macOS):: + + aws ec2 modify-instance-placement ` + --instance-id i-0123a456700123456 ` + --group-name '' + +Restart the instance:: + + aws ec2 start-instances \ + --instance-ids i-0123a456700123456 + +Output:: + + { + "Return": true + } + +For more information, see `Modify Dedicated Host tenancy and affinity `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-ipam-pool.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-ipam-pool.rst new file mode 100644 index 000000000..6aee6ccd8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-ipam-pool.rst @@ -0,0 +1,52 @@ +**To modify an IPAM pool** + +The following ``modify-ipam-pool`` example modifies an IPAM pool. + +(Linux):: + + aws ec2 modify-ipam-pool \ + --ipam-pool-id ipam-pool-0533048da7d823723 \ + --add-allocation-resource-tags "Key=Owner,Value=Build Team" \ + --clear-allocation-default-netmask-length \ + --allocation-min-netmask-length 14 + +(Windows):: + + aws ec2 modify-ipam-pool ^ + --ipam-pool-id ipam-pool-0533048da7d823723 ^ + --add-allocation-resource-tags "Key=Owner,Value=Build Team" ^ + --clear-allocation-default-netmask-length ^ + --allocation-min-netmask-length 14 + +Output:: + + { + "IpamPool": { + "OwnerId": "123456789012", + "IpamPoolId": "ipam-pool-0533048da7d823723", + "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0533048da7d823723", + "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-02fc38cd4c48e7d38", + "IpamScopeType": "private", + "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-08440e7a3acde3908", + "IpamRegion": "us-east-1", + "Locale": "None", + "PoolDepth": 1, + "State": "modify-complete", + "AutoImport": true, + "AddressFamily": "ipv4", + "AllocationMinNetmaskLength": 14, + "AllocationMaxNetmaskLength": 26, + "AllocationResourceTags": [ + { + "Key": "Environment", + "Value": "Preprod" + }, + { + "Key": "Owner", + "Value": "Build Team" + } + ] + } + } + +For more information, see `Edit a pool `__ in the *Amazon VPC IPAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-ipam-resource-cidr.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-ipam-resource-cidr.rst new file mode 100644 index 000000000..944e69a61 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-ipam-resource-cidr.rst @@ -0,0 +1,57 @@ +**To modify the CIDR allocated to a resource** + +The following ``modify-ipam-resource-cidr`` example modifies a resource CIDR. + +(Linux):: + + aws ec2 modify-ipam-resource-cidr \ + --current-ipam-scope-id ipam-scope-02fc38cd4c48e7d38 \ + --destination-ipam-scope-id ipam-scope-0da34c61fd189a141 \ + --resource-id vpc-010e1791024eb0af9 \ + --resource-cidr 10.0.1.0/24 \ + --resource-region us-east-1 \ + --monitored + +(Windows):: + + aws ec2 modify-ipam-resource-cidr ^ + --current-ipam-scope-id ipam-scope-02fc38cd4c48e7d38 ^ + --destination-ipam-scope-id ipam-scope-0da34c61fd189a141 ^ + --resource-id vpc-010e1791024eb0af9 ^ + --resource-cidr 10.0.1.0/24 ^ + --resource-region us-east-1 ^ + --monitored + +Output:: + + { + "IpamResourceCidr": { + "IpamId": "ipam-08440e7a3acde3908", + "IpamScopeId": "ipam-scope-0da34c61fd189a141", + "IpamPoolId": "ipam-pool-0533048da7d823723", + "ResourceRegion": "us-east-1", + "ResourceOwnerId": "123456789012", + "ResourceId": "vpc-010e1791024eb0af9", + "ResourceCidr": "10.0.1.0/24", + "ResourceType": "vpc", + "ResourceTags": [ + { + "Key": "Environment", + "Value": "Preprod" + }, + { + "Key": "Owner", + "Value": "Build Team" + } + ], + "IpUsage": 0.0, + "ComplianceStatus": "noncompliant", + "ManagementState": "managed", + "OverlapStatus": "overlapping", + "VpcId": "vpc-010e1791024eb0af9" + } + } + +For more information on moving resources, see `Move resource CIDRs between scopes `__ in the *Amazon VPC IPAM User Guide*. + +For more information on changing monitoring states, see `Change the monitoring state of resource CIDRs `__ in the *Amazon VPC IPAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-ipam-resource-discovery.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-ipam-resource-discovery.rst new file mode 100644 index 000000000..ca6111217 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-ipam-resource-discovery.rst @@ -0,0 +1,40 @@ +**To modify the operating regions of a resource discovery** + +In this example, you're an IPAM delegated admin who wants to modify the operating regions of a resource discovery. + +To complete this request: + +* You cannot modify a default resource discovery and you must be the owner of the resource discovery. +* You need the resource discovery ID, which you can get with `describe-ipam-resource-discoveries `__. + +The following ``modify-ipam-resource-discovery`` example modifies a non-default resource discovery in your AWS account. :: + + aws ec2 modify-ipam-resource-discovery \ + --ipam-resource-discovery-id ipam-res-disco-0f4ef577a9f37a162 \ + --add-operating-regions RegionName='us-west-1' \ + --remove-operating-regions RegionName='us-east-2' \ + --region us-east-1 + +Output:: + + { + "IpamResourceDiscovery": { + "OwnerId": "149977607591", + "IpamResourceDiscoveryId": "ipam-res-disco-0365d2977fc1672fe", + "IpamResourceDiscoveryArn": "arn:aws:ec2::149977607591:ipam-resource-discovery/ipam-res-disco-0365d2977fc1672fe", + "IpamResourceDiscoveryRegion": "us-east-1", + "Description": "Example", + "OperatingRegions": [ + { + "RegionName": "us-east-1" + }, + { + "RegionName": "us-west-1" + } + ], + "IsDefault": false, + "State": "modify-in-progress" + } + } + +For more information, see `Work with resource discoveries `__ in the *Amazon VPC IPAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-ipam-scope.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-ipam-scope.rst new file mode 100644 index 000000000..45ee47076 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-ipam-scope.rst @@ -0,0 +1,31 @@ +**To modify the description of a scope** + +In this scenario, you're an IPAM delegated admin who wants to modify the description of an IPAM scope. + +To complete this request, you'll need the scope ID, which you can get with `describe-ipam-scopes `__. + +The following ``modify-ipam-scope`` example updates the description of the scope. :: + + aws ec2 modify-ipam-scope \ + --ipam-scope-id ipam-scope-0d3539a30b57dcdd1 \ + --description example \ + --region us-east-1 + +Output:: + + { + "IpamScope": { + "OwnerId": "320805250157", + "IpamScopeId": "ipam-scope-0d3539a30b57dcdd1", + "IpamScopeArn": "arn:aws:ec2::320805250157:ipam-scope/ipam-scope-0d3539a30b57dcdd1", + "IpamArn": "arn:aws:ec2::320805250157:ipam/ipam-005f921c17ebd5107", + "IpamRegion": "us-east-1", + "IpamScopeType": "public", + "IsDefault": true, + "Description": "example", + "PoolCount": 1, + "State": "modify-in-progress" + } + } + +For more information about scopes, see `How IPAM works `__ in the *Amazon VPC IPAM User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-ipam.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-ipam.rst new file mode 100644 index 000000000..10faaf205 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-ipam.rst @@ -0,0 +1,44 @@ +**To modify an IPAM** + +The following ``modify-ipam`` example modifies an IPAM by adding an Operating Region. + +(Linux):: + + aws ec2 modify-ipam \ + --ipam-id ipam-08440e7a3acde3908 \ + --add-operating-regions RegionName=us-west-2 + +(Windows):: + + aws ec2 modify-ipam ^ + --ipam-id ipam-08440e7a3acde3908 ^ + --add-operating-regions RegionName=us-west-2 + +Output:: + + { + "Ipam": { + "OwnerId": "123456789012", + "IpamId": "ipam-08440e7a3acde3908", + "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-08440e7a3acde3908", + "IpamRegion": "us-east-1", + "PublicDefaultScopeId": "ipam-scope-0b9eed026396dbc16", + "PrivateDefaultScopeId": "ipam-scope-02fc38cd4c48e7d38", + "ScopeCount": 3, + "OperatingRegions": [ + { + "RegionName": "us-east-1" + }, + { + "RegionName": "us-east-2" + }, + { + "RegionName": "us-west-1" + }, + { + "RegionName": "us-west-2" + } + ], + "State": "modify-in-progress" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-launch-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-launch-template.rst new file mode 100644 index 000000000..95264cd71 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-launch-template.rst @@ -0,0 +1,20 @@ +**To change the default launch template version** + +This example specifies version 2 of the specified launch template as the default version. + +Command:: + + aws ec2 modify-launch-template --launch-template-id lt-0abcd290751193123 --default-version 2 + +Output:: + + { + "LaunchTemplate": { + "LatestVersionNumber": 2, + "LaunchTemplateId": "lt-0abcd290751193123", + "LaunchTemplateName": "WebServers", + "DefaultVersionNumber": 2, + "CreatedBy": "arn:aws:iam::123456789012:root", + "CreateTime": "2017-12-01T13:35:46.000Z" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-managed-prefix-list.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-managed-prefix-list.rst new file mode 100644 index 000000000..6c8681320 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-managed-prefix-list.rst @@ -0,0 +1,25 @@ +**To modify a prefix list** + +The following ``modify-managed-prefix-list`` example adds an entry to the specified prefix list. :: + + aws ec2 modify-managed-prefix-list \ + --prefix-list-id pl-0123456abcabcabc1 \ + --add-entries Cidr=10.1.0.0/16,Description=vpc-c \ + --current-version 1 + +Output:: + + { + "PrefixList": { + "PrefixListId": "pl-0123456abcabcabc1", + "AddressFamily": "IPv4", + "State": "modify-in-progress", + "PrefixListArn": "arn:aws:ec2:us-west-2:123456789012:prefix-list/pl-0123456abcabcabc1", + "PrefixListName": "vpc-cidrs", + "MaxEntries": 10, + "Version": 1, + "OwnerId": "123456789012" + } + } + +For more information, see `Managed prefix lists `__ in the *Amazon VPC User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-network-interface-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-network-interface-attribute.rst new file mode 100644 index 000000000..3987f752d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-network-interface-attribute.rst @@ -0,0 +1,34 @@ +**To modify the attachment attribute of a network interface** + +This example command modifies the ``attachment`` attribute of the specified network interface. + +Command:: + + aws ec2 modify-network-interface-attribute --network-interface-id eni-686ea200 --attachment AttachmentId=eni-attach-43348162,DeleteOnTermination=false + + +**To modify the description attribute of a network interface** + +This example command modifies the ``description`` attribute of the specified network interface. + +Command:: + + aws ec2 modify-network-interface-attribute --network-interface-id eni-686ea200 --description "My description" + + +**To modify the groupSet attribute of a network interface** + +This example command modifies the ``groupSet`` attribute of the specified network interface. + +Command:: + + aws ec2 modify-network-interface-attribute --network-interface-id eni-686ea200 --groups sg-903004f8 sg-1a2b3c4d + + +**To modify the sourceDestCheck attribute of a network interface** + +This example command modifies the ``sourceDestCheck`` attribute of the specified network interface. + +Command:: + + aws ec2 modify-network-interface-attribute --network-interface-id eni-686ea200 --no-source-dest-check diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-private-dns-name-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-private-dns-name-options.rst new file mode 100644 index 000000000..ba36c9597 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-private-dns-name-options.rst @@ -0,0 +1,15 @@ +**To modify the options for instance hostnames** + +The following ``modify-private-dns-name-options`` example disables the option to respond to DNS queries for instance hostnames with DNS A records. :: + + aws ec2 modify-private-dns-name-options \ + --instance-id i-1234567890abcdef0 \ + --no-enable-resource-name-dns-a-record + +Output:: + + { + "Return": true + } + +For more information, see `Amazon EC2 instance hostname types `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-reserved-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-reserved-instances.rst new file mode 100644 index 000000000..e33944a66 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-reserved-instances.rst @@ -0,0 +1,50 @@ +**To modify Reserved Instances** + +This example command moves a Reserved Instance to another Availability Zone in the same region. + +Command:: + + aws ec2 modify-reserved-instances --reserved-instances-ids b847fa93-e282-4f55-b59a-1342f5bd7c02 --target-configurations AvailabilityZone=us-west-1c,Platform=EC2-Classic,InstanceCount=10 + +Output:: + + { + "ReservedInstancesModificationId": "rimod-d3ed4335-b1d3-4de6-ab31-0f13aaf46687" + } + + +**To modify the network platform of Reserved Instances** + +This example command converts EC2-Classic Reserved Instances to EC2-VPC. + +Command:: + + aws ec2 modify-reserved-instances --reserved-instances-ids f127bd27-edb7-44c9-a0eb-0d7e09259af0 --target-configurations AvailabilityZone=us-west-1c,Platform=EC2-VPC,InstanceCount=5 + +Output:: + + { + "ReservedInstancesModificationId": "rimod-82fa9020-668f-4fb6-945d-61537009d291" + } + +For more information, see `Modifying Your Reserved Instances`_ in the *Amazon EC2 User Guide*. + +**To modify the instance size of Reserved Instances** + +This example command modifies a Reserved Instance that has 10 m1.small Linux/UNIX instances in us-west-1c so that 8 +m1.small instances become 2 m1.large instances, and the remaining 2 m1.small become 1 m1.medium instance in the same +Availability Zone. Command:: + + aws ec2 modify-reserved-instances --reserved-instances-ids 1ba8e2e3-3556-4264-949e-63ee671405a9 --target-configurations AvailabilityZone=us-west-1c,Platform=EC2-Classic,InstanceCount=2,InstanceType=m1.large AvailabilityZone=us-west-1c,Platform=EC2-Classic,InstanceCount=1,InstanceType=m1.medium + +Output:: + + { + "ReservedInstancesModificationId": "rimod-acc5f240-080d-4717-b3e3-1c6b11fa00b6" + } + +For more information, see `Modifying the Instance Size of Your Reservations`_ in the *Amazon EC2 User Guide*. + +.. _`Modifying the Instance Size of Your Reservations`: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modification-instancemove.html +.. _`Modifying Your Reserved Instances`: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-security-group-rules.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-security-group-rules.rst new file mode 100644 index 000000000..8fd6021bb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-security-group-rules.rst @@ -0,0 +1,15 @@ +**To modify a security group rules to update the rule description, the IP protocol, and the CidrIpv4 address range** + +The following ``modify-security-group-rules`` example updates the description, the IP protocol, and the IPV4 CIDR range of a specified security group rule. Use the ``security-group-rules`` parameter to enter the updates for the specified security group rules. ``-1`` specifies all protocols. :: + + aws ec2 modify-security-group-rules \ + --group-id sg-1234567890abcdef0 \ + --security-group-rules SecurityGroupRuleId=sgr-abcdef01234567890,SecurityGroupRule='{Description=test,IpProtocol=-1,CidrIpv4=0.0.0.0/0}' + +Output:: + + { + "Return": true + } + +For more information about security group rules, see `Security group rules `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-snapshot-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-snapshot-attribute.rst new file mode 100644 index 000000000..37ff9c93a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-snapshot-attribute.rst @@ -0,0 +1,19 @@ +**Example 1: To modify a snapshot attribute** + +The following ``modify-snapshot-attribute`` example updates the ``createVolumePermission`` attribute for the specified snapshot, removing volume permissions for the specified user. :: + + aws ec2 modify-snapshot-attribute \ + --snapshot-id snap-1234567890abcdef0 \ + --attribute createVolumePermission \ + --operation-type remove \ + --user-ids 123456789012 + +**Example 2: To make a snapshot public** + +The following ``modify-snapshot-attribute`` example makes the specified snapshot public. :: + + aws ec2 modify-snapshot-attribute \ + --snapshot-id snap-1234567890abcdef0 \ + --attribute createVolumePermission \ + --operation-type add \ + --group-names all diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-snapshot-tier.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-snapshot-tier.rst new file mode 100644 index 000000000..d00059ed4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-snapshot-tier.rst @@ -0,0 +1,16 @@ +**To archive a snapshot** + +The following ``modify-snapshot-tier`` example archives the specified snapshot. The ``TieringStartTime`` response parameter indicates the date and time at which the archive process was started, in UTC time format (YYYY-MM-DDTHH:MM:SSZ). :: + + aws ec2 modify-snapshot-tier \ + --snapshot-id snap-01234567890abcedf \ + --storage-tier archive + +Output:: + + { + "SnapshotId": "snap-01234567890abcedf", + "TieringStartTime": "2021-09-15T16:44:37.574Z" + } + +For more information about snapshot archiving, see `Archive Amazon EBS snapshots `__ in the *Amazon EBS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-spot-fleet-request.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-spot-fleet-request.rst new file mode 100644 index 000000000..b8ff703e6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-spot-fleet-request.rst @@ -0,0 +1,25 @@ +**To modify a Spot fleet request** + +This example command updates the target capacity of the specified Spot fleet request. + +Command:: + + aws ec2 modify-spot-fleet-request --target-capacity 20 --spot-fleet-request-id sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE + +Output:: + + { + "Return": true + } + +This example command decreases the target capacity of the specified Spot fleet request without terminating any Spot Instances as a result. + +Command:: + + aws ec2 modify-spot-fleet-request --target-capacity 10 --excess-capacity-termination-policy NoTermination --spot-fleet-request-ids sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE + +Output:: + + { + "Return": true + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-subnet-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-subnet-attribute.rst new file mode 100644 index 000000000..a36164fd6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-subnet-attribute.rst @@ -0,0 +1,19 @@ +**To change a subnet's public IPv4 addressing behavior** + +This example modifies subnet-1a2b3c4d to specify that all instances launched into this subnet are assigned a public IPv4 address. If the command succeeds, no output is returned. + +Command:: + + aws ec2 modify-subnet-attribute --subnet-id subnet-1a2b3c4d --map-public-ip-on-launch + +**To change a subnet's IPv6 addressing behavior** + +This example modifies subnet-1a2b3c4d to specify that all instances launched into this subnet are assigned an IPv6 address from the range of the subnet. + +Command:: + + aws ec2 modify-subnet-attribute --subnet-id subnet-1a2b3c4d --assign-ipv6-address-on-creation + +For more information, see `IP Addressing in Your VPC`_ in the *AWS Virtual Private Cloud User Guide*. + +.. _`IP Addressing in Your VPC`: http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-ip-addressing.html \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-traffic-mirror-filter-network-services.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-traffic-mirror-filter-network-services.rst new file mode 100755 index 000000000..5bce38742 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-traffic-mirror-filter-network-services.rst @@ -0,0 +1,40 @@ +**To add network services to a Traffic Mirror filter** + +The following ``modify-traffic-mirror-filter-network-services`` example adds the Amazon DNS network services to the specified filter. :: + + aws ec2 modify-traffic-mirror-filter-network-services \ + --traffic-mirror-filter-id tmf-04812ff784EXAMPLE \ + --add-network-service amazon-dns + +Output:: + + { + "TrafficMirrorFilter": { + "Tags": [ + { + "Key": "Name", + "Value": "Production" + } + ], + "EgressFilterRules": [], + "NetworkServices": [ + "amazon-dns" + ], + "TrafficMirrorFilterId": "tmf-04812ff784EXAMPLE", + "IngressFilterRules": [ + { + "SourceCidrBlock": "0.0.0.0/0", + "RuleNumber": 1, + "DestinationCidrBlock": "0.0.0.0/0", + "Description": "TCP Rule", + "Protocol": 6, + "TrafficDirection": "ingress", + "TrafficMirrorFilterId": "tmf-04812ff784EXAMPLE", + "RuleAction": "accept", + "TrafficMirrorFilterRuleId": "tmf-04812ff784EXAMPLE" + } + ] + } + } + +For more information, see `Modify Traffic Mirror Filter Network Services `__ in the *AWS Traffic Mirroring Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-traffic-mirror-filter-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-traffic-mirror-filter-rule.rst new file mode 100755 index 000000000..efecee2a6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-traffic-mirror-filter-rule.rst @@ -0,0 +1,25 @@ +**To modify a traffic mirror filter rule** + +The following ``modify-traffic-mirror-filter-rule`` example modifies the description of the specified traffic mirror filter rule. :: + + aws ec2 modify-traffic-mirror-filter-rule \ + --traffic-mirror-filter-rule-id tmfr-0ca76e0e08EXAMPLE \ + --description "TCP Rule" + +Output:: + + { + "TrafficMirrorFilterRule": { + "TrafficMirrorFilterRuleId": "tmfr-0ca76e0e08EXAMPLE", + "TrafficMirrorFilterId": "tmf-0293f26e86EXAMPLE", + "TrafficDirection": "ingress", + "RuleNumber": 100, + "RuleAction": "accept", + "Protocol": 6, + "DestinationCidrBlock": "10.0.0.0/24", + "SourceCidrBlock": "10.0.0.0/24", + "Description": "TCP Rule" + } + } + +For more information, see `Modify Your Traffic Mirror Filter Rules `__ in the *AWS Traffic Mirroring Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-traffic-mirror-session.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-traffic-mirror-session.rst new file mode 100644 index 000000000..73e7c50ba --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-traffic-mirror-session.rst @@ -0,0 +1,26 @@ +**To modify a traffic mirror session** + +The following ``modify-traffic-mirror-session`` example changes the traffic mirror session description and the number of packets to mirror. :: + + aws ec2 modify-traffic-mirror-session \ + --description "Change packet length" \ + --traffic-mirror-session-id tms-08a33b1214EXAMPLE \ + --remove-fields "packet-length" + +Output:: + + { + "TrafficMirrorSession": { + "TrafficMirrorSessionId": "tms-08a33b1214EXAMPLE", + "TrafficMirrorTargetId": "tmt-07f75d8feeEXAMPLE", + "TrafficMirrorFilterId": "tmf-04812ff784EXAMPLE", + "NetworkInterfaceId": "eni-070203f901EXAMPLE", + "OwnerId": "111122223333", + "SessionNumber": 1, + "VirtualNetworkId": 7159709, + "Description": "Change packet length", + "Tags": [] + } + } + +For more information, see `Modify your traffic mirror session `__ in the *Traffic Mirroring Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-transit-gateway-prefix-list-reference.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-transit-gateway-prefix-list-reference.rst new file mode 100644 index 000000000..4af295a70 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-transit-gateway-prefix-list-reference.rst @@ -0,0 +1,27 @@ +**To modify a reference to a prefix list** + +The following ``modify-transit-gateway-prefix-list-reference`` example modifies the prefix list reference in the specified route table by changing the attachment to which traffic is routed. :: + + aws ec2 modify-transit-gateway-prefix-list-reference \ + --transit-gateway-route-table-id tgw-rtb-0123456789abcd123 \ + --prefix-list-id pl-11111122222222333 \ + --transit-gateway-attachment-id tgw-attach-aabbccddaabbccaab + +Output:: + + { + "TransitGatewayPrefixListReference": { + "TransitGatewayRouteTableId": "tgw-rtb-0123456789abcd123", + "PrefixListId": "pl-11111122222222333", + "PrefixListOwnerId": "123456789012", + "State": "modifying", + "Blackhole": false, + "TransitGatewayAttachment": { + "TransitGatewayAttachmentId": "tgw-attach-aabbccddaabbccaab", + "ResourceType": "vpc", + "ResourceId": "vpc-112233445566aabbc" + } + } + } + +For more information, see `Prefix list references `__ in the *Transit Gateways Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-transit-gateway-vpc-attachment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-transit-gateway-vpc-attachment.rst new file mode 100644 index 000000000..51013ed75 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-transit-gateway-vpc-attachment.rst @@ -0,0 +1,30 @@ +**To modify a transit gateway VPC attachment** + +The following ``modify-transit-gateway-vpc-attachment`` example adds a subnet to the specified transit gateway VPC attachment. :: + + aws ec2 modify-transit-gateway-vpc-attachment \ + --transit-gateway-attachment-id tgw-attach-09fbd47ddfEXAMPLE \ + --add-subnet-ids subnet-0e51f45802EXAMPLE + +Output:: + + { + "TransitGatewayVpcAttachment": { + "TransitGatewayAttachmentId": "tgw-attach-09fbd47ddfEXAMPLE", + "TransitGatewayId": "tgw-0560315ccfEXAMPLE", + "VpcId": "vpc-5eccc927", + "VpcOwnerId": "111122223333", + "State": "modifying", + "SubnetIds": [ + "subnet-0e51f45802EXAMPLE", + "subnet-1EXAMPLE" + ], + "CreationTime": "2019-08-08T16:47:38.000Z", + "Options": { + "DnsSupport": "enable", + "Ipv6Support": "disable" + } + } + } + +For more information, see `Transit gateway attachments to a VPC `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-transit-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-transit-gateway.rst new file mode 100644 index 000000000..2b3ca8c9b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-transit-gateway.rst @@ -0,0 +1,31 @@ +**To modify a transit gateway** + +The following ``modify-transit-gateway`` example modifies the specified transit gateway by enabling ECMP support for VPN attachments. :: + + aws ec2 modify-transit-gateway \ + --transit-gateway-id tgw-111111222222aaaaa \ + --options VpnEcmpSupport=enable + +Output:: + + { + "TransitGateway": { + "TransitGatewayId": "tgw-111111222222aaaaa", + "TransitGatewayArn": "64512", + "State": "modifying", + "OwnerId": "123456789012", + "CreationTime": "2020-04-30T08:41:37.000Z", + "Options": { + "AmazonSideAsn": 64512, + "AutoAcceptSharedAttachments": "disable", + "DefaultRouteTableAssociation": "enable", + "AssociationDefaultRouteTableId": "tgw-rtb-0123456789abcd123", + "DefaultRouteTablePropagation": "enable", + "PropagationDefaultRouteTableId": "tgw-rtb-0123456789abcd123", + "VpnEcmpSupport": "enable", + "DnsSupport": "enable" + } + } + } + +For more information, see `Transit gateways `__ in the *Transit Gateways Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-verified-access-endpoint-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-verified-access-endpoint-policy.rst new file mode 100644 index 000000000..5a95d2bf4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-verified-access-endpoint-policy.rst @@ -0,0 +1,25 @@ +**To configure the Verified Access policy for an endpoint** + +The following ``modify-verified-access-endpoint-policy`` example adds the specified Verified Access policy to the specified Verified Access endpoint. :: + + aws ec2 modify-verified-access-endpoint-policy \ + --verified-access-endpoint-id vae-066fac616d4d546f2 \ + --policy-enabled \ + --policy-document file://policy.txt + +Contents of ``policy.txt``:: + + permit(principal,action,resource) + when { + context.identity.groups.contains("finance") && + context.identity.email.verified == true + }; + +Output:: + + { + "PolicyEnabled": true, + "PolicyDocument": "permit(principal,action,resource)\nwhen {\n context.identity.groups.contains(\"finance\") &&\n context.identity.email_verified == true\n};" + } + +For more information, see `Verified Access policies `__ in the *AWS Verified Access User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-verified-access-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-verified-access-endpoint.rst new file mode 100644 index 000000000..d21e2cf5a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-verified-access-endpoint.rst @@ -0,0 +1,38 @@ +**To modify the configuration of a Verified Access endpoint** + +The following ``modify-verified-access-endpoint`` example adds the specified description to the specified Verified Access endpoint. :: + + aws ec2 modify-verified-access-endpoint \ + --verified-access-endpoint-id vae-066fac616d4d546f2 \ + --description 'Testing Verified Access' + +Output:: + + { + "VerifiedAccessEndpoint": { + "VerifiedAccessInstanceId": "vai-0ce000c0b7643abea", + "VerifiedAccessGroupId": "vagr-0dbe967baf14b7235", + "VerifiedAccessEndpointId": "vae-066fac616d4d546f2", + "ApplicationDomain": "example.com", + "EndpointType": "network-interface", + "AttachmentType": "vpc", + "DomainCertificateArn": "arn:aws:acm:us-east-2:123456789012:certificate/eb065ea0-26f9-4e75-a6ce-0a1a7EXAMPLE", + "EndpointDomain": "my-ava-app.edge-00c3372d53b1540bb.vai-0ce000c0b7643abea.prod.verified-access.us-east-2.amazonaws.com", + "SecurityGroupIds": [ + "sg-004915970c4c8f13a" + ], + "NetworkInterfaceOptions": { + "NetworkInterfaceId": "eni-0aec70418c8d87a0f", + "Protocol": "https", + "Port": 443 + }, + "Status": { + "Code": "updating" + }, + "Description": "Testing Verified Access", + "CreationTime": "2023-08-25T20:54:43", + "LastUpdatedTime": "2023-08-25T22:46:32" + } + } + +For more information, see `Verified Access endpoints `__ in the *AWS Verified Access User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-verified-access-group-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-verified-access-group-policy.rst new file mode 100644 index 000000000..40fc6bd88 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-verified-access-group-policy.rst @@ -0,0 +1,25 @@ +**To configure a Verified Access policy for a group** + +The following ``modify-verified-access-group-policy`` example adds the specified Verified Access policy to the specified Verified Access group. :: + + aws ec2 modify-verified-access-group-policy \ + --verified-access-group-id vagr-0dbe967baf14b7235 \ + --policy-enabled \ + --policy-document file://policy.txt + +Contents of ``policy.txt``:: + + permit(principal,action,resource) + when { + context.identity.groups.contains("finance") && + context.identity.email.verified == true + }; + +Output:: + + { + "PolicyEnabled": true, + "PolicyDocument": "permit(principal,action,resource)\nwhen {\n context.identity.groups.contains(\"finance\") &&\n context.identity.email_verified == true\n};" + } + +For more information, see `Verified Access groups `__ in the *AWS Verified Access User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-verified-access-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-verified-access-group.rst new file mode 100644 index 000000000..d94deaf4a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-verified-access-group.rst @@ -0,0 +1,23 @@ +**To modify the configuration of a Verified Access group** + +The following ``modify-verified-access-group`` example adds the specified description to the specified Verified Access group. :: + + aws ec2 modify-verified-access-group \ + --verified-access-group-id vagr-0dbe967baf14b7235 \ + --description "Testing Verified Access" + +Output:: + + { + "VerifiedAccessGroup": { + "VerifiedAccessGroupId": "vagr-0dbe967baf14b7235", + "VerifiedAccessInstanceId": "vai-0ce000c0b7643abea", + "Description": "Testing Verified Access", + "Owner": "123456789012", + "VerifiedAccessGroupArn": "arn:aws:ec2:us-east-2:123456789012:verified-access-group/vagr-0dbe967baf14b7235", + "CreationTime": "2023-08-25T19:55:19", + "LastUpdatedTime": "2023-08-25T22:17:25" + } + } + +For more information, see `Verified Access groups `__ in the *AWS Verified Access User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-verified-access-instance-logging-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-verified-access-instance-logging-configuration.rst new file mode 100644 index 000000000..a204710c3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-verified-access-instance-logging-configuration.rst @@ -0,0 +1,34 @@ +**To enable logging for a Verified Access instance** + +The following ``modify-verified-access-instance-logging-configuration`` example enables access logging for the specified Verified Access instance. The logs will be delivered to the specified CloudWatch Logs log group. :: + + aws ec2 modify-verified-access-instance-logging-configuration \ + --verified-access-instance-id vai-0ce000c0b7643abea \ + --access-logs CloudWatchLogs={Enabled=true,LogGroup=my-log-group} + +Output:: + + { + "LoggingConfiguration": { + "VerifiedAccessInstanceId": "vai-0ce000c0b7643abea", + "AccessLogs": { + "S3": { + "Enabled": false + }, + "CloudWatchLogs": { + "Enabled": true, + "DeliveryStatus": { + "Code": "success" + }, + "LogGroup": "my-log-group" + }, + "KinesisDataFirehose": { + "Enabled": false + }, + "LogVersion": "ocsf-1.0.0-rc.2", + "IncludeTrustContext": false + } + } + } + +For more information, see `Verified Access logs `__ in the *AWS Verified Access User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-verified-access-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-verified-access-instance.rst new file mode 100644 index 000000000..aeea67ebf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-verified-access-instance.rst @@ -0,0 +1,27 @@ +**To modify the configuration of a Verified Access instance** + +The following ``modify-verified-access-instance`` example adds the specified description to the specified Verified Access instance. :: + + aws ec2 modify-verified-access-instance \ + --verified-access-instance-id vai-0ce000c0b7643abea \ + --description "Testing Verified Access" + +Output:: + + { + "VerifiedAccessInstance": { + "VerifiedAccessInstanceId": "vai-0ce000c0b7643abea", + "Description": "Testing Verified Access", + "VerifiedAccessTrustProviders": [ + { + "VerifiedAccessTrustProviderId": "vatp-0bb32de759a3e19e7", + "TrustProviderType": "user", + "UserTrustProviderType": "iam-identity-center" + } + ], + "CreationTime": "2023-08-25T18:27:56", + "LastUpdatedTime": "2023-08-25T22:41:04" + } + } + +For more information, see `Verified Access instances `__ in the *AWS Verified Access User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-verified-access-trust-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-verified-access-trust-provider.rst new file mode 100644 index 000000000..59b30b219 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-verified-access-trust-provider.rst @@ -0,0 +1,23 @@ +**To modify the configuration of a Verified Access trust provider** + +The following ``modify-verified-access-trust-provider`` example adds the specified description to the specified Verified Access trust provider. :: + + aws ec2 modify-verified-access-trust-provider \ + --verified-access-trust-provider-id vatp-0bb32de759a3e19e7 \ + --description "Testing Verified Access" + +Output:: + + { + "VerifiedAccessTrustProvider": { + "VerifiedAccessTrustProviderId": "vatp-0bb32de759a3e19e7", + "Description": "Testing Verified Access", + "TrustProviderType": "user", + "UserTrustProviderType": "iam-identity-center", + "PolicyReferenceName": "idc", + "CreationTime": "2023-08-25T19:00:38", + "LastUpdatedTime": "2023-08-25T19:18:21" + } + } + +For more information, see `Trust providers for Verified Access `__ in the *AWS Verified Access User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-volume-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-volume-attribute.rst new file mode 100644 index 000000000..4e6039dc0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-volume-attribute.rst @@ -0,0 +1,7 @@ +**To modify a volume attribute** + +This example sets the ``autoEnableIo`` attribute of the volume with the ID ``vol-1234567890abcdef0`` to ``true``. If the command succeeds, no output is returned. + +Command:: + + aws ec2 modify-volume-attribute --volume-id vol-1234567890abcdef0 --auto-enable-io diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-volume.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-volume.rst new file mode 100644 index 000000000..98b982ede --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-volume.rst @@ -0,0 +1,51 @@ +**Example 1: To modify a volume by changing its size** + +The following ``modify-volume`` example changes the size of the specified volume to 150GB. + +Command:: + + aws ec2 modify-volume --size 150 --volume-id vol-1234567890abcdef0 + +Output:: + + { + "VolumeModification": { + "TargetSize": 150, + "TargetVolumeType": "io1", + "ModificationState": "modifying", + "VolumeId": " vol-1234567890abcdef0", + "TargetIops": 100, + "StartTime": "2019-05-17T11:27:19.000Z", + "Progress": 0, + "OriginalVolumeType": "io1", + "OriginalIops": 100, + "OriginalSize": 100 + } + } + +**Example 2: To modify a volume by changing its type, size, and IOPS value** + +The following ``modify-volume`` example changes the volume type to Provisioned IOPS SSD, sets the target IOPS rate to 10000, and sets the volume size to 350GB. :: + + aws ec2 modify-volume \ + --volume-type io1 \ + --iops 10000 \ + --size 350 \ + --volume-id vol-1234567890abcdef0 + +Output:: + + { + "VolumeModification": { + "TargetSize": 350, + "TargetVolumeType": "io1", + "ModificationState": "modifying", + "VolumeId": "vol-0721c1a9d08c93bf6", + "TargetIops": 10000, + "StartTime": "2019-05-17T11:38:57.000Z", + "Progress": 0, + "OriginalVolumeType": "gp2", + "OriginalIops": 150, + "OriginalSize": 50 + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-attribute.rst new file mode 100644 index 000000000..b2e583b6e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-attribute.rst @@ -0,0 +1,15 @@ +**To modify the enableDnsSupport attribute** + +This example modifies the ``enableDnsSupport`` attribute. This attribute indicates whether DNS resolution is enabled for the VPC. If this attribute is ``true``, the Amazon DNS server resolves DNS hostnames for your instances to their corresponding IP addresses; otherwise, it does not. If the command succeeds, no output is returned. + +Command:: + + aws ec2 modify-vpc-attribute --vpc-id vpc-a01106c2 --enable-dns-support "{\"Value\":false}" + +**To modify the enableDnsHostnames attribute** + +This example modifies the ``enableDnsHostnames`` attribute. This attribute indicates whether instances launched in the VPC get DNS hostnames. If this attribute is ``true``, instances in the VPC get DNS hostnames; otherwise, they do not. If the command succeeds, no output is returned. + +Command:: + + aws ec2 modify-vpc-attribute --vpc-id vpc-a01106c2 --enable-dns-hostnames "{\"Value\":false}" diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-endpoint-connection-notification.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-endpoint-connection-notification.rst new file mode 100644 index 000000000..00ba76067 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-endpoint-connection-notification.rst @@ -0,0 +1,13 @@ +**To modify an endpoint connection notification** + +This example changes the SNS topic for the specified endpoint connection notification. + +Command:: + + aws ec2 modify-vpc-endpoint-connection-notification --connection-notification-id vpce-nfn-008776de7e03f5abc --connection-events Accept Reject --connection-notification-arn arn:aws:sns:us-east-2:123456789012:mytopic + +Output:: + + { + "ReturnValue": true + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-endpoint-service-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-endpoint-service-configuration.rst new file mode 100644 index 000000000..ab64c0407 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-endpoint-service-configuration.rst @@ -0,0 +1,13 @@ +**To modify an endpoint service configuration** + +This example changes the acceptance requirement for the specified endpoint service. + +Command:: + + aws ec2 modify-vpc-endpoint-service-configuration --service-id vpce-svc-09222513e6e77dc86 --no-acceptance-required + +Output:: + + { + "ReturnValue": true + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-endpoint-service-payer-responsibility.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-endpoint-service-payer-responsibility.rst new file mode 100644 index 000000000..65f5cdf7b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-endpoint-service-payer-responsibility.rst @@ -0,0 +1,9 @@ +**To modify the payer responsibility** + +The following ``modify-vpc-endpoint-service-payer-responsibility`` example modifies the payer responsibility of the specified endpoint service. :: + + aws ec2 modify-vpc-endpoint-service-payer-responsibility \ + --service-id vpce-svc-071afff70666e61e0 \ + --payer-responsibility ServiceOwner + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-endpoint-service-permissions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-endpoint-service-permissions.rst new file mode 100644 index 000000000..f34e343c2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-endpoint-service-permissions.rst @@ -0,0 +1,19 @@ +**To modify endpoint service permissions** + +This example adds permission for an AWS account to connect to the specified endpoint service. + +Command:: + + aws ec2 modify-vpc-endpoint-service-permissions --service-id vpce-svc-03d5ebb7d9579a2b3 --add-allowed-principals '["arn:aws:iam::123456789012:root"]' + +Output:: + + { + "ReturnValue": true + } + +This example adds permission for a specific IAM user (``admin``) to connect to the specified endpoint service. + +Command:: + + aws ec2 modify-vpc-endpoint-service-permissions --service-id vpce-svc-03d5ebb7d9579a2b3 --add-allowed-principals '["arn:aws:iam::123456789012:user/admin"]' diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-endpoint.rst new file mode 100644 index 000000000..1fd6574ee --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-endpoint.rst @@ -0,0 +1,27 @@ +**To modify a gateway endpoint** + +This example modifies gateway endpoint ``vpce-1a2b3c4d`` by associating route table ``rtb-aaa222bb`` with the endpoint, and resetting the policy document. + +Command:: + + aws ec2 modify-vpc-endpoint --vpc-endpoint-id vpce-1a2b3c4d --add-route-table-ids rtb-aaa222bb --reset-policy + +Output:: + + { + "Return": true + } + +**To modify an interface endpoint** + +This example modifies interface endpoint ``vpce-0fe5b17a0707d6fa5`` by adding subnet ``subnet-d6fcaa8d`` to the endpoint. + +Command:: + + aws ec2 modify-vpc-endpoint --vpc-endpoint-id vpce-0fe5b17a0707d6fa5 --add-subnet-id subnet-d6fcaa8d + +Output:: + + { + "Return": true + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-peering-connection-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-peering-connection-options.rst new file mode 100644 index 000000000..41bc3e014 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-peering-connection-options.rst @@ -0,0 +1,47 @@ +**To enable communication over a VPC peering connection from your local ClassicLink connection** + +In this example, for peering connection ``pcx-aaaabbb``, the owner of the requester VPC modifies the VPC peering connection options to enable a local ClassicLink connection to communicate with the peer VPC. + +Command:: + + aws ec2 modify-vpc-peering-connection-options --vpc-peering-connection-id pcx-aaaabbbb --requester-peering-connection-options AllowEgressFromLocalClassicLinkToRemoteVpc=true + +Output:: + + { + "RequesterPeeringConnectionOptions": { + "AllowEgressFromLocalClassicLinkToRemoteVpc": true + } + } + +**To enable communication over a VPC peering connection from your local VPC to a remote ClassicLink connection** + +In this example, the owner of the accepter VPC modifies the VPC peering connection options to enable the local VPC to communicate with the ClassicLink connection in the peer VPC. + +Command:: + + aws ec2 modify-vpc-peering-connection-options --vpc-peering-connection-id pcx-aaaabbbb --accepter-peering-connection-options AllowEgressFromLocalVpcToRemoteClassicLink=true + +Output:: + + { + "AccepterPeeringConnectionOptions": { + "AllowEgressFromLocalVpcToRemoteClassicLink": true + } + } + +**To enable DNS resolution support for the VPC peering connection** + +In this example, the owner of the requester VPC modifies the VPC peering connection options for ``pcx-aaaabbbb`` to enable the local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC. + +Command:: + + aws ec2 modify-vpc-peering-connection-options --vpc-peering-connection-id pcx-aaaabbbb --requester-peering-connection-options AllowDnsResolutionFromRemoteVpc=true + +Output:: + + { + "RequesterPeeringConnectionOptions": { + "AllowDnsResolutionFromRemoteVpc": true + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-tenancy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-tenancy.rst new file mode 100644 index 000000000..dabebfded --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpc-tenancy.rst @@ -0,0 +1,13 @@ +**To modify the tenancy of a VPC** + +This example modifies the tenancy of VPC ``vpc-1a2b3c4d`` to ``default``. + +Command:: + + aws ec2 modify-vpc-tenancy --vpc-id vpc-1a2b3c4d --instance-tenancy default + +Output:: + + { + "Return": true + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpn-connection-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpn-connection-options.rst new file mode 100644 index 000000000..aba0b5e9e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpn-connection-options.rst @@ -0,0 +1,55 @@ +**To modify your VPN connection options** + +The following ``modify-vpn-connection-options`` example modifies the local IPv4 CIDR on the customer gateway side of the specified VPN connection. :: + + aws ec2 modify-vpn-connection-options \ + --vpn-connection-id vpn-1122334455aabbccd \ + --local-ipv4-network-cidr 10.0.0.0/16 + +Output:: + + { + "VpnConnections": [ + { + "CustomerGatewayConfiguration": "...configuration information...", + "CustomerGatewayId": "cgw-01234567abcde1234", + "Category": "VPN", + "State": "modifying", + "Type": "ipsec.1", + "VpnConnectionId": "vpn-1122334455aabbccd", + "TransitGatewayId": "tgw-00112233445566aab", + "Options": { + "EnableAcceleration": false, + "StaticRoutesOnly": true, + "LocalIpv4NetworkCidr": "10.0.0.0/16", + "RemoteIpv4NetworkCidr": "0.0.0.0/0", + "TunnelInsideIpVersion": "ipv4" + }, + "Routes": [], + "Tags": [ + { + "Key": "Name", + "Value": "CanadaVPN" + } + ], + "VgwTelemetry": [ + { + "AcceptedRouteCount": 0, + "LastStatusChange": "2020-07-29T10:35:11.000Z", + "OutsideIpAddress": "203.0.113.3", + "Status": "DOWN", + "StatusMessage": "" + }, + { + "AcceptedRouteCount": 0, + "LastStatusChange": "2020-09-02T09:09:33.000Z", + "OutsideIpAddress": "203.0.113.5", + "Status": "UP", + "StatusMessage": "" + } + ] + } + ] + } + +For more information, see `Modifying Site-to-Site VPN connection options `__ in the *AWS Site-to-Site VPN User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpn-connection.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpn-connection.rst new file mode 100644 index 000000000..abe474fad --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpn-connection.rst @@ -0,0 +1,40 @@ +**To modify a VPN connection** + +The following ``modify-vpn-connection`` example changes the target gateway for VPN connection ``vpn-12345678901234567`` to virtual private gateway ``vgw-11223344556677889``:: + + aws ec2 modify-vpn-connection \ + --vpn-connection-id vpn-12345678901234567 \ + --vpn-gateway-id vgw-11223344556677889 + +Output:: + + { + "VpnConnection": { + "CustomerGatewayConfiguration": "...configuration information...", + "CustomerGatewayId": "cgw-aabbccddee1122334", + "Category": "VPN", + "State": "modifying", + "Type": "ipsec.1", + "VpnConnectionId": "vpn-12345678901234567", + "VpnGatewayId": "vgw-11223344556677889", + "Options": { + "StaticRoutesOnly": false + }, + "VgwTelemetry": [ + { + "AcceptedRouteCount": 0, + "LastStatusChange": "2019-07-17T07:34:00.000Z", + "OutsideIpAddress": "18.210.3.222", + "Status": "DOWN", + "StatusMessage": "IPSEC IS DOWN" + }, + { + "AcceptedRouteCount": 0, + "LastStatusChange": "2019-07-20T21:20:16.000Z", + "OutsideIpAddress": "34.193.129.33", + "Status": "DOWN", + "StatusMessage": "IPSEC IS DOWN" + } + ] + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpn-tunnel-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpn-tunnel-certificate.rst new file mode 100644 index 000000000..1c0553bf0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpn-tunnel-certificate.rst @@ -0,0 +1,42 @@ +**To rotate a VPN tunnel certificate** + +The following ``modify-vpn-tunnel-certificate`` example rotates the certificate for the specified tunnel for a VPN connection :: + + aws ec2 modify-vpn-tunnel-certificate \ + --vpn-tunnel-outside-ip-address 203.0.113.17 \ + --vpn-connection-id vpn-12345678901234567 + +Output:: + + { + "VpnConnection": { + "CustomerGatewayConfiguration": ...configuration information..., + "CustomerGatewayId": "cgw-aabbccddee1122334", + "Category": "VPN", + "State": "modifying", + "Type": "ipsec.1", + "VpnConnectionId": "vpn-12345678901234567", + "VpnGatewayId": "vgw-11223344556677889", + "Options": { + "StaticRoutesOnly": false + }, + "VgwTelemetry": [ + { + "AcceptedRouteCount": 0, + "LastStatusChange": "2019-09-11T17:27:14.000Z", + "OutsideIpAddress": "203.0.113.17", + "Status": "DOWN", + "StatusMessage": "IPSEC IS DOWN", + "CertificateArn": "arn:aws:acm:us-east-1:123456789101:certificate/c544d8ce-20b8-4fff-98b0-example" + }, + { + "AcceptedRouteCount": 0, + "LastStatusChange": "2019-09-11T17:26:47.000Z", + "OutsideIpAddress": "203.0.114.18", + "Status": "DOWN", + "StatusMessage": "IPSEC IS DOWN", + "CertificateArn": "arn:aws:acm:us-east-1:123456789101:certificate/5ab64566-761b-4ad3-b259-example" + } + ] + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpn-tunnel-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpn-tunnel-options.rst new file mode 100644 index 000000000..612878a48 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/modify-vpn-tunnel-options.rst @@ -0,0 +1,83 @@ +**To modify the tunnel options for a VPN connection** + +The following ``modify-vpn-tunnel-options`` example updates the Diffie-Hellman groups that are permitted for the specified tunnel and VPN connection. :: + + aws ec2 modify-vpn-tunnel-options \ + --vpn-connection-id vpn-12345678901234567 \ + --vpn-tunnel-outside-ip-address 203.0.113.17 \ + --tunnel-options Phase1DHGroupNumbers=[{Value=14},{Value=15},{Value=16},{Value=17},{Value=18}],Phase2DHGroupNumbers=[{Value=14},{Value=15},{Value=16},{Value=17},{Value=18}] + +Output:: + + { + "VpnConnection": { + "CustomerGatewayConfiguration": "...configuration information...", + "CustomerGatewayId": "cgw-aabbccddee1122334", + "Category": "VPN", + "State": "available", + "Type": "ipsec.1", + "VpnConnectionId": "vpn-12345678901234567", + "VpnGatewayId": "vgw-11223344556677889", + "Options": { + "StaticRoutesOnly": false, + "TunnelOptions": [ + { + "OutsideIpAddress": "203.0.113.17", + "Phase1DHGroupNumbers": [ + { + "Value": 14 + }, + { + "Value": 15 + }, + { + "Value": 16 + }, + { + "Value": 17 + }, + { + "Value": 18 + } + ], + "Phase2DHGroupNumbers": [ + { + "Value": 14 + }, + { + "Value": 15 + }, + { + "Value": 16 + }, + { + "Value": 17 + }, + { + "Value": 18 + } + ] + }, + { + "OutsideIpAddress": "203.0.114.19" + } + ] + }, + "VgwTelemetry": [ + { + "AcceptedRouteCount": 0, + "LastStatusChange": "2019-09-10T21:56:54.000Z", + "OutsideIpAddress": "203.0.113.17", + "Status": "DOWN", + "StatusMessage": "IPSEC IS DOWN" + }, + { + "AcceptedRouteCount": 0, + "LastStatusChange": "2019-09-10T21:56:43.000Z", + "OutsideIpAddress": "203.0.114.19", + "Status": "DOWN", + "StatusMessage": "IPSEC IS DOWN" + } + ] + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/monitor-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/monitor-instances.rst new file mode 100644 index 000000000..8b9278119 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/monitor-instances.rst @@ -0,0 +1,20 @@ +**To enable detailed monitoring for an instance** + +This example command enables detailed monitoring for the specified instance. + +Command:: + + aws ec2 monitor-instances --instance-ids i-1234567890abcdef0 + +Output:: + + { + "InstanceMonitorings": [ + { + "InstanceId": "i-1234567890abcdef0", + "Monitoring": { + "State": "pending" + } + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/move-address-to-vpc.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/move-address-to-vpc.rst new file mode 100644 index 000000000..c2db7e6d3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/move-address-to-vpc.rst @@ -0,0 +1,13 @@ +**To move an address to EC2-VPC** + +This example moves Elastic IP address 54.123.4.56 to the EC2-VPC platform. + +Command:: + + aws ec2 move-address-to-vpc --public-ip 54.123.4.56 + +Output:: + + { + "Status": "MoveInProgress" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/move-byoip-cidr-to-ipam.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/move-byoip-cidr-to-ipam.rst new file mode 100644 index 000000000..77673be31 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/move-byoip-cidr-to-ipam.rst @@ -0,0 +1,31 @@ +**To transfer a BYOIP CIDR to IPAM** + +The following ``move-byoip-cidr-to-ipam`` example transfers a BYOIP CIDR to IPAM. + +(Linux):: + + aws ec2 move-byoip-cidr-to-ipam \ + --region us-west-2 \ + --ipam-pool-id ipam-pool-0a03d430ca3f5c035 \ + --ipam-pool-owner 111111111111 \ + --cidr 130.137.249.0/24 + +(Windows):: + + aws ec2 move-byoip-cidr-to-ipam ^ + --region us-west-2 ^ + --ipam-pool-id ipam-pool-0a03d430ca3f5c035 ^ + --ipam-pool-owner 111111111111 ^ + --cidr 130.137.249.0/24 + + +Output:: + + { + "ByoipCidr": { + "Cidr": "130.137.249.0/24", + "State": "pending-transfer" + } + } + +For more information, see `Tutorial: Transfer an existing BYOIP IPv4 CIDR to IPAM `__ in the *Amazon VPC IPAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/network-insights-access-scope.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/network-insights-access-scope.rst new file mode 100644 index 000000000..ab23a1af0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/network-insights-access-scope.rst @@ -0,0 +1,75 @@ +**To create Network Insights access scopes** + +The following ``create-network-insights-access-scope`` example creates a network insights access scope in your AWS account. :: + + aws ec2 create-network-insights-access-scope \ + --cli-input-json file://access-scope-file.json + +Contents of ``access-scope-file.json``:: + + { + { + "MatchPaths": [ + { + "Source": { + "ResourceStatement": { + "Resources": [ + "vpc-abcd12e3" + ] + } + } + } + ], + "ExcludePaths": [ + { + "Source": { + "ResourceStatement": { + "ResourceTypes": [ + "AWS::EC2::InternetGateway" + ] + } + } + } + ] + } + } + +Output:: + + { + "NetworkInsightsAccessScopeAnalysisId": "nisa-123456789111" + }{ + "NetworkInsightsAccessScope": { + "NetworkInsightsAccessScopeId": "nis-123456789222", + "NetworkInsightsAccessScopeArn": "arn:aws:ec2:us-east-1:123456789222:network-insights-access-scope/nis-123456789222", + "CreatedDate": "2022-01-25T19:20:28.796000+00:00", + "UpdatedDate": "2022-01-25T19:20:28.797000+00:00" + }, + "NetworkInsightsAccessScopeContent": { + "NetworkInsightsAccessScopeId": "nis-04c0c0fbca737c404", + "MatchPaths": [ + { + "Source": { + "ResourceStatement": { + "Resources": [ + "vpc-abcd12e3" + ] + } + } + } + ], + "ExcludePaths": [ + { + "Source": { + "ResourceStatement": { + "ResourceTypes": [ + "AWS::EC2::InternetGateway" + ] + } + } + } + ] + } + } + +For more information, see `Getting started with Network Access Analyzer using the AWS CLI `__ in the *Network Access Analyzer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/provision-byoip-cidr.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/provision-byoip-cidr.rst new file mode 100644 index 000000000..294f97f22 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/provision-byoip-cidr.rst @@ -0,0 +1,18 @@ +**To provision an address range** + +The following ``provision-byoip-cidr`` example provisions a public IP address range for use with AWS. :: + + aws ec2 provision-byoip-cidr \ + --cidr 203.0.113.25/24 \ + --cidr-authorization-context Message="$text_message",Signature="$signed_message" + +Output:: + + { + "ByoipCidr": { + "Cidr": "203.0.113.25/24", + "State": "pending-provision" + } + } + +For more information about creating the messages strings for the authorization context, see `Bring Your Own IP Addresses `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/provision-ipam-pool-cidr.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/provision-ipam-pool-cidr.rst new file mode 100644 index 000000000..39ee6e23d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/provision-ipam-pool-cidr.rst @@ -0,0 +1,26 @@ +**To provision a CIDR to an IPAM pool** + +The following ``provision-ipam-pool-cidr`` example provisions a CIDR to an IPAM pool. + +(Linux):: + + aws ec2 provision-ipam-pool-cidr \ + --ipam-pool-id ipam-pool-0533048da7d823723 \ + --cidr 10.0.0.0/24 + +(Windows):: + + aws ec2 provision-ipam-pool-cidr ^ + --ipam-pool-id ipam-pool-0533048da7d823723 ^ + --cidr 10.0.0.0/24 + +Output:: + + { + "IpamPoolCidr": { + "Cidr": "10.0.0.0/24", + "State": "pending-provision" + } + } + +For more information, see `Provision CIDRs to a pool `__ in the *Amazon VPC IPAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/purchase-host-reservation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/purchase-host-reservation.rst new file mode 100644 index 000000000..ed486ed20 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/purchase-host-reservation.rst @@ -0,0 +1,27 @@ +**To purchase a Dedicated Host Reservation** + +This example purchases the specified Dedicated Host Reservation offering for the specified Dedicated Host in your account. + +Command:: + + aws ec2 purchase-host-reservation --offering-id hro-03f707bf363b6b324 --host-id-set h-013abcd2a00cbd123 + +Output:: + + { + "TotalHourlyPrice": "1.499", + "Purchase": [ + { + "HourlyPrice": "1.499", + "InstanceFamily": "m4", + "PaymentOption": "NoUpfront", + "HostIdSet": [ + "h-013abcd2a00cbd123" + ], + "HostReservationId": "hr-0d418a3a4ffc669ae", + "UpfrontPrice": "0.000", + "Duration": 31536000 + } + ], + "TotalUpfrontPrice": "0.000" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/purchase-reserved-instances-offering.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/purchase-reserved-instances-offering.rst new file mode 100644 index 000000000..2adfbb1e3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/purchase-reserved-instances-offering.rst @@ -0,0 +1,16 @@ +**To purchase a Reserved Instance offering** + +This example command illustrates a purchase of a Reserved Instances offering, specifying an offering ID and instance count. + +Command:: + + aws ec2 purchase-reserved-instances-offering --reserved-instances-offering-id ec06327e-dd07-46ee-9398-75b5fexample --instance-count 3 + + +Output:: + + { + "ReservedInstancesId": "af9f760e-6f91-4559-85f7-4980eexample" + } + + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/purchase-scheduled-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/purchase-scheduled-instances.rst new file mode 100644 index 000000000..03fc9b31f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/purchase-scheduled-instances.rst @@ -0,0 +1,47 @@ +**To purchase a Scheduled Instance** + +This example purchases a Scheduled Instance. + +Command:: + + aws ec2 purchase-scheduled-instances --purchase-requests file://purchase-request.json + +Purchase-request.json:: + + [ + { + "PurchaseToken": "eyJ2IjoiMSIsInMiOjEsImMiOi...", + "InstanceCount": 1 + } + ] + +Output:: + + { + "ScheduledInstanceSet": [ + { + "AvailabilityZone": "us-west-2b", + "ScheduledInstanceId": "sci-1234-1234-1234-1234-123456789012", + "HourlyPrice": "0.095", + "CreateDate": "2016-01-25T21:43:38.612Z", + "Recurrence": { + "OccurrenceDaySet": [ + 1 + ], + "Interval": 1, + "Frequency": "Weekly", + "OccurrenceRelativeToEnd": false, + "OccurrenceUnit": "" + }, + "Platform": "Linux/UNIX", + "TermEndDate": "2017-01-31T09:00:00Z", + "InstanceCount": 1, + "SlotDurationInHours": 32, + "TermStartDate": "2016-01-31T09:00:00Z", + "NetworkPlatform": "EC2-VPC", + "TotalScheduledInstanceHours": 1696, + "NextSlotStartTime": "2016-01-31T09:00:00Z", + "InstanceType": "c4.large" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reboot-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reboot-instances.rst new file mode 100644 index 000000000..69f5d5403 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reboot-instances.rst @@ -0,0 +1,12 @@ +**To reboot an Amazon EC2 instance** + +This example reboots the specified instance. If the command succeeds, no output is returned. + +Command:: + + aws ec2 reboot-instances --instance-ids i-1234567890abcdef5 + +For more information, see `Reboot Your Instance`_ in the *Amazon Elastic Compute Cloud User Guide*. + +.. _`Reboot Your Instance`: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-reboot.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/register-image.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/register-image.rst new file mode 100644 index 000000000..5b794d6d7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/register-image.rst @@ -0,0 +1,32 @@ +**Example 1: To register an AMI using a manifest file** + +The following ``register-image`` example registers an AMI using the specified manifest file in Amazon S3. :: + + aws ec2 register-image \ + --name my-image \ + --image-location amzn-s3-demo-bucket/myimage/image.manifest.xml + +Output:: + + { + "ImageId": "ami-1234567890EXAMPLE" + } + +For more information, see `Amazon Machine Images (AMI) `__ in the *Amazon EC2 User Guide*. + +**Example 2: To register an AMI using a snapshot of a root device** + +The following ``register-image`` example registers an AMI using the specified snapshot of an EBS root volume as device ``/dev/xvda``. The block device mapping also includes an empty 100 GiB EBS volume as device ``/dev/xvdf``. :: + + aws ec2 register-image \ + --name my-image \ + --root-device-name /dev/xvda \ + --block-device-mappings DeviceName=/dev/xvda,Ebs={SnapshotId=snap-0db2cf683925d191f} DeviceName=/dev/xvdf,Ebs={VolumeSize=100} + +Output:: + + { + "ImageId": "ami-1a2b3c4d5eEXAMPLE" + } + +For more information, see `Amazon Machine Images (AMI) `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/register-instance-event-notification-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/register-instance-event-notification-attributes.rst new file mode 100644 index 000000000..db45a4dfa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/register-instance-event-notification-attributes.rst @@ -0,0 +1,38 @@ +**Example 1: To include all tags in event notifications** + +The following ``register-instance-event-notification-attributes`` example includes all tags in event notifications. :: + + aws ec2 register-instance-event-notification-attributes \ + --instance-tag-attribute IncludeAllTagsOfInstance=true + +Output:: + + { + "InstanceTagAttribute": { + "InstanceTagKeys": [], + "IncludeAllTagsOfInstance": true + } + } + +For more information, see `Scheduled events for your instances `__ in the *Amazon EC2 User Guide*. + +**Example 2: To include specific tags in event notifications** + +The following ``register-instance-event-notification-attributes`` example includes the specified tags in event notifications. You cannot specify tags if ``IncludeAllTagsOfInstance`` is ``true``. :: + + aws ec2 register-instance-event-notification-attributes \ + --instance-tag-attribute InstanceTagKeys="tag-key1","tag-key2" + +Output:: + + { + "InstanceTagAttribute": { + "InstanceTagKeys": [ + "tag-key1", + "tag-key2" + ], + "IncludeAllTagsOfInstance": false + } + } + +For more information, see `Scheduled events for your instances `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/register-transit-gateway-multicase-group-sources.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/register-transit-gateway-multicase-group-sources.rst new file mode 100644 index 000000000..3badaed51 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/register-transit-gateway-multicase-group-sources.rst @@ -0,0 +1,22 @@ +**To register a source with a transit gateway multicast group.** + +The following ``register-transit-gateway-multicast-group-sources`` example registers the specified network interface group source with a multicast group. :: + + aws ec2 register-transit-gateway-multicast-group-sources \ + --transit-gateway-multicast-domain-id tgw-mcast-domain-0c4905cef79d6e597 \ + --group-ip-address 224.0.1.0 \ + --network-interface-ids eni-07f290fc3c090cbae + +Output:: + + { + "RegisteredMulticastGroupSources": { + "TransitGatewayMulticastDomainId": "tgw-mcast-domain-0c4905cef79d6e597", + "RegisteredNetworkInterfaceIds": [ + "eni-07f290fc3c090cbae" + ], + "GroupIpAddress": "224.0.1.0" + } + } + +For more information, see `Register Sources with a Multicast Group `__ in the *AWS Transit Gateways User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/register-transit-gateway-multicast-group-members.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/register-transit-gateway-multicast-group-members.rst new file mode 100755 index 000000000..bbb74add7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/register-transit-gateway-multicast-group-members.rst @@ -0,0 +1,22 @@ +**To view the information about the transit gateway multicast domain associations** + +The following ``register-transit-gateway-multicast-group-members`` example returns the associations for the specified multicast domain. :: + + aws ec2 register-transit-gateway-multicast-group-members \ + --transit-gateway-multicast-domain-id tgw-mcast-domain-0c4905cef79d6e597 \ + --group-ip-address 224.0.1.0 \ + --network-interface-ids eni-0e246d32695012e81 + +Output:: + + { + "RegisteredMulticastGroupMembers": { + "TransitGatewayMulticastDomainId": "tgw-mcast-domain-0c4905cef79d6e597", + "RegisteredNetworkInterfaceIds": [ + "eni-0e246d32695012e81" + ], + "GroupIpAddress": "224.0.1.0" + } + } + +For more information, see `Multicast domains `__ in the *Transit Gateways User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/register-transit-gateway-multicast-group-sources.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/register-transit-gateway-multicast-group-sources.rst new file mode 100644 index 000000000..545087ca7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/register-transit-gateway-multicast-group-sources.rst @@ -0,0 +1,22 @@ +**To register a source with a transit gateway multicast group.** + +The following ``register-transit-gateway-multicast-group-sources`` example registers the specified network interface group source with a multicast group. :: + + aws ec2 register-transit-gateway-multicast-group-sources \ + --transit-gateway-multicast-domain-id tgw-mcast-domain-0c4905cef79d6e597 \ + --group-ip-address 224.0.1.0 \ + --network-interface-ids eni-07f290fc3c090cbae + +Output:: + + { + "RegisteredMulticastGroupSources": { + "TransitGatewayMulticastDomainId": "tgw-mcast-domain-0c4905cef79d6e597", + "RegisteredNetworkInterfaceIds": [ + "eni-07f290fc3c090cbae" + ], + "GroupIpAddress": "224.0.1.0" + } + } + +For more information, see `Multicast domains `__ in the *Transit Gateways Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reject-transit-gateway-peering-attachment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reject-transit-gateway-peering-attachment.rst new file mode 100644 index 000000000..53df9b548 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reject-transit-gateway-peering-attachment.rst @@ -0,0 +1,29 @@ +**To reject a transit gateway peering attachment** + +The following ``reject-transit-gateway-peering-attachment`` example rejects the specified transit gateway peering attachment request. The ``--region`` parameter specifies the Region that the accepter transit gateway is located in. :: + + aws ec2 reject-transit-gateway-peering-attachment \ + --transit-gateway-attachment-id tgw-attach-4455667788aabbccd \ + --region us-east-2 + +Output:: + + { + "TransitGatewayPeeringAttachment": { + "TransitGatewayAttachmentId": "tgw-attach-4455667788aabbccd", + "RequesterTgwInfo": { + "TransitGatewayId": "tgw-123abc05e04123abc", + "OwnerId": "123456789012", + "Region": "us-west-2" + }, + "AccepterTgwInfo": { + "TransitGatewayId": "tgw-11223344aabbcc112", + "OwnerId": "123456789012", + "Region": "us-east-2" + }, + "State": "rejecting", + "CreationTime": "2019-12-09T11:50:31.000Z" + } + } + +For more information, see `Transit Gateway Peering Attachments `__ in the *Transit Gateways Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reject-transit-gateway-vpc-attachment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reject-transit-gateway-vpc-attachment.rst new file mode 100644 index 000000000..5df209f82 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reject-transit-gateway-vpc-attachment.rst @@ -0,0 +1,28 @@ +**To reject a transit gateway VPC attachment** + +The following ``reject-transit-gateway-vpc-attachment`` example rejects the specified transit gateway VPC attachment. :: + + aws ec2 reject-transit-gateway-vpc-attachment \ + --transit-gateway-attachment-id tgw-attach-0a34fe6b4fEXAMPLE + +Output:: + + { + "TransitGatewayVpcAttachment": { + "TransitGatewayAttachmentId": "tgw-attach-0a34fe6b4fEXAMPLE", + "TransitGatewayId": "tgw-0262a0e521EXAMPLE", + "VpcId": "vpc-07e8ffd50fEXAMPLE", + "VpcOwnerId": "111122223333", + "State": "pending", + "SubnetIds": [ + "subnet-0752213d59EXAMPLE" + ], + "CreationTime": "2019-07-10T17:33:46.000Z", + "Options": { + "DnsSupport": "enable", + "Ipv6Support": "disable" + } + } + } + +For more information, see `Transit gateway attachments to a VPC `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reject-transit-gateway-vpc-attachments.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reject-transit-gateway-vpc-attachments.rst new file mode 100755 index 000000000..5df209f82 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reject-transit-gateway-vpc-attachments.rst @@ -0,0 +1,28 @@ +**To reject a transit gateway VPC attachment** + +The following ``reject-transit-gateway-vpc-attachment`` example rejects the specified transit gateway VPC attachment. :: + + aws ec2 reject-transit-gateway-vpc-attachment \ + --transit-gateway-attachment-id tgw-attach-0a34fe6b4fEXAMPLE + +Output:: + + { + "TransitGatewayVpcAttachment": { + "TransitGatewayAttachmentId": "tgw-attach-0a34fe6b4fEXAMPLE", + "TransitGatewayId": "tgw-0262a0e521EXAMPLE", + "VpcId": "vpc-07e8ffd50fEXAMPLE", + "VpcOwnerId": "111122223333", + "State": "pending", + "SubnetIds": [ + "subnet-0752213d59EXAMPLE" + ], + "CreationTime": "2019-07-10T17:33:46.000Z", + "Options": { + "DnsSupport": "enable", + "Ipv6Support": "disable" + } + } + } + +For more information, see `Transit gateway attachments to a VPC `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reject-vpc-endpoint-connections.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reject-vpc-endpoint-connections.rst new file mode 100644 index 000000000..f06e79941 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reject-vpc-endpoint-connections.rst @@ -0,0 +1,13 @@ +**To reject an interface endpoint connection request** + +This example rejects the specified endpoint connection request for the specified endpoint service. + +Command:: + + aws ec2 reject-vpc-endpoint-connections --service-id vpce-svc-03d5ebb7d9579a2b3 --vpc-endpoint-ids vpce-0c1308d7312217abc + +Output:: + + { + "Unsuccessful": [] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reject-vpc-peering-connection.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reject-vpc-peering-connection.rst new file mode 100644 index 000000000..55e1b9d16 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reject-vpc-peering-connection.rst @@ -0,0 +1,13 @@ +**To reject a VPC peering connection** + +This example rejects the specified VPC peering connection request. + +Command:: + + aws ec2 reject-vpc-peering-connection --vpc-peering-connection-id pcx-1a2b3c4d + +Output:: + + { + "Return": true + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/release-address.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/release-address.rst new file mode 100644 index 000000000..894e4085c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/release-address.rst @@ -0,0 +1,15 @@ +**To release an Elastic IP addresses for EC2-Classic** + +This example releases an Elastic IP address for use with instances in EC2-Classic. If the command succeeds, no output is returned. + +Command:: + + aws ec2 release-address --public-ip 198.51.100.0 + +**To release an Elastic IP address for EC2-VPC** + +This example releases an Elastic IP address for use with instances in a VPC. If the command succeeds, no output is returned. + +Command:: + + aws ec2 release-address --allocation-id eipalloc-64d5890a diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/release-hosts.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/release-hosts.rst new file mode 100644 index 000000000..5a3829c9a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/release-hosts.rst @@ -0,0 +1,17 @@ +**To release a Dedicated host from your account** + +To release a Dedicated host from your account. Instances that are on the host must be stopped or terminated before the host can be released. + +Command:: + + aws ec2 release-hosts --host-id=h-0029d6e3cacf1b3da + +Output:: + + { + "Successful": [ + "h-0029d6e3cacf1b3da" + ], + "Unsuccessful": [] + + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/release-ipam-pool-allocation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/release-ipam-pool-allocation.rst new file mode 100644 index 000000000..bac530e11 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/release-ipam-pool-allocation.rst @@ -0,0 +1,27 @@ +**To release an IPAM pool allocation** + +In this example, you're an IPAM delegated admin who tried to delete an IPAM pool but received an error that you cannot delete the pool while the pool has allocations. You are using this command to release a pool allocation. + +Note the following: + +* You can only use this command for custom allocations. To remove an allocation for a resource without deleting the resource, set its monitored state to false using `modify-ipam-resource-cidr `__. +* To complete this request, you'll need the IPAM pool ID, which you can get with `describe-ipam-pools `__. You'll also need the allocation ID, which you can get with `get-ipam-pool-allocations `__. +* If you do not want to remove allocations one by one, you can use the ``--cascade option`` when you delete an IPAM pool to automatically release any allocations in the pool before deleting it. +* There are a number of prerequisites before running this command. For more information, see `Release an allocation `__ in the *Amazon VPC IPAM User Guide*. +* The ``--region`` in which you run this command must be the locale of the IPAM pool where the allocation is. + +The following ``release-ipam-pool-allocation`` example releases an IPAM pool allocation. :: + + aws ec2 release-ipam-pool-allocation \ + --ipam-pool-id ipam-pool-07bdd12d7c94e4693 \ + --cidr 10.0.0.0/23 \ + --ipam-pool-allocation-id ipam-pool-alloc-0e66a1f730da54791b99465b79e7d1e89 \ + --region us-west-1 + +Output:: + + { + "Success": true + } + +Once you release an allocation, you may want to run `delete-ipam-pool `__. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/replace-iam-instance-profile-association.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/replace-iam-instance-profile-association.rst new file mode 100644 index 000000000..b0c746640 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/replace-iam-instance-profile-association.rst @@ -0,0 +1,21 @@ +**To replace an IAM instance profile for an instance** + +This example replaces the IAM instance profile represented by the association ``iip-assoc-060bae234aac2e7fa`` with the IAM instance profile named ``AdminRole``. :: + + aws ec2 replace-iam-instance-profile-association \ + --iam-instance-profile Name=AdminRole \ + --association-id iip-assoc-060bae234aac2e7fa + +Output:: + + { + "IamInstanceProfileAssociation": { + "InstanceId": "i-087711ddaf98f9489", + "State": "associating", + "AssociationId": "iip-assoc-0b215292fab192820", + "IamInstanceProfile": { + "Id": "AIPAJLNLDX3AMYZNWYYAY", + "Arn": "arn:aws:iam::123456789012:instance-profile/AdminRole" + } + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/replace-network-acl-association.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/replace-network-acl-association.rst new file mode 100644 index 000000000..acbf722b0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/replace-network-acl-association.rst @@ -0,0 +1,13 @@ +**To replace the network ACL associated with a subnet** + +This example associates the specified network ACL with the subnet for the specified network ACL association. + +Command:: + + aws ec2 replace-network-acl-association --association-id aclassoc-e5b95c8c --network-acl-id acl-5fb85d36 + +Output:: + + { + "NewAssociationId": "aclassoc-3999875b" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/replace-network-acl-entry.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/replace-network-acl-entry.rst new file mode 100644 index 000000000..b1999fad9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/replace-network-acl-entry.rst @@ -0,0 +1,7 @@ +**To replace a network ACL entry** + +This example replaces an entry for the specified network ACL. The new rule 100 allows ingress traffic from 203.0.113.12/24 on UDP port 53 (DNS) into any associated subnet. + +Command:: + + aws ec2 replace-network-acl-entry --network-acl-id acl-5fb85d36 --ingress --rule-number 100 --protocol udp --port-range From=53,To=53 --cidr-block 203.0.113.12/24 --rule-action allow diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/replace-route-table-association.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/replace-route-table-association.rst new file mode 100644 index 000000000..1b2623f7c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/replace-route-table-association.rst @@ -0,0 +1,13 @@ +**To replace the route table associated with a subnet** + +This example associates the specified route table with the subnet for the specified route table association. + +Command:: + + aws ec2 replace-route-table-association --association-id rtbassoc-781d0d1a --route-table-id rtb-22574640 + +Output:: + + { + "NewAssociationId": "rtbassoc-3a1f0f58" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/replace-route.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/replace-route.rst new file mode 100644 index 000000000..a6f348db8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/replace-route.rst @@ -0,0 +1,7 @@ +**To replace a route** + +This example replaces the specified route in the specified route table. The new route matches the specified CIDR and sends the traffic to the specified virtual private gateway. If the command succeeds, no output is returned. + +Command:: + + aws ec2 replace-route --route-table-id rtb-22574640 --destination-cidr-block 10.0.0.0/16 --gateway-id vgw-9a4cacf3 \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/replace-transit-gateway-route.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/replace-transit-gateway-route.rst new file mode 100644 index 000000000..6a1a9783e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/replace-transit-gateway-route.rst @@ -0,0 +1,27 @@ +**To replace the specified route in the specified transit gateway route table** + +The following ``replace-transit-gateway-route`` example replaces the route in the specified transit gateway route table. :: + + aws ec2 replace-transit-gateway-route \ + --destination-cidr-block 10.0.2.0/24 \ + --transit-gateway-attachment-id tgw-attach-09b52ccdb5EXAMPLE \ + --transit-gateway-route-table-id tgw-rtb-0a823edbdeEXAMPLE + +Output:: + + { + "Route": { + "DestinationCidrBlock": "10.0.2.0/24", + "TransitGatewayAttachments": [ + { + "ResourceId": "vpc-4EXAMPLE", + "TransitGatewayAttachmentId": "tgw-attach-09b52ccdb5EXAMPLE", + "ResourceType": "vpc" + } + ], + "Type": "static", + "State": "active" + } + } + +For more information, see `Transit gateway route tables `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/report-instance-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/report-instance-status.rst new file mode 100644 index 000000000..f847fad22 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/report-instance-status.rst @@ -0,0 +1,7 @@ +**To report status feedback for an instance** + +This example command reports status feedback for the specified instance. + +Command:: + + aws ec2 report-instance-status --instances i-1234567890abcdef0 --status impaired --reason-codes unresponsive diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/request-spot-fleet.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/request-spot-fleet.rst new file mode 100644 index 000000000..2efeacf82 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/request-spot-fleet.rst @@ -0,0 +1,157 @@ +**To request a Spot fleet in the subnet with the lowest price** + +This example command creates a Spot fleet request with two launch specifications that differ only by subnet. +The Spot fleet launches the instances in the specified subnet with the lowest price. +If the instances are launched in a default VPC, they receive a public IP address by default. +If the instances are launched in a nondefault VPC, they do not receive a public IP address by default. + +Note that you can't specify different subnets from the same Availability Zone in a Spot fleet request. + +Command:: + + aws ec2 request-spot-fleet --spot-fleet-request-config file://config.json + +Config.json:: + + { + "SpotPrice": "0.04", + "TargetCapacity": 2, + "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", + "LaunchSpecifications": [ + { + "ImageId": "ami-1a2b3c4d", + "KeyName": "my-key-pair", + "SecurityGroups": [ + { + "GroupId": "sg-1a2b3c4d" + } + ], + "InstanceType": "m3.medium", + "SubnetId": "subnet-1a2b3c4d, subnet-3c4d5e6f", + "IamInstanceProfile": { + "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" + } + } + ] + } + +Output:: + + { + "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" + } + + +**To request a Spot fleet in the Availability Zone with the lowest price** + +This example command creates a Spot fleet request with two launch specifications that differ only by Availability Zone. +The Spot fleet launches the instances in the specified Availability Zone with the lowest price. +If your account supports EC2-VPC only, Amazon EC2 launches the Spot instances in the default subnet of the Availability Zone. +If your account supports EC2-Classic, Amazon EC2 launches the instances in EC2-Classic in the Availability Zone. + +Command:: + + aws ec2 request-spot-fleet --spot-fleet-request-config file://config.json + +Config.json:: + + { + "SpotPrice": "0.04", + "TargetCapacity": 2, + "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", + "LaunchSpecifications": [ + { + "ImageId": "ami-1a2b3c4d", + "KeyName": "my-key-pair", + "SecurityGroups": [ + { + "GroupId": "sg-1a2b3c4d" + } + ], + "InstanceType": "m3.medium", + "Placement": { + "AvailabilityZone": "us-west-2a, us-west-2b" + }, + "IamInstanceProfile": { + "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" + } + } + ] + } + +**To launch Spot instances in a subnet and assign them public IP addresses** + +This example command assigns public addresses to instances launched in a nondefault VPC. +Note that when you specify a network interface, you must include the subnet ID and security group ID +using the network interface. + +Command:: + + aws ec2 request-spot-fleet --spot-fleet-request-config file://config.json + +Config.json:: + + { + "SpotPrice": "0.04", + "TargetCapacity": 2, + "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", + "LaunchSpecifications": [ + { + "ImageId": "ami-1a2b3c4d", + "KeyName": "my-key-pair", + "InstanceType": "m3.medium", + "NetworkInterfaces": [ + { + "DeviceIndex": 0, + "SubnetId": "subnet-1a2b3c4d", + "Groups": [ "sg-1a2b3c4d" ], + "AssociatePublicIpAddress": true + } + ], + "IamInstanceProfile": { + "Arn": "arn:aws:iam::880185128111:instance-profile/my-iam-role" + } + } + ] + } + +**To request a Spot fleet using the diversified allocation strategy** + +This example command creates a Spot fleet request that launches 30 instances using the diversified allocation strategy. +The launch specifications differ by instance type. The Spot fleet distributes the instances +across the launch specifications such that there are 10 instances of each type. + +Command:: + + aws ec2 request-spot-fleet --spot-fleet-request-config file://config.json + +Config.json:: + + { + "SpotPrice": "0.70", + "TargetCapacity": 30, + "AllocationStrategy": "diversified", + "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", + "LaunchSpecifications": [ + { + "ImageId": "ami-1a2b3c4d", + "InstanceType": "c4.2xlarge", + "SubnetId": "subnet-1a2b3c4d" + }, + { + "ImageId": "ami-1a2b3c4d", + "InstanceType": "m3.2xlarge", + "SubnetId": "subnet-1a2b3c4d" + }, + { + "ImageId": "ami-1a2b3c4d", + "InstanceType": "r3.2xlarge", + "SubnetId": "subnet-1a2b3c4d" + } + ] + } + +For more information, see `Spot Fleet Requests`_ in the *Amazon Elastic Compute Cloud User Guide*. + +.. _`Spot Fleet Requests`: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/request-spot-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/request-spot-instances.rst new file mode 100644 index 000000000..41c16457b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/request-spot-instances.rst @@ -0,0 +1,153 @@ +**To request Spot Instances** + +This example command creates a one-time Spot Instance request for five instances in the specified Availability Zone. +If your account supports EC2-VPC only, Amazon EC2 launches the instances in the default subnet of the specified Availability Zone. +If your account supports EC2-Classic, Amazon EC2 launches the instances in EC2-Classic in the specified Availability Zone. + +Command:: + + aws ec2 request-spot-instances --spot-price "0.03" --instance-count 5 --type "one-time" --launch-specification file://specification.json + +Specification.json:: + + { + "ImageId": "ami-1a2b3c4d", + "KeyName": "my-key-pair", + "SecurityGroupIds": [ "sg-1a2b3c4d" ], + "InstanceType": "m3.medium", + "Placement": { + "AvailabilityZone": "us-west-2a" + }, + "IamInstanceProfile": { + "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" + } + } + +Output:: + + { + "SpotInstanceRequests": [ + { + "Status": { + "UpdateTime": "2014-03-25T20:54:21.000Z", + "Code": "pending-evaluation", + "Message": "Your Spot request has been submitted for review, and is pending evaluation." + }, + "ProductDescription": "Linux/UNIX", + "SpotInstanceRequestId": "sir-df6f405d", + "State": "open", + "LaunchSpecification": { + "Placement": { + "AvailabilityZone": "us-west-2a" + }, + "ImageId": "ami-1a2b3c4d", + "KeyName": "my-key-pair", + "SecurityGroups": [ + { + "GroupName": "my-security-group", + "GroupId": "sg-1a2b3c4d" + } + ], + "Monitoring": { + "Enabled": false + }, + "IamInstanceProfile": { + "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" + }, + "InstanceType": "m3.medium" + }, + "Type": "one-time", + "CreateTime": "2014-03-25T20:54:20.000Z", + "SpotPrice": "0.050000" + }, + ... + ] + } + +This example command creates a one-time Spot Instance request for five instances in the specified subnet. +Amazon EC2 launches the instances in the specified subnet. If the VPC is a nondefault VPC, the instances +do not receive a public IP address by default. + +Command:: + + aws ec2 request-spot-instances --spot-price "0.050" --instance-count 5 --type "one-time" --launch-specification file://specification.json + +Specification.json:: + + { + "ImageId": "ami-1a2b3c4d", + "SecurityGroupIds": [ "sg-1a2b3c4d" ], + "InstanceType": "m3.medium", + "SubnetId": "subnet-1a2b3c4d", + "IamInstanceProfile": { + "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" + } + } + +Output:: + + { + "SpotInstanceRequests": [ + { + "Status": { + "UpdateTime": "2014-03-25T22:21:58.000Z", + "Code": "pending-evaluation", + "Message": "Your Spot request has been submitted for review, and is pending evaluation." + }, + "ProductDescription": "Linux/UNIX", + "SpotInstanceRequestId": "sir-df6f405d", + "State": "open", + "LaunchSpecification": { + "Placement": { + "AvailabilityZone": "us-west-2a" + } + "ImageId": "ami-1a2b3c4d" + "SecurityGroups": [ + { + "GroupName": "my-security-group", + "GroupID": "sg-1a2b3c4d" + } + ] + "SubnetId": "subnet-1a2b3c4d", + "Monitoring": { + "Enabled": false + }, + "IamInstanceProfile": { + "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" + }, + "InstanceType": "m3.medium", + }, + "Type": "one-time", + "CreateTime": "2014-03-25T22:21:58.000Z", + "SpotPrice": "0.050000" + }, + ... + ] + } + +This example assigns a public IP address to the Spot Instances that you launch in a nondefault VPC. +Note that when you specify a network interface, you must include the subnet ID and security group ID +using the network interface. + +Command:: + + aws ec2 request-spot-instances --spot-price "0.050" --instance-count 1 --type "one-time" --launch-specification file://specification.json + +Specification.json:: + + { + "ImageId": "ami-1a2b3c4d", + "KeyName": "my-key-pair", + "InstanceType": "m3.medium", + "NetworkInterfaces": [ + { + "DeviceIndex": 0, + "SubnetId": "subnet-1a2b3c4d", + "Groups": [ "sg-1a2b3c4d" ], + "AssociatePublicIpAddress": true + } + ], + "IamInstanceProfile": { + "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reset-address-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reset-address-attribute.rst new file mode 100644 index 000000000..b45b6db3a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reset-address-attribute.rst @@ -0,0 +1,32 @@ +**To reset the domain name attribute associated with an elastic IP address** + +The following ``reset-address-attribute`` examples reset the domain name attribute of an elastic IP address. + +Linux:: + + aws ec2 reset-address-attribute \ + --allocation-id eipalloc-abcdef01234567890 \ + --attribute domain-name + +Windows:: + + aws ec2 reset-address-attribute ^ + --allocation-id eipalloc-abcdef01234567890 ^ + --attribute domain-name + +Output:: + + { + "Addresses": [ + { + "PublicIp": "192.0.2.0", + "AllocationId": "eipalloc-abcdef01234567890", + "PtrRecord": "example.com." + "PtrRecordUpdate": { + "Value": "example.net.", + "Status": "PENDING" + } + ] + } + +To monitor the pending change, see `describe-addresses-attribute `__ in the *AWS CLI Command Reference*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reset-ebs-default-kms-key-id.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reset-ebs-default-kms-key-id.rst new file mode 100644 index 000000000..bd612325f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reset-ebs-default-kms-key-id.rst @@ -0,0 +1,11 @@ +**To reset your default CMK for EBS encryption** + +The following ``reset-ebs-default-kms-key-id`` example resets the default CMK for EBS encryption for your AWS account in the current Region. :: + + aws ec2 reset-ebs-default-kms-key-id + +Output:: + + { + "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/8c5b2c63-b9bc-45a3-a87a-5513eEXAMPLE" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reset-fpga-image-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reset-fpga-image-attribute.rst new file mode 100644 index 000000000..cd4a3125b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reset-fpga-image-attribute.rst @@ -0,0 +1,13 @@ +**To reset the attributes of an Amazon FPGA image** + +This example resets the load permissions for the specified AFI. + +Command:: + + aws ec2 reset-fpga-image-attribute --fpga-image-id afi-0d123e123bfc85abc --attribute loadPermission + +Output:: + + { + "Return": true + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reset-image-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reset-image-attribute.rst new file mode 100644 index 000000000..ce4caf6b0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reset-image-attribute.rst @@ -0,0 +1,7 @@ +**To reset the launchPermission attribute** + +This example resets the ``launchPermission`` attribute for the specified AMI to its default value. By default, AMIs are private. If the command succeeds, no output is returned. + +Command:: + + aws ec2 reset-image-attribute --image-id ami-5731123e --attribute launchPermission diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reset-instance-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reset-instance-attribute.rst new file mode 100644 index 000000000..982e6fc07 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reset-instance-attribute.rst @@ -0,0 +1,23 @@ +**To reset the sourceDestCheck attribute** + +This example resets the ``sourceDestCheck`` attribute of the specified instance. The instance must be in a VPC. If the command succeeds, no output is returned. + +Command:: + + aws ec2 reset-instance-attribute --instance-id i-1234567890abcdef0 --attribute sourceDestCheck + +**To reset the kernel attribute** + +This example resets the ``kernel`` attribute of the specified instance. The instance must be in the ``stopped`` state. If the command succeeds, no output is returned. + +Command:: + + aws ec2 reset-instance-attribute --instance-id i-1234567890abcdef0 --attribute kernel + +**To reset the ramdisk attribute** + +This example resets the ``ramdisk`` attribute of the specified instance. The instance must be in the ``stopped`` state. If the command succeeds, no output is returned. + +Command:: + + aws ec2 reset-instance-attribute --instance-id i-1234567890abcdef0 --attribute ramdisk diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reset-network-interface-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reset-network-interface-attribute.rst new file mode 100755 index 000000000..79e952efd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reset-network-interface-attribute.rst @@ -0,0 +1,9 @@ +**To reset a network interface attribute** + +The following ``reset-network-interface-attribute`` example resets the value of the source/destination checking attribute to ``true``. :: + + aws ec2 reset-network-interface-attribute \ + --network-interface-id eni-686ea200 \ + --source-dest-check + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reset-snapshot-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reset-snapshot-attribute.rst new file mode 100644 index 000000000..1f57f17a0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/reset-snapshot-attribute.rst @@ -0,0 +1,8 @@ +**To reset a snapshot attribute** + +This example resets the create volume permissions for snapshot ``snap-1234567890abcdef0``. If the command succeeds, no output is returned. + +Command:: + + aws ec2 reset-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/restore-address-to-classic.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/restore-address-to-classic.rst new file mode 100644 index 000000000..50b147642 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/restore-address-to-classic.rst @@ -0,0 +1,14 @@ +**To restore an address to EC2-Classic** + +This example restores Elastic IP address 198.51.100.0 to the EC2-Classic platform. + +Command:: + + aws ec2 restore-address-to-classic --public-ip 198.51.100.0 + +Output:: + + { + "Status": "MoveInProgress", + "PublicIp": "198.51.100.0" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/restore-image-from-recycle-bin.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/restore-image-from-recycle-bin.rst new file mode 100644 index 000000000..97f5b47b7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/restore-image-from-recycle-bin.rst @@ -0,0 +1,14 @@ +**To restore an image from the Recycle Bin** + +The following ``restore-image-from-recycle-bin`` example restores AMI ami-0111222333444abcd from the Recycle Bin. :: + + aws ec2 restore-image-from-recycle-bin \ + --image-id ami-0111222333444abcd + +Output:: + + { + "Return": true + } + +For more information, see `Recover deleted AMIs from the Recycle Bin `__ in the *Amazon EBS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/restore-managed-prefix-list-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/restore-managed-prefix-list-version.rst new file mode 100644 index 000000000..c0beacd47 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/restore-managed-prefix-list-version.rst @@ -0,0 +1,25 @@ +us-west-2**To restore a prefix list version** + +The following ``restore-managed-prefix-list-version`` restores the entries from version 1 of the specified prefix list. :: + + aws ec2 restore-managed-prefix-list-version \ + --prefix-list-id pl-0123456abcabcabc1 \ + --current-version 2 \ + --previous-version 1 + +Output:: + + { + "PrefixList": { + "PrefixListId": "pl-0123456abcabcabc1", + "AddressFamily": "IPv4", + "State": "restore-in-progress", + "PrefixListArn": "arn:aws:ec2:us-west-2:123456789012:prefix-list/pl-0123456abcabcabc1", + "PrefixListName": "vpc-cidrs", + "MaxEntries": 10, + "Version": 2, + "OwnerId": "123456789012" + } + } + +For more information, see `Managed prefix lists `__ in the *Amazon VPC User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/restore-snapshot-from-recycle-bin.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/restore-snapshot-from-recycle-bin.rst new file mode 100644 index 000000000..89970d86c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/restore-snapshot-from-recycle-bin.rst @@ -0,0 +1,10 @@ +**To restore snapshots from the Recycle Bin** + +The following ``restore-snapshot-from-recycle-bin`` example restores a snapshot from the Recycle Bin. When you restore a snapshot from the Recycle Bin, the snapshot is immediately available for use, and it is removed from the Recycle Bin. You can use a restored snapshot in the same way that you use any other snapshot in your account. :: + + aws ec2 restore-snapshot-from-recycle-bin \ + --snapshot-id snap-01234567890abcdef + +This command produces no output. + +For more information about Recycle Bin, see `Recover deleted snapshots from the Recycle Bin `__ in the *Amazon EBS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/restore-snapshot-tier.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/restore-snapshot-tier.rst new file mode 100644 index 000000000..f0c6cd206 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/restore-snapshot-tier.rst @@ -0,0 +1,69 @@ +**Example 1: To permanently restore an archived snapshot** + +The following ``restore-snapshot-tier`` example permanently restores the specified snapshot. Specify the ``--snapshot-id`` and include the ``permanent-restore`` option. :: + + aws ec2 restore-snapshot-tier \ + --snapshot-id snap-01234567890abcedf \ + --permanent-restore + +Output:: + + { + "SnapshotId": "snap-01234567890abcedf", + "IsPermanentRestore": true + } + +For more information about snapshot archiving, see `Archive Amazon EBS snapshots `__ in the *Amazon EBS User Guide*. + +**Example 2: To temporarily restore an archived snapshot** + +The following ``restore-snapshot-tier`` example temporarily restores the specified snapshot. Omit the ``--permanent-restore`` option. Specify the ``--snapshot-id`` and, for ``temporary-restore-days``, specify the number of days for which to restore the snapshot. ``temporary-restore-days`` must be specified in days. The allowed range is ``1`` to ``180``. If you do not specify a value, it defaults to ``1`` day. :: + + aws ec2 restore-snapshot-tier \ + --snapshot-id snap-01234567890abcedf \ + --temporary-restore-days 5 + +Output:: + + { + "SnapshotId": "snap-01234567890abcedf", + "RestoreDuration": 5, + "IsPermanentRestore": false + } + +For more information about snapshot archiving, see `Archive Amazon EBS snapshots `__ in the *Amazon EBS User Guide*. + +**Example 3: To modify the restore period** + +The following ``restore-snapshot-tier`` example changes the restore period for the specified snapshot to ``10`` days. :: + + aws ec2 restore-snapshot-tier \ + --snapshot-id snap-01234567890abcedf + --temporary-restore-days 10 + +Output:: + + { + "SnapshotId": "snap-01234567890abcedf", + "RestoreDuration": 10, + "IsPermanentRestore": false + } + +For more information about snapshot archiving, see `Archive Amazon EBS snapshots `__ in the *Amazon EBS User Guide*. + +**Example 4: To modify the restore type** + +The following ``restore-snapshot-tier`` example changes the restore type for the specified snapshot from temporary to permanent. :: + + aws ec2 restore-snapshot-tier \ + --snapshot-id snap-01234567890abcedf + --permanent-restore + +Output:: + + { + "SnapshotId": "snap-01234567890abcedf", + "IsPermanentRestore": true + } + +For more information about snapshot archiving, see `Archive Amazon EBS snapshots `__ in the *Amazon EBS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/revoke-client-vpn-ingress.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/revoke-client-vpn-ingress.rst new file mode 100644 index 000000000..9fb9376db --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/revoke-client-vpn-ingress.rst @@ -0,0 +1,17 @@ +**To revoke an authorization rule for a Client VPN endpoint** + +The following ``revoke-client-vpn-ingress`` example revokes a rule for internet access (``0.0.0.0/0``) for all groups. :: + + aws ec2 revoke-client-vpn-ingress \ + --client-vpn-endpoint-id cvpn-endpoint-123456789123abcde \ + --target-network-cidr 0.0.0.0/0 --revoke-all-groups + +Output:: + + { + "Status": { + "Code": "revoking" + } + } + +For more information, see `Authorization Rules `__ in the *AWS Client VPN Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/revoke-security-group-egress.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/revoke-security-group-egress.rst new file mode 100644 index 000000000..1a8fe4733 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/revoke-security-group-egress.rst @@ -0,0 +1,23 @@ +**Example 1: To remove the rule that allows outbound traffic to a specific address range** + +The following ``revoke-security-group-egress`` example command removes the rule that grants access to the specified address ranges on TCP port 80. :: + + aws ec2 revoke-security-group-egress \ + --group-id sg-026c12253ce15eff7 \ + --ip-permissions [{IpProtocol=tcp,FromPort=80,ToPort=80,IpRanges=[{CidrIp=10.0.0.0/16}] + +This command produces no output. + +For more information, see `Security groups `__ in the *Amazon EC2 User Guide*. + +**Example 2: To remove the rule that allows outbound traffic to a specific security group** + +The following ``revoke-security-group-egress`` example command removes the rule that grants access to the specified security group on TCP port 80. :: + + aws ec2 revoke-security-group-egress \ + --group-id sg-026c12253ce15eff7 \ + --ip-permissions '[{"IpProtocol": "tcp", "FromPort": 443, "ToPort": 443,"UserIdGroupPairs": [{"GroupId": "sg-06df23a01ff2df86d"}]}]' + +This command produces no output. + +For more information, see `Security groups `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/revoke-security-group-ingress.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/revoke-security-group-ingress.rst new file mode 100644 index 000000000..557818e3d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/revoke-security-group-ingress.rst @@ -0,0 +1,25 @@ +**Example 1: To remove a rule from a security group** + +The following ``revoke-security-group-ingress`` example removes TCP port 22 access for the ``203.0.113.0/24`` address range from the specified security group for a default VPC. :: + + aws ec2 revoke-security-group-ingress \ + --group-name mySecurityGroup + --protocol tcp \ + --port 22 \ + --cidr 203.0.113.0/24 + +This command produces no output if it succeeds. + +For more information, see `Security groups `__ in the *Amazon EC2 User Guide*. + +**Example 2: To remove a rule using the IP permissions set** + +The following ``revoke-security-group-ingress`` example uses the ``ip-permissions`` parameter to remove an inbound rule that allows the ICMP message ``Destination Unreachable: Fragmentation Needed and Don't Fragment was Set`` (Type 3, Code 4). :: + + aws ec2 revoke-security-group-ingress \ + --group-id sg-026c12253ce15eff7 \ + --ip-permissions IpProtocol=icmp,FromPort=3,ToPort=4,IpRanges=[{CidrIp=0.0.0.0/0}] + +This command produces no output if it succeeds. + +For more information, see `Security groups `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/run-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/run-instances.rst new file mode 100644 index 000000000..aab100327 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/run-instances.rst @@ -0,0 +1,212 @@ +**Example 1: To launch an instance into a default subnet** + +The following ``run-instances`` example launches a single instance of type ``t2.micro`` into the default subnet for the current Region and associates it with the default subnet for the default VPC for the Region. The key pair is optional if you do not plan to connect to your instance using SSH (Linux) or RDP (Windows). :: + + aws ec2 run-instances \ + --image-id ami-0abcdef1234567890 \ + --instance-type t2.micro \ + --key-name MyKeyPair + +Output:: + + { + "Instances": [ + { + "AmiLaunchIndex": 0, + "ImageId": "ami-0abcdef1234567890", + "InstanceId": "i-1231231230abcdef0", + "InstanceType": "t2.micro", + "KeyName": "MyKeyPair", + "LaunchTime": "2018-05-10T08:05:20.000Z", + "Monitoring": { + "State": "disabled" + }, + "Placement": { + "AvailabilityZone": "us-east-2a", + "GroupName": "", + "Tenancy": "default" + }, + "PrivateDnsName": "ip-10-0-0-157.us-east-2.compute.internal", + "PrivateIpAddress": "10.0.0.157", + "ProductCodes": [], + "PublicDnsName": "", + "State": { + "Code": 0, + "Name": "pending" + }, + "StateTransitionReason": "", + "SubnetId": "subnet-04a636d18e83cfacb", + "VpcId": "vpc-1234567890abcdef0", + "Architecture": "x86_64", + "BlockDeviceMappings": [], + "ClientToken": "", + "EbsOptimized": false, + "Hypervisor": "xen", + "NetworkInterfaces": [ + { + "Attachment": { + "AttachTime": "2018-05-10T08:05:20.000Z", + "AttachmentId": "eni-attach-0e325c07e928a0405", + "DeleteOnTermination": true, + "DeviceIndex": 0, + "Status": "attaching" + }, + "Description": "", + "Groups": [ + { + "GroupName": "MySecurityGroup", + "GroupId": "sg-0598c7d356eba48d7" + } + ], + "Ipv6Addresses": [], + "MacAddress": "0a:ab:58:e0:67:e2", + "NetworkInterfaceId": "eni-0c0a29997760baee7", + "OwnerId": "123456789012", + "PrivateDnsName": "ip-10-0-0-157.us-east-2.compute.internal", + "PrivateIpAddress": "10.0.0.157", + "PrivateIpAddresses": [ + { + "Primary": true, + "PrivateDnsName": "ip-10-0-0-157.us-east-2.compute.internal", + "PrivateIpAddress": "10.0.0.157" + } + ], + "SourceDestCheck": true, + "Status": "in-use", + "SubnetId": "subnet-04a636d18e83cfacb", + "VpcId": "vpc-1234567890abcdef0", + "InterfaceType": "interface" + } + ], + "RootDeviceName": "/dev/xvda", + "RootDeviceType": "ebs", + "SecurityGroups": [ + { + "GroupName": "MySecurityGroup", + "GroupId": "sg-0598c7d356eba48d7" + } + ], + "SourceDestCheck": true, + "StateReason": { + "Code": "pending", + "Message": "pending" + }, + "Tags": [], + "VirtualizationType": "hvm", + "CpuOptions": { + "CoreCount": 1, + "ThreadsPerCore": 1 + }, + "CapacityReservationSpecification": { + "CapacityReservationPreference": "open" + }, + "MetadataOptions": { + "State": "pending", + "HttpTokens": "optional", + "HttpPutResponseHopLimit": 1, + "HttpEndpoint": "enabled" + } + } + ], + "OwnerId": "123456789012", + "ReservationId": "r-02a3f596d91211712" + } + +**Example 2: To launch an instance into a non-default subnet and add a public IP address** + +The following ``run-instances`` example requests a public IP address for an instance that you're launching into a nondefault subnet. The instance is associated with the specified security group. :: + + aws ec2 run-instances \ + --image-id ami-0abcdef1234567890 \ + --instance-type t2.micro \ + --subnet-id subnet-08fc749671b2d077c \ + --security-group-ids sg-0b0384b66d7d692f9 \ + --associate-public-ip-address \ + --key-name MyKeyPair + +For an example of the output for ``run-instances``, see Example 1. + +**Example 3: To launch an instance with additional volumes** + +The following ``run-instances`` example uses a block device mapping, specified in mapping.json, to attach additional volumes at launch. A block device mapping can specify EBS volumes, instance store volumes, or both EBS volumes and instance store volumes. :: + + aws ec2 run-instances \ + --image-id ami-0abcdef1234567890 \ + --instance-type t2.micro \ + --subnet-id subnet-08fc749671b2d077c \ + --security-group-ids sg-0b0384b66d7d692f9 \ + --key-name MyKeyPair \ + --block-device-mappings file://mapping.json + +Contents of ``mapping.json``. This example adds ``/dev/sdh`` an empty EBS volume with a size of 100 GiB. :: + + [ + { + "DeviceName": "/dev/sdh", + "Ebs": { + "VolumeSize": 100 + } + } + ] + +Contents of ``mapping.json``. This example adds ``ephemeral1`` as an instance store volume. :: + + [ + { + "DeviceName": "/dev/sdc", + "VirtualName": "ephemeral1" + } + ] + +For an example of the output for ``run-instances``, see Example 1. + +For more information about block device mappings, see `Block device mapping `__ in the *Amazon EC2 User Guide*. + +**Example 4: To launch an instance and add tags on creation** + +The following ``run-instances`` example adds a tag with a key of ``webserver`` and value of ``production`` to the instance. The command also applies a tag with a key of ``cost-center`` and a value of ``cc123`` to any EBS volume that's created (in this case, the root volume). :: + + aws ec2 run-instances \ + --image-id ami-0abcdef1234567890 \ + --instance-type t2.micro \ + --count 1 \ + --subnet-id subnet-08fc749671b2d077c \ + --key-name MyKeyPair \ + --security-group-ids sg-0b0384b66d7d692f9 \ + --tag-specifications 'ResourceType=instance,Tags=[{Key=webserver,Value=production}]' 'ResourceType=volume,Tags=[{Key=cost-center,Value=cc123}]' + +For an example of the output for ``run-instances``, see Example 1. + +**Example 5: To launch an instance with user data** + +The following ``run-instances`` example passes user data in a file called ``my_script.txt`` that contains a configuration script for your instance. The script runs at launch. :: + + aws ec2 run-instances \ + --image-id ami-0abcdef1234567890 \ + --instance-type t2.micro \ + --count 1 \ + --subnet-id subnet-08fc749671b2d077c \ + --key-name MyKeyPair \ + --security-group-ids sg-0b0384b66d7d692f9 \ + --user-data file://my_script.txt + +For an example of the output for ``run-instances``, see Example 1. + +For more information about instance user data, see `Working with instance user data `__ in the *Amazon EC2 User Guide*. + +**Example 6: To launch a burstable performance instance** + +The following ``run-instances`` example launches a t2.micro instance with the ``unlimited`` credit option. When you launch a T2 instance, if you do not specify ``--credit-specification``, the default is the ``standard`` credit option. When you launch a T3 instance, the default is the ``unlimited`` credit option. :: + + aws ec2 run-instances \ + --image-id ami-0abcdef1234567890 \ + --instance-type t2.micro \ + --count 1 \ + --subnet-id subnet-08fc749671b2d077c \ + --key-name MyKeyPair \ + --security-group-ids sg-0b0384b66d7d692f9 \ + --credit-specification CpuCredits=unlimited + +For an example of the output for ``run-instances``, see Example 1. + +For more information about burstable performance instances, see `Burstable performance instances `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/run-scheduled-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/run-scheduled-instances.rst new file mode 100644 index 000000000..92f2c9afe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/run-scheduled-instances.rst @@ -0,0 +1,63 @@ +**To launch a Scheduled Instance** + +This example launches the specified Scheduled Instance in a VPC. + +Command:: + + aws ec2 run-scheduled-instances --scheduled-instance-id sci-1234-1234-1234-1234-123456789012 --instance-count 1 --launch-specification file://launch-specification.json + +Launch-specification.json:: + + { + "ImageId": "ami-12345678", + "KeyName": "my-key-pair", + "InstanceType": "c4.large", + "NetworkInterfaces": [ + { + "DeviceIndex": 0, + "SubnetId": "subnet-12345678", + "AssociatePublicIpAddress": true, + "Groups": ["sg-12345678"] + } + ], + "IamInstanceProfile": { + "Name": "my-iam-role" + } + } + +Output:: + + { + "InstanceIdSet": [ + "i-1234567890abcdef0" + ] + } + +This example launches the specified Scheduled Instance in EC2-Classic. + +Command:: + + aws ec2 run-scheduled-instances --scheduled-instance-id sci-1234-1234-1234-1234-123456789012 --instance-count 1 --launch-specification file://launch-specification.json + +Launch-specification.json:: + + { + "ImageId": "ami-12345678", + "KeyName": "my-key-pair", + "SecurityGroupIds": ["sg-12345678"], + "InstanceType": "c4.large", + "Placement": { + "AvailabilityZone": "us-west-2b" + } + "IamInstanceProfile": { + "Name": "my-iam-role" + } + } + +Output:: + + { + "InstanceIdSet": [ + "i-1234567890abcdef0" + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/search-local-gateway-routes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/search-local-gateway-routes.rst new file mode 100755 index 000000000..f22c26fd4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/search-local-gateway-routes.rst @@ -0,0 +1,19 @@ +**To search for routes in a local gateway route table** + +The following ``search-local-gateway-routes`` example searches for static routes in the specified local gateway route table. :: + + aws ec2 search-local-gateway-routes \ + --local-gateway-route-table-id lgw-rtb-059615ef7dEXAMPLE \ + --filters "Name=type,Values=static" + +Output:: + + { + "Route": { + "DestinationCidrBlock": "0.0.0.0/0", + "LocalGatewayVirtualInterfaceGroupId": "lgw-vif-grp-07145b276bEXAMPLE", + "Type": "static", + "State": "deleted", + "LocalGatewayRouteTableId": "lgw-rtb-059615ef7EXAMPLE" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/search-transit-gateway-multicast-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/search-transit-gateway-multicast-groups.rst new file mode 100755 index 000000000..09adac09a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/search-transit-gateway-multicast-groups.rst @@ -0,0 +1,26 @@ +**To search one or more transit gateway multicast groups and return the group membership information** + +The following ``search-transit-gateway-multicast-groups`` example returns the group membership of the specified multicast group. :: + + aws ec2 search-transit-gateway-multicast-groups \ + --transit-gateway-multicast-domain-id tgw-mcast-domain-000fb24d04EXAMPLE + +Output:: + + { + "MulticastGroups": [ + { + "GroupIpAddress": "224.0.1.0", + "TransitGatewayAttachmentId": "tgw-attach-0372e72386EXAMPLE", + "SubnetId": "subnet-0187aff814EXAMPLE", + "ResourceId": "vpc-0065acced4EXAMPLE", + "ResourceType": "vpc", + "NetworkInterfaceId": "eni-03847706f6EXAMPLE", + "GroupMember": false, + "GroupSource": true, + "SourceType": "static" + } + ] + } + +For more information, see `Multicast on transit gateways `__ in the *Transit Gateways Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/search-transit-gateway-routes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/search-transit-gateway-routes.rst new file mode 100644 index 000000000..e7716cdd8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/search-transit-gateway-routes.rst @@ -0,0 +1,41 @@ +**To search for routes in the specified transit gateway route table** + +The following ``search-transit-gateway-routes`` example returns all the routes that are of type ``static`` in the specified route table. :: + + aws ec2 search-transit-gateway-routes \ + --transit-gateway-route-table-id tgw-rtb-0a823edbdeEXAMPLE \ + --filters "Name=type,Values=static" + +Output:: + + { + "Routes": [ + { + "DestinationCidrBlock": "10.0.2.0/24", + "TransitGatewayAttachments": [ + { + "ResourceId": "vpc-4EXAMPLE", + "TransitGatewayAttachmentId": "tgw-attach-09b52ccdb5EXAMPLE", + "ResourceType": "vpc" + } + ], + "Type": "static", + "State": "active" + }, + { + "DestinationCidrBlock": "10.1.0.0/24", + "TransitGatewayAttachments": [ + { + "ResourceId": "vpc-4EXAMPLE", + "TransitGatewayAttachmentId": "tgw-attach-09b52ccdb5EXAMPLE", + "ResourceType": "vpc" + } + ], + "Type": "static", + "State": "active" + } + ], + "AdditionalRoutesAvailable": false + } + +For more information, see `Transit gateway route tables `__ in the *Transit Gateways Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/send-diagnostic-interrupt.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/send-diagnostic-interrupt.rst new file mode 100755 index 000000000..e65a57ee3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/send-diagnostic-interrupt.rst @@ -0,0 +1,8 @@ +**To send a diagnostic interrupt** + +The following ``send-diagnostic-interrupt`` example sends a diagnostic interrupt to the specified instance. :: + + aws ec2 send-diagnostic-interrupt \ + --instance-id i-1234567890abcdef0 + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/start-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/start-instances.rst new file mode 100644 index 000000000..f5c909099 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/start-instances.rst @@ -0,0 +1,30 @@ +**To start an Amazon EC2 instance** + +This example starts the specified Amazon EBS-backed instance. + +Command:: + + aws ec2 start-instances --instance-ids i-1234567890abcdef0 + +Output:: + + { + "StartingInstances": [ + { + "InstanceId": "i-1234567890abcdef0", + "CurrentState": { + "Code": 0, + "Name": "pending" + }, + "PreviousState": { + "Code": 80, + "Name": "stopped" + } + } + ] + } + +For more information, see `Stop and Start Your Instance`_ in the *Amazon Elastic Compute Cloud User Guide*. + +.. _`Stop and Start Your Instance`: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/start-network-insights-access-scope-analysis.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/start-network-insights-access-scope-analysis.rst new file mode 100644 index 000000000..4903f56b8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/start-network-insights-access-scope-analysis.rst @@ -0,0 +1,21 @@ +**To start a Network Insights access scope analysis** + +The following ``start-network-insights-access-scope-analysis`` example starts the scope analysis in your AWS account. :: + + aws ec2 start-network-insights-access-scope-analysis \ + --region us-east-1 \ + --network-insights-access-scope-id nis-123456789111 + +Output:: + + { + "NetworkInsightsAccessScopeAnalysis": { + "NetworkInsightsAccessScopeAnalysisId": "nisa-123456789222", + "NetworkInsightsAccessScopeAnalysisArn": "arn:aws:ec2:us-east-1:123456789012:network-insights-access-scope-analysis/nisa-123456789222", + "NetworkInsightsAccessScopeId": "nis-123456789111", + "Status": "running", + "StartDate": "2022-01-26T00:47:06.814000+00:00" + } + } + +For more information, see `Getting started with Network Access Analyzer using the AWS CLI `__ in the *Network Access Analyzer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/start-network-insights-analysis.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/start-network-insights-analysis.rst new file mode 100644 index 000000000..b9b6b5b38 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/start-network-insights-analysis.rst @@ -0,0 +1,20 @@ +**To analyze a path** + +The following ``start-network-insights-analysis`` example analyzes the path between the source and destination. To view the results of the path analysis, use the ``describe-network-insights-analyses`` command. :: + + aws ec2 start-network-insights-analysis \ + --network-insights-path-id nip-0b26f224f1d131fa8 + +Output:: + + { + "NetworkInsightsAnalysis": { + "NetworkInsightsAnalysisId": "nia-02207aa13eb480c7a", + "NetworkInsightsAnalysisArn": "arn:aws:ec2:us-east-1:123456789012:network-insights-analysis/nia-02207aa13eb480c7a", + "NetworkInsightsPathId": "nip-0b26f224f1d131fa8", + "StartDate": "2021-01-20T22:58:37.495Z", + "Status": "running" + } + } + +For more information, see `Getting started using the AWS CLI `__ in the *Reachability Analyzer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/start-vpc-endpoint-service-private-dns-verification.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/start-vpc-endpoint-service-private-dns-verification.rst new file mode 100644 index 000000000..cddc8fb9c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/start-vpc-endpoint-service-private-dns-verification.rst @@ -0,0 +1,10 @@ +**To initiate the DNS verification process** + +The following ``start-vpc-endpoint-service-private-dns-verification`` example initiates the DNS verification process for the specified endpoint service. :: + + aws ec2 start-vpc-endpoint-service-private-dns-verification \ + --service-id vpce-svc-071afff70666e61e0 + +This command produces no output. + +For more information, see `Manage DNS names `__ in the *AWS PrivateLink User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/stop-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/stop-instances.rst new file mode 100644 index 000000000..8c1570f1c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/stop-instances.rst @@ -0,0 +1,56 @@ +**Example 1: To stop an Amazon EC2 instance** + +The following ``stop-instances`` example stops the specified Amazon EBS-backed instance. :: + + aws ec2 stop-instances \ + --instance-ids i-1234567890abcdef0 + +Output:: + + { + "StoppingInstances": [ + { + "InstanceId": "i-1234567890abcdef0", + "CurrentState": { + "Code": 64, + "Name": "stopping" + }, + "PreviousState": { + "Code": 16, + "Name": "running" + } + } + ] + } + +For more information, see `Stop and Start Your Instance `__ in the *Amazon Elastic Compute Cloud User Guide*. + +**Example 2: To hibernate an Amazon EC2 instance** + +The following ``stop-instances`` example hibernates Amazon EBS-backed instance if the instance is enabled for hibernation and meets the hibernation prerequisites. +After the instance is put into hibernation the instance is stopped. :: + + aws ec2 stop-instances \ + --instance-ids i-1234567890abcdef0 \ + --hibernate + +Output:: + + { + "StoppingInstances": [ + { + "CurrentState": { + "Code": 64, + "Name": "stopping" + }, + "InstanceId": "i-1234567890abcdef0", + "PreviousState": { + "Code": 16, + "Name": "running" + } + } + ] + } + +For more information, see `Hibernate your On-Demand Linux instance `__ in the *Amazon Elastic Cloud Compute User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/terminate-client-vpn-connections.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/terminate-client-vpn-connections.rst new file mode 100644 index 000000000..2fca66d0f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/terminate-client-vpn-connections.rst @@ -0,0 +1,26 @@ +**To terminate a connection to a Client VPN endpoint** + +The following ``terminate-client-vpn-connections`` example terminates the specified connection to the Client VPN endpoint. :: + + aws ec2 terminate-client-vpn-connections \ + --client-vpn-endpoint-id vpn-endpoint-123456789123abcde \ + --connection-id cvpn-connection-04edd76f5201e0cb8 + +Output:: + + { + "ClientVpnEndpointId": "vpn-endpoint-123456789123abcde", + "ConnectionStatuses": [ + { + "ConnectionId": "cvpn-connection-04edd76f5201e0cb8", + "PreviousStatus": { + "Code": "active" + }, + "CurrentStatus": { + "Code": "terminating" + } + } + ] + } + +For more information, see `Client Connections `__ in the *AWS Client VPN Administrator Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/terminate-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/terminate-instances.rst new file mode 100644 index 000000000..b01fa8a32 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/terminate-instances.rst @@ -0,0 +1,30 @@ +**To terminate an Amazon EC2 instance** + +This example terminates the specified instance. + +Command:: + + aws ec2 terminate-instances --instance-ids i-1234567890abcdef0 + +Output:: + + { + "TerminatingInstances": [ + { + "InstanceId": "i-1234567890abcdef0", + "CurrentState": { + "Code": 32, + "Name": "shutting-down" + }, + "PreviousState": { + "Code": 16, + "Name": "running" + } + } + ] + } + +For more information, see `Using Amazon EC2 Instances`_ in the *AWS Command Line Interface User Guide*. + +.. _`Using Amazon EC2 Instances`: http://docs.aws.amazon.com/cli/latest/userguide/cli-ec2-launch.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/unassign-ipv6-addresses.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/unassign-ipv6-addresses.rst new file mode 100644 index 000000000..c63cb6476 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/unassign-ipv6-addresses.rst @@ -0,0 +1,16 @@ +**To unassign an IPv6 address from a network interface** + +This example unassigns the specified IPv6 address from the specified network interface. + +Command:: + + aws ec2 unassign-ipv6-addresses --ipv6-addresses 2001:db8:1234:1a00:3304:8879:34cf:4071 --network-interface-id eni-23c49b68 + +Output:: + + { + "NetworkInterfaceId": "eni-23c49b68", + "UnassignedIpv6Addresses": [ + "2001:db8:1234:1a00:3304:8879:34cf:4071" + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/unassign-private-ip-addresses.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/unassign-private-ip-addresses.rst new file mode 100644 index 000000000..fbb066d71 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/unassign-private-ip-addresses.rst @@ -0,0 +1,7 @@ +**To unassign a secondary private IP address from a network interface** + +This example unassigns the specified private IP address from the specified network interface. If the command succeeds, no output is returned. + +Command:: + + aws ec2 unassign-private-ip-addresses --network-interface-id eni-e5aa89a3 --private-ip-addresses 10.0.0.82 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/unassign-private-nat-gateway-address.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/unassign-private-nat-gateway-address.rst new file mode 100644 index 000000000..9bad4eca6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/unassign-private-nat-gateway-address.rst @@ -0,0 +1,23 @@ +**To unassign a private IP address from your private NAT gateway** + +The following ``unassign-private-nat-gateway-address`` example unassigns the specified IP address from the specified private NAT gateway. :: + + aws ec2 unassign-private-nat-gateway-address \ + --nat-gateway-id nat-1234567890abcdef0 \ + --private-ip-addresses 10.0.20.197 + +Output:: + + { + "NatGatewayId": "nat-0ee3edd182361f662", + "NatGatewayAddresses": [ + { + "NetworkInterfaceId": "eni-0065a61b324d1897a", + "PrivateIp": "10.0.20.197", + "IsPrimary": false, + "Status": "unassigning" + } + ] + } + +For more information, see `NAT gateways `__ in the *Amazon VPC User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/unlock-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/unlock-snapshot.rst new file mode 100644 index 000000000..ee83c65fc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/unlock-snapshot.rst @@ -0,0 +1,14 @@ +**To unlock a snapshot** + +The following ``unlock-snapshot`` example unlocks the specified snapshot. :: + + aws ec2 unlock-snapshot \ + --snapshot-id snap-0b5e733b4a8df6e0d + +Output:: + + { + "SnapshotId": "snap-0b5e733b4a8df6e0d" + } + +For more information, see `Snapshot lock `__ in the *Amazon EBS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/unmonitor-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/unmonitor-instances.rst new file mode 100644 index 000000000..fd0fba528 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/unmonitor-instances.rst @@ -0,0 +1,20 @@ +**To disable detailed monitoring for an instance** + +This example command disables detailed monitoring for the specified instance. + +Command:: + + aws ec2 unmonitor-instances --instance-ids i-1234567890abcdef0 + +Output:: + + { + "InstanceMonitorings": [ + { + "InstanceId": "i-1234567890abcdef0", + "Monitoring": { + "State": "disabling" + } + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/update-security-group-rule-descriptions-egress.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/update-security-group-rule-descriptions-egress.rst new file mode 100644 index 000000000..41ced7f31 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/update-security-group-rule-descriptions-egress.rst @@ -0,0 +1,15 @@ +**To update the description of an outbound security group rule** + +The following ``update-security-group-rule-descriptions-egress`` example updates the description for the security group rule for the specified port and IPv4 address range. The description '``Outbound HTTP access to server 2``' replaces any existing description for the rule. :: + + aws ec2 update-security-group-rule-descriptions-egress \ + --group-id sg-02f0d35a850ba727f \ + --ip-permissions IpProtocol=tcp,FromPort=80,ToPort=80,IpRanges=[{CidrIp=203.0.113.0/24,Description="Outbound HTTP access to server 2"}] + +Output:: + + { + "Return": true + } + +For more information, see `Security group rules `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/update-security-group-rule-descriptions-ingress.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/update-security-group-rule-descriptions-ingress.rst new file mode 100644 index 000000000..12eefa27f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/update-security-group-rule-descriptions-ingress.rst @@ -0,0 +1,31 @@ +**Example 1: To update the description of an inbound security group rule with a CIDR source** + +The following ``update-security-group-rule-descriptions-ingress`` example updates the description for the security group rule for the specified port and IPv4 address range. The description '``SSH access from ABC office``' replaces any existing description for the rule. :: + + aws ec2 update-security-group-rule-descriptions-ingress \ + --group-id sg-02f0d35a850ba727f \ + --ip-permissions IpProtocol=tcp,FromPort=22,ToPort=22,IpRanges='[{CidrIp=203.0.113.0/16,Description="SSH access from corpnet"}]' + +Output:: + + { + "Return": true + } + +For more information, see `Security group rules `__ in the *Amazon EC2 User Guide*. + +**Example 2: To update the description of an inbound security group rule with a prefix list source** + +The following ``update-security-group-rule-descriptions-ingress`` example updates the description for the security group rule for the specified port and prefix list. The description '``SSH access from ABC office``' replaces any existing description for the rule. :: + + aws ec2 update-security-group-rule-descriptions-ingress \ + --group-id sg-02f0d35a850ba727f \ + --ip-permissions IpProtocol=tcp,FromPort=22,ToPort=22,PrefixListIds='[{PrefixListId=pl-12345678,Description="SSH access from corpnet"}]' + +Output:: + + { + "Return": true + } + +For more information, see `Security group rules `__ in the *Amazon EC2 User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/bundle-task-complete.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/bundle-task-complete.rst new file mode 100755 index 000000000..39a3546a1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/bundle-task-complete.rst @@ -0,0 +1,8 @@ +**To pause running until a bundle task is completed** + +The following ``wait bundle-task-completed`` example pauses and continues only after it can confirm that the specified bundle task is completed. :: + + aws ec2 wait bundle-task-completed \ + --bundle-ids bun-2a4e041c + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/conversion-task-cancelled.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/conversion-task-cancelled.rst new file mode 100755 index 000000000..7ddb8c405 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/conversion-task-cancelled.rst @@ -0,0 +1,8 @@ +**To pause running until a conversion task is cancelled** + +The following ``wait conversion-task-cancelled`` example pauses and continues only after it can confirm that the specified conversion task is cancelled. :: + + aws ec2 wait conversion-task-cancelled \ + --conversion-task-ids import-i-fh95npoc + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/conversion-task-completed.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/conversion-task-completed.rst new file mode 100755 index 000000000..f37676360 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/conversion-task-completed.rst @@ -0,0 +1,8 @@ +**To pause running until a conversion task is completed** + +The following ``wait conversion-task-completed`` example pauses and continues only after it can confirm that the specified conversion task is completed. :: + + aws ec2 wait conversion-task-completed \ + --conversion-task-ids import-i-fh95npoc + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/conversion-task-deleted.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/conversion-task-deleted.rst new file mode 100755 index 000000000..2e1bda950 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/conversion-task-deleted.rst @@ -0,0 +1,8 @@ +**To pause running until a conversion task is deleted** + +The following ``wait conversion-task-deleted`` example pauses and continues only after it can confirm that the specified conversion task is deleted. :: + + aws ec2 wait conversion-task-deleted \ + --conversion-task-ids import-i-fh95npoc + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/customer-gateway-available.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/customer-gateway-available.rst new file mode 100644 index 000000000..0e137fcee --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/customer-gateway-available.rst @@ -0,0 +1,6 @@ +**To wait until a customer gateway is available** + +The following ``wait customer-gateway-available`` example pauses and resumes running only after it confirms that the specified customer gateway is available. It produces no output. :: + + aws ec2 wait customer-gateway-available \ + --customer-gateway-ids cgw-1234567890abcdef0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/export-task-cancelled.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/export-task-cancelled.rst new file mode 100755 index 000000000..ddd351e74 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/export-task-cancelled.rst @@ -0,0 +1,8 @@ +**To pause running until an export task is cancelled** + +The following ``wait export-task-cancelled`` example pauses and continues only after it can confirm that the specified export task is cancelled. :: + + aws ec2 wait export-task-cancelled \ + --export-task-ids export-i-fgelt0i7 + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/export-task-completed.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/export-task-completed.rst new file mode 100755 index 000000000..5cd3152b8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/export-task-completed.rst @@ -0,0 +1,8 @@ +**To pause running until an export task is completed** + +The following ``wait export-task-completed`` example pauses and continues only after it can confirm that the specified export task is completed. :: + + aws ec2 wait export-task-completed \ + --export-task-ids export-i-fgelt0i7 + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/image-available.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/image-available.rst new file mode 100644 index 000000000..489e31a61 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/image-available.rst @@ -0,0 +1,6 @@ +**To wait until an image is available** + +The following ``wait image-available`` example pauses and resumes running only after it confirms that the specified Amazon Machine Image is available. It produces no output. :: + + aws ec2 wait image-available \ + --image-ids ami-0abcdef1234567890 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/image-exists.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/image-exists.rst new file mode 100644 index 000000000..0e911b065 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/image-exists.rst @@ -0,0 +1,6 @@ +**To wait until an image exists** + +The following ``wait image-exists`` example pauses and resumes running only after it confirms that the specified Amazon Machine Image exists. It produces no output. :: + + aws ec2 wait image-exists \ + --image-ids ami-0abcdef1234567890 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/instance-exists.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/instance-exists.rst new file mode 100644 index 000000000..808aca3f6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/instance-exists.rst @@ -0,0 +1,6 @@ +**To wait until an instance exists** + +The following ``wait instance-exists`` example pauses and resumes running only after it confirms that the specified instance exists. It produces no output. :: + + aws ec2 wait instance-exists \ + --instance-ids i-1234567890abcdef0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/instance-running.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/instance-running.rst new file mode 100644 index 000000000..c56baabce --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/instance-running.rst @@ -0,0 +1,6 @@ +**To wait until an instance is running** + +The following ``wait instance-running`` example pauses and resumes running only after it confirms that the specified instance is running. It produces no output. :: + + aws ec2 wait instance-running \ + --instance-ids i-1234567890abcdef0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/instance-status-ok.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/instance-status-ok.rst new file mode 100644 index 000000000..f05963faa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/instance-status-ok.rst @@ -0,0 +1,6 @@ +**To wait until the status of an instance is OK** + +The following ``wait instance-status-ok`` example pauses and resumes running only after it confirms that the status of the specified instance is OK. It produces no output. :: + + aws ec2 wait instance-status-ok \ + --instance-ids i-1234567890abcdef0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/instance-stopped.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/instance-stopped.rst new file mode 100644 index 000000000..561717f3e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/instance-stopped.rst @@ -0,0 +1,6 @@ +**To wait until an instance is stopped** + +The following ``wait instance-stopped`` example pauses and resumes running only after it confirms that the specified instance is stopped. It produces no output. :: + + aws ec2 wait instance-stopped \ + --instance-ids i-1234567890abcdef0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/instance-terminated.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/instance-terminated.rst new file mode 100644 index 000000000..8e46b4e27 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/instance-terminated.rst @@ -0,0 +1,6 @@ +**To wait until an instance terminates** + +The following ``wait instance-terminated`` example pauses and resumes running only after it confirms that the specified instance is terminated. It produces no output. :: + + aws ec2 wait instance-terminated \ + --instance-ids i-1234567890abcdef0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/internet-gateway-exists.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/internet-gateway-exists.rst new file mode 100644 index 000000000..2426ff2b8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/internet-gateway-exists.rst @@ -0,0 +1,10 @@ +**To wait until an internet gateway exists** + +The following ``wait internet-gateway-exists`` example pauses and resumes running only after it confirms that the specified internet gateway exists. :: + + aws ec2 wait internet-gateway-exists \ + --internet-gateway-ids igw-1234567890abcdef0 + +This command produces no output. + +For more information, see `Internet gateways `__ in the *Amazon VPC User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/key-pair-exists.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/key-pair-exists.rst new file mode 100644 index 000000000..2fdaa439d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/key-pair-exists.rst @@ -0,0 +1,6 @@ +**To wait until a key pair exists** + +The following ``wait key-pair-exists`` example pauses and resumes running only after it confirms that the specified key pair exists. It produces no output. :: + + aws ec2 wait key-pair-exists \ + --key-names my-key-pair diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/nat-gateway-available.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/nat-gateway-available.rst new file mode 100644 index 000000000..8f2abf7c2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/nat-gateway-available.rst @@ -0,0 +1,6 @@ +**To wait until a NAT gateway is available** + +The following ``wait nat-gateway-available`` example pauses and resumes running only after it confirms that the specified NAT gateway is available. It produces no output. :: + + aws ec2 wait nat-gateway-available \ + --nat-gateway-ids nat-1234567890abcdef0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/nat-gateway-deleted.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/nat-gateway-deleted.rst new file mode 100644 index 000000000..a098a605d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/nat-gateway-deleted.rst @@ -0,0 +1,10 @@ +**To wait until a NAT gateway is deleted** + +The following ``wait nat-gateway-deleted`` example pauses and resumes running only after it confirms that the specified NAT gateway is deleted. :: + + aws ec2 wait nat-gateway-deleted \ + --nat-gateway-ids nat-1234567890abcdef0 + +This command produces no output. + +For more information, see `NAT gateways `__ in the *Amazon VPC User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/network-interface-available.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/network-interface-available.rst new file mode 100644 index 000000000..a472b7d49 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/network-interface-available.rst @@ -0,0 +1,6 @@ +**To wait until a network interface is available** + +The following ``wait network-interface-available`` example pauses and resumes running only after it confirms that the specified network interface is available. It produces no output. :: + + aws ec2 wait network-interface-available \ + --network-interface-ids eni-1234567890abcdef0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/password-data-available.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/password-data-available.rst new file mode 100644 index 000000000..d61005c73 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/password-data-available.rst @@ -0,0 +1,6 @@ +**To wait until the password data for a Windows instance is available** + +The following ``wait password-data-available`` example pauses and resumes running only after it confirms that the password data for the specified Windows instance is available. It produces no output. :: + + aws ec2 wait password-data-available \ + --instance-id i-1234567890abcdef0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/security-group-exists.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/security-group-exists.rst new file mode 100755 index 000000000..b1259d96a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/security-group-exists.rst @@ -0,0 +1,8 @@ +**To pause running until a security group exists** + +The following ``wait security-group-exists`` example pauses and continues only after it can confirm that the specified security group exists. :: + + aws ec2 wait security-group-exists \ + --group-ids sg-07e789d0fb10492ee + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/snapshot-completed.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/snapshot-completed.rst new file mode 100644 index 000000000..221f0ad0c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/snapshot-completed.rst @@ -0,0 +1,6 @@ +**To wait until a snapshot is completed** + +The following ``wait snapshot-completed`` example pauses and resumes running only after it confirms that the specified snapshot is completed. It produces no output. :: + + aws ec2 wait snapshot-completed \ + --snapshot-ids snap-1234567890abcdef0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/snapshot-imported.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/snapshot-imported.rst new file mode 100644 index 000000000..50f9abc99 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/snapshot-imported.rst @@ -0,0 +1,10 @@ +**To wait until a snapshot import task is completed** + +The following ``wait snapshot-imported`` example pauses and resumes only after the specified snapshot import task is completed. :: + + aws ec2 wait snapshot-imported \ + --import-task-ids import-snap-1234567890abcdef0 + +This command produces no output. + +For more information, see `Snapshot import `__ in the *VM Import/Export User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/spot-instance-request-fulfilled.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/spot-instance-request-fulfilled.rst new file mode 100644 index 000000000..99e1da718 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/spot-instance-request-fulfilled.rst @@ -0,0 +1,6 @@ +**To wait until an Spot Instance request is fulfilled** + +The following ``wait spot-instance-request-fulfilled`` example pauses and resumes running only after it confirms that a Spot Instance request is fulfilled in the specified Availability Zone. It produces no output. :: + + aws ec2 wait spot-instance-request-fulfilled \ + --filters Name=launched-availability-zone,Values=us-east-1 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/store-image-task-complete.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/store-image-task-complete.rst new file mode 100644 index 000000000..ff04f3619 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/store-image-task-complete.rst @@ -0,0 +1,10 @@ +**To wait until a store image task is completed** + +The following ``wait store-image-task-complete`` example pauses and resumes after the store image task for the specified image is completed. :: + + aws ec2 wait store-image-task-complete \ + --image-ids ami-1234567890abcdef0 + +This command produces no output. + +For more information, see `Store and restore an AMI `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/subnet-available.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/subnet-available.rst new file mode 100644 index 000000000..e3fca5e17 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/subnet-available.rst @@ -0,0 +1,6 @@ +**To wait until a subnet is available** + +The following ``wait subnet-available`` example pauses and resumes running only after it confirms that the specified subnet is available. It produces no output. :: + + aws ec2 wait subnet-available \ + --subnet-ids subnet-1234567890abcdef0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/system-status-ok.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/system-status-ok.rst new file mode 100644 index 000000000..a1a98f62a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/system-status-ok.rst @@ -0,0 +1,6 @@ +**To wait until the system status is OK** + +The following ``wait system-status-ok`` example command pauses and resumes running only after it confirms that the system status of the specified instance is OK. It produces no output. :: + + aws ec2 wait system-status-ok \ + --instance-ids i-1234567890abcdef0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/volume-available.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/volume-available.rst new file mode 100644 index 000000000..cd9543fd6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/volume-available.rst @@ -0,0 +1,6 @@ +**To wait until a volume is available** + +The following ``wait volume-available`` example command pauses and resumes running only after it confirms that the specified volume is available. It produces no output. :: + + aws ec2 wait volume-available \ + --volume-ids vol-1234567890abcdef0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/volume-deleted.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/volume-deleted.rst new file mode 100644 index 000000000..b975c9c94 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/volume-deleted.rst @@ -0,0 +1,6 @@ +**To wait until a volume is deleted** + +The following ``wait volume-deleted`` example command pauses and resumes running only after it confirms that the specified volume is deleted. It produces no output. :: + + aws ec2 wait volume-deleted \ + --volume-ids vol-1234567890abcdef0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/volume-in-use.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/volume-in-use.rst new file mode 100644 index 000000000..ad97f039c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/volume-in-use.rst @@ -0,0 +1,6 @@ +**To wait until a volume is in use** + +The following ``wait volume-in-use`` example pauses and resumes running only after it confirms that the specified volume is in use. It produces no output. :: + + aws ec2 wait volume-in-use \ + --volume-ids vol-1234567890abcdef0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/vpc-available.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/vpc-available.rst new file mode 100644 index 000000000..4e0758953 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/vpc-available.rst @@ -0,0 +1,6 @@ +**To wait until a virtual private cloud (VPC) is available** + +The following ``wait vpc-available`` example pauses and resumes running only after it confirms that the specified VPC is available. It produces no output. :: + + aws ec2 wait vpc-available \ + --vpc-ids vpc-1234567890abcdef0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/vpc-exists.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/vpc-exists.rst new file mode 100644 index 000000000..6e999470f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/vpc-exists.rst @@ -0,0 +1,6 @@ +**To wait until a virtual private cloud (VPC) exists** + +The following ``wait vpc-exists`` example command pauses and resumes running only after it confirms that the specified VPC exists. :: + + aws ec2 wait vpc-exists \ + --vpc-ids vpc-1234567890abcdef0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/vpc-peering-connection-deleted.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/vpc-peering-connection-deleted.rst new file mode 100644 index 000000000..c86c9dd24 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/vpc-peering-connection-deleted.rst @@ -0,0 +1,6 @@ +**To wait until a VPC peering connection is deleted** + +The following ``wait vpc-peering-connection-deleted`` example pauses and resumes running only after it confirms that the specified VPC peering connection is deleted. It produces no output. :: + + aws ec2 wait vpc-peering-connection-deleted \ + --vpc-peering-connection-ids pcx-1234567890abcdef0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/vpc-peering-connection-exists.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/vpc-peering-connection-exists.rst new file mode 100644 index 000000000..fd3e63db2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/vpc-peering-connection-exists.rst @@ -0,0 +1,6 @@ +**To wait until a VPC peering connection exists** + +The following ``wait vpc-peering-connection-exists`` example pauses and continues only when it can confirm that the specified VPC peering connection exists. :: + + aws ec2 wait vpc-peering-connection-exists \ + --vpc-peering-connection-ids pcx-1234567890abcdef0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/vpn-connection-available.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/vpn-connection-available.rst new file mode 100644 index 000000000..15560411d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/vpn-connection-available.rst @@ -0,0 +1,6 @@ +**To wait until a VPN connection is available** + +The following ``vpn-connection-available`` example pauses and resumes running only after it confirms that the specified VPN connection is available. It produces no output. :: + + aws ec2 wait vpn-connection-available \ + --vpn-connection-ids vpn-1234567890abcdef0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/vpn-connection-deleted.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/vpn-connection-deleted.rst new file mode 100644 index 000000000..f2e2e9a07 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/wait/vpn-connection-deleted.rst @@ -0,0 +1,6 @@ +**To wait until a VPN connection is deleted** + +The following ``wait vpn-connection-deleted`` example command pauses and continues when it can confirm that the specified VPN connection is deleted. It produces no output. :: + + aws ec2 wait vpn-connection-deleted \ + --vpn-connection-ids vpn-1234567890abcdef0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/withdraw-byoip-cidr.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/withdraw-byoip-cidr.rst new file mode 100644 index 000000000..71ea1153b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ec2/withdraw-byoip-cidr.rst @@ -0,0 +1,16 @@ +**To stop advertising an address range** + +The following ``withdraw-byoip-cidr`` example stops advertising the specified address range. :: + + aws ec2 withdraw-byoip-cidr + --cidr 203.0.113.25/24 + +Output:: + + { + "ByoipCidr": { + "Cidr": "203.0.113.25/24", + "StatusMessage": "ipv4pool-ec2-1234567890abcdef0", + "State": "advertised" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/batch-delete-image.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/batch-delete-image.rst new file mode 100644 index 000000000..3f053e245 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/batch-delete-image.rst @@ -0,0 +1,92 @@ +**Example 1: To delete an image by using image digest ids, the image and all of its tags are deleted within a repository in a public registry** + +The following ``batch-delete-image`` example deletes an image by specifying the image digest.:: + + aws ecr-public batch-delete-image \ + --repository-name project-a/nginx-web-app \ + --image-ids imageDigest=sha256:b1f9deb5fe3711a3278379ebbcaefbc5d70a2263135db86bd27a0dae150546c2 + +Output:: + + { + "imageIds": [ + { + "imageDigest": "sha256:b1f9deb5fe3711a3278379ebbcaefbc5d70a2263135db86bd27a0dae150546c2", + "imageTag": "latest" + } + ], + "failures": [] + } + +For more information, see `Deleting an image in a public repository `__ in the *Amazon ECR Public User Guide*. + +**Example 2: To delete any image by specifying the tag associated with the image you want to delete from the repository.** + +The following ``batch-delete-image`` example deletes an image by specifying the tag associated with the image repository named ``project-a/nginx-web-app`` in a public registry. If you have only one tag and execute this command, it will remove the image. Otherwise, if you have multiple tags for the same image, specify one, and only the tag is removed from repository and not the image. :: + + aws ecr-public batch-delete-image \ + --repository-name project-a/nginx-web-app \ + --image-ids imageTag=_temp + +Output:: + + { + "imageIds": [ + { + "imageDigest": "sha256:f7a86a0760e2f8d7eff07e515fc87bf4bac45c35376c06f9a280f15ecad6d7e0", + "imageTag": "_temp" + } + ], + "failures": [] + } + +For more information, see `Deleting an image in a public repository `__ in the *Amazon ECR Public User Guide*. + +**Example 3: To delete multiple images, you can specify multiple image tags or image digests in the request for a repository in a public registry.** + +The following ``batch-delete-image`` example delete multiple images from a repository named `project-a/nginx-web-app` by specifying multiple image tags or image digests in the request. :: + + aws ecr-public batch-delete-image \ + --repository-name project-a/nginx-web-app \ + --image-ids imageTag=temp2.0 imageDigest=sha256:47ba980bc055353d9c0af89b1894f68faa43ca93856917b8406316be86f01278 + +Output:: + + { + "imageIds": [ + { + "imageDigest": "sha256:47ba980bc055353d9c0af89b1894f68faa43ca93856917b8406316be86f01278" + }, + { + "imageDigest": "sha256:f7a86a0760e2f8d7eff07e515fc87bf4bac45c35376c06f9a280f15ecad6d7e0", + "imageTag": "temp2.0" + } + ], + "failures": [] + } + +For more information, see `Deleting an image in a public repository `__ in the *Amazon ECR Public User Guide*. + +**Example 4: To delete an image in cross AWS Account using registry-id and imagedigest ids, the image and all of its tags are deleted within a repository in a public registry** + +The following ``batch-delete-image`` example deletes an image by specifying the image digest in the cross AWS Account.:: + + aws ecr-public batch-delete-image \ + --registry-id 123456789098 \ + --repository-name project-a/nginx-web-app \ + --image-ids imageDigest=sha256:b1f9deb5fe3711a3278379ebbcaefbc5d70a2263135db86bd27a0dae150546c2 \ + --region us-east-1 + +Output:: + + { + "imageIds": [ + { + "imageDigest": "sha256:b1f9deb5fe3711a3278379ebbcaefbc5d70a2263135db86bd27a0dae150546c2", + "imageTag": "temp2.0" + } + ], + "failures": [] + } + +For more information, see `Deleting an image in a public repository `__ in the *Amazon ECR Public User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/create-repository.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/create-repository.rst new file mode 100644 index 000000000..9637a552b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/create-repository.rst @@ -0,0 +1,123 @@ +**Example 1: To create a repository in a public registry** + +The following ``create-repository`` example creates a repository named `project-a/nginx-web-app` in a public registry. :: + + aws ecr-public create-repository \ + --repository-name project-a/nginx-web-app + +Output:: + + { + "repository": { + "repositoryArn": "arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app", + "registryId": "123456789012", + "repositoryName": "project-a/nginx-web-app", + "repositoryUri": "public.ecr.aws/public-registry-custom-alias/project-a/nginx-web-app", + "createdAt": "2024-07-01T21:08:55.131000+00:00" + }, + "catalogData": {} + } + +For more information, see `Creating a public repository `__ in the *Amazon ECR Public User Guide*. + +**Example 2: To create a repository in a public registry with short description of the contents of the repository, system and operating architecture that the images in the repository are compatible with** + +The following ``create-repository`` example creates a repository named `project-a/nginx-web-app` in a public registry with short description of the contents of the repository, system and operating architecture that the images in the repository are compatible with. :: + + aws ecr-public create-repository \ + --repository-name project-a/nginx-web-app \ + --catalog-data 'description=My project-a ECR Public Repository,architectures=ARM,ARM 64,x86,x86-64,operatingSystems=Linux' + + +Output:: + + { + "repository": { + "repositoryArn": "arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app", + "registryId": "123456789012", + "repositoryName": "project-a/nginx-web-app", + "repositoryUri": "public.ecr.aws/public-registry-custom-alias/project-a/nginx-web-app", + "createdAt": "2024-07-01T21:23:20.455000+00:00" + }, + "catalogData": { + "description": "My project-a ECR Public Repository", + "architectures": [ + "ARM", + "ARM 64", + "x86", + "x86-64" + ], + "operatingSystems": [ + "Linux" + ] + } + } + +For more information, see `Creating a public repository `__ in the *Amazon ECR Public User Guide*. + +**Example 3: To create a repository in a public registry, along with logoImageBlob, aboutText, usageText and tags information** + +The following ``create-repository`` example creates a repository named `project-a/nginx-web-app` in a public registry, along with logoImageBlob, aboutText, usageText and tags information. :: + + aws ecr-public create-repository \ + --cli-input-json file://myfile.json + +Contents of ``myfile.json``:: + + { + "repositoryName": "project-a/nginx-web-app", + "catalogData": { + "description": "My project-a ECR Public Repository", + "architectures": [ + "ARM", + "ARM 64", + "x86", + "x86-64" + ], + "operatingSystems": [ + "Linux" + ], + "logoImageBlob": "iVBORw0KGgoA<>ErkJggg==", + "aboutText": "## Quick reference\n\nMaintained by: [the Amazon Linux Team](https://github.com/aws/amazon-linux-docker-images)\n\nWhere to get help: [the Docker Community Forums](https://forums.docker.com/), [the Docker Community Slack](https://dockr.ly/slack), or [Stack Overflow](https://stackoverflow.com/search?tab=newest&q=docker)\n\n## Supported tags and respective `dockerfile` links\n\n* [`2.0.20200722.0`, `2`, `latest`](https://github.com/amazonlinux/container-images/blob/03d54f8c4d522bf712cffd6c8f9aafba0a875e78/Dockerfile)\n* [`2.0.20200722.0-with-sources`, `2-with-sources`, `with-sources`](https://github.com/amazonlinux/container-images/blob/1e7349845e029a2e6afe6dc473ef17d052e3546f/Dockerfile)\n* [`2018.03.0.20200602.1`, `2018.03`, `1`](https://github.com/amazonlinux/container-images/blob/f10932e08c75457eeb372bf1cc47ea2a4b8e98c8/Dockerfile)\n* [`2018.03.0.20200602.1-with-sources`, `2018.03-with-sources`, `1-with-sources`](https://github.com/amazonlinux/container-images/blob/8c9ee491689d901aa72719be0ec12087a5fa8faf/Dockerfile)\n\n## What is Amazon Linux?\n\nAmazon Linux is provided by Amazon Web Services (AWS). It is designed to provide a stable, secure, and high-performance execution environment for applications running on Amazon EC2. The full distribution includes packages that enable easy integration with AWS, including launch configuration tools and many popular AWS libraries and tools. AWS provides ongoing security and maintenance updates to all instances running Amazon Linux.\n\nThe Amazon Linux container image contains a minimal set of packages. To install additional packages, [use `yum`](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/managing-software.html).\n\nAWS provides two versions of Amazon Linux: [Amazon Linux 2](https://aws.amazon.com/amazon-linux-2/) and [Amazon Linux AMI](https://aws.amazon.com/amazon-linux-ami/).\n\nFor information on security updates for Amazon Linux, please refer to [Amazon Linux 2 Security Advisories](https://alas.aws.amazon.com/alas2.html) and [Amazon Linux AMI Security Advisories](https://alas.aws.amazon.com/). Note that Docker Hub's vulnerability scanning for Amazon Linux is currently based on RPM versions, which does not reflect the state of backported patches for vulnerabilities.\n\n## Where can I run Amazon Linux container images?\n\nYou can run Amazon Linux container images in any Docker based environment. Examples include, your laptop, in Amazon EC2 instances, and Amazon ECS clusters.\n\n## License\n\nAmazon Linux is available under the [GNU General Public License, version 2.0](https://github.com/aws/amazon-linux-docker-images/blob/master/LICENSE). Individual software packages are available under their own licenses; run `rpm -qi [package name]` or check `/usr/share/doc/[package name]-*` and `/usr/share/licenses/[package name]-*` for details.\n\nAs with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).\n\nSome additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `amazonlinux/` directory](https://github.com/docker-library/repo-info/tree/master/repos/amazonlinux).\n\n## Security\n\nFor information on security updates for Amazon Linux, please refer to [Amazon Linux 2 Security Advisories](https://alas.aws.amazon.com/alas2.html) and [Amazon Linux AMI Security Advisories](https://alas.aws.amazon.com/). Note that Docker Hub's vulnerability scanning for Amazon Linux is currently based on RPM versions, which does not reflect the state of backported patches for vulnerabilities.", + "usageText": "## Supported architectures\n\namd64, arm64v8\n\n## Where can I run Amazon Linux container images?\n\nYou can run Amazon Linux container images in any Docker based environment. Examples include, your laptop, in Amazon EC2 instances, and ECS clusters.\n\n## How do I install a software package from Extras repository in Amazon Linux 2?\n\nAvailable packages can be listed with the `amazon-linux-extras` command. Packages can be installed with the `amazon-linux-extras install ` command. Example: `amazon-linux-extras install rust1`\n\n## Will updates be available for Amazon Linux containers?\n\nSimilar to the Amazon Linux images for Amazon EC2 and on-premises use, Amazon Linux container images will get ongoing updates from Amazon in the form of security updates, bug fix updates, and other enhancements. Security bulletins for Amazon Linux are available at https://alas.aws.amazon.com/\n\n## Will AWS Support the current version of Amazon Linux going forward?\n\nYes; in order to avoid any disruption to your existing applications and to facilitate migration to Amazon Linux 2, AWS will provide regular security updates for Amazon Linux 2018.03 AMI and container image for 2 years after the final LTS build is announced. You can also use all your existing support channels such as AWS Support and Amazon Linux Discussion Forum to continue to submit support requests." + }, + "tags": [ + { + "Key": "Name", + "Value": "project-a/nginx-web-app" + }, + { + "Key": "Environment", + "Value": "Prod" + } + ] + } + +Output:: + + { + "repository": { + "repositoryArn": "arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app", + "registryId": "123456789012", + "repositoryName": "project-a/nginx-web-app", + "repositoryUri": "public.ecr.aws/public-registry-custom-alias/project-a/nginx-web-app", + "createdAt": "2024-07-01T21:53:05.749000+00:00" + }, + "catalogData": { + "description": "My project-a ECR Public Repository", + "architectures": [ + "ARM", + "ARM 64", + "x86", + "x86-64" + ], + "operatingSystems": [ + "Linux" + ], + "logoUrl": "https://d3g9o9u8re44ak.cloudfront.net/logo/23861450-4b9b-403c-9a4c-7aa0ef140bb8/2f9bf5a7-a32f-45b4-b5cd-c5770a35e6d7.png", + "aboutText": "## Quick reference\n\nMaintained by: [the Amazon Linux Team](https://github.com/aws/amazon-linux-docker-images)\n\nWhere to get help: [the Docker Community Forums](https://forums.docker.com/), [the Docker Community Slack](https://dockr.ly/slack), or [Stack Overflow](https://stackoverflow.com/search?tab=newest&q=docker)\n\n## Supported tags and respective `dockerfile` links\n\n* [`2.0.20200722.0`, `2`, `latest`](https://github.com/amazonlinux/container-images/blob/03d54f8c4d522bf712cffd6c8f9aafba0a875e78/Dockerfile)\n* [`2.0.20200722.0-with-sources`, `2-with-sources`, `with-sources`](https://github.com/amazonlinux/container-images/blob/1e7349845e029a2e6afe6dc473ef17d052e3546f/Dockerfile)\n* [`2018.03.0.20200602.1`, `2018.03`, `1`](https://github.com/amazonlinux/container-images/blob/f10932e08c75457eeb372bf1cc47ea2a4b8e98c8/Dockerfile)\n* [`2018.03.0.20200602.1-with-sources`, `2018.03-with-sources`, `1-with-sources`](https://github.com/amazonlinux/container-images/blob/8c9ee491689d901aa72719be0ec12087a5fa8faf/Dockerfile)\n\n## What is Amazon Linux?\n\nAmazon Linux is provided by Amazon Web Services (AWS). It is designed to provide a stable, secure, and high-performance execution environment for applications running on Amazon EC2. The full distribution includes packages that enable easy integration with AWS, including launch configuration tools and many popular AWS libraries and tools. AWS provides ongoing security and maintenance updates to all instances running Amazon Linux.\n\nThe Amazon Linux container image contains a minimal set of packages. To install additional packages, [use `yum`](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/managing-software.html).\n\nAWS provides two versions of Amazon Linux: [Amazon Linux 2](https://aws.amazon.com/amazon-linux-2/) and [Amazon Linux AMI](https://aws.amazon.com/amazon-linux-ami/).\n\nFor information on security updates for Amazon Linux, please refer to [Amazon Linux 2 Security Advisories](https://alas.aws.amazon.com/alas2.html) and [Amazon Linux AMI Security Advisories](https://alas.aws.amazon.com/). Note that Docker Hub's vulnerability scanning for Amazon Linux is currently based on RPM versions, which does not reflect the state of backported patches for vulnerabilities.\n\n## Where can I run Amazon Linux container images?\n\nYou can run Amazon Linux container images in any Docker based environment. Examples include, your laptop, in Amazon EC2 instances, and Amazon ECS clusters.\n\n## License\n\nAmazon Linux is available under the [GNU General Public License, version 2.0](https://github.com/aws/amazon-linux-docker-images/blob/master/LICENSE). Individual software packages are available under their own licenses; run `rpm -qi [package name]` or check `/usr/share/doc/[package name]-*` and `/usr/share/licenses/[package name]-*` for details.\n\nAs with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).\n\nSome additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `amazonlinux/` directory](https://github.com/docker-library/repo-info/tree/master/repos/amazonlinux).\n\n## Security\n\nFor information on security updates for Amazon Linux, please refer to [Amazon Linux 2 Security Advisories](https://alas.aws.amazon.com/alas2.html) and [Amazon Linux AMI Security Advisories](https://alas.aws.amazon.com/). Note that Docker Hub's vulnerability scanning for Amazon Linux is currently based on RPM versions, which does not reflect the state of backported patches for vulnerabilities.", + "usageText": "## Supported architectures\n\namd64, arm64v8\n\n## Where can I run Amazon Linux container images?\n\nYou can run Amazon Linux container images in any Docker based environment. Examples include, your laptop, in Amazon EC2 instances, and ECS clusters.\n\n## How do I install a software package from Extras repository in Amazon Linux 2?\n\nAvailable packages can be listed with the `amazon-linux-extras` command. Packages can be installed with the `amazon-linux-extras install ` command. Example: `amazon-linux-extras install rust1`\n\n## Will updates be available for Amazon Linux containers?\n\nSimilar to the Amazon Linux images for Amazon EC2 and on-premises use, Amazon Linux container images will get ongoing updates from Amazon in the form of security updates, bug fix updates, and other enhancements. Security bulletins for Amazon Linux are available at https://alas.aws.amazon.com/\n\n## Will AWS Support the current version of Amazon Linux going forward?\n\nYes; in order to avoid any disruption to your existing applications and to facilitate migration to Amazon Linux 2, AWS will provide regular security updates for Amazon Linux 2018.03 AMI and container image for 2 years after the final LTS build is announced. You can also use all your existing support channels such as AWS Support and Amazon Linux Discussion Forum to continue to submit support requests." + } + } + +For more information, see `Creating a public repository `__ in the *Amazon ECR Public User Guide* and `Repository catalog data `__ in the *Amazon ECR Public User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/delete-repository-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/delete-repository-policy.rst new file mode 100644 index 000000000..724d71dd5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/delete-repository-policy.rst @@ -0,0 +1,17 @@ +**To delete a repository policy in a public registry** + +The following ``delete-repository-policy`` example delete repository policy for the ECR Public repository in your AWS account. :: + + aws ecr-public delete-repository-policy \ + --repository-name project-a/nginx-web-app \ + --region us-east-1 + +Output:: + + { + "registryId": "123456789012", + "repositoryName": "project-a/nginx-web-app", + "policyText": "{\n \"Version\" : \"2008-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"AllowPush\",\n \"Effect\" : \"Allow\",\n \"Principal\" : {\n \"AWS\" : [ \"arn:aws:iam:"123456789012":user/eksuser1\", \"arn:aws:iam:"123456789012":user/admin\" ]\n },\n \"Action\" : [ \"ecr-public:BatchCheckLayerAvailability\", \"ecr-public:PutImage\", \"ecr-public:InitiateLayerUpload\", \"ecr-public:UploadLayerPart\", \"ecr-public:CompleteLayerUpload\" ]\n } ]\n}" + } + +For more information, see `Deleting a public repository policy statement `__ in the *Amazon ECR Public User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/delete-repository.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/delete-repository.rst new file mode 100644 index 000000000..cf8308e6a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/delete-repository.rst @@ -0,0 +1,20 @@ +**To delete a repository in a public registry** + +The following ``delete-repository`` example deletes a repository named ``project-a/nginx-web-app`` from your public registry. :: + + aws ecr-public delete-repository \ + --repository-name project-a/nginx-web-app + +Output:: + + { + "repository": { + "repositoryArn": "arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app", + "registryId": "123456789012", + "repositoryName": "project-a/nginx-web-app", + "repositoryUri": "public.ecr.aws/public-registry-custom-alias/project-a/nginx-web-app", + "createdAt": "2024-07-01T22:14:50.103000+00:00" + } + } + +For more information, see `Deleting a public repository `__ in the *Amazon ECR Public*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/describe-image-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/describe-image-tags.rst new file mode 100644 index 000000000..7dd562e2d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/describe-image-tags.rst @@ -0,0 +1,25 @@ +**Example 1: To describe image tag details in public repository** + +The following ``describe-image-tags`` example describe imagetags in the ``project-a/nginx-web-app`` sample repository. :: + + aws ecr-public describe-image-tags \ + --repository-name project-a/nginx-web-app \ + --region us-east-1 + +Output:: + + { + "imageTagDetails": [ + { + "imageTag": "latest", + "createdAt": "2024-07-10T22:29:00-05:00", + "imageDetail": { + "imageDigest": "sha256:b1f9deb5fe3711a3278379ebbcaefbc5d70a2263135db86bd27a0dae150546c2", + "imageSizeInBytes": 121956548, + "imagePushedAt": "2024-07-10T22:29:00-05:00", + "imageManifestMediaType": "application/vnd.docker.distribution.manifest.v2+json", + "artifactMediaType": "application/vnd.docker.container.image.v1+json" + } + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/describe-images.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/describe-images.rst new file mode 100644 index 000000000..a89779ede --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/describe-images.rst @@ -0,0 +1,82 @@ +**Example 1: To describe images in a public registry repository** + +The following ``describe-images`` example describes imagesDetails in a repository named ``project-a/nginx-web-app`` in a public registry. :: + + aws ecr-public describe-images \ + --repository-name project-a/nginx-web-app \ + --region us-east-1 + +Output:: + + { + "imageDetails": [ + { + "registryId": "123456789012", + "repositoryName": "project-a/nginx-web-app", + "imageDigest": "sha256:0d8c93e72e82fa070d49565c00af32abbe8ddfd7f75e39f4306771ae0628c7e8", + "imageTags": [ + "temp1.0" + ], + "imageSizeInBytes": 123184716, + "imagePushedAt": "2024-07-23T11:32:49-05:00", + "imageManifestMediaType": "application/vnd.docker.distribution.manifest.v2+json", + "artifactMediaType": "application/vnd.docker.container.image.v1+json" + }, + { + "registryId": "123456789012", + "repositoryName": "project-a/nginx-web-app", + "imageDigest": "sha256:b1f9deb5fe3711a3278379ebbcaefbc5d70a2263135db86bd27a0dae150546c2", + "imageTags": [ + "temp2.0" + ], + "imageSizeInBytes": 121956548, + "imagePushedAt": "2024-07-23T11:39:38-05:00", + "imageManifestMediaType": "application/vnd.docker.distribution.manifest.v2+json", + "artifactMediaType": "application/vnd.docker.container.image.v1+json" + }, + { + "registryId": "123456789012", + "repositoryName": "project-a/nginx-web-app", + "imageDigest": "sha256:f7a86a0760e2f8d7eff07e515fc87bf4bac45c35376c06f9a280f15ecad6d7e0", + "imageTags": [ + "temp3.0", + "latest" + ], + "imageSizeInBytes": 232108879, + "imagePushedAt": "2024-07-22T00:54:34-05:00", + "imageManifestMediaType": "application/vnd.docker.distribution.manifest.v2+json", + "artifactMediaType": "application/vnd.docker.container.image.v1+json" + } + ] + } + +For more information, see `Describe an image in a public repository `__ in the *Amazon ECR Public*. + +**Example 2: To describe images from the repository by sort imageTags & imagePushedAt** + +The following ``describe-images`` example describe images within repository named `project-a/nginx-web-app` in a public registry. :: + + aws ecr-public describe-images \ + --repository-name project-a/nginx-web-app \ + --query 'sort_by(imageDetails,& imagePushedAt)[*].imageTags[*]' \ + --output text + +Output:: + + temp3.0 latest + temp1.0 + temp2.0 + +**Example 3: To describe images from the repository to generate the last 2 image tags pushed in the repository** + +The following ``describe-images`` example gets imagetags details from the repository named ``project-a/nginx-web-app`` in a public registry and queries the result to display only the first two records. :: + + aws ecr-public describe-images \ + --repository-name project-a/nginx-web-app \ + --query 'sort_by(imageDetails,& imagePushedAt)[*].imageTags[*] | [0:2]' \ + --output text + +Output:: + + temp3.0 latest + temp1.0 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/describe-registries.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/describe-registries.rst new file mode 100644 index 000000000..8c563bf33 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/describe-registries.rst @@ -0,0 +1,26 @@ +**To describe all registries in a public registry** + +The following ``describe-registries`` example describes all registries in your account. :: + + aws ecr-public describe-registries + +Output:: + + { + "registries": [ + { + "registryId": "123456789012", + "registryArn": "arn:aws:ecr-public::123456789012:registry/123456789012", + "registryUri": "public.ecr.aws/publicregistrycustomalias", + "verified": false, + "aliases": [ + { + "name": "publicregistrycustomalias", + "status": "ACTIVE", + "primaryRegistryAlias": true, + "defaultRegistryAlias": true + } + ] + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/describe-repository.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/describe-repository.rst new file mode 100644 index 000000000..79761e292 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/describe-repository.rst @@ -0,0 +1,43 @@ +**Example 1: To describe a repository in a public registry** + +The following ``describe-repositories`` example describes a repository named ``project-a/nginx-web-app`` in a public registry. :: + + aws ecr-public describe-repositories \ + --repository-name project-a/nginx-web-app + +Output:: + + { + "repositories": [ + { + "repositoryArn": "arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app", + "registryId": "123456789012", + "repositoryName": "project-a/nginx-web-app", + "repositoryUri": "public.ecr.aws/public-registry-custom-alias/project-a/nginx-web-app", + "createdAt": "2024-07-07T00:07:56.526000-05:00" + } + ] + } + +**Example 2: To describe all repositories in a public registry in a table** + +The following ``describe-repositories`` example describes all repositories in a public registry and then outputs the repository names into a table format. :: + + aws ecr-public describe-repositories \ + --region us-east-1 \ + --output table \ + --query "repositories[*].repositoryName" + +Output:: + + ----------------------------- + | DescribeRepositories | + +---------------------------+ + | project-a/nginx-web-app | + | nginx | + | myfirstrepo1 | + | helm-test-chart | + | test-ecr-public | + | nginx-web-app | + | sample-repo | + +---------------------------+ \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/get-authorization-token.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/get-authorization-token.rst new file mode 100644 index 000000000..52c5fad05 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/get-authorization-token.rst @@ -0,0 +1,32 @@ +**Example 1: To retrieve an authorization token for any Amazon ECR public registry that the IAM principal has access** + +The following ``get-authorization-token`` example gets an authorization token with the AWS CLI and sets it to an environment variable. :: + + aws ecr-public get-authorization-token \ + --region us-east-1 + +Output:: + + { + "authorizationData": { + "authorizationToken": "QVdTOmV5SndZWGxzYjJKJFHDSFKJHERWUY65IOU36TRYEGFNSDLRIUOTUYTHJKLDFGOcmFUQk9OSFV2UVV4a0x6Sm1ZV0Z6TDFndlZtUjJSVmgxVEVObU9IZEdTWEZxU210c1JUQm5RWGxOUVV4NlNFUnROWG92ZWtGbWJFUjRkbWMyV0U5amFpczRNWGxTVkM5Tk5qWkVUM2RDYm05TVJqSkxjV3BsUVZvMmFYSm5iV1ZvVFdGSVRqVlFMMHN4VnpsTGVXbDFRWGRoTmpsbWFuQllhbVl6TkdGaGMwUjJha2xsYUhscWRscHZTRUpFVkVnNVQwNUdOVFpPY2xZclVFNVFVWGRSVFZvd04xUkhjVGxZZFVkQ1ZFZHBPRUptUzBVclYxQldMMjVMVkRsd2VFVlNSa1EzTWpWSlIxRkVWakJGZFZOVWEzaFBSVk5FWWpSc1lWZHZWMHBSYmxaMlJYWmhZekpaWVVOeFppdFlUa2xKU1RCdFUwdElVbXRJYlhGRk1WaFhNVTVRTkdwc1FYRlVNVWxZZUhkV05Xa3ZXWGd3ZUVZMWIyeE5VRU5QZEdSaWRHOU9lakZOZVdwTVZEUkNRVzlvYzNKSlpsRXhhR2cwWjJwRVJFVjNWalEzYjNCUmRIcEZUR1pYU1Rsc1kxSlNNbU5hUW5wRE1tOUpRMHR5Y1hkeGNXNDVMMmx4Um5GUlVGQnhjMVpQZG5WYUswOW9SQ3RPY0hwSlRsUk5lVXQyY0c1b1FsQjVZVEprVmtSdmJsQklOM05RU3pkNmQydERhMkZ5VmxSRmFVUndWVlE1ZGtsVWFXUkJWMFZEWVhoSFdXTk5VMXBTYTFreVRHZEVlVVZ0ZFRWRk4xTTVjRXBDUjBRMlYyTkdPVWhGWkVweVVGcEVaRFJxZUVablkwNXFaamh5YkVKWmJGSTNOVzFXSzFjdllXSTVTMWx2YUZacksxSnJWSFJ0Wml0T1NFSnpWVFZvV204eVFYbzFWRU5SYjNaR01Va3hPR3h2TWxkNVJsSmpUbTVSTjNjemJsUkdVRlZKVDBjeE9VeHlXVEpGVFRSS2NWbFdkVEJrV0VreFVsSktXbkpCVGtsMFdVZEJOMjltWjFFNGVHRktNbGRuWlVoUlNXNXdZV3A0VjI5M2FYZGljbE5tZGpkQ1ZYTmhOVFUyTDBzeVpteDBka0pUTVdkNGJ6TkxkSEJDYml0cE0waGhTbVpEZEZkQ00yOU1TM1pXTDNSVFlWaFpWelZXVWxjNFRXNXdhR3BhUmpoU1FuWnFkRlJMVW5abGRYRlNjVVJKZDBaSFpXUTRabEZUTUdOTVQwcFFkVXAyYjA5Tk9UaFlZMjEwVnpFMlpXdE9hMnBWV0hST1owUkpVV3R1VFU1dGJXWjNNVGc0VTAxUlNHZE9TbXRMY2tWYWJVeFljVVk0ZWpsTFdWWlRNbEZMVDJkMk1FaFBTMDl5YzJSM1NqTlplRGhUWVVOQlJGWnRlbkU1WTBKVFdqTktSR05WTkd0RGNEVjZNalJHVXpkVk9HTnVSa2xLUVd4SVJDODJXbGcyYldGemJVczJPRVp6TDBoNFMwWkRUMmdyYldGa1QwWjVhMlZQTm5SQ1l6QkpNbFpyVUhSaGVIbFVOR296VjFGVlQyMHpNeTlPWVVoSk1FdDBWalZFU2pneU5rcHNLemQxZDNwcVp6RlNja3AwVm10VU0yRnRWWGMzZDJnMFduSnFjVXczWTBjclNXeHFUVlUyVkZwWGNWY3ZSV0V6WW1oT2JIRklZVlJHU1RrMGEyOVJiMHBPVUhORk9FdERjbFJZY0daS2VVdHRZa2x5YjFORE4zSkJaWEJPZUU5eGR6WnhZMlY1WXprM1JtSkZhVFZFYkVFck5EUk9ZMWRyVEVNd1dqa2lMQ0prWVhSaGEyVjVJam9pWlhsS1VWSkdaMmxQYVVwV1ZXeENhVk5YVm14WFdFWk5VMjFrV21SRE9YaGFhWFF4VkhwS1MyTkljSHBVUms0MFlWaHNTbUpIYUhsWFZHdDZZVWhqZDFKRmFETldNbFYyWTJ0cmVVMUlTbHBWUjJONFRURlJNMDlHYUd4U01uaHVWRVJzUWxaV1pGZFJibkJLV1RCYU5HTXpUakpXTUhoWFRrWndhRTVyTVVwVFZFSkdWV3RzTUZaVVpEQlRSVGxyVkVkb2FGUlVVWHBaTVhCSFQxWmFOVlJxU20xaVZXUnVTM3BaTlZaV2NIcFdWMlJGVkcwMVRHSXdSakpXUnpoNlVsUm5kbUpzUmpGT2FUazFWVzFTY0dWR1FtOVdiVEZoVmpKc1NWRllhRmRTUkZwc1V6SkdSbUpWYkhCVlNFbDJWVzB4Ym1OVk1IWmFhelZ3WkZoa1FtVnFUa3BpTTJoTVRWVk9jMVo2V2t4aWJFWnJWRVUxVW1ONlp6QldWVFZPWW14c01sZFlZekprUjFwVFkxaE9kRnBXWkhaVFZWcGhWa2MxU2xWRlVtdFRiWE16WWpOVmVrNXFSa2RVTTJSd1QwaGtXbVJIVVhsbGJYQkRaRlp2ZGxvd1ZqWmlNbEl4Vkc1T2FtSldjRU5VU0ZVd1kwZDRjbU14WkhaVVYwNTRaRzV2TWxSVlVsQmpiSEJPVkc1VmVsZEZPVzVYYkVwWlUyNWtVbGRZWkZWaVdFWlNUVzF3VFZSSVFraE9XRnBwWVZoak0xUnJXak5OYm04eFpEQk9XbEZzYkhSTmEyaHpaRmRTUTJORVFUQlpWMk01VUZOSmMwbHJiRUpTUTBrMlNXNUZlbHA2U1RGVVZXeFVZekIwYVU5RWFEVmtiRVpzVVZWc2QxbHJWbmxOYW13MVZWaG9UazVzVWpWbFJHaDZZMjFHVkZVeFFubFZXRTVLVGpCMGFXSlZNWGhpUjBwTVlUSTVNRTVVYXpCTE0wVnlWakF4VG1WSE5VcGtSa0pRVld4V1UwOVdVWGhqTVc4eVZraFdlVnA2VGsxV01tUnhVV3Q0ZEdGcVRsUk5hMnN5V2tSV2FtUkdVakZqVm5CUFVrUlNjR0pHUm1GbGFscDRXV2x6Y2xFd1VYcGhSRnBZVmtaU2FVNXVSVFZYYlVaVFpXdHdkVmRZVGpaVGEyaDBWMnhDVlU0elZrWlRSRUpIVlVWa2MwNVlhRFZsUkVwelQwWkNSbE5WY0ZGWFNFWXhaVmMxVEZsVE9VeFdhMGt4V1ROS1Rrd3pXazFpYkhCdFVrUldWRlJHVlhaTmJVazBZbFZzUkV3d2N6UldSV2MxVDBWa05tSXpiM2hXVms1V1ZtMDFiRkZUT1hoUFJVcHpUMGRzU2xaSVJrTkxNVTVFWWtaa05WWnViRmRYVjJRd1RXcG5kMVJWUmpCa1JYQkdZVlYwZFZNeU1VVlpWVTVQV25wa1ExZHFVbE5sUjBaRVlWVTFXbVZwY3pSTE1HTTFVbFZGTlZwRll6UlRSMVoxVFcxb05XTnJkRUpWZWxsM1RETmplbUV4WkdGU1JsWm9ZVVpzZEdWR2JFTlVNblJYVkRCNE5HUXlkRXhaTWxKTlYxZDBWRTB5YUZwaFJsazFVMGR3Y0ZGVk9YaGxhekV6VVZRd09VbHVNRDBpTENKMlpYSnphVzl1SWpvaU15SXNJblI1Y0dVaU9pSkVRVlJCWDB0RldTSXNJbVY0Y0dseVlYUnBiMjRpT2pFM01qRTVOVGMzTmpKOQ==", + "expiresAt": "2024-07-25T21:37:26.301000-04:00" + } + } + +For more information, see `Amazon ECR public registries `__ in the *Amazon ECR Public*. + +**Example 2: To retrieve an authorization token for any Amazon ECR public registry that the IAM principal has access** + +The following ``get-authorization-token`` example gets an authorization token with the AWS CLI and sets it to an environment variable. :: + + aws ecr-public get-authorization-token \ + --region us-east-1 \ + --output=text \ + --query 'authorizationData.authorizationToken' + +Output:: + + QVdTOmV5SndZWGxzYjJKJFHDSFKJHERWUY65IOU36TRYEGFNSDLRIUOTUYTHJKLDFGOcmFUQk9OSFV2UVV4a0x6Sm1ZV0Z6TDFndlZtUjJSVmgxVEVObU9IZEdTWEZxU210c1JUQm5RWGxOUVV4NlNFUnROWG92ZWtGbWJFUjRkbWMyV0U5amFpczRNWGxTVkM5Tk5qWkVUM2RDYm05TVJqSkxjV3BsUVZvMmFYSm5iV1ZvVFdGSVRqVlFMMHN4VnpsTGVXbDFRWGRoTmpsbWFuQllhbVl6TkdGaGMwUjJha2xsYUhscWRscHZTRUpFVkVnNVQwNUdOVFpPY2xZclVFNVFVWGRSVFZvd04xUkhjVGxZZFVkQ1ZFZHBPRUptUzBVclYxQldMMjVMVkRsd2VFVlNSa1EzTWpWSlIxRkVWakJGZFZOVWEzaFBSVk5FWWpSc1lWZHZWMHBSYmxaMlJYWmhZekpaWVVOeFppdFlUa2xKU1RCdFUwdElVbXRJYlhGRk1WaFhNVTVRTkdwc1FYRlVNVWxZZUhkV05Xa3ZXWGd3ZUVZMWIyeE5VRU5QZEdSaWRHOU9lakZOZVdwTVZEUkNRVzlvYzNKSlpsRXhhR2cwWjJwRVJFVjNWalEzYjNCUmRIcEZUR1pYU1Rsc1kxSlNNbU5hUW5wRE1tOUpRMHR5Y1hkeGNXNDVMMmx4Um5GUlVGQnhjMVpQZG5WYUswOW9SQ3RPY0hwSlRsUk5lVXQyY0c1b1FsQjVZVEprVmtSdmJsQklOM05RU3pkNmQydERhMkZ5VmxSRmFVUndWVlE1ZGtsVWFXUkJWMFZEWVhoSFdXTk5VMXBTYTFreVRHZEVlVVZ0ZFRWRk4xTTVjRXBDUjBRMlYyTkdPVWhGWkVweVVGcEVaRFJxZUVablkwNXFaamh5YkVKWmJGSTNOVzFXSzFjdllXSTVTMWx2YUZacksxSnJWSFJ0Wml0T1NFSnpWVFZvV204eVFYbzFWRU5SYjNaR01Va3hPR3h2TWxkNVJsSmpUbTVSTjNjemJsUkdVRlZKVDBjeE9VeHlXVEpGVFRSS2NWbFdkVEJrV0VreFVsSktXbkpCVGtsMFdVZEJOMjltWjFFNGVHRktNbGRuWlVoUlNXNXdZV3A0VjI5M2FYZGljbE5tZGpkQ1ZYTmhOVFUyTDBzeVpteDBka0pUTVdkNGJ6TkxkSEJDYml0cE0waGhTbVpEZEZkQ00yOU1TM1pXTDNSVFlWaFpWelZXVWxjNFRXNXdhR3BhUmpoU1FuWnFkRlJMVW5abGRYRlNjVVJKZDBaSFpXUTRabEZUTUdOTVQwcFFkVXAyYjA5Tk9UaFlZMjEwVnpFMlpXdE9hMnBWV0hST1owUkpVV3R1VFU1dGJXWjNNVGc0VTAxUlNHZE9TbXRMY2tWYWJVeFljVVk0ZWpsTFdWWlRNbEZMVDJkMk1FaFBTMDl5YzJSM1NqTlplRGhUWVVOQlJGWnRlbkU1WTBKVFdqTktSR05WTkd0RGNEVjZNalJHVXpkVk9HTnVSa2xLUVd4SVJDODJXbGcyYldGemJVczJPRVp6TDBoNFMwWkRUMmdyYldGa1QwWjVhMlZQTm5SQ1l6QkpNbFpyVUhSaGVIbFVOR296VjFGVlQyMHpNeTlPWVVoSk1FdDBWalZFU2pneU5rcHNLemQxZDNwcVp6RlNja3AwVm10VU0yRnRWWGMzZDJnMFduSnFjVXczWTBjclNXeHFUVlUyVkZwWGNWY3ZSV0V6WW1oT2JIRklZVlJHU1RrMGEyOVJiMHBPVUhORk9FdERjbFJZY0daS2VVdHRZa2x5YjFORE4zSkJaWEJPZUU5eGR6WnhZMlY1WXprM1JtSkZhVFZFYkVFck5EUk9ZMWRyVEVNd1dqa2lMQ0prWVhSaGEyVjVJam9pWlhsS1VWSkdaMmxQYVVwV1ZXeENhVk5YVm14WFdFWk5VMjFrV21SRE9YaGFhWFF4VkhwS1MyTkljSHBVUms0MFlWaHNTbUpIYUhsWFZHdDZZVWhqZDFKRmFETldNbFYyWTJ0cmVVMUlTbHBWUjJONFRURlJNMDlHYUd4U01uaHVWRVJzUWxaV1pGZFJibkJLV1RCYU5HTXpUakpXTUhoWFRrWndhRTVyTVVwVFZFSkdWV3RzTUZaVVpEQlRSVGxyVkVkb2FGUlVVWHBaTVhCSFQxWmFOVlJxU20xaVZXUnVTM3BaTlZaV2NIcFdWMlJGVkcwMVRHSXdSakpXUnpoNlVsUm5kbUpzUmpGT2FUazFWVzFTY0dWR1FtOVdiVEZoVmpKc1NWRllhRmRTUkZwc1V6SkdSbUpWYkhCVlNFbDJWVzB4Ym1OVk1IWmFhelZ3WkZoa1FtVnFUa3BpTTJoTVRWVk9jMVo2V2t4aWJFWnJWRVUxVW1ONlp6QldWVFZPWW14c01sZFlZekprUjFwVFkxaE9kRnBXWkhaVFZWcGhWa2MxU2xWRlVtdFRiWE16WWpOVmVrNXFSa2RVTTJSd1QwaGtXbVJIVVhsbGJYQkRaRlp2ZGxvd1ZqWmlNbEl4Vkc1T2FtSldjRU5VU0ZVd1kwZDRjbU14WkhaVVYwNTRaRzV2TWxSVlVsQmpiSEJPVkc1VmVsZEZPVzVYYkVwWlUyNWtVbGRZWkZWaVdFWlNUVzF3VFZSSVFraE9XRnBwWVZoak0xUnJXak5OYm04eFpEQk9XbEZzYkhSTmEyaHpaRmRTUTJORVFUQlpWMk01VUZOSmMwbHJiRUpTUTBrMlNXNUZlbHA2U1RGVVZXeFVZekIwYVU5RWFEVmtiRVpzVVZWc2QxbHJWbmxOYW13MVZWaG9UazVzVWpWbFJHaDZZMjFHVkZVeFFubFZXRTVLVGpCMGFXSlZNWGhpUjBwTVlUSTVNRTVVYXpCTE0wVnlWakF4VG1WSE5VcGtSa0pRVld4V1UwOVdVWGhqTVc4eVZraFdlVnA2VGsxV01tUnhVV3Q0ZEdGcVRsUk5hMnN5V2tSV2FtUkdVakZqVm5CUFVrUlNjR0pHUm1GbGFscDRXV2x6Y2xFd1VYcGhSRnBZVmtaU2FVNXVSVFZYYlVaVFpXdHdkVmRZVGpaVGEyaDBWMnhDVlU0elZrWlRSRUpIVlVWa2MwNVlhRFZsUkVwelQwWkNSbE5WY0ZGWFNFWXhaVmMxVEZsVE9VeFdhMGt4V1ROS1Rrd3pXazFpYkhCdFVrUldWRlJHVlhaTmJVazBZbFZzUkV3d2N6UldSV2MxVDBWa05tSXpiM2hXVms1V1ZtMDFiRkZUT1hoUFJVcHpUMGRzU2xaSVJrTkxNVTVFWWtaa05WWnViRmRYVjJRd1RXcG5kMVJWUmpCa1JYQkdZVlYwZFZNeU1VVlpWVTVQV25wa1ExZHFVbE5sUjBaRVlWVTFXbVZwY3pSTE1HTTFVbFZGTlZwRll6UlRSMVoxVFcxb05XTnJkRUpWZWxsM1RETmplbUV4WkdGU1JsWm9ZVVpzZEdWR2JFTlVNblJYVkRCNE5HUXlkRXhaTWxKTlYxZDBWRTB5YUZwaFJsazFVMGR3Y0ZGVk9YaGxhekV6VVZRd09VbHVNRDBpTENKMlpYSnphVzl1SWpvaU15SXNJblI1Y0dVaU9pSkVRVlJCWDB0RldTSXNJbVY0Y0dseVlYUnBiMjRpT2pFM01qRTVOVGMzTmpKOQ + +For more information, see `Amazon ECR public registries `__ in the *Amazon ECR Public*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/get-login-password.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/get-login-password.rst new file mode 100644 index 000000000..99879cc05 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/get-login-password.rst @@ -0,0 +1,27 @@ +**Example 1: To authenticate docker to an Amazon ECR public registry** + +The following ``get-login-password`` example retrieves and displays an authentication token using the GetAuthorizationToken API that you can use to authenticate to an Amazon ECR public registry. :: + + aws ecr-public get-login-password \ + --region us-east-1 + | docker login \ + --username AWS \ + --password-stdin public.ecr.aws + +This command produces no output in the terminal but instead pipes the output to Docker. + +For more information, see `Authenticate to the public registry `__ in the *Amazon ECR Public*. + +**Example 2: To authenticate docker to your own custom AmazonECR public registry** + +The following ``get-login-password`` example retrieves and displays an authentication token using the GetAuthorizationToken API that you can use to authenticate to your own custom Amazon ECR public registry. :: + + aws ecr-public get-login-password \ + --region us-east-1 \ + | docker login \ + --username AWS \ + --password-stdin public.ecr.aws/ + +This command produces no output in the terminal but insteads pipes the output to Docker. + +For more information, see `Authenticate to your own Amazon ECR Public `__ in the *Amazon ECR Public*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/get-login-password_description.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/get-login-password_description.rst new file mode 100644 index 000000000..a2017bf8e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/get-login-password_description.rst @@ -0,0 +1,3 @@ +**To log in to an Amazon ECR public registry** + +Retrieves and displays an authentication token using the GetAuthorizationToken API that you can use to authenticate to an Amazon ECR public registry. You can pass the authorization token to the login command of the container client of your preference, such as the Docker CLI. After you have authenticated to an Amazon ECR public registry with this command, you can use the client to push and pull images from that registry as long as your IAM principal has access to do so until the token expires. The authorization token is valid for 12 hours. This command requires the 'ecr-public:GetAuthorizationToken' and 'sts:GetServiceBearerToken' permissions. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/get-registry-catalog-data.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/get-registry-catalog-data.rst new file mode 100644 index 000000000..e293089a4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/get-registry-catalog-data.rst @@ -0,0 +1,14 @@ +**To retrieve catalog metadata for a public ECR registry** + +The following ``get-registry-catalog-data`` retrieves catalog metadata for an ECR public registry. :: + + aws ecr-public get-registry-catalog-data \ + --region us-east-1 + +Output:: + + { + "registryCatalogData": { + "displayName": "YourCustomPublicRepositoryalias" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/get-repository-catalog-data.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/get-repository-catalog-data.rst new file mode 100644 index 000000000..b3db31e94 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/get-repository-catalog-data.rst @@ -0,0 +1,29 @@ +**To retrieve catalog metadata for a repository in a public registry** + +The following ``get-repository-catalog-data`` example lists the catalog metadata for the repository ``project-a/nginx-web-app`` in a public registry. :: + + aws ecr-public get-repository-catalog-data \ + --repository-name project-a/nginx-web-app \ + --region us-east-1 + +Output:: + + { + "catalogData": { + "description": "My project-a ECR Public Repository", + "architectures": [ + "ARM", + "ARM 64", + "x86", + "x86-64" + ], + "operatingSystems": [ + "Linux" + ], + "logoUrl": "https://d3g9o9u8re44ak.cloudfront.net/logo/491d3846-8f33-4d8b-a10c-c2ce271e6c0d/4f09d87c-2569-4916-a932-5c296bf6f88a.png", + "aboutText": "## Quick reference\n\nMaintained ", + "usageText": "## Supported architectures\n\namd64, arm64v8\n\n## " + } + } + +For more information, see `Repository catalog data `__ in the *Amazon ECR Public*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/get-repository-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/get-repository-policy.rst new file mode 100644 index 000000000..e684c775a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/get-repository-policy.rst @@ -0,0 +1,17 @@ +**To get a repository policy associated with the repository** + +The following ``get-repository-policy`` example gets a repository policy associated with the repository. :: + + aws ecr-public get-repository-policy \ + --repository-name project-a/nginx-web-app \ + --region us-east-1 + +Output:: + + { + "registryId": "123456789012", + "repositoryName": "project-a/nginx-web-app", + "policyText": "{\n \"Version\" : \"2008-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"AllowPush\",\n \"Effect\" : \"Allow\",\n \"Principal\" : {\n \"AWS\" : [ \"arn:aws:iam::123456789012:user/eksuser1\", \"arn:aws:iam::123456789012:user/admin\" ]\n },\n \"Action\" : [ \"ecr-public:BatchCheckLayerAvailability\", \"ecr-public:PutImage\", \"ecr-public:InitiateLayerUpload\", \"ecr-public:UploadLayerPart\", \"ecr-public:CompleteLayerUpload\" ]\n } ]\n}" + } + +For more information, see `Use GetRepositoryPolicy with an AWS SDK or CLI `__ in the *Amazon ECR Public User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/list-tags-for-resource.rst new file mode 100644 index 000000000..fd700be22 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/list-tags-for-resource.rst @@ -0,0 +1,28 @@ +**To list tags for a public repository in a public registry** + +The following ``list-tags-for-resource`` example lists the tags for a resource named ``project-a/nginx-web-app`` in a public registry. :: + + aws ecr-public list-tags-for-resource \ + --resource-arn arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app \ + --region us-east-1 + +Output:: + + { + "tags": [ + { + "Key": "Environment", + "Value": "Prod" + }, + { + "Key": "stack", + "Value": "dev1" + }, + { + "Key": "Name", + "Value": "project-a/nginx-web-app" + } + ] + } + +For more information, see `List tags for a public repository `__ in the *Amazon ECR Public*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/put-registry-catalog-data.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/put-registry-catalog-data.rst new file mode 100644 index 000000000..57c83973e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/put-registry-catalog-data.rst @@ -0,0 +1,15 @@ +**To create or update catalog metadata for a public ECR registry** + +The following ``put-registry-catalog-data`` creates or updates catalog metadata for an ECR public registry. Only accounts that have the verified account badge can have a registry display name. :: + + aws ecr-public put-registry-catalog-data \ + --region us-east-1 \ + --display-name + +Output:: + + { + "registryCatalogData": { + "displayName": "YourCustomPublicRepositoryalias" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/put-repository-catalog-data.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/put-repository-catalog-data.rst new file mode 100644 index 000000000..678b9fd87 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/put-repository-catalog-data.rst @@ -0,0 +1,51 @@ +**To create or update the catalog data for a repository in a public registry** + +The following ``put-repository-catalog-data`` example creates or update catalog data for reposiotry named `project-a/nginx-web-app` in a public registry, along with logoImageBlob, aboutText, usageText and tags information. :: + + aws ecr-public put-repository-catalog-data \ + --repository-name project-a/nginx-web-app \ + --cli-input-json file://repository-catalog-data.json \ + --region us-east-1 + +Contents of ``repository-catalog-data.json``:: + + { + "repositoryName": "project-a/nginx-web-app", + "catalogData": { + "description": "My project-a ECR Public Repository", + "architectures": [ + "ARM", + "ARM 64", + "x86", + "x86-64" + ], + "operatingSystems": [ + "Linux" + ], + "logoImageBlob": "iVBORw0KGgoA<>ErkJggg==", + "aboutText": "## Quick reference.", + "usageText": "## Supported architectures are as follows." + } + } + +Output:: + + { + "catalogData": { + "description": "My project-a ECR Public Repository", + "architectures": [ + "ARM", + "ARM 64", + "x86", + "x86-64" + ], + "operatingSystems": [ + "Linux" + ], + "logoUrl": "https://d3g9o9u8re44ak.cloudfront.net/logo/df86cf58-ee60-4061-b804-0be24d97ccb1/4a9ed9b2-69e4-4ede-b924-461462d20ef0.png", + "aboutText": "## Quick reference.", + "usageText": "## Supported architectures are as follows." + } + } + +For more information, see `Repository catalog data `__ in the *Amazon ECR Public*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/set-repository-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/set-repository-policy.rst new file mode 100644 index 000000000..b87b257f4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/set-repository-policy.rst @@ -0,0 +1,118 @@ +**Example 1: To set a repository policy to allow a pull on the repository** + +The following ``set-repository-policy`` example applies an ECR public repository policy to the specified repository to control access permissions. :: + + aws ecr-public set-repository-policy \ + --repository-name project-a/nginx-web-app \ + --policy-text file://my-repository-policy.json + +Contents of ``my-repository-policy.json``:: + + { + "Version" : "2008-10-17", + "Statement" : [ + { + "Sid" : "allow public pull", + "Effect" : "Allow", + "Principal" : "*", + "Action" : [ + "ecr:BatchCheckLayerAvailability", + "ecr:BatchGetImage", + "ecr:GetDownloadUrlForLayer" + ] + } + ] + } + +Output:: + + { + "registryId": "12345678901", + "repositoryName": "project-a/nginx-web-app", + "policyText": "{\n \"Version\" : \"2008-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"allow public pull\",\n \"Effect\" : \"Allow\",\n \"Principal\" : \"*\",\n \"Action\" : [ \"ecr:BatchCheckLayerAvailability\", \"ecr:BatchGetImage\", \"ecr:GetDownloadUrlForLayer\" ]\n } ]\n}" + } + +For more information, see `Setting a repository policy statement `__ in the *Amazon ECR Public User Guide*. + +**Example 2: To set a repository policy to allow an IAM user within your account to push images** + +The following ``set-repository-policy`` example allows an IAM user within your account to push images using to an ECR repository in your AWS account using the input file named ``file://my-repository-policy.json`` as policy text. :: + + aws ecr-public set-repository-policy \ + --repository-name project-a/nginx-web-app \ + --policy-text file://my-repository-policy.json + +Contents of ``my-repository-policy.json``:: + + { + "Version": "2008-10-17", + "Statement": [ + { + "Sid": "AllowPush", + "Effect": "Allow", + "Principal": { + "AWS": [ + "arn:aws:iam::account-id:user/push-pull-user-1", + "arn:aws:iam::account-id:user/push-pull-user-2" + ] + }, + "Action": [ + "ecr-public:BatchCheckLayerAvailability", + "ecr-public:PutImage", + "ecr-public:InitiateLayerUpload", + "ecr-public:UploadLayerPart", + "ecr-public:CompleteLayerUpload" + ] + } + ] + } + +Output:: + + { + "registryId": "12345678901", + "repositoryName": "project-a/nginx-web-app", + "policyText": "{\n \"Version\" : \"2008-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"AllowPush\",\n \"Effect\" : \"Allow\",\n \"Principal\" : {\n \"AWS\" : [ \"arn:aws:iam::12345678901:user/admin\", \"arn:aws:iam::12345678901:user/eksuser1\" ]\n },\n \"Action\" : [ \"ecr-public:BatchCheckLayerAvailability\", \"ecr-public:PutImage\", \"ecr-public:InitiateLayerUpload\", \"ecr-public:UploadLayerPart\", \"ecr-public:CompleteLayerUpload\" ]\n } ]\n}" + } + +For more information, see `Setting a repository policy statement `__ in the *Amazon ECR Public User Guide*. + +**Example 3: To set a repository policy to allow an IAM user from different account to push images** + +The following ``set-repository-policy`` example allows a specific account to push images using cli input file://my-repository-policy.json in your AWS account. :: + + aws ecr-public set-repository-policy \ + --repository-name project-a/nginx-web-app \ + --policy-text file://my-repository-policy.json + +Contents of ``my-repository-policy.json``:: + + { + "Version": "2008-10-17", + "Statement": [ + { + "Sid": "AllowCrossAccountPush", + "Effect": "Allow", + "Principal": { + "AWS": "arn:aws:iam::other-or-same-account-id:role/RoleName" + }, + "Action": [ + "ecr-public:BatchCheckLayerAvailability", + "ecr-public:PutImage", + "ecr-public:InitiateLayerUpload", + "ecr-public:UploadLayerPart", + "ecr-public:CompleteLayerUpload" + ] + } + ] + } + +Output:: + + { + "registryId": "12345678901", + "repositoryName": "project-a/nginx-web-app", + "policyText": "{\n \"Version\" : \"2008-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"AllowCrossAccountPush\",\n \"Effect\" : \"Allow\",\n \"Principal\" : {\n \"AWS\" : \"arn:aws:iam::12345678901:role/RoleName\"\n },\n \"Action\" : [ \"ecr-public:BatchCheckLayerAvailability\", \"ecr-public:PutImage\", \"ecr-public:InitiateLayerUpload\", \"ecr-public:UploadLayerPart\", \"ecr-public:CompleteLayerUpload\" ]\n } ]\n}" + } + +For more information, see `Public repository policy examples `__ in the *Amazon ECR Public User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/tag-resource.rst new file mode 100644 index 000000000..1d0708873 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/tag-resource.rst @@ -0,0 +1,21 @@ +**Example 1: To tags an existing public repository in a public registry** + +The following ``tag-resource`` example tags a repository named ``project-a/nginx-web-app`` in a public registry. :: + + aws ecr-public tag-resource \ + --resource-arn arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app \ + --tags Key=stack,Value=dev \ + --region us-east-1 + +For more information, see `Using Tags for a public repository `__ in the *Amazon ECR Public*. + +**Example 2: To tag an existing public repository with multiple tags in a public registry.** + +The following ``tag-resource`` example tags an existing repository with multiple tags. :: + + aws ecr-public tag-resource \ + --resource-arn arn:aws:ecr-public::890517186334:repository/project-a/nginx-web-app \ + --tags Key=key1,Value=value1 Key=key2,Value=value2 Key=key3,Value=value3 \ + --region us-east-1 + +For more information, see `Using Tags for a public repository `__ in the *Amazon ECR Public*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/untag-resource.rst new file mode 100644 index 000000000..4ff4445b5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr-public/untag-resource.rst @@ -0,0 +1,12 @@ +**Example 1: To untags an existing public repository in a public registry** + +The following ``untag-resource`` example tags a repository named ``project-a/nginx-web-app`` in a public registry. :: + + aws ecr-public untag-resource \ + --resource-arn arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app \ + --tag-keys stack \ + --region us-east-1 + +This command produces no output. + +For more information, see `Using Tags for a public repository `__ in the *Amazon ECR Public*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/batch-check-layer-availability.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/batch-check-layer-availability.rst new file mode 100644 index 000000000..fe201d158 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/batch-check-layer-availability.rst @@ -0,0 +1,21 @@ +**To check the availability of a layer** + +The following ``batch-check-layer-availability`` example checks the availability of a layer with the digest ``sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed`` in the ``cluster-autoscaler`` repository. :: + + aws ecr batch-check-layer-availability \ + --repository-name cluster-autoscaler \ + --layer-digests sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed + +Output:: + + { + "layers": [ + { + "layerDigest": "sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed", + "layerAvailability": "AVAILABLE", + "layerSize": 2777, + "mediaType": "application/vnd.docker.container.image.v1+json" + } + ], + "failures": [] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/batch-delete-image.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/batch-delete-image.rst new file mode 100644 index 000000000..f4653f7f6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/batch-delete-image.rst @@ -0,0 +1,45 @@ +**Example 1: To delete an image** + +The following ``batch-delete-image`` example deletes an image with the tag ``precise`` in the specified repository in the default registry for an account. :: + + aws ecr batch-delete-image \ + --repository-name ubuntu \ + --image-ids imageTag=precise + +Output:: + + { + "failures": [], + "imageIds": [ + { + "imageTag": "precise", + "imageDigest": "sha256:19665f1e6d1e504117a1743c0a3d3753086354a38375961f2e665416ef4b1b2f" + } + ] + } + +**Example 2: To delete multiple images** + +The following ``batch-delete-image`` example deletes all images tagged with ``prod`` and ``team1`` in the specified repository. :: + + aws ecr batch-delete-image \ + --repository-name MyRepository \ + --image-ids imageTag=prod imageTag=team1 + +Output:: + + { + "imageIds": [ + { + "imageDigest": "sha256:123456789012", + "imageTag": "prod" + }, + { + "imageDigest": "sha256:567890121234", + "imageTag": "team1" + } + ], + "failures": [] + } + +For more information, see `Deleting an Image `__ in the *Amazon ECR User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/batch-get-image.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/batch-get-image.rst new file mode 100644 index 000000000..782c180c8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/batch-get-image.rst @@ -0,0 +1,61 @@ +**Example 1: To get an image** + +The following ``batch-get-image`` example gets an image with the tag ``v1.13.6`` in a repository called +``cluster-autoscaler`` in the default registry for an account. :: + + aws ecr batch-get-image \ + --repository-name cluster-autoscaler \ + --image-ids imageTag=v1.13.6 + +Output:: + + { + "images": [ + { + "registryId": "012345678910", + "repositoryName": "cluster-autoscaler", + "imageId": { + "imageDigest": "sha256:4a1c6567c38904384ebc64e35b7eeddd8451110c299e3368d2210066487d97e5", + "imageTag": "v1.13.6" + }, + "imageManifest": "{\n \"schemaVersion\": 2,\n \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n \"config\": {\n \"mediaType\": \"application/vnd.docker.container.image.v1+json\",\n \"size\": 2777,\n \"digest\": \"sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed\"\n },\n \"layers\": [\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 17743696,\n \"digest\": \"sha256:39fafc05754f195f134ca11ecdb1c9a691ab0848c697fffeb5a85f900caaf6e1\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 2565026,\n \"digest\": \"sha256:8c8a779d3a537b767ae1091fe6e00c2590afd16767aa6096d1b318d75494819f\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 28005981,\n \"digest\": \"sha256:c44ba47496991c9982ee493b47fd25c252caabf2b4ae7dd679c9a27b6a3c8fb7\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 775,\n \"digest\": \"sha256:e2c388b44226544363ca007be7b896bcce1baebea04da23cbd165eac30be650f\"\n }\n ]\n}" + } + ], + "failures": [] + } + +**Example 2: To get multiple images** + +The following ``batch-get-image`` example displays details of all images tagged with ``prod`` and ``team1`` in the specified repository. :: + + aws ecr batch-get-image \ + --repository-name MyRepository \ + --image-ids imageTag=prod imageTag=team1 + +Output:: + + { + "images": [ + { + "registryId": "123456789012", + "repositoryName": "MyRepository", + "imageId": { + "imageDigest": "sha256:123456789012", + "imageTag": "prod" + }, + "imageManifest": "manifestExample1" + }, + { + "registryId": "567890121234", + "repositoryName": "MyRepository", + "imageId": { + "imageDigest": "sha256:123456789012", + "imageTag": "team1" + }, + "imageManifest": "manifestExample2" + } + ], + "failures": [] + } + +For more information, see `Images `__ in the *Amazon ECR User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/complete-layer-upload.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/complete-layer-upload.rst new file mode 100644 index 000000000..7d1562538 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/complete-layer-upload.rst @@ -0,0 +1,17 @@ +**To complete an image layer upload** + +The following ``complete-layer-upload`` example completes an image layer upload to the ``layer-test`` repository. :: + + aws ecr complete-layer-upload \ + --repository-name layer-test \ + --upload-id 6cb64b8a-9378-0e33-2ab1-b780fab8a9e9 \ + --layer-digests 6cb64b8a-9378-0e33-2ab1-b780fab8a9e9:48074e6d3a68b39aad8ccc002cdad912d4148c0f92b3729323e + +Output:: + + { + "uploadId": "6cb64b8a-9378-0e33-2ab1-b780fab8a9e9", + "layerDigest": "sha256:9a77f85878aa1906f2020a0ecdf7a7e962d57e882250acd773383224b3fe9a02", + "repositoryName": "layer-test", + "registryId": "130757420319" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/create-repository.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/create-repository.rst new file mode 100644 index 000000000..805ab39b5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/create-repository.rst @@ -0,0 +1,62 @@ +**Example 1: To create a repository** + +The following ``create-repository`` example creates a repository inside the specified namespace in the default registry for an account. :: + + aws ecr create-repository \ + --repository-name project-a/sample-repo + +Output:: + + { + "repository": { + "registryId": "123456789012", + "repositoryName": "project-a/sample-repo", + "repositoryArn": "arn:aws:ecr:us-west-2:123456789012:repository/project-a/sample-repo" + } + } + +For more information, see `Creating a Repository `__ in the *Amazon ECR User Guide*. + +**Example 2: To create a repository configured with image tag immutability** + +The following ``create-repository`` example creates a repository configured for tag immutability in the default registry for an account. :: + + aws ecr create-repository \ + --repository-name project-a/sample-repo \ + --image-tag-mutability IMMUTABLE + +Output:: + + { + "repository": { + "registryId": "123456789012", + "repositoryName": "project-a/sample-repo", + "repositoryArn": "arn:aws:ecr:us-west-2:123456789012:repository/project-a/sample-repo", + "imageTagMutability": "IMMUTABLE" + } + } + +For more information, see `Image Tag Mutability `__ in the *Amazon ECR User Guide*. + +**Example 3: To create a repository configured with a scanning configuration** + +The following ``create-repository`` example creates a repository configured to perform a vulnerability scan on image push in the default registry for an account. :: + + aws ecr create-repository \ + --repository-name project-a/sample-repo \ + --image-scanning-configuration scanOnPush=true + +Output:: + + { + "repository": { + "registryId": "123456789012", + "repositoryName": "project-a/sample-repo", + "repositoryArn": "arn:aws:ecr:us-west-2:123456789012:repository/project-a/sample-repo", + "imageScanningConfiguration": { + "scanOnPush": true + } + } + } + +For more information, see `Image Scanning `__ in the *Amazon ECR User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/delete-lifecycle-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/delete-lifecycle-policy.rst new file mode 100644 index 000000000..d0ddfc723 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/delete-lifecycle-policy.rst @@ -0,0 +1,15 @@ +**To delete the lifecycle policy for a repository** + +The following ``delete-lifecycle-policy`` example deletes the lifecycle policy for the ``hello-world`` repository. :: + + aws ecr delete-lifecycle-policy \ + --repository-name hello-world + +Output:: + + { + "registryId": "012345678910", + "repositoryName": "hello-world", + "lifecyclePolicyText": "{\"rules\":[{\"rulePriority\":1,\"description\":\"Remove untagged images.\",\"selection\":{\"tagStatus\":\"untagged\",\"countType\":\"sinceImagePushed\",\"countUnit\":\"days\",\"countNumber\":10},\"action\":{\"type\":\"expire\"}}]}", + "lastEvaluatedAt": 0.0 + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/delete-repository-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/delete-repository-policy.rst new file mode 100644 index 000000000..e900ee010 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/delete-repository-policy.rst @@ -0,0 +1,14 @@ +**To delete the repository policy for a repository** + +The following ``delete-repository-policy`` example deletes the repository policy for the ``cluster-autoscaler`` repository. :: + + aws ecr delete-repository-policy \ + --repository-name cluster-autoscaler + +Output:: + + { + "registryId": "012345678910", + "repositoryName": "cluster-autoscaler", + "policyText": "{\n \"Version\" : \"2008-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"allow public pull\",\n \"Effect\" : \"Allow\",\n \"Principal\" : \"*\",\n \"Action\" : [ \"ecr:BatchCheckLayerAvailability\", \"ecr:BatchGetImage\", \"ecr:GetDownloadUrlForLayer\" ]\n } ]\n}" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/delete-repository.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/delete-repository.rst new file mode 100644 index 000000000..87e11ca25 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/delete-repository.rst @@ -0,0 +1,19 @@ +**To delete a repository** + +The following ``delete-repository`` example command force deletes the specified repository in the default registry for an account. The ``--force`` flag is required if the repository contains images. :: + + aws ecr delete-repository \ + --repository-name ubuntu \ + --force + +Output:: + + { + "repository": { + "registryId": "123456789012", + "repositoryName": "ubuntu", + "repositoryArn": "arn:aws:ecr:us-west-2:123456789012:repository/ubuntu" + } + } + +For more information, see `Deleting a Repository `__ in the *Amazon ECR User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/describe-image-scan-findings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/describe-image-scan-findings.rst new file mode 100644 index 000000000..1f746a5ff --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/describe-image-scan-findings.rst @@ -0,0 +1,56 @@ +**To describe the scan findings for an image** + +The following ``describe-image-scan-findings`` example returns the image scan findings for an image using the image digest in the specified repository in the default registry for an account. :: + + aws ecr describe-image-scan-findings \ + --repository-name sample-repo \ + --image-id imageDigest=sha256:74b2c688c700ec95a93e478cdb959737c148df3fbf5ea706abe0318726e885e6 + +Output:: + + { + "imageScanFindings": { + "findings": [ + { + "name": "CVE-2019-5188", + "description": "A code execution vulnerability exists in the directory rehashing functionality of E2fsprogs e2fsck 1.45.4. A specially crafted ext4 directory can cause an out-of-bounds write on the stack, resulting in code execution. An attacker can corrupt a partition to trigger this vulnerability.", + "uri": "http://people.ubuntu.com/~ubuntu-security/cve/CVE-2019-5188", + "severity": "MEDIUM", + "attributes": [ + { + "key": "package_version", + "value": "1.44.1-1ubuntu1.1" + }, + { + "key": "package_name", + "value": "e2fsprogs" + }, + { + "key": "CVSS2_VECTOR", + "value": "AV:L/AC:L/Au:N/C:P/I:P/A:P" + }, + { + "key": "CVSS2_SCORE", + "value": "4.6" + } + ] + } + ], + "imageScanCompletedAt": 1579839105.0, + "vulnerabilitySourceUpdatedAt": 1579811117.0, + "findingSeverityCounts": { + "MEDIUM": 1 + } + }, + "registryId": "123456789012", + "repositoryName": "sample-repo", + "imageId": { + "imageDigest": "sha256:74b2c688c700ec95a93e478cdb959737c148df3fbf5ea706abe0318726e885e6" + }, + "imageScanStatus": { + "status": "COMPLETE", + "description": "The scan was completed successfully." + } + } + +For more information, see `Image Scanning `__ in the *Amazon ECR User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/describe-images.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/describe-images.rst new file mode 100644 index 000000000..af24e4966 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/describe-images.rst @@ -0,0 +1,24 @@ +**To describe an image in a repository** + +The following ``describe-images`` example displays details about an image in the ``cluster-autoscaler`` repository with the tag ``v1.13.6``. :: + + aws ecr describe-images \ + --repository-name cluster-autoscaler \ + --image-ids imageTag=v1.13.6 + +Output:: + + { + "imageDetails": [ + { + "registryId": "012345678910", + "repositoryName": "cluster-autoscaler", + "imageDigest": "sha256:4a1c6567c38904384ebc64e35b7eeddd8451110c299e3368d2210066487d97e5", + "imageTags": [ + "v1.13.6" + ], + "imageSizeInBytes": 48318255, + "imagePushedAt": 1565128275.0 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/describe-repositories.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/describe-repositories.rst new file mode 100644 index 000000000..cc04891fa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/describe-repositories.rst @@ -0,0 +1,24 @@ +**To describe the repositories in a registry** + +This example describes the repositories in the default registry for an account. + +Command:: + + aws ecr describe-repositories + +Output:: + + { + "repositories": [ + { + "registryId": "012345678910", + "repositoryName": "ubuntu", + "repositoryArn": "arn:aws:ecr:us-west-2:012345678910:repository/ubuntu" + }, + { + "registryId": "012345678910", + "repositoryName": "test", + "repositoryArn": "arn:aws:ecr:us-west-2:012345678910:repository/test" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-authorization-token.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-authorization-token.rst new file mode 100644 index 000000000..4f43d74a1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-authorization-token.rst @@ -0,0 +1,17 @@ +**To get an authorization token for your default registry** + +The following ``get-authorization-token`` example command gets an authorization token for your default registry. :: + + aws ecr get-authorization-token + +Output:: + + { + "authorizationData": [ + { + "authorizationToken": "QVdTOkN...", + "expiresAt": 1448875853.241, + "proxyEndpoint": "https://123456789012.dkr.ecr.us-west-2.amazonaws.com" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-download-url-for-layer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-download-url-for-layer.rst new file mode 100644 index 000000000..40cf2a55a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-download-url-for-layer.rst @@ -0,0 +1,14 @@ +**To get the download URL of a layer** + +The following ``get-download-url-for-layer`` example displays the download URL of a layer with the digest ``sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed`` in the ``cluster-autoscaler`` repository. :: + + aws ecr get-download-url-for-layer \ + --repository-name cluster-autoscaler \ + --layer-digest sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed + +Output:: + + { + "downloadUrl": "https://prod-us-west-2-starport-layer-bucket.s3.us-west-2.amazonaws.com/e501-012345678910-9cb60dc0-7284-5643-3987-da6dac0465f0/04620aac-66a5-4167-8232-55ee7ef6d565?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20190814T220617Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Credential=AKIA32P3D2JDNMVAJLGF%2F20190814%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Signature=9161345894947a1672467a0da7a1550f2f7157318312fe4941b59976239c3337", + "layerDigest": "sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-lifecycle-policy-preview.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-lifecycle-policy-preview.rst new file mode 100644 index 000000000..1fdbbdcdc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-lifecycle-policy-preview.rst @@ -0,0 +1,23 @@ +**To retrieve details for a lifecycle policy preview** + +The following ``get-lifecycle-policy-preview`` example retrieves the result of a lifecycle policy preview for the specified repository in the default registry for an account. + +Command:: + + aws ecr get-lifecycle-policy-preview \ + --repository-name "project-a/amazon-ecs-sample" + +Output:: + + { + "registryId": "012345678910", + "repositoryName": "project-a/amazon-ecs-sample", + "lifecyclePolicyText": "{\n \"rules\": [\n {\n \"rulePriority\": 1,\n \"description\": \"Expire images older than 14 days\",\n \"selection\": {\n \"tagStatus\": \"untagged\",\n \"countType\": \"sinceImagePushed\",\n \"countUnit\": \"days\",\n \"countNumber\": 14\n },\n \"action\": {\n \"type\": \"expire\"\n }\n }\n ]\n}\n", + "status": "COMPLETE", + "previewResults": [], + "summary": { + "expiringImageTotalCount": 0 + } + } + +For more information, see `Lifecycle Policies `__ in the *Amazon ECR User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-lifecycle-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-lifecycle-policy.rst new file mode 100644 index 000000000..6a103f5de --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-lifecycle-policy.rst @@ -0,0 +1,17 @@ +**To retrieve a lifecycle policy** + +The following ``get-lifecycle-policy`` example displays details of the lifecycle policy for the specified repository in the default registry for the account. :: + + aws ecr get-lifecycle-policy \ + --repository-name "project-a/amazon-ecs-sample" + +Output:: + + { + "registryId": "123456789012", + "repositoryName": "project-a/amazon-ecs-sample", + "lifecyclePolicyText": "{\"rules\":[{\"rulePriority\":1,\"description\":\"Expire images older than 14 days\",\"selection\":{\"tagStatus\":\"untagged\",\"countType\":\"sinceImagePushed\",\"countUnit\":\"days\",\"countNumber\":14},\"action\":{\"type\":\"expire\"}}]}", + "lastEvaluatedAt": 1504295007.0 + } + +For more information, see `Lifecycle Policies `__ in the *Amazon ECR User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-login-password.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-login-password.rst new file mode 100644 index 000000000..16d88cbca --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-login-password.rst @@ -0,0 +1,19 @@ +**To retrieve a password to authenticate to a registry** + +The following ``get-login-password`` displays a password that you can use with a container client of your choice to authenticate to any Amazon ECR registry that your IAM principal has access to. :: + + aws ecr get-login-password + +Output:: + + + +To use with the Docker CLI, pipe the output of the ``get-login-password`` command to the ``docker login`` command. When retrieving the password, ensure that you specify the same Region that your Amazon ECR registry exists in. :: + + aws ecr get-login-password \ + --region \ + | docker login \ + --username AWS \ + --password-stdin .dkr.ecr..amazonaws.com + +For more information, see `Registry Authentication `__ in the *Amazon ECR User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-login-password_description.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-login-password_description.rst new file mode 100644 index 000000000..22da6d5a3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-login-password_description.rst @@ -0,0 +1,5 @@ +**To log in to an Amazon ECR registry** + +This command retrieves and displays an authentication token using the GetAuthorizationToken API that you can use to authenticate to an Amazon ECR registry. You can pass the authorization token to the login command of the container client of your preference, such as the Docker CLI. After you have authenticated to an Amazon ECR registry with this command, you can use the client to push and pull images from that registry as long as your IAM principal has access to do so until the token expires. The authorization token is valid for 12 hours. + +This command is supported using the latest version of AWS CLI version 2 or in v1.17.10 or later of AWS CLI version 1. For information on updating to the latest AWS CLI version, see `Installing the AWS CLI `__ in the *AWS Command Line Interface User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-login.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-login.rst new file mode 100644 index 000000000..b6cd8e5a4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-login.rst @@ -0,0 +1,26 @@ +**To retrieve a Docker login command to your default registry** + +This example prints a command that you can use to log in to your default Amazon +ECR registry. + +Command:: + + aws ecr get-login + +Output:: + + docker login -u AWS -p -e none https://.dkr.ecr..amazonaws.com + +**To log in to another account's registry** + +This example prints one or more commands that you can use to log in to +Amazon ECR registries associated with other accounts. + +Command:: + + aws ecr get-login --registry-ids 012345678910 023456789012 + +Output:: + + docker login -u -p -e none + docker login -u -p -e none diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-login_description.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-login_description.rst new file mode 100644 index 000000000..3e1a97908 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-login_description.rst @@ -0,0 +1,13 @@ + **Note:** This command is deprecated. Use ``get-login-password`` instead. + +**To log in to an Amazon ECR registry** + +This command retrieves an authentication token using the GetAuthorizationToken API, and then it prints a ``docker login`` command with the authorization token and, if you specified a registry ID, the URI for an Amazon ECR registry. You can execute the printed command to authenticate to the registry with Docker. After you have authenticated to an Amazon ECR registry with this command, you can use the Docker CLI to push and pull images to and from that registry as long as your IAM principal has access to do so until the token expires. The authorization token is valid for 12 hours. + +.. note:: + + This command displays ``docker login`` commands to stdout with + authentication credentials. Your credentials could be visible by other + users on your system in a process list display or a command history. If you + are not on a secure system, you should consider this risk and login + interactively. For more information, see ``get-authorization-token``. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-repository-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-repository-policy.rst new file mode 100644 index 000000000..471b31906 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/get-repository-policy.rst @@ -0,0 +1,14 @@ +**To retrieve the repository policy for a repository** + +The following ``get-repository-policy`` example displays details about the repository policy for the ``cluster-autoscaler`` repository. :: + + aws ecr get-repository-policy \ + --repository-name cluster-autoscaler + +Output:: + + { + "registryId": "012345678910", + "repositoryName": "cluster-autoscaler", + "policyText": "{\n \"Version\" : \"2008-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"allow public pull\",\n \"Effect\" : \"Allow\",\n \"Principal\" : \"*\",\n \"Action\" : [ \"ecr:BatchCheckLayerAvailability\", \"ecr:BatchGetImage\", \"ecr:GetDownloadUrlForLayer\" ]\n } ]\n}" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/initiate-layer-upload.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/initiate-layer-upload.rst new file mode 100644 index 000000000..81d3ae4d5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/initiate-layer-upload.rst @@ -0,0 +1,13 @@ +**To initiate an image layer upload** + +The following ``initiate-layer-upload`` example initiates an image layer upload to the ``layer-test`` repository. :: + + aws ecr initiate-layer-upload \ + --repository-name layer-test + +Output:: + + { + "partSize": 10485760, + "uploadId": "6cb64b8a-9378-0e33-2ab1-b780fab8a9e9" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/list-images.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/list-images.rst new file mode 100644 index 000000000..9350e4543 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/list-images.rst @@ -0,0 +1,25 @@ +**To list the images in a repository** + +The following ``list-images`` example displays a list of the images in the ``cluster-autoscaler`` repository. :: + + aws ecr list-images \ + --repository-name cluster-autoscaler + +Output:: + + { + "imageIds": [ + { + "imageDigest": "sha256:99c6fb4377e9a420a1eb3b410a951c9f464eff3b7dbc76c65e434e39b94b6570", + "imageTag": "v1.13.8" + }, + { + "imageDigest": "sha256:99c6fb4377e9a420a1eb3b410a951c9f464eff3b7dbc76c65e434e39b94b6570", + "imageTag": "v1.13.7" + }, + { + "imageDigest": "sha256:4a1c6567c38904384ebc64e35b7eeddd8451110c299e3368d2210066487d97e5", + "imageTag": "v1.13.6" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/list-tags-for-resource.rst new file mode 100644 index 000000000..4d5748fe2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/list-tags-for-resource.rst @@ -0,0 +1,18 @@ +**To list the tags for repository** + +The following ``list-tags-for-resource`` example displays a list of the tags associated with the ``hello-world`` repository. :: + + aws ecr list-tags-for-resource \ + --resource-arn arn:aws:ecr:us-west-2:012345678910:repository/hello-world + +Output:: + + { + "tags": [ + { + "Key": "Stage", + "Value": "Integ" + } + ] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/put-image-scanning-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/put-image-scanning-configuration.rst new file mode 100644 index 000000000..98c66ca16 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/put-image-scanning-configuration.rst @@ -0,0 +1,19 @@ +**To update the image scanning configuration for a repository** + +The following ``put-image-scanning-configuration`` example updates the image scanning configuration for the specified repository. :: + + aws ecr put-image-scanning-configuration \ + --repository-name sample-repo \ + --image-scanning-configuration scanOnPush=true + +Output:: + + { + "registryId": "012345678910", + "repositoryName": "sample-repo", + "imageScanningConfiguration": { + "scanOnPush": true + } + } + +For more information, see `Image Scanning `__ in the *Amazon ECR User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/put-image-tag-mutability.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/put-image-tag-mutability.rst new file mode 100644 index 000000000..98614630f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/put-image-tag-mutability.rst @@ -0,0 +1,17 @@ +**To update the image tag mutability setting for a repository** + +The following ``put-image-tag-mutability`` example configures the specified repository for tag immutability. This prevents all image tags within the repository from being overwritten. :: + + aws ecr put-image-tag-mutability \ + --repository-name hello-repository \ + --image-tag-mutability IMMUTABLE + +Output:: + + { + "registryId": "012345678910", + "repositoryName": "sample-repo", + "imageTagMutability": "IMMUTABLE" + } + +For more information, see `Image Tag Mutability `__ in the *Amazon ECR User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/put-image.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/put-image.rst new file mode 100644 index 000000000..c1bd30336 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/put-image.rst @@ -0,0 +1,91 @@ +**To retag an image with its manifest** + +The following ``put-image`` example creates a new tag in the ``hello-world`` repository with an existing image manifest. :: + + aws ecr put-image \ + --repository-name hello-world \ + --image-tag 2019.08 \ + --image-manifest file://hello-world.manifest.json + +Contents of ``hello-world.manifest.json``:: + + { + "schemaVersion": 2, + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "config": { + "mediaType": "application/vnd.docker.container.image.v1+json", + "size": 5695, + "digest": "sha256:cea5fe7701b7db3dd1c372f3cea6f43cdda444fcc488f530829145e426d8b980" + }, + "layers": [ + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 39096921, + "digest": "sha256:d8868e50ac4c7104d2200d42f432b661b2da8c1e417ccfae217e6a1e04bb9295" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 57938, + "digest": "sha256:83251ac64627fc331584f6c498b3aba5badc01574e2c70b2499af3af16630eed" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 423, + "digest": "sha256:589bba2f1b36ae56f0152c246e2541c5aa604b058febfcf2be32e9a304fec610" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 680, + "digest": "sha256:d62ecaceda3964b735cdd2af613d6bb136a52c1da0838b2ff4b4dab4212bcb1c" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 162, + "digest": "sha256:6d93b41cfc6bf0d2522b7cf61588de4cd045065b36c52bd3aec2ba0622b2b22b" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 28268840, + "digest": "sha256:6986b4d4c07932c680b3587f2eac8b0e013568c003cc23b04044628a5c5e599f" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 35369152, + "digest": "sha256:8c5ec60f10102dc8da0649d866c7c2f706e459d0bdc25c83ad2de86f4996c276" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 155, + "digest": "sha256:cde50b1c594539c5f67cbede9aef95c9ae321ccfb857f7b251b45b84198adc85" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 28737, + "digest": "sha256:2e102807ab72a73fc9abf53e8c50e421bdc337a0a8afcb242176edeec65977e4" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 190, + "digest": "sha256:fc379bbd5ed37808772bef016553a297356c59b8f134659e6ee4ecb563c2f5a7" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 28748, + "digest": "sha256:021db240dfccf5a1aff19507d17c0177e5888e518acf295b52204b1825e8b7ee" + } + ] + } + +Output:: + + { + "image": { + "registryId": "130757420319", + "repositoryName": "hello-world", + "imageId": { + "imageDigest": "sha256:8ece96b74f87652876199d83bd107d0435a196133af383ac54cb82b6cc5283ae", + "imageTag": "2019.08" + }, + "imageManifest": "{\n \"schemaVersion\": 2,\n \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n \"config\": {\n \"mediaType\": \"application/vnd.docker.container.image.v1+json\",\n \"size\": 5695,\n \"digest\": \"sha256:cea5fe7701b7db3dd1c372f3cea6f43cdda444fcc488f530829145e426d8b980\"\n },\n \"layers\": [\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 39096921,\n \"digest\": \"sha256:d8868e50ac4c7104d2200d42f432b661b2da8c1e417ccfae217e6a1e04bb9295\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 57938,\n \"digest\": \"sha256:83251ac64627fc331584f6c498b3aba5badc01574e2c70b2499af3af16630eed\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 423,\n \"digest\": \"sha256:589bba2f1b36ae56f0152c246e2541c5aa604b058febfcf2be32e9a304fec610\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 680,\n \"digest\": \"sha256:d62ecaceda3964b735cdd2af613d6bb136a52c1da0838b2ff4b4dab4212bcb1c\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 162,\n \"digest\": \"sha256:6d93b41cfc6bf0d2522b7cf61588de4cd045065b36c52bd3aec2ba0622b2b22b\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 28268840,\n \"digest\": \"sha256:6986b4d4c07932c680b3587f2eac8b0e013568c003cc23b04044628a5c5e599f\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 35369152,\n \"digest\": \"sha256:8c5ec60f10102dc8da0649d866c7c2f706e459d0bdc25c83ad2de86f4996c276\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 155,\n \"digest\": \"sha256:cde50b1c594539c5f67cbede9aef95c9ae321ccfb857f7b251b45b84198adc85\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 28737,\n \"digest\": \"sha256:2e102807ab72a73fc9abf53e8c50e421bdc337a0a8afcb242176edeec65977e4\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 190,\n \"digest\": \"sha256:fc379bbd5ed37808772bef016553a297356c59b8f134659e6ee4ecb563c2f5a7\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 28748,\n \"digest\": \"sha256:021db240dfccf5a1aff19507d17c0177e5888e518acf295b52204b1825e8b7ee\"\n }\n ]\n}\n" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/put-lifecycle-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/put-lifecycle-policy.rst new file mode 100644 index 000000000..cc997094d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/put-lifecycle-policy.rst @@ -0,0 +1,37 @@ +**To create a lifecycle policy** + +The following ``put-lifecycle-policy`` example creates a lifecycle policy for the specified repository in the default registry for an account. :: + + aws ecr put-lifecycle-policy \ + --repository-name "project-a/amazon-ecs-sample" \ + --lifecycle-policy-text "file://policy.json" + +Contents of ``policy.json``:: + + { + "rules": [ + { + "rulePriority": 1, + "description": "Expire images older than 14 days", + "selection": { + "tagStatus": "untagged", + "countType": "sinceImagePushed", + "countUnit": "days", + "countNumber": 14 + }, + "action": { + "type": "expire" + } + } + ] + } + +Output:: + + { + "registryId": "", + "repositoryName": "project-a/amazon-ecs-sample", + "lifecyclePolicyText": "{\"rules\":[{\"rulePriority\":1,\"description\":\"Expire images older than 14 days\",\"selection\":{\"tagStatus\":\"untagged\",\"countType\":\"sinceImagePushed\",\"countUnit\":\"days\",\"countNumber\":14},\"action\":{\"type\":\"expire\"}}]}" + } + +For more information, see `Lifecycle Policies `__ in the *Amazon ECR User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/set-repository-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/set-repository-policy.rst new file mode 100644 index 000000000..996c44b87 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/set-repository-policy.rst @@ -0,0 +1,33 @@ +**To set the repository policy for a repository** + +The following ``set-repository-policy`` example attaches a repository policy contained in a file to the ``cluster-autoscaler`` repository. :: + + aws ecr set-repository-policy \ + --repository-name cluster-autoscaler \ + --policy-text file://my-policy.json + +Contents of ``my-policy.json``:: + + { + "Version" : "2008-10-17", + "Statement" : [ + { + "Sid" : "allow public pull", + "Effect" : "Allow", + "Principal" : "*", + "Action" : [ + "ecr:BatchCheckLayerAvailability", + "ecr:BatchGetImage", + "ecr:GetDownloadUrlForLayer" + ] + } + ] + } + +Output:: + + { + "registryId": "012345678910", + "repositoryName": "cluster-autoscaler", + "policyText": "{\n \"Version\" : \"2008-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"allow public pull\",\n \"Effect\" : \"Allow\",\n \"Principal\" : \"*\",\n \"Action\" : [ \"ecr:BatchCheckLayerAvailability\", \"ecr:BatchGetImage\", \"ecr:GetDownloadUrlForLayer\" ]\n } ]\n}" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/start-image-scan.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/start-image-scan.rst new file mode 100644 index 000000000..88754268e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/start-image-scan.rst @@ -0,0 +1,22 @@ +**To start an image vulnerability scan** + +The following ``start-image-scan`` example starts an image scan for and specified by the image digest in the `specified` repository. :: + + aws ecr start-image-scan \ + --repository-name sample-repo \ + --image-id imageDigest=sha256:74b2c688c700ec95a93e478cdb959737c148df3fbf5ea706abe0318726e885e6 + +Output:: + + { + "registryId": "012345678910", + "repositoryName": "sample-repo", + "imageId": { + "imageDigest": "sha256:74b2c688c700ec95a93e478cdb959737c148df3fbf5ea706abe0318726e885e6" + }, + "imageScanStatus": { + "status": "IN_PROGRESS" + } + } + +For more information, see `Image Scanning `__ in the *Amazon ECR User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/start-lifecycle-policy-preview.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/start-lifecycle-policy-preview.rst new file mode 100644 index 000000000..3fec17e8d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/start-lifecycle-policy-preview.rst @@ -0,0 +1,36 @@ +**To create a lifecycle policy preview** + +The following ``start-lifecycle-policy-preview`` example creates a lifecycle policy preview defined by a JSON file for the specified repository. :: + + aws ecr start-lifecycle-policy-preview \ + --repository-name "project-a/amazon-ecs-sample" \ + --lifecycle-policy-text "file://policy.json" + +Contents of ``policy.json``:: + + { + "rules": [ + { + "rulePriority": 1, + "description": "Expire images older than 14 days", + "selection": { + "tagStatus": "untagged", + "countType": "sinceImagePushed", + "countUnit": "days", + "countNumber": 14 + }, + "action": { + "type": "expire" + } + } + ] + } + +Output:: + + { + "registryId": "012345678910", + "repositoryName": "project-a/amazon-ecs-sample", + "lifecyclePolicyText": "{\n \"rules\": [\n {\n \"rulePriority\": 1,\n \"description\": \"Expire images older than 14 days\",\n \"selection\": {\n \"tagStatus\": \"untagged\",\n \"countType\": \"sinceImagePushed\",\n \"countUnit\": \"days\",\n \"countNumber\": 14\n },\n \"action\": {\n \"type\": \"expire\"\n }\n }\n ]\n}\n", + "status": "IN_PROGRESS" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/tag-resource.rst new file mode 100644 index 000000000..1c6ea66a7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/tag-resource.rst @@ -0,0 +1,9 @@ +**To tag a repository** + +The following ``tag-resource`` example sets a tag with key ``Stage`` and value ``Integ`` on the ``hello-world`` repository. :: + + aws ecr tag-resource \ + --resource-arn arn:aws:ecr:us-west-2:012345678910:repository/hello-world \ + --tags Key=Stage,Value=Integ + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/untag-resource.rst new file mode 100644 index 000000000..4ed80228e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/untag-resource.rst @@ -0,0 +1,9 @@ +**To untag a repository** + +The following ``untag-resource`` example removes the tag with the key ``Stage`` from the ``hello-world`` repository. :: + + aws ecr untag-resource \ + --resource-arn arn:aws:ecr:us-west-2:012345678910:repository/hello-world \ + --tag-keys Stage + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/upload-layer-part.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/upload-layer-part.rst new file mode 100644 index 000000000..156a29f6d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecr/upload-layer-part.rst @@ -0,0 +1,19 @@ +**To upload a layer part** + +This following ``upload-layer-part`` uploads an image layer part to the ``layer-test`` repository. :: + + aws ecr upload-layer-part \ + --repository-name layer-test \ + --upload-id 6cb64b8a-9378-0e33-2ab1-b780fab8a9e9 \ + --part-first-byte 0 \ + --part-last-byte 8323314 \ + --layer-part-blob file:///var/lib/docker/image/overlay2/layerdb/sha256/ff986b10a018b48074e6d3a68b39aad8ccc002cdad912d4148c0f92b3729323e/layer.b64 + +Output:: + + { + "uploadId": "6cb64b8a-9378-0e33-2ab1-b780fab8a9e9", + "registryId": "012345678910", + "lastByteReceived": 8323314, + "repositoryName": "layer-test" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/capacity-provider-update.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/capacity-provider-update.rst new file mode 100644 index 000000000..bfd381413 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/capacity-provider-update.rst @@ -0,0 +1,33 @@ +**Update the capacity provider in an ECS cluster** + +The following ``update-capacity-provider`` example shows how we can modify the parameters of the capacity provider in an ECS cluster. :: + + aws ecs update-capacity-provider \ + --name Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt \ + --auto-scaling-group-provider "managedScaling={status=DISABLED,targetCapacity=50,minimumScalingStepSize=2,maximumScalingStepSize=30,instanceWarmupPeriod=200},managedTerminationProtection=DISABLED,managedDraining=DISABLED" + +Output:: + + { + "capacityProvider": { + "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt", + "name": "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt", + "status": "ACTIVE", + "autoScalingGroupProvider": { + "autoScalingGroupArn": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:424941d1-b43f-4a17-adbb-08b6a6e397e1:autoScalingGroupName/Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-ECSAutoScalingGroup-f44jrQHS2nRB", + "managedScaling": { + "status": "ENABLED", + "targetCapacity": 100, + "minimumScalingStepSize": 1, + "maximumScalingStepSize": 10000, + "instanceWarmupPeriod": 300 + }, + "managedTerminationProtection": "DISABLED", + "managedDraining": "ENABLED" + }, + "updateStatus": "UPDATE_IN_PROGRESS", + "tags": [] + } + } + +For more information on Capacity Provider, see `Amazon ECS capacity providers for the EC2 launch type `__ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/create-capacity-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/create-capacity-provider.rst new file mode 100644 index 000000000..0a601a3ee --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/create-capacity-provider.rst @@ -0,0 +1,30 @@ +**To create a capacity provider** + +The following create-capacity-provider example creates a capacity provider that uses an Auto Scaling group named MyASG, has managed scaling and managed termination protection enabled. This configuration is used for Amazon ECS cluster auto scaling. :: + + aws ecs create-capacity-provider \ + --name "MyCapacityProvider" \ + --auto-scaling-group-provider "autoScalingGroupArn=arn:aws:autoscaling:us-east-1:123456789012:autoScalingGroup:57ffcb94-11f0-4d6d-bf60-3bac5EXAMPLE:autoScalingGroupName/MyASG,managedScaling={status=ENABLED,targetCapacity=100},managedTerminationProtection=ENABLED" + +Output:: + + { + "capacityProvider": { + "capacityProviderArn": "arn:aws:ecs:us-east-1:123456789012:capacity-provider/MyCapacityProvider", + "name": "MyCapacityProvider", + "status": "ACTIVE", + "autoScalingGroupProvider": { + "autoScalingGroupArn": "arn:aws:autoscaling:us-east-1:132456789012:autoScalingGroup:57ffcb94-11f0-4d6d-bf60-3bac5EXAMPLE:autoScalingGroupName/MyASG", + "managedScaling": { + "status": "ENABLED", + "targetCapacity": 100, + "minimumScalingStepSize": 1, + "maximumScalingStepSize": 10000, + "instanceWarmupPeriod": 300 + }, + "managedTerminationProtection": "ENABLED" + }, + "tags": [] + } + +For more information, see `Amazon ECS cluster auto scaling `__ in the *Amazon ECS Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/create-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/create-cluster.rst new file mode 100644 index 000000000..f49d7503e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/create-cluster.rst @@ -0,0 +1,148 @@ +**Example 1: To create a new cluster** + +The following ``create-cluster`` example creates a cluster named ``MyCluster`` and enables CloudWatch Container Insights with enhanced observability. :: + + aws ecs create-cluster \ + --cluster-name MyCluster \ + --settings name=containerInsights,value=enhanced + + +Output:: + + { + "cluster": { + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", + "clusterName": "MyCluster", + "status": "ACTIVE", + "registeredContainerInstancesCount": 0, + "pendingTasksCount": 0, + "runningTasksCount": 0, + "activeServicesCount": 0, + "statistics": [], + "settings": [ + { + "name": "containerInsights", + "value": "enhanced" + } + ], + "tags": [] + } + } + +For more information, see `Creating a Cluster `__ in the *Amazon ECS Developer Guide*. + +**Example 2: To create a new cluster using capacity providers** + +The following ``create-cluster`` example creates a cluster and associates two existing capacity providers with it. The ``create-capacity-provider`` command is used to create a capacity provider. Specifying a default capacity provider strategy is optional, but recommended. In this example, we create a cluster named ``MyCluster`` and associate the ``MyCapacityProvider1`` and ``MyCapacityProvider2`` capacity providers with it. A default capacity provider strategy is specified that spreads the tasks evenly across both capacity providers. :: + + aws ecs create-cluster \ + --cluster-name MyCluster \ + --capacity-providers MyCapacityProvider1 MyCapacityProvider2 \ + --default-capacity-provider-strategy capacityProvider=MyCapacityProvider1,weight=1 capacityProvider=MyCapacityProvider2,weight=1 + +Output:: + + { + "cluster": { + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", + "clusterName": "MyCluster", + "status": "PROVISIONING", + "registeredContainerInstancesCount": 0, + "pendingTasksCount": 0, + "runningTasksCount": 0, + "activeServicesCount": 0, + "statistics": [], + "settings": [ + { + "name": "containerInsights", + "value": "enabled" + } + ], + "capacityProviders": [ + "MyCapacityProvider1", + "MyCapacityProvider2" + ], + "defaultCapacityProviderStrategy": [ + { + "capacityProvider": "MyCapacityProvider1", + "weight": 1, + "base": 0 + }, + { + "capacityProvider": "MyCapacityProvider2", + "weight": 1, + "base": 0 + } + ], + "attachments": [ + { + "id": "0fb0c8f4-6edd-4de1-9b09-17e470ee1918", + "type": "asp", + "status": "PRECREATED", + "details": [ + { + "name": "capacityProviderName", + "value": "MyCapacityProvider1" + }, + { + "name": "scalingPlanName", + "value": "ECSManagedAutoScalingPlan-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + } + ] + }, + { + "id": "ae592060-2382-4663-9476-b015c685593c", + "type": "asp", + "status": "PRECREATED", + "details": [ + { + "name": "capacityProviderName", + "value": "MyCapacityProvider2" + }, + { + "name": "scalingPlanName", + "value": "ECSManagedAutoScalingPlan-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" + } + ] + } + ], + "attachmentsStatus": "UPDATE_IN_PROGRESS" + } + } + +For more information, see `Cluster capacity providers `__ in the *Amazon ECS Developer Guide*. + +**Example 3: To create a new cluster with multiple tags** + +The following ``create-cluster`` example creates a cluster with multiple tags. For more information about adding tags using shorthand syntax, see `Using Shorthand Syntax with the AWS Command Line Interface `__ in the *AWS CLI User Guide*. :: + + aws ecs create-cluster \ + --cluster-name MyCluster \ + --tags key=key1,value=value1 key=key2,value=value2 + +Output:: + + { + "cluster": { + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", + "clusterName": "MyCluster", + "status": "ACTIVE", + "registeredContainerInstancesCount": 0, + "pendingTasksCount": 0, + "runningTasksCount": 0, + "activeServicesCount": 0, + "statistics": [], + "tags": [ + { + "key": "key1", + "value": "value1" + }, + { + "key": "key2", + "value": "value2" + } + ] + } + } + +For more information, see `Creating a Cluster `__ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/create-service.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/create-service.rst new file mode 100644 index 000000000..5ac1aff6e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/create-service.rst @@ -0,0 +1,390 @@ +**Example 1: To create a service with a Fargate task** + +The following ``create-service`` example shows how to create a service using a Fargate task. :: + + aws ecs create-service \ + --cluster MyCluster \ + --service-name MyService \ + --task-definition sample-fargate:1 \ + --desired-count 2 \ + --launch-type FARGATE \ + --platform-version LATEST \ + --network-configuration 'awsvpcConfiguration={subnets=[subnet-12344321],securityGroups=[sg-12344321],assignPublicIp=ENABLED}' \ + --tags key=key1,value=value1 key=key2,value=value2 key=key3,value=value3 + +Output:: + + { + "service": { + "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/MyCluster/MyService", + "serviceName": "MyService", + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", + "loadBalancers": [], + "serviceRegistries": [], + "status": "ACTIVE", + "desiredCount": 2, + "runningCount": 0, + "pendingCount": 0, + "launchType": "FARGATE", + "platformVersion": "LATEST", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:1", + "deploymentConfiguration": { + "maximumPercent": 200, + "minimumHealthyPercent": 100 + }, + "deployments": [ + { + "id": "ecs-svc/1234567890123456789", + "status": "PRIMARY", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:1", + "desiredCount": 2, + "pendingCount": 0, + "runningCount": 0, + "createdAt": 1557119253.821, + "updatedAt": 1557119253.821, + "launchType": "FARGATE", + "platformVersion": "1.3.0", + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12344321" + ], + "securityGroups": [ + "sg-12344321" + ], + "assignPublicIp": "ENABLED" + } + } + } + ], + "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS", + "events": [], + "createdAt": 1557119253.821, + "placementConstraints": [], + "placementStrategy": [], + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12344321" + ], + "securityGroups": [ + "sg-12344321" + ], + "assignPublicIp": "ENABLED" + } + }, + "schedulingStrategy": "REPLICA", + "tags": [ + { + "key": "key1", + "value": "value1" + }, + { + "key": "key2", + "value": "value2" + }, + { + "key": "key3", + "value": "value3" + } + ], + "enableECSManagedTags": false, + "propagateTags": "NONE" + } + } + +For more information, see `Creating a Service `__ in the *Amazon ECS Developer Guide*. + +**Example 2: To create a service using the EC2 launch type** + +The following ``create-service`` example shows how to create a service called ``ecs-simple-service`` with a task that uses the EC2 launch type. The service uses the ``sleep360`` task definition and it maintains 1 instantiation of the task. :: + + aws ecs create-service \ + --cluster MyCluster \ + --service-name ecs-simple-service \ + --task-definition sleep360:2 \ + --desired-count 1 + +Output:: + + { + "service": { + "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/MyCluster/ecs-simple-service", + "serviceName": "ecs-simple-service", + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", + "loadBalancers": [], + "serviceRegistries": [], + "status": "ACTIVE", + "desiredCount": 1, + "runningCount": 0, + "pendingCount": 0, + "launchType": "EC2", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sleep360:2", + "deploymentConfiguration": { + "maximumPercent": 200, + "minimumHealthyPercent": 100 + }, + "deployments": [ + { + "id": "ecs-svc/1234567890123456789", + "status": "PRIMARY", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sleep360:2", + "desiredCount": 1, + "pendingCount": 0, + "runningCount": 0, + "createdAt": 1557206498.798, + "updatedAt": 1557206498.798, + "launchType": "EC2" + } + ], + "events": [], + "createdAt": 1557206498.798, + "placementConstraints": [], + "placementStrategy": [], + "schedulingStrategy": "REPLICA", + "enableECSManagedTags": false, + "propagateTags": "NONE" + } + } + +For more information, see `Creating a Service `__ in the *Amazon ECS Developer Guide*. + +**Example 3: To create a service that uses an external deployment controller** + +The following ``create-service`` example creates a service that uses an external deployment controller. :: + + aws ecs create-service \ + --cluster MyCluster \ + --service-name MyService \ + --deployment-controller type=EXTERNAL \ + --desired-count 1 + +Output:: + + { + "service": { + "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/MyCluster/MyService", + "serviceName": "MyService", + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", + "loadBalancers": [], + "serviceRegistries": [], + "status": "ACTIVE", + "desiredCount": 1, + "runningCount": 0, + "pendingCount": 0, + "launchType": "EC2", + "deploymentConfiguration": { + "maximumPercent": 200, + "minimumHealthyPercent": 100 + }, + "taskSets": [], + "deployments": [], + "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS", + "events": [], + "createdAt": 1557128207.101, + "placementConstraints": [], + "placementStrategy": [], + "schedulingStrategy": "REPLICA", + "deploymentController": { + "type": "EXTERNAL" + }, + "enableECSManagedTags": false, + "propagateTags": "NONE" + } + } + +For more information, see `Creating a Service `__ in the *Amazon ECS Developer Guide*. + +**Example 4: To create a new service behind a load balancer** + +The following ``create-service`` example shows how to create a service that is behind a load balancer. You must have a load balancer configured in the same Region as your container instance. This example uses the ``--cli-input-json`` option and a JSON input file called ``ecs-simple-service-elb.json`` with the following content. :: + + aws ecs create-service \ + --cluster MyCluster \ + --service-name ecs-simple-service-elb \ + --cli-input-json file://ecs-simple-service-elb.json + +Contents of ``ecs-simple-service-elb.json``:: + + { + "serviceName": "ecs-simple-service-elb", + "taskDefinition": "ecs-demo", + "loadBalancers": [ + { + "loadBalancerName": "EC2Contai-EcsElast-123456789012", + "containerName": "simple-demo", + "containerPort": 80 + } + ], + "desiredCount": 10, + "role": "ecsServiceRole" + } + +Output:: + + { + "service": { + "status": "ACTIVE", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/ecs-demo:1", + "pendingCount": 0, + "loadBalancers": [ + { + "containerName": "ecs-demo", + "containerPort": 80, + "loadBalancerName": "EC2Contai-EcsElast-123456789012" + } + ], + "roleArn": "arn:aws:iam::123456789012:role/ecsServiceRole", + "desiredCount": 10, + "serviceName": "ecs-simple-service-elb", + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", + "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/ecs-simple-service-elb", + "deployments": [ + { + "status": "PRIMARY", + "pendingCount": 0, + "createdAt": 1428100239.123, + "desiredCount": 10, + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/ecs-demo:1", + "updatedAt": 1428100239.123, + "id": "ecs-svc/1234567890123456789", + "runningCount": 0 + } + ], + "events": [], + "runningCount": 0 + } + } + +For more information, see `Use load balancing to distribute Amazon ECS service traffic `__ in the *Amazon ECS Developer Guide*. + +**Example 5: To configure Amazon EBS volumes at service creation** + +The following ``create-service`` example shows how to configure Amazon EBS volumes for each task managed by the service. You must have an Amazon ECS infrastructure role configured with the ``AmazonECSInfrastructureRolePolicyForVolumes`` managed policy attached. You must specify a task definition with the same volume name as in the ``create-service`` request. This example uses the ``--cli-input-json`` option and a JSON input file called ``ecs-simple-service-ebs.json`` with the following content. :: + + aws ecs create-service \ + --cli-input-json file://ecs-simple-service-ebs.json + +Contents of ``ecs-simple-service-ebs.json``:: + + { + "cluster": "mycluster", + "taskDefinition": "mytaskdef", + "serviceName": "ecs-simple-service-ebs", + "desiredCount": 2, + "launchType": "FARGATE", + "networkConfiguration":{ + "awsvpcConfiguration":{ + "assignPublicIp": "ENABLED", + "securityGroups": ["sg-12344321"], + "subnets":["subnet-12344321"] + } + }, + "volumeConfigurations": [ + { + "name": "myEbsVolume", + "managedEBSVolume": { + "roleArn":"arn:aws:iam::123456789012:role/ecsInfrastructureRole", + "volumeType": "gp3", + "sizeInGiB": 100, + "iops": 3000, + "throughput": 125, + "filesystemType": "ext4" + } + } + ] + } + +Output:: + + { + "service": { + "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/mycluster/ecs-simple-service-ebs", + "serviceName": "ecs-simple-service-ebs", + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/mycluster", + "loadBalancers": [], + "serviceRegistries": [], + "status": "ACTIVE", + "desiredCount": 2, + "runningCount": 0, + "pendingCount": 0, + "launchType": "EC2", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:3", + "deploymentConfiguration": { + "deploymentCircuitBreaker": { + "enable": false, + "rollback": false + }, + "maximumPercent": 200, + "minimumHealthyPercent": 100 + }, + "deployments": [ + { + "id": "ecs-svc/7851020056849183687", + "status": "PRIMARY", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:3", + "desiredCount": 0, + "pendingCount": 0, + "runningCount": 0, + "failedTasks": 0, + "createdAt": "2025-01-21T11:32:38.034000-06:00", + "updatedAt": "2025-01-21T11:32:38.034000-06:00", + "launchType": "EC2", + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12344321" + ], + "securityGroups": [ + "sg-12344321" + ], + "assignPublicIp": "DISABLED" + } + }, + "rolloutState": "IN_PROGRESS", + "rolloutStateReason": "ECS deployment ecs-svc/7851020056849183687 in progress.", + "volumeConfigurations": [ + { + "name": "myEBSVolume", + "managedEBSVolume": { + "volumeType": "gp3", + "sizeInGiB": 100, + "iops": 3000, + "throughput": 125, + "roleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", + "filesystemType": "ext4" + } + } + ] + } + ], + "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS", + "events": [], + "createdAt": "2025-01-21T11:32:38.034000-06:00", + "placementConstraints": [], + "placementStrategy": [], + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12344321" + ], + "securityGroups": [ + "sg-12344321" + ], + "assignPublicIp": "DISABLED" + } + }, + "healthCheckGracePeriodSeconds": 0, + "schedulingStrategy": "REPLICA", + "deploymentController": { + "type": "ECS" + }, + "createdBy": "arn:aws:iam::123456789012:user/AIDACKCEVSQ6C2EXAMPLE", + "enableECSManagedTags": false, + "propagateTags": "NONE", + "enableExecuteCommand": false, + "availabilityZoneRebalancing": "DISABLED" + } + } + +For more information, see `Use Amazon EBS volumes with Amazon ECS `__ in the *Amazon ECS Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/create-task-set.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/create-task-set.rst new file mode 100644 index 000000000..3fca4ffa9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/create-task-set.rst @@ -0,0 +1,45 @@ +**To create a task set** + +The following ``create-task-set`` example creates a task set in a service that uses an external deployment controller. :: + + aws ecs create-task-set \ + --cluster MyCluster \ + --service MyService \ + --task-definition MyTaskDefinition:2 \ + --network-configuration "awsvpcConfiguration={subnets=[subnet-12344321],securityGroups=[sg-12344321]}" + +Output:: + + { + "taskSet": { + "id": "ecs-svc/1234567890123456789", + "taskSetArn": "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789", + "status": "ACTIVE", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/MyTaskDefinition:2", + "computedDesiredCount": 0, + "pendingCount": 0, + "runningCount": 0, + "createdAt": 1557128360.711, + "updatedAt": 1557128360.711, + "launchType": "EC2", + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12344321" + ], + "securityGroups": [ + "sg-12344321" + ], + "assignPublicIp": "DISABLED" + } + }, + "loadBalancers": [], + "serviceRegistries": [], + "scale": { + "value": 0.0, + "unit": "PERCENT" + }, + "stabilityStatus": "STABILIZING", + "stabilityStatusAt": 1557128360.711 + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/delete-account-setting.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/delete-account-setting.rst new file mode 100644 index 000000000..25ee0419b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/delete-account-setting.rst @@ -0,0 +1,19 @@ +**To delete the account settings for a specific IAM user or IAM role** + +The following example ``delete-account-setting`` deletes the account settings for the specific IAM user or IAM role. :: + + aws ecs delete-account-setting \ + --name serviceLongArnFormat \ + --principal-arn arn:aws:iam::123456789012:user/MyUser + +Output:: + + { + "setting": { + "name": "serviceLongArnFormat", + "value": "enabled", + "principalArn": "arn:aws:iam::123456789012:user/MyUser" + } + } + +For more information, see `Amazon Resource Names (ARNs) and IDs `_ in the *Amazon ECS Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/delete-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/delete-attributes.rst new file mode 100644 index 000000000..904de7992 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/delete-attributes.rst @@ -0,0 +1,18 @@ +**To delete one or more custom attributes from an Amazon ECS resource** + +The following ``delete-attributes`` deletes an attribute with the name ``stack`` from a container instance. :: + + aws ecs delete-attributes \ + --attributes name=stack,targetId=arn:aws:ecs:us-west-2:130757420319:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34 + +Output:: + + { + "attributes": [ + { + "name": "stack", + "targetId": "arn:aws:ecs:us-west-2:130757420319:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34", + "value": "production" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/delete-capacity-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/delete-capacity-provider.rst new file mode 100644 index 000000000..b3bb8b3ae --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/delete-capacity-provider.rst @@ -0,0 +1,61 @@ +**Example 1: To delete a capacity provider using the Amazon Resource Name (ARN)** + +The following ``delete-capacity-provider`` example deletes a capacity provider by specifying the Amazon Resource Name (ARN) of the capacity provider. The ARN as well as the status of the capacity provider deletion can be retrieved using the ``describe-capacity-providers`` command. :: + + aws ecs delete-capacity-provider \ + --capacity-provider arn:aws:ecs:us-west-2:123456789012:capacity-provider/ExampleCapacityProvider + +Output:: + + { + "capacityProvider": { + "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/ExampleCapacityProvider", + "name": "ExampleCapacityProvider", + "status": "ACTIVE", + "autoScalingGroupProvider": { + "autoScalingGroupArn": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:autoScalingGroupName/MyAutoScalingGroup", + "managedScaling": { + "status": "ENABLED", + "targetCapacity": 100, + "minimumScalingStepSize": 1, + "maximumScalingStepSize": 10000 + }, + "managedTerminationProtection": "DISABLED" + }, + "updateStatus": "DELETE_IN_PROGRESS", + "tags": [] + } + } + +For more information, see `Cluster capacity providers `__ in the *Amazon ECS Developer Guide*. + +**Example 2: To delete a capacity provider using the name** + +The following ``delete-capacity-provider`` example deletes a capacity provider by specifying the short name of the capacity provider. The short name as well as the status of the capacity provider deletion can be retrieved using the ``describe-capacity-providers`` command. :: + + aws ecs delete-capacity-provider \ + --capacity-provider ExampleCapacityProvider + +Output:: + + { + "capacityProvider": { + "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/ExampleCapacityProvider", + "name": "ExampleCapacityProvider", + "status": "ACTIVE", + "autoScalingGroupProvider": { + "autoScalingGroupArn": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:autoScalingGroupName/MyAutoScalingGroup", + "managedScaling": { + "status": "ENABLED", + "targetCapacity": 100, + "minimumScalingStepSize": 1, + "maximumScalingStepSize": 10000 + }, + "managedTerminationProtection": "DISABLED" + }, + "updateStatus": "DELETE_IN_PROGRESS", + "tags": [] + } + } + +For more information, see `Cluster capacity providers `__ in the *Amazon ECS Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/delete-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/delete-cluster.rst new file mode 100644 index 000000000..784402149 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/delete-cluster.rst @@ -0,0 +1,23 @@ +**To delete an empty cluster** + +The following ``delete-cluster`` example deletes the specified empty cluster. :: + + aws ecs delete-cluster --cluster MyCluster + +Output:: + + { + "cluster": { + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", + "status": "INACTIVE", + "clusterName": "MyCluster", + "registeredContainerInstancesCount": 0, + "pendingTasksCount": 0, + "runningTasksCount": 0, + "activeServicesCount": 0 + "statistics": [], + "tags": [] + } + } + +For more information, see `Deleting a Cluster `_ in the *Amazon ECS Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/delete-service.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/delete-service.rst new file mode 100644 index 000000000..0611aa59c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/delete-service.rst @@ -0,0 +1,7 @@ +**To delete a service** + +The following ``ecs delete-service`` example deletes the specified service from a cluster. You can include the ``--force`` parameter to delete a service even if it has not been scaled to zero tasks. :: + + aws ecs delete-service --cluster MyCluster --service MyService1 --force + +For more information, see `Deleting a Service `_ in the *Amazon ECS Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/delete-task-definitions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/delete-task-definitions.rst new file mode 100644 index 000000000..449424633 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/delete-task-definitions.rst @@ -0,0 +1,66 @@ +**To delete a task definition** + +The following ``delete-task-definitions`` example deletes an INACTIVE task definition. :: + + aws ecs delete-task-definitions \ + --task-definition curltest:1 + +Output:: + + { + "taskDefinitions": [ + { + "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/curltest:1", + "containerDefinitions": [ + { + "name": "ctest", + "image": "mreferre/eksutils", + "cpu": 0, + "portMappings": [], + "essential": true, + "entryPoint": [ + "sh", + "-c" + ], + "command": [ + "curl ${ECS_CONTAINER_METADATA_URI_V4}/task" + ], + "environment": [], + "mountPoints": [], + "volumesFrom": [], + "logConfiguration": { + "logDriver": "awslogs", + "options": { + "awslogs-create-group": "true", + "awslogs-group": "/ecs/curltest", + "awslogs-region": "us-east-1", + "awslogs-stream-prefix": "ecs" + } + } + } + ], + "family": "curltest", + "taskRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole", + "executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole", + "networkMode": "awsvpc", + "revision": 1, + "volumes": [], + "status": "DELETE_IN_PROGRESS", + "compatibilities": [ + "EC2", + "FARGATE" + ], + "requiresCompatibilities": [ + "FARGATE" + ], + "cpu": "256", + "memory": "512", + "registeredAt": "2021-09-10T12:56:24.704000+00:00", + "deregisteredAt": "2023-03-14T15:20:59.419000+00:00", + "registeredBy": "arn:aws:sts::123456789012:assumed-role/Admin/jdoe" + } + ], + "failures": [] + } + +For more information, see `Amazon ECS Task Definitions `_ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/delete-task-set.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/delete-task-set.rst new file mode 100644 index 000000000..66c65694a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/delete-task-set.rst @@ -0,0 +1,45 @@ +**To delete a task set** + +The following ``delete-task-set`` example shows how to delete a task set. You can include the ``--force`` parameter to delete a task set even if it has not been scaled to zero. :: + + aws ecs delete-task-set \ + --cluster MyCluster \ + --service MyService \ + --task-set arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789 \ + --force + +Output:: + + { + "taskSet": { + "id": "ecs-svc/1234567890123456789", + "taskSetArn": "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789", + "status": "DRAINING", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:2", + "computedDesiredCount": 0, + "pendingCount": 0, + "runningCount": 0, + "createdAt": 1557130260.276, + "updatedAt": 1557130290.707, + "launchType": "EC2", + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12345678" + ], + "securityGroups": [ + "sg-12345678" + ], + "assignPublicIp": "DISABLED" + } + }, + "loadBalancers": [], + "serviceRegistries": [], + "scale": { + "value": 0.0, + "unit": "PERCENT" + }, + "stabilityStatus": "STABILIZING", + "stabilityStatusAt": 1557130290.707 + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/deregister-container-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/deregister-container-instance.rst new file mode 100644 index 000000000..32b525806 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/deregister-container-instance.rst @@ -0,0 +1,262 @@ +**To deregister a container instance from a cluster** + +The following ``deregister-container-instance`` example deregisters a container instance from the specified cluster. If there are still tasks running in the container instance, you must either stop those tasks before deregistering, or use the ``--force`` option. :: + + aws ecs deregister-container-instance \ + --cluster arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster \ + --container-instance arn:aws:ecs:us-west-2:123456789012:container-instance/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE \ + --force + +Output:: + + { + "containerInstance": { + "remainingResources": [ + { + "integerValue": 1024, + "doubleValue": 0.0, + "type": "INTEGER", + "longValue": 0, + "name": "CPU" + }, + { + "integerValue": 985, + "doubleValue": 0.0, + "type": "INTEGER", + "longValue": 0, + "name": "MEMORY" + }, + { + "type": "STRINGSET", + "integerValue": 0, + "name": "PORTS", + "stringSetValue": [ + "22", + "2376", + "2375", + "51678", + "51679" + ], + "longValue": 0, + "doubleValue": 0.0 + }, + { + "type": "STRINGSET", + "integerValue": 0, + "name": "PORTS_UDP", + "stringSetValue": [], + "longValue": 0, + "doubleValue": 0.0 + } + ], + "agentConnected": true, + "attributes": [ + { + "name": "ecs.capability.secrets.asm.environment-variables" + }, + { + "name": "com.amazonaws.ecs.capability.logging-driver.syslog" + }, + { + "value": "ami-01a82c3fce2c3ba58", + "name": "ecs.ami-id" + }, + { + "name": "ecs.capability.secrets.asm.bootstrap.log-driver" + }, + { + "name": "com.amazonaws.ecs.capability.logging-driver.none" + }, + { + "name": "ecs.capability.ecr-endpoint" + }, + { + "name": "com.amazonaws.ecs.capability.logging-driver.json-file" + }, + { + "value": "vpc-1234567890123467", + "name": "ecs.vpc-id" + }, + { + "name": "ecs.capability.execution-role-awslogs" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.17" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.19" + }, + { + "name": "ecs.capability.docker-plugin.local" + }, + { + "name": "ecs.capability.task-eni" + }, + { + "name": "ecs.capability.task-cpu-mem-limit" + }, + { + "name": "ecs.capability.secrets.ssm.bootstrap.log-driver" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.30" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.31" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.32" + }, + { + "name": "ecs.capability.execution-role-ecr-pull" + }, + { + "name": "ecs.capability.container-health-check" + }, + { + "value": "subnet-1234567890123467", + "name": "ecs.subnet-id" + }, + { + "value": "us-west-2a", + "name": "ecs.availability-zone" + }, + { + "value": "t2.micro", + "name": "ecs.instance-type" + }, + { + "name": "com.amazonaws.ecs.capability.task-iam-role-network-host" + }, + { + "name": "ecs.capability.aws-appmesh" + }, + { + "name": "com.amazonaws.ecs.capability.logging-driver.awslogs" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.24" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.25" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.26" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.27" + }, + { + "name": "com.amazonaws.ecs.capability.privileged-container" + }, + { + "name": "ecs.capability.container-ordering" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.28" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.29" + }, + { + "value": "x86_64", + "name": "ecs.cpu-architecture" + }, + { + "value": "93f43776-2018.10.0", + "name": "ecs.capability.cni-plugin-version" + }, + { + "name": "ecs.capability.secrets.ssm.environment-variables" + }, + { + "name": "ecs.capability.pid-ipc-namespace-sharing" + }, + { + "name": "com.amazonaws.ecs.capability.ecr-auth" + }, + { + "value": "linux", + "name": "ecs.os-type" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.20" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.21" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.22" + }, + { + "name": "ecs.capability.task-eia" + }, + { + "name": "ecs.capability.private-registry-authentication.secretsmanager" + }, + { + "name": "com.amazonaws.ecs.capability.task-iam-role" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.23" + } + ], + "pendingTasksCount": 0, + "tags": [], + "containerInstanceArn": "arn:aws:ecs:us-west-2:123456789012:container-instance/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", + "registeredResources": [ + { + "integerValue": 1024, + "doubleValue": 0.0, + "type": "INTEGER", + "longValue": 0, + "name": "CPU" + }, + { + "integerValue": 985, + "doubleValue": 0.0, + "type": "INTEGER", + "longValue": 0, + "name": "MEMORY" + }, + { + "type": "STRINGSET", + "integerValue": 0, + "name": "PORTS", + "stringSetValue": [ + "22", + "2376", + "2375", + "51678", + "51679" + ], + "longValue": 0, + "doubleValue": 0.0 + }, + { + "type": "STRINGSET", + "integerValue": 0, + "name": "PORTS_UDP", + "stringSetValue": [], + "longValue": 0, + "doubleValue": 0.0 + } + ], + "status": "INACTIVE", + "registeredAt": 1557768075.681, + "version": 4, + "versionInfo": { + "agentVersion": "1.27.0", + "agentHash": "aabe65ee", + "dockerVersion": "DockerVersion: 18.06.1-ce" + }, + "attachments": [], + "runningTasksCount": 0, + "ec2InstanceId": "i-12345678901234678" + } + } + +For more information, see `Deregister a Container Instance `_ in the *ECS Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/deregister-task-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/deregister-task-definition.rst new file mode 100644 index 000000000..6fd5d4b24 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/deregister-task-definition.rst @@ -0,0 +1,36 @@ +**To deregister a task definition** + +The following ``deregister-task-definition`` example deregisters the first revision of the ``curler`` task definition in your default region. :: + + aws ecs deregister-task-definition --task-definition curler:1 + +Note that in the resulting output, the task definition status shows ``INACTIVE``:: + + { + "taskDefinition": { + "status": "INACTIVE", + "family": "curler", + "volumes": [], + "taskDefinitionArn": "arn:aws:ecs:us-west-2:123456789012:task-definition/curler:1", + "containerDefinitions": [ + { + "environment": [], + "name": "curler", + "mountPoints": [], + "image": "curl:latest", + "cpu": 100, + "portMappings": [], + "entryPoint": [], + "memory": 256, + "command": [ + "curl -v http://example.com/" + ], + "essential": true, + "volumesFrom": [] + } + ], + "revision": 1 + } + } + +For more information, see `Amazon ECS Task Definitions `_ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-capacity-providers.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-capacity-providers.rst new file mode 100644 index 000000000..5be409426 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-capacity-providers.rst @@ -0,0 +1,81 @@ +**Example 1: To describe all capacity providers** + +The following ``describe-capacity-providers`` example retrieves details about all capacity providers. :: + + aws ecs describe-capacity-providers + +Output:: + + { + "capacityProviders": [ + { + "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/MyCapacityProvider", + "name": "MyCapacityProvider", + "status": "ACTIVE", + "autoScalingGroupProvider": { + "autoScalingGroupArn": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:autoScalingGroupName/MyAutoScalingGroup", + "managedScaling": { + "status": "ENABLED", + "targetCapacity": 100, + "minimumScalingStepSize": 1, + "maximumScalingStepSize": 1000 + }, + "managedTerminationProtection": "ENABLED" + }, + "tags": [] + }, + { + "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/FARGATE", + "name": "FARGATE", + "status": "ACTIVE", + "tags": [] + }, + { + "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/FARGATE_SPOT", + "name": "FARGATE_SPOT", + "status": "ACTIVE", + "tags": [] + } + ] + } + + +For more information, see `Cluster capacity providers `__ in the *Amazon ECS Developer Guide*. + +**Example 2: To describe a specific capacity providers** + +The following ``describe-capacity-providers`` example retrieves details about a specific capacity provider. Using the ``--include TAGS`` parameter will add the tags associated with the capacity provider to the output. :: + + aws ecs describe-capacity-providers \ + --capacity-providers MyCapacityProvider \ + --include TAGS + +Output:: + + { + "capacityProviders": [ + { + "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/MyCapacityProvider", + "name": "MyCapacityProvider", + "status": "ACTIVE", + "autoScalingGroupProvider": { + "autoScalingGroupArn": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:autoScalingGroupName/MyAutoScalingGroup", + "managedScaling": { + "status": "ENABLED", + "targetCapacity": 100, + "minimumScalingStepSize": 1, + "maximumScalingStepSize": 1000 + }, + "managedTerminationProtection": "ENABLED" + }, + "tags": [ + { + "key": "environment", + "value": "production" + } + ] + } + ] + } + +For more information, see `Cluster capacity providers `__ in the *Amazon ECS Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-clusters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-clusters.rst new file mode 100644 index 000000000..c37d16d91 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-clusters.rst @@ -0,0 +1,77 @@ +**Example 1: To describe a cluster** + +The following ``describe-clusters`` example retrieves details about the specified cluster. :: + + aws ecs describe-clusters \ + --cluster default + +Output:: + + { + "clusters": [ + { + "status": "ACTIVE", + "clusterName": "default", + "registeredContainerInstancesCount": 0, + "pendingTasksCount": 0, + "runningTasksCount": 0, + "activeServicesCount": 1, + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/default" + } + ], + "failures": [] + } + +For more information, see `Amazon ECS Clusters `__ in the *Amazon ECS Developer Guide*. + +**Example 2: To describe a cluster with the attachment option** + +The following ``describe-clusters`` example specifies the ATTACHMENTS option. It retrieves details about the specified cluster and a list of resources attached to the cluster in the form of attachments. When using a capacity provider with a cluster, the resources, either AutoScaling plans or scaling policies, will be represented as asp or as_policy ATTACHMENTS. :: + + aws ecs describe-clusters \ + --include ATTACHMENTS \ + --clusters sampleCluster + +Output:: + + { + "clusters": [ + { + "clusterArn": "arn:aws:ecs:af-south-1:123456789222:cluster/sampleCluster", + "clusterName": "sampleCluster", + "status": "ACTIVE", + "registeredContainerInstancesCount": 0, + "runningTasksCount": 0, + "pendingTasksCount": 0, + "activeServicesCount": 0, + "statistics": [], + "tags": [], + "settings": [], + "capacityProviders": [ + "sampleCapacityProvider" + ], + "defaultCapacityProviderStrategy": [], + "attachments": [ + { + "id": "a1b2c3d4-5678-901b-cdef-EXAMPLE22222", + "type": "as_policy", + "status": "CREATED", + "details": [ + { + "name": "capacityProviderName", + "value": "sampleCapacityProvider" + }, + { + "name": "scalingPolicyName", + "value": "ECSManagedAutoScalingPolicy-3048e262-fe39-4eaf-826d-6f975d303188" + } + ] + } + ], + "attachmentsStatus": "UPDATE_COMPLETE" + } + ], + "failures": [] + } + +For more information, see `Amazon ECS Clusters `__ in the *Amazon ECS Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-container-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-container-instances.rst new file mode 100644 index 000000000..4b876eed2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-container-instances.rst @@ -0,0 +1,88 @@ +**To describe container instance** + +The following ``describe-container-instances`` example retrieves details for a container instance in the ``update`` cluster, using the container instance UUID as an identifier. :: + + aws ecs describe-container-instances \ + --cluster update \ + --container-instances a1b2c3d4-5678-90ab-cdef-11111EXAMPLE + +Output:: + + { + "failures": [], + "containerInstances": [ + { + "status": "ACTIVE", + "registeredResources": [ + { + "integerValue": 2048, + "longValue": 0, + "type": "INTEGER", + "name": "CPU", + "doubleValue": 0.0 + }, + { + "integerValue": 3955, + "longValue": 0, + "type": "INTEGER", + "name": "MEMORY", + "doubleValue": 0.0 + }, + { + "name": "PORTS", + "longValue": 0, + "doubleValue": 0.0, + "stringSetValue": [ + "22", + "2376", + "2375", + "51678" + ], + "type": "STRINGSET", + "integerValue": 0 + } + ], + "ec2InstanceId": "i-A1B2C3D4", + "agentConnected": true, + "containerInstanceArn": "arn:aws:ecs:us-west-2:123456789012:container-instance/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", + "pendingTasksCount": 0, + "remainingResources": [ + { + "integerValue": 2048, + "longValue": 0, + "type": "INTEGER", + "name": "CPU", + "doubleValue": 0.0 + }, + { + "integerValue": 3955, + "longValue": 0, + "type": "INTEGER", + "name": "MEMORY", + "doubleValue": 0.0 + }, + { + "name": "PORTS", + "longValue": 0, + "doubleValue": 0.0, + "stringSetValue": [ + "22", + "2376", + "2375", + "51678" + ], + "type": "STRINGSET", + "integerValue": 0 + } + ], + "runningTasksCount": 0, + "versionInfo": { + "agentVersion": "1.0.0", + "agentHash": "4023248", + "dockerVersion": "DockerVersion: 1.5.0" + } + } + ] + } + +For more information, see `Amazon ECS Container Instances `_ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-service-deployments.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-service-deployments.rst new file mode 100644 index 000000000..f7f97b681 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-service-deployments.rst @@ -0,0 +1,54 @@ +**To describe service deployment details** + +The following ``describe-service-deployments`` example returns the service deployment details for the service deployment with the ARN ``arn:aws:ecs:us-east-1:123456789012:service-deployment/example-cluster/example-service/ejGvqq2ilnbKT9qj0vLJe``. :: + + aws ecs describe-service-deployments \ + --service-deployment-arn arn:aws:ecs:us-east-1:123456789012:service-deployment/example-cluster/example-service/ejGvqq2ilnbKT9qj0vLJe + +Output:: + + { + "serviceDeployments": [ + { + "serviceDeploymentArn": "arn:aws:ecs:us-east-1:123456789012:service-deployment/example-cluster/example-service/ejGvqq2ilnbKT9qj0vLJe", + "serviceArn": "arn:aws:ecs:us-east-1:123456789012:service/example-cluster/example-service", + "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/example-cluster", + "createdAt": "2024-10-31T08:03:30.917000-04:00", + "startedAt": "2024-10-31T08:03:32.510000-04:00", + "finishedAt": "2024-10-31T08:05:04.527000-04:00", + "updatedAt": "2024-10-31T08:05:04.527000-04:00", + "sourceServiceRevisions": [], + "targetServiceRevision": { + "arn": "arn:aws:ecs:us-east-1:123456789012:service-revision/example-cluster/example-service/1485800978477494678", + "requestedTaskCount": 1, + "runningTaskCount": 1, + "pendingTaskCount": 0 + }, + "status": "SUCCESSFUL", + "deploymentConfiguration": { + "deploymentCircuitBreaker": { + "enable": true, + "rollback": true + }, + "maximumPercent": 200, + "minimumHealthyPercent": 100, + "alarms": { + "alarmNames": [], + "rollback": false, + "enable": false + } + }, + "deploymentCircuitBreaker": { + "status": "MONITORING_COMPLETE", + "failureCount": 0, + "threshold": 3 + }, + "alarms": { + "status": "DISABLED" + } + } + ], + "failures": [] + } + +For more information, see `View service history using Amazon ECS service deployments `_ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-service-revisions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-service-revisions.rst new file mode 100644 index 000000000..22fb2436d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-service-revisions.rst @@ -0,0 +1,60 @@ +**To describe service revision details** + +The following ``describe-service-revisions`` example returns the service revision details for the service revision with the ARN ``arn:aws:ecs:us-east-1:123456789012:service-revision/example-cluster/example-service/1485800978477494678``. :: + + aws ecs describe-service-revisions \ + --service-revision-arns arn:aws:ecs:us-east-1:123456789012:service-revision/example-cluster/example-service/1485800978477494678 + +Output:: + + { + "serviceRevisions": [ + { + "serviceRevisionArn": "arn:aws:ecs:us-east-1:123456789012:service-revision/example-cluster/example-service/1485800978477494678", + "serviceArn": "arn:aws:ecs:us-east-1:123456789012:service/example-cluster/example-service", + "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/example-cluster", + "taskDefinition": "arn:aws:ecs:us-east-1:123456789012:task-definition/webserver:5", + "capacityProviderStrategy": [ + { + "capacityProvider": "FARGATE", + "weight": 1, + "base": 0 + } + ], + "platformVersion": "1.4.0", + "platformFamily": "Linux", + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-0d0eab1bb38d5ca64", + "subnet-0db5010045995c2d5" + ], + "securityGroups": [ + "sg-02556bf85a191f59a" + ], + "assignPublicIp": "ENABLED" + } + }, + "containerImages": [ + { + "containerName": "aws-otel-collector", + "imageDigest": "sha256:7a1b3560655071bcacd66902c20ebe9a69470d5691fe3bd36baace7c2f3c4640", + "image": "public.ecr.aws/aws-observability/aws-otel-collector:v0.32.0" + }, + { + "containerName": "web", + "imageDigest": "sha256:28402db69fec7c17e179ea87882667f1e054391138f77ffaf0c3eb388efc3ffb", + "image": "nginx" + } + ], + "guardDutyEnabled": false, + "serviceConnectConfiguration": { + "enabled": false + }, + "createdAt": "2024-10-31T08:03:29.302000-04:00" + } + ], + "failures": [] + } + +For more information, see `Amazon ECS service revisions `_ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-services.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-services.rst new file mode 100644 index 000000000..b8d67ebc5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-services.rst @@ -0,0 +1,46 @@ +**To describe a service** + +The following ``describe-services`` example retrieves details for the ``my-http-service`` service in the default cluster. :: + + aws ecs describe-services --services my-http-service + +Output:: + + { + "services": [ + { + "status": "ACTIVE", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/amazon-ecs-sample:1", + "pendingCount": 0, + "loadBalancers": [], + "desiredCount": 10, + "createdAt": 1466801808.595, + "serviceName": "my-http-service", + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/default", + "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/my-http-service", + "deployments": [ + { + "status": "PRIMARY", + "pendingCount": 0, + "createdAt": 1466801808.595, + "desiredCount": 10, + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/amazon-ecs-sample:1", + "updatedAt": 1428326312.703, + "id": "ecs-svc/1234567890123456789", + "runningCount": 10 + } + ], + "events": [ + { + "message": "(service my-http-service) has reached a steady state.", + "id": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", + "createdAt": 1466801812.435 + } + ], + "runningCount": 10 + } + ], + "failures": [] + } + +For more information, see `Services `_ in the *Amazon ECS Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-task-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-task-definition.rst new file mode 100644 index 000000000..d308fcc1d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-task-definition.rst @@ -0,0 +1,65 @@ +**To describe a task definition** + +The following ``describe-task-definition`` example retrieves the details of a task definition. :: + + aws ecs describe-task-definition \ + --task-definition hello_world:8 + +Output:: + + { + "taskDefinition": { + "taskDefinitionArn": "arn:aws:ecs:us-east-1:012345678910:task-definition/hello_world:8", + "containerDefinitions": [ + { + "cpu": 10, + "environment": [], + "essential": true, + "image": "wordpress", + "links": [ + "mysql" + ] , + "memory": 500, + "mountPoints": [], + "name": "wordpress", + "portMappings": [ + { + "containerPort": 80, + "hostPort": 80 + } + ], + "volumesFrom": [] + }, + { + "cpu": 10, + "environment": [ + { + "name": "MYSQL_ROOT_PASSWORD", + "value": "password" + } + ], + "essential": true, + "image": "mysql", + "memory": 500, + "mountPoints": [], + "name": "mysql", + "portMappings": [], + "volumesFrom": [] + } + ], + "family": "hello_world", + "revision": 8, + "volumes": [], + "status": "ACTIVE", + "placementConstraints": [], + "compatibilities": [ + "EXTERNAL", + "EC2" + ], + "registeredAt": "2024-06-21T11:15:12.669000-05:00", + "registeredBy": "arn:aws:sts::012345678910:assumed-role/demo-role/jane-doe" + }, + "tags": [] + } + +For more information, see `Amazon ECS Task Definitions `_ in the *Amazon ECS Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-task-sets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-task-sets.rst new file mode 100644 index 000000000..24e657b1f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-task-sets.rst @@ -0,0 +1,48 @@ +**To describe a task set** + +The following ``describe-task-sets`` example describes a task set in a service that uses an external deployer. :: + + aws ecs describe-task-sets \ + --cluster MyCluster \ + --service MyService \ + --task-sets arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789 + +Output:: + + { + "taskSets": [ + { + "id": "ecs-svc/1234567890123456789", + "taskSetArn": "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789", + "status": "ACTIVE", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:2", + "computedDesiredCount": 0, + "pendingCount": 0, + "runningCount": 0, + "createdAt": 1557207715.195, + "updatedAt": 1557207740.014, + "launchType": "EC2", + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12344321" + ], + "securityGroups": [ + "sg-1234431" + ], + "assignPublicIp": "DISABLED" + } + }, + "loadBalancers": [], + "serviceRegistries": [], + "scale": { + "value": 0.0, + "unit": "PERCENT" + }, + "stabilityStatus": "STEADY_STATE", + "stabilityStatusAt": 1557207740.014 + } + ], + "failures": [] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-tasks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-tasks.rst new file mode 100644 index 000000000..5c9f7fa66 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/describe-tasks.rst @@ -0,0 +1,278 @@ +**Example 1: To describe a single task tasks** + +The following ``describe-tasks`` example retrieves the details of a task in a cluster. You can specify the task by using either the ID or full ARN of the task. This example uses the full ARN of the task. :: + + aws ecs describe-tasks \ + --cluster MyCluster \ + --tasks arn:aws:ecs:us-east-1:123456789012:task/MyCluster/4d590253bb114126b7afa7b58EXAMPLE + +Output:: + + { + "tasks": [ + { + "attachments": [], + "attributes": [ + { + "name": "ecs.cpu-architecture", + "value": "x86_64" + } + ], + "availabilityZone": "us-east-1b", + "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/MyCluster", + "connectivity": "CONNECTED", + "connectivityAt": "2021-08-11T12:21:26.681000-04:00", + "containerInstanceArn": "arn:aws:ecs:us-east-1:123456789012:container-instance/test/025c7e2c5e054a6790a29fc1fEXAMPLE", + "containers": [ + { + "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/MyCluster/4d590253bb114126b7afa7b58eea9221/a992d1cc-ea46-474a-b6e8-24688EXAMPLE", + "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/4d590253bb114126b7afa7b58EXAMPLE", + "name": "simple-app", + "image": "httpd:2.4", + "runtimeId": "91251eed27db90006ad67b1a08187290869f216557717dd5c39b37c94EXAMPLE", + "lastStatus": "RUNNING", + "networkBindings": [ + { + "bindIP": "0.0.0.0", + "containerPort": 80, + "hostPort": 80, + "protocol": "tcp" + } + ], + "networkInterfaces": [], + "healthStatus": "UNKNOWN", + "cpu": "10", + "memory": "300" + } + ], + "cpu": "10", + "createdAt": "2021-08-11T12:21:26.681000-04:00", + "desiredStatus": "RUNNING", + "enableExecuteCommand": false, + "group": "service:testupdate", + "healthStatus": "UNKNOWN", + "lastStatus": "RUNNING", + "launchType": "EC2", + "memory": "300", + "overrides": { + "containerOverrides": [ + { + "name": "simple-app" + } + ], + "inferenceAcceleratorOverrides": [] + }, + "pullStartedAt": "2021-08-11T12:21:28.234000-04:00", + "pullStoppedAt": "2021-08-11T12:21:33.793000-04:00", + "startedAt": "2021-08-11T12:21:34.945000-04:00", + "startedBy": "ecs-svc/968695068243EXAMPLE", + "tags": [], + "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/4d590253bb114126b7afa7b58eea9221", + "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/console-sample-app-static2:1", + "version": 2 + } + ], + "failures": [] + } + +For more information, see `Amazon ECS Task Definitions `__ in the *Amazon ECS Developer Guide*. + +**Example 2: To describe multiple tasks** + +The following ``describe-tasks`` example retrieves the details of multiple tasks in a cluster. You can specify the task by using either the ID or full ARN of the task. This example uses the full IDs of the tasks. :: + + aws ecs describe-tasks \ + --cluster MyCluster \ + --tasks "74de0355a10a4f979ac495c14EXAMPLE" "d789e94343414c25b9f6bd59eEXAMPLE" + +Output:: + + { + "tasks": [ + { + "attachments": [ + { + "id": "d9e7735a-16aa-4128-bc7a-b2d51EXAMPLE", + "type": "ElasticNetworkInterface", + "status": "ATTACHED", + "details": [ + { + "name": "subnetId", + "value": "subnet-0d0eab1bb3EXAMPLE" + }, + { + "name": "networkInterfaceId", + "value": "eni-0fa40520aeEXAMPLE" + }, + { + "name": "macAddress", + "value": "0e:89:76:28:07:b3" + }, + { + "name": "privateDnsName", + "value": "ip-10-0-1-184.ec2.internal" + }, + { + "name": "privateIPv4Address", + "value": "10.0.1.184" + } + ] + } + ], + "attributes": [ + { + "name": "ecs.cpu-architecture", + "value": "x86_64" + } + ], + "availabilityZone": "us-east-1b", + "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/MyCluster", + "connectivity": "CONNECTED", + "connectivityAt": "2021-12-20T12:13:37.875000-05:00", + "containers": [ + { + "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/MyCluster/74de0355a10a4f979ac495c14EXAMPLE/aad3ba00-83b3-4dac-84d4-11f8cEXAMPLE", + "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/74de0355a10a4f979ac495c14EXAMPLE", + "name": "web", + "image": "nginx", + "runtimeId": "74de0355a10a4f979ac495c14EXAMPLE-265927825", + "lastStatus": "RUNNING", + "networkBindings": [], + "networkInterfaces": [ + { + "attachmentId": "d9e7735a-16aa-4128-bc7a-b2d51EXAMPLE", + "privateIpv4Address": "10.0.1.184" + } + ], + "healthStatus": "UNKNOWN", + "cpu": "99", + "memory": "100" + } + ], + "cpu": "256", + "createdAt": "2021-12-20T12:13:20.226000-05:00", + "desiredStatus": "RUNNING", + "enableExecuteCommand": false, + "group": "service:tdsevicetag", + "healthStatus": "UNKNOWN", + "lastStatus": "RUNNING", + "launchType": "FARGATE", + "memory": "512", + "overrides": { + "containerOverrides": [ + { + "name": "web" + } + ], + "inferenceAcceleratorOverrides": [] + }, + "platformVersion": "1.4.0", + "platformFamily": "Linux", + "pullStartedAt": "2021-12-20T12:13:42.665000-05:00", + "pullStoppedAt": "2021-12-20T12:13:46.543000-05:00", + "startedAt": "2021-12-20T12:13:48.086000-05:00", + "startedBy": "ecs-svc/988401040018EXAMPLE", + "tags": [], + "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/74de0355a10a4f979ac495c14EXAMPLE", + "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/webserver:2", + "version": 3, + "ephemeralStorage": { + "sizeInGiB": 20 + } + }, + { + "attachments": [ + { + "id": "214eb5a9-45cd-4bf8-87bc-57fefEXAMPLE", + "type": "ElasticNetworkInterface", + "status": "ATTACHED", + "details": [ + { + "name": "subnetId", + "value": "subnet-0d0eab1bb3EXAMPLE" + }, + { + "name": "networkInterfaceId", + "value": "eni-064c7766daEXAMPLE" + }, + { + "name": "macAddress", + "value": "0e:76:83:01:17:a9" + }, + { + "name": "privateDnsName", + "value": "ip-10-0-1-41.ec2.internal" + }, + { + "name": "privateIPv4Address", + "value": "10.0.1.41" + } + ] + } + ], + "attributes": [ + { + "name": "ecs.cpu-architecture", + "value": "x86_64" + } + ], + "availabilityZone": "us-east-1b", + "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/MyCluster", + "connectivity": "CONNECTED", + "connectivityAt": "2021-12-20T12:13:35.243000-05:00", + "containers": [ + { + "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/MyCluster/d789e94343414c25b9f6bd59eEXAMPLE/9afef792-609b-43a5-bb6a-3efdbEXAMPLE", + "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/d789e94343414c25b9f6bd59eEXAMPLE", + "name": "web", + "image": "nginx", + "runtimeId": "d789e94343414c25b9f6bd59eEXAMPLE-265927825", + "lastStatus": "RUNNING", + "networkBindings": [], + "networkInterfaces": [ + { + "attachmentId": "214eb5a9-45cd-4bf8-87bc-57fefEXAMPLE", + "privateIpv4Address": "10.0.1.41" + } + ], + "healthStatus": "UNKNOWN", + "cpu": "99", + "memory": "100" + } + ], + "cpu": "256", + "createdAt": "2021-12-20T12:13:20.226000-05:00", + "desiredStatus": "RUNNING", + "enableExecuteCommand": false, + "group": "service:tdsevicetag", + "healthStatus": "UNKNOWN", + "lastStatus": "RUNNING", + "launchType": "FARGATE", + "memory": "512", + "overrides": { + "containerOverrides": [ + { + "name": "web" + } + ], + "inferenceAcceleratorOverrides": [] + }, + "platformVersion": "1.4.0", + "platformFamily": "Linux", + "pullStartedAt": "2021-12-20T12:13:44.611000-05:00", + "pullStoppedAt": "2021-12-20T12:13:48.251000-05:00", + "startedAt": "2021-12-20T12:13:49.326000-05:00", + "startedBy": "ecs-svc/988401040018EXAMPLE", + "tags": [], + "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/d789e94343414c25b9f6bd59eEXAMPLE", + "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/webserver:2", + "version": 3, + "ephemeralStorage": { + "sizeInGiB": 20 + } + } + ], + "failures": [] + } + +For more information, see `Amazon ECS Task Definitions `__ in the *Amazon ECS Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/execute-command.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/execute-command.rst new file mode 100644 index 000000000..6719e9471 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/execute-command.rst @@ -0,0 +1,14 @@ +**To run an interactive /bin/sh command** + +The following ``execute-command`` example runs an interactive /bin/sh command against a container named MyContainer for a task with an id of ``arn:aws:ecs:us-east-1:123456789012:task/MyCluster/d789e94343414c25b9f6bd59eEXAMPLE``. :: + + aws ecs execute-command \ + --cluster MyCluster \ + --task arn:aws:ecs:us-east-1:123456789012:task/MyCluster/d789e94343414c25b9f6bd59eEXAMPLE \ + --container MyContainer \ + --interactive \ + --command "/bin/sh" + +This command produces no output. + +For more information, see `Using Amazon ECS Exec for debugging `__ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/get-task-protection.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/get-task-protection.rst new file mode 100644 index 000000000..456fb65d1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/get-task-protection.rst @@ -0,0 +1,21 @@ +**Retrieve the protection status of task in ECS service** + +The following ``get-task-protection`` provides the protection status of ECS tasks that belong to Amazon ECS service. :: + + aws ecs get-task-protection \ + --cluster ECS-project-update-cluster \ + --tasks c43ed3b1331041f289316f958adb6a24 + +Output:: + + { + "protectedTasks": [ + { + "taskArn": "arn:aws:ecs:us-west-2:123456789012:task/c43ed3b1331041f289316f958adb6a24", + "protectionEnabled": false + } + ], + "failures": [] + } + +For more formation on task protection, see `Protect your Amazon ECS tasks from being terminated by scale-in events `__ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-account-settings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-account-settings.rst new file mode 100644 index 000000000..397e02b36 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-account-settings.rst @@ -0,0 +1,47 @@ +**Example 1: To view the account settings for an account** + +The following ``list-account-settings`` example displays the effective account settings for an account. :: + + aws ecs list-account-settings --effective-settings + +Output:: + + { + "settings": [ + { + "name": "containerInstanceLongArnFormat", + "value": "enabled", + "principalArn": "arn:aws:iam::123456789012:root" + }, + { + "name": "serviceLongArnFormat", + "value": "enabled", + "principalArn": "arn:aws:iam::123456789012:root" + }, + { + "name": "taskLongArnFormat", + "value": "enabled", + "principalArn": "arn:aws:iam::123456789012:root" + } + ] + } + +**Example 2: To view the account settings for a specific IAM user or IAM role** + +The following ``list-account-settings`` example displays the account settings for the specified IAM user or IAM role. :: + + aws ecs list-account-settings --principal-arn arn:aws:iam::123456789012:user/MyUser + +Output:: + + { + "settings": [ + { + "name": "serviceLongArnFormat", + "value": "enabled", + "principalArn": "arn:aws:iam::123456789012:user/MyUser" + } + ] + } + +For more information, see `Amazon Resource Names (ARNs) and IDs `_ in the *Amazon ECS Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-attributes.rst new file mode 100644 index 000000000..3eabf0c90 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-attributes.rst @@ -0,0 +1,23 @@ +**To list the container instances that contain a specific attribute** + +The following example lists the attributes for container instances that have the ``stack=production`` attribute in the default cluster. :: + + aws ecs list-attributes \ + --target-type container-instance \ + --attribute-name stack \ + --attribute-value production \ + --cluster default + +Output:: + + { + "attributes": [ + { + "name": "stack", + "targetId": "arn:aws:ecs:us-west-2:130757420319:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34", + "value": "production" + } + ] + } + +For more information, see `Amazon ECS Container Agent Configuration `__ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-clusters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-clusters.rst new file mode 100644 index 000000000..d020efcb3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-clusters.rst @@ -0,0 +1,16 @@ +**To list your available clusters** + +The following ``list-clusters`` example lists all of the available clusters. :: + + aws ecs list-clusters + +Output:: + + { + "clusterArns": [ + "arn:aws:ecs:us-west-2:123456789012:cluster/MyECSCluster1", + "arn:aws:ecs:us-west-2:123456789012:cluster/AnotherECSCluster" + ] + } + +For more information, see `Amazon ECS Clusters `_ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-container-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-container-instances.rst new file mode 100644 index 000000000..f7682309b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-container-instances.rst @@ -0,0 +1,16 @@ +**To list the container instances in a cluster** + +The following ``list-container-instances`` example lists all of the available container instances in a cluster. :: + + aws ecs list-container-instances --cluster MyCluster + +Output:: + + { + "containerInstanceArns": [ + "arn:aws:ecs:us-west-2:123456789012:container-instance/MyCluster/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", + "arn:aws:ecs:us-west-2:123456789012:container-instance/MyCluster/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE" + ] + } + +For more information, see `Amazon ECS Container Instances `_ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-service-deployments.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-service-deployments.rst new file mode 100644 index 000000000..c1583085f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-service-deployments.rst @@ -0,0 +1,25 @@ +**To list service deployments** + +The following ``list-service-deployments`` example retrieves the service deployments for the service named ``example-service``. :: + + aws ecs list-service-deployments \ + --service arn:aws:ecs:us-east-1:123456789012:service/example-cluster/example-service + +Output:: + + { + "serviceDeployments": [ + { + "serviceDeploymentArn": "arn:aws:ecs:us-east-1:123456789012:service-deployment/example-cluster/example-service/ejGvqq2ilnbKT9qj0vLJe", + "serviceArn": "arn:aws:ecs:us-east-1:123456789012:service/example-cluster/example-service", + "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/example-cluster", + "startedAt": "2024-10-31T08:03:32.510000-04:00", + "createdAt": "2024-10-31T08:03:30.917000-04:00", + "finishedAt": "2024-10-31T08:05:04.527000-04:00", + "targetServiceRevisionArn": "arn:aws:ecs:us-east-1:123456789012:service-revision/example-cluster/example-service/1485800978477494678", + "status": "SUCCESSFUL" + } + ] + } + +For more information, see `View service history using Amazon ECS service deployments `_ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-services-by-namespace.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-services-by-namespace.rst new file mode 100644 index 000000000..69c35d5c1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-services-by-namespace.rst @@ -0,0 +1,17 @@ +**To list the services in a namespace** + +The following ``list-services-by-namespace`` example lists all of the services configured for the specified namespace in your default Region. :: + + aws ecs list-services-by-namespace \ + --namespace service-connect + +Output:: + + { + "serviceArns": [ + "arn:aws:ecs:us-west-2:123456789012:service/MyCluster/MyService", + "arn:aws:ecs:us-west-2:123456789012:service/tutorial/service-connect-nginx-service" + ] + } + +For more information, see `Service Connect `__ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-services.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-services.rst new file mode 100644 index 000000000..22ed2e312 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-services.rst @@ -0,0 +1,15 @@ +**To list the services in a cluster** + +The following ``list-services`` example shows how to list the services running in a cluster. :: + + aws ecs list-services --cluster MyCluster + +Output:: + + { + "serviceArns": [ + "arn:aws:ecs:us-west-2:123456789012:service/MyCluster/MyService" + ] + } + +For more information, see `Services `_ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-tags-for-resource.rst new file mode 100644 index 000000000..eb4841a9d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-tags-for-resource.rst @@ -0,0 +1,25 @@ +**To list the tags for a resource** + +The following ``list-tags-for-resource`` example lists the tags for a specific cluster. :: + + aws ecs list-tags-for-resource \ + --resource-arn arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster + +Output:: + + { + "tags": [ + { + "key": "key1", + "value": "value1" + }, + { + "key": "key2", + "value": "value2" + }, + { + "key": "key3", + "value": "value3" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-task-definition-families.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-task-definition-families.rst new file mode 100644 index 000000000..397d4247f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-task-definition-families.rst @@ -0,0 +1,33 @@ +**Example 1: To list the registered task definition families** + +The following ``list-task-definition-families`` example lists all of the registered task definition families. :: + + aws ecs list-task-definition-families + +Output:: + + { + "families": [ + "node-js-app", + "web-timer", + "hpcc", + "hpcc-c4-8xlarge" + ] + } + +**Example 2: To filter the registered task definition families** + +The following ``list-task-definition-families`` example lists the task definition revisions that start with "hpcc". :: + + aws ecs list-task-definition-families --family-prefix hpcc + +Output:: + + { + "families": [ + "hpcc", + "hpcc-c4-8xlarge" + ] + } + +For more information, see `Task Definition Parameters `_ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-task-definitions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-task-definitions.rst new file mode 100644 index 000000000..351ca46c1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-task-definitions.rst @@ -0,0 +1,37 @@ +**Example 1: To list the registered task definitions** + +The following ``list-task-definitions`` example lists all of the registered task definitions. :: + + aws ecs list-task-definitions + +Output:: + + { + "taskDefinitionArns": [ + "arn:aws:ecs:us-west-2:123456789012:task-definition/sleep300:2", + "arn:aws:ecs:us-west-2:123456789012:task-definition/sleep360:1", + "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:3", + "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:4", + "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:5", + "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:6" + ] + } + +**Example 2: To list the registered task definitions in a family** + +The following `list-task-definitions` example lists the task definition revisions of a specified family. :: + + aws ecs list-task-definitions --family-prefix wordpress + +Output:: + + { + "taskDefinitionArns": [ + "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:3", + "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:4", + "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:5", + "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:6" + ] + } + +For more information, see `Amazon ECS Task Definitions `_ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-tasks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-tasks.rst new file mode 100644 index 000000000..42a6837f7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/list-tasks.rst @@ -0,0 +1,30 @@ +**Example 1: To list the tasks in a cluster** + +The following ``list-tasks`` example lists all of the tasks in a cluster. :: + + aws ecs list-tasks --cluster default + +Output:: + + { + "taskArns": [ + "arn:aws:ecs:us-west-2:123456789012:task/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", + "arn:aws:ecs:us-west-2:123456789012:task/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE" + ] + } + +**Example 2: To list the tasks on a particular container instance** + +The following ``list-tasks`` example lists the tasks on a container instance, using the container instance UUID as a filter. :: + + aws ecs list-tasks --cluster default --container-instance a1b2c3d4-5678-90ab-cdef-33333EXAMPLE + +Output:: + + { + "taskArns": [ + "arn:aws:ecs:us-west-2:123456789012:task/a1b2c3d4-5678-90ab-cdef-44444EXAMPLE" + ] + } + +For more information, see `Amazon ECS Task Definitions `_ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/put-account-setting-default.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/put-account-setting-default.rst new file mode 100644 index 000000000..821d7258b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/put-account-setting-default.rst @@ -0,0 +1,17 @@ +**To modify the default account settings** + +The following ``put-account-setting-default`` example modifies the default account setting for all IAM users or roles on your account. These changes apply to the entire AWS account unless an IAM user or role explicitly overrides these settings for themselves. :: + + aws ecs put-account-setting-default --name serviceLongArnFormat --value enabled + +Output:: + + { + "setting": { + "name": "serviceLongArnFormat", + "value": "enabled", + "principalArn": "arn:aws:iam::123456789012:root" + } + } + +For more information, see `Amazon Resource Names (ARNs) and IDs `_ in the *Amazon ECS Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/put-account-setting.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/put-account-setting.rst new file mode 100644 index 000000000..521045817 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/put-account-setting.rst @@ -0,0 +1,20 @@ +**To modify the account setting for your IAM user account** + +The following ``put-account-setting`` example sets the ``containerInsights`` account setting to ``enhanced`` for your IAM user account. This turns on Container Insights with enhanced observability. :: + + aws ecs put-account-setting \ + --name containerInsights \ + --value enhanced + +Output:: + + { + "setting": { + "name": "containerInsights", + "value": "enhanced", + "principalArn": "arn:aws:iam::123456789012:user/johndoe", + "type": "user" + } + } + +For more information, see `Modifying Account Settings `__ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/put-account-settings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/put-account-settings.rst new file mode 100644 index 000000000..7f3a49b6b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/put-account-settings.rst @@ -0,0 +1,19 @@ +**To modify the account settings for an IAM user or IAM role** + +The following ``put-account-setting`` example modifies the account settings for the specified IAM user or IAM role. :: + + aws ecs put-account-setting \ + --name serviceLongArnFormat \ + --value enabled \ + --principal-arn arn:aws:iam::123456789012:user/MyUser + +Output:: + + { + "setting": { + "name": "serviceLongArnFormat", + "value": "enabled", + "principalArn": "arn:aws:iam::123456789012:user/MyUser" + } + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/put-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/put-attributes.rst new file mode 100644 index 000000000..aabed8acb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/put-attributes.rst @@ -0,0 +1,18 @@ +**To create an attribute and associate it with an Amazon ECS resource** + +The following ``put-attributes`` applies an attribute with the name stack and the value production to a container instance. :: + + aws ecs put-attributes \ + --attributes name=stack,value=production,targetId=arn:aws:ecs:us-west-2:130757420319:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34 + +Output:: + + { + "attributes": [ + { + "name": "stack", + "targetId": "arn:aws:ecs:us-west-2:130757420319:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34", + "value": "production" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/put-cluster-capacity-providers.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/put-cluster-capacity-providers.rst new file mode 100644 index 000000000..f85490203 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/put-cluster-capacity-providers.rst @@ -0,0 +1,223 @@ +**Example 1: To add an existing capacity provider to a cluster** + +The following ``put-cluster-capacity-providers`` example adds an existing capacity provider to a cluster. The ``create-capacity-provider`` command is used to create a capacity provider. The ``describe-clusters`` command is used to describe the current capacity providers and the default capacity provider strategy associated with a cluster. When adding a new capacity provider to a cluster, you must specify all existing capacity providers in addition to the new capacity provider you want to associate with the cluster. You must also specify the default capacity provider strategy to associate with the cluster. In this example, the ``MyCluster`` cluster has the ``MyCapacityProvider1`` capacity provider associated with it and you want to add the ``MyCapacityProvider2`` capacity provider and include it in the default capacity provider strategy so tasks are spread evenly across both capacity providers. :: + + aws ecs put-cluster-capacity-providers \ + --cluster MyCluster \ + --capacity-providers MyCapacityProvider1 MyCapacityProvider2 \ + --default-capacity-provider-strategy capacityProvider=MyCapacityProvider1,weight=1 capacityProvider=MyCapacityProvider2,weight=1 + +Output:: + + { + "cluster": { + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", + "clusterName": "MyCluster", + "status": "ACTIVE", + "registeredContainerInstancesCount": 0, + "runningTasksCount": 0, + "pendingTasksCount": 0, + "activeServicesCount": 0, + "statistics": [], + "tags": [], + "settings": [ + { + "name": "containerInsights", + "value": "enabled" + } + ], + "capacityProviders": [ + "MyCapacityProvider1", + "MyCapacityProvider2" + ], + "defaultCapacityProviderStrategy": [ + { + "capacityProvider": "MyCapacityProvider1", + "weight": 1, + "base": 0 + }, + { + "capacityProvider": "MyCapacityProvider2", + "weight": 1, + "base": 0 + } + ], + "attachments": [ + { + "id": "0fb0c8f4-6edd-4de1-9b09-17e470ee1918", + "type": "as_policy", + "status": "ACTIVE", + "details": [ + { + "name": "capacityProviderName", + "value": "MyCapacityProvider1" + }, + { + "name": "scalingPolicyName", + "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + } + ] + }, + { + "id": "ae592060-2382-4663-9476-b015c685593c", + "type": "as_policy", + "status": "ACTIVE", + "details": [ + { + "name": "capacityProviderName", + "value": "MyCapacityProvider2" + }, + { + "name": "scalingPolicyName", + "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" + } + ] + } + ], + "attachmentsStatus": "UPDATE_IN_PROGRESS" + } + } + +For more information, see `Cluster capacity providers `__ in the *Amazon ECS Developer Guide*. + +**Example 2: To remove a capacity provider from a cluster** + +The following ``put-cluster-capacity-providers`` example removes a capacity provider from a cluster. The ``describe-clusters`` command is used to describe the current capacity providers associated with a cluster. When removing a capacity provider from a cluster, you must specify the capacity providers you want to remain associated with the cluster as well as the default capacity provider strategy to associate with the cluster. In this example, the cluster has the ``MyCapacityProvider1`` and ``MyCapacityProvider2`` capacity providers associated with it and you want to remove the ``MyCapacityProvider2`` capacity provider, so you specify only ``MyCapacityProvider1`` in the command along with the updated default capacity provider strategy. :: + + aws ecs put-cluster-capacity-providers \ + --cluster MyCluster \ + --capacity-providers MyCapacityProvider1 \ + --default-capacity-provider-strategy capacityProvider=MyCapacityProvider1,weight=1,base=0 + +Output:: + + { + "cluster": { + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", + "clusterName": "MyCluster", + "status": "ACTIVE", + "registeredContainerInstancesCount": 0, + "runningTasksCount": 0, + "pendingTasksCount": 0, + "activeServicesCount": 0, + "statistics": [], + "tags": [], + "settings": [ + { + "name": "containerInsights", + "value": "enabled" + } + ], + "capacityProviders": [ + "MyCapacityProvider1" + ], + "defaultCapacityProviderStrategy": [ + "capacityProvider": "MyCapacityProvider1", + "weight": 1, + "base": 0 + ], + "attachments": [ + { + "id": "0fb0c8f4-6edd-4de1-9b09-17e470ee1918", + "type": "as_policy", + "status": "ACTIVE", + "details": [ + { + "name": "capacityProviderName", + "value": "MyCapacityProvider1" + }, + { + "name": "scalingPolicyName", + "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + } + ] + }, + { + "id": "ae592060-2382-4663-9476-b015c685593c", + "type": "as_policy", + "status": "DELETING", + "details": [ + { + "name": "capacityProviderName", + "value": "MyCapacityProvider2" + }, + { + "name": "scalingPolicyName", + "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" + } + ] + } + ], + "attachmentsStatus": "UPDATE_IN_PROGRESS" + } + } + +For more information, see `Cluster capacity providers `__ in the *Amazon ECS Developer Guide*. + +**Example 3: To remove all capacity providers from a cluster** + +The following ``put-cluster-capacity-providers`` example removes all existing capacity providers from the cluster. :: + + aws ecs put-cluster-capacity-providers \ + --cluster MyCluster \ + --capacity-providers [] \ + --default-capacity-provider-strategy [] + +Output:: + + { + "cluster": { + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", + "clusterName": "MyCluster", + "status": "ACTIVE", + "registeredContainerInstancesCount": 0, + "runningTasksCount": 0, + "pendingTasksCount": 0, + "activeServicesCount": 0, + "statistics": [], + "tags": [], + "settings": [ + { + "name": "containerInsights", + "value": "enabled" + } + ], + "capacityProviders": [], + "defaultCapacityProviderStrategy": [], + "attachments": [ + { + "id": "0fb0c8f4-6edd-4de1-9b09-17e470ee1918", + "type": "as_policy", + "status": "DELETING", + "details": [ + { + "name": "capacityProviderName", + "value": "MyCapacityProvider1" + }, + { + "name": "scalingPolicyName", + "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + } + ] + }, + { + "id": "ae592060-2382-4663-9476-b015c685593c", + "type": "as_policy", + "status": "DELETING", + "details": [ + { + "name": "capacityProviderName", + "value": "MyCapacityProvider2" + }, + { + "name": "scalingPolicyName", + "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" + } + ] + } + ], + "attachmentsStatus": "UPDATE_IN_PROGRESS" + } + } + +For more information, see `Cluster capacity providers `__ in the *Amazon ECS Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/register-task-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/register-task-definition.rst new file mode 100644 index 000000000..0cef36732 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/register-task-definition.rst @@ -0,0 +1,73 @@ +**Example 1: To register a task definition with a JSON file** + +The following ``register-task-definition`` example registers a task definition to the specified family. The container definitions are saved in JSON format at the specified file location. :: + + aws ecs register-task-definition \ + --cli-input-json file:///sleep360.json + +Contents of ``sleep360.json``:: + + { + "containerDefinitions": [ + { + "name": "sleep", + "image": "busybox", + "cpu": 10, + "command": [ + "sleep", + "360" + ], + "memory": 10, + "essential": true + } + ], + "family": "sleep360" + } + +Output:: + + { + "taskDefinition": { + "status": "ACTIVE", + "family": "sleep360", + "placementConstraints": [], + "compatibilities": [ + "EXTERNAL", + "EC2" + ], + "volumes": [], + "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/sleep360:1", + "containerDefinitions": [ + { + "environment": [], + "name": "sleep", + "mountPoints": [], + "image": "busybox", + "cpu": 10, + "portMappings": [], + "command": [ + "sleep", + "360" + ], + "memory": 10, + "essential": true, + "volumesFrom": [] + } + ], + "revision": 1 + } + } + +For more information, see `Example task definitions `_ in the *Amazon ECS Developer Guide*. + +**Example 2: To register a task definition with a JSON string parameter** + +The following ``register-task-definition`` example registers a task definition using container definitions provided as a JSON string parameter with escaped double quotes. :: + + aws ecs register-task-definition \ + --family sleep360 \ + --container-definitions "[{\"name\":\"sleep\",\"image\":\"busybox\",\"cpu\":10,\"command\":[\"sleep\",\"360\"],\"memory\":10,\"essential\":true}]" + +The output is identical to the previous example. + +For more information, see `Creating a Task Definition `_ in the *Amazon ECS Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/run-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/run-task.rst new file mode 100644 index 000000000..d9af59003 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/run-task.rst @@ -0,0 +1,188 @@ +**Example 1: To run a task on your default cluster** + +The following ``run-task`` example runs a task on the default cluster and uses a client token. :: + + aws ecs run-task \ + --cluster default \ + --task-definition sleep360:1 \ + --client-token 550e8400-e29b-41d4-a716-446655440000 + +Output:: + + { + "tasks": [ + { + "attachments": [], + "attributes": [ + { + "name": "ecs.cpu-architecture", + "value": "x86_64" + } + ], + "availabilityZone": "us-east-1b", + "capacityProviderName": "example-capacity-provider", + "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/default", + "containerInstanceArn": "arn:aws:ecs:us-east-1:123456789012:container-instance/default/bc4d2ec611d04bb7bb97e83ceEXAMPLE", + "containers": [ + { + "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/default/d6f51cc5bbc94a47969c92035e9f66f8/75853d2d-711e-458a-8362-0f0aEXAMPLE", + "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/default/d6f51cc5bbc94a47969c9203EXAMPLE", + "name": "sleep", + "image": "busybox", + "lastStatus": "PENDING", + "networkInterfaces": [], + "cpu": "10", + "memory": "10" + } + ], + "cpu": "10", + "createdAt": "2023-11-21T16:59:34.403000-05:00", + "desiredStatus": "RUNNING", + "enableExecuteCommand": false, + "group": "family:sleep360", + "lastStatus": "PENDING", + "launchType": "EC2", + "memory": "10", + "overrides": { + "containerOverrides": [ + { + "name": "sleep" + } + ], + "inferenceAcceleratorOverrides": [] + }, + "tags": [], + "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/default/d6f51cc5bbc94a47969c9203EXAMPLE", + "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/sleep360:1", + "version": 1 + } + ], + "failures": [] + } + +For more information, see `Running an application as a standalone task `__ in the *Amazon ECS Developer Guide*. + +**Example 2: To configure an Amazon EBS volume for a standalone task** + +The following ``run-task`` example configures an encrypted Amazon EBS volume for a Fargate task on the default cluster. You must have an Amazon ECS infrastructure role configured with the ``AmazonECSInfrastructureRolePolicyForVolumes`` managed policy attached. You must specify a task definition with the same volume name as in the ``run-task`` request. This example uses the ``--cli-input-json`` option and a JSON input file called ``ebs.json``. :: + + aws ecs run-task \ + --cli-input-json file://ebs.json + +Contents of ``ebs.json``:: + + { + "cluster": "default", + "taskDefinition": "mytaskdef", + "launchType": "FARGATE", + "networkConfiguration":{ + "awsvpcConfiguration":{ + "assignPublicIp": "ENABLED", + "securityGroups": ["sg-12344321"], + "subnets":["subnet-12344321"] + } + }, + "volumeConfigurations": [ + { + "name": "myEBSVolume", + "managedEBSVolume": { + "volumeType": "gp3", + "sizeInGiB": 100, + "roleArn":"arn:aws:iam::1111222333:role/ecsInfrastructureRole", + "encrypted": true, + "kmsKeyId": "arn:aws:kms:region:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" + } + } + ] + } + +Output:: + + { + "tasks": [ + { + "attachments": [ + { + "id": "ce868693-15ca-4083-91ac-f782f64000c9", + "type": "ElasticNetworkInterface", + "status": "PRECREATED", + "details": [ + { + "name": "subnetId", + "value": "subnet-070982705451dad82" + } + ] + }, + { + "id": "a17ed863-786c-4372-b5b3-b23e53f37877", + "type": "AmazonElasticBlockStorage", + "status": "CREATED", + "details": [ + { + "name": "roleArn", + "value": "arn:aws:iam::123456789012:role/ecsInfrastructureRole" + }, + { + "name": "volumeName", + "value": "myEBSVolume" + }, + { + "name": "deleteOnTermination", + "value": "true" + } + ] + } + ], + "attributes": [ + { + "name": "ecs.cpu-architecture", + "value": "x86_64" + } + ], + "availabilityZone": "us-west-2b", + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/default", + "containers": [ + { + "containerArn": "arn:aws:ecs:us-west-2:123456789012:container/default/7f1fbd3629434cc4b82d72d2f09b67c9/e21962a2-f328-4699-98a3-5161ac2c186a", + "taskArn": "arn:aws:ecs:us-west-2:123456789012:task/default/7f1fbd3629434cc4b82d72d2f09b67c9", + "name": "container-using-ebs", + "image": "amazonlinux:2", + "lastStatus": "PENDING", + "networkInterfaces": [], + "cpu": "0" + } + ], + "cpu": "1024", + "createdAt": "2025-01-23T10:29:46.650000-06:00", + "desiredStatus": "RUNNING", + "enableExecuteCommand": false, + "group": "family:mytaskdef", + "lastStatus": "PROVISIONING", + "launchType": "FARGATE", + "memory": "3072", + "overrides": { + "containerOverrides": [ + { + "name": "container-using-ebs" + } + ], + "inferenceAcceleratorOverrides": [] + }, + "platformVersion": "1.4.0", + "platformFamily": "Linux", + "tags": [], + "taskArn": "arn:aws:ecs:us-west-2:123456789012:task/default/7f1fbd3629434cc4b82d72d2f09b67c9", + "taskDefinitionArn": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:4", + "version": 1, + "ephemeralStorage": { + "sizeInGiB": 20 + }, + "fargateEphemeralStorage": { + "sizeInGiB": 20 + } + } + ], + "failures": [] + } + +For more information, see `Use Amazon EBS volumes with Amazon ECS `__ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/start-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/start-task.rst new file mode 100644 index 000000000..6c3b033bb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/start-task.rst @@ -0,0 +1,169 @@ +**Example 1: To start a new task** + +The following ``start-task`` example starts a task using the latest revision of the ``sleep360`` task definition on the specified container instance in the default cluster. :: + + aws ecs start-task \ + --task-definition sleep360 \ + --container-instances 765936fadbdd46b5991a4bd70c2a43d4 + +Output:: + + { + "tasks": [ + { + "taskArn": "arn:aws:ecs:us-west-2:123456789012:task/default/666fdccc2e2d4b6894dd422f4eeee8f8", + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/default", + "taskDefinitionArn": "arn:aws:ecs:us-west-2:123456789012:task-definition/sleep360:3", + "containerInstanceArn": "arn:aws:ecs:us-west-2:123456789012:container-instance/default/765936fadbdd46b5991a4bd70c2a43d4", + "overrides": { + "containerOverrides": [ + { + "name": "sleep" + } + ] + }, + "lastStatus": "PENDING", + "desiredStatus": "RUNNING", + "cpu": "128", + "memory": "128", + "containers": [ + { + "containerArn": "arn:aws:ecs:us-west-2:123456789012:container/75f11ed4-8a3d-4f26-a33b-ad1db9e02d41", + "taskArn": "arn:aws:ecs:us-west-2:123456789012:task/default/666fdccc2e2d4b6894dd422f4eeee8f8", + "name": "sleep", + "lastStatus": "PENDING", + "networkInterfaces": [], + "cpu": "10", + "memory": "10" + } + ], + "version": 1, + "createdAt": 1563421494.186, + "group": "family:sleep360", + "launchType": "EC2", + "attachments": [], + "tags": [] + } + ], + "failures": [] + } + +For more information, see `Schedule your containers on Amazon ECS `__ in the *Amazon ECS Developer Guide*. + +**Example 2: To configure an Amazon EBS volume at task start** + +The following ``start-task`` example configures an encrypted Amazon EBS volume for a task on the specified container instance. You must have an Amazon ECS infrastructure role configured with the ``AmazonECSInfrastructureRolePolicyForVolumes`` managed policy attached. You must specify a task definition with the same volume name as in the ``start-task`` request. This example uses the ``--cli-input-json`` option and a JSON input file called ``ebs.json`` with the following content. :: + + aws ecs start-task \ + --cli-input-json file://ebs.json \ + --container-instances 765936fadbdd46b5991a4bd70c2a43d4 + +Contents of ``ebs.json``:: + + { + "cluster": "default", + "taskDefinition": "mytaskdef", + "networkConfiguration":{ + "awsvpcConfiguration":{ + "assignPublicIp": "ENABLED", + "securityGroups": ["sg-12344321"], + "subnets":["subnet-12344321"] + } + }, + "volumeConfigurations": [ + { + "name": "myEBSVolume", + "managedEBSVolume": { + "volumeType": "gp3", + "sizeInGiB": 100, + "roleArn":"arn:aws:iam::123456789012:role/ecsInfrastructureRole", + "encrypted": true, + "kmsKeyId": "arn:aws:kms:region:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" + } + } + ] + } + +Output:: + + { + "tasks": [ + { + "attachments": [ + { + "id": "aea29489-9dcd-49f1-8164-4d91566e1113", + "type": "ElasticNetworkInterface", + "status": "PRECREATED", + "details": [ + { + "name": "subnetId", + "value": "subnet-12344321" + } + ] + }, + { + "id": "f29e1222-9a1e-410f-b499-a12a7cd6d42e", + "type": "AmazonElasticBlockStorage", + "status": "CREATED", + "details": [ + { + "name": "roleArn", + "value": "arn:aws:iam::123456789012:role/ecsInfrastructureRole" + }, + { + "name": "volumeName", + "value": "myEBSVolume" + }, + { + "name": "deleteOnTermination", + "value": "true" + } + ] + } + ], + "attributes": [ + { + "name": "ecs.cpu-architecture", + "value": "arm64" + } + ], + "availabilityZone": "us-west-2c", + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/default", + "containerInstanceArn": "arn:aws:ecs:us-west-2:123456789012:container-instance/default/765936fadbdd46b5991a4bd70c2a43d4", + "containers": [ + { + "containerArn": "arn:aws:ecs:us-west-2:123456789012:container/default/bb122ace3ed84add92c00a351a03c69e/a4a9ed10-51c7-4567-9653-50e71b94f867", + "taskArn": "arn:aws:ecs:us-west-2:123456789012:task/default/bb122ace3ed84add92c00a351a03c69e", + "name": "container-using-ebs", + "image": "amazonlinux:2", + "lastStatus": "PENDING", + "networkInterfaces": [], + "cpu": "0" + } + ], + "cpu": "1024", + "createdAt": "2025-01-23T14:51:05.191000-06:00", + "desiredStatus": "RUNNING", + "enableExecuteCommand": false, + "group": "family:mytaskdef", + "lastStatus": "PROVISIONING", + "launchType": "EC2", + "memory": "3072", + "overrides": { + "containerOverrides": [ + { + "name": "container-using-ebs" + } + ], + "inferenceAcceleratorOverrides": [] + }, + "tags": [], + "taskArn": "arn:aws:ecs:us-west-2:123456789012:task/default/bb122ace3ed84add92c00a351a03c69e", + "taskDefinitionArn": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:4", + "version": 1 + } + ], + "failures": [] + } + +For more information, see `Use Amazon EBS volumes with Amazon ECS `__ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/stop-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/stop-task.rst new file mode 100644 index 000000000..0fe0d6e1c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/stop-task.rst @@ -0,0 +1,40 @@ +**To stop a task** + +The following ``stop-task`` stops the specified task from running in the default cluster. :: + + aws ecs stop-task \ + --task 666fdccc2e2d4b6894dd422f4eeee8f8 + +Output:: + + { + "task": { + "taskArn": "arn:aws:ecs:us-west-2:130757420319:task/default/666fdccc2e2d4b6894dd422f4eeee8f8", + "clusterArn": "arn:aws:ecs:us-west-2:130757420319:cluster/default", + "taskDefinitionArn": "arn:aws:ecs:us-west-2:130757420319:task-definition/sleep360:3", + "containerInstanceArn": "arn:aws:ecs:us-west-2:130757420319:container-instance/default/765936fadbdd46b5991a4bd70c2a43d4", + "overrides": { + "containerOverrides": [] + }, + "lastStatus": "STOPPED", + "desiredStatus": "STOPPED", + "cpu": "128", + "memory": "128", + "containers": [], + "version": 2, + "stoppedReason": "Taskfailedtostart", + "stopCode": "TaskFailedToStart", + "connectivity": "CONNECTED", + "connectivityAt": 1563421494.186, + "pullStartedAt": 1563421494.252, + "pullStoppedAt": 1563421496.252, + "executionStoppedAt": 1563421497, + "createdAt": 1563421494.186, + "stoppingAt": 1563421497.252, + "stoppedAt": 1563421497.252, + "group": "family:sleep360", + "launchType": "EC2", + "attachments": [], + "tags": [] + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/tag-resource.rst new file mode 100644 index 000000000..e6a783e3d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/tag-resource.rst @@ -0,0 +1,19 @@ +**To tag a resource** + +The following ``tag-resource`` example adds a single tag to the specified resource. :: + + aws ecs tag-resource \ + --resource-arn arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster + --tags key=key1,value=value1 + +This command produces no output. + +**To add multiple tags to a resource** + +The following ``tag-resource`` example adds multiple tags to the specified resource. :: + + aws ecs tag-resource \ + --resource-arn arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster \ + --tags key=key1,value=value1 key=key2,value=value2 key=key3,value=value3 + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/untag-resource.rst new file mode 100644 index 000000000..0cc009122 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/untag-resource.rst @@ -0,0 +1,10 @@ +**To remove a tag from a resource** + +The following ``untag-resource`` example removes the listed tags from the specified resource. :: + + aws ecs untag-resource \ + --resource-arn arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster \ + --tag-keys key1,key2 + +This command produces no output. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-cluster-settings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-cluster-settings.rst new file mode 100644 index 000000000..839ae0d75 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-cluster-settings.rst @@ -0,0 +1,31 @@ +**To modify the settings for your cluster** + +The following ``update-cluster-settings`` example enables CloudWatch Container Insights with enhanced observability for the ``MyCluster`` cluster. :: + + aws ecs update-cluster-settings \ + --cluster MyCluster \ + --settings name=containerInsights,value=enhanced + +Output:: + + { + "cluster": { + "clusterArn": "arn:aws:ecs:us-esat-1:123456789012:cluster/MyCluster", + "clusterName": "default", + "status": "ACTIVE", + "registeredContainerInstancesCount": 0, + "runningTasksCount": 0, + "pendingTasksCount": 0, + "activeServicesCount": 0, + "statistics": [], + "tags": [], + "settings": [ + { + "name": "containerInsights", + "value": "enhanced" + } + ] + } + } + +For more information, see `Modifying Account Settings `__ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-cluster.rst new file mode 100644 index 000000000..4bd1c90bc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-cluster.rst @@ -0,0 +1,176 @@ +**Example 1: Update ECS cluster enabling containerInsights** + +The following ``update-cluster`` updates the containerInsights value to ``enabled`` in an already created cluster. By default, it is disabled. :: + + aws ecs update-cluster \ + --cluster ECS-project-update-cluster \ + --settings name=containerInsights,value=enabled + +Output:: + + "cluster": { + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/ECS-project-update-cluster", + "clusterName": "ECS-project-update-cluster", + "status": "ACTIVE", + "registeredContainerInstancesCount": 0, + "runningTasksCount": 0, + "pendingTasksCount": 0, + "activeServicesCount": 0, + "statistics": [], + "tags": [], + "settings": [ + { + "name": "containerInsights", + "value": "enabled" + } + ], + "capacityProviders": [ + "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt" + ], + "defaultCapacityProviderStrategy": [ + { + "capacityProvider": "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt", + "weight": 1, + "base": 0 + } + ], + "attachments": [ + { + "id": "069d002b-7634-42e4-b1d4-544f4c8f6380", + "type": "as_policy", + "status": "CREATED", + "details": [ + { + "name": "capacityProviderName", + "value": "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt" + }, + { + "name": "scalingPolicyName", + "value": "ECSManagedAutoScalingPolicy-152363a6-8c65-484c-b721-42c3e070ae93" + } + ] + }, + { + "id": "08b5b6ca-45e9-4209-a65d-e962a27c490a", + "type": "managed_draining", + "status": "CREATED", + "details": [ + { + "name": "capacityProviderName", + "value": "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt" + }, + { + "name": "autoScalingLifecycleHookName", + "value": "ecs-managed-draining-termination-hook" + } + ] + }, + { + "id": "45d0b36f-8cff-46b6-9380-1288744802ab", + "type": "sc", + "status": "ATTACHED", + "details": [] + } + ], + "attachmentsStatus": "UPDATE_COMPLETE", + "serviceConnectDefaults": { + "namespace": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-igwrsylmy3kwvcdx" + } + } + + +**Example 2: Update ECS cluster to set a default Service Connect namespace** + +The following ``update-cluster`` updates ECS cluster by setting a default Service Connect namespace. :: + + aws ecs update-cluster \ + --cluster ECS-project-update-cluster \ + --service-connect-defaults namespace=test + +Output:: + + { + "cluster": { + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/ECS-project-update-cluster", + "clusterName": "ECS-project-update-cluster", + "status": "ACTIVE", + "registeredContainerInstancesCount": 0, + "runningTasksCount": 0, + "pendingTasksCount": 0, + "activeServicesCount": 0, + "statistics": [], + "tags": [], + "settings": [ + { + "name": "containerInsights", + "value": "enabled" + } + ], + "capacityProviders": [ + "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt" + ], + "defaultCapacityProviderStrategy": [ + { + "capacityProvider": "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt", + "weight": 1, + "base": 0 + } + ], + "attachments": [ + { + "id": "069d002b-7634-42e4-b1d4-544f4c8f6380", + "type": "as_policy", + "status": "CREATED", + "details": [ + { + "name": "capacityProviderName", + "value": "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt" + }, + { + "name": "scalingPolicyName", + "value": "ECSManagedAutoScalingPolicy-152363a6-8c65-484c-b721-42c3e070ae93" + } + ] + }, + { + "id": "08b5b6ca-45e9-4209-a65d-e962a27c490a", + "type": "managed_draining", + "status": "CREATED", + "details": [ + { + "name": "capacityProviderName", + "value": "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt" + }, + { + "name": "autoScalingLifecycleHookName", + "value": "ecs-managed-draining-termination-hook" + } + ] + }, + { + "id": "45d0b36f-8cff-46b6-9380-1288744802ab", + "type": "sc", + "status": "DELETED", + "details": [] + }, + { + "id": "3e6890c3-609c-4832-91de-d6ca891b3ef1", + "type": "sc", + "status": "ATTACHED", + "details": [] + }, + { + "id": "961b8ec1-c2f1-4070-8495-e669b7668e90", + "type": "sc", + "status": "DELETED", + "details": [] + } + ], + "attachmentsStatus": "UPDATE_COMPLETE", + "serviceConnectDefaults": { + "namespace": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-dtjmxqpfi46ht7dr" + } + } + } + +For more information on Service Connect, see `Use Service Connect to connect Amazon ECS services with short names `__ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-container-agent.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-container-agent.rst new file mode 100644 index 000000000..f02679840 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-container-agent.rst @@ -0,0 +1,22 @@ +**To update the container agent on an Amazon ECS container instance** + +The following ``update-container-agent`` example updates the container agent on the specified container instance in the default cluster. :: + + aws ecs update-container-agent --cluster default --container-instance a1b2c3d4-5678-90ab-cdef-11111EXAMPLE + +Output:: + + { + "containerInstance": { + "status": "ACTIVE", + ... + "agentUpdateStatus": "PENDING", + "versionInfo": { + "agentVersion": "1.0.0", + "agentHash": "4023248", + "dockerVersion": "DockerVersion: 1.5.0" + } + } + } + +For more information, see `Updating the Amazon ECS Container Agent `_ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-container-instances-state.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-container-instances-state.rst new file mode 100644 index 000000000..f6974cc1b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-container-instances-state.rst @@ -0,0 +1,269 @@ +**To update the state of a container instance** + +The following ``update-container-instances-state`` updates the state of the specified container instance to ``DRAINING`` which will remove it from the cluster is it registered to. :: + + aws ecs update-container-instances-state \ + --container-instances 765936fadbdd46b5991a4bd70c2a43d4 \ + --status DRAINING + +Output:: + + { + "containerInstances": [ + { + "containerInstanceArn": "arn:aws:ecs:us-west-2:130757420319:container-instance/default/765936fadbdd46b5991a4bd70c2a43d4", + "ec2InstanceId": "i-013d87ffbb4d513bf", + "version": 4390, + "versionInfo": { + "agentVersion": "1.29.0", + "agentHash": "a190a73f", + "dockerVersion": "DockerVersion:18.06.1-ce" + }, + "remainingResources": [ + { + "name": "CPU", + "type": "INTEGER", + "doubleValue": 0, + "longValue": 0, + "integerValue": 1536 + }, + { + "name": "MEMORY", + "type": "INTEGER", + "doubleValue": 0, + "longValue": 0, + "integerValue": 2681 + }, + { + "name": "PORTS", + "type": "STRINGSET", + "doubleValue": 0, + "longValue": 0, + "integerValue": 0, + "stringSetValue": [ + "22", + "2376", + "2375", + "51678", + "51679" + ] + }, + { + "name": "PORTS_UDP", + "type": "STRINGSET", + "doubleValue": 0, + "longValue": 0, + "integerValue": 0, + "stringSetValue": [] + } + ], + "registeredResources": [ + { + "name": "CPU", + "type": "INTEGER", + "doubleValue": 0, + "longValue": 0, + "integerValue": 2048 + }, + { + "name": "MEMORY", + "type": "INTEGER", + "doubleValue": 0, + "longValue": 0, + "integerValue": 3705 + }, + { + "name": "PORTS", + "type": "STRINGSET", + "doubleValue": 0, + "longValue": 0, + "integerValue": 0, + "stringSetValue": [ + "22", + "2376", + "2375", + "51678", + "51679" + ] + }, + { + "name": "PORTS_UDP", + "type": "STRINGSET", + "doubleValue": 0, + "longValue": 0, + "integerValue": 0, + "stringSetValue": [] + } + ], + "status": "DRAINING", + "agentConnected": true, + "runningTasksCount": 2, + "pendingTasksCount": 0, + "attributes": [ + { + "name": "ecs.capability.secrets.asm.environment-variables" + }, + { + "name": "ecs.capability.branch-cni-plugin-version", + "value": "e0703516-" + }, + { + "name": "ecs.ami-id", + "value": "ami-00e0090ac21971297" + }, + { + "name": "ecs.capability.secrets.asm.bootstrap.log-driver" + }, + { + "name": "com.amazonaws.ecs.capability.logging-driver.none" + }, + { + "name": "ecs.capability.ecr-endpoint" + }, + { + "name": "ecs.capability.docker-plugin.local" + }, + { + "name": "ecs.capability.task-cpu-mem-limit" + }, + { + "name": "ecs.capability.secrets.ssm.bootstrap.log-driver" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.30" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.31" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.32" + }, + { + "name": "ecs.availability-zone", + "value": "us-west-2c" + }, + { + "name": "ecs.capability.aws-appmesh" + }, + { + "name": "com.amazonaws.ecs.capability.logging-driver.awslogs" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.24" + }, + { + "name": "ecs.capability.task-eni-trunking" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.25" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.26" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.27" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.28" + }, + { + "name": "com.amazonaws.ecs.capability.privileged-container" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.29" + }, + { + "name": "ecs.cpu-architecture", + "value": "x86_64" + }, + { + "name": "com.amazonaws.ecs.capability.ecr-auth" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.20" + }, + { + "name": "ecs.os-type", + "value": "linux" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.21" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.22" + }, + { + "name": "ecs.capability.task-eia" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.23" + }, + { + "name": "ecs.capability.private-registry-authentication.secretsmanager" + }, + { + "name": "com.amazonaws.ecs.capability.logging-driver.syslog" + }, + { + "name": "com.amazonaws.ecs.capability.logging-driver.json-file" + }, + { + "name": "ecs.capability.execution-role-awslogs" + }, + { + "name": "ecs.vpc-id", + "value": "vpc-1234" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.17" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.19" + }, + { + "name": "ecs.capability.task-eni" + }, + { + "name": "ecs.capability.execution-role-ecr-pull" + }, + { + "name": "ecs.capability.container-health-check" + }, + { + "name": "ecs.subnet-id", + "value": "subnet-1234" + }, + { + "name": "ecs.instance-type", + "value": "c5.large" + }, + { + "name": "com.amazonaws.ecs.capability.task-iam-role-network-host" + }, + { + "name": "ecs.capability.container-ordering" + }, + { + "name": "ecs.capability.cni-plugin-version", + "value": "91ccefc8-2019.06.0" + }, + { + "name": "ecs.capability.pid-ipc-namespace-sharing" + }, + { + "name": "ecs.capability.secrets.ssm.environment-variables" + }, + { + "name": "com.amazonaws.ecs.capability.task-iam-role" + } + ], + "registeredAt": 1560788724.507, + "attachments": [], + "tags": [] + } + ], + "failures": [] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-service-primary-task-set.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-service-primary-task-set.rst new file mode 100644 index 000000000..80310e3ef --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-service-primary-task-set.rst @@ -0,0 +1,44 @@ +**To update the primary task set for a service** + +The following ``update-service-primary-task-set`` example updates the primary task set for the specified service. :: + + aws ecs update-service-primary-task-set \ + --cluster MyCluster \ + --service MyService \ + --primary-task-set arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789 + +Output:: + + { + "taskSet": { + "id": "ecs-svc/1234567890123456789", + "taskSetArn": "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789", + "status": "PRIMARY", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:2", + "computedDesiredCount": 1, + "pendingCount": 0, + "runningCount": 0, + "createdAt": 1557128360.711, + "updatedAt": 1557129412.653, + "launchType": "EC2", + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12344321" + ], + "securityGroups": [ + "sg-12344312" + ], + "assignPublicIp": "DISABLED" + } + }, + "loadBalancers": [], + "serviceRegistries": [], + "scale": { + "value": 50.0, + "unit": "PERCENT" + }, + "stabilityStatus": "STABILIZING", + "stabilityStatusAt": 1557129279.914 + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-service.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-service.rst new file mode 100644 index 000000000..f23a8d572 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-service.rst @@ -0,0 +1,751 @@ +**Example 1: To change the task definition used in a service** + +The following ``update-service`` example updates the ``my-http-service`` service to use the ``amazon-ecs-sample`` task definition. :: + + aws ecs update-service \ + --cluster test \ + --service my-http-service \ + --task-definition amazon-ecs-sample + +Output:: + + { + "service": { + "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/test/my-http-service", + "serviceName": "my-http-service", + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/test", + "loadBalancers": [], + "serviceRegistries": [], + "status": "ACTIVE", + "desiredCount": 2, + "runningCount": 2, + "pendingCount": 0, + "launchType": "FARGATE", + "platformVersion": "1.4.0", + "platformFamily": "Linux", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/amazon-ecs-sample:2", + "deploymentConfiguration": { + "deploymentCircuitBreaker": { + "enable": true, + "rollback": true + }, + "maximumPercent": 200, + "minimumHealthyPercent": 100, + "alarms": { + "alarmNames": [], + "rollback": false, + "enable": false + } + }, + "deployments": [ + { + "id": "ecs-svc/7419115625193919142", + "status": "PRIMARY", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/amazon-ecs-sample:2", + "desiredCount": 0, + "pendingCount": 0, + "runningCount": 0, + "failedTasks": 0, + "createdAt": "2025-02-21T13:26:02.734000-06:00", + "updatedAt": "2025-02-21T13:26:02.734000-06:00", + "launchType": "FARGATE", + "platformVersion": "1.4.0", + "platformFamily": "Linux", + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12344321" + ], + "securityGroups": [ + "sg-12344321" + ], + "assignPublicIp": "ENABLED" + } + }, + "rolloutState": "IN_PROGRESS", + "rolloutStateReason": "ECS deployment ecs-svc/7419115625193919142 in progress." + }, + { + "id": "ecs-svc/1709597507655421668", + "status": "ACTIVE", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/old-amazon-ecs-sample:4", + "desiredCount": 2, + "pendingCount": 0, + "runningCount": 2, + "failedTasks": 0, + "createdAt": "2025-01-24T11:13:07.621000-06:00", + "updatedAt": "2025-02-02T16:11:30.838000-06:00", + "launchType": "FARGATE", + "platformVersion": "1.4.0", + "platformFamily": "Linux", + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12344321" + ], + "securityGroups": [ + "sg-12344321" + ], + "assignPublicIp": "ENABLED" + } + }, + "rolloutState": "COMPLETED", + "rolloutStateReason": "ECS deployment ecs-svc/1709597507655421668 completed." + } + ], + "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS", + "events": [ + { + "id": "e40b4d1c-80d9-4834-aaf3-6a268e530e17", + "createdAt": "2025-02-21T10:31:26.037000-06:00", + "message": "(my-http-service) has reached a steady state." + }, + { + "id": "6ac069ad-fc8b-4e49-a35d-b5574a964c8e", + "createdAt": "2025-02-21T04:31:22.703000-06:00", + "message": "(my-http-service) has reached a steady state." + }, + { + "id": "265f7d37-dfd1-4880-a846-ec486f341919", + "createdAt": "2025-02-20T22:31:22.514000-06:00", + "message": "(my-http-service) has reached a steady state." + } + ], + "createdAt": "2024-10-30T17:12:43.218000-05:00", + "placementConstraints": [], + "placementStrategy": [], + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12344321", + ], + "securityGroups": [ + "sg-12344321" + ], + "assignPublicIp": "ENABLED" + } + }, + "healthCheckGracePeriodSeconds": 0, + "schedulingStrategy": "REPLICA", + "deploymentController": { + "type": "ECS" + }, + "createdBy": "arn:aws:iam::123456789012:role/AIDACKCEVSQ6C2EXAMPLE", + "enableECSManagedTags": true, + "propagateTags": "NONE", + "enableExecuteCommand": false, + "availabilityZoneRebalancing": "DISABLED" + } + } + +For more information, see `Update an Amazon ECS service using the console `__ in the *Amazon ECS Developer Guide*. + +**Example 2: To change the number of tasks in a service** + +The following ``update-service`` example updates the desired task count of the service ``my-http-service`` from to 2. :: + + aws ecs update-service \ + --cluster MyCluster \ + --service my-http-service \ + --desired-count 2 + +Output:: + + { + "service": { + "serviceArn": "arn:aws:ecs:us-east-1:123456789012:service/MyCluster/my-http-service", + "serviceName": "my-http-service", + "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/MyCluster", + "loadBalancers": [], + "serviceRegistries": [], + "status": "ACTIVE", + "desiredCount": 2, + "runningCount": 1, + "pendingCount": 0, + "capacityProviderStrategy": [ + { + "capacityProvider": "FARGATE", + "weight": 1, + "base": 0 + } + ], + "platformVersion": "LATEST", + "platformFamily": "Linux", + "taskDefinition": "arn:aws:ecs:us-east-1:123456789012:task-definition/MyTaskDefinition", + "deploymentConfiguration": { + "deploymentCircuitBreaker": { + "enable": true, + "rollback": true + }, + "maximumPercent": 200, + "minimumHealthyPercent": 100, + "alarms": { + "alarmNames": [], + "rollback": false, + "enable": false + } + }, + "deployments": [ + { + "id": "ecs-svc/1976744184940610707", + "status": "PRIMARY", + "taskkDefinition": "arn:aws:ecs:us-east-1:123456789012:task-definition/MyTaskDefinition", + "desiredCount": 1, + "pendingCount": 0, + "runningCount": 1, + "failedTasks": 0, + "createdAt": "2024-12-03T16:24:25.225000-05:00", + "updatedAt": "2024-12-03T16:25:15.837000-05:00", + "capacityProviderStrategy": [ + { + "capacityProvider": "FARGATE", + "weight": 1, + "base": 0 + } + ], + "platformVersion": "1.4.0", + "platformFamily": "Linux", + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-0d0eab1bb38d5ca64", + "subnet-0db5010045995c2d5" + ], + "securityGroups": [ + "sg-02556bf85a191f59a" + ], + "assignPublicIp": "ENABLED" + } + }, + "rolloutState": "COMPLETED", + "rolloutStateReason": "ECS deployment ecs-svc/1976744184940610707 completed." + } + ], + "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS", + "events": [ + { + "id": "f27350b9-4b2a-4e2e-b72e-a4b68380de45", + "createdAt": "2024-12-30T13:24:07.345000-05:00", + "message": "(service my-http-service) has reached a steady state." + }, + { + "id": "e764ec63-f53f-45e3-9af2-d99f922d2957", + "createdAt": "2024-12-30T12:32:21.600000-05:00", + "message": "(service my-http-service) has reached a steady state." + }, + { + "id": "28444756-c2fa-47f8-bd60-93a8e05f3991", + "createdAt": "2024-12-08T19:26:10.367000-05:00", + "message": "(service my-http-service) has reached a steady state." + } + ], + "createdAt": "2024-12-03T16:24:25.225000-05:00", + "placementConstraints": [], + "placementStrategy": [], + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-0d0eab1bb38d5ca64", + "subnet-0db5010045995c2d5" + ], + "securityGroups": [ + "sg-02556bf85a191f59a" + ], + "assignPublicIp": "ENABLED" + } + }, + "healthCheckGracePeriodSeconds": 0, + "schedulingStrategy": "REPLICA", + "deploymentController": { + "type": "ECS" + }, + "createdBy": "arn:aws:iam::123456789012:role/Admin", + "enableECSManagedTags": true, + "propagateTags": "NONE", + "enableExecuteCommand": false, + "availabilityZoneRebalancing": "ENABLED" + } + } + +For more information, see `Updating an Amazon ECS service using the console `__ in the *Amazon ECS Developer Guide*. + +**Example 3: To configure Amazon EBS volumes for attachment at service update** + +The following ``update-service`` example updates the service ``my-http-service`` to use Amazon EBS volumes. You must have an Amazon ECS infrastructure role configured with the ``AmazonECSInfrastructureRolePolicyForVolumes`` managed policy attached. You must also specify a task definition with the same volume name as in the ``update-service`` request and with ``configuredAtLaunch`` set to ``true``. This example uses the ``--cli-input-json`` option and a JSON input file called ``ebs.json``. :: + + aws ecs update-service \ + --cli-input-json file://ebs.json + +Contents of ``ebs.json``:: + + { + "cluster": "mycluster", + "taskDefinition": "mytaskdef", + "service": "my-http-service", + "desiredCount": 2, + "volumeConfigurations": [ + { + "name": "myEbsVolume", + "managedEBSVolume": { + "roleArn":"arn:aws:iam::123456789012:role/ecsInfrastructureRole", + "volumeType": "gp3", + "sizeInGiB": 100, + "iops": 3000, + "throughput": 125, + "filesystemType": "ext4" + } + } + ] + } + +Output:: + + { + "service": { + "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/mycluster/my-http-service", + "serviceName": "my-http-service", + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/mycluster", + "loadBalancers": [], + "serviceRegistries": [], + "status": "ACTIVE", + "desiredCount": 2, + "runningCount": 2, + "pendingCount": 0, + "launchType": "FARGATE", + "platformVersion": "LATEST", + "platformFamily": "Linux", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:1", + "deploymentConfiguration": { + "deploymentCircuitBreaker": { + "enable": true, + "rollback": true + }, + "maximumPercent": 200, + "minimumHealthyPercent": 100, + "alarms": { + "alarmNames": [], + "rollback": false, + "enable": false + } + }, + "deployments": [ + { + "id": "ecs-svc/2420458347226626275", + "status": "PRIMARY", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:1", + "desiredCount": 0, + "pendingCount": 0, + "runningCount": 0, + "failedTasks": 0, + "createdAt": "2025-02-21T15:07:20.519000-06:00", + "updatedAt": "2025-02-21T15:07:20.519000-06:00", + "launchType": "FARGATE", + "platformVersion": "1.4.0", + "platformFamily": "Linux", + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12344321", + ], + "securityGroups": [ + "sg-12344321" + ], + "assignPublicIp": "ENABLED" + } + }, + "rolloutState": "IN_PROGRESS", + "rolloutStateReason": "ECS deployment ecs-svc/2420458347226626275 in progress.", + "volumeConfigurations": [ + { + "name": "ebs-volume", + "managedEBSVolume": { + "volumeType": "gp3", + "sizeInGiB": 100, + "iops": 3000, + "throughput": 125, + "roleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", + "filesystemType": "ext4" + } + } + ] + }, + { + "id": "ecs-svc/5191625155316533644", + "status": "ACTIVE", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:2", + "desiredCount": 2, + "pendingCount": 0, + "runningCount": 2, + "failedTasks": 0, + "createdAt": "2025-02-21T14:54:48.862000-06:00", + "updatedAt": "2025-02-21T14:57:22.502000-06:00", + "launchType": "FARGATE", + "platformVersion": "1.4.0", + "platformFamily": "Linux", + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12344321" + ], + "securityGroups": [ + "sg-12344321" + ], + "assignPublicIp": "ENABLED" + } + }, + "rolloutState": "COMPLETED", + "rolloutStateReason": "ECS deployment ecs-svc/5191625155316533644 completed." + } + ], + "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS", + "events": [ + { + "id": "b5823113-c2c5-458e-9649-8c2ed38f23a5", + "createdAt": "2025-02-21T14:57:22.508000-06:00", + "message": "(service my-http-service) has reached a steady state." + }, + { + "id": "b05a48e8-da35-4074-80aa-37ceb3167357", + "createdAt": "2025-02-21T14:57:22.507000-06:00", + "message": "(service my-http-service) (deployment ecs-svc/5191625155316533644) deployment completed." + }, + { + "id": "a10cd55d-4ba6-4cea-a655-5a5d32ada8a0", + "createdAt": "2025-02-21T14:55:32.833000-06:00", + "message": "(service my-http-service) has started 1 tasks: (task fb9c8df512684aec92f3c57dc3f22361)." + }, + ], + "createdAt": "2025-02-21T14:54:48.862000-06:00", + "placementConstraints": [], + "placementStrategy": [], + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12344321" + ], + "securityGroups": [ + "sg-12344321" + ], + "assignPublicIp": "ENABLED" + } + }, + "healthCheckGracePeriodSeconds": 0, + "schedulingStrategy": "REPLICA", + "deploymentController": { + "type": "ECS" + }, + "createdBy": "arn:aws:iam::123456789012:role/AIDACKCEVSQ6C2EXAMPLE", + "enableECSManagedTags": true, + "propagateTags": "NONE", + "enableExecuteCommand": false, + "availabilityZoneRebalancing": "ENABLED" + } + } + + +For more information, see `Use Amazon EBS volumes with Amazon ECS `__ in the *Amazon ECS Developer Guide*. + +**Example 4: To update a service to no longer use Amazon EBS volumes** + +The following ``update-service`` example updates the service ``my-http-service`` to no longer use Amazon EBS volumes. You must specify a task definition revision with ``configuredAtLaunch`` set to ``false``. :: + + aws ecs update-service \ + --cluster mycluster \ + --task-definition mytaskdef \ + --service my-http-service \ + --desired-count 2 \ + --volume-configurations "[]" + +Output:: + + { + "service": { + "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/mycluster/my-http-service", + "serviceName": "my-http-service", + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/mycluster", + "loadBalancers": [], + "serviceRegistries": [], + "status": "ACTIVE", + "desiredCount": 2, + "runningCount": 2, + "pendingCount": 0, + "launchType": "FARGATE", + "platformVersion": "LATEST", + "platformFamily": "Linux", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:3", + "deploymentConfiguration": { + "deploymentCircuitBreaker": { + "enable": true, + "rollback": true + }, + "maximumPercent": 200, + "minimumHealthyPercent": 100, + "alarms": { + "alarmNames": [], + "rollback": false, + "enable": false + } + }, + "deployments": [ + { + "id": "ecs-svc/7522791612543716777", + "status": "PRIMARY", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:3", + "desiredCount": 0, + "pendingCount": 0, + "runningCount": 0, + "failedTasks": 0, + "createdAt": "2025-02-21T15:25:38.598000-06:00", + "updatedAt": "2025-02-21T15:25:38.598000-06:00", + "launchType": "FARGATE", + "platformVersion": "1.4.0", + "platformFamily": "Linux", + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12344321" + ], + "securityGroups": [ + "sg-12344321" + ], + "assignPublicIp": "ENABLED" + } + }, + "rolloutState": "IN_PROGRESS", + "rolloutStateReason": "ECS deployment ecs-svc/7522791612543716777 in progress." + }, + { + "id": "ecs-svc/2420458347226626275", + "status": "ACTIVE", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/myoldtaskdef:1", + "desiredCount": 2, + "pendingCount": 0, + "runningCount": 2, + "failedTasks": 0, + "createdAt": "2025-02-21T15:07:20.519000-06:00", + "updatedAt": "2025-02-21T15:10:59.955000-06:00", + "launchType": "FARGATE", + "platformVersion": "1.4.0", + "platformFamily": "Linux", + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12344321" + ], + "securityGroups": [ + "sg-12344321" + ], + "assignPublicIp": "ENABLED" + } + }, + "rolloutState": "COMPLETED", + "rolloutStateReason": "ECS deployment ecs-svc/2420458347226626275 completed.", + "volumeConfigurations": [ + { + "name": "ebs-volume", + "managedEBSVolume": { + "volumeType": "gp3", + "sizeInGiB": 100, + "iops": 3000, + "throughput": 125, + "roleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", + "filesystemType": "ext4" + } + } + ] + } + ], + "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS", + "events": [ + { + "id": "4f2c3ca1-7800-4048-ba57-bba210ada2ad", + "createdAt": "2025-02-21T15:10:59.959000-06:00", + "message": "(service my-http-service) has reached a steady state." + }, + { + "id": "4b36a593-2d40-4ed6-8be8-b9b699eb6198", + "createdAt": "2025-02-21T15:10:59.958000-06:00", + "message": "(service my-http-service) (deployment ecs-svc/2420458347226626275) deployment completed." + }, + { + "id": "88380089-14e2-4ef0-8dbb-a33991683371", + "createdAt": "2025-02-21T15:09:39.055000-06:00", + "message": "(service my-http-service) has stopped 1 running tasks: (task fb9c8df512684aec92f3c57dc3f22361)." + }, + { + "id": "97d84243-d52f-4255-89bb-9311391c61f6", + "createdAt": "2025-02-21T15:08:57.653000-06:00", + "message": "(service my-http-service) has stopped 1 running tasks: (task 33eff090ad2c40539daa837e6503a9bc)." + }, + { + "id": "672ece6c-e2d0-4021-b5da-eefb14001687", + "createdAt": "2025-02-21T15:08:15.631000-06:00", + "message": "(service my-http-service) has started 1 tasks: (task 996c02a66ff24f3190a4a8e0c841740f)." + }, + { + "id": "a3cf9bea-9be6-4175-ac28-4c68360986eb", + "createdAt": "2025-02-21T15:07:36.931000-06:00", + "message": "(service my-http-service) has started 1 tasks: (task d5d23c39f89e46cf9a647b9cc6572feb)." + }, + { + "id": "b5823113-c2c5-458e-9649-8c2ed38f23a5", + "createdAt": "2025-02-21T14:57:22.508000-06:00", + "message": "(service my-http-service) has reached a steady state." + }, + { + "id": "b05a48e8-da35-4074-80aa-37ceb3167357", + "createdAt": "2025-02-21T14:57:22.507000-06:00", + "message": "(service my-http-service) (deployment ecs-svc/5191625155316533644) deployment completed." + }, + { + "id": "a10cd55d-4ba6-4cea-a655-5a5d32ada8a0", + "createdAt": "2025-02-21T14:55:32.833000-06:00", + "message": "(service my-http-service) has started 1 tasks: (task fb9c8df512684aec92f3c57dc3f22361)." + }, + { + "id": "42da91fa-e26d-42ef-88c3-bb5965c56b2f", + "createdAt": "2025-02-21T14:55:02.703000-06:00", + "message": "(service my-http-service) has started 1 tasks: (task 33eff090ad2c40539daa837e6503a9bc)." + } + ], + "createdAt": "2025-02-21T14:54:48.862000-06:00", + "placementConstraints": [], + "placementStrategy": [], + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12344321" + ], + "securityGroups": [ + "sg-12344321" + ], + "assignPublicIp": "ENABLED" + } + }, + "healthCheckGracePeriodSeconds": 0, + "schedulingStrategy": "REPLICA", + "deploymentController": { + "type": "ECS" + }, + "createdBy": "arn:aws:iam::123456789012:role/AIDACKCEVSQ6C2EXAMPLE", + "enableECSManagedTags": true, + "propagateTags": "NONE", + "enableExecuteCommand": false, + "availabilityZoneRebalancing": "ENABLED" + } + } + +For more information, see `Use Amazon EBS volumes with Amazon ECS `__ in the *Amazon ECS Developer Guide*. + +**Example 5: To turn on Availability Zone rebalancing for a service** + +The following ``update-service`` example turns on Availability Zone rebalancing for the service ``my-http-service``. :: + + aws ecs update-service \ + --cluster MyCluster \ + --service my-http-service \ + --availability-zone-rebalancing ENABLED + +Output:: + + { + "service": { + "serviceArn": "arn:aws:ecs:us-east-1:123456789012:service/MyCluster/my-http-service", + "serviceName": "my-http-service", + "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/MyCluster", + "loadBalancers": [], + "serviceRegistries": [], + "status": "ACTIVE", + "desiredCount": 2, + "runningCount": 1, + "pendingCount": 0, + "capacityProviderStrategy": [ + { + "capacityProvider": "FARGATE", + "weight": 1, + "base": 0 + } + ], + "platformVersion": "LATEST", + "platformFamily": "Linux", + "taskDefinition": "arn:aws:ecs:us-east-1:123456789012:task-definition/MyTaskDefinition", + "deploymentConfiguration": { + "deploymentCircuitBreaker": { + "enable": true, + "rollback": true + }, + "maximumPercent": 200, + "minimumHealthyPercent": 100, + "alarms": { + "alarmNames": [], + "rollback": false, + "enable": false + } + }, + "deployments": [ + { + "id": "ecs-svc/1976744184940610707", + "status": "PRIMARY", + "taskkDefinition": "arn:aws:ecs:us-east-1:123456789012:task-definition/MyTaskDefinition", + "desiredCount": 1, + "pendingCount": 0, + "runningCount": 1, + "failedTasks": 0, + "createdAt": "2024-12-03T16:24:25.225000-05:00", + "updatedAt": "2024-12-03T16:25:15.837000-05:00", + "capacityProviderStrategy": [ + { + "capacityProvider": "FARGATE", + "weight": 1, + "base": 0 + } + ], + "platformVersion": "1.4.0", + "platformFamily": "Linux", + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-0d0eab1bb38d5ca64", + "subnet-0db5010045995c2d5" + ], + "securityGroups": [ + "sg-02556bf85a191f59a" + ], + "assignPublicIp": "ENABLED" + } + }, + "rolloutState": "COMPLETED", + "rolloutStateReason": "ECS deployment ecs-svc/1976744184940610707 completed." + } + ], + "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS", + "events": [], + "createdAt": "2024-12-03T16:24:25.225000-05:00", + "placementConstraints": [], + "placementStrategy": [], + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-0d0eab1bb38d5ca64", + "subnet-0db5010045995c2d5" + ], + "securityGroups": [ + "sg-02556bf85a191f59a" + ], + "assignPublicIp": "ENABLED" + } + }, + "healthCheckGracePeriodSeconds": 0, + "schedulingStrategy": "REPLICA", + "deploymentController": { + "type": "ECS" + }, + "createdBy": "arn:aws:iam::123456789012:role/Admin", + "enableECSManagedTags": true, + "propagateTags": "NONE", + "enableExecuteCommand": false, + "availabilityZoneRebalancing": "ENABLED" + } + } + +For more information, see `Updating an Amazon ECS service using the console `__ in the *Amazon ECS Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-task-protection.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-task-protection.rst new file mode 100644 index 000000000..6637b0098 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-task-protection.rst @@ -0,0 +1,46 @@ +**Example 1: Enable task protection for ECS tasks** + +The following ``update-task-protection`` protects your ECS task from termination during scale-in from Deployments or Service AutoScaling. You can specify custom expiration period for task protection from 1 up to 2,880 minutes (48 hours). If you do not specify expiration period, enabling task protection default time is 2 hours. :: + + aws ecs update-task-protection \ + --cluster ECS-project-update-cluster \ + --tasks c43ed3b1331041f289316f958adb6a24 \ + --protection-enabled \ + --expires-in-minutes 300 + +Output:: + + { + "protectedTasks": [ + { + "taskArn": "arn:aws:ecs:us-west-2:123456789012:task/c43ed3b1331041f289316f958adb6a24", + "protectionEnabled": true, + "expirationDate": "2024-09-14T19:53:36.687000-05:00" + } + ], + "failures": [] + } + +**Example 2: Disable task protection for ECS tasks** + +The following ``update-task-protection`` disables the tasks protected from scale in from Deployments or Service AutoScaling. :: + + aws ecs update-task-protection \ + --cluster ECS-project-update-cluster \ + --tasks c43ed3b1331041f289316f958adb6a24 \ + --no-protection-enabled + +Output:: + + { + "protectedTasks": [ + { + "taskArn": "arn:aws:ecs:us-west-2:123456789012:task/c43ed3b1331041f289316f958adb6a24", + "protectionEnabled": false + } + ], + "failures": [] + } + +For more formation on task protection, see `Protect your Amazon ECS tasks from being terminated by scale-in events `__ in the *Amazon ECS Developer Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-task-set.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-task-set.rst new file mode 100644 index 000000000..cd03947db --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/update-task-set.rst @@ -0,0 +1,45 @@ +**To update a task set** + +The following ``update-task-set`` example updates a task set to adjust the scale. :: + + aws ecs update-task-set \ + --cluster MyCluster \ + --service MyService \ + --task-set arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789 \ + --scale value=50,unit=PERCENT + +Output:: + + { + "taskSet": { + "id": "ecs-svc/1234567890123456789", + "taskSetArn": "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789", + "status": "ACTIVE", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:2", + "computedDesiredCount": 0, + "pendingCount": 0, + "runningCount": 0, + "createdAt": 1557128360.711, + "updatedAt": 1557129279.914, + "launchType": "EC2", + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12344321" + ], + "securityGroups": [ + "sg-12344321" + ], + "assignPublicIp": "DISABLED" + } + }, + "loadBalancers": [], + "serviceRegistries": [], + "scale": { + "value": 50.0, + "unit": "PERCENT" + }, + "stabilityStatus": "STABILIZING", + "stabilityStatusAt": 1557129279.914 + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/wait/services-inactive.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/wait/services-inactive.rst new file mode 100644 index 000000000..91d005078 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/wait/services-inactive.rst @@ -0,0 +1,9 @@ +**Wait until an ECS service becomes inactive** + +The following ``service-inactive`` example waits until ECS services becomes inactive in the cluster. :: + + aws ecs wait services-inactive \ + --cluster MyCluster \ + --services MyService + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/wait/services-stable.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/wait/services-stable.rst new file mode 100644 index 000000000..78bc6b3f8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/wait/services-stable.rst @@ -0,0 +1,7 @@ +**Example 1: To pause running until a service is confirmed to be stable** + +The following ``wait`` example pauses and continues only after it can confirm that the specified service running on the specified cluster is stable. There is no output. :: + + aws ecs wait services-stable \ + --cluster MyCluster \ + --services MyService \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/wait/task-stopped.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/wait/task-stopped.rst new file mode 100644 index 000000000..80f6042d9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/wait/task-stopped.rst @@ -0,0 +1,22 @@ +**Example 1: Wait until an ECS task is in stopped state** + +The following ``wait tasks-stopped`` example waits until the provided tasks in the command are in a stopped state. You can pass IDs or full ARN of the tasks. This example uses ID of the task. :: + + aws ecs wait tasks-stopped \ + --cluster MyCluster \ + --tasks 2c196f0a00dd4f58b7c8897a5c7bce13 + +This command produces no output. + +**Example 2: Wait until multiple ECS tasks are in stopped state** + +The following ``wait tasks-stopped`` example waits until the multiple tasks provided in the command are in a stopped state. You can pass IDs or full ARN of the tasks. This example uses IDs of the tasks. :: + + aws ecs wait tasks-stopped \ + --cluster MyCluster \ + --tasks 2c196f0a00dd4f58b7c8897a5c7bce13 4d590253bb114126b7afa7b58EXAMPLE + +This command produces no output. + + + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/wait/tasks-running.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/wait/tasks-running.rst new file mode 100644 index 000000000..cff10759d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ecs/wait/tasks-running.rst @@ -0,0 +1,7 @@ +**Example 1: To pause running until a task is confirmed to be running** + +The following ``wait`` example pauses and continues only after the specified task enters a ``RUNNING`` state. :: + + aws ecs wait tasks-running \ + --cluster MyCluster \ + --tasks arn:aws:ecs:us-west-2:123456789012:task/a1b2c3d4-5678-90ab-cdef-44444EXAMPLE \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/create-file-system.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/create-file-system.rst new file mode 100644 index 000000000..5ab96841f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/create-file-system.rst @@ -0,0 +1,39 @@ +**To create an encrypted file system** + +The following ``create-file-system`` example creates an encrypted file system using the default CMK. It also adds the tag ``Name=my-file-system``. :: + + aws efs create-file-system \ + --performance-mode generalPurpose \ + --throughput-mode bursting \ + --encrypted \ + --tags Key=Name,Value=my-file-system + +Output:: + + { + "OwnerId": "123456789012", + "CreationToken": "console-d7f56c5f-e433-41ca-8307-9d9c0example", + "FileSystemId": "fs-c7a0456e", + "FileSystemArn": "arn:aws:elasticfilesystem:us-west-2:123456789012:file-system/fs-48499b4d", + "CreationTime": 1595286880.0, + "LifeCycleState": "creating", + "Name": "my-file-system", + "NumberOfMountTargets": 0, + "SizeInBytes": { + "Value": 0, + "ValueInIA": 0, + "ValueInStandard": 0 + }, + "PerformanceMode": "generalPurpose", + "Encrypted": true, + "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/a59b3472-e62c-42e4-adcf-30d92example", + "ThroughputMode": "bursting", + "Tags": [ + { + "Key": "Name", + "Value": "my-file-system" + } + ] + } + +For more information, see `Creating Amazon EFS file systems `__ in the *Amazon Elastic File System User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/create-mount-target.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/create-mount-target.rst new file mode 100644 index 000000000..896e3ef71 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/create-mount-target.rst @@ -0,0 +1,25 @@ +**To create a mount target** + +The following ``create-mount-target`` example creates a mount target for the specified file system. :: + + aws efs create-mount-target \ + --file-system-id fs-c7a0456e \ + --subnet-id subnet-02bf4c428bexample \ + --security-groups sg-068f739363example + +Output:: + + { + "OwnerId": "123456789012", + "MountTargetId": "fsmt-f9a14450", + "FileSystemId": "fs-c7a0456e", + "SubnetId": "subnet-02bf4c428bexample", + "LifeCycleState": "creating", + "IpAddress": "10.0.1.24", + "NetworkInterfaceId": "eni-02d542216aexample", + "AvailabilityZoneId": "use2-az2", + "AvailabilityZoneName": "us-east-2b", + "VpcId": "vpc-0123456789abcdef0" + } + +For more information, see `Creating mount targets `__ in the *Amazon Elastic File System User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/delete-file-system.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/delete-file-system.rst new file mode 100644 index 000000000..62dc9f285 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/delete-file-system.rst @@ -0,0 +1,10 @@ +**To delete a file system** + +The following ``delete-file-system`` example deletes the specified file system. :: + + aws efs delete-file-system \ + --file-system-id fs-c7a0456e + +This command produces no output. + +For more information, see `Deleting an Amazon EFS file system `__ in the *Amazon Elastic File System User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/delete-mount-target.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/delete-mount-target.rst new file mode 100644 index 000000000..c417198b6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/delete-mount-target.rst @@ -0,0 +1,10 @@ +**To delete a mount target** + +The following ``delete-mount-target`` example deletes the specified mount target. :: + + aws efs delete-mount-target \ + --mount-target-id fsmt-f9a14450 + +This command produces no output. + +For more information, see `Creating mount targets `__ in the *Amazon Elastic File System User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/describe-file-systems.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/describe-file-systems.rst new file mode 100644 index 000000000..bd54107c5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/describe-file-systems.rst @@ -0,0 +1,41 @@ +**To describe a file system** + +The following ``describe-file-systems`` example describes the specified file system. :: + + aws efs describe-file-systems \ + --file-system-id fs-c7a0456e + +Output:: + + { + "FileSystems": [ + { + "OwnerId": "123456789012", + "CreationToken": "console-d7f56c5f-e433-41ca-8307-9d9c0example", + "FileSystemId": "fs-c7a0456e", + "FileSystemArn": "arn:aws:elasticfilesystem:us-west-2:123456789012:file-system/fs-48499b4d", + "CreationTime": 1595286880.0, + "LifeCycleState": "available", + "Name": "my-file-system", + "NumberOfMountTargets": 3, + "SizeInBytes": { + "Value": 6144, + "Timestamp": 1600991437.0, + "ValueInIA": 0, + "ValueInStandard": 6144 + }, + "PerformanceMode": "generalPurpose", + "Encrypted": true, + "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/a59b3472-e62c-42e4-adcf-30d92example", + "ThroughputMode": "bursting", + "Tags": [ + { + "Key": "Name", + "Value": "my-file-system" + } + ] + } + ] + } + +For more information, see `Managing Amazon EFS file systems `__ in the *Amazon Elastic File System User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/describe-mount-targets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/describe-mount-targets.rst new file mode 100644 index 000000000..28b9e992b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/describe-mount-targets.rst @@ -0,0 +1,27 @@ +**To describe a mount target** + +The following ``describe-mount-targets`` example describes the specified mount target. :: + + aws efs describe-mount-targets \ + --mount-target-id fsmt-f9a14450 + +Output:: + + { + "MountTargets": [ + { + "OwnerId": "123456789012", + "MountTargetId": "fsmt-f9a14450", + "FileSystemId": "fs-c7a0456e", + "SubnetId": "subnet-02bf4c428bexample", + "LifeCycleState": "creating", + "IpAddress": "10.0.1.24", + "NetworkInterfaceId": "eni-02d542216aexample", + "AvailabilityZoneId": "use2-az2", + "AvailabilityZoneName": "us-east-2b", + "VpcId": "vpc-0123456789abcdef0" + } + ] + } + +For more information, see `Creating mount targets `__ in the *Amazon Elastic File System User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/describe-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/describe-tags.rst new file mode 100644 index 000000000..24e51d2ea --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/describe-tags.rst @@ -0,0 +1,23 @@ +**To describe the tags for a file system** + +The following ``describe-tags`` example describes the tags for the specified file system. :: + + aws efs describe-tags \ + --file-system-id fs-c7a0456e + +Output:: + + { + "Tags": [ + { + "Key": "Name", + "Value": "my-file-system" + }, + { + "Key": "Department", + "Value": "Business Intelligence" + } + ] + } + +For more information, see `Managing file system tags `__ in the *Amazon Elastic File System User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/list-tags-for-resource.rst new file mode 100644 index 000000000..da5751d4b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/list-tags-for-resource.rst @@ -0,0 +1,23 @@ +**To retrieve the tags for a resource** + +The following ``list-tags-for-resource`` example retrieves the tags associated with the specified file system. :: + + aws efs list-tags-for-resource \ + --resource-id fs-c7a0456e + +Output:: + + { + "Tags": [ + { + "Key": "Name", + "Value": "my-file-system" + }, + { + "Key": "Department", + "Value": "Business Intelligence" + } + ] + } + +For more information, see `Managing file system tags `__ in the *Amazon Elastic File System User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/tag-resource.rst new file mode 100644 index 000000000..db11a588a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/tag-resource.rst @@ -0,0 +1,11 @@ +**To tag a resource** + +The following ``tag-resource`` example adds the tag ``Department=Business Intelligence`` to the specified file system. :: + + aws efs tag-resource \ + --resource-id fs-c7a0456e \ + --tags Key=Department,Value="Business Intelligence" + +This command produces no output. + +For more information, see `Managing file system tags `__ in the *Amazon Elastic File System User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/untag-resource.rst new file mode 100644 index 000000000..db665ec52 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/efs/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove a tag from a resource** + +The following ``untag-resource`` example removes the tag with the ``Department`` tag key from the specified file system. :: + + aws efs untag-resource \ + --resource-id fs-c7a0456e \ + --tag-keys Department + +This command produces no output. + +For more information, see `Managing file system tags `__ in the *Amazon Elastic File System User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/associate-access-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/associate-access-policy.rst new file mode 100644 index 000000000..d037a5915 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/associate-access-policy.rst @@ -0,0 +1,29 @@ +**To associate an access policy and its scope to the access entry of the cluster** + +The following ``associate-access-policy`` associates an access policy and its scope to the access entry of the specified cluster. :: + + aws eks associate-access-policy \ + --cluster-name eks-customer \ + --principal-arn arn:aws:iam::111122223333:role/Admin \ + --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSEditPolicy \ + --access-scope type=namespace,namespaces=default + +Output:: + + { + "clusterName": "eks-customer", + "principalArn": "arn:aws:iam::111122223333:role/Admin", + "associatedAccessPolicy": { + "policyArn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSEditPolicy", + "accessScope": { + "type": "namespace", + "namespaces": [ + "default" + ] + }, + "associatedAt": "2025-05-24T15:59:51.981000-05:00", + "modifiedAt": "2025-05-24T15:59:51.981000-05:00" + } + } + +For more information, see `Associate access policies with access entries `__ in the *Amazon EKS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/associate-encryption-config.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/associate-encryption-config.rst new file mode 100644 index 000000000..25fa1bab3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/associate-encryption-config.rst @@ -0,0 +1,27 @@ +**To associates an encryption configuration to an existing cluster** + +The following ``associate-encryption-config`` example enable's encryption on an existing EKS clusters that do not already have encryption enabled. :: + + aws eks associate-encryption-config \ + --cluster-name my-eks-cluster \ + --encryption-config '[{"resources":["secrets"],"provider":{"keyArn":"arn:aws:kms:region-code:account:key/key"}}]' + +Output:: + + { + "update": { + "id": "3141b835-8103-423a-8e68-12c2521ffa4d", + "status": "InProgress", + "type": "AssociateEncryptionConfig", + "params": [ + { + "type": "EncryptionConfig", + "value": "[{\"resources\":[\"secrets\"],\"provider\":{\"keyArn\":\"arn:aws:kms:region-code:account:key/key\"}}]" + } + ], + "createdAt": "2024-03-14T11:01:26.297000-04:00", + "errors": [] + } + } + +For more information, see `Enabling secret encryption on an existing cluster `__ in the *Amazon EKS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/associate-identity-provider-config.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/associate-identity-provider-config.rst new file mode 100644 index 000000000..527c7de93 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/associate-identity-provider-config.rst @@ -0,0 +1,31 @@ +**Associate identity provider to your Amazon EKS Cluster** + +The following ``associate-identity-provider-config`` example associates an identity provider to your Amazon EKS Cluster. :: + + aws eks associate-identity-provider-config \ + --cluster-name my-eks-cluster \ + --oidc 'identityProviderConfigName=my-identity-provider,issuerUrl=https://oidc.eks.us-east-2.amazonaws.com/id/38D6A4619A0A69E342B113ED7F1A7652,clientId=kubernetes,usernameClaim=email,usernamePrefix=my-username-prefix,groupsClaim=my-claim,groupsPrefix=my-groups-prefix,requiredClaims={Claim1=value1,Claim2=value2}' \ + --tags env=dev + +Output:: + + { + "update": { + "id": "8c6c1bef-61fe-42ac-a242-89412387b8e7", + "status": "InProgress", + "type": "AssociateIdentityProviderConfig", + "params": [ + { + "type": "IdentityProviderConfig", + "value": "[{\"type\":\"oidc\",\"name\":\"my-identity-provider\"}]" + } + ], + "createdAt": "2024-04-11T13:46:49.648000-04:00", + "errors": [] + }, + "tags": { + "env": "dev" + } + } + +For more information, see `Authenticate users for your cluster from an OpenID Connect identity provider - Associate an OIDC identity provider `__ in the *Amazon EKS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/create-access-entry.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/create-access-entry.rst new file mode 100644 index 000000000..ca323a1e5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/create-access-entry.rst @@ -0,0 +1,54 @@ +**Example 1: To create the access entry for EKS cluster** + +The following ``create-access-entry`` example creates an access entry that allows an IAM principal to access the EKS cluster. :: + + aws eks create-access-entry \ + --cluster-name eks-customer \ + --principal-arn arn:aws:iam::111122223333:user/eks-user + +Output:: + + { + "accessEntry": { + "clusterName": "eks-customer", + "principalArn": "arn:aws:iam::111122223333:user/eks-user", + "kubernetesGroups": [], + "accessEntryArn": "arn:aws:eks:us-west-2:111122223333:access-entry/eks-customer/user/111122223333/eks-user/a1b2c3d4-5678-90ab-cdef-a6506e3d36p0", + "createdAt": "2025-04-14T22:45:48.097000-05:00", + "modifiedAt": "2025-04-14T22:45:48.097000-05:00", + "tags": {}, + "username": "arn:aws:iam::111122223333:user/eks-user", + "type": "STANDARD" + } + } + +For more information, see `Create access entries `__ in the *Amazon EKS User Guide*. + +**Example 2: To create the access entry for EKS cluster by specifying the type of access entry** + +The following ``create-access-entry`` example creates an access entry of type ``EC2_LINUX`` in the EKS cluster. By default, a type ``STANDARD`` access entry is created. Apart from the default, if we specify any other access entry types, an IAM role ARN needs to be passed in the CLI. :: + + aws eks create-access-entry \ + --cluster-name eks-customer \ + --principal-arn arn:aws:iam::111122223333:role/admin-test-ip \ + --type EC2_LINUX + +Output:: + + { + "accessEntry": { + "clusterName": "eks-customer", + "principalArn": "arn:aws:iam::111122223333:role/admin-test-ip", + "kubernetesGroups": [ + "system:nodes" + ], + "accessEntryArn": "arn:aws:eks:us-west-2:111122223333:access-entry/eks-customer/role/111122223333/admin-test-ip/accb5418-f493-f390-3e6e-c3f19f725fcp", + "createdAt": "2025-05-06T19:42:45.453000-05:00", + "modifiedAt": "2025-05-06T19:42:45.453000-05:00", + "tags": {}, + "username": "system:node:{{EC2PrivateDNSName}}", + "type": "EC2_LINUX" + } + } + +For more information, see `Create access entries `__ in the *Amazon EKS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/create-addon.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/create-addon.rst new file mode 100644 index 000000000..e7a55cddc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/create-addon.rst @@ -0,0 +1,191 @@ +**Example 1: To create an Amazon EKS add-on with default compatible version for the respective EKS cluster version** + +The following ``create-addon`` example command creates an Amazon EKS add-on with default compatible version for the respective EKS cluster version. :: + + aws eks create-addon \ + --cluster-name my-eks-cluster \ + --addon-name my-eks-addon \ + --service-account-role-arn arn:aws:iam::111122223333:role/role-name + +Output:: + + { + "addon": { + "addonName": "my-eks-addon", + "clusterName": "my-eks-cluster", + "status": "CREATING", + "addonVersion": "v1.15.1-eksbuild.1", + "health": { + "issues": [] + }, + "addonArn": "arn:aws:eks:us-east-2:111122223333:addon/my-eks-cluster/my-eks-addon/1ec71ee1-b9c2-8915-4e17-e8be0a55a149", + "createdAt": "2024-03-14T12:20:03.264000-04:00", + "modifiedAt": "2024-03-14T12:20:03.283000-04:00", + "serviceAccountRoleArn": "arn:aws:iam::111122223333:role/role-name", + "tags": {} + } + } + +For more information, see `Managing Amazon EKS add-ons - Creating an add-on `__ in the *Amazon EKS User Guide*. + +**Example 2: To create an Amazon EKS add-on with specific add-on version** + +The following ``create-addon`` example command creates an Amazon EKS add-on with specific add-on version. :: + + aws eks create-addon \ + --cluster-name my-eks-cluster \ + --addon-name my-eks-addon \ + --service-account-role-arn arn:aws:iam::111122223333:role/role-name \ + --addon-version v1.16.4-eksbuild.2 + +Output:: + + { + "addon": { + "addonName": "my-eks-addon", + "clusterName": "my-eks-cluster", + "status": "CREATING", + "addonVersion": "v1.16.4-eksbuild.2", + "health": { + "issues": [] + }, + "addonArn": "arn:aws:eks:us-east-2:111122223333:addon/my-eks-cluster/my-eks-addon/34c71ee6-7738-6c8b-c6bd-3921a176b5ff", + "createdAt": "2024-03-14T12:30:24.507000-04:00", + "modifiedAt": "2024-03-14T12:30:24.521000-04:00", + "serviceAccountRoleArn": "arn:aws:iam::111122223333:role/role-name", + "tags": {} + } + } + +For more information, see `Managing Amazon EKS add-ons - Creating an add-on `__ in the *Amazon EKS User Guide*. + +**Example 3: To create an Amazon EKS add-on with custom configuration values and resolve conflicts details** + +The following ``create-addon`` example command creates an Amazon EKS add-on with custom configuration values and resolves conflicts details. :: + + aws eks create-addon \ + --cluster-name my-eks-cluster \ + --addon-name my-eks-addon \ + --service-account-role-arn arn:aws:iam::111122223333:role/role-name \ + --addon-version v1.16.4-eksbuild.2 \ + --configuration-values '{"resources":{"limits":{"cpu":"100m"}}}' \ + --resolve-conflicts OVERWRITE + +Output:: + + { + "addon": { + "addonName": "my-eks-addon", + "clusterName": "my-eks-cluster", + "status": "CREATING", + "addonVersion": "v1.16.4-eksbuild.2", + "health": { + "issues": [] + }, + "addonArn": "arn:aws:eks:us-east-2:111122223333:addon/my-eks-cluster/my-eks-addon/a6c71ee9-0304-9237-1be8-25af1b0f1ffb", + "createdAt": "2024-03-14T12:35:58.313000-04:00", + "modifiedAt": "2024-03-14T12:35:58.327000-04:00", + "serviceAccountRoleArn": "arn:aws:iam::111122223333:role/role-name", + "tags": {}, + "configurationValues": "{\"resources\":{\"limits\":{\"cpu\":\"100m\"}}}" + } + } + +For more information, see `Managing Amazon EKS add-ons - Creating an add-on `__ in the *Amazon EKS User Guide*. + +**Example 4: To create an Amazon EKS add-on with custom JSON configuration values file** + +The following ``create-addon`` example command creates an Amazon EKS add-on with custom configuration values and resolve conflicts details. :: + + aws eks create-addon \ + --cluster-name my-eks-cluster \ + --addon-name my-eks-addon \ + --service-account-role-arn arn:aws:iam::111122223333:role/role-name \ + --addon-version v1.16.4-eksbuild.2 \ + --configuration-values 'file://configuration-values.json' \ + --resolve-conflicts OVERWRITE \ + --tags '{"eks-addon-key-1": "value-1" , "eks-addon-key-2": "value-2"}' + +Contents of ``configuration-values.json``:: + + { + "resources": { + "limits": { + "cpu": "150m" + } + }, + "env": { + "AWS_VPC_K8S_CNI_LOGLEVEL": "ERROR" + } + } + +Output:: + + { + "addon": { + "addonName": "my-eks-addon", + "clusterName": "my-eks-cluster", + "status": "CREATING", + "addonVersion": "v1.16.4-eksbuild.2", + "health": { + "issues": [] + }, + "addonArn": "arn:aws:eks:us-east-2:111122223333:addon/my-eks-cluster/my-eks-addon/d8c71ef8-fbd8-07d0-fb32-6a7be19ececd", + "createdAt": "2024-03-14T13:10:51.763000-04:00", + "modifiedAt": "2024-03-14T13:10:51.777000-04:00", + "serviceAccountRoleArn": "arn:aws:iam::111122223333:role/role-name", + "tags": { + "eks-addon-key-1": "value-1", + "eks-addon-key-2": "value-2" + }, + "configurationValues": "{\n \"resources\": {\n \"limits\": {\n \"cpu\": \"150m\"\n }\n },\n \"env\": {\n \"AWS_VPC_K8S_CNI_LOGLEVEL\": \"ERROR\"\n }\n}" + } + } + +For more information, see `Managing Amazon EKS add-ons - Creating an add-on `__ in the *Amazon EKS User Guide*. + +**Example 5: To create an Amazon EKS add-on with custom YAML configuration values file** + +The following ``create-addon`` example command creates an Amazon EKS add-on with custom configuration values and resolve conflicts details. :: + + aws eks create-addon \ + --cluster-name my-eks-cluster \ + --addon-name my-eks-addon \ + --service-account-role-arn arn:aws:iam::111122223333:role/role-name \ + --addon-version v1.16.4-eksbuild.2 \ + --configuration-values 'file://configuration-values.yaml' \ + --resolve-conflicts OVERWRITE \ + --tags '{"eks-addon-key-1": "value-1" , "eks-addon-key-2": "value-2"}' + +Contents of ``configuration-values.yaml``:: + + resources: + limits: + cpu: '100m' + env: + AWS_VPC_K8S_CNI_LOGLEVEL: 'DEBUG' + +Output:: + + { + "addon": { + "addonName": "my-eks-addon", + "clusterName": "my-eks-cluster", + "status": "CREATING", + "addonVersion": "v1.16.4-eksbuild.2", + "health": { + "issues": [] + }, + "addonArn": "arn:aws:eks:us-east-2:111122223333:addon/my-eks-cluster/my-eks-addon/d4c71efb-3909-6f36-a548-402cd4b5d59e", + "createdAt": "2024-03-14T13:15:45.220000-04:00", + "modifiedAt": "2024-03-14T13:15:45.237000-04:00", + "serviceAccountRoleArn": "arn:aws:iam::111122223333:role/role-name", + "tags": { + "eks-addon-key-3": "value-3", + "eks-addon-key-4": "value-4" + }, + "configurationValues": "resources:\n limits:\n cpu: '100m'\nenv:\n AWS_VPC_K8S_CNI_LOGLEVEL: 'INFO'" + } + } + +For more information, see `Managing Amazon EKS add-ons - Creating an add-on `__ in the *Amazon EKS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/create-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/create-cluster.rst new file mode 100644 index 000000000..ca3b036e3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/create-cluster.rst @@ -0,0 +1,89 @@ +**To create a new cluster** + +This example command creates a cluster named ``prod`` in your default region. + +Command:: + + aws eks create-cluster --name prod \ + --role-arn arn:aws:iam::012345678910:role/eks-service-role-AWSServiceRoleForAmazonEKS-J7ONKE3BQ4PI \ + --resources-vpc-config subnetIds=subnet-6782e71e,subnet-e7e761ac,securityGroupIds=sg-6979fe18 + +Output:: + + { + "cluster": { + "name": "prod", + "arn": "arn:aws:eks:us-west-2:012345678910:cluster/prod", + "createdAt": 1527808069.147, + "version": "1.10", + "roleArn": "arn:aws:iam::012345678910:role/eks-service-role-AWSServiceRoleForAmazonEKS-J7ONKE3BQ4PI", + "resourcesVpcConfig": { + "subnetIds": [ + "subnet-6782e71e", + "subnet-e7e761ac" + ], + "securityGroupIds": [ + "sg-6979fe18" + ], + "vpcId": "vpc-950809ec" + }, + "status": "CREATING", + "certificateAuthority": {} + } + } + +**To create a new cluster with private endpoint access and logging enabled** + +This example command creates a cluster named ``example`` in your default region with public endpoint access disabled, private endpoint access enabled, and all logging types enabled. + +Command:: + + aws eks create-cluster --name example --kubernetes-version 1.12 \ + --role-arn arn:aws:iam::012345678910:role/example-cluster-ServiceRole-1XWBQWYSFRE2Q \ + --resources-vpc-config subnetIds=subnet-0a188dccd2f9a632f,subnet-09290d93da4278664,subnet-0f21dd86e0e91134a,subnet-0173dead68481a583,subnet-051f70a57ed6fcab6,subnet-01322339c5c7de9b4,securityGroupIds=sg-0c5b580845a031c10,endpointPublicAccess=false,endpointPrivateAccess=true \ + --logging '{"clusterLogging":[{"types":["api","audit","authenticator","controllerManager","scheduler"],"enabled":true}]}' + +Output:: + + { + "cluster": { + "name": "example", + "arn": "arn:aws:eks:us-west-2:012345678910:cluster/example", + "createdAt": 1565804921.901, + "version": "1.12", + "roleArn": "arn:aws:iam::012345678910:role/example-cluster-ServiceRole-1XWBQWYSFRE2Q", + "resourcesVpcConfig": { + "subnetIds": [ + "subnet-0a188dccd2f9a632f", + "subnet-09290d93da4278664", + "subnet-0f21dd86e0e91134a", + "subnet-0173dead68481a583", + "subnet-051f70a57ed6fcab6", + "subnet-01322339c5c7de9b4" + ], + "securityGroupIds": [ + "sg-0c5b580845a031c10" + ], + "vpcId": "vpc-0f622c01f68d4afec", + "endpointPublicAccess": false, + "endpointPrivateAccess": true + }, + "logging": { + "clusterLogging": [ + { + "types": [ + "api", + "audit", + "authenticator", + "controllerManager", + "scheduler" + ], + "enabled": true + } + ] + }, + "status": "CREATING", + "certificateAuthority": {}, + "platformVersion": "eks.3" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/create-fargate-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/create-fargate-profile.rst new file mode 100644 index 000000000..ec5de6cf3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/create-fargate-profile.rst @@ -0,0 +1,216 @@ +**Example 1: Create EKS Fargate Profile for a selector with a namespace** + +The following ``create-fargate-profile`` example creates an EKS Fargate Profile for a selector with a namespace. :: + + aws eks create-fargate-profile \ + --cluster-name my-eks-cluster \ + --pod-execution-role-arn arn:aws:iam::111122223333:role/role-name \ + --fargate-profile-name my-fargate-profile \ + --selectors '[{"namespace": "default"}]' + +Output:: + + { + "fargateProfile": { + "fargateProfileName": "my-fargate-profile", + "fargateProfileArn": "arn:aws:eks:us-east-2:111122223333:fargateprofile/my-eks-cluster/my-fargate-profile/a2c72bca-318e-abe8-8ed1-27c6d4892e9e", + "clusterName": "my-eks-cluster", + "createdAt": "2024-03-19T12:38:47.368000-04:00", + "podExecutionRoleArn": "arn:aws:iam::111122223333:role/role-name", + "subnets": [ + "subnet-09d912bb63ef21b9a", + "subnet-04ad87f71c6e5ab4d", + "subnet-0e2907431c9988b72" + ], + "selectors": [ + { + "namespace": "default" + } + ], + "status": "CREATING", + "tags": {} + } + } + +For more information, see `AWS Fargate profile - Creating a Fargate profile `__ in the *Amazon EKS User Guide*. + +**Example 2: Create EKS Fargate Profile for a selector with a namespace and labels** + +The following ``create-fargate-profile`` example creates an EKS Fargate Profile for a selector with a namespace and labels. :: + + aws eks create-fargate-profile \ + --cluster-name my-eks-cluster \ + --pod-execution-role-arn arn:aws:iam::111122223333:role/role-name \ + --fargate-profile-name my-fargate-profile \ + --selectors '[{"namespace": "default", "labels": {"labelname1": "labelvalue1"}}]' + +Output:: + + { + "fargateProfile": { + "fargateProfileName": "my-fargate-profile", + "fargateProfileArn": "arn:aws:eks:us-east-2:111122223333:fargateprofile/my-eks-cluster/my-fargate-profile/88c72bc7-e8a4-fa34-44e4-2f1397224bb3", + "clusterName": "my-eks-cluster", + "createdAt": "2024-03-19T12:33:48.125000-04:00", + "podExecutionRoleArn": "arn:aws:iam::111122223333:role/role-name", + "subnets": [ + "subnet-09d912bb63ef21b9a", + "subnet-04ad87f71c6e5ab4d", + "subnet-0e2907431c9988b72" + ], + "selectors": [ + { + "namespace": "default", + "labels": { + "labelname1": "labelvalue1" + } + } + ], + "status": "CREATING", + "tags": {} + } + } + +For more information, see `AWS Fargate profile - Creating a Fargate profile `__ in the *Amazon EKS User Guide*. + +**Example 3: Create EKS Fargate Profile for a selector with a namespace and labels, along with IDs of subnets to launch a Pod into.** + +The following ``create-fargate-profile`` example create EKS Fargate Profile for a selector with a namespace and labels, along with IDs of subnets to launch a Pod into. :: + + aws eks create-fargate-profile \ + --cluster-name my-eks-cluster \ + --pod-execution-role-arn arn:aws:iam::111122223333:role/role-name \ + --fargate-profile-name my-fargate-profile \ + --selectors '[{"namespace": "default", "labels": {"labelname1": "labelvalue1"}}]' \ + --subnets '["subnet-09d912bb63ef21b9a", "subnet-04ad87f71c6e5ab4d", "subnet-0e2907431c9988b72"]' + +Output:: + + { + "fargateProfile": { + "fargateProfileName": "my-fargate-profile", + "fargateProfileArn": "arn:aws:eks:us-east-2:111122223333:fargateprofile/my-eks-cluster/my-fargate-profile/e8c72bc8-e87b-5eb6-57cb-ed4fe57577e3", + "clusterName": "my-eks-cluster", + "createdAt": "2024-03-19T12:35:58.640000-04:00", + "podExecutionRoleArn": "arn:aws:iam::111122223333:role/role-name", + "subnets": [ + "subnet-09d912bb63ef21b9a", + "subnet-04ad87f71c6e5ab4d", + "subnet-0e2907431c9988b72" + ], + "selectors": [ + { + "namespace": "default", + "labels": { + "labelname1": "labelvalue1" + } + } + ], + "status": "CREATING", + "tags": {} + } + } + +For more information, see `AWS Fargate profile - Creating a Fargate profile `__ in the *Amazon EKS User Guide*. + +**Example 4: Create EKS Fargate Profile for a selector with multiple namespace and labels, along with IDs of subnets to launch a Pod into** + +The following ``create-fargate-profile`` example creates an EKS Fargate Profile for a selector with multiple namespace and labels, along with IDs of subnets to launch a Pod into. :: + + aws eks create-fargate-profile \ + --cluster-name my-eks-cluster \ + --pod-execution-role-arn arn:aws:iam::111122223333:role/role-name \ + --fargate-profile-name my-fargate-profile \ + --selectors '[{"namespace": "default1", "labels": {"labelname1": "labelvalue1", "labelname2": "labelvalue2"}}, {"namespace": "default2", "labels": {"labelname1": "labelvalue1", "labelname2": "labelvalue2"}}]' \ + --subnets '["subnet-09d912bb63ef21b9a", "subnet-04ad87f71c6e5ab4d", "subnet-0e2907431c9988b72"]' \ + --tags '{"eks-fargate-profile-key-1": "value-1" , "eks-fargate-profile-key-2": "value-2"}' + +Output:: + + { + "fargateProfile": { + "fargateProfileName": "my-fargate-profile", + "fargateProfileArn": "arn:aws:eks:us-east-2:111122223333:fargateprofile/my-eks-cluster/my-fargate-profile/4cc72bbf-b766-8ee6-8d29-e62748feb3cd", + "clusterName": "my-eks-cluster", + "createdAt": "2024-03-19T12:15:55.271000-04:00", + "podExecutionRoleArn": "arn:aws:iam::111122223333:role/role-name", + "subnets": [ + "subnet-09d912bb63ef21b9a", + "subnet-04ad87f71c6e5ab4d", + "subnet-0e2907431c9988b72" + ], + "selectors": [ + { + "namespace": "default1", + "labels": { + "labelname2": "labelvalue2", + "labelname1": "labelvalue1" + } + }, + { + "namespace": "default2", + "labels": { + "labelname2": "labelvalue2", + "labelname1": "labelvalue1" + } + } + ], + "status": "CREATING", + "tags": { + "eks-fargate-profile-key-2": "value-2", + "eks-fargate-profile-key-1": "value-1" + } + } + } + +For more information, see `AWS Fargate profile - Creating a Fargate profile `__ in the *Amazon EKS User Guide*. + +**Example 5: Create EKS Fargate Profile with a wildcard selector for namespaces and labels, along with IDs of subnets to launch a Pod into** + +The following ``create-fargate-profile`` example creates an EKS Fargate Profile for a selector with multiple namespace and labels, along with IDs of subnets to launch a Pod into. :: + + aws eks create-fargate-profile \ + --cluster-name my-eks-cluster \ + --pod-execution-role-arn arn:aws:iam::111122223333:role/role-name \ + --fargate-profile-name my-fargate-profile \ + --selectors '[{"namespace": "prod*", "labels": {"labelname*?": "*value1"}}, {"namespace": "*dev*", "labels": {"labelname*?": "*value*"}}]' \ + --subnets '["subnet-09d912bb63ef21b9a", "subnet-04ad87f71c6e5ab4d", "subnet-0e2907431c9988b72"]' \ + --tags '{"eks-fargate-profile-key-1": "value-1" , "eks-fargate-profile-key-2": "value-2"}' + +Output:: + + { + "fargateProfile": { + "fargateProfileName": "my-fargate-profile", + "fargateProfileArn": "arn:aws:eks:us-east-2:111122223333:fargateprofile/my-eks-cluster/my-fargate-profile/e8c72bd6-5966-0bfe-b77b-1802893e5a6f", + "clusterName": "my-eks-cluster", + "createdAt": "2024-03-19T13:05:20.550000-04:00", + "podExecutionRoleArn": "arn:aws:iam::111122223333:role/role-name", + "subnets": [ + "subnet-09d912bb63ef21b9a", + "subnet-04ad87f71c6e5ab4d", + "subnet-0e2907431c9988b72" + ], + "selectors": [ + { + "namespace": "prod*", + "labels": { + "labelname*?": "*value1" + } + }, + { + "namespace": "*dev*", + "labels": { + "labelname*?": "*value*" + } + } + ], + "status": "CREATING", + "tags": { + "eks-fargate-profile-key-2": "value-2", + "eks-fargate-profile-key-1": "value-1" + } + } + } + +For more information, see `AWS Fargate profile - Creating a Fargate profile `__ in the *Amazon EKS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/create-nodegroup.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/create-nodegroup.rst new file mode 100644 index 000000000..3152d3feb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/create-nodegroup.rst @@ -0,0 +1,180 @@ +**Example 1: Creates a managed node group for an Amazon EKS cluster** + +The following ``create-nodegroup`` example creates a managed node group for an Amazon EKS cluster. :: + + aws eks create-nodegroup \ + --cluster-name my-eks-cluster \ + --nodegroup-name my-eks-nodegroup \ + --node-role arn:aws:iam::111122223333:role/role-name \ + --subnets "subnet-0e2907431c9988b72" "subnet-04ad87f71c6e5ab4d" "subnet-09d912bb63ef21b9a" \ + --scaling-config minSize=1,maxSize=3,desiredSize=1 \ + --region us-east-2 + +Output:: + + { + "nodegroup": { + "nodegroupName": "my-eks-nodegroup", + "nodegroupArn": "arn:aws:eks:us-east-2:111122223333:nodegroup/my-eks-cluster/my-eks-nodegroup/bac7550f-b8b8-5fbb-4f3e-7502a931119e", + "clusterName": "my-eks-cluster", + "version": "1.26", + "releaseVersion": "1.26.12-20240329", + "createdAt": "2024-04-04T13:19:32.260000-04:00", + "modifiedAt": "2024-04-04T13:19:32.260000-04:00", + "status": "CREATING", + "capacityType": "ON_DEMAND", + "scalingConfig": { + "minSize": 1, + "maxSize": 3, + "desiredSize": 1 + }, + "instanceTypes": [ + "t3.medium" + ], + "subnets": [ + "subnet-0e2907431c9988b72, subnet-04ad87f71c6e5ab4d, subnet-09d912bb63ef21b9a" + ], + "amiType": "AL2_x86_64", + "nodeRole": "arn:aws:iam::111122223333:role/role-name", + "diskSize": 20, + "health": { + "issues": [] + }, + "updateConfig": { + "maxUnavailable": 1 + }, + "tags": {} + } + } + +For more information, see `Creating a managed node group `__ in the *Amazon EKS User Guide*. + +**Example 2: Creates a managed node group for an Amazon EKS cluster with custom instance-types and disk-size** + +The following ``create-nodegroup`` example creates a managed node group for an Amazon EKS cluster with custom instance-types and disk-size. :: + + aws eks create-nodegroup \ + --cluster-name my-eks-cluster \ + --nodegroup-name my-eks-nodegroup \ + --node-role arn:aws:iam::111122223333:role/role-name \ + --subnets "subnet-0e2907431c9988b72" "subnet-04ad87f71c6e5ab4d" "subnet-09d912bb63ef21b9a" \ + --scaling-config minSize=1,maxSize=3,desiredSize=1 \ + --capacity-type ON_DEMAND \ + --instance-types 'm5.large' \ + --disk-size 50 \ + --region us-east-2 + +Output:: + + { + "nodegroup": { + "nodegroupName": "my-eks-nodegroup", + "nodegroupArn": "arn:aws:eks:us-east-2:111122223333:nodegroup/my-eks-cluster/my-eks-nodegroup/c0c7551b-e4f9-73d9-992c-a450fdb82322", + "clusterName": "my-eks-cluster", + "version": "1.26", + "releaseVersion": "1.26.12-20240329", + "createdAt": "2024-04-04T13:46:07.595000-04:00", + "modifiedAt": "2024-04-04T13:46:07.595000-04:00", + "status": "CREATING", + "capacityType": "ON_DEMAND", + "scalingConfig": { + "minSize": 1, + "maxSize": 3, + "desiredSize": 1 + }, + "instanceTypes": [ + "m5.large" + ], + "subnets": [ + "subnet-0e2907431c9988b72", + "subnet-04ad87f71c6e5ab4d", + "subnet-09d912bb63ef21b9a" + ], + "amiType": "AL2_x86_64", + "nodeRole": "arn:aws:iam::111122223333:role/role-name", + "diskSize": 50, + "health": { + "issues": [] + }, + "updateConfig": { + "maxUnavailable": 1 + }, + "tags": {} + } + } + +For more information, see `Creating a managed node group `__ in the *Amazon EKS User Guide*. + +**Example 3: Creates a managed node group for an Amazon EKS cluster with custom instance-types, disk-size, ami-type, capacity-type, update-config, labels, taints and tags.** + +The following ``create-nodegroup`` example creates a managed node group for an Amazon EKS cluster with custom instance-types, disk-size, ami-type, capacity-type, update-config, labels, taints and tags. :: + + aws eks create-nodegroup \ + --cluster-name my-eks-cluster \ + --nodegroup-name my-eks-nodegroup \ + --node-role arn:aws:iam::111122223333:role/role-name \ + --subnets "subnet-0e2907431c9988b72" "subnet-04ad87f71c6e5ab4d" "subnet-09d912bb63ef21b9a" \ + --scaling-config minSize=1,maxSize=5,desiredSize=4 \ + --instance-types 't3.large' \ + --disk-size 50 \ + --ami-type AL2_x86_64 \ + --capacity-type SPOT \ + --update-config maxUnavailable=2 \ + --labels '{"my-eks-nodegroup-label-1": "value-1" , "my-eks-nodegroup-label-2": "value-2"}' \ + --taints '{"key": "taint-key-1" , "value": "taint-value-1", "effect": "NO_EXECUTE"}' \ + --tags '{"my-eks-nodegroup-key-1": "value-1" , "my-eks-nodegroup-key-2": "value-2"}' + +Output:: + + { + "nodegroup": { + "nodegroupName": "my-eks-nodegroup", + "nodegroupArn": "arn:aws:eks:us-east-2:111122223333:nodegroup/my-eks-cluster/my-eks-nodegroup/88c75524-97af-0cb9-a9c5-7c0423ab5314", + "clusterName": "my-eks-cluster", + "version": "1.26", + "releaseVersion": "1.26.12-20240329", + "createdAt": "2024-04-04T14:05:07.940000-04:00", + "modifiedAt": "2024-04-04T14:05:07.940000-04:00", + "status": "CREATING", + "capacityType": "SPOT", + "scalingConfig": { + "minSize": 1, + "maxSize": 5, + "desiredSize": 4 + }, + "instanceTypes": [ + "t3.large" + ], + "subnets": [ + "subnet-0e2907431c9988b72", + "subnet-04ad87f71c6e5ab4d", + "subnet-09d912bb63ef21b9a" + ], + "amiType": "AL2_x86_64", + "nodeRole": "arn:aws:iam::111122223333:role/role-name", + "labels": { + "my-eks-nodegroup-label-2": "value-2", + "my-eks-nodegroup-label-1": "value-1" + }, + "taints": [ + { + "key": "taint-key-1", + "value": "taint-value-1", + "effect": "NO_EXECUTE" + } + ], + "diskSize": 50, + "health": { + "issues": [] + }, + "updateConfig": { + "maxUnavailable": 2 + }, + "tags": { + "my-eks-nodegroup-key-1": "value-1", + "my-eks-nodegroup-key-2": "value-2" + } + } + } + +For more information, see `Creating a managed node group `__ in the *Amazon EKS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/create-pod-identity-association.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/create-pod-identity-association.rst new file mode 100644 index 000000000..11bc04780 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/create-pod-identity-association.rst @@ -0,0 +1,59 @@ +**Example 1: To create an EKS Pod Identity association in EKS cluster** + +The following ``create-pod-identity-association`` example creates an EKS Pod Identity association between a service account in the EKS cluster and an IAM role. :: + + aws eks create-pod-identity-association \ + --cluster-name eks-customer \ + --namespace default \ + --service-account default \ + --role-arn arn:aws:iam::111122223333:role/my-role + +Output:: + + { + "association": { + "clusterName": "eks-customer", + "namespace": "default", + "serviceAccount": "default", + "roleArn": "arn:aws:iam::111122223333:role/my-role", + "associationArn": "arn:aws:eks:us-west-2:111122223333:podidentityassociation/eks-customer/a-8mvwvh57cu74mgcst", + "associationId": "a-8mvwvh57cu74mgcst", + "tags": {}, + "createdAt": "2025-05-24T19:40:13.961000-05:00", + "modifiedAt": "2025-05-24T19:40:13.961000-05:00" + } + } + +For more information, see `Learn how EKS Pod Identity grants pods access to AWS services `__ in the *Amazon EKS User Guide*. + +**Example 2: To create an EKS Pod Identity association in EKS cluster with tags** + +The following ``create-pod-identity-association`` creates an EKS Pod Identity association between a service account and an IAM role in the EKS cluster with tags. :: + + aws eks create-pod-identity-association \ + --cluster-name eks-customer \ + --namespace default \ + --service-account default \ + --role-arn arn:aws:iam::111122223333:role/my-role \ + --tags Key1=value1,Key2=value2 + +Output:: + + { + "association": { + "clusterName": "eks-customer", + "namespace": "default", + "serviceAccount": "default", + "roleArn": "arn:aws:iam::111122223333:role/my-role", + "associationArn": "arn:aws:eks:us-west-2:111122223333:podidentityassociation/eks-customer/a-9njjin9gfghecgoda", + "associationId": "a-9njjin9gfghecgoda", + "tags": { + "Key2": "value2", + "Key1": "value1" + }, + "createdAt": "2025-05-24T19:52:14.135000-05:00", + "modifiedAt": "2025-05-24T19:52:14.135000-05:00" + } + } + +For more information, see `Learn how EKS Pod Identity grants pods access to AWS services `__ in the *Amazon EKS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/delete-access-entry.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/delete-access-entry.rst new file mode 100644 index 000000000..2ea42889d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/delete-access-entry.rst @@ -0,0 +1,11 @@ +**To delete an access entry associated with the cluster** + +The following ``delete-access-entry`` deletes an access entry associated with the EKS cluster named ``eks-customer``. :: + + aws eks delete-access-entry \ + --cluster-name eks-customer \ + --principal-arn arn:aws:iam::111122223333:role/Admin + +This command produces no output. + +For more information, see `Delete access entries `__ in the *Amazon EKS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/delete-addon.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/delete-addon.rst new file mode 100644 index 000000000..e085cdb95 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/delete-addon.rst @@ -0,0 +1,57 @@ +**Example 1. To deletes an Amazon EKS add-on but preserve the add-on software on the EKS Cluster** + +The following ``delete-addon`` example command deletes an Amazon EKS add-on but preserve the add-on software on the EKS Cluster. :: + + aws eks delete-addon \ + --cluster-name my-eks-cluster \ + --addon-name my-eks-addon \ + --preserve + +Output:: + + { + "addon": { + "addonName": "my-eks-addon", + "clusterName": "my-eks-cluster", + "status": "DELETING", + "addonVersion": "v1.9.3-eksbuild.7", + "health": { + "issues": [] + }, + "addonArn": "arn:aws:eks:us-east-2:111122223333:addon/my-eks-cluster/my-eks-addon/a8c71ed3-944e-898b-9167-c763856af4b8", + "createdAt": "2024-03-14T11:49:09.009000-04:00", + "modifiedAt": "2024-03-14T12:03:49.776000-04:00", + "tags": {} + } + } + +For more information, see `Managing Amazon EKS add-ons - Deleting an add-on `__ in the *Amazon EKS*. + +**Example 2. To deletes an Amazon EKS add-on and also delete the add-on software from the EKS Cluster** + +The following ``delete-addon`` example command deletes an Amazon EKS add-on and also delete the add-on software from the EKS Cluster. :: + + aws eks delete-addon \ + --cluster-name my-eks-cluster \ + --addon-name my-eks-addon + +Output:: + + { + "addon": { + "addonName": "my-eks-addon", + "clusterName": "my-eks-cluster", + "status": "DELETING", + "addonVersion": "v1.15.1-eksbuild.1", + "health": { + "issues": [] + }, + "addonArn": "arn:aws:eks:us-east-2:111122223333:addon/my-eks-cluster/my-eks-addon/bac71ed1-ec43-3bb6-88ea-f243cdb58954", + "createdAt": "2024-03-14T11:45:31.983000-04:00", + "modifiedAt": "2024-03-14T11:58:40.136000-04:00", + "serviceAccountRoleArn": "arn:aws:iam::111122223333:role/role-name", + "tags": {} + } + } + +For more information, see `Managing Amazon EKS add-ons - Deleting an add-on `__ in the *Amazon EKS*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/delete-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/delete-cluster.rst new file mode 100644 index 000000000..a238fcc30 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/delete-cluster.rst @@ -0,0 +1,85 @@ +**Delete an Amazon EKS cluster control plane** + +The following ``delete-cluster`` example deletes an Amazon EKS cluster control plane. :: + + aws eks delete-cluster \ + --name my-eks-cluster + +Output:: + + { + "cluster": { + "name": "my-eks-cluster", + "arn": "arn:aws:eks:us-east-2:111122223333:cluster/my-eks-cluster", + "createdAt": "2024-03-14T11:31:44.348000-04:00", + "version": "1.27", + "endpoint": "https://DALSJ343KE23J3RN45653DSKJTT647TYD.yl4.us-east-2.eks.amazonaws.com", + "roleArn": "arn:aws:iam::111122223333:role/eksctl-my-eks-cluster-cluster-ServiceRole-zMF6CBakwwbW", + "resourcesVpcConfig": { + "subnetIds": [ + "subnet-0fb75d2d8401716e7", + "subnet-02184492f67a3d0f9", + "subnet-04098063527aab776", + "subnet-0e2907431c9988b72", + "subnet-04ad87f71c6e5ab4d", + "subnet-09d912bb63ef21b9a" + ], + "securityGroupIds": [ + "sg-0c1327f6270afbb36" + ], + "clusterSecurityGroupId": "sg-01c84d09d70f39a7f", + "vpcId": "vpc-0012b8e1cc0abb17d", + "endpointPublicAccess": true, + "endpointPrivateAccess": true, + "publicAccessCidrs": [ + "0.0.0.0/0" + ] + }, + "kubernetesNetworkConfig": { + "serviceIpv4Cidr": "10.100.0.0/16", + "ipFamily": "ipv4" + }, + "logging": { + "clusterLogging": [ + { + "types": [ + "api", + "audit", + "authenticator", + "controllerManager", + "scheduler" + ], + "enabled": true + } + ] + }, + "identity": { + "oidc": { + "issuer": "https://oidc.eks.us-east-2.amazonaws.com/id/DALSJ343KE23J3RN45653DSKJTT647TYD" + } + }, + "status": "DELETING", + "certificateAuthority": { + "data": "XXX_CA_DATA_XXX" + }, + "platformVersion": "eks.16", + "tags": { + "aws:cloudformation:stack-name": "eksctl-my-eks-cluster-cluster", + "alpha.eksctl.io/cluster-name": "my-eks-cluster", + "karpenter.sh/discovery": "my-eks-cluster", + "aws:cloudformation:stack-id": "arn:aws:cloudformation:us-east-2:111122223333:stack/eksctl-my-eks-cluster-cluster/e752ea00-e217-11ee-beae-0a9599c8c7ed", + "auto-delete": "no", + "eksctl.cluster.k8s.io/v1alpha1/cluster-name": "my-eks-cluster", + "EKS-Cluster-Name": "my-eks-cluster", + "alpha.eksctl.io/cluster-oidc-enabled": "true", + "aws:cloudformation:logical-id": "ControlPlane", + "alpha.eksctl.io/eksctl-version": "0.173.0-dev+a7ee89342.2024-03-01T03:40:57Z", + "Name": "eksctl-my-eks-cluster-cluster/ControlPlane" + }, + "accessConfig": { + "authenticationMode": "API_AND_CONFIG_MAP" + } + } + } + +For more information, see `Deleting an Amazon EKS cluster `__ in the *Amazon EKS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/delete-fargate-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/delete-fargate-profile.rst new file mode 100644 index 000000000..97814acc7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/delete-fargate-profile.rst @@ -0,0 +1,36 @@ +**Example 1: Create EKS Fargate Profile for a selector with a namespace** + +The following ``delete-fargate-profile`` example creates an EKS Fargate Profile for a selector with a namespace. :: + + aws eks delete-fargate-profile \ + --cluster-name my-eks-cluster \ + --fargate-profile-name my-fargate-profile + +Output:: + + { + "fargateProfile": { + "fargateProfileName": "my-fargate-profile", + "fargateProfileArn": "arn:aws:eks:us-east-2:111122223333:fargateprofile/my-eks-cluster/my-fargate-profile/1ac72bb3-3fc6-2631-f1e1-98bff53bed62", + "clusterName": "my-eks-cluster", + "createdAt": "2024-03-19T11:48:39.975000-04:00", + "podExecutionRoleArn": "arn:aws:iam::111122223333:role/role-name", + "subnets": [ + "subnet-09d912bb63ef21b9a", + "subnet-04ad87f71c6e5ab4d", + "subnet-0e2907431c9988b72" + ], + "selectors": [ + { + "namespace": "default", + "labels": { + "foo": "bar" + } + } + ], + "status": "DELETING", + "tags": {} + } + } + +For more information, see `AWS Fargate profile - Deleting a Fargate `__ in the *Amazon EKS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/delete-nodegroup.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/delete-nodegroup.rst new file mode 100644 index 000000000..718cfee7b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/delete-nodegroup.rst @@ -0,0 +1,60 @@ +**Example 1: Delete a managed node group for an Amazon EKS cluster** + +The following ``delete-nodegroup`` example deletes a managed node group for an Amazon EKS cluster. :: + + aws eks delete-nodegroup \ + --cluster-name my-eks-cluster \ + --nodegroup-name my-eks-nodegroup + +Output:: + + { + "nodegroup": { + "nodegroupName": "my-eks-nodegroup", + "nodegroupArn": "arn:aws:eks:us-east-2:111122223333:nodegroup/my-eks-cluster/my-eks-nodegroup/1ec75f5f-0e21-dcc0-b46e-f9c442685cd8", + "clusterName": "my-eks-cluster", + "version": "1.26", + "releaseVersion": "1.26.12-20240329", + "createdAt": "2024-04-08T13:25:15.033000-04:00", + "modifiedAt": "2024-04-08T13:25:31.252000-04:00", + "status": "DELETING", + "capacityType": "SPOT", + "scalingConfig": { + "minSize": 1, + "maxSize": 5, + "desiredSize": 4 + }, + "instanceTypes": [ + "t3.large" + ], + "subnets": [ + "subnet-0e2907431c9988b72", + "subnet-04ad87f71c6e5ab4d", + "subnet-09d912bb63ef21b9a" + ], + "amiType": "AL2_x86_64", + "nodeRole": "arn:aws:iam::111122223333:role/role-name", + "labels": { + "my-eks-nodegroup-label-2": "value-2", + "my-eks-nodegroup-label-1": "value-1" + }, + "taints": [ + { + "key": "taint-key-1", + "value": "taint-value-1", + "effect": "NO_EXECUTE" + } + ], + "diskSize": 50, + "health": { + "issues": [] + }, + "updateConfig": { + "maxUnavailable": 2 + }, + "tags": { + "my-eks-nodegroup-key-1": "value-1", + "my-eks-nodegroup-key-2": "value-2" + } + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/delete-pod-identity-association.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/delete-pod-identity-association.rst new file mode 100644 index 000000000..7e9330d37 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/delete-pod-identity-association.rst @@ -0,0 +1,28 @@ +**To delete the EKS Pod Identity association** + +The following ``delete-pod-identity-association`` example deletes the EKS Pod Identity association with association ID ``a-9njjin9gfghecgocd`` from the EKS cluster named ``eks-customer``. :: + + aws eks delete-pod-identity-association \ + --cluster-name eks-customer \ + --association-id a-9njjin9gfghecgocd + +Output:: + + { + "association": { + "clusterName": "eks-customer", + "namespace": "default", + "serviceAccount": "default", + "roleArn": "arn:aws:iam::111122223333:role/s3-role", + "associationArn": "arn:aws:eks:us-west-2:111122223333:podidentityassociation/eks-customer/a-9njjin9gfghecgocd", + "associationId": "a-9njjin9gfghecgocd", + "tags": { + "Key2": "value2", + "Key1": "value1" + }, + "createdAt": "2025-05-24T19:52:14.135000-05:00", + "modifiedAt": "2025-05-25T21:10:56.923000-05:00" + } + } + +For more information, see `Learn how EKS Pod Identity grants pods access to AWS services `__ in the *Amazon EKS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/deregister-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/deregister-cluster.rst new file mode 100644 index 000000000..490f8ca99 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/deregister-cluster.rst @@ -0,0 +1,26 @@ +**To deregisters a connected cluster to remove it from the Amazon EKS control plane** + +The following ``deregister-cluster`` example deregisters a connected cluster to remove it from the Amazon EKS control plane. :: + + aws eks deregister-cluster \ + --name my-eks-anywhere-cluster + +Output:: + + { + "cluster": { + "name": "my-eks-anywhere-cluster", + "arn": "arn:aws:eks:us-east-2:111122223333:cluster/my-eks-anywhere-cluster", + "createdAt": "2024-04-12T12:38:37.561000-04:00", + "status": "DELETING", + "tags": {}, + "connectorConfig": { + "activationId": "dfb5ad28-13c3-4e26-8a19-5b2457638c74", + "activationExpiry": "2024-04-15T12:38:37.082000-04:00", + "provider": "EKS_ANYWHERE", + "roleArn": "arn:aws:iam::111122223333:role/AmazonEKSConnectorAgentRole" + } + } + } + +For more information, see `Deregistering a cluster `__ in the *Amazon EKS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-access-entry.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-access-entry.rst new file mode 100644 index 000000000..7c3c9c568 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-access-entry.rst @@ -0,0 +1,25 @@ +**To describe the access entry for EKS cluster** + +The following ``describe-access-entry`` example describes an access entry for the EKS cluster. :: + + aws eks describe-access-entry \ + --cluster-name eks-customer \ + --principal-arn arn:aws:iam::111122223333:user/eks-admin-user + +Output:: + + { + "accessEntry": { + "clusterName": "eks-customer", + "principalArn": "arn:aws:iam::111122223333:user/eks-admin-user", + "kubernetesGroups": [], + "accessEntryArn": "arn:aws:eks:us-west-2:111122223333:access-entry/eks-customer/user/111122223333/eks-admin-user/0acb1bc6-cb0a-ede6-11ae-a6506e3d36p0", + "createdAt": "2025-04-14T22:45:48.097000-05:00", + "modifiedAt": "2025-04-14T22:45:48.097000-05:00", + "tags": {}, + "username": "arn:aws:iam::111122223333:user/eks-admin-user", + "type": "STANDARD" + } + } + +For more information, see `Grant IAM users access to Kubernetes with EKS access entries `__ in the *Amazon EKS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-addon-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-addon-configuration.rst new file mode 100644 index 000000000..4c23cd473 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-addon-configuration.rst @@ -0,0 +1,33 @@ +**Example 1: Configuration options available when creating or updating Amazon vpc-cni AddOns** + +The following ``describe-addon-configuration`` example returns the all the available configuration schema you use when an add-on is created or updated for vpc-cni add-on with respective version. :: + + aws eks describe-addon-configuration \ + --addon-name vpc-cni \ + --addon-version v1.15.1-eksbuild.1 + +Output:: + + { + "addonName": "vpc-cni", + "addonVersion": "v1.15.1-eksbuild.1", + "configurationSchema": "{\"$ref\":\"#/definitions/VpcCni\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"definitions\":{\"Affinity\":{\"type\":[\"object\",\"null\"]},\"EniConfig\":{\"additionalProperties\":false,\"properties\":{\"create\":{\"type\":\"boolean\"},\"region\":{\"type\":\"string\"},\"subnets\":{\"additionalProperties\":{\"additionalProperties\":false,\"properties\":{\"id\":{\"type\":\"string\"},\"securityGroups\":{\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"id\"],\"type\":\"object\"},\"minProperties\":1,\"type\":\"object\"}},\"required\":[\"create\",\"region\",\"subnets\"],\"type\":\"object\"},\"Env\":{\"additionalProperties\":false,\"properties\":{\"ADDITIONAL_ENI_TAGS\":{\"type\":\"string\"},\"ANNOTATE_POD_IP\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_EC2_ENDPOINT\":{\"type\":\"string\"},\"AWS_EXTERNAL_SERVICE_CIDRS\":{\"type\":\"string\"},\"AWS_MANAGE_ENIS_NON_SCHEDULABLE\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_CNI_NODE_PORT_SUPPORT\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_ENI_MTU\":{\"format\":\"integer\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_CUSTOM_NETWORK_CFG\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_EXCLUDE_SNAT_CIDRS\":{\"type\":\"string\"},\"AWS_VPC_K8S_CNI_EXTERNALSNAT\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_LOGLEVEL\":{\"type\":\"string\"},\"AWS_VPC_K8S_CNI_LOG_FILE\":{\"type\":\"string\"},\"AWS_VPC_K8S_CNI_RANDOMIZESNAT\":{\"type\":\"string\"},\"AWS_VPC_K8S_CNI_VETHPREFIX\":{\"type\":\"string\"},\"AWS_VPC_K8S_PLUGIN_LOG_FILE\":{\"type\":\"string\"},\"AWS_VPC_K8S_PLUGIN_LOG_LEVEL\":{\"type\":\"string\"},\"CLUSTER_ENDPOINT\":{\"type\":\"string\"},\"DISABLE_INTROSPECTION\":{\"format\":\"boolean\",\"type\":\"string\"},\"DISABLE_LEAKED_ENI_CLEANUP\":{\"format\":\"boolean\",\"type\":\"string\"},\"DISABLE_METRICS\":{\"format\":\"boolean\",\"type\":\"string\"},\"DISABLE_NETWORK_RESOURCE_PROVISIONING\":{\"format\":\"boolean\",\"type\":\"string\"},\"DISABLE_POD_V6\":{\"format\":\"boolean\",\"type\":\"string\"},\"ENABLE_BANDWIDTH_PLUGIN\":{\"format\":\"boolean\",\"type\":\"string\"},\"ENABLE_POD_ENI\":{\"format\":\"boolean\",\"type\":\"string\"},\"ENABLE_PREFIX_DELEGATION\":{\"format\":\"boolean\",\"type\":\"string\"},\"ENABLE_V4_EGRESS\":{\"format\":\"boolean\",\"type\":\"string\"},\"ENABLE_V6_EGRESS\":{\"format\":\"boolean\",\"type\":\"string\"},\"ENI_CONFIG_ANNOTATION_DEF\":{\"type\":\"string\"},\"ENI_CONFIG_LABEL_DEF\":{\"type\":\"string\"},\"INTROSPECTION_BIND_ADDRESS\":{\"type\":\"string\"},\"IP_COOLDOWN_PERIOD\":{\"format\":\"integer\",\"type\":\"string\"},\"MAX_ENI\":{\"format\":\"integer\",\"type\":\"string\"},\"MINIMUM_IP_TARGET\":{\"format\":\"integer\",\"type\":\"string\"},\"POD_SECURITY_GROUP_ENFORCING_MODE\":{\"type\":\"string\"},\"WARM_ENI_TARGET\":{\"format\":\"integer\",\"type\":\"string\"},\"WARM_IP_TARGET\":{\"format\":\"integer\",\"type\":\"string\"},\"WARM_PREFIX_TARGET\":{\"format\":\"integer\",\"type\":\"string\"}},\"title\":\"Env\",\"type\":\"object\"},\"Init\":{\"additionalProperties\":false,\"properties\":{\"env\":{\"$ref\":\"#/definitions/InitEnv\"}},\"title\":\"Init\",\"type\":\"object\"},\"InitEnv\":{\"additionalProperties\":false,\"properties\":{\"DISABLE_TCP_EARLY_DEMUX\":{\"format\":\"boolean\",\"type\":\"string\"},\"ENABLE_V6_EGRESS\":{\"format\":\"boolean\",\"type\":\"string\"}},\"title\":\"InitEnv\",\"type\":\"object\"},\"Limits\":{\"additionalProperties\":false,\"properties\":{\"cpu\":{\"type\":\"string\"},\"memory\":{\"type\":\"string\"}},\"title\":\"Limits\",\"type\":\"object\"},\"NodeAgent\":{\"additionalProperties\":false,\"properties\":{\"enableCloudWatchLogs\":{\"format\":\"boolean\",\"type\":\"string\"},\"enablePolicyEventLogs\":{\"format\":\"boolean\",\"type\":\"string\"},\"healthProbeBindAddr\":{\"format\":\"integer\",\"type\":\"string\"},\"metricsBindAddr\":{\"format\":\"integer\",\"type\":\"string\"}},\"title\":\"NodeAgent\",\"type\":\"object\"},\"Resources\":{\"additionalProperties\":false,\"properties\":{\"limits\":{\"$ref\":\"#/definitions/Limits\"},\"requests\":{\"$ref\":\"#/definitions/Limits\"}},\"title\":\"Resources\",\"type\":\"object\"},\"Tolerations\":{\"additionalProperties\":false,\"items\":{\"type\":\"object\"},\"type\":\"array\"},\"VpcCni\":{\"additionalProperties\":false,\"properties\":{\"affinity\":{\"$ref\":\"#/definitions/Affinity\"},\"enableNetworkPolicy\":{\"format\":\"boolean\",\"type\":\"string\"},\"enableWindowsIpam\":{\"format\":\"boolean\",\"type\":\"string\"},\"eniConfig\":{\"$ref\":\"#/definitions/EniConfig\"},\"env\":{\"$ref\":\"#/definitions/Env\"},\"init\":{\"$ref\":\"#/definitions/Init\"},\"livenessProbeTimeoutSeconds\":{\"type\":\"integer\"},\"nodeAgent\":{\"$ref\":\"#/definitions/NodeAgent\"},\"readinessProbeTimeoutSeconds\":{\"type\":\"integer\"},\"resources\":{\"$ref\":\"#/definitions/Resources\"},\"tolerations\":{\"$ref\":\"#/definitions/Tolerations\"}},\"title\":\"VpcCni\",\"type\":\"object\"}},\"description\":\"vpc-cni\"}" + } + +**Example 2: Configuration options available when creating or updating Amazon coredns AddOns** + +The following ``describe-addon-configuration`` example returns all the available configuration schema you use when an add-on is created or updated for coredns add-on with respective version. :: + + aws eks describe-addon-configuration \ + --addon-name coredns \ + --addon-version v1.8.7-eksbuild.4 + +Output:: + + { + "addonName": "coredns", + "addonVersion": "v1.8.7-eksbuild.4", + "configurationSchema": "{\"$ref\":\"#/definitions/Coredns\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"definitions\":{\"Coredns\":{\"additionalProperties\":false,\"properties\":{\"computeType\":{\"type\":\"string\"},\"corefile\":{\"description\":\"Entire corefile contents to use with installation\",\"type\":\"string\"},\"nodeSelector\":{\"additionalProperties\":{\"type\":\"string\"},\"type\":\"object\"},\"replicaCount\":{\"type\":\"integer\"},\"resources\":{\"$ref\":\"#/definitions/Resources\"}},\"title\":\"Coredns\",\"type\":\"object\"},\"Limits\":{\"additionalProperties\":false,\"properties\":{\"cpu\":{\"type\":\"string\"},\"memory\":{\"type\":\"string\"}},\"title\":\"Limits\",\"type\":\"object\"},\"Resources\":{\"additionalProperties\":false,\"properties\":{\"limits\":{\"$ref\":\"#/definitions/Limits\"},\"requests\":{\"$ref\":\"#/definitions/Limits\"}},\"title\":\"Resources\",\"type\":\"object\"}}}" + } + +For more information, see `Creating or updating a kubeconfig file for an Amazon EKS cluster `__ in the *Amazon EKS*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-addon-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-addon-versions.rst new file mode 100644 index 000000000..1a2d53374 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-addon-versions.rst @@ -0,0 +1,140 @@ +**Example 1: List all the available addons for EKS Cluster** + +The following ``describe-addon-versions`` example list all the available AWS addons. :: + + aws eks describe-addon-versions \ + --query 'sort_by(addons &owner)[].{publisher: publisher, owner: owner, addonName: addonName, type: type}' \ + --output table + +Output:: + + -------------------------------------------------------------------------------------------------------------------- + | DescribeAddonVersions | + +---------------------------------------------+------------------+-----------------------+-------------------------+ + | addonName | owner | publisher | type | + +---------------------------------------------+------------------+-----------------------+-------------------------+ + | vpc-cni | aws | eks | networking | + | snapshot-controller | aws | eks | storage | + | kube-proxy | aws | eks | networking | + | eks-pod-identity-agent | aws | eks | security | + | coredns | aws | eks | networking | + | aws-mountpoint-s3-csi-driver | aws | s3 | storage | + | aws-guardduty-agent | aws | eks | security | + | aws-efs-csi-driver | aws | eks | storage | + | aws-ebs-csi-driver | aws | eks | storage | + | amazon-cloudwatch-observability | aws | eks | observability | + | adot | aws | eks | observability | + | upwind-security_upwind-operator | aws-marketplace | Upwind Security | security | + | upbound_universal-crossplane | aws-marketplace | upbound | infra-management | + | tetrate-io_istio-distro | aws-marketplace | tetrate-io | policy-management | + | teleport_teleport | aws-marketplace | teleport | policy-management | + | stormforge_optimize-live | aws-marketplace | StormForge | cost-management | + | splunk_splunk-otel-collector-chart | aws-marketplace | Splunk | monitoring | + | solo-io_istio-distro | aws-marketplace | Solo.io | service-mesh | + | rafay-systems_rafay-operator | aws-marketplace | rafay-systems | kubernetes-management | + | new-relic_kubernetes-operator | aws-marketplace | New Relic | observability | + | netapp_trident-operator | aws-marketplace | NetApp Inc. | storage | + | leaksignal_leakagent | aws-marketplace | leaksignal | monitoring | + | kubecost_kubecost | aws-marketplace | kubecost | cost-management | + | kong_konnect-ri | aws-marketplace | kong | ingress-service-type | + | kasten_k10 | aws-marketplace | Kasten by Veeam | data-protection | + | haproxy-technologies_kubernetes-ingress-ee | aws-marketplace | HAProxy Technologies | ingress-controller | + | groundcover_agent | aws-marketplace | groundcover | monitoring | + | grafana-labs_kubernetes-monitoring | aws-marketplace | Grafana Labs | monitoring | + | factorhouse_kpow | aws-marketplace | factorhouse | monitoring | + | dynatrace_dynatrace-operator | aws-marketplace | dynatrace | monitoring | + | datree_engine-pro | aws-marketplace | datree | policy-management | + | datadog_operator | aws-marketplace | Datadog | monitoring | + | cribl_cribledge | aws-marketplace | Cribl | observability | + | calyptia_fluent-bit | aws-marketplace | Calyptia Inc | observability | + | accuknox_kubearmor | aws-marketplace | AccuKnox | security | + +---------------------------------------------+------------------+-----------------------+-------------------------+ + +For more information, see `Managing Amazon EKS add-ons - Creating an add-on `__ in the *Amazon EKS User Guide*. + +**Example 2: List all the available addons for specified Kubernetes version supported for EKS** + +The following ``describe-addon-versions`` example list all the available addons for specified Kubernetes version supported for EKS. :: + + aws eks describe-addon-versions \ + --kubernetes-version=1.26 \ + --query 'sort_by(addons &owner)[].{publisher: publisher, owner: owner, addonName: addonName, type: type}' \ + --output table + +Output:: + + -------------------------------------------------------------------------------------------------------------------- + | DescribeAddonVersions | + +---------------------------------------------+------------------+-----------------------+-------------------------+ + | addonName | owner | publisher | type | + +---------------------------------------------+------------------+-----------------------+-------------------------+ + | vpc-cni | aws | eks | networking | + | snapshot-controller | aws | eks | storage | + | kube-proxy | aws | eks | networking | + | eks-pod-identity-agent | aws | eks | security | + | coredns | aws | eks | networking | + | aws-mountpoint-s3-csi-driver | aws | s3 | storage | + | aws-guardduty-agent | aws | eks | security | + | aws-efs-csi-driver | aws | eks | storage | + | aws-ebs-csi-driver | aws | eks | storage | + | amazon-cloudwatch-observability | aws | eks | observability | + | adot | aws | eks | observability | + | upwind-security_upwind-operator | aws-marketplace | Upwind Security | security | + | tetrate-io_istio-distro | aws-marketplace | tetrate-io | policy-management | + | stormforge_optimize-live | aws-marketplace | StormForge | cost-management | + | splunk_splunk-otel-collector-chart | aws-marketplace | Splunk | monitoring | + | solo-io_istio-distro | aws-marketplace | Solo.io | service-mesh | + | rafay-systems_rafay-operator | aws-marketplace | rafay-systems | kubernetes-management | + | new-relic_kubernetes-operator | aws-marketplace | New Relic | observability | + | netapp_trident-operator | aws-marketplace | NetApp Inc. | storage | + | leaksignal_leakagent | aws-marketplace | leaksignal | monitoring | + | kubecost_kubecost | aws-marketplace | kubecost | cost-management | + | kong_konnect-ri | aws-marketplace | kong | ingress-service-type | + | haproxy-technologies_kubernetes-ingress-ee | aws-marketplace | HAProxy Technologies | ingress-controller | + | groundcover_agent | aws-marketplace | groundcover | monitoring | + | grafana-labs_kubernetes-monitoring | aws-marketplace | Grafana Labs | monitoring | + | dynatrace_dynatrace-operator | aws-marketplace | dynatrace | monitoring | + | datadog_operator | aws-marketplace | Datadog | monitoring | + | cribl_cribledge | aws-marketplace | Cribl | observability | + | calyptia_fluent-bit | aws-marketplace | Calyptia Inc | observability | + | accuknox_kubearmor | aws-marketplace | AccuKnox | security | + +---------------------------------------------+------------------+-----------------------+-------------------------+ + +For more information, see `Managing Amazon EKS add-ons - Creating an add-on `__ in the *Amazon EKS User Guide*. + +**Example 3: List all the available vpc-cni addons version for specified Kubernetes version supported for EKS** + +The following ``describe-addon-versions`` example list all the available vpc-cni addons version for specified Kubernetes version supported for EKS. :: + + aws eks describe-addon-versions \ + --kubernetes-version=1.26 \ + --addon-name=vpc-cni \ + --query='addons[].addonVersions[].addonVersion' + +Output:: + + [ + "v1.18.0-eksbuild.1", + "v1.17.1-eksbuild.1", + "v1.16.4-eksbuild.2", + "v1.16.3-eksbuild.2", + "v1.16.2-eksbuild.1", + "v1.16.0-eksbuild.1", + "v1.15.5-eksbuild.1", + "v1.15.4-eksbuild.1", + "v1.15.3-eksbuild.1", + "v1.15.1-eksbuild.1", + "v1.15.0-eksbuild.2", + "v1.14.1-eksbuild.1", + "v1.14.0-eksbuild.3", + "v1.13.4-eksbuild.1", + "v1.13.3-eksbuild.1", + "v1.13.2-eksbuild.1", + "v1.13.0-eksbuild.1", + "v1.12.6-eksbuild.2", + "v1.12.6-eksbuild.1", + "v1.12.5-eksbuild.2", + "v1.12.0-eksbuild.2" + ] + +For more information, see `Managing Amazon EKS add-ons - Creating an add-on `__ in the *Amazon EKS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-addon.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-addon.rst new file mode 100644 index 000000000..12a6cf80c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-addon.rst @@ -0,0 +1,30 @@ +**Describe actively running EKS addon in your Amazon EKS cluster** + +The following ``describe-addon`` example actively running EKS addon in your Amazon EKS cluster. :: + + aws eks describe-addon \ + --cluster-name my-eks-cluster \ + --addon-name vpc-cni + +Output:: + + { + "addon": { + "addonName": "vpc-cni", + "clusterName": "my-eks-cluster", + "status": "ACTIVE", + "addonVersion": "v1.16.4-eksbuild.2", + "health": { + "issues": [] + }, + "addonArn": "arn:aws:eks:us-east-2:111122223333:addon/my-eks-cluster/vpc-cni/0ec71efc-98dd-3203-60b0-4b939b2a5e5f", + "createdAt": "2024-03-14T13:18:45.417000-04:00", + "modifiedAt": "2024-03-14T13:18:49.557000-04:00", + "serviceAccountRoleArn": "arn:aws:iam::111122223333:role/eksctl-my-eks-cluster-addon-vpc-cni-Role1-YfakrqOC1UTm", + "tags": { + "eks-addon-key-3": "value-3", + "eks-addon-key-4": "value-4" + }, + "configurationValues": "resources:\n limits:\n cpu: '100m'\nenv:\n AWS_VPC_K8S_CNI_LOGLEVEL: 'DEBUG'" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-cluster.rst new file mode 100644 index 000000000..4d68e6400 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-cluster.rst @@ -0,0 +1,86 @@ +**Describe actively running EKS addon in your Amazon EKS cluster** + +The following ``describe-cluster`` example actively running EKS addon in your Amazon EKS cluster. :: + + aws eks describe-cluster \ + --name my-eks-cluster + +Output:: + + { + "cluster": { + "name": "my-eks-cluster", + "arn": "arn:aws:eks:us-east-2:111122223333:cluster/my-eks-cluster", + "createdAt": "2024-03-14T11:31:44.348000-04:00", + "version": "1.26", + "endpoint": "https://JSA79429HJDASKJDJ8223829MNDNASW.yl4.us-east-2.eks.amazonaws.com", + "roleArn": "arn:aws:iam::111122223333:role/eksctl-my-eks-cluster-cluster-ServiceRole-zMF6CBakwwbW", + "resourcesVpcConfig": { + "subnetIds": [ + "subnet-0fb75d2d8401716e7", + "subnet-02184492f67a3d0f9", + "subnet-04098063527aab776", + "subnet-0e2907431c9988b72", + "subnet-04ad87f71c6e5ab4d", + "subnet-09d912bb63ef21b9a" + ], + "securityGroupIds": [ + "sg-0c1327f6270afbb36" + ], + "clusterSecurityGroupId": "sg-01c84d09d70f39a7f", + "vpcId": "vpc-0012b8e1cc0abb17d", + "endpointPublicAccess": true, + "endpointPrivateAccess": true, + "publicAccessCidrs": [ + "22.19.18.2/32" + ] + }, + "kubernetesNetworkConfig": { + "serviceIpv4Cidr": "10.100.0.0/16", + "ipFamily": "ipv4" + }, + "logging": { + "clusterLogging": [ + { + "types": [ + "api", + "audit", + "authenticator", + "controllerManager", + "scheduler" + ], + "enabled": true + } + ] + }, + "identity": { + "oidc": { + "issuer": "https://oidc.eks.us-east-2.amazonaws.com/id/JSA79429HJDASKJDJ8223829MNDNASW" + } + }, + "status": "ACTIVE", + "certificateAuthority": { + "data": "CA_DATA_STRING..." + }, + "platformVersion": "eks.14", + "tags": { + "aws:cloudformation:stack-name": "eksctl-my-eks-cluster-cluster", + "alpha.eksctl.io/cluster-name": "my-eks-cluster", + "karpenter.sh/discovery": "my-eks-cluster", + "aws:cloudformation:stack-id": "arn:aws:cloudformation:us-east-2:111122223333:stack/eksctl-my-eks-cluster-cluster/e752ea00-e217-11ee-beae-0a9599c8c7ed", + "auto-delete": "no", + "eksctl.cluster.k8s.io/v1alpha1/cluster-name": "my-eks-cluster", + "EKS-Cluster-Name": "my-eks-cluster", + "alpha.eksctl.io/cluster-oidc-enabled": "true", + "aws:cloudformation:logical-id": "ControlPlane", + "alpha.eksctl.io/eksctl-version": "0.173.0-dev+a7ee89342.2024-03-01T03:40:57Z", + "Name": "eksctl-my-eks-cluster-cluster/ControlPlane" + }, + "health": { + "issues": [] + }, + "accessConfig": { + "authenticationMode": "API_AND_CONFIG_MAP" + } + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-fargate-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-fargate-profile.rst new file mode 100644 index 000000000..2dbb95d85 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-fargate-profile.rst @@ -0,0 +1,43 @@ +**Describe a Fargate profile** + +The following ``describe-fargate-profile`` example describes a Fargate profile. :: + + aws eks describe-fargate-profile \ + --cluster-name my-eks-cluster \ + --fargate-profile-name my-fargate-profile + +Output:: + + { + "fargateProfile": { + "fargateProfileName": "my-fargate-profile", + "fargateProfileArn": "arn:aws:eks:us-east-2:111122223333:fargateprofile/my-eks-cluster/my-fargate-profile/96c766ce-43d2-f9c9-954c-647334391198", + "clusterName": "my-eks-cluster", + "createdAt": "2024-04-11T10:42:52.486000-04:00", + "podExecutionRoleArn": "arn:aws:iam::111122223333:role/eksctl-my-eks-cluster-farga-FargatePodExecutionRole-1htfAaJdJUEO", + "subnets": [ + "subnet-09d912bb63ef21b9a", + "subnet-04ad87f71c6e5ab4d", + "subnet-0e2907431c9988b72" + ], + "selectors": [ + { + "namespace": "prod*", + "labels": { + "labelname*?": "*value1" + } + }, + { + "namespace": "*dev*", + "labels": { + "labelname*?": "*value*" + } + } + ], + "status": "ACTIVE", + "tags": { + "eks-fargate-profile-key-2": "value-2", + "eks-fargate-profile-key-1": "value-1" + } + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-identity-provider-config.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-identity-provider-config.rst new file mode 100644 index 000000000..28a90ea41 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-identity-provider-config.rst @@ -0,0 +1,35 @@ +**Describe an identity provider configuration associated to your Amazon EKS Cluster** + +The following ``describe-identity-provider-config`` example describes an identity provider configuration associated to your Amazon EKS Cluster. :: + + aws eks describe-identity-provider-config \ + --cluster-name my-eks-cluster \ + --identity-provider-config type=oidc,name=my-identity-provider + +Output:: + + { + "identityProviderConfig": { + "oidc": { + "identityProviderConfigName": "my-identity-provider", + "identityProviderConfigArn": "arn:aws:eks:us-east-2:111122223333:identityproviderconfig/my-eks-cluster/oidc/my-identity-provider/8ac76722-78e4-cec1-ed76-d49eea058622", + "clusterName": "my-eks-cluster", + "issuerUrl": "https://oidc.eks.us-east-2.amazonaws.com/id/38D6A4619A0A69E342B113ED7F1A7652", + "clientId": "kubernetes", + "usernameClaim": "email", + "usernamePrefix": "my-username-prefix", + "groupsClaim": "my-claim", + "groupsPrefix": "my-groups-prefix", + "requiredClaims": { + "Claim1": "value1", + "Claim2": "value2" + }, + "tags": { + "env": "dev" + }, + "status": "ACTIVE" + } + } + } + +For more information, see `Authenticate users for your cluster from an OpenID Connect identity provider `__ in the *Amazon EKS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-insight.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-insight.rst new file mode 100644 index 000000000..08927b6d2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-insight.rst @@ -0,0 +1,36 @@ +**To get the details of an insight for an EKS cluster using its ID** + +The following ``describe-insight`` example returns the details about the insight specified using the cluster name and insight ID. :: + + aws eks describe-insight \ + --cluster-name eks-customer \ + --id 38ea7a64-a14f-4e0e-95c7-8dbcab3c3623 + +Output:: + + { + "insight": { + "id": "38ea7a64-a14f-4e0e-95c7-8dbcab3c3623", + "name": "Kubelet version skew", + "category": "UPGRADE_READINESS", + "kubernetesVersion": "1.33", + "lastRefreshTime": "2025-05-24T11:22:50-05:00", + "lastTransitionTime": "2025-05-24T11:22:50-05:00", + "description": "Checks for kubelet versions of worker nodes in the cluster to see if upgrade would cause noncompliance with supported Kubernetes kubelet version skew policy.", + "insightStatus": { + "status": "PASSING", + "reason": "Node kubelet versions match the cluster control plane version." + }, + "recommendation": "Upgrade your worker nodes to match the Kubernetes version of your cluster control plane.", + "additionalInfo": { + "Kubelet version skew policy": "https://kubernetes.io/releases/version-skew-policy/#kubelet", + "Updating a managed node group": "https://docs.aws.amazon.com/eks/latest/userguide/update-managed-node-group.html" + }, + "resources": [], + "categorySpecificSummary": { + "deprecationDetails": [] + } + } + } + +For more information, see `View cluster insights `__ in the *Amazon EKS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-nodegroup.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-nodegroup.rst new file mode 100644 index 000000000..857fb6bb8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-nodegroup.rst @@ -0,0 +1,54 @@ +**Describe a managed node group for an Amazon EKS cluster** + +The following ``describe-nodegroup`` example describes a managed node group for an Amazon EKS cluster. :: + + aws eks describe-nodegroup \ + --cluster-name my-eks-cluster \ + --nodegroup-name my-eks-nodegroup + +Output:: + + { + "nodegroup": { + "nodegroupName": "my-eks-nodegroup", + "nodegroupArn": "arn:aws:eks:us-east-2:111122223333:nodegroup/my-eks-cluster/my-eks-nodegroup/a8c75f2f-df78-a72f-4063-4b69af3de5b1", + "clusterName": "my-eks-cluster", + "version": "1.26", + "releaseVersion": "1.26.12-20240329", + "createdAt": "2024-04-08T11:42:10.555000-04:00", + "modifiedAt": "2024-04-08T11:44:12.402000-04:00", + "status": "ACTIVE", + "capacityType": "ON_DEMAND", + "scalingConfig": { + "minSize": 1, + "maxSize": 3, + "desiredSize": 1 + }, + "instanceTypes": [ + "t3.medium" + ], + "subnets": [ + "subnet-0e2907431c9988b72", + "subnet-04ad87f71c6e5ab4d", + "subnet-09d912bb63ef21b9a" + ], + "amiType": "AL2_x86_64", + "nodeRole": "arn:aws:iam::111122223333:role/role-name", + "labels": {}, + "resources": { + "autoScalingGroups": [ + { + "name": "eks-my-eks-nodegroup-a8c75f2f-df78-a72f-4063-4b69af3de5b1" + } + ] + }, + "diskSize": 20, + "health": { + "issues": [] + }, + "updateConfig": { + "maxUnavailable": 1 + }, + "tags": {} + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-pod-identity-association.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-pod-identity-association.rst new file mode 100644 index 000000000..f5bea57e3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-pod-identity-association.rst @@ -0,0 +1,28 @@ +**To provide the details about Pod Identity association** + +The following ``describe-pod-identity-association`` example describes a Pod Identity association in the EKS cluster. :: + + aws eks describe-pod-identity-association \ + --cluster-name eks-customer \ + --association-id a-9njjin9gfghecgocd + +Output:: + + { + "association": { + "clusterName": "eks-customer", + "namespace": "default", + "serviceAccount": "default", + "roleArn": "arn:aws:iam::111122223333:role/my-role", + "associationArn": "arn:aws:eks:us-west-2:111122223333:podidentityassociation/eks-customer/a-9njjin9gfghecgocd", + "associationId": "a-9njjin9gfghecgocd", + "tags": { + "Key2": "value2", + "Key1": "value1" + }, + "createdAt": "2025-05-24T19:52:14.135000-05:00", + "modifiedAt": "2025-05-24T19:52:14.135000-05:00" + } + } + +For more information, see `Learn how EKS Pod Identity grants pods access to AWS services `__ in the *Amazon EKS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-update.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-update.rst new file mode 100644 index 000000000..d351c9535 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/describe-update.rst @@ -0,0 +1,91 @@ +**Example 1: To describe an update for a cluster** + +The following ``describe-update`` example describes an update for a cluster named. :: + + aws eks describe-update \ + --name my-eks-cluster \ + --update-id 10bddb13-a71b-425a-b0a6-71cd03e59161 + +Output:: + + { + "update": { + "id": "10bddb13-a71b-425a-b0a6-71cd03e59161", + "status": "Successful", + "type": "EndpointAccessUpdate", + "params": [ + { + "type": "EndpointPublicAccess", + "value": "false" + }, + { + "type": "EndpointPrivateAccess", + "value": "true" + } + ], + "createdAt": "2024-03-14T10:01:26.297000-04:00", + "errors": [] + } + } + +For more information, see `Updating an Amazon EKS cluster Kubernetes version `__ in the *Amazon EKS User Guide*. + +**Example 2: To describe an update for a cluster** + +The following ``describe-update`` example describes an update for a cluster named. :: + + aws eks describe-update \ + --name my-eks-cluster \ + --update-id e4994991-4c0f-475a-a040-427e6da52966 + +Output:: + + { + "update": { + "id": "e4994991-4c0f-475a-a040-427e6da52966", + "status": "Successful", + "type": "AssociateEncryptionConfig", + "params": [ + { + "type": "EncryptionConfig", + "value": "[{\"resources\":[\"secrets\"],\"provider\":{\"keyArn\":\"arn:aws:kms:region-code:account:key/key\"}}]" + } + ], + "createdAt": "2024-03-14T11:01:26.297000-04:00", + "errors": [] + } + } + +For more information, see `Updating an Amazon EKS cluster Kubernetes version `__ in the *Amazon EKS User Guide*. + +**Example 3: To describe an update for a cluster** + +The following ``describe-update`` example describes an update for a cluster named. :: + + aws eks describe-update \ + --name my-eks-cluster \ + --update-id b5f0ba18-9a87-4450-b5a0-825e6e84496f + +Output:: + + { + "update": { + "id": "b5f0ba18-9a87-4450-b5a0-825e6e84496f", + "status": "Successful", + "type": "VersionUpdate", + "params": [ + { + "type": "Version", + "value": "1.29" + }, + { + "type": "PlatformVersion", + "value": "eks.1" + } + ], + "createdAt": "2024-03-14T12:05:26.297000-04:00", + "errors": [] + } + } + +For more information, see `Updating an Amazon EKS cluster Kubernetes version `__ in the *Amazon EKS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/disassociate-access-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/disassociate-access-policy.rst new file mode 100644 index 000000000..f7f39ebfc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/disassociate-access-policy.rst @@ -0,0 +1,12 @@ +**To disassociate the access policy from an access entry** + +The following ``disassociate-access-policy`` removes the access policy associated with the access entry. :: + + aws eks disassociate-access-policy \ + --cluster-name eks-customer \ + --principal-arn arn:aws:iam::111122223333:role/Admin \ + --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSEditPolicy + +This command produces no output. + +For more information, see `Associate access policies with access entries `__ in the *Amazon EKS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/disassociate-identity-provider-config.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/disassociate-identity-provider-config.rst new file mode 100644 index 000000000..61ab509db --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/disassociate-identity-provider-config.rst @@ -0,0 +1,27 @@ +**Disassociate identity provider to your Amazon EKS Cluster** + +The following ``disassociate-identity-provider-config`` example disassociates an identity provider to your Amazon EKS Cluster. :: + + aws eks disassociate-identity-provider-config \ + --cluster-name my-eks-cluster \ + --identity-provider-config 'type=oidc,name=my-identity-provider' + +Output:: + + { + "update": { + "id": "5f78d14e-c57b-4857-a3e4-cf664ae20949", + "status": "InProgress", + "type": "DisassociateIdentityProviderConfig", + "params": [ + { + "type": "IdentityProviderConfig", + "value": "[]" + } + ], + "createdAt": "2024-04-11T13:53:43.314000-04:00", + "errors": [] + } + } + +For more information, see `Authenticate users for your cluster from an OpenID Connect identity provider - Disassociate an OIDC identity provider from your cluster `__ in the *Amazon EKS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/get-token.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/get-token.rst new file mode 100644 index 000000000..f9c39fced --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/get-token.rst @@ -0,0 +1,38 @@ +**Example 1: Get an authentication token for an Amazon EKS Cluster named `my-eks-cluster`** + +The following ``get-token`` example gets an authentication token for an Amazon EKS Cluster named `my-eks-cluster`. :: + + aws eks get-token \ + --cluster-name my-eks-cluster + +Output:: + + { + "kind": "ExecCredential", + "apiVersion": "client.authentication.k8s.io/v1beta1", + "spec": {}, + "status": { + "expirationTimestamp": "2024-04-11T20:59:56Z", + "token": "k8s-aws-v1.EXAMPLE_TOKEN_DATA_STRING..." + } + } + +**Example 2: Gets an authentication token for an Amazon EKS Cluster named `my-eks-cluster` by assuming this roleARN for credentials when signing the token** + +The following ``get-token`` example gets an authentication token for an Amazon EKS Cluster named `my-eks-cluster` by assuming this roleARN for credentials when signing the token. :: + + aws eks get-token \ + --cluster-name my-eks-cluster \ + --role-arn arn:aws:iam::111122223333:role/eksctl-EKS-Linux-Cluster-v1-24-cluster-ServiceRole-j1k7AfTIQtnM + +Output:: + + { + "kind": "ExecCredential", + "apiVersion": "client.authentication.k8s.io/v1beta1", + "spec": {}, + "status": { + "expirationTimestamp": "2024-04-11T21:05:26Z", + "token": "k8s-aws-v1.EXAMPLE_TOKEN_DATA_STRING..." + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-access-entries.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-access-entries.rst new file mode 100644 index 000000000..0c1309932 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-access-entries.rst @@ -0,0 +1,19 @@ +**To list the access entries for an EKS cluster** + +The following ``list-access-entries`` returns the list of access entries associated with the EKS cluster ``eks-customer``. :: + + aws eks list-access-entries \ + --cluster-name eks-customer + +Output:: + + { + "accessEntries": [ + "arn:aws:iam::111122223333:role/Admin", + "arn:aws:iam::111122223333:role/admin-test-ip", + "arn:aws:iam::111122223333:role/assume-worker-node-role", + "arn:aws:iam::111122223333:user/eks-admin-user" + ] + } + +For more information, see `Grant IAM users access to Kubernetes with EKS access entries `__ in the *Amazon EKS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-access-policies.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-access-policies.rst new file mode 100644 index 000000000..9bb490f64 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-access-policies.rst @@ -0,0 +1,90 @@ +**To list all available access policies** + +This ``list-access-policies`` example returns the list of all available access policies. :: + + aws eks list-access-policies + +Output:: + + { + "accessPolicies": [ + { + "name": "AmazonEKSAdminPolicy", + "arn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSAdminPolicy" + }, + { + "name": "AmazonEKSAdminViewPolicy", + "arn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSAdminViewPolicy" + }, + { + "name": "AmazonEKSAutoNodePolicy", + "arn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSAutoNodePolicy" + }, + { + "name": "AmazonEKSBlockStorageClusterPolicy", + "arn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSBlockStorageClusterPolicy" + }, + { + "name": "AmazonEKSBlockStoragePolicy", + "arn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSBlockStoragePolicy" + }, + { + "name": "AmazonEKSClusterAdminPolicy", + "arn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy" + }, + { + "name": "AmazonEKSComputeClusterPolicy", + "arn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSComputeClusterPolicy" + }, + { + "name": "AmazonEKSComputePolicy", + "arn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSComputePolicy" + }, + { + "name": "AmazonEKSEditPolicy", + "arn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSEditPolicy" + }, + { + "name": "AmazonEKSHybridPolicy", + "arn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSHybridPolicy" + }, + { + "name": "AmazonEKSLoadBalancingClusterPolicy", + "arn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSLoadBalancingClusterPolicy" + }, + { + "name": "AmazonEKSLoadBalancingPolicy", + "arn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSLoadBalancingPolicy" + }, + { + "name": "AmazonEKSNetworkingClusterPolicy", + "arn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSNetworkingClusterPolicy" + }, + { + "name": "AmazonEKSNetworkingPolicy", + "arn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSNetworkingPolicy" + }, + { + "name": "AmazonEKSViewPolicy", + "arn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSViewPolicy" + }, + { + "name": "AmazonEMRJobPolicy", + "arn": "arn:aws:eks::aws:cluster-access-policy/AmazonEMRJobPolicy" + }, + { + "name": "AmazonSagemakerHyperpodClusterPolicy", + "arn": "arn:aws:eks::aws:cluster-access-policy/AmazonSagemakerHyperpodClusterPolicy" + }, + { + "name": "AmazonSagemakerHyperpodControllerPolicy", + "arn": "arn:aws:eks::aws:cluster-access-policy/AmazonSagemakerHyperpodControllerPolicy" + }, + { + "name": "AmazonSagemakerHyperpodSystemNamespacePolicy", + "arn": "arn:aws:eks::aws:cluster-access-policy/AmazonSagemakerHyperpodSystemNamespacePolicy" + } + ] + } + +For more information, see `Associate access policies with access entries `__ in the *Amazon EKS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-addons.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-addons.rst new file mode 100644 index 000000000..e796be55d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-addons.rst @@ -0,0 +1,15 @@ +**List all the installed add-ons in your Amazon EKS cluster named `my-eks-cluster`** + +The following ``list-addons`` example lists all the installed add-ons in your Amazon EKS cluster named `my-eks-cluster`. :: + + aws eks list-addons \ + --cluster-name my-eks-cluster + +Output:: + + { + "addons": [ + "kube-proxy", + "vpc-cni" + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-associated-access-policies.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-associated-access-policies.rst new file mode 100644 index 000000000..6e159be52 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-associated-access-policies.rst @@ -0,0 +1,27 @@ +**To list the access policies associated with an access entry** + +The following ``list-associated-access-policies`` example returns the list of access policies associated with an access entry in the EKS cluster. :: + + aws eks list-associated-access-policies \ + --cluster-name eks-customer \ + --principal-arn arn:aws:iam::111122223333:role/Admin + +Output:: + + { + "associatedAccessPolicies": [ + { + "policyArn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSAdminPolicy", + "accessScope": { + "type": "cluster", + "namespaces": [] + }, + "associatedAt": "2025-05-24T17:26:22.935000-05:00", + "modifiedAt": "2025-05-24T17:26:22.935000-05:00" + } + ], + "clusterName": "eks-customer", + "principalArn": "arn:aws:iam::111122223333:role/Admin" + } + +For more information, see `Grant IAM users access to Kubernetes with EKS access entries `__ in the *Amazon EKS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-clusters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-clusters.rst new file mode 100644 index 000000000..d2fc948d2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-clusters.rst @@ -0,0 +1,16 @@ +**To list all the installed add-ons in your Amazon EKS cluster named `my-eks-cluster`** + +The following ``list-clusters`` example lists all the installed add-ons in your Amazon EKS cluster named `my-eks-cluster`. :: + + aws eks list-clusters + +Output:: + + { + "clusters": [ + "prod", + "qa", + "stage", + "my-eks-cluster" + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-fargate-profiles.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-fargate-profiles.rst new file mode 100644 index 000000000..904641fda --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-fargate-profiles.rst @@ -0,0 +1,14 @@ +**To list all the fargate profiles in your Amazon EKS cluster named `my-eks-cluster`** + +The following ``list-fargate-profiles`` example lists all the fargate profiles in your Amazon EKS cluster named `my-eks-cluster`. :: + + aws eks list-fargate-profiles \ + --cluster-name my-eks-cluster + +Output:: + + { + "fargateProfileNames": [ + "my-fargate-profile" + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-identity-provider-configs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-identity-provider-configs.rst new file mode 100644 index 000000000..b2b164728 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-identity-provider-configs.rst @@ -0,0 +1,19 @@ +**List identity providers associated to an Amazon EKS Cluster** + +The following ``list-identity-provider-configs`` example lists identity provider associated to an Amazon EKS Cluster. :: + + aws eks list-identity-provider-configs \ + --cluster-name my-eks-cluster + +Output:: + + { + "identityProviderConfigs": [ + { + "type": "oidc", + "name": "my-identity-provider" + } + ] + } + +For more information, see `Authenticate users for your cluster from an OpenID Connect identity provider `__ in the *Amazon EKS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-insights.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-insights.rst new file mode 100644 index 000000000..31d90696c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-insights.rst @@ -0,0 +1,67 @@ +**To list all insights for the specified cluster** + +The following ``list-insights`` example returns the list of all insights checked against the specified cluster. :: + + aws eks list-insights \ + --cluster-name eks-customer + +Output:: + + { + "insights": [ + { + "id": "38ea7a64-a14f-4e0e-95c7-8dbcab3c3616", + "name": "Kubelet version skew", + "category": "UPGRADE_READINESS", + "kubernetesVersion": "1.33", + "lastRefreshTime": "2025-05-24T11:22:50-05:00", + "lastTransitionTime": "2025-05-24T11:22:50-05:00", + "description": "Checks for kubelet versions of worker nodes in the cluster to see if upgrade would cause noncompliance with supported Kubernetes kubelet version skew policy.", + "insightStatus": { + "status": "PASSING", + "reason": "Node kubelet versions match the cluster control plane version." + } + }, + { + "id": "9cd91472-f99c-45a9-b7d7-54d4900dee23", + "name": "EKS add-on version compatibility", + "category": "UPGRADE_READINESS", + "kubernetesVersion": "1.33", + "lastRefreshTime": "2025-05-24T11:22:59-05:00", + "lastTransitionTime": "2025-05-24T11:22:50-05:00", + "description": "Checks version of installed EKS add-ons to ensure they are compatible with the next version of Kubernetes. ", + "insightStatus": { + "status": "PASSING", + "reason": "All installed EKS add-on versions are compatible with next Kubernetes version." + } + }, + { + "id": "0deb269d-b1e1-458c-a2b4-7a57f940c875", + "name": "Cluster health issues", + "category": "UPGRADE_READINESS", + "kubernetesVersion": "1.33", + "lastRefreshTime": "2025-05-24T11:22:59-05:00", + "lastTransitionTime": "2025-05-24T11:22:50-05:00", + "description": "Checks for any cluster health issues that prevent successful upgrade to the next Kubernetes version on EKS.", + "insightStatus": { + "status": "PASSING", + "reason": "No cluster health issues detected." + } + }, + { + "id": "214fa274-344f-420b-812a-5049ce72c9ww", + "name": "kube-proxy version skew", + "category": "UPGRADE_READINESS", + "kubernetesVersion": "1.33", + "lastRefreshTime": "2025-05-24T11:22:50-05:00", + "lastTransitionTime": "2025-05-24T11:22:50-05:00", + "description": "Checks version of kube-proxy in cluster to see if upgrade would cause noncompliance with supported Kubernetes kube-proxy version skew policy.", + "insightStatus": { + "status": "PASSING", + "reason": "kube-proxy versions match the cluster control plane version." + } + } + ] + } + +For more information, see `View cluster insights `__ in the *Amazon EKS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-nodegroups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-nodegroups.rst new file mode 100644 index 000000000..ee39834d9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-nodegroups.rst @@ -0,0 +1,15 @@ +**List all the node groups in an Amazon EKS cluster** + +The following ``list-nodegroups`` example list all the node groups in an Amazon EKS cluster. :: + + aws eks list-nodegroups \ + --cluster-name my-eks-cluster + +Output:: + + { + "nodegroups": [ + "my-eks-managed-node-group", + "my-eks-nodegroup" + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-pod-identity-associations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-pod-identity-associations.rst new file mode 100644 index 000000000..5e7c34150 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-pod-identity-associations.rst @@ -0,0 +1,61 @@ +**Example 1: To list the Pod Identity associations in an EKS cluster** + +The following ``list-pod-identity-associations`` returns the list of Pod Identity associations associated with the EKS cluster named ``eks-customer`` in all namespaces and service accounts. :: + + aws eks list-pod-identity-associations \ + --cluster-name eks-customer + +Output:: + + { + "associations": [ + { + "clusterName": "eks-customer", + "namespace": "default", + "serviceAccount": "default", + "associationArn": "arn:aws:eks:us-west-2:111122223333:podidentityassociation/eks-customer/a-9njjin9gfghecgocd", + "associationId": "a-9njjin9gfghecgocd" + }, + { + "clusterName": "eks-customer", + "namespace": "kube-system", + "serviceAccount": "eks-customer", + "associationArn": "arn:aws:eks:us-west-2:111122223333:podidentityassociation/eks-customer/a-dvtacahdvjn01ffbc", + "associationId": "a-dvtacahdvjn01ffbc" + }, + { + "clusterName": "eks-customer", + "namespace": "kube-system", + "serviceAccount": "coredns", + "associationArn": "arn:aws:eks:us-west-2:111122223333:podidentityassociation/eks-customer/a-yrpsdroc4ei7k6xps", + "associationId": "a-yrpsdroc4ei7k6xps" + } + ] + } + +For more information, see `Learn how EKS Pod Identity grants pods access to AWS services `__ in the *Amazon EKS User Guide*. + +**Example 2: To list the Pod Identity associations in an EKS cluster based on namespace and service account** + +The following ``list-pod-identity-associations`` returns the list of Pod Identity associations in the EKS cluster based on namespace and service account. :: + + aws eks list-pod-identity-associations \ + --cluster-name eks-customer \ + --namespace kube-system \ + --service-account eks-customer + +Output:: + + { + "associations": [ + { + "clusterName": "eks-customer", + "namespace": "kube-system", + "serviceAccount": "eks-customer", + "associationArn": "arn:aws:eks:us-west-2:111122223333:podidentityassociation/eks-customer/a-dvtacahdvjn01ffbc", + "associationId": "a-dvtacahdvjn01ffbc" + } + ] + } + +For more information, see `Learn how EKS Pod Identity grants pods access to AWS services `__ in the *Amazon EKS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-tags-for-resource.rst new file mode 100644 index 000000000..40ec64071 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-tags-for-resource.rst @@ -0,0 +1,102 @@ +**Example 1: To list all the tags for an Amazon EKS Cluster ARN** + +The following ``list-tags-for-resource`` example lists all the tags for an Amazon EKS Cluster ARN. :: + + aws eks list-tags-for-resource \ + --resource-arn arn:aws:eks:us-east-2:111122223333:cluster/my-eks-cluster + +Output:: + + { + "tags": { + "aws:cloudformation:stack-name": "eksctl-my-eks-cluster-cluster", + "alpha.eksctl.io/cluster-name": "my-eks-cluster", + "karpenter.sh/discovery": "my-eks-cluster", + "aws:cloudformation:stack-id": "arn:aws:cloudformation:us-east-2:111122223333:stack/eksctl-my-eks-cluster-cluster/e752ea00-e217-11ee-beae-0a9599c8c7ed", + "auto-delete": "no", + "eksctl.cluster.k8s.io/v1alpha1/cluster-name": "my-eks-cluster", + "EKS-Cluster-Name": "my-eks-cluster", + "alpha.eksctl.io/cluster-oidc-enabled": "true", + "aws:cloudformation:logical-id": "ControlPlane", + "alpha.eksctl.io/eksctl-version": "0.173.0-dev+a7ee89342.2024-03-01T03:40:57Z", + "Name": "eksctl-my-eks-cluster-cluster/ControlPlane" + } + } + +**Example 2: To list all the tags for an Amazon EKS Node group ARN** + +The following ``list-tags-for-resource`` example lists all the tags for an Amazon EKS Node group ARN. :: + + aws eks list-tags-for-resource \ + --resource-arn arn:aws:eks:us-east-2:111122223333:nodegroup/my-eks-cluster/my-eks-managed-node-group/60c71ed2-2cfb-020f-a5f4-ad32477f198c + +Output:: + + { + "tags": { + "aws:cloudformation:stack-name": "eksctl-my-eks-cluster-nodegroup-my-eks-managed-node-group", + "aws:cloudformation:stack-id": "arn:aws:cloudformation:us-east-2:111122223333:stack/eksctl-my-eks-cluster-nodegroup-my-eks-managed-node-group/eaa20310-e219-11ee-b851-0ab9ad8228ff", + "eksctl.cluster.k8s.io/v1alpha1/cluster-name": "my-eks-cluster", + "EKS-Cluster-Name": "my-eks-cluster", + "alpha.eksctl.io/nodegroup-type": "managed", + "NodeGroup Name 1": "my-eks-managed-node-group", + "k8s.io/cluster-autoscaler/enabled": "true", + "nodegroup-role": "worker", + "alpha.eksctl.io/cluster-name": "my-eks-cluster", + "alpha.eksctl.io/nodegroup-name": "my-eks-managed-node-group", + "karpenter.sh/discovery": "my-eks-cluster", + "NodeGroup Name 2": "AmazonLinux-Linux-Managed-NG-v1-26-v1", + "auto-delete": "no", + "k8s.io/cluster-autoscaler/my-eks-cluster": "owned", + "aws:cloudformation:logical-id": "ManagedNodeGroup", + "alpha.eksctl.io/eksctl-version": "0.173.0-dev+a7ee89342.2024-03-01T03:40:57Z" + } + } + +**Example 3: To list all the tags on an Amazon EKS Fargate profil ARNe** + +The following ``list-tags-for-resource`` example lists all the tags for an Amazon EKS Fargate profile ARN. :: + + aws eks list-tags-for-resource \ + --resource-arn arn:aws:eks:us-east-2:111122223333:fargateprofile/my-eks-cluster/my-fargate-profile/d6c76780-e541-0725-c816-36754cab734b + +Output:: + + { + "tags": { + "eks-fargate-profile-key-2": "value-2", + "eks-fargate-profile-key-1": "value-1" + } + } + +**Example 4: To list all the tags for an Amazon EKS Add-on ARN** + +The following ``list-tags-for-resource`` example lists all the tags for an Amazon EKS Add-on ARN. :: + + aws eks list-tags-for-resource \ + --resource-arn arn:aws:eks:us-east-2:111122223333:addon/my-eks-cluster/vpc-cni/0ec71efc-98dd-3203-60b0-4b939b2a5e5f + +Output:: + + { + "tags": { + "eks-addon-key-2": "value-2", + "eks-addon-key-1": "value-1" + } + } + +**Example 5: To list all the tags for an Amazon EKS OIDC identity provider ARN** + +The following ``list-tags-for-resource`` example lists all the tags for an Amazon EKS OIDC identity provider ARN. :: + + aws eks list-tags-for-resource \ + --resource-arn arn:aws:eks:us-east-2:111122223333:identityproviderconfig/my-eks-cluster/oidc/my-identity-provider/8ac76722-78e4-cec1-ed76-d49eea058622 + +Output:: + + { + "tags": { + "my-identity-provider": "test" + } + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-update.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-update.rst new file mode 100644 index 000000000..ced27ee83 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-update.rst @@ -0,0 +1,49 @@ +**Example 1: To lists the updates associated with an Amazon EKS Cluster name** + +The following ``list-updates`` example lists all the update IDs for an Amazon EKS Cluster name. :: + + aws eks list-updates \ + --name my-eks-cluster + +Output:: + + { + "updateIds": [ + "5f78d14e-c57b-4857-a3e4-cf664ae20949", + "760e5a3f-adad-48c7-88d3-7ac283c09c26", + "cd4ec863-bc55-47d5-a377-3971502f529b", + "f12657ce-e869-4f17-b158-a82ab8b7d937" + ] + } + +**Example 2: To list all the update IDs for an Amazon EKS Node group** + +The following ``list-updates`` example lists all the update IDs for an Amazon EKS Node group. :: + + aws eks list-updates \ + --name my-eks-cluster \ + --nodegroup-name my-eks-managed-node-group + +Output:: + + { + "updateIds": [ + "8c6c1bef-61fe-42ac-a242-89412387b8e7" + ] + } + +**Example 3: To list all the update IDs on an Amazon EKS Add-one** + +The following ``list-updates`` example lists all the update IDs for an Amazon EKS Add-on. :: + + aws eks list-updates \ + --name my-eks-cluster \ + --addon-name vpc-cni + +Output:: + + { + "updateIds": [ + "9cdba8d4-79fb-3c83-afe8-00b508d33268" + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-updates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-updates.rst new file mode 100644 index 000000000..8d281603f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/list-updates.rst @@ -0,0 +1,15 @@ +**To list the updates for a cluster** + +This example command lists the current updates for a cluster named ``example`` in your default region. + +Command:: + + aws eks list-updates --name example + +Output:: + + { + "updateIds": [ + "10bddb13-a71b-425a-b0a6-71cd03e59161" + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/register-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/register-cluster.rst new file mode 100644 index 000000000..3b1797004 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/register-cluster.rst @@ -0,0 +1,57 @@ +**Example 1: Register an external EKS_ANYWHERE Kubernetes cluster to Amazon EKS** + +The following ``register-cluster`` example registers an external EKS_ANYWHERE Kubernetes cluster to Amazon EKS. :: + + aws eks register-cluster \ + --name my-eks-anywhere-cluster \ + --connector-config 'roleArn=arn:aws:iam::111122223333:role/AmazonEKSConnectorAgentRole,provider=EKS_ANYWHERE' + +Output:: + + { + "cluster": { + "name": "my-eks-anywhere-cluster", + "arn": "arn:aws:eks:us-east-2:111122223333:cluster/my-eks-anywhere-cluster", + "createdAt": "2024-04-12T12:38:37.561000-04:00", + "status": "PENDING", + "tags": {}, + "connectorConfig": { + "activationId": "xxxxxxxxACTIVATION_IDxxxxxxxx", + "activationCode": "xxxxxxxxACTIVATION_CODExxxxxxxx", + "activationExpiry": "2024-04-15T12:38:37.082000-04:00", + "provider": "EKS_ANYWHERE", + "roleArn": "arn:aws:iam::111122223333:role/AmazonEKSConnectorAgentRole" + } + } + } + +For more information, see `Connecting an external cluster `__ in the *Amazon EKS User Guide*. + +**Example 2: Register any external Kubernetes cluster to Amazon EKS** + +The following ``register-cluster`` example registers an external EKS_ANYWHERE Kubernetes cluster to Amazon EKS. :: + + aws eks register-cluster \ + --name my-eks-anywhere-cluster \ + --connector-config 'roleArn=arn:aws:iam::111122223333:role/AmazonEKSConnectorAgentRole,provider=OTHER' + +Output:: + + { + "cluster": { + "name": "my-onprem-k8s-cluster", + "arn": "arn:aws:eks:us-east-2:111122223333:cluster/my-onprem-k8s-cluster", + "createdAt": "2024-04-12T12:42:10.861000-04:00", + "status": "PENDING", + "tags": {}, + "connectorConfig": { + "activationId": "xxxxxxxxACTIVATION_IDxxxxxxxx", + "activationCode": "xxxxxxxxACTIVATION_CODExxxxxxxx", + "activationExpiry": "2024-04-15T12:42:10.339000-04:00", + "provider": "OTHER", + "roleArn": "arn:aws:iam::111122223333:role/AmazonEKSConnectorAgentRole" + } + } + } + +For more information, see `Connecting an external cluster `__ in the *Amazon EKS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/tag-resource.rst new file mode 100644 index 000000000..e540e3ec1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/tag-resource.rst @@ -0,0 +1,19 @@ +**Example 1: To add the specified tags to an Amazon EKS Cluster** + +The following ``tag-resource`` example adds the specified tags to an Amazon EKS Cluster. :: + + aws eks tag-resource \ + --resource-arn arn:aws:eks:us-east-2:111122223333:cluster/my-eks-cluster \ + --tag 'my-eks-cluster-test-1=test-value-1,my-eks-cluster-dev-1=dev-value-2' + +This command produces no output. + +**Example 2: To add the specified tags to an Amazon EKS Node group** + +The following ``tag-resource`` example adds the specified tags to an Amazon EKS Node group. :: + + aws eks tag-resource \ + --resource-arn arn:aws:eks:us-east-2:111122223333:nodegroup/my-eks-cluster/my-eks-managed-node-group/60c71ed2-2cfb-020f-a5f4-ad32477f198c \ + --tag 'my-eks-nodegroup-test-1=test-value-1,my-eks-nodegroup-dev-1=dev-value-2' + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/untag-resource.rst new file mode 100644 index 000000000..00113f28e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/untag-resource.rst @@ -0,0 +1,19 @@ +**Example 1: To deletes the specified tags from an Amazon EKS Cluster** + +The following ``untag-resource`` example deletes the specified tags from an Amazon EKS Cluster. :: + + aws eks untag-resource \ + --resource-arn arn:aws:eks:us-east-2:111122223333:cluster/my-eks-cluster \ + --tag-keys "my-eks-cluster-test-1" "my-eks-cluster-dev-1" + +This command produces no output. + +**Example 2: To deletes the specified tags from an Amazon EKS Node group** + +The following ``untag-resource`` example deletes the specified tags from an Amazon EKS Node group. :: + + aws eks untag-resource \ + --resource-arn arn:aws:eks:us-east-2:111122223333:nodegroup/my-eks-cluster/my-eks-managed-node-group/60c71ed2-2cfb-020f-a5f4-ad32477f198c \ + --tag-keys "my-eks-nodegroup-test-1" "my-eks-nodegroup-dev-1" + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-access-entry.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-access-entry.rst new file mode 100644 index 000000000..ad7de2fe2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-access-entry.rst @@ -0,0 +1,28 @@ +**To update an access entry for an EKS cluster** + +The following ``update-access-entry`` updates an access entry for the EKS cluster by adding the Kubernetes group ``tester``. :: + + aws eks update-access-entry \ + --cluster-name eks-customer \ + --principal-arn arn:aws:iam::111122223333:role/Admin \ + --kubernetes-groups tester + +Output:: + + { + "accessEntry": { + "clusterName": "eks-customer", + "principalArn": "arn:aws:iam::111122223333:role/Admin", + "kubernetesGroups": [ + "tester" + ], + "accessEntryArn": "arn:aws:eks:us-west-2:111122223333:access-entry/eks-customer/role/111122223333/Admin/d2cb8183-d6ec-b82a-d967-eca21902a4b4", + "createdAt": "2025-05-24T11:02:04.432000-05:00", + "modifiedAt": "2025-05-24T17:08:01.608000-05:00", + "tags": {}, + "username": "arn:aws:sts::111122223333:assumed-role/Admin/{{SessionName}}", + "type": "STANDARD" + } + } + +For more information, see `Update access entries `__ in the *Amazon EKS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-addon.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-addon.rst new file mode 100644 index 000000000..a940552d5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-addon.rst @@ -0,0 +1,220 @@ +**Example 1. To update an Amazon EKS add-on with service account role ARN** + +The following ``update-addon`` example command updates an Amazon EKS add-on with service account role ARN. :: + + aws eks update-addon \ + --cluster-name my-eks-cluster \ + --addon-name vpc-cni \ + --service-account-role-arn arn:aws:iam::111122223333:role/eksctl-my-eks-cluster-addon-vpc-cni-Role1-YfakrqOC1UTm + +Output:: + + { + "update": { + "id": "c00d2de2-c2e4-3d30-929e-46b8edec2ce4", + "status": "InProgress", + "type": "AddonUpdate", + "params": [ + { + "type": "ServiceAccountRoleArn", + "value": "arn:aws:iam::111122223333:role/eksctl-my-eks-cluster-addon-vpc-cni-Role1-YfakrqOC1UTm" + } + ], + "updatedAt": "2024-04-12T16:04:55.614000-04:00", + "errors": [] + } + } + +For more information, see `Managing Amazon EKS add-ons - Updating an add-on `__ in the *Amazon EKS User Guide*. + +**Example 2. To update an Amazon EKS add-on with specific add-on version** + +The following ``update-addon`` example command updates an Amazon EKS add-on with specific add-on version. :: + + aws eks update-addon \ + --cluster-name my-eks-cluster \ + --addon-name vpc-cni \ + --service-account-role-arn arn:aws:iam::111122223333:role/eksctl-my-eks-cluster-addon-vpc-cni-Role1-YfakrqOC1UTm \ + --addon-version v1.16.4-eksbuild.2 + +Output:: + + { + "update": { + "id": "f58dc0b0-2b18-34bd-bc6a-e4abc0011f36", + "status": "InProgress", + "type": "AddonUpdate", + "params": [ + { + "type": "AddonVersion", + "value": "v1.16.4-eksbuild.2" + }, + { + "type": "ServiceAccountRoleArn", + "value": "arn:aws:iam::111122223333:role/eksctl-my-eks-cluster-addon-vpc-cni-Role1-YfakrqOC1UTm" + } + ], + "createdAt": "2024-04-12T16:07:16.550000-04:00", + "errors": [] + } + } + +For more information, see `Managing Amazon EKS add-ons - Updating an add-on `__ in the *Amazon EKS User Guide*. + +**Example 3. To update an Amazon EKS add-on with custom configuration values and resolve conflicts details** + +The following ``update-addon`` example command updates an Amazon EKS add-on with custom configuration values and resolve conflicts details. :: + + aws eks update-addon \ + --cluster-name my-eks-cluster \ + --addon-name vpc-cni \ + --service-account-role-arn arn:aws:iam::111122223333:role/eksctl-my-eks-cluster-addon-vpc-cni-Role1-YfakrqOC1UTm \ + --addon-version v1.16.4-eksbuild.2 \ + --configuration-values '{"resources": {"limits":{"cpu":"100m"}, "requests":{"cpu":"50m"}}}' \ + --resolve-conflicts PRESERVE + +Output:: + + { + "update": { + "id": "cd9f2173-a8d8-3004-a90f-032f14326520", + "status": "InProgress", + "type": "AddonUpdate", + "params": [ + { + "type": "AddonVersion", + "value": "v1.16.4-eksbuild.2" + }, + { + "type": "ServiceAccountRoleArn", + "value": "arn:aws:iam::111122223333:role/eksctl-my-eks-cluster-addon-vpc-cni-Role1-YfakrqOC1UTm" + }, + { + "type": "ResolveConflicts", + "value": "PRESERVE" + }, + { + "type": "ConfigurationValues", + "value": "{\"resources\": {\"limits\":{\"cpu\":\"100m\"}, \"requests\":{\"cpu\":\"50m\"}}}" + } + ], + "createdAt": "2024-04-12T16:16:27.363000-04:00", + "errors": [] + } + } + +For more information, see `Managing Amazon EKS add-ons - Updating an add-on `__ in the *Amazon EKS User Guide*. + +**Example 4. To update an Amazon EKS add-on with custom JSON configuration values file** + +The following ``update-addon`` example command updates an Amazon EKS add-on with custom JSON configuration values and resolve conflicts details. :: + + aws eks update-addon \ + --cluster-name my-eks-cluster \ + --addon-name vpc-cni \ + --service-account-role-arn arn:aws:iam::111122223333:role/eksctl-my-eks-cluster-addon-vpc-cni-Role1-YfakrqOC1UTm \ + --addon-version v1.17.1-eksbuild.1 \ + --configuration-values 'file://configuration-values.json' \ + --resolve-conflicts PRESERVE + +Contents of ``configuration-values.json``:: + + { + "resources": { + "limits": { + "cpu": "100m" + }, + "requests": { + "cpu": "50m" + } + }, + "env": { + "AWS_VPC_K8S_CNI_LOGLEVEL": "ERROR" + } + } + +Output:: + + { + "update": { + "id": "6881a437-174f-346b-9a63-6e91763507cc", + "status": "InProgress", + "type": "AddonUpdate", + "params": [ + { + "type": "AddonVersion", + "value": "v1.17.1-eksbuild.1" + }, + { + "type": "ServiceAccountRoleArn", + "value": "arn:aws:iam::111122223333:role/eksctl-my-eks-cluster-addon-vpc-cni-Role1-YfakrqOC1UTm" + }, + { + "type": "ResolveConflicts", + "value": "PRESERVE" + }, + { + "type": "ConfigurationValues", + "value": "{\n \"resources\": {\n \"limits\": {\n \"cpu\": \"100m\"\n },\n \"requests\": {\n \"cpu\": \"50m\"\n }\n },\n \"env\": {\n \"AWS_VPC_K8S_CNI_LOGLEVEL\": \"ERROR\"\n }\n}" + } + ], + "createdAt": "2024-04-12T16:22:55.519000-04:00", + "errors": [] + } + } + +For more information, see `Managing Amazon EKS add-ons - Updating an add-on `__ in the *Amazon EKS User Guide*. + +**Example 5. To update an Amazon EKS add-on with custom YAML configuration values file** + +The following ``update-addon`` example command updates an Amazon EKS add-on with custom YAML configuration values and resolve conflicts details. :: + + aws eks update-addon \ + --cluster-name my-eks-cluster \ + --addon-name vpc-cni \ + --service-account-role-arn arn:aws:iam::111122223333:role/eksctl-my-eks-cluster-addon-vpc-cni-Role1-YfakrqOC1UTm \ + --addon-version v1.18.0-eksbuild.1 \ + --configuration-values 'file://configuration-values.yaml' \ + --resolve-conflicts PRESERVE + +Contents of ``configuration-values.yaml``:: + + resources: + limits: + cpu: '100m' + requests: + cpu: '50m' + env: + AWS_VPC_K8S_CNI_LOGLEVEL: 'DEBUG' + +Output:: + + { + "update": { + "id": "a067a4c9-69d0-3769-ace9-d235c5b16701", + "status": "InProgress", + "type": "AddonUpdate", + "params": [ + { + "type": "AddonVersion", + "value": "v1.18.0-eksbuild.1" + }, + { + "type": "ServiceAccountRoleArn", + "value": "arn:aws:iam::111122223333:role/eksctl-my-eks-cluster-addon-vpc-cni-Role1-YfakrqOC1UTm" + }, + { + "type": "ResolveConflicts", + "value": "PRESERVE" + }, + { + "type": "ConfigurationValues", + "value": "resources:\n limits:\n cpu: '100m'\n requests:\n cpu: '50m'\nenv:\n AWS_VPC_K8S_CNI_LOGLEVEL: 'DEBUG'" + } + ], + "createdAt": "2024-04-12T16:25:07.212000-04:00", + "errors": [] + } + } + +For more information, see `Managing Amazon EKS add-ons - Updating an add-on `__ in the *Amazon EKS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-cluster-config.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-cluster-config.rst new file mode 100644 index 000000000..df86904d0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-cluster-config.rst @@ -0,0 +1,57 @@ +**To update cluster endpoint access** + +This example command updates a cluster to disable endpoint public access and enable private endpoint access. + +Command:: + + aws eks update-cluster-config --name example \ + --resources-vpc-config endpointPublicAccess=false,endpointPrivateAccess=true + +Output:: + + { + "update": { + "id": "ec883c93-2e9e-407c-a22f-8f6fa6e67d4f", + "status": "InProgress", + "type": "EndpointAccessUpdate", + "params": [ + { + "type": "EndpointPublicAccess", + "value": "false" + }, + { + "type": "EndpointPrivateAccess", + "value": "true" + } + ], + "createdAt": 1565806986.506, + "errors": [] + } + } + +**To enable logging for a cluster** + +This example command enables all cluster control plane logging types for a cluster named ``example``. + +Command:: + + aws eks update-cluster-config --name example \ + --logging '{"clusterLogging":[{"types":["api","audit","authenticator","controllerManager","scheduler"],"enabled":true}]}' + +Output:: + + { + "update": { + "id": "7551c64b-1d27-4b1e-9f8e-c45f056eb6fd", + "status": "InProgress", + "type": "LoggingUpdate", + "params": [ + { + "type": "ClusterLogging", + "value": "{\"clusterLogging\":[{\"types\":[\"api\",\"audit\",\"authenticator\",\"controllerManager\",\"scheduler\"],\"enabled\":true}]}" + } + ], + "createdAt": 1565807210.37, + "errors": [] + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-cluster-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-cluster-version.rst new file mode 100644 index 000000000..0dd1cc582 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-cluster-version.rst @@ -0,0 +1,31 @@ +**To updates an Amazon EKS cluster named `my-eks-cluster` to the specified Kubernetes version** + +The following ``update-cluster-version`` example updates an Amazon EKS cluster to the specified Kubernetes version. :: + + aws eks update-cluster-version \ + --name my-eks-cluster \ + --kubernetes-version 1.27 + +Output:: + + { + "update": { + "id": "e4091a28-ea14-48fd-a8c7-975aeb469e8a", + "status": "InProgress", + "type": "VersionUpdate", + "params": [ + { + "type": "Version", + "value": "1.27" + }, + { + "type": "PlatformVersion", + "value": "eks.16" + } + ], + "createdAt": "2024-04-12T16:56:01.082000-04:00", + "errors": [] + } + } + +For more information, see `Updating an Amazon EKS cluster Kubernetes version `__ in the *Amazon EKS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-kubeconfig.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-kubeconfig.rst new file mode 100644 index 000000000..62c755143 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-kubeconfig.rst @@ -0,0 +1,87 @@ +**Example 1: Configures your kubectl by creating or updating the kubeconfig so that you can connect to an Amazon EKS Cluster named `my-eks-cluster`** + +The following ``update-kubeconfig`` example configures your kubectl by creating or updating the kubeconfig so that you can connect to an Amazon EKS Cluster named `my-eks-cluster`. :: + + aws eks update-kubeconfig \ + --name my-eks-cluster + +Output:: + + Updated context arn:aws:eks:us-east-2:111122223333:cluster/my-eks-cluster in /Users/xxx/.kube/config + +For more information, see `Creating or updating a kubeconfig file for an Amazon EKS cluster `__ in the *Amazon EKS User Guide*. + +**Example 2: Configures your kubectl by creating or updating the kubeconfig (with role-arn option to assume a role for cluster authentication) so that you can connect to an Amazon EKS Cluster named `my-eks-cluster`** + +The following ``update-kubeconfig`` example configures your kubectl by creating or updating the kubeconfig (with role-arn option to assume a role for cluster authentication) so that you can connect to an Amazon EKS Cluster named `my-eks-cluster`. :: + + aws eks update-kubeconfig \ + --name my-eks-cluster \ + --role-arn arn:aws:iam::111122223333:role/eksctl-EKS-Linux-Cluster-v1-24-cluster-ServiceRole-j1k7AfTIQtnM + +Output:: + + Updated context arn:aws:eks:us-east-2:111122223333:cluster/my-eks-cluster in /Users/xxx/.kube/config + +For more information, see `Creating or updating a kubeconfig file for an Amazon EKS cluster `__ in the *Amazon EKS User Guide*. + +**Example 3: Configures your kubectl by creating or updating the kubeconfig (with role-arn option to assume a role for cluster authentication along with custom cluster alias and user-alias) so that you can connect to an Amazon EKS Cluster named `my-eks-cluster`** + +The following ``update-kubeconfig`` example configures your kubectl by creating or updating the kubeconfig (with role-arn option to assume a role for cluster authentication along with custom cluster alias and user-alias) so that you can connect to an Amazon EKS Cluster named `my-eks-cluster`. :: + + aws eks update-kubeconfig \ + --name my-eks-cluster \ + --role-arn arn:aws:iam::111122223333:role/eksctl-EKS-Linux-Cluster-v1-24-cluster-ServiceRole-j1k7AfTIQtnM \ + --alias stage-eks-cluster \ + --user-alias john + +Output:: + + Updated context stage-eks-cluster in /Users/dubaria/.kube/config + +For more information, see `Creating or updating a kubeconfig file for an Amazon EKS cluster `__ in the *Amazon EKS User Guide*. + +**Example 4: Print kubeconfig file entries for review and configures your kubectl so that you can connect to an Amazon EKS Cluster named `my-eks-cluster`** + +The following ``update-kubeconfig`` example configures your kubectl by creating or updating the kubeconfig (with role-arn option to assume a role for cluster authentication along with custom cluster alias and user-alias) so that you can connect to an Amazon EKS Cluster named `my-eks-cluster`. :: + + aws eks update-kubeconfig \ + --name my-eks-cluster \ + --role-arn arn:aws:iam::111122223333:role/eksctl-EKS-Linux-Cluster-v1-24-cluster-ServiceRole-j1k7AfTIQtnM \ + --alias stage-eks-cluster \ + --user-alias john \ + --verbose + +Output:: + + Updated context stage-eks-cluster in /Users/dubaria/.kube/config + Entries: + + context: + cluster: arn:aws:eks:us-east-2:111122223333:cluster/my-eks-cluster + user: john + name: stage-eks-cluster + + name: john + user: + exec: + apiVersion: client.authentication.k8s.io/v1beta1 + args: + - --region + - us-east-2 + - eks + - get-token + - --cluster-name + - my-eks-cluster + - --output + - json + - --role + - arn:aws:iam::111122223333:role/eksctl-EKS-Linux-Cluster-v1-24-cluster-ServiceRole-j1k7AfTIQtnM + command: aws + + cluster: + certificate-authority-data: xxx_CA_DATA_xxx + server: https://DALSJ343KE23J3RN45653DSKJTT647TYD.yl4.us-east-2.eks.amazonaws.com + name: arn:aws:eks:us-east-2:111122223333:cluster/my-eks-cluster + +For more information, see `Creating or updating a kubeconfig file for an Amazon EKS cluster `__ in the *Amazon EKS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-kubeconfig/_description.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-kubeconfig/_description.rst new file mode 100644 index 000000000..29c93f23c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-kubeconfig/_description.rst @@ -0,0 +1,19 @@ +Configures kubectl so that you can connect to an Amazon EKS cluster. + +Note: + To use the resulting configuration, you must have kubectl installed and in your PATH environment variable. + +This command constructs a configuration with prepopulated server and certificate authority data values for a specified cluster. +You can specify an IAM role ARN with the ``--role-arn`` option to use for authentication when you issue kubectl commands. +Otherwise, the IAM entity in your default AWS CLI or SDK credential chain is used. +You can view your default AWS CLI or SDK identity by running the ``aws sts get-caller-identity`` command. + +The resulting kubeconfig is created as a new file or merged with an existing kubeconfig file using the following logic: + +* If you specify a path with the ``--kubeconfig option``, then the resulting configuration file is created there or merged with an existing kubeconfig at that location. +* Or, if you have the ``KUBECONFIG`` environment variable set, then the resulting configuration file is created at the first entry in that variable or merged with an existing kubeconfig at that location. +* Otherwise, by default, the resulting configuration file is created at the default kubeconfig path (``.kube/config``) in your home directory or merged with an existing kubeconfig at that location. +* If a previous cluster configuration exists for an Amazon EKS cluster with the same name at the specified path, the existing configuration is overwritten with the new configuration. +* When update-kubeconfig writes a configuration to a kubeconfig file, the current-context of the kubeconfig file is set to that configuration. + +You can use the ``--dry-run`` option to print the resulting configuration to stdout instead of writing it to the specified location. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-nodegroup-config.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-nodegroup-config.rst new file mode 100644 index 000000000..59eb8928f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-nodegroup-config.rst @@ -0,0 +1,152 @@ +**Example 1: Update a managed node group to add new labels and taint to EKS worker node for an Amazon EKS cluster** + +The following ``update-nodegroup-config`` example updates a managed node group to add new labels and taint to EKS worker node for an Amazon EKS cluster. :: + + aws eks update-nodegroup-config \ + --cluster-name my-eks-cluster \ + --nodegroup-name my-eks-nodegroup \ + --labels 'addOrUpdateLabels={my-eks-nodegroup-label-1=value-1,my-eks-nodegroup-label-2=value-2}' \ + --taints 'addOrUpdateTaints=[{key=taint-key-1,value=taint-value-1,effect=NO_EXECUTE}]' + +Output:: + + { + "update": { + "id": "e66d21d3-bd8b-3ad1-a5aa-b196dc08c7c1", + "status": "InProgress", + "type": "ConfigUpdate", + "params": [ + { + "type": "LabelsToAdd", + "value": "{\"my-eks-nodegroup-label-2\":\"value-2\",\"my-eks-nodegroup-label-1\":\"value-1\"}" + }, + { + "type": "TaintsToAdd", + "value": "[{\"effect\":\"NO_EXECUTE\",\"value\":\"taint-value-1\",\"key\":\"taint-key-1\"}]" + } + ], + "createdAt": "2024-04-08T12:05:19.161000-04:00", + "errors": [] + } + } + +For more information, see `Updating a managed node group `__ in the *Amazon EKS User Guide*. + +**Example 2: Update a managed node group to remove labels and taint for the EKS worker node for an Amazon EKS cluster** + +The following ``update-nodegroup-config`` example updates a managed node group to remove labels and taint for the EKS worker node for an Amazon EKS cluster. :: + + aws eks update-nodegroup-config \ + --cluster-name my-eks-cluster \ + --nodegroup-name my-eks-nodegroup \ + --labels 'removeLabels=my-eks-nodegroup-label-1, my-eks-nodegroup-label-2' \ + --taints 'removeTaints=[{key=taint-key-1,value=taint-value-1,effect=NO_EXECUTE}]' + +Output:: + + { + "update": { + "id": "67a08692-9e59-3ace-a916-13929f44cec3", + "status": "InProgress", + "type": "ConfigUpdate", + "params": [ + { + "type": "LabelsToRemove", + "value": "[\"my-eks-nodegroup-label-1\",\"my-eks-nodegroup-label-2\"]" + }, + { + "type": "TaintsToRemove", + "value": "[{\"effect\":\"NO_EXECUTE\",\"value\":\"taint-value-1\",\"key\":\"taint-key-1\"}]" + } + ], + "createdAt": "2024-04-08T12:17:31.817000-04:00", + "errors": [] + } + } + +For more information, see `Updating a managed node group `__ in the *Amazon EKS User Guide*. + +**Example 3: Update a managed node group to remove and add labels and taint for the EKS worker node for an Amazon EKS cluster** + +The following ``update-nodegroup-config`` example updates a managed node group to remove and add labels and taint for the EKS worker node for an Amazon EKS cluster. :: + + aws eks update-nodegroup-config \ + --cluster-name my-eks-cluster \ + --nodegroup-name my-eks-nodegroup \ + --labels 'addOrUpdateLabels={my-eks-nodegroup-new-label-1=new-value-1,my-eks-nodegroup-new-label-2=new-value-2},removeLabels=my-eks-nodegroup-label-1, my-eks-nodegroup-label-2' \ + --taints 'addOrUpdateTaints=[{key=taint-new-key-1,value=taint-new-value-1,effect=PREFER_NO_SCHEDULE}],removeTaints=[{key=taint-key-1,value=taint-value-1,effect=NO_EXECUTE}]' + +Output:: + + { + "update": { + "id": "4a9c8c45-6ac7-3115-be71-d6412a2339b7", + "status": "InProgress", + "type": "ConfigUpdate", + "params": [ + { + "type": "LabelsToAdd", + "value": "{\"my-eks-nodegroup-new-label-1\":\"new-value-1\",\"my-eks-nodegroup-new-label-2\":\"new-value-2\"}" + }, + { + "type": "LabelsToRemove", + "value": "[\"my-eks-nodegroup-label-1\",\"my-eks-nodegroup-label-2\"]" + }, + { + "type": "TaintsToAdd", + "value": "[{\"effect\":\"PREFER_NO_SCHEDULE\",\"value\":\"taint-new-value-1\",\"key\":\"taint-new-key-1\"}]" + }, + { + "type": "TaintsToRemove", + "value": "[{\"effect\":\"NO_EXECUTE\",\"value\":\"taint-value-1\",\"key\":\"taint-key-1\"}]" + } + ], + "createdAt": "2024-04-08T12:30:55.486000-04:00", + "errors": [] + } + } + +For more information, see `Updating a managed node group `__ in the *Amazon EKS User Guide*. + + +**Example 4: Update a managed node group to update scaling-config and update-config for the EKS worker node for an Amazon EKS cluster** + +The following ``update-nodegroup-config`` example updates a managed node group to update scaling-config and update-config for the EKS worker node for an Amazon EKS cluster. :: + + aws eks update-nodegroup-config \ + --cluster-name my-eks-cluster \ + --nodegroup-name my-eks-nodegroup \ + --scaling-config minSize=1,maxSize=5,desiredSize=2 \ + --update-config maxUnavailable=2 + +Output:: + + { + "update": { + "id": "a977160f-59bf-3023-805d-c9826e460aea", + "status": "InProgress", + "type": "ConfigUpdate", + "params": [ + { + "type": "MinSize", + "value": "1" + }, + { + "type": "MaxSize", + "value": "5" + }, + { + "type": "DesiredSize", + "value": "2" + }, + { + "type": "MaxUnavailable", + "value": "2" + } + ], + "createdAt": "2024-04-08T12:35:17.036000-04:00", + "errors": [] + } + } + +For more information, see `Updating a managed node group `__ in the *Amazon EKS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-nodegroup-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-nodegroup-version.rst new file mode 100644 index 000000000..3bfd56f81 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-nodegroup-version.rst @@ -0,0 +1,67 @@ +**Example 1: Update the Kubernetes version or AMI version of an Amazon EKS managed node group** + +The following ``update-nodegroup-version`` example updates the Kubernetes version or AMI version of an Amazon EKS managed node group to the latest available version for your Kubernetes cluster. :: + + aws eks update-nodegroup-version \ + --cluster-name my-eks-cluster \ + --nodegroup-name my-eks-nodegroup \ + --no-force + +Output:: + + { + "update": { + "id": "a94ebfc3-6bf8-307a-89e6-7dbaa36421f7", + "status": "InProgress", + "type": "VersionUpdate", + "params": [ + { + "type": "Version", + "value": "1.26" + }, + { + "type": "ReleaseVersion", + "value": "1.26.12-20240329" + } + ], + "createdAt": "2024-04-08T13:16:00.724000-04:00", + "errors": [] + } + } + +For more information, see `Updating a managed node group `__ in the *Amazon EKS User Guide*. + +**Example 2: Update the Kubernetes version or AMI version of an Amazon EKS managed node group** + +The following ``update-nodegroup-version`` example updates the Kubernetes version or AMI version of an Amazon EKS managed node group to the specified AMI release version. :: + + aws eks update-nodegroup-version \ + --cluster-name my-eks-cluster \ + --nodegroup-name my-eks-nodegroup \ + --kubernetes-version '1.26' \ + --release-version '1.26.12-20240307' \ + --no-force + +Output:: + + { + "update": { + "id": "4db06fe1-088d-336b-bdcd-3fdb94995fb7", + "status": "InProgress", + "type": "VersionUpdate", + "params": [ + { + "type": "Version", + "value": "1.26" + }, + { + "type": "ReleaseVersion", + "value": "1.26.12-20240307" + } + ], + "createdAt": "2024-04-08T13:13:58.595000-04:00", + "errors": [] + } + } + +For more information, see `Updating a managed node group - ``__ in the *Amazon EKS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-pod-identity-association.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-pod-identity-association.rst new file mode 100644 index 000000000..0d3a34d68 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/update-pod-identity-association.rst @@ -0,0 +1,29 @@ +**To update the EKS Pod Identity association** + +The following ``update-pod-identity-association`` example updates an EKS Pod Identity association by changing the associated IAM role from ``arn:aws:iam::111122223333:role/my-role`` to ``arn:aws:iam::111122223333:role/s3-role`` for association ID ``a-9njjin9gfghecgocd``. This API only allows updating the associated IAM role. :: + + aws eks update-pod-identity-association \ + --cluster-name eks-customer \ + --association-id a-9njjin9gfghecgocd \ + --role-arn arn:aws:iam::111122223333:role/s3-role + +Output:: + + { + "association": { + "clusterName": "eks-customer", + "namespace": "default", + "serviceAccount": "default", + "roleArn": "arn:aws:iam::111122223333:role/s3-role", + "associationArn": "arn:aws:eks:us-west-2:111122223333:podidentityassociation/eks-customer/a-9njjin9gfghecgocd", + "associationId": "a-9njjin9gfghecgocd", + "tags": { + "Key2": "value2", + "Key1": "value1" + }, + "createdAt": "2025-05-24T19:52:14.135000-05:00", + "modifiedAt": "2025-05-25T21:01:53.120000-05:00" + } + } + +For more information, see `Learn how EKS Pod Identity grants pods access to AWS services `__ in the *Amazon EKS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait.rst new file mode 100644 index 000000000..8203134ed --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait.rst @@ -0,0 +1,16 @@ +**To wait for a cluster to become active** + +This example command waits for a cluster named ``example`` to become active. + +Command:: + + aws eks wait cluster-active --name example + +**To wait for a cluster to be deleted** + +This example command waits for a cluster named ``example`` to be deleted. + +Command:: + + aws eks wait cluster-deleted --name example + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/addon-active.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/addon-active.rst new file mode 100644 index 000000000..b7e31f5b3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/addon-active.rst @@ -0,0 +1,9 @@ +**To wait for an add-on running in the Amazon EKS cluster to become ACTIVE** + +The following ``wait addon-active`` example command waits for an add-on named ``aws-efs-csi-driver`` running in the Amazon EKS cluster named ``my-eks-cluster`` to become ``ACTIVE``. :: + + aws eks wait addon-active \ + --cluster-name my-eks-cluster \ + --addon-name aws-efs-csi-driver + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/addon-deleted.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/addon-deleted.rst new file mode 100644 index 000000000..9bf105e73 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/addon-deleted.rst @@ -0,0 +1,9 @@ +**To wait for an add-on running in the Amazon EKS cluster to be deleted** + +The following ``wait addon-deleted`` example command waits until ``ResourceNotFoundException`` is thrown when polling with `describe-addon` for an add-on named ``aws-efs-csi-driver`` running in the Amazon EKS cluster named ``my-eks-cluster``. :: + + aws eks wait addon-deleted \ + --cluster-name my-eks-cluster \ + --addon-name aws-efs-csi-driver + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/cluster-active.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/cluster-active.rst new file mode 100644 index 000000000..b9d1e2ad9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/cluster-active.rst @@ -0,0 +1,8 @@ +**To wait for an Amazon EKS cluster to become ACTIVE** + +The following ``wait cluster-active`` example command waits for an Amazon EKS cluster named ``my-eks-cluster`` status to become ``ACTIVE``. :: + + aws eks wait cluster-active \ + --name my-eks-cluster + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/cluster-deleted.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/cluster-deleted.rst new file mode 100644 index 000000000..54d354cc1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/cluster-deleted.rst @@ -0,0 +1,8 @@ +**To wait until Amazon EKS cluster is deleted** + +The following ``wait cluster-deleted`` example command waits until ``ResourceNotFoundException`` is thrown when polling with ``describe-cluster`` for Amazon EKS cluster named ``my-eks-cluster``. :: + + aws eks wait cluster-deleted \ + --name my-eks-cluster + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/fargate-profile-active.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/fargate-profile-active.rst new file mode 100644 index 000000000..e59aee8fe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/fargate-profile-active.rst @@ -0,0 +1,9 @@ +**To wait for an fargate-profile running in the Amazon EKS cluster to become ACTIVE** + +The following ``wait fargate-profile-active`` example command waits for an fargate-profile named ``my-fargate-profile`` running in the Amazon EKS cluster named ``my-eks-cluster`` to be ``ACTIVE``. :: + + aws eks wait fargate-profile-active \ + --cluster-name my-eks-cluster \ + --fargate-profile-name my-fargate-profile + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/fargate-profile-deleted.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/fargate-profile-deleted.rst new file mode 100644 index 000000000..396a6ac9a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/fargate-profile-deleted.rst @@ -0,0 +1,9 @@ +**To wait for an fargate-profile running in the Amazon EKS cluster to become deleted** + +The following ``wait fargate-profile-deleted`` example command waits until ``ResourceNotFoundException`` is thrown when polling with `describe-fargate-profile` for an fargate-profile named ``my-fargate-profile`` running in the Amazon EKS cluster named ``my-eks-cluster``. :: + + aws eks wait fargate-profile-deleted \ + --cluster-name my-eks-cluster \ + --fargate-profile-name my-fargate-profile + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/nodegroup-active.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/nodegroup-active.rst new file mode 100644 index 000000000..76d58f87e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/nodegroup-active.rst @@ -0,0 +1,9 @@ +**Example 8: To wait for an nodegroup running in the Amazon EKS cluster to become ACTIVE** + +The following ``wait nodegroup-active`` example command waits for an nodegroup named ``my-nodegroup`` running in the Amazon EKS cluster named ``my-eks-cluster`` to be Active. :: + + aws eks wait nodegroup-active \ + --cluster-name my-eks-cluster \ + --nodegroup-name my-nodegroup + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/nodegroup-deleted.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/nodegroup-deleted.rst new file mode 100644 index 000000000..9251e6059 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/eks/wait/nodegroup-deleted.rst @@ -0,0 +1,9 @@ +**To wait for an nodegroup running in the Amazon EKS cluster to become deleted** + +The following ``wait nodegroup-deleted`` example command waits until ``ResourceNotFoundException`` is thrown when polling with `describe-nodegroup` for an nodegroup named ``my-nodegroup`` running in the Amazon EKS cluster named ``my-eks-cluster``. :: + + aws eks wait nodegroup-deleted \ + --cluster-name my-eks-cluster \ + --nodegroup-name my-nodegroup + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/add-tags-to-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/add-tags-to-resource.rst new file mode 100755 index 000000000..1dae7bbba --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/add-tags-to-resource.rst @@ -0,0 +1,25 @@ +**To add tags to a resource** + +The following ``add-tags-to-resource`` example adds up to 10 tags, key-value pairs, to a cluster or snapshot resource. :: + + aws elasticache add-tags-to-resource \ + --resource-name "arn:aws:elasticache:us-east-1:1234567890:cluster:my-mem-cluster" \ + --tags '{"20150202":15, "ElastiCache":"Service"}' + + +Output:: + + { + "TagList": [ + { + "Value": "20150202", + "Key": "APIVersion" + }, + { + "Value": "ElastiCache", + "Key": "Service" + } + ] + } + +For more information, see `Monitoring Costs with Cost Allocation Tags `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/authorize-cache-security-group-ingress.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/authorize-cache-security-group-ingress.rst new file mode 100755 index 000000000..51422134f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/authorize-cache-security-group-ingress.rst @@ -0,0 +1,12 @@ +**To authorize cache security group for ingress** + +The following ``authorize-cache-security-group-ingress`` example allows network ingress to a cache security group. :: + + aws elasticache authorize-cache-security-group-ingress \ + --cache-security-group-name "my-sec-grp" \ + --ec2-security-group-name "my-ec2-sec-grp" \ + --ec2-security-group-owner-id "1234567890" + +The command produces no output. + +For more information, see `Self-Service Updates in Amazon ElastiCache `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/batch-apply-update-action.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/batch-apply-update-action.rst new file mode 100644 index 000000000..412a9d510 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/batch-apply-update-action.rst @@ -0,0 +1,22 @@ +**To apply a service update** + +The following ``batch-apply-update-action`` example applies a service update to a Redis cluster. :: + + aws elasticache batch-apply-update-action \ + --service-update-name elc-xxxxx406-xxx \ + --replication-group-ids test-cluster + +Output:: + + { + "ProcessedUpdateActions": [ + { + "ReplicationGroupId": "pat-cluster", + "ServiceUpdateName": "elc-xxxxx406-xxx", + "UpdateActionStatus": "waiting-to-start" + } + ], + "UnprocessedUpdateActions": [] + } + +For more information, see `Self-Service Updates in Amazon ElastiCache `__ in the *Elasticache User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/batch-stop-update-action.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/batch-stop-update-action.rst new file mode 100644 index 000000000..982c0c8d0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/batch-stop-update-action.rst @@ -0,0 +1,22 @@ +**To stop a service update** + +The following ``batch-stop-update-action`` example applies a service update to a Redis cluster. :: + + aws elasticache batch-stop-update-action \ + --service-update-name elc-xxxxx406-xxx \ + --replication-group-ids test-cluster + +Output:: + + { + "ProcessedUpdateActions": [ + { + "ReplicationGroupId": "pat-cluster", + "ServiceUpdateName": "elc-xxxxx406-xxx", + "UpdateActionStatus": "stopping" + } + ], + "UnprocessedUpdateActions": [] + } + +For more information, see `Self-Service Updates in Amazon ElastiCache `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/copy-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/copy-snapshot.rst new file mode 100755 index 000000000..5666232f6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/copy-snapshot.rst @@ -0,0 +1,42 @@ +**To copy a snapshot** + +The following ``copy-snapshot`` example makes a copy of an existing snapshot. :: + + aws elasticache copy-snapshot \ + --source-snapshot-name "my-snapshot" \ + --target-snapshot-name "my-snapshot-copy" + +Output:: + + { + "Snapshot":{ + "Engine": "redis", + "CacheParameterGroupName": "default.redis3.2", + "VpcId": "vpc-3820329f3", + "CacheClusterId": "my-redis4", + "SnapshotRetentionLimit": 7, + "NumCacheNodes": 1, + "SnapshotName": "my-snapshot-copy", + "CacheClusterCreateTime": "2016-12-21T22:24:04.955Z", + "AutoMinorVersionUpgrade": true, + "PreferredAvailabilityZone": "us-east-1c", + "SnapshotStatus": "creating", + "SnapshotSource": "manual", + "SnapshotWindow": "07:00-08:00", + "EngineVersion": "3.2.4", + "NodeSnapshots": [ + { + "CacheSize": "3 MB", + "SnapshotCreateTime": "2016-12-28T07:00:52Z", + "CacheNodeId": "0001", + "CacheNodeCreateTime": "2016-12-21T22:24:04.955Z" + } + ], + "CacheSubnetGroupName": "default", + "Port": 6379, + "PreferredMaintenanceWindow": "tue:09:30-tue:10:30", + "CacheNodeType": "cache.m3.large" + } + } + +For more information, see `Exporting a Backup `__ in the *Elasticache User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-cache-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-cache-cluster.rst new file mode 100644 index 000000000..ac564d610 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-cache-cluster.rst @@ -0,0 +1,40 @@ +**To create a cache cluster** + +The following ``create-cache-cluster`` example creates a cache cluster using the Redis engine. :: + + aws elasticache create-cache-cluster \ + --cache-cluster-id "cluster-test" \ + --engine redis \ + --cache-node-type cache.m5.large \ + --num-cache-nodes 1 + + +Output:: + + { + "CacheCluster": { + "CacheClusterId": "cluster-test", + "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", + "CacheNodeType": "cache.m5.large", + "Engine": "redis", + "EngineVersion": "5.0.5", + "CacheClusterStatus": "creating", + "NumCacheNodes": 1, + "PreferredMaintenanceWindow": "sat:13:00-sat:14:00", + "PendingModifiedValues": {}, + "CacheSecurityGroups": [], + "CacheParameterGroup": { + "CacheParameterGroupName": "default.redis5.0", + "ParameterApplyStatus": "in-sync", + "CacheNodeIdsToReboot": [] + }, + "CacheSubnetGroupName": "default", + "AutoMinorVersionUpgrade": true, + "SnapshotRetentionLimit": 0, + "SnapshotWindow": "06:30-07:30", + "TransitEncryptionEnabled": false, + "AtRestEncryptionEnabled": false + } + } + +For more information, see `Creating a Cluster `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-cache-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-cache-parameter-group.rst new file mode 100755 index 000000000..8e131b64e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-cache-parameter-group.rst @@ -0,0 +1,20 @@ +**To create a cache parameter group** + +The following ``create-cache-parameter-group`` example creates a new Amazon ElastiCache cache parameter group. :: + + aws elasticache create-cache-parameter-group \ + --cache-parameter-group-family "redis5.0" \ + --cache-parameter-group-name "mygroup" \ + --description "mygroup" + +Output:: + + { + "CacheParameterGroup": { + "CacheParameterGroupName": "mygroup", + "CacheParameterGroupFamily": "redis5.0", + "Description": "my group" + } + } + +For more information, see `Creating a Parameter Group `__ in the *Elasticache User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-cache-subnet-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-cache-subnet-group.rst new file mode 100755 index 000000000..24a25c56f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-cache-subnet-group.rst @@ -0,0 +1,28 @@ +**To create a cache subnet group** + +The following ``create-cache-subnet-group`` example creates a new cache subnet group. :: + + aws elasticache create-cache-subnet-group \ + --cache-subnet-group-name "mygroup" \ + --cache-subnet-group-description "my subnet group" \ + --subnet-ids "subnet-xxxxec4f" + +Output:: + + { + "CacheSubnetGroup": { + "CacheSubnetGroupName": "mygroup", + "CacheSubnetGroupDescription": "my subnet group", + "VpcId": "vpc-a3e97cdb", + "Subnets": [ + { + "SubnetIdentifier": "subnet-xxxxec4f", + "SubnetAvailabilityZone": { + "Name": "us-west-2d" + } + } + ] + } + } + +For more information, see `Creating a Cache Subnet Group `__ in the *Elasticache User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-global-replication-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-global-replication-group.rst new file mode 100644 index 000000000..9e2ea6231 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-global-replication-group.rst @@ -0,0 +1,41 @@ +**To create a global replication group** + +The following ``create-global-replication-group`` example creates a new global replication group. :: + + aws elasticache create-global-replication-group \ + --global-replication-group-id-suffix my-global-replication-group \ + --primary-replication-group-id my-primary-cluster + +Output:: + + { + "GlobalReplicationGroup": { + "GlobalReplicationGroupId": "sgaui-my-global-replication-group", + "GlobalReplicationGroupDescription": " ", + "Status": "creating", + "CacheNodeType": "cache.r5.large", + "Engine": "redis", + "EngineVersion": "5.0.6", + "Members": [ + { + "ReplicationGroupId": "my-primary-cluster", + "ReplicationGroupRegion": "us-west-2", + "Role": "PRIMARY", + "AutomaticFailover": "enabled", + "Status": "associating" + } + ], + "ClusterEnabled": true, + "GlobalNodeGroups": [ + { + "GlobalNodeGroupId": "sgaui-my-global-replication-group-0001", + "Slots": "0-16383" + } + ], + "AuthTokenEnabled": false, + "TransitEncryptionEnabled": false, + "AtRestEncryptionEnabled": false + } + } + +For more information, see `Replication Across AWS Regions Using Global Datastore `__ in the *Elasticache User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-replication-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-replication-group.rst new file mode 100755 index 000000000..c9b9859b2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-replication-group.rst @@ -0,0 +1,32 @@ +**To create a replication group** + +The following ``create-replication-group`` example creates a Redis (cluster mode disabled) or a Redis (cluster mode enabled) replication group. This operation is valid for Redis only. :: + + aws elasticache create-replication-group \ + --replication-group-id "mygroup" \ + --replication-group-description "my group" \ + --engine "redis" \ + --cache-node-type "cache.m5.large" + +Output:: + + { + "ReplicationGroup": { + "ReplicationGroupId": "mygroup", + "Description": "my group", + "Status": "creating", + "PendingModifiedValues": {}, + "MemberClusters": [ + "mygroup-001" + ], + "AutomaticFailover": "disabled", + "SnapshotRetentionLimit": 0, + "SnapshotWindow": "06:00-07:00", + "ClusterEnabled": false, + "CacheNodeType": "cache.m5.large", + "TransitEncryptionEnabled": false, + "AtRestEncryptionEnabled": false + } + } + +For more information, see `Creating a Redis Replication Group `__ in the *Elasticache User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-snapshot.rst new file mode 100644 index 000000000..ab18236db --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-snapshot.rst @@ -0,0 +1,41 @@ +**To create a snapshot** + +The following ``create-snapshot`` example creates a snapshot using the Redis engine. :: + + aws elasticache create-snapshot \ + --snapshot-name mysnapshot \ + --cache-cluster-id cluster-test + +Output:: + + { + "Snapshot": { + "SnapshotName": "mysnapshot", + "CacheClusterId": "cluster-test", + "SnapshotStatus": "creating", + "SnapshotSource": "manual", + "CacheNodeType": "cache.m5.large", + "Engine": "redis", + "EngineVersion": "5.0.5", + "NumCacheNodes": 1, + "PreferredAvailabilityZone": "us-west-2b", + "CacheClusterCreateTime": "2020-03-19T03:12:01.483Z", + "PreferredMaintenanceWindow": "sat:13:00-sat:14:00", + "Port": 6379, + "CacheParameterGroupName": "default.redis5.0", + "CacheSubnetGroupName": "default", + "VpcId": "vpc-a3e97cdb", + "AutoMinorVersionUpgrade": true, + "SnapshotRetentionLimit": 0, + "SnapshotWindow": "06:30-07:30", + "NodeSnapshots": [ + { + "CacheNodeId": "0001", + "CacheSize": "", + "CacheNodeCreateTime": "2020-03-19T03:12:01.483Z" + } + ] + } + } + +For more information, see `Backup and Restore for ElastiCache for Redis `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-user-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-user-group.rst new file mode 100644 index 000000000..16c5c926a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-user-group.rst @@ -0,0 +1,23 @@ +**To create a user group** + +The following ``create-user-group`` example creates a new user group. :: + + aws elasticache create-user-group \ + --user-group-id myusergroup \ + --engine redis \ + --user-ids default + +Output:: + + { + "UserGroupId": "myusergroup", + "Status": "creating", + "Engine": "redis", + "UserIds": [ + "default" + ], + "ReplicationGroups": [], + "ARN": "arn:aws:elasticache:us-west-2:xxxxxxxxxx52:usergroup:myusergroup" + } + +For more information, see `Authenticating Users with Role-Based Access Control (RBAC) `__ in the *Elasticache User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-user.rst new file mode 100644 index 000000000..1224ba072 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/create-user.rst @@ -0,0 +1,28 @@ +**To create a user** + +The following ``create-user`` example creates a new user. :: + + aws elasticache create-user \ + --user-id user1 \ + --user-name myUser \ + --passwords mYnuUzrpAxXw2rdzx \ + --engine redis \ + --access-string "on ~app::* -@all +@read" + +Output:: + + { + "UserId": "user2", + "UserName": "myUser", + "Status": "active", + "Engine": "redis", + "AccessString": "on ~app::* -@all +@read +@hash +@bitmap +@geo -setbit -bitfield -hset -hsetnx -hmset -hincrby -hincrbyfloat -hdel -bitop -geoadd -georadius -georadiusbymember", + "UserGroupIds": [], + "Authentication": { + "Type": "password", + "PasswordCount": 1 + }, + "ARN": "arn:aws:elasticache:us-west-2:xxxxxxxxxx52:user:user2" + } + +For more information, see `Authenticating Users with Role-Based Access Control (RBAC) `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/decrease-node-groups-in-global-replication-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/decrease-node-groups-in-global-replication-group.rst new file mode 100644 index 000000000..8ad210ca1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/decrease-node-groups-in-global-replication-group.rst @@ -0,0 +1,63 @@ +**To decrease the number of node groups in a global replication group** + +The following ``decrease-node-groups-in-global-replication-group`` decreases the node group count using the Redis engine. :: + + aws elasticache decrease-node-groups-in-global-replication-group \ + --global-replication-group-id sgaui-test \ + --node-group-count 1 \ + --apply-immediately \ + --global-node-groups-to-retain sgaui-test-0003 + +Output:: + + { + "GlobalReplicationGroup": + { + "GlobalReplicationGroupId": "sgaui-test", + "GlobalReplicationGroupDescription": "test", + "Status": "modifying", + "CacheNodeType": "cache.r5.large", + "Engine": "redis", + "EngineVersion": "5.0.6", + "Members": [ + { + "ReplicationGroupId": "test-2", + "ReplicationGroupRegion": "us-east-1", + "Role": "SECONDARY", + "AutomaticFailover": "enabled", + "Status": "associated" + }, + { + "ReplicationGroupId": "test-1", + "ReplicationGroupRegion": "us-west-2", + "Role": "PRIMARY", + "AutomaticFailover": "enabled", + "Status": "associated" + } + ], + "ClusterEnabled": true, + "GlobalNodeGroups": [ + { + "GlobalNodeGroupId": "sgaui-test-0001", + "Slots": "0-449,1816-5461" + }, + { + "GlobalNodeGroupId": "sgaui-test-0002", + "Slots": "6827-10922" + }, + { + "GlobalNodeGroupId": "sgaui-test-0003", + "Slots": "10923-14052,15418-16383" + }, + { + "GlobalNodeGroupId": "sgaui-test-0004", + "Slots": "450-1815,5462-6826,14053-15417" + } + ], + "AuthTokenEnabled": false, + "TransitEncryptionEnabled": false, + "AtRestEncryptionEnabled": false + } + } + +For more information, see `Replication Across AWS Regions Using Global Datastore `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/decrease-replica-count.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/decrease-replica-count.rst new file mode 100755 index 000000000..824390af8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/decrease-replica-count.rst @@ -0,0 +1,90 @@ +**To decrease replica count** + +The following ``decrease-replica-count`` example dynamically decreases the number of replicas in a Redis (cluster mode disabled) replication group or the number of replica nodes in one or more node groups (shards) of a Redis (cluster mode enabled) replication group. This operation is performed with no cluster downtime. :: + + aws elasticache decrease-replica-count \ + --replication-group-id my-cluster \ + --apply-immediately \ + --new-replica-count 2 + +Output:: + + { + "ReplicationGroup": { + "ReplicationGroupId": "my-cluster", + "Description": " ", + "Status": "modifying", + "PendingModifiedValues": {}, + "MemberClusters": [ + "myrepliace", + "my-cluster-001", + "my-cluster-002", + "my-cluster-003" + ], + "NodeGroups": [ + { + "NodeGroupId": "0001", + "Status": "modifying", + "PrimaryEndpoint": { + "Address": "my-cluster.xxxxx.ng.0001.usw2.cache.amazonaws.com", + "Port": 6379 + }, + "ReaderEndpoint": { + "Address": "my-cluster-ro.xxxxx.ng.0001.usw2.cache.amazonaws.com", + "Port": 6379 + }, + "NodeGroupMembers": [ + { + "CacheClusterId": "myrepliace", + "CacheNodeId": "0001", + "ReadEndpoint": { + "Address": "myrepliace.xxxxx.0001.usw2.cache.amazonaws.com", + "Port": 6379 + }, + "PreferredAvailabilityZone": "us-west-2a", + "CurrentRole": "replica" + }, + { + "CacheClusterId": "my-cluster-001", + "CacheNodeId": "0001", + "ReadEndpoint": { + "Address": "my-cluster-001.xxxxx.0001.usw2.cache.amazonaws.com", + "Port": 6379 + }, + "PreferredAvailabilityZone": "us-west-2a", + "CurrentRole": "primary" + }, + { + "CacheClusterId": "my-cluster-002", + "CacheNodeId": "0001", + "ReadEndpoint": { + "Address": "my-cluster-002.xxxxx.0001.usw2.cache.amazonaws.com", + "Port": 6379 + }, + "PreferredAvailabilityZone": "us-west-2a", + "CurrentRole": "replica" + }, + { + "CacheClusterId": "my-cluster-003", + "CacheNodeId": "0001", + "ReadEndpoint": { + "Address": "my-cluster-003.xxxxx.0001.usw2.cache.amazonaws.com", + "Port": 6379 + }, + "PreferredAvailabilityZone": "us-west-2a", + "CurrentRole": "replica" + } + ] + } + ], + "AutomaticFailover": "disabled", + "SnapshotRetentionLimit": 0, + "SnapshotWindow": "07:30-08:30", + "ClusterEnabled": false, + "CacheNodeType": "cache.r5.xlarge", + "TransitEncryptionEnabled": false, + "AtRestEncryptionEnabled": false + } + } + +For more information, see `Changing the Number of Replicas `__ in the *Elasticache User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-cache-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-cache-cluster.rst new file mode 100755 index 000000000..85b0625c7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-cache-cluster.rst @@ -0,0 +1,61 @@ +**To delete a cache cluster** + +The following ``delete-cache-cluster`` example deletes the specified previously provisioned cluster. The command deletes all associated cache nodes, node endpoints. and the cluster itself. When you receive a successful response from this operation, Amazon ElastiCache immediately begins deleting the cluster; you can't cancel or revert this operation. + +This operation is not valid for the following: + +* Redis (cluster mode enabled) clusters +* A cluster that is the last read replica of a replication group +* A node group (shard) that has Multi-AZ mode enabled +* A cluster from a Redis (cluster mode enabled) replication group +* A cluster that is not in the available state :: + + aws elasticache delete-cache-cluster \ + --cache-cluster-id "my-cluster-002" + +Output:: + + { + "CacheCluster": { + "CacheClusterId": "my-cluster-002", + "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", + "CacheNodeType": "cache.r5.xlarge", + "Engine": "redis", + "EngineVersion": "5.0.5", + "CacheClusterStatus": "deleting", + "NumCacheNodes": 1, + "PreferredAvailabilityZone": "us-west-2a", + "CacheClusterCreateTime": "2019-11-26T03:35:04.546Z", + "PreferredMaintenanceWindow": "mon:04:05-mon:05:05", + "PendingModifiedValues": {}, + "NotificationConfiguration": { + "TopicArn": "arn:aws:sns:us-west-x:xxxxxxx4152:My_Topic", + "TopicStatus": "active" + }, + "CacheSecurityGroups": [], + "CacheParameterGroup": { + "CacheParameterGroupName": "mygroup", + "ParameterApplyStatus": "in-sync", + "CacheNodeIdsToReboot": [] + }, + "CacheSubnetGroupName": "kxkxk", + "AutoMinorVersionUpgrade": true, + "SecurityGroups": [ + { + "SecurityGroupId": "sg-xxxxxxxxxx9836", + "Status": "active" + }, + { + "SecurityGroupId": "sg-xxxxxxxxxxxx7b", + "Status": "active" + } + ], + "ReplicationGroupId": "my-cluster", + "SnapshotRetentionLimit": 0, + "SnapshotWindow": "07:30-08:30", + "TransitEncryptionEnabled": false, + "AtRestEncryptionEnabled": false + } + } + +For more information, see `Deleting a Cluster `__ in the *Elasticache User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-cache-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-cache-parameter-group.rst new file mode 100755 index 000000000..3f9cd607a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-cache-parameter-group.rst @@ -0,0 +1,10 @@ +**To delete a cache parameter group** + +The following ``delete-cache-parameter-group`` example deletes the specified cache parameter group. You can't delete a cache parameter group if it's associated with any cache clusters. :: + + aws elasticache delete-cache-parameter-group \ + --cache-parameter-group-name myparamgroup + +This command produces no output. + +For more information, see `Deleting a Parameter Group `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-cache-subnet-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-cache-subnet-group.rst new file mode 100755 index 000000000..c451dc32f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-cache-subnet-group.rst @@ -0,0 +1,10 @@ +**To delete a cache subnet group** + +The following ``delete-cache-subnet-group`` example deletes the specified cache subnet group. You can't delete a cache subnet group if it's associated with any clusters. :: + + aws elasticache delete-cache-subnet-group \ + --cache-subnet-group-name "mygroup" + +This command produces no output. + +For more information, see `Deleting a Subnet Group `__ in the *Elasticache User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-global-replication-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-global-replication-group.rst new file mode 100644 index 000000000..f6f41d937 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-global-replication-group.rst @@ -0,0 +1,35 @@ +**To delete a global replication group** + +The following ``delete-global-replication-group`` example deletes a new global replication group. :: + + aws elasticache delete-global-replication-group \ + --global-replication-group-id my-global-replication-group \ + --retain-primary-replication-group + +Output:: + + { + "GlobalReplicationGroup": { + "GlobalReplicationGroupId": "sgaui-my-grg", + "GlobalReplicationGroupDescription": "my-grg", + "Status": "deleting", + "CacheNodeType": "cache.r5.large", + "Engine": "redis", + "EngineVersion": "5.0.6", + "Members": [ + { + "ReplicationGroupId": "my-cluster-grg", + "ReplicationGroupRegion": "us-west-2", + "Role": "PRIMARY", + "AutomaticFailover": "enabled", + "Status": "associated" + } + ], + "ClusterEnabled": false, + "AuthTokenEnabled": false, + "TransitEncryptionEnabled": false, + "AtRestEncryptionEnabled": false + } + } + +For more information, see `Replication Across AWS Regions Using Global Datastore `__ in the *Elasticache User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-replication-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-replication-group.rst new file mode 100755 index 000000000..1b7c95838 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-replication-group.rst @@ -0,0 +1,24 @@ +**To delete a replication group** + +The following ``delete-replication-group`` example deletes an existing replication group. By default, this operation deletes the entire replication group, including the primary/primaries and all of the read replicas. If the replication group has only one primary, you can optionally delete only the read replicas, while retaining the primary by setting RetainPrimaryCluster=true . + +When you receive a successful response from this operation, Amazon ElastiCache immediately begins deleting the selected resources; you cannot cancel or revert this operation. Valid for Redis only. :: + + aws elasticache delete-replication-group \ + --replication-group-id "mygroup" + +Output:: + + { + "ReplicationGroup": { + "ReplicationGroupId": "mygroup", + "Description": "my group", + "Status": "deleting", + "PendingModifiedValues": {}, + "AutomaticFailover": "disabled", + "SnapshotRetentionLimit": 0, + "SnapshotWindow": "06:00-07:00", + "TransitEncryptionEnabled": false, + "AtRestEncryptionEnabled": false + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-snapshot.rst new file mode 100644 index 000000000..4fade43a2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-snapshot.rst @@ -0,0 +1,68 @@ +**To delete a snapshot** + +The following ``delete-snapshot`` example deleted a snapshot using the Redis engine. :: + + aws elasticache delete-snapshot \ + --snapshot-name mysnapshot + +Output:: + + { + "Snapshot": { + "SnapshotName": "my-cluster-snapshot", + "ReplicationGroupId": "mycluster", + "ReplicationGroupDescription": "mycluster", + "SnapshotStatus": "deleting", + "SnapshotSource": "manual", + "CacheNodeType": "cache.r5.xlarge", + "Engine": "redis", + "EngineVersion": "5.0.5", + "PreferredMaintenanceWindow": "thu:12:00-thu:13:00", + "TopicArn": "arn:aws:sns:us-west-2:xxxxxxxxxxxxx152:My_Topic", + "Port": 6379, + "CacheParameterGroupName": "default.redis5.0.cluster.on", + "CacheSubnetGroupName": "default", + "VpcId": "vpc-a3e97cdb", + "AutoMinorVersionUpgrade": true, + "SnapshotRetentionLimit": 1, + "SnapshotWindow": "13:00-14:00", + "NumNodeGroups": 4, + "AutomaticFailover": "enabled", + "NodeSnapshots": [ + { + "CacheClusterId": "mycluster-0002-003", + "NodeGroupId": "0002", + "CacheNodeId": "0001", + "CacheSize": "6 MB", + "CacheNodeCreateTime": "2020-06-18T00:05:44.719000+00:00", + "SnapshotCreateTime": "2020-06-25T20:34:30+00:00" + }, + { + "CacheClusterId": "mycluster-0003-003", + "NodeGroupId": "0003", + "CacheNodeId": "0001", + "CacheSize": "6 MB", + "CacheNodeCreateTime": "2019-12-05T19:13:15.912000+00:00", + "SnapshotCreateTime": "2020-06-25T20:34:30+00:00" + }, + { + "CacheClusterId": "mycluster-0004-002", + "NodeGroupId": "0004", + "CacheNodeId": "0001", + "CacheSize": "6 MB", + "CacheNodeCreateTime": "2019-12-09T19:44:34.324000+00:00", + "SnapshotCreateTime": "2020-06-25T20:34:30+00:00" + }, + { + "CacheClusterId": "mycluster-0005-003", + "NodeGroupId": "0005", + "CacheNodeId": "0001", + "CacheSize": "6 MB", + "CacheNodeCreateTime": "2020-06-18T00:05:44.775000+00:00", + "SnapshotCreateTime": "2020-06-25T20:34:30+00:00" + } + ] + } + } + +For more information, see `Backup and Restore for ElastiCache for Redis `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-user-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-user-group.rst new file mode 100644 index 000000000..512b1652a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-user-group.rst @@ -0,0 +1,21 @@ +**To delete a user group** + +The following ``delete-user-group`` example deletes a user group. :: + + aws elasticache delete-user-group \ + --user-group-id myusergroup + +Output:: + + { + "UserGroupId": "myusergroup", + "Status": "deleting", + "Engine": "redis", + "UserIds": [ + "default" + ], + "ReplicationGroups": [], + "ARN": "arn:aws:elasticache:us-west-2:xxxxxxxxxx52:usergroup:myusergroup" + } + +For more information, see `Authenticating Users with Role-Based Access Control (RBAC) `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-user.rst new file mode 100644 index 000000000..e6d2cb745 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/delete-user.rst @@ -0,0 +1,26 @@ +**To delete a user** + +The following ``delete-user`` example deletes a user. :: + + aws elasticache delete-user \ + --user-id user2 + +Output:: + + { + "UserId": "user1", + "UserName": "myUser", + "Status": "deleting", + "Engine": "redis", + "AccessString": "on ~* +@all", + "UserGroupIds": [ + "myusergroup" + ], + "Authentication": { + "Type": "password", + "PasswordCount": 1 + }, + "ARN": "arn:aws:elasticache:us-west-2:xxxxxxxxxx52:user:user1" + } + +For more information, see `Authenticating Users with Role-Based Access Control (RBAC) `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-cache-clusters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-cache-clusters.rst new file mode 100755 index 000000000..0b29a9d40 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-cache-clusters.rst @@ -0,0 +1,66 @@ +**To describe a cache cluster** + +The following ``describe-cache-clusters`` example describes a cache cluster. :: + + aws elasticache describe-cache-clusters + +Output:: + + { + "CacheClusters": [ + { + "CacheClusterId": "my-cluster-003", + "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", + "CacheNodeType": "cache.r5.large", + "Engine": "redis", + "EngineVersion": "5.0.5", + "CacheClusterStatus": "available", + "NumCacheNodes": 1, + "PreferredAvailabilityZone": "us-west-2a", + "CacheClusterCreateTime": "2019-11-26T01:22:52.396Z", + "PreferredMaintenanceWindow": "mon:17:30-mon:18:30", + "PendingModifiedValues": {}, + "NotificationConfiguration": { + "TopicArn": "arn:aws:sns:us-west-2:xxxxxxxxxxx152:My_Topic", + "TopicStatus": "active" + }, + "CacheSecurityGroups": [], + "CacheParameterGroup": { + "CacheParameterGroupName": "default.redis5.0", + "ParameterApplyStatus": "in-sync", + "CacheNodeIdsToReboot": [] + }, + "CacheSubnetGroupName": "kxkxk", + "AutoMinorVersionUpgrade": true, + "SecurityGroups": [ + { + "SecurityGroupId": "sg-xxxxxd7b", + "Status": "active" + } + ], + "ReplicationGroupId": "my-cluster", + "SnapshotRetentionLimit": 0, + "SnapshotWindow": "06:30-07:30", + "AuthTokenEnabled": false, + "TransitEncryptionEnabled": false, + "AtRestEncryptionEnabled": false, + "ARN": "arn:aws:elasticache:us-west-2:xxxxxxxxxxx152:cluster:my-cache-cluster", + "ReplicationGroupLogDeliveryEnabled": false, + "LogDeliveryConfigurations": [ + { + "LogType": "slow-log", + "DestinationType": "cloudwatch-logs", + "DestinationDetails": { + "CloudWatchLogsDetails": { + "LogGroup": "test-log" + } + }, + "LogFormat": "text", + "Status": "active" + } + ] + } + ] + } + +For more information, see `Managing Clusters `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-cache-engine-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-cache-engine-versions.rst new file mode 100755 index 000000000..a55743305 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-cache-engine-versions.rst @@ -0,0 +1,118 @@ +**To describe a cache engine version** + +The following ``describe-cache-engine-versions`` example returns a list of the available cache engines and their versions. :: + + aws elasticache describe-cache-engine-versions \ + --engine "Redis" + +Output:: + + { + "CacheEngineVersions": [ + { + "Engine": "redis", + "EngineVersion": "2.6.13", + "CacheParameterGroupFamily": "redis2.6", + "CacheEngineDescription": "Redis", + "CacheEngineVersionDescription": "redis version 2.6.13" + }, + { + "Engine": "redis", + "EngineVersion": "2.8.19", + "CacheParameterGroupFamily": "redis2.8", + "CacheEngineDescription": "Redis", + "CacheEngineVersionDescription": "redis version 2.8.19" + }, + { + "Engine": "redis", + "EngineVersion": "2.8.21", + "CacheParameterGroupFamily": "redis2.8", + "CacheEngineDescription": "Redis", + "CacheEngineVersionDescription": "redis version 2.8.21" + }, + { + "Engine": "redis", + "EngineVersion": "2.8.22", + "CacheParameterGroupFamily": "redis2.8", + "CacheEngineDescription": "Redis", + "CacheEngineVersionDescription": "redis version 2.8.22" + }, + { + "Engine": "redis", + "EngineVersion": "2.8.23", + "CacheParameterGroupFamily": "redis2.8", + "CacheEngineDescription": "Redis", + "CacheEngineVersionDescription": "redis version 2.8.23" + }, + { + "Engine": "redis", + "EngineVersion": "2.8.24", + "CacheParameterGroupFamily": "redis2.8", + "CacheEngineDescription": "Redis", + "CacheEngineVersionDescription": "redis version 2.8.24" + }, + { + "Engine": "redis", + "EngineVersion": "2.8.6", + "CacheParameterGroupFamily": "redis2.8", + "CacheEngineDescription": "Redis", + "CacheEngineVersionDescription": "redis version 2.8.6" + }, + { + "Engine": "redis", + "EngineVersion": "3.2.10", + "CacheParameterGroupFamily": "redis3.2", + "CacheEngineDescription": "Redis", + "CacheEngineVersionDescription": "redis version 3.2.10" + }, + { + "Engine": "redis", + "EngineVersion": "3.2.4", + "CacheParameterGroupFamily": "redis3.2", + "CacheEngineDescription": "Redis", + "CacheEngineVersionDescription": "redis version 3.2.4" + }, + { + "Engine": "redis", + "EngineVersion": "3.2.6", + "CacheParameterGroupFamily": "redis3.2", + "CacheEngineDescription": "Redis", + "CacheEngineVersionDescription": "redis version 3.2.6" + }, + { + "Engine": "redis", + "EngineVersion": "4.0.10", + "CacheParameterGroupFamily": "redis4.0", + "CacheEngineDescription": "Redis", + "CacheEngineVersionDescription": "redis version 4.0.10" + }, + { + "Engine": "redis", + "EngineVersion": "5.0.0", + "CacheParameterGroupFamily": "redis5.0", + "CacheEngineDescription": "Redis", + "CacheEngineVersionDescription": "redis version 5.0.0" + }, + { + "Engine": "redis", + "EngineVersion": "5.0.3", + "CacheParameterGroupFamily": "redis5.0", + "CacheEngineDescription": "Redis", + "CacheEngineVersionDescription": "redis version 5.0.3" + }, + { + "Engine": "redis", + "EngineVersion": "5.0.4", + "CacheParameterGroupFamily": "redis5.0", + "CacheEngineDescription": "Redis", + "CacheEngineVersionDescription": "redis version 5.0.4" + }, + { + "Engine": "redis", + "EngineVersion": "5.0.5", + "CacheParameterGroupFamily": "redis5.0", + "CacheEngineDescription": "Redis", + "CacheEngineVersionDescription": "redis version 5.0.5" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-cache-parameter-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-cache-parameter-groups.rst new file mode 100755 index 000000000..f7cdb2c79 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-cache-parameter-groups.rst @@ -0,0 +1,21 @@ +**To describe a cache parameter group** + +The following ``describe-cache-parameter-groups`` example returns a list of cache parameter group descriptions. :: + + aws elasticache describe-cache-parameter-groups \ + --cache-parameter-group-name "mygroup" + +Output:: + + { + "CacheParameterGroups": [ + { + "CacheParameterGroupName": "mygroup", + "CacheParameterGroupFamily": "redis5.0", + "Description": " " + } + ] + } + +For more information, see `Configuring Engine Parameters Using Parameter Groups `__ in the *Elasticache User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-cache-parameters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-cache-parameters.rst new file mode 100755 index 000000000..8d42b8125 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-cache-parameters.rst @@ -0,0 +1,640 @@ +**To describe cache parameters** + +The following ''describe-cache-parameters'' example returns the detailed parameter list for the specified cache parameter group. :: + + aws elasticache describe-cache-parameters \ + --cache-parameter-group-name "myparamgroup" + +Output:: + + { + "Parameters": [ + { + "ParameterName": "activedefrag", + "ParameterValue": "yes", + "Description": "Enabled active memory defragmentation", + "Source": "user", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "active-defrag-cycle-max", + "ParameterValue": "75", + "Description": "Maximal effort for defrag in CPU percentage", + "Source": "user", + "DataType": "integer", + "AllowedValues": "1-75", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "active-defrag-cycle-min", + "ParameterValue": "5", + "Description": "Minimal effort for defrag in CPU percentage", + "Source": "user", + "DataType": "integer", + "AllowedValues": "1-75", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "active-defrag-ignore-bytes", + "ParameterValue": "104857600", + "Description": "Minimum amount of fragmentation waste to start active defrag", + "Source": "user", + "DataType": "integer", + "AllowedValues": "1048576-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "active-defrag-max-scan-fields", + "ParameterValue": "1000", + "Description": "Maximum number of set/hash/zset/list fields that will be processed from the main dictionary scan", + "Source": "user", + "DataType": "integer", + "AllowedValues": "1-1000000", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "active-defrag-threshold-lower", + "ParameterValue": "10", + "Description": "Minimum percentage of fragmentation to start active defrag", + "Source": "user", + "DataType": "integer", + "AllowedValues": "1-100", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "active-defrag-threshold-upper", + "ParameterValue": "100", + "Description": "Maximum percentage of fragmentation at which we use maximum effort", + "Source": "user", + "DataType": "integer", + "AllowedValues": "1-100", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "activerehashing", + "ParameterValue": "yes", + "Description": "Apply rehashing or not.", + "Source": "user", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "requires-reboot" + }, + { + "ParameterName": "appendfsync", + "ParameterValue": "everysec", + "Description": "fsync policy for AOF persistence", + "Source": "system", + "DataType": "string", + "AllowedValues": "always,everysec,no", + "IsModifiable": false, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "appendonly", + "ParameterValue": "no", + "Description": "Enable Redis persistence.", + "Source": "system", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": false, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "client-output-buffer-limit-normal-hard-limit", + "ParameterValue": "0", + "Description": "Normal client output buffer hard limit in bytes.", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "client-output-buffer-limit-normal-soft-limit", + "ParameterValue": "0", + "Description": "Normal client output buffer soft limit in bytes.", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "client-output-buffer-limit-normal-soft-seconds", + "ParameterValue": "0", + "Description": "Normal client output buffer soft limit in seconds.", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "client-output-buffer-limit-pubsub-hard-limit", + "ParameterValue": "33554432", + "Description": "Pubsub client output buffer hard limit in bytes.", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "client-output-buffer-limit-pubsub-soft-limit", + "ParameterValue": "8388608", + "Description": "Pubsub client output buffer soft limit in bytes.", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "client-output-buffer-limit-pubsub-soft-seconds", + "ParameterValue": "60", + "Description": "Pubsub client output buffer soft limit in seconds.", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "client-output-buffer-limit-replica-soft-seconds", + "ParameterValue": "60", + "Description": "Replica client output buffer soft limit in seconds.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": false, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "client-query-buffer-limit", + "ParameterValue": "1073741824", + "Description": "Max size of a single client query buffer", + "Source": "user", + "DataType": "integer", + "AllowedValues": "1048576-1073741824", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "close-on-replica-write", + "ParameterValue": "yes", + "Description": "If enabled, clients who attempt to write to a read-only replica will be disconnected. Applicable to 2.8.23 and higher.", + "Source": "user", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "cluster-enabled", + "ParameterValue": "no", + "Description": "Enable cluster mode", + "Source": "user", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "requires-reboot" + }, + { + "ParameterName": "cluster-require-full-coverage", + "ParameterValue": "no", + "Description": "Whether cluster becomes unavailable if one or more slots are not covered", + "Source": "user", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "databases", + "ParameterValue": "16", + "Description": "Set the number of databases.", + "Source": "user", + "DataType": "integer", + "AllowedValues": "1-1200000", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "requires-reboot" + }, + { + "ParameterName": "hash-max-ziplist-entries", + "ParameterValue": "512", + "Description": "The maximum number of hash entries in order for the dataset to be compressed.", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "hash-max-ziplist-value", + "ParameterValue": "64", + "Description": "The threshold of biggest hash entries in order for the dataset to be compressed.", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "hll-sparse-max-bytes", + "ParameterValue": "3000", + "Description": "HyperLogLog sparse representation bytes limit", + "Source": "user", + "DataType": "integer", + "AllowedValues": "1-16000", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "lazyfree-lazy-eviction", + "ParameterValue": "no", + "Description": "Perform an asynchronous delete on evictions", + "Source": "user", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "lazyfree-lazy-expire", + "ParameterValue": "no", + "Description": "Perform an asynchronous delete on expired keys", + "Source": "user", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "lazyfree-lazy-server-del", + "ParameterValue": "no", + "Description": "Perform an asynchronous delete on key updates", + "Source": "user", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "lfu-decay-time", + "ParameterValue": "1", + "Description": "The amount of time in minutes to decrement the key counter for LFU eviction policy", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "lfu-log-factor", + "ParameterValue": "10", + "Description": "The log factor for incrementing key counter for LFU eviction policy", + "Source": "user", + "DataType": "integer", + "AllowedValues": "1-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "list-compress-depth", + "ParameterValue": "0", + "Description": "Number of quicklist ziplist nodes from each side of the list to exclude from compression. The head and tail of the list are always uncompressed for fast push/pop operations", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "list-max-ziplist-size", + "ParameterValue": "-2", + "Description": "The number of entries allowed per internal list node can be specified as a fixed maximum size or a maximum number of elements", + "Source": "system", + "DataType": "integer", + "AllowedValues": "-5,-4,-3,-2,-1,1-", + "IsModifiable": false, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "lua-replicate-commands", + "ParameterValue": "yes", + "Description": "Always enable Lua effect replication or not", + "Source": "user", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "lua-time-limit", + "ParameterValue": "5000", + "Description": "Max execution time of a Lua script in milliseconds. 0 for unlimited execution without warnings.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "5000", + "IsModifiable": false, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "maxclients", + "ParameterValue": "65000", + "Description": "The maximum number of Redis clients.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "1-65000", + "IsModifiable": false, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "requires-reboot" + }, + { + "ParameterName": "maxmemory-policy", + "ParameterValue": "volatile-lru", + "Description": "Max memory policy.", + "Source": "user", + "DataType": "string", + "AllowedValues": "volatile-lru,allkeys-lru,volatile-lfu,allkeys-lfu,volatile-random,allkeys-random,volatile-ttl,noeviction", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "maxmemory-samples", + "ParameterValue": "3", + "Description": "Max memory samples.", + "Source": "user", + "DataType": "integer", + "AllowedValues": "1-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "min-replicas-max-lag", + "ParameterValue": "10", + "Description": "The maximum amount of replica lag in seconds beyond which the master would stop taking writes. A value of 0 means the master always takes writes.", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "min-replicas-to-write", + "ParameterValue": "0", + "Description": "The minimum number of replicas that must be present with lag no greater than min-replicas-max-lag for master to take writes. Setting this to 0 means the master always takes writes.", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "notify-keyspace-events", + "Description": "The keyspace events for Redis to notify Pub/Sub clients about. By default all notifications are disabled", + "Source": "user", + "DataType": "string", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "proto-max-bulk-len", + "ParameterValue": "536870912", + "Description": "Max size of a single element request", + "Source": "user", + "DataType": "integer", + "AllowedValues": "1048576-536870912", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "rename-commands", + "ParameterValue": "", + "Description": "Redis commands that can be dynamically renamed by the customer", + "Source": "user", + "DataType": "string", + "AllowedValues": "APPEND,BITCOUNT,BITFIELD,BITOP,BITPOS,BLPOP,BRPOP,BRPOPLPUSH,BZPOPMIN,BZPOPMAX,CLIENT,COMMAND,DBSIZE,DECR,DECRBY,DEL,DISCARD,DUMP,ECHO,EVAL,EVALSHA,EXEC,EXISTS,EXPIRE,EXPIREAT,FLUSHALL,FLUSHDB,GEOADD,GEOHASH,GEOPOS,GEODIST,GEORADIUS,GEORADIUSBYMEMBER,GET,GETBIT,GETRANGE,GETSET,HDEL,HEXISTS,HGET,HGETALL,HINCRBY,HINCRBYFLOAT,HKEYS,HLEN,HMGET,HMSET,HSET,HSETNX,HSTRLEN,HVALS,INCR,INCRBY,INCRBYFLOAT,INFO,KEYS,LASTSAVE,LINDEX,LINSERT,LLEN,LPOP,LPUSH,LPUSHX,LRANGE,LREM,LSET,LTRIM,MEMORY,MGET,MONITOR,MOVE,MSET,MSETNX,MULTI,OBJECT,PERSIST,PEXPIRE,PEXPIREAT,PFADD,PFCOUNT,PFMERGE,PING,PSETEX,PSUBSCRIBE,PUBSUB,PTTL,PUBLISH,PUNSUBSCRIBE,RANDOMKEY,READONLY,READWRITE,RENAME,RENAMENX,RESTORE,ROLE,RPOP,RPOPLPUSH,RPUSH,RPUSHX,SADD,SCARD,SCRIPT,SDIFF,SDIFFSTORE,SELECT,SET,SETBIT,SETEX,SETNX,SETRANGE,SINTER,SINTERSTORE,SISMEMBER,SLOWLOG,SMEMBERS,SMOVE,SORT,SPOP,SRANDMEMBER,SREM,STRLEN,SUBSCRIBE,SUNION,SUNIONSTORE,SWAPDB,TIME,TOUCH,TTL,TYPE,UNSUBSCRIBE,UNLINK,UNWATCH,WAIT,WATCH,ZADD,ZCARD,ZCOUNT,ZINCRBY,ZINTERSTORE,ZLEXCOUNT,ZPOPMAX,ZPOPMIN,ZRANGE,ZRANGEBYLEX,ZREVRANGEBYLEX,ZRANGEBYSCORE,ZRANK,ZREM,ZREMRANGEBYLEX,ZREMRANGEBYRANK,ZREMRANGEBYSCORE,ZREVRANGE,ZREVRANGEBYSCORE,ZREVRANK,ZSCORE,ZUNIONSTORE,SCAN,SSCAN,HSCAN,ZSCAN,XINFO,XADD,XTRIM,XDEL,XRANGE,XREVRANGE,XLEN,XREAD,XGROUP,XREADGROUP,XACK,XCLAIM,XPENDING,GEORADIUS_RO,GEORADIUSBYMEMBER_RO,LOLWUT,XSETID,SUBSTR", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.3", + "ChangeType": "immediate" + }, + { + "ParameterName": "repl-backlog-size", + "ParameterValue": "1048576", + "Description": "The replication backlog size in bytes for PSYNC. This is the size of the buffer which accumulates slave data when slave is disconnected for some time, so that when slave reconnects again, only transfer the portion of data which the slave missed. Minimum value is 16K.", + "Source": "user", + "DataType": "integer", + "AllowedValues": "16384-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "repl-backlog-ttl", + "ParameterValue": "3600", + "Description": "The amount of time in seconds after the master no longer have any slaves connected for the master to free the replication backlog. A value of 0 means to never release the backlog.", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "replica-allow-chaining", + "ParameterValue": "no", + "Description": "Configures if chaining of replicas is allowed", + "Source": "system", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": false, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "replica-ignore-maxmemory", + "ParameterValue": "yes", + "Description": "Determines if replica ignores maxmemory setting by not evicting items independent from the master", + "Source": "system", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": false, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "replica-lazy-flush", + "ParameterValue": "no", + "Description": "Perform an asynchronous flushDB during replica sync", + "Source": "system", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": false, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "reserved-memory-percent", + "ParameterValue": "25", + "Description": "The percent of memory reserved for non-cache memory usage. You may want to increase this parameter for nodes with read replicas, AOF enabled, etc, to reduce swap usage.", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-100", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "set-max-intset-entries", + "ParameterValue": "512", + "Description": "The limit in the size of the set in order for the dataset to be compressed.", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "slowlog-log-slower-than", + "ParameterValue": "10000", + "Description": "The execution time, in microseconds, to exceed in order for the command to get logged. Note that a negative number disables the slow log, while a value of zero forces the logging of every command.", + "Source": "user", + "DataType": "integer", + "AllowedValues": "-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "slowlog-max-len", + "ParameterValue": "128", + "Description": "The length of the slow log. There is no limit to this length. Just be aware that it will consume memory. You can reclaim memory used by the slow log with SLOWLOG RESET.", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "stream-node-max-bytes", + "ParameterValue": "4096", + "Description": "The maximum size of a single node in a stream in bytes", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "stream-node-max-entries", + "ParameterValue": "100", + "Description": "The maximum number of items a single node in a stream can contain", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "tcp-keepalive", + "ParameterValue": "300", + "Description": "If non-zero, send ACKs every given number of seconds.", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "timeout", + "ParameterValue": "0", + "Description": "Close connection if client is idle for a given number of seconds, or never if 0.", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0,20-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "zset-max-ziplist-entries", + "ParameterValue": "128", + "Description": "The maximum number of sorted set entries in order for the dataset to be compressed.", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "zset-max-ziplist-value", + "ParameterValue": "64", + "Description": "The threshold of biggest sorted set entries in order for the dataset to be compressed.", + "Source": "user", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + } + ] + } + +For more information, see `Parameter Management `__ in the *Elasticache User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-cache-subnet-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-cache-subnet-groups.rst new file mode 100644 index 000000000..82ac6d77f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-cache-subnet-groups.rst @@ -0,0 +1,71 @@ +**To describe cache subnet groups** + +The following ``describe-cache-subnet-groups`` example returns a list of subnet groups. :: + + aws elasticache describe-cache-subnet-groups + +Output:: + + { + "CacheSubnetGroups": [ + { + "CacheSubnetGroupName": "default", + "CacheSubnetGroupDescription": "Default CacheSubnetGroup", + "VpcId": "vpc-a3e97cdb", + "Subnets": [ + { + "SubnetIdentifier": "subnet-8d4bacf5", + "SubnetAvailabilityZone": { + "Name": "us-west-2b" + } + }, + { + "SubnetIdentifier": "subnet-dde21380", + "SubnetAvailabilityZone": { + "Name": "us-west-2c" + } + }, + { + "SubnetIdentifier": "subnet-6485ec4f", + "SubnetAvailabilityZone": { + "Name": "us-west-2d" + } + }, + { + "SubnetIdentifier": "subnet-b4ebebff", + "SubnetAvailabilityZone": { + "Name": "us-west-2a" + } + } + ] + }, + { + "CacheSubnetGroupName": "kxkxk", + "CacheSubnetGroupDescription": "mygroup", + "VpcId": "vpc-a3e97cdb", + "Subnets": [ + { + "SubnetIdentifier": "subnet-b4ebebff", + "SubnetAvailabilityZone": { + "Name": "us-west-2a" + } + } + ] + }, + { + "CacheSubnetGroupName": "test", + "CacheSubnetGroupDescription": "test", + "VpcId": "vpc-a3e97cdb", + "Subnets": [ + { + "SubnetIdentifier": "subnet-b4ebebff", + "SubnetAvailabilityZone": { + "Name": "us-west-2a" + } + } + ] + } + ] + } + +For more information, see `Subnets and Subnet Groups `__ in the *Elasticache User Guide* or `Subnets and Subnet Groups `__ in the *ElastiCache for Memcached User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-engine-default-parameters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-engine-default-parameters.rst new file mode 100755 index 000000000..b2b57629f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-engine-default-parameters.rst @@ -0,0 +1,640 @@ +**To describe engine default parameters** + +The following ``describe-engine-default-parameters`` example returns the default engine and system parameter information for the specified cache engine. :: + + aws elasticache describe-engine-default-parameters \ + --cache-parameter-group-family "redis5.0" + +Output:: + + { + "EngineDefaults": { + "Parameters": [ + { + "ParameterName": "activedefrag", + "ParameterValue": "no", + "Description": "Enabled active memory defragmentation", + "Source": "system", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "active-defrag-cycle-max", + "ParameterValue": "75", + "Description": "Maximal effort for defrag in CPU percentage", + "Source": "system", + "DataType": "integer", + "AllowedValues": "1-75", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "active-defrag-cycle-min", + "ParameterValue": "5", + "Description": "Minimal effort for defrag in CPU percentage", + "Source": "system", + "DataType": "integer", + "AllowedValues": "1-75", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "active-defrag-ignore-bytes", + "ParameterValue": "104857600", + "Description": "Minimum amount of fragmentation waste to start active defrag", + "Source": "system", + "DataType": "integer", + "AllowedValues": "1048576-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "active-defrag-max-scan-fields", + "ParameterValue": "1000", + "Description": "Maximum number of set/hash/zset/list fields that will be processed from the main dictionary scan", + "Source": "system", + "DataType": "integer", + "AllowedValues": "1-1000000", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "active-defrag-threshold-lower", + "ParameterValue": "10", + "Description": "Minimum percentage of fragmentation to start active defrag", + "Source": "system", + "DataType": "integer", + "AllowedValues": "1-100", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "active-defrag-threshold-upper", + "ParameterValue": "100", + "Description": "Maximum percentage of fragmentation at which we use maximum effort", + "Source": "system", + "DataType": "integer", + "AllowedValues": "1-100", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "activerehashing", + "ParameterValue": "yes", + "Description": "Apply rehashing or not.", + "Source": "system", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": false, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "requires-reboot" + }, + { + "ParameterName": "appendfsync", + "ParameterValue": "everysec", + "Description": "fsync policy for AOF persistence", + "Source": "system", + "DataType": "string", + "AllowedValues": "always,everysec,no", + "IsModifiable": false, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "appendonly", + "ParameterValue": "no", + "Description": "Enable Redis persistence.", + "Source": "system", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": false, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "client-output-buffer-limit-normal-hard-limit", + "ParameterValue": "0", + "Description": "Normal client output buffer hard limit in bytes.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "client-output-buffer-limit-normal-soft-limit", + "ParameterValue": "0", + "Description": "Normal client output buffer soft limit in bytes.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "client-output-buffer-limit-normal-soft-seconds", + "ParameterValue": "0", + "Description": "Normal client output buffer soft limit in seconds.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "client-output-buffer-limit-pubsub-hard-limit", + "ParameterValue": "33554432", + "Description": "Pubsub client output buffer hard limit in bytes.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "client-output-buffer-limit-pubsub-soft-limit", + "ParameterValue": "8388608", + "Description": "Pubsub client output buffer soft limit in bytes.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "client-output-buffer-limit-pubsub-soft-seconds", + "ParameterValue": "60", + "Description": "Pubsub client output buffer soft limit in seconds.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "client-output-buffer-limit-replica-soft-seconds", + "ParameterValue": "60", + "Description": "Replica client output buffer soft limit in seconds.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": false, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "client-query-buffer-limit", + "ParameterValue": "1073741824", + "Description": "Max size of a single client query buffer", + "Source": "system", + "DataType": "integer", + "AllowedValues": "1048576-1073741824", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "close-on-replica-write", + "ParameterValue": "yes", + "Description": "If enabled, clients who attempt to write to a read-only replica will be disconnected. Applicable to 2.8.23 and higher.", + "Source": "system", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "cluster-enabled", + "ParameterValue": "no", + "Description": "Enable cluster mode", + "Source": "system", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": false, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "requires-reboot" + }, + { + "ParameterName": "cluster-require-full-coverage", + "ParameterValue": "no", + "Description": "Whether cluster becomes unavailable if one or more slots are not covered", + "Source": "system", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "databases", + "ParameterValue": "16", + "Description": "Set the number of databases.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "1-1200000", + "IsModifiable": false, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "requires-reboot" + }, + { + "ParameterName": "hash-max-ziplist-entries", + "ParameterValue": "512", + "Description": "The maximum number of hash entries in order for the dataset to be compressed.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "hash-max-ziplist-value", + "ParameterValue": "64", + "Description": "The threshold of biggest hash entries in order for the dataset to be compressed.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "hll-sparse-max-bytes", + "ParameterValue": "3000", + "Description": "HyperLogLog sparse representation bytes limit", + "Source": "system", + "DataType": "integer", + "AllowedValues": "1-16000", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "lazyfree-lazy-eviction", + "ParameterValue": "no", + "Description": "Perform an asynchronous delete on evictions", + "Source": "system", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "lazyfree-lazy-expire", + "ParameterValue": "no", + "Description": "Perform an asynchronous delete on expired keys", + "Source": "system", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "lazyfree-lazy-server-del", + "ParameterValue": "no", + "Description": "Perform an asynchronous delete on key updates", + "Source": "system", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "lfu-decay-time", + "ParameterValue": "1", + "Description": "The amount of time in minutes to decrement the key counter for LFU eviction policy", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "lfu-log-factor", + "ParameterValue": "10", + "Description": "The log factor for incrementing key counter for LFU eviction policy", + "Source": "system", + "DataType": "integer", + "AllowedValues": "1-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "list-compress-depth", + "ParameterValue": "0", + "Description": "Number of quicklist ziplist nodes from each side of the list to exclude from compression. The head and tail of the list are always uncompressed for fast push/pop operations", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "list-max-ziplist-size", + "ParameterValue": "-2", + "Description": "The number of entries allowed per internal list node can be specified as a fixed maximum size or a maximum number of elements", + "Source": "system", + "DataType": "integer", + "AllowedValues": "-5,-4,-3,-2,-1,1-", + "IsModifiable": false, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "lua-replicate-commands", + "ParameterValue": "yes", + "Description": "Always enable Lua effect replication or not", + "Source": "system", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "lua-time-limit", + "ParameterValue": "5000", + "Description": "Max execution time of a Lua script in milliseconds. 0 for unlimited execution without warnings.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "5000", + "IsModifiable": false, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "maxclients", + "ParameterValue": "65000", + "Description": "The maximum number of Redis clients.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "1-65000", + "IsModifiable": false, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "requires-reboot" + }, + { + "ParameterName": "maxmemory-policy", + "ParameterValue": "volatile-lru", + "Description": "Max memory policy.", + "Source": "system", + "DataType": "string", + "AllowedValues": "volatile-lru,allkeys-lru,volatile-lfu,allkeys-lfu,volatile-random,allkeys-random,volatile-ttl,noeviction", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "maxmemory-samples", + "ParameterValue": "3", + "Description": "Max memory samples.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "1-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "min-replicas-max-lag", + "ParameterValue": "10", + "Description": "The maximum amount of replica lag in seconds beyond which the master would stop taking writes. A value of 0 means the master always takes writes.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "min-replicas-to-write", + "ParameterValue": "0", + "Description": "The minimum number of replicas that must be present with lag no greater than min-replicas-max-lag for master to take writes. Setting this to 0 means the master always takes writes.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "notify-keyspace-events", + "Description": "The keyspace events for Redis to notify Pub/Sub clients about. By default all notifications are disabled", + "Source": "system", + "DataType": "string", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "proto-max-bulk-len", + "ParameterValue": "536870912", + "Description": "Max size of a single element request", + "Source": "system", + "DataType": "integer", + "AllowedValues": "1048576-536870912", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "rename-commands", + "ParameterValue": "", + "Description": "Redis commands that can be dynamically renamed by the customer", + "Source": "system", + "DataType": "string", + "AllowedValues": "APPEND,BITCOUNT,BITFIELD,BITOP,BITPOS,BLPOP,BRPOP,BRPOPLPUSH,BZPOPMIN,BZPOPMAX,CLIENT,COMMAND,DBSIZE,DECR,DECRBY,DEL,DISCARD,DUMP,ECHO,EVAL,EVALSHA,EXEC,EXISTS,EXPIRE,EXPIREAT,FLUSHALL,FLUSHDB,GEOADD,GEOHASH,GEOPOS,GEODIST,GEORADIUS,GEORADIUSBYMEMBER,GET,GETBIT,GETRANGE,GETSET,HDEL,HEXISTS,HGET,HGETALL,HINCRBY,HINCRBYFLOAT,HKEYS,HLEN,HMGET,HMSET,HSET,HSETNX,HSTRLEN,HVALS,INCR,INCRBY,INCRBYFLOAT,INFO,KEYS,LASTSAVE,LINDEX,LINSERT,LLEN,LPOP,LPUSH,LPUSHX,LRANGE,LREM,LSET,LTRIM,MEMORY,MGET,MONITOR,MOVE,MSET,MSETNX,MULTI,OBJECT,PERSIST,PEXPIRE,PEXPIREAT,PFADD,PFCOUNT,PFMERGE,PING,PSETEX,PSUBSCRIBE,PUBSUB,PTTL,PUBLISH,PUNSUBSCRIBE,RANDOMKEY,READONLY,READWRITE,RENAME,RENAMENX,RESTORE,ROLE,RPOP,RPOPLPUSH,RPUSH,RPUSHX,SADD,SCARD,SCRIPT,SDIFF,SDIFFSTORE,SELECT,SET,SETBIT,SETEX,SETNX,SETRANGE,SINTER,SINTERSTORE,SISMEMBER,SLOWLOG,SMEMBERS,SMOVE,SORT,SPOP,SRANDMEMBER,SREM,STRLEN,SUBSCRIBE,SUNION,SUNIONSTORE,SWAPDB,TIME,TOUCH,TTL,TYPE,UNSUBSCRIBE,UNLINK,UNWATCH,WAIT,WATCH,ZADD,ZCARD,ZCOUNT,ZINCRBY,ZINTERSTORE,ZLEXCOUNT,ZPOPMAX,ZPOPMIN,ZRANGE,ZRANGEBYLEX,ZREVRANGEBYLEX,ZRANGEBYSCORE,ZRANK,ZREM,ZREMRANGEBYLEX,ZREMRANGEBYRANK,ZREMRANGEBYSCORE,ZREVRANGE,ZREVRANGEBYSCORE,ZREVRANK,ZSCORE,ZUNIONSTORE,SCAN,SSCAN,HSCAN,ZSCAN,XINFO,XADD,XTRIM,XDEL,XRANGE,XREVRANGE,XLEN,XREAD,XGROUP,XREADGROUP,XACK,XCLAIM,XPENDING,GEORADIUS_RO,GEORADIUSBYMEMBER_RO,LOLWUT,XSETID,SUBSTR", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.3", + "ChangeType": "immediate" + }, + { + "ParameterName": "repl-backlog-size", + "ParameterValue": "1048576", + "Description": "The replication backlog size in bytes for PSYNC. This is the size of the buffer which accumulates slave data when slave is disconnected for some time, so that when slave reconnects again, only transfer the portion of data which the slave missed. Minimum value is 16K.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "16384-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "repl-backlog-ttl", + "ParameterValue": "3600", + "Description": "The amount of time in seconds after the master no longer have any slaves connected for the master to free the replication backlog. A value of 0 means to never release the backlog.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "replica-allow-chaining", + "ParameterValue": "no", + "Description": "Configures if chaining of replicas is allowed", + "Source": "system", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": false, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "replica-ignore-maxmemory", + "ParameterValue": "yes", + "Description": "Determines if replica ignores maxmemory setting by not evicting items independent from the master", + "Source": "system", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": false, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "replica-lazy-flush", + "ParameterValue": "no", + "Description": "Perform an asynchronous flushDB during replica sync", + "Source": "system", + "DataType": "string", + "AllowedValues": "yes,no", + "IsModifiable": false, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "reserved-memory-percent", + "ParameterValue": "25", + "Description": "The percent of memory reserved for non-cache memory usage. You may want to increase this parameter for nodes with read replicas, AOF enabled, etc, to reduce swap usage.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0-100", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "set-max-intset-entries", + "ParameterValue": "512", + "Description": "The limit in the size of the set in order for the dataset to be compressed.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "slowlog-log-slower-than", + "ParameterValue": "10000", + "Description": "The execution time, in microseconds, to exceed in order for the command to get logged. Note that a negative number disables the slow log, while a value of zero forces the logging of every command.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "slowlog-max-len", + "ParameterValue": "128", + "Description": "The length of the slow log. There is no limit to this length. Just be aware that it will consume memory. You can reclaim memory used by the slow log with SLOWLOG RESET.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "stream-node-max-bytes", + "ParameterValue": "4096", + "Description": "The maximum size of a single node in a stream in bytes", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "stream-node-max-entries", + "ParameterValue": "100", + "Description": "The maximum number of items a single node in a stream can contain", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "tcp-keepalive", + "ParameterValue": "300", + "Description": "If non-zero, send ACKs every given number of seconds.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "timeout", + "ParameterValue": "0", + "Description": "Close connection if client is idle for a given number of seconds, or never if 0.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0,20-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "zset-max-ziplist-entries", + "ParameterValue": "128", + "Description": "The maximum number of sorted set entries in order for the dataset to be compressed.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + }, + { + "ParameterName": "zset-max-ziplist-value", + "ParameterValue": "64", + "Description": "The threshold of biggest sorted set entries in order for the dataset to be compressed.", + "Source": "system", + "DataType": "integer", + "AllowedValues": "0-", + "IsModifiable": true, + "MinimumEngineVersion": "5.0.0", + "ChangeType": "immediate" + } + ] + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-events.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-events.rst new file mode 100644 index 000000000..b10e42bf0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-events.rst @@ -0,0 +1,29 @@ +**To describe events of a replication group** + +The following ``describe-events`` example returns a list of events for a replication group. :: + + aws elasticache describe-events \ + --source-identifier test-cluster \ + --source-type replication-group + + +Output:: + + { + "Events": [ + { + "SourceIdentifier": "test-cluster", + "SourceType": "replication-group", + "Message": "Automatic failover has been turned on for replication group test-cluster", + "Date": "2020-03-18T23:51:34.457Z" + }, + { + "SourceIdentifier": "test-cluster", + "SourceType": "replication-group", + "Message": "Replication group test-cluster created", + "Date": "2020-03-18T23:50:31.378Z" + } + ] + } + +For more information, see `Monitoring Events `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-global-replication-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-global-replication-groups.rst new file mode 100644 index 000000000..bc8321019 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-global-replication-groups.rst @@ -0,0 +1,27 @@ +**To describe global replication groups** + +The following ``describe-global-replication-groups`` example returns details of a Global datastore. :: + + aws elasticache describe-global-replication-groups \ + --global-replication-group-id my-grg + +Output:: + + { + "GlobalReplicationGroups": [ + { + "GlobalReplicationGroupId": "my-grg", + "GlobalReplicationGroupDescription": "my-grg", + "Status": "creating", + "CacheNodeType": "cache.r5.large", + "Engine": "redis", + "EngineVersion": "5.0.6", + "ClusterEnabled": false, + "AuthTokenEnabled": false, + "TransitEncryptionEnabled": false, + "AtRestEncryptionEnabled": false + } + ] + } + +For more information, see `Replication Across AWS Regions Using Global Datastore `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-replication-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-replication-groups.rst new file mode 100755 index 000000000..2c1a5b38b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-replication-groups.rst @@ -0,0 +1,104 @@ +**To return a list of replication group details** + +The following ``describe-replication-groups`` example returns the replication groups. :: + + aws elasticache describe-replication-groups + +Output:: + + { + "ReplicationGroups": [ + { + "ReplicationGroupId": "my-cluster", + "Description": "mycluster", + "Status": "available", + "PendingModifiedValues": {}, + "MemberClusters": [ + "pat-cluster-001", + "pat-cluster-002", + "pat-cluster-003", + "pat-cluster-004" + ], + "NodeGroups": [ + { + "NodeGroupId": "0001", + "Status": "available", + "PrimaryEndpoint": { + "Address": "my-cluster.xxxxih.ng.0001.usw2.cache.amazonaws.com", + "Port": 6379 + }, + "ReaderEndpoint": { + "Address": "my-cluster-ro.xxxxih.ng.0001.usw2.cache.amazonaws.com", + "Port": 6379 + }, + "NodeGroupMembers": [ + { + "CacheClusterId": "my-cluster-001", + "CacheNodeId": "0001", + "ReadEndpoint": { + "Address": "pat-cluster-001.xxxih.0001.usw2.cache.amazonaws.com", + "Port": 6379 + }, + "PreferredAvailabilityZone": "us-west-2a", + "CurrentRole": "primary" + }, + { + "CacheClusterId": "my-cluster-002", + "CacheNodeId": "0001", + "ReadEndpoint": { + "Address": "pat-cluster-002.xxxxih.0001.usw2.cache.amazonaws.com", + "Port": 6379 + }, + "PreferredAvailabilityZone": "us-west-2a", + "CurrentRole": "replica" + }, + { + "CacheClusterId": "my-cluster-003", + "CacheNodeId": "0001", + "ReadEndpoint": { + "Address": "pat-cluster-003.xxxxih.0001.usw2.cache.amazonaws.com", + "Port": 6379 + }, + "PreferredAvailabilityZone": "us-west-2a", + "CurrentRole": "replica" + }, + { + "CacheClusterId": "my-cluster-004", + "CacheNodeId": "0001", + "ReadEndpoint": { + "Address": "pat-cluster-004.xxxih.0001.usw2.cache.amazonaws.com", + "Port": 6379 + }, + "PreferredAvailabilityZone": "us-west-2a", + "CurrentRole": "replica" + } + ] + } + ], + "AutomaticFailover": "disabled", + "SnapshotRetentionLimit": 0, + "SnapshotWindow": "07:30-08:30", + "ClusterEnabled": false, + "CacheNodeType": "cache.r5.xlarge", + "AuthTokenEnabled": false, + "TransitEncryptionEnabled": false, + "AtRestEncryptionEnabled": false, + "ARN": "arn:aws:elasticache:us-west-2:xxxxxxxxxxx152:replicationgroup:my-cluster", + "LogDeliveryConfigurations": [ + { + "LogType": "slow-log", + "DestinationType": "cloudwatch-logs", + "DestinationDetails": { + "CloudWatchLogsDetails": { + "LogGroup": "test-log" + } + }, + "LogFormat": "json", + "Status": "active" + } + ] + } + ] + } + +For more information, see `Managing Clusters `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-reserved-cache-nodes-offerings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-reserved-cache-nodes-offerings.rst new file mode 100644 index 000000000..228091f45 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-reserved-cache-nodes-offerings.rst @@ -0,0 +1,47 @@ +**To describe reserved-cache-nodes-offerings** + +The following ``describe-reserved-cache-nodes-offerings`` example returns details of a reserved-cache-node options. :: + + aws elasticache describe-reserved-cache-nodes-offerings + +Output:: + + { + "ReservedCacheNodesOfferings": [ + { + "ReservedCacheNodesOfferingId": "01ce0a19-a476-41cb-8aee-48eacbcdc8e5", + "CacheNodeType": "cache.t3.small", + "Duration": 31536000, + "FixedPrice": 97.0, + "UsagePrice": 0.0, + "ProductDescription": "memcached", + "OfferingType": "Partial Upfront", + "RecurringCharges": [ + { + "RecurringChargeAmount": 0.011, + "RecurringChargeFrequency": "Hourly" + } + ] + }, + { + "ReservedCacheNodesOfferingId": "0443a27b-4da5-4b90-b92d-929fbd7abed2", + "CacheNodeType": "cache.m3.2xlarge", + "Duration": 31536000, + "FixedPrice": 1772.0, + "UsagePrice": 0.0, + "ProductDescription": "redis", + "OfferingType": "Heavy Utilization", + "RecurringCharges": [ + { + "RecurringChargeAmount": 0.25, + "RecurringChargeFrequency": "Hourly" + } + ] + }, + + ... + + ] + } + +For more information, see `Getting Info About Reserved Node Offerings `__ in the *Elasticache Redis User Guide* or `Getting Info About Reserved Node Offerings `__ in the *Elasticache Memcached User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-reserved-cache-nodes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-reserved-cache-nodes.rst new file mode 100755 index 000000000..fed855f3e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-reserved-cache-nodes.rst @@ -0,0 +1,34 @@ +**To describe reserved cache nodes** + +The following ``describe-reserved-cache-nodes`` example returns information about reserved cache nodes for this account, or about the specified reserved cache node. + + aws elasticache describe-reserved-cache-nodes + +Output:: + + { + "ReservedCacheNodes": [ + { + "ReservedCacheNodeId": "mynode", + "ReservedCacheNodesOfferingId": "xxxxxxxxx-xxxxx-xxxxx-xxxx-xxxxxxxx71", + "CacheNodeType": "cache.t3.small", + "StartTime": "2019-12-06T02:50:44.003Z", + "Duration": 31536000, + "FixedPrice": 0.0, + "UsagePrice": 0.0, + "CacheNodeCount": 1, + "ProductDescription": "redis", + "OfferingType": "No Upfront", + "State": "payment-pending", + "RecurringCharges": [ + { + "RecurringChargeAmount": 0.023, + "RecurringChargeFrequency": "Hourly" + } + ], + "ReservationARN": "arn:aws:elasticache:us-west-2:xxxxxxxxxxxx52:reserved-instance:mynode" + } + ] + } + +For more information, see `Managing Costs with Reserved Nodes `__ in the *Elasticache User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-service-updates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-service-updates.rst new file mode 100755 index 000000000..246cc6084 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-service-updates.rst @@ -0,0 +1,40 @@ +**To describe service updates** + +The following ``describe-service-updates`` example returns details about service updates. :: + + aws elasticache describe-service-updates + +Output:: + + { + "ServiceUpdates": [ + { + "ServiceUpdateName": "elc-xxxxxxxx7-001", + "ServiceUpdateReleaseDate": "2019-10-09T16:00:00Z", + "ServiceUpdateEndDate": "2020-02-09T15:59:59Z", + "ServiceUpdateSeverity": "important", + "ServiceUpdateRecommendedApplyByDate": "2019-11-08T15:59:59Z", + "ServiceUpdateStatus": "available", + "ServiceUpdateDescription": "Upgrades to improve the security, reliability, and operational performance of your ElastiCache nodes", + "ServiceUpdateType": "security-update", + "Engine": "redis, memcached", + "EngineVersion": "redis 2.6.13 and onwards, memcached 1.4.5 and onwards", + "AutoUpdateAfterRecommendedApplyByDate": false, + "EstimatedUpdateTime": "30 minutes per node" + }, + { + "ServiceUpdateName": "elc-xxxxxxxx4-001", + "ServiceUpdateReleaseDate": "2019-06-11T15:00:00Z", + "ServiceUpdateEndDate": "2019-10-01T09:24:00Z", + "ServiceUpdateSeverity": "important", + "ServiceUpdateRecommendedApplyByDate": "2019-07-11T14:59:59Z", + "ServiceUpdateStatus": "expired", + "ServiceUpdateDescription": "Upgrades to improve the security, reliability, and operational performance of your ElastiCache nodes", + "ServiceUpdateType": "security-update", + "Engine": "redis", + "EngineVersion": "redis 3.2.6, redis 4.0 and onwards", + "AutoUpdateAfterRecommendedApplyByDate": false, + "EstimatedUpdateTime": "30 minutes per node" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-snapshots.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-snapshots.rst new file mode 100755 index 000000000..a83dbca83 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-snapshots.rst @@ -0,0 +1,102 @@ +**To describe snapshots** + +The following ''describe-snapshots'' example returns information about your cluster or replication group snapshots. :: + + aws elasticache describe-snapshots + +Output:: + + { + "Snapshots": [ + { + "SnapshotName": "automatic.my-cluster2-002-2019-12-05-06-38", + "CacheClusterId": "my-cluster2-002", + "SnapshotStatus": "available", + "SnapshotSource": "automated", + "CacheNodeType": "cache.r5.large", + "Engine": "redis", + "EngineVersion": "5.0.5", + "NumCacheNodes": 1, + "PreferredAvailabilityZone": "us-west-2a", + "CacheClusterCreateTime": "2019-11-26T01:22:52.396Z", + "PreferredMaintenanceWindow": "mon:17:30-mon:18:30", + "TopicArn": "arn:aws:sns:us-west-2:xxxxxxxxx52:My_Topic", + "Port": 6379, + "CacheParameterGroupName": "default.redis5.0", + "CacheSubnetGroupName": "kxkxk", + "VpcId": "vpc-a3e97cdb", + "AutoMinorVersionUpgrade": true, + "SnapshotRetentionLimit": 1, + "SnapshotWindow": "06:30-07:30", + "NodeSnapshots": [ + { + "CacheNodeId": "0001", + "CacheSize": "5 MB", + "CacheNodeCreateTime": "2019-11-26T01:22:52.396Z", + "SnapshotCreateTime": "2019-12-05T06:38:23Z" + } + ] + }, + { + "SnapshotName": "myreplica-backup", + "CacheClusterId": "myreplica", + "SnapshotStatus": "available", + "SnapshotSource": "manual", + "CacheNodeType": "cache.r5.large", + "Engine": "redis", + "EngineVersion": "5.0.5", + "NumCacheNodes": 1, + "PreferredAvailabilityZone": "us-west-2a", + "CacheClusterCreateTime": "2019-11-26T00:14:52.439Z", + "PreferredMaintenanceWindow": "sat:10:00-sat:11:00", + "TopicArn": "arn:aws:sns:us-west-2:xxxxxxxxxx152:My_Topic", + "Port": 6379, + "CacheParameterGroupName": "default.redis5.0", + "CacheSubnetGroupName": "kxkxk", + "VpcId": "vpc-a3e97cdb", + "AutoMinorVersionUpgrade": true, + "SnapshotRetentionLimit": 0, + "SnapshotWindow": "09:00-10:00", + "NodeSnapshots": [ + { + "CacheNodeId": "0001", + "CacheSize": "5 MB", + "CacheNodeCreateTime": "2019-11-26T00:14:52.439Z", + "SnapshotCreateTime": "2019-11-26T00:25:01Z" + } + ] + }, + { + "SnapshotName": "my-cluster", + "CacheClusterId": "my-cluster-003", + "SnapshotStatus": "available", + "SnapshotSource": "manual", + "CacheNodeType": "cache.r5.large", + "Engine": "redis", + "EngineVersion": "5.0.5", + "NumCacheNodes": 1, + "PreferredAvailabilityZone": "us-west-2a", + "CacheClusterCreateTime": "2019-11-25T23:56:17.186Z", + "PreferredMaintenanceWindow": "sat:10:00-sat:11:00", + "TopicArn": "arn:aws:sns:us-west-2:xxxxxxxxxx152:My_Topic", + "Port": 6379, + "CacheParameterGroupName": "default.redis5.0", + "CacheSubnetGroupName": "kxkxk", + "VpcId": "vpc-a3e97cdb", + "AutoMinorVersionUpgrade": true, + "SnapshotRetentionLimit": 0, + "SnapshotWindow": "09:00-10:00", + "NodeSnapshots": [ + { + "CacheNodeId": "0001", + "CacheSize": "5 MB", + "CacheNodeCreateTime": "2019-11-25T23:56:17.186Z", + "SnapshotCreateTime": "2019-11-26T03:08:33Z" + } + ] + } + ] + } + +For more information, see `Backup and Restore for ElastiCache for Redis `__ in the *Elasticache User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-update-actions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-update-actions.rst new file mode 100755 index 000000000..dfb29e4f3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-update-actions.rst @@ -0,0 +1,74 @@ +**To describe update actions** + +The following ``describe-update-actions`` example returns details of update actions. :: + + aws elasticache describe-update-actions + +Output:: + + { + "UpdateActions": [ + { + "ReplicationGroupId": "mycluster", + "ServiceUpdateName": "elc-20191007-001", + "ServiceUpdateReleaseDate": "2019-10-09T16:00:00Z", + "ServiceUpdateSeverity": "important", + "ServiceUpdateStatus": "available", + "ServiceUpdateRecommendedApplyByDate": "2019-11-08T15:59:59Z", + "ServiceUpdateType": "security-update", + "UpdateActionAvailableDate": "2019-12-05T19:15:19.995Z", + "UpdateActionStatus": "complete", + "NodesUpdated": "9/9", + "UpdateActionStatusModifiedDate": "2019-12-05T19:15:20.461Z", + "SlaMet": "n/a", + "Engine": "redis" + }, + { + "CacheClusterId": "my-memcached-cluster", + "ServiceUpdateName": "elc-20191007-001", + "ServiceUpdateReleaseDate": "2019-10-09T16:00:00Z", + "ServiceUpdateSeverity": "important", + "ServiceUpdateStatus": "available", + "ServiceUpdateRecommendedApplyByDate": "2019-11-08T15:59:59Z", + "ServiceUpdateType": "security-update", + "UpdateActionAvailableDate": "2019-12-04T18:26:05.349Z", + "UpdateActionStatus": "complete", + "NodesUpdated": "1/1", + "UpdateActionStatusModifiedDate": "2019-12-04T18:26:05.352Z", + "SlaMet": "n/a", + "Engine": "redis" + }, + { + "ReplicationGroupId": "my-cluster", + "ServiceUpdateName": "elc-20191007-001", + "ServiceUpdateReleaseDate": "2019-10-09T16:00:00Z", + "ServiceUpdateSeverity": "important", + "ServiceUpdateStatus": "available", + "ServiceUpdateRecommendedApplyByDate": "2019-11-08T15:59:59Z", + "ServiceUpdateType": "security-update", + "UpdateActionAvailableDate": "2019-11-26T03:36:26.320Z", + "UpdateActionStatus": "complete", + "NodesUpdated": "4/4", + "UpdateActionStatusModifiedDate": "2019-12-04T22:11:12.664Z", + "SlaMet": "n/a", + "Engine": "redis" + }, + { + "ReplicationGroupId": "my-cluster2", + "ServiceUpdateName": "elc-20191007-001", + "ServiceUpdateReleaseDate": "2019-10-09T16:00:00Z", + "ServiceUpdateSeverity": "important", + "ServiceUpdateStatus": "available", + "ServiceUpdateRecommendedApplyByDate": "2019-11-08T15:59:59Z", + "ServiceUpdateType": "security-update", + "UpdateActionAvailableDate": "2019-11-26T01:26:01.617Z", + "UpdateActionStatus": "complete", + "NodesUpdated": "3/3", + "UpdateActionStatusModifiedDate": "2019-11-26T01:26:01.753Z", + "SlaMet": "n/a", + "Engine": "redis" + } + ] + } + +For more information, see `Self-Service Updates in Amazon ElastiCache `__ in the *Elasticache User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-user-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-user-groups.rst new file mode 100644 index 000000000..8231b4b64 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-user-groups.rst @@ -0,0 +1,24 @@ +**To describe user-groups** + +The following ``describe-user-groups`` example returns a list of user groups. :: + + aws elasticache describe-user-groups + +Output:: + + { + "UserGroups": [ + { + "UserGroupId": "myusergroup", + "Status": "active", + "Engine": "redis", + "UserIds": [ + "default" + ], + "ReplicationGroups": [], + "ARN": "arn:aws:elasticache:us-west-2:xxxxxxxxxx52:usergroup:myusergroup" + } + ] + } + +For more information, see `Authenticating Users with Role-Based Access Control (RBAC) `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-users.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-users.rst new file mode 100644 index 000000000..b6a6b4535 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/describe-users.rst @@ -0,0 +1,54 @@ +**To describe users** + +The following ``describe-users`` example returns a list of users. :: + + aws elasticache describe-users + +Output:: + + { + "Users": [ + { + "UserId": "default", + "UserName": "default", + "Status": "active", + "Engine": "redis", + "AccessString": "on ~* +@all", + "UserGroupIds": [ + "myusergroup" + ], + "Authentication": { + "Type": "no-password" + }, + "ARN": "arn:aws:elasticache:us-west-2:xxxxxxxxxx52:user:default" + }, + { + "UserId": "user1", + "UserName": "myUser", + "Status": "active", + "Engine": "redis", + "AccessString": "on ~* +@all", + "UserGroupIds": [], + "Authentication": { + "Type": "password", + "PasswordCount": 1 + }, + "ARN": "arn:aws:elasticache:us-west-2:xxxxxxxxxx52:user:user1" + }, + { + "UserId": "user2", + "UserName": "myUser", + "Status": "active", + "Engine": "redis", + "AccessString": "on ~app::* -@all +@read +@hash +@bitmap +@geo -setbit -bitfield -hset -hsetnx -hmset -hincrby -hincrbyfloat -hdel -bitop -geoadd -georadius -georadiusbymember", + "UserGroupIds": [], + "Authentication": { + "Type": "password", + "PasswordCount": 1 + }, + "ARN": "arn:aws:elasticache:us-west-2:xxxxxxxxxx52:user:user2" + } + ] + } + +For more information, see `Authenticating Users with Role-Based Access Control (RBAC) `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/disassociate-global-replication-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/disassociate-global-replication-group.rst new file mode 100644 index 000000000..cbf14f0b8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/disassociate-global-replication-group.rst @@ -0,0 +1,43 @@ +**To diassociate a secondary cluster from a global replication group** + +The following ``disassociate-global-replication-group`` example removes a secondary cluster from a Global datastore :: + + aws elasticache disassociate-global-replication-group \ + --global-replication-group-id my-grg \ + --replication-group-id my-cluster-grg-secondary \ + --replication-group-region us-east-1 + +Output:: + + { + "GlobalReplicationGroup": { + "GlobalReplicationGroupId": "my-grg", + "GlobalReplicationGroupDescription": "my-grg", + "Status": "modifying", + "CacheNodeType": "cache.r5.large", + "Engine": "redis", + "EngineVersion": "5.0.6", + "Members": [ + { + "ReplicationGroupId": "my-cluster-grg-secondary", + "ReplicationGroupRegion": "us-east-1", + "Role": "SECONDARY", + "AutomaticFailover": "enabled", + "Status": "associated" + }, + { + "ReplicationGroupId": "my-cluster-grg", + "ReplicationGroupRegion": "us-west-2", + "Role": "PRIMARY", + "AutomaticFailover": "enabled", + "Status": "associated" + } + ], + "ClusterEnabled": false, + "AuthTokenEnabled": false, + "TransitEncryptionEnabled": false, + "AtRestEncryptionEnabled": false + } + } + +For more information, see `Replication Across AWS Regions Using Global Datastore `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/increase-node-groups-in-global-replication-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/increase-node-groups-in-global-replication-group.rst new file mode 100644 index 000000000..1d50903dc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/increase-node-groups-in-global-replication-group.rst @@ -0,0 +1,65 @@ +**To increase the number of node groups in a global replication group** + +The following ``increase-node-groups-in-global-replication-group`` increases the node group count using the Redis engine. :: + + aws elasticache increase-node-groups-in-global-replication-group \ + --global-replication-group-id sgaui-pat-test-4 \ + --node-group-count 6 \ + --apply-immediately + +Output:: + + { + "GlobalReplicationGroup": { + "GlobalReplicationGroupId": "sgaui-test-4", + "GlobalReplicationGroupDescription": "test-4", + "Status": "modifying", + "CacheNodeType": "cache.r5.large", + "Engine": "redis", + "EngineVersion": "5.0.6", + "Members": [ + { + "ReplicationGroupId": "my-cluster-b", + "ReplicationGroupRegion": "us-east-1", + "Role": "SECONDARY", + "AutomaticFailover": "enabled", + "Status": "associated" + }, + { + "ReplicationGroupId": "my-cluster-a", + "ReplicationGroupRegion": "us-west-2", + "Role": "PRIMARY", + "AutomaticFailover": "enabled", + "Status": "associated" + } + ], + "ClusterEnabled": true, + "GlobalNodeGroups": [ + { + "GlobalNodeGroupId": "sgaui-test-4-0001", + "Slots": "0-234,2420-5461" + }, + { + "GlobalNodeGroupId": "sgaui-test-4-0002", + "Slots": "5462-5904,6997-9830" + }, + { + "GlobalNodeGroupId": "sgaui-test-4-0003", + "Slots": "10923-11190,13375-16383" + }, + { + "GlobalNodeGroupId": "sgaui-test-4-0004", + "Slots": "235-2419,5905-6996" + }, + { + "GlobalNodeGroupId": "sgaui-test-4-0005", + "Slots": "9831-10922,11191-13374" + } + ], + "AuthTokenEnabled": false, + "TransitEncryptionEnabled": false, + "AtRestEncryptionEnabled": false + } + } + +For more information, see `Replication Across AWS Regions Using Global Datastore `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/increase-replica-count.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/increase-replica-count.rst new file mode 100755 index 000000000..0f6608fbc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/increase-replica-count.rst @@ -0,0 +1,70 @@ +**To increase replica count** + +The following ``increase-replica-count`` example does one of two things. It can dynamically increase the number of replicas in a Redis (cluster mode disabled) replication group. Or it can dynamically increase the number of replica nodes in one or more node groups (shards) of a Redis (cluster mode enabled) replication group. This operation is performed with no cluster downtime. :: + + aws elasticache increase-replica-count \ + --replication-group-id "my-cluster" \ + --apply-immediately \ + --new-replica-count 3 + +Output:: + + { + "ReplicationGroup": { + "ReplicationGroupId": "my-cluster", + "Description": " ", + "Status": "modifying", + "PendingModifiedValues": {}, + "MemberClusters": [ + "my-cluster-001", + "my-cluster-002", + "my-cluster-003", + "my-cluster-004" + ], + "NodeGroups": [ + { + "NodeGroupId": "0001", + "Status": "modifying", + "PrimaryEndpoint": { + "Address": "my-cluster.xxxxxih.ng.0001.usw2.cache.amazonaws.com", + "Port": 6379 + }, + "ReaderEndpoint": { + "Address": "my-cluster-ro.xxxxxxih.ng.0001.usw2.cache.amazonaws.com", + "Port": 6379 + }, + "NodeGroupMembers": [ + { + "CacheClusterId": "my-cluster-001", + "CacheNodeId": "0001", + "ReadEndpoint": { + "Address": "my-cluster-001.xxxxxih.0001.usw2.cache.amazonaws.com", + "Port": 6379 + }, + "PreferredAvailabilityZone": "us-west-2a", + "CurrentRole": "primary" + }, + { + "CacheClusterId": "my-cluster-003", + "CacheNodeId": "0001", + "ReadEndpoint": { + "Address": "my-cluster-003.xxxxxih.0001.usw2.cache.amazonaws.com", + "Port": 6379 + }, + "PreferredAvailabilityZone": "us-west-2a", + "CurrentRole": "replica" + } + ] + } + ], + "AutomaticFailover": "disabled", + "SnapshotRetentionLimit": 0, + "SnapshotWindow": "07:30-08:30", + "ClusterEnabled": false, + "CacheNodeType": "cache.r5.xlarge", + "TransitEncryptionEnabled": false, + "AtRestEncryptionEnabled": false + } + } + +For more information, see `Increasing the Number of Replicas in a Shard `__ in the *Elasticache User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/list-allowed-node-type-modifications.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/list-allowed-node-type-modifications.rst new file mode 100755 index 000000000..7c3de347a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/list-allowed-node-type-modifications.rst @@ -0,0 +1,42 @@ +**To list the allowed node modifications** + +The following ``list-allowed-node-type-modifications`` example lists all the available node types that you can scale your Redis cluster's or replication group's current node type to. :: + + aws elasticache list-allowed-node-type-modifications \ + --replication-group-id "my-replication-group" + +Output:: + + { + "ScaleUpModifications": [ + "cache.m5.12xlarge", + "cache.m5.24xlarge", + "cache.m5.4xlarge", + "cache.r5.12xlarge", + "cache.r5.24xlarge", + "cache.r5.2xlarge", + "cache.r5.4xlarge" + ], + "ScaleDownModifications": [ + "cache.m3.large", + "cache.m3.medium", + "cache.m3.xlarge", + "cache.m4.large", + "cache.m4.xlarge", + "cache.m5.2xlarge", + "cache.m5.large", + "cache.m5.xlarge", + "cache.r3.large", + "cache.r4.large", + "cache.r4.xlarge", + "cache.r5.large", + "cache.t2.medium", + "cache.t2.micro", + "cache.t2.small", + "cache.t3.medium", + "cache.t3.micro", + "cache.t3.small" + ] + } + +For more information, see `Scaling ElastiCache for Redis Clusters `__ in the *Elasticache User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/list-tags-for-resource.rst new file mode 100644 index 000000000..f57bb8f57 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/list-tags-for-resource.rst @@ -0,0 +1,23 @@ +**To list tags for a resource** + +The following ``list-tags-for-resource`` example lists tags for a resource. :: + + aws elasticache list-tags-for-resource \ + --resource-name "arn:aws:elasticache:us-east-1:123456789012:cluster:my-cluster" + +Output:: + + { + "TagList": [ + { + "Key": "Project", + "Value": "querySpeedUp" + }, + { + "Key": "Environment", + "Value": "PROD" + } + ] + } + +For more information, see `Listing Tags Using the AWS CLI `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-cache-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-cache-cluster.rst new file mode 100755 index 000000000..180208a0c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-cache-cluster.rst @@ -0,0 +1,39 @@ +**To modify cache clusters** + +The following ``modify-cache-cluster`` example modifies the settings for the specified cluster. :: + + aws elasticache modify-cache-cluster \ + --cache-cluster-id "my-cluster" \ + --num-cache-nodes 1 + +Output:: + + { + "CacheCluster": { + "CacheClusterId": "my-cluster", + "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", + "CacheNodeType": "cache.m5.large", + "Engine": "redis", + "EngineVersion": "5.0.5", + "CacheClusterStatus": "available", + "NumCacheNodes": 1, + "PreferredAvailabilityZone": "us-west-2c", + "CacheClusterCreateTime": "2019-12-04T18:24:56.652Z", + "PreferredMaintenanceWindow": "sat:10:00-sat:11:00", + "PendingModifiedValues": {}, + "CacheSecurityGroups": [], + "CacheParameterGroup": { + "CacheParameterGroupName": "default.redis5.0", + "ParameterApplyStatus": "in-sync", + "CacheNodeIdsToReboot": [] + }, + "CacheSubnetGroupName": "default", + "AutoMinorVersionUpgrade": true, + "SnapshotRetentionLimit": 0, + "SnapshotWindow": "07:00-08:00", + "TransitEncryptionEnabled": false, + "AtRestEncryptionEnabled": false + } + } + +For more information, see `Modifying an ElastiCache Cluster `__ in the *Elasticache User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-cache-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-cache-parameter-group.rst new file mode 100755 index 000000000..89fd9dd15 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-cache-parameter-group.rst @@ -0,0 +1,15 @@ +**To modify a cache parameter group** + +The following ``modify-cache-parameter-group`` example modifies the parameters of the specified cache parameter group. :: + + aws elasticache modify-cache-parameter-group \ + --cache-parameter-group-name "mygroup" \ + --parameter-name-values "ParameterName=activedefrag, ParameterValue=no" + +Output:: + + { + "CacheParameterGroupName": "mygroup" + } + +For more information, see `Modifying a Parameter Group `__ in the *Elasticache User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-cache-subnet-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-cache-subnet-group.rst new file mode 100755 index 000000000..0b99896d0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-cache-subnet-group.rst @@ -0,0 +1,27 @@ +**To modify a cache subnet group** + +The following ``modify-cache-subnet-group`` example modifies the specified cache subnet group. :: + + aws elasticache modify-cache-subnet-group \ + --cache-subnet-group-name kxkxk \ + --cache-subnet-group-description "mygroup" + +Output:: + + { + "CacheSubnetGroup": { + "CacheSubnetGroupName": "kxkxk", + "CacheSubnetGroupDescription": "mygroup", + "VpcId": "vpc-xxxxcdb", + "Subnets": [ + { + "SubnetIdentifier": "subnet-xxxxbff", + "SubnetAvailabilityZone": { + "Name": "us-west-2a" + } + } + ] + } + } + +For more information, see `Modifying a Subnet Group `__ in the *Elasticache User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-global-replication-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-global-replication-group.rst new file mode 100644 index 000000000..155ba8d0e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-global-replication-group.rst @@ -0,0 +1,27 @@ +**To modify a global replication group** + +The following ``modify-global-replication-group`` modifies the properties of a global replication group, in this case disabling automatic failover, using the Redis engine. :: + + aws elasticache modify-global-replication-group \ + --global-replication-group-id sgaui-pat-group \ + --apply-immediately \ + --no-automatic-failover-enabled + +Output :: + + { + "GlobalReplicationGroup": { + "GlobalReplicationGroupId": "sgaui-test-group", + "GlobalReplicationGroupDescription": " ", + "Status": "modifying", + "CacheNodeType": "cache.r5.large", + "Engine": "redis", + "EngineVersion": "5.0.6", + "ClusterEnabled": false, + "AuthTokenEnabled": false, + "TransitEncryptionEnabled": false, + "AtRestEncryptionEnabled": false + } + } + +For more information, see `Replication Across AWS Regions Using Global Datastore `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-replication-group-shard-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-replication-group-shard-configuration.rst new file mode 100644 index 000000000..5c3a9aae8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-replication-group-shard-configuration.rst @@ -0,0 +1,145 @@ +**To modify a replication group shard configuration** + +The following ``modify-replication-group-shard-configuration`` decreases the node group count using the Redis engine. :: + + aws elasticache modify-replication-group-shard-configuration \ + --replication-group-id mycluster \ + --node-group-count 3 \ + --apply-immediately \ + --node-groups-to-remove 0002 + +Output :: + + { + "ReplicationGroup": { + "ReplicationGroupId": "mycluster", + "Description": "mycluster", + "GlobalReplicationGroupInfo": {}, + "Status": "modifying", + "PendingModifiedValues": {}, + "MemberClusters": [ + "mycluster-0002-001", + "mycluster-0002-002", + "mycluster-0002-003", + "mycluster-0003-001", + "mycluster-0003-002", + "mycluster-0003-003", + "mycluster-0003-004", + "mycluster-0004-001", + "mycluster-0004-002", + "mycluster-0004-003", + "mycluster-0005-001", + "mycluster-0005-002", + "mycluster-0005-003" + ], + "NodeGroups": [ + { + "NodeGroupId": "0002", + "Status": "modifying", + "Slots": "894-1767,3134-4443,5149-5461,6827-7332,12570-13662", + "NodeGroupMembers": [ + { + "CacheClusterId": "mycluster-0002-001", + "CacheNodeId": "0001", + "PreferredAvailabilityZone": "us-west-2c" + }, + { + "CacheClusterId": "mycluster-0002-002", + "CacheNodeId": "0001", + "PreferredAvailabilityZone": "us-west-2a" + }, + { + "CacheClusterId": "mycluster-0002-003", + "CacheNodeId": "0001", + "PreferredAvailabilityZone": "us-west-2b" + } + ] + }, + { + "NodeGroupId": "0003", + "Status": "modifying", + "Slots": "0-324,5462-5692,6784-6826,7698-8191,10923-11075,12441-12569,13663-16383", + "NodeGroupMembers": [ + { + "CacheClusterId": "mycluster-0003-001", + "CacheNodeId": "0001", + "PreferredAvailabilityZone": "us-west-2c" + }, + { + "CacheClusterId": "mycluster-0003-002", + "CacheNodeId": "0001", + "PreferredAvailabilityZone": "us-west-2b" + }, + { + "CacheClusterId": "mycluster-0003-003", + "CacheNodeId": "0001", + "PreferredAvailabilityZone": "us-west-2a" + }, + { + "CacheClusterId": "mycluster-0003-004", + "CacheNodeId": "0001", + "PreferredAvailabilityZone": "us-west-2c" + } + ] + }, + { + "NodeGroupId": "0004", + "Status": "modifying", + "Slots": "325-336,4706-5148,7333-7697,9012-10922,11076-12440", + "NodeGroupMembers": [ + { + "CacheClusterId": "mycluster-0004-001", + "CacheNodeId": "0001", + "PreferredAvailabilityZone": "us-west-2b" + }, + { + "CacheClusterId": "mycluster-0004-002", + "CacheNodeId": "0001", + "PreferredAvailabilityZone": "us-west-2a" + }, + { + "CacheClusterId": "mycluster-0004-003", + "CacheNodeId": "0001", + "PreferredAvailabilityZone": "us-west-2c" + } + ] + }, + { + "NodeGroupId": "0005", + "Status": "modifying", + "Slots": "337-893,1768-3133,4444-4705,5693-6783,8192-9011", + "NodeGroupMembers": [ + { + "CacheClusterId": "mycluster-0005-001", + "CacheNodeId": "0001", + "PreferredAvailabilityZone": "us-west-2a" + }, + { + "CacheClusterId": "mycluster-0005-002", + "CacheNodeId": "0001", + "PreferredAvailabilityZone": "us-west-2c" + }, + { + "CacheClusterId": "mycluster-0005-003", + "CacheNodeId": "0001", + "PreferredAvailabilityZone": "us-west-2b" + } + ] + } + ], + "AutomaticFailover": "enabled", + "MultiAZ": "enabled", + "ConfigurationEndpoint": { + "Address": "mycluster.g2xbih.clustercfg.usw2.cache.amazonaws.com", + "Port": 6379 + }, + "SnapshotRetentionLimit": 1, + "SnapshotWindow": "13:00-14:00", + "ClusterEnabled": true, + "CacheNodeType": "cache.r5.xlarge", + "TransitEncryptionEnabled": false, + "AtRestEncryptionEnabled": false + } + } + +For more information, see `Scaling ElastiCache for Redis Clusters `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-replication-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-replication-group.rst new file mode 100644 index 000000000..23d1b776d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-replication-group.rst @@ -0,0 +1,85 @@ +**To modify a replication group** + +The following ``modify-replication-group`` disables Multi-AZ using the Redis engine. :: + + aws elasticache modify-replication-group \ + --replication-group-id test-cluster \ + --no-multi-az-enabled \ + --apply-immediately + +Output :: + + { + "ReplicationGroup": { + "ReplicationGroupId": "test-cluster", + "Description": "test-cluster", + "GlobalReplicationGroupInfo": { + "GlobalReplicationGroupId": "sgaui-pat-group", + "GlobalReplicationGroupMemberRole": "PRIMARY" + }, + "Status": "available", + "PendingModifiedValues": {}, + "MemberClusters": [ + "test-cluster-001", + "test-cluster-002", + "test-cluster-003" + ], + "NodeGroups": [ + { + "NodeGroupId": "0001", + "Status": "available", + "PrimaryEndpoint": { + "Address": "test-cluster.g2xbih.ng.0001.usw2.cache.amazonaws.com", + "Port": 6379 + }, + "ReaderEndpoint": { + "Address": "test-cluster-ro.g2xbih.ng.0001.usw2.cache.amazonaws.com", + "Port": 6379 + }, + "NodeGroupMembers": [ + { + "CacheClusterId": "test-cluster-001", + "CacheNodeId": "0001", + "ReadEndpoint": { + "Address": "test-cluster-001.g2xbih.0001.usw2.cache.amazonaws.com", + "Port": 6379 + }, + "PreferredAvailabilityZone": "us-west-2c", + "CurrentRole": "primary" + }, + { + "CacheClusterId": "test-cluster-002", + "CacheNodeId": "0001", + "ReadEndpoint": { + "Address": "test-cluster-002.g2xbih.0001.usw2.cache.amazonaws.com", + "Port": 6379 + }, + "PreferredAvailabilityZone": "us-west-2b", + "CurrentRole": "replica" + }, + { + "CacheClusterId": "test-cluster-003", + "CacheNodeId": "0001", + "ReadEndpoint": { + "Address": "test-cluster-003.g2xbih.0001.usw2.cache.amazonaws.com", + "Port": 6379 + }, + "PreferredAvailabilityZone": "us-west-2a", + "CurrentRole": "replica" + } + ] + } + ], + "SnapshottingClusterId": "test-cluster-002", + "AutomaticFailover": "enabled", + "MultiAZ": "disabled", + "SnapshotRetentionLimit": 1, + "SnapshotWindow": "08:00-09:00", + "ClusterEnabled": false, + "CacheNodeType": "cache.r5.large", + "TransitEncryptionEnabled": false, + "AtRestEncryptionEnabled": false + } + } + +For more information, see `Modifying a Replication Group `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-user-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-user-group.rst new file mode 100644 index 000000000..0dd5ce9ac --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-user-group.rst @@ -0,0 +1,27 @@ +**To modify a user group** + +The following ``modify-user-group`` example adds a user to the user group. :: + + aws elasticache modify-user-group \ + --user-group-id myusergroup \ + --user-ids-to-add user1 + +Output:: + + { + "UserGroupId": "myusergroup", + "Status": "modifying", + "Engine": "redis", + "UserIds": [ + "default" + ], + "PendingChanges": { + "UserIdsToAdd": [ + "user1" + ] + }, + "ReplicationGroups": [], + "ARN": "arn:aws:elasticache:us-west-2:xxxxxxxxxx52:usergroup:myusergroup" + } + +For more information, see `Authenticating Users with Role-Based Access Control (RBAC) `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-user.rst new file mode 100644 index 000000000..4f85bd18d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/modify-user.rst @@ -0,0 +1,25 @@ +**To modify a user** + +The following ``modify-user`` example modifies a user's access string. :: + + aws elasticache modify-user \ + --user-id user2 \ + --append-access-string "on ~* +@all" + +Output:: + + { + "UserId": "user2", + "UserName": "myUser", + "Status": "modifying", + "Engine": "redis", + "AccessString": "on ~* +@all", + "UserGroupIds": [], + "Authentication": { + "Type": "password", + "PasswordCount": 1 + }, + "ARN": "arn:aws:elasticache:us-west-2:xxxxxxxxxx52:user:user2" + } + +For more information, see `Authenticating Users with Role-Based Access Control (RBAC) `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/purchase-reserved-cache-nodes-offering.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/purchase-reserved-cache-nodes-offering.rst new file mode 100644 index 000000000..43eeddad5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/purchase-reserved-cache-nodes-offering.rst @@ -0,0 +1,32 @@ +**To purchase a reserved-cache-node-offering** + +The following ``purchase-reserved-cache-nodes-offering`` example allows you to purchase a reserved cache node offering. :: + + aws elasticache purchase-reserved-cache-nodes-offering \ + --reserved-cache-nodes-offering-id xxxxxxx-4da5-4b90-b92d-929fbd7abed2 + +Output :: + + { + "ReservedCacheNode": { + "ReservedCacheNodeId": "ri-2020-06-30-17-59-40-474", + "ReservedCacheNodesOfferingId": "xxxxxxx-4da5-4b90-b92d-929fbd7abed2", + "CacheNodeType": "cache.m3.2xlarge", + "StartTime": "2020-06-30T17:59:40.474000+00:00", + "Duration": 31536000, + "FixedPrice": 1772.0, + "UsagePrice": 0.0, + "CacheNodeCount": 1, + "ProductDescription": "redis", + "OfferingType": "Heavy Utilization", + "State": "payment-pending", + "RecurringCharges": [ + { + "RecurringChargeAmount": 0.25, + "RecurringChargeFrequency": "Hourly" + } + ] + } + } + +For more information, see `Getting Info About Reserved Node Offerings `__ in the *Elasticache Redis User Guide* or `Getting Info About Reserved Node Offerings `__ in the *Elasticache Memcached User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/reboot-cache-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/reboot-cache-cluster.rst new file mode 100755 index 000000000..68d449ab5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/reboot-cache-cluster.rst @@ -0,0 +1,54 @@ +**To reboot a cache cluster** + +The following ``reboot-cache-cluster`` example reboots some, or all, of the cache nodes within a provisioned cluster. This operation applies any modified cache parameter groups to the cluster. The reboot operation takes place as soon as possible, and results in a momentary outage to the cluster. During the reboot, the cluster status is set to ``REBOOTING``. :: + + aws elasticache reboot-cache-cluster \ + --cache-cluster-id "my-cluster-001" \ + --cache-node-ids-to-reboot "0001" + +Output:: + + { + "CacheCluster": { + "CacheClusterId": "my-cluster-001", + "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", + "CacheNodeType": "cache.r5.xlarge", + "Engine": "redis", + "EngineVersion": "5.0.5", + "CacheClusterStatus": "rebooting cache cluster nodes", + "NumCacheNodes": 1, + "PreferredAvailabilityZone": "us-west-2a", + "CacheClusterCreateTime": "2019-11-26T03:35:04.546Z", + "PreferredMaintenanceWindow": "mon:04:05-mon:05:05", + "PendingModifiedValues": {}, + "NotificationConfiguration": { + "TopicArn": "arn:aws:sns:us-west-2:xxxxxxxxxx152:My_Topic", + "TopicStatus": "active" + }, + "CacheSecurityGroups": [], + "CacheParameterGroup": { + "CacheParameterGroupName": "mygroup", + "ParameterApplyStatus": "in-sync", + "CacheNodeIdsToReboot": [] + }, + "CacheSubnetGroupName": "kxkxk", + "AutoMinorVersionUpgrade": true, + "SecurityGroups": [ + { + "SecurityGroupId": "sg-xxxxxxxxxxxxx836", + "Status": "active" + }, + { + "SecurityGroupId": "sg-xxxxxxxx7b", + "Status": "active" + } + ], + "ReplicationGroupId": "my-cluster", + "SnapshotRetentionLimit": 0, + "SnapshotWindow": "07:30-08:30", + "TransitEncryptionEnabled": false, + "AtRestEncryptionEnabled": false + } + } + +For more information, see `Rebooting a Cluster `__ in the *Elasticache User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/test-failover.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/test-failover.rst new file mode 100755 index 000000000..8158b2900 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticache/test-failover.rst @@ -0,0 +1,108 @@ +**To test failover of a node group** + +The following ``test-failover`` example tests automatic failover on the specified node group (called a shard in the console) in a replication group (called a cluster in the console). :: + + aws elasticache test-failover / + --replication-group-id "mycluster" / + --node-group-id "0001" + +Output:: + + { + "ReplicationGroup": { + "ReplicationGroupId": "mycluster", + "Description": "My Cluster", + "Status": "available", + "PendingModifiedValues": {}, + "MemberClusters": [ + "mycluster-0001-001", + "mycluster-0001-002", + "mycluster-0001-003", + "mycluster-0002-001", + "mycluster-0002-002", + "mycluster-0002-003", + "mycluster-0003-001", + "mycluster-0003-002", + "mycluster-0003-003" + ], + "NodeGroups": [ + { + "NodeGroupId": "0001", + "Status": "available", + "Slots": "0-5461", + "NodeGroupMembers": [ + { + "CacheClusterId": "mycluster-0001-001", + "CacheNodeId": "0001", + "PreferredAvailabilityZone": "us-west-2b" + }, + { + "CacheClusterId": "mycluster-0001-002", + "CacheNodeId": "0001", + "PreferredAvailabilityZone": "us-west-2a" + }, + { + "CacheClusterId": "mycluster-0001-003", + "CacheNodeId": "0001", + "PreferredAvailabilityZone": "us-west-2c" + } + ] + }, + { + "NodeGroupId": "0002", + "Status": "available", + "Slots": "5462-10922", + "NodeGroupMembers": [ + { + "CacheClusterId": "mycluster-0002-001", + "CacheNodeId": "0001", + "PreferredAvailabilityZone": "us-west-2a" + }, + { + "CacheClusterId": "mycluster-0002-002", + "CacheNodeId": "0001", + "PreferredAvailabilityZone": "us-west-2b" + }, + { + "CacheClusterId": "mycluster-0002-003", + "CacheNodeId": "0001", + "PreferredAvailabilityZone": "us-west-2c" + } + ] + }, + { + "NodeGroupId": "0003", + "Status": "available", + "Slots": "10923-16383", + "NodeGroupMembers": [ + { + "CacheClusterId": "mycluster-0003-001", + "CacheNodeId": "0001", + "PreferredAvailabilityZone": "us-west-2c" + }, + { + "CacheClusterId": "mycluster-0003-002", + "CacheNodeId": "0001", + "PreferredAvailabilityZone": "us-west-2b" + }, + { + "CacheClusterId": "mycluster-0003-003", + "CacheNodeId": "0001", + "PreferredAvailabilityZone": "us-west-2a" + } + ] + } + ], + "AutomaticFailover": "enabled", + "ConfigurationEndpoint": { + "Address": "mycluster.xxxxih.clustercfg.usw2.cache.amazonaws.com", + "Port": 6379 + }, + "SnapshotRetentionLimit": 1, + "SnapshotWindow": "13:00-14:00", + "ClusterEnabled": true, + "CacheNodeType": "cache.r5.large", + "TransitEncryptionEnabled": false, + "AtRestEncryptionEnabled": false + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/abort-environment-update.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/abort-environment-update.rst new file mode 100644 index 000000000..d7aebf089 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/abort-environment-update.rst @@ -0,0 +1,5 @@ +**To abort a deployment** + +The following command aborts a running application version deployment for an environment named ``my-env``:: + + aws elasticbeanstalk abort-environment-update --environment-name my-env diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/check-dns-availability.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/check-dns-availability.rst new file mode 100644 index 000000000..efb0a513a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/check-dns-availability.rst @@ -0,0 +1,12 @@ +**To check the availability of a CNAME** + +The following command checks the availability of the subdomain ``my-cname.elasticbeanstalk.com``:: + + aws elasticbeanstalk check-dns-availability --cname-prefix my-cname + +Output:: + + { + "Available": true, + "FullyQualifiedCNAME": "my-cname.elasticbeanstalk.com" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/create-application-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/create-application-version.rst new file mode 100644 index 000000000..1043b7eb7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/create-application-version.rst @@ -0,0 +1,23 @@ +**To create a new application version** + +The following command creates a new version, "v1" of an application named "MyApp":: + + aws elasticbeanstalk create-application-version --application-name MyApp --version-label v1 --description MyAppv1 --source-bundle S3Bucket="amzn-s3-demo-bucket",S3Key="sample.war" --auto-create-application + +The application will be created automatically if it does not already exist, due to the auto-create-application option. The source bundle is a .war file stored in an s3 bucket named "amzn-s3-demo-bucket" that contains the Apache Tomcat sample application. + +Output:: + + { + "ApplicationVersion": { + "ApplicationName": "MyApp", + "VersionLabel": "v1", + "Description": "MyAppv1", + "DateCreated": "2015-02-03T23:01:25.412Z", + "DateUpdated": "2015-02-03T23:01:25.412Z", + "SourceBundle": { + "S3Bucket": "amzn-s3-demo-bucket", + "S3Key": "sample.war" + } + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/create-application.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/create-application.rst new file mode 100644 index 000000000..f419ef194 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/create-application.rst @@ -0,0 +1,19 @@ +**To create a new application** + +The following command creates a new application named "MyApp":: + + aws elasticbeanstalk create-application --application-name MyApp --description "my application" + +The ``create-application`` command only configures the application's name and description. To upload source code for the application, create an initial version of the application using ``create-application-version``. ``create-application-version`` also has an ``auto-create-application`` option that lets you create the application and the application version in one step. + +Output:: + + { + "Application": { + "ApplicationName": "MyApp", + "ConfigurationTemplates": [], + "DateUpdated": "2015-02-12T18:32:21.181Z", + "Description": "my application", + "DateCreated": "2015-02-12T18:32:21.181Z" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/create-configuration-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/create-configuration-template.rst new file mode 100644 index 000000000..86da851ef --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/create-configuration-template.rst @@ -0,0 +1,15 @@ +**To create a configuration template** + +The following command creates a configuration template named ``my-app-v1`` from the settings applied to an environment with the id ``e-rpqsewtp2j``:: + + aws elasticbeanstalk create-configuration-template --application-name my-app --template-name my-app-v1 --environment-id e-rpqsewtp2j + +Output:: + + { + "ApplicationName": "my-app", + "TemplateName": "my-app-v1", + "DateCreated": "2015-08-12T18:40:39Z", + "DateUpdated": "2015-08-12T18:40:39Z", + "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/create-environment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/create-environment.rst new file mode 100644 index 000000000..b4bb0cd4a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/create-environment.rst @@ -0,0 +1,64 @@ +**To create a new environment for an application** + +The following command creates a new environment for version "v1" of a java application named "my-app":: + + aws elasticbeanstalk create-environment --application-name my-app --environment-name my-env --cname-prefix my-app --version-label v1 --solution-stack-name "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8" + +Output:: + + { + "ApplicationName": "my-app", + "EnvironmentName": "my-env", + "VersionLabel": "v1", + "Status": "Launching", + "EnvironmentId": "e-izqpassy4h", + "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8", + "CNAME": "my-app.elasticbeanstalk.com", + "Health": "Grey", + "Tier": { + "Type": "Standard", + "Name": "WebServer", + "Version": " " + }, + "DateUpdated": "2015-02-03T23:04:54.479Z", + "DateCreated": "2015-02-03T23:04:54.479Z" + } + +``v1`` is the label of an application version previously uploaded with `create-application-version`_. + +.. _`create-application-version`: http://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/create-application-version.html + +**To specify a JSON file to define environment configuration options** + +The following ``create-environment`` command specifies that a JSON file with the name ``myoptions.json`` should be used to override values obtained from the solution stack or the configuration template:: + + aws elasticbeanstalk create-environment --environment-name sample-env --application-name sampleapp --option-settings file://myoptions.json + +``myoptions.json`` is a JSON object defining several settings:: + + [ + { + "Namespace": "aws:elb:healthcheck", + "OptionName": "Interval", + "Value": "15" + }, + { + "Namespace": "aws:elb:healthcheck", + "OptionName": "Timeout", + "Value": "8" + }, + { + "Namespace": "aws:elb:healthcheck", + "OptionName": "HealthyThreshold", + "Value": "2" + }, + { + "Namespace": "aws:elb:healthcheck", + "OptionName": "UnhealthyThreshold", + "Value": "3" + } + ] + +For more information, see `Option Values`_ in the *AWS Elastic Beanstalk Developer Guide*. + +.. _`Option Values`: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/create-storage-location.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/create-storage-location.rst new file mode 100644 index 000000000..8e303241e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/create-storage-location.rst @@ -0,0 +1,11 @@ +**To create a storage location** + +The following command creates a storage location in Amazon S3:: + + aws elasticbeanstalk create-storage-location + +Output:: + + { + "S3Bucket": "elasticbeanstalk-us-west-2-0123456789012" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/delete-application-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/delete-application-version.rst new file mode 100644 index 000000000..997e589d4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/delete-application-version.rst @@ -0,0 +1,5 @@ +**To delete an application version** + +The following command deletes an application version named ``22a0-stage-150819_182129`` for an application named ``my-app``:: + + aws elasticbeanstalk delete-application-version --version-label 22a0-stage-150819_182129 --application-name my-app diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/delete-application.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/delete-application.rst new file mode 100644 index 000000000..58941fef8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/delete-application.rst @@ -0,0 +1,5 @@ +**To delete an application** + +The following command deletes an application named ``my-app``:: + + aws elasticbeanstalk delete-application --application-name my-app diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/delete-configuration-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/delete-configuration-template.rst new file mode 100644 index 000000000..a0c1fe333 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/delete-configuration-template.rst @@ -0,0 +1,5 @@ +**To delete a configuration template** + +The following command deletes a configuration template named ``my-template`` for an application named ``my-app``:: + + aws elasticbeanstalk delete-configuration-template --template-name my-template --application-name my-app diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/delete-environment-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/delete-environment-configuration.rst new file mode 100644 index 000000000..d294ba548 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/delete-environment-configuration.rst @@ -0,0 +1,5 @@ +**To delete a draft configuration** + +The following command deletes a draft configuration for an environment named ``my-env``:: + + aws elasticbeanstalk delete-environment-configuration --environment-name my-env --application-name my-app diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-application-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-application-versions.rst new file mode 100644 index 000000000..5f5adbfd4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-application-versions.rst @@ -0,0 +1,34 @@ +**To view information about an application version** + +The following command retrieves information about an application version labeled ``v2``:: + + aws elasticbeanstalk describe-application-versions --application-name my-app --version-label "v2" + +Output:: + + { + "ApplicationVersions": [ + { + "ApplicationName": "my-app", + "VersionLabel": "v2", + "Description": "update cover page", + "DateCreated": "2015-07-23T01:32:26.079Z", + "DateUpdated": "2015-07-23T01:32:26.079Z", + "SourceBundle": { + "S3Bucket": "elasticbeanstalk-us-west-2-015321684451", + "S3Key": "my-app/5026-stage-150723_224258.war" + } + }, + { + "ApplicationName": "my-app", + "VersionLabel": "v1", + "Description": "initial version", + "DateCreated": "2015-07-23T22:26:10.816Z", + "DateUpdated": "2015-07-23T22:26:10.816Z", + "SourceBundle": { + "S3Bucket": "elasticbeanstalk-us-west-2-015321684451", + "S3Key": "my-app/5026-stage-150723_222618.war" + } + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-applications.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-applications.rst new file mode 100644 index 000000000..96d837809 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-applications.rst @@ -0,0 +1,41 @@ +**To view a list of applications** + +The following command retrieves information about applications in the current region:: + + aws elasticbeanstalk describe-applications + +Output:: + + { + "Applications": [ + { + "ApplicationName": "ruby", + "ConfigurationTemplates": [], + "DateUpdated": "2015-08-13T21:05:44.376Z", + "Versions": [ + "Sample Application" + ], + "DateCreated": "2015-08-13T21:05:44.376Z" + }, + { + "ApplicationName": "pythonsample", + "Description": "Application created from the EB CLI using \"eb init\"", + "Versions": [ + "Sample Application" + ], + "DateCreated": "2015-08-13T19:05:43.637Z", + "ConfigurationTemplates": [], + "DateUpdated": "2015-08-13T19:05:43.637Z" + }, + { + "ApplicationName": "nodejs-example", + "ConfigurationTemplates": [], + "DateUpdated": "2015-08-06T17:50:02.486Z", + "Versions": [ + "add elasticache", + "First Release" + ], + "DateCreated": "2015-08-06T17:50:02.486Z" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-configuration-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-configuration-options.rst new file mode 100644 index 000000000..096fdee17 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-configuration-options.rst @@ -0,0 +1,52 @@ +**To view configuration options for an environment** + +The following command retrieves descriptions of all available configuration options for an environment named ``my-env``:: + + aws elasticbeanstalk describe-configuration-options --environment-name my-env --application-name my-app + +Output (abbreviated):: + + { + "Options": [ + { + "Name": "JVMOptions", + "UserDefined": false, + "DefaultValue": "Xms=256m,Xmx=256m,XX:MaxPermSize=64m,JVM Options=", + "ChangeSeverity": "RestartApplicationServer", + "Namespace": "aws:cloudformation:template:parameter", + "ValueType": "KeyValueList" + }, + { + "Name": "Interval", + "UserDefined": false, + "DefaultValue": "30", + "ChangeSeverity": "NoInterruption", + "Namespace": "aws:elb:healthcheck", + "MaxValue": 300, + "MinValue": 5, + "ValueType": "Scalar" + }, + ... + { + "Name": "LowerThreshold", + "UserDefined": false, + "DefaultValue": "2000000", + "ChangeSeverity": "NoInterruption", + "Namespace": "aws:autoscaling:trigger", + "MinValue": 0, + "ValueType": "Scalar" + }, + { + "Name": "ListenerEnabled", + "UserDefined": false, + "DefaultValue": "true", + "ChangeSeverity": "Unknown", + "Namespace": "aws:elb:listener", + "ValueType": "Boolean" + } + ] + } + +Available configuration options vary per platform and configuration version. For more information about namespaces and supported options, see `Option Values`_ in the *AWS Elastic Beanstalk Developer Guide*. + +.. _`Option Values`: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-configuration-settings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-configuration-settings.rst new file mode 100644 index 000000000..8a2859cbd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-configuration-settings.rst @@ -0,0 +1,52 @@ +**To view configurations settings for an environment** + +The following command retrieves configuration settings for an environment named ``my-env``:: + + aws elasticbeanstalk describe-configuration-settings --environment-name my-env --application-name my-app + +Output (abbreviated):: + + { + "ConfigurationSettings": [ + { + "ApplicationName": "my-app", + "EnvironmentName": "my-env", + "Description": "Environment created from the EB CLI using \"eb create\"", + "DeploymentStatus": "deployed", + "DateCreated": "2015-08-13T19:16:25Z", + "OptionSettings": [ + { + "OptionName": "Availability Zones", + "ResourceName": "AWSEBAutoScalingGroup", + "Namespace": "aws:autoscaling:asg", + "Value": "Any" + }, + { + "OptionName": "Cooldown", + "ResourceName": "AWSEBAutoScalingGroup", + "Namespace": "aws:autoscaling:asg", + "Value": "360" + }, + ... + { + "OptionName": "ConnectionDrainingTimeout", + "ResourceName": "AWSEBLoadBalancer", + "Namespace": "aws:elb:policies", + "Value": "20" + }, + { + "OptionName": "ConnectionSettingIdleTimeout", + "ResourceName": "AWSEBLoadBalancer", + "Namespace": "aws:elb:policies", + "Value": "60" + } + ], + "DateUpdated": "2015-08-13T23:30:07Z", + "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8" + } + ] + } + +For more information about namespaces and supported options, see `Option Values`_ in the *AWS Elastic Beanstalk Developer Guide*. + +.. _`Option Values`: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-environment-health.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-environment-health.rst new file mode 100644 index 000000000..3ca316cc8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-environment-health.rst @@ -0,0 +1,50 @@ +**To view environment health** + +The following command retrieves overall health information for an environment named ``my-env``:: + + aws elasticbeanstalk describe-environment-health --environment-name my-env --attribute-names All + +Output:: + + { + "Status": "Ready", + "EnvironmentName": "my-env", + "Color": "Green", + "ApplicationMetrics": { + "Duration": 10, + "Latency": { + "P99": 0.004, + "P75": 0.002, + "P90": 0.003, + "P95": 0.004, + "P85": 0.003, + "P10": 0.001, + "P999": 0.004, + "P50": 0.001 + }, + "RequestCount": 45, + "StatusCodes": { + "Status3xx": 0, + "Status2xx": 45, + "Status5xx": 0, + "Status4xx": 0 + } + }, + "RefreshedAt": "2015-08-20T21:09:18Z", + "HealthStatus": "Ok", + "InstancesHealth": { + "Info": 0, + "Ok": 1, + "Unknown": 0, + "Severe": 0, + "Warning": 0, + "Degraded": 0, + "NoData": 0, + "Pending": 0 + }, + "Causes": [] + } + +Health information is only available for environments with enhanced health reporting enabled. For more information, see `Enhanced Health Reporting and Monitoring`_ in the *AWS Elastic Beanstalk Developer Guide*. + +.. _`Enhanced Health Reporting and Monitoring`: http://integ-docs-aws.amazon.com/elasticbeanstalk/latest/dg/health-enhanced.html diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-environment-resources.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-environment-resources.rst new file mode 100644 index 000000000..590b9f0b3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-environment-resources.rst @@ -0,0 +1,35 @@ +**To view information about the AWS resources in your environment** + +The following command retrieves information about resources in an environment named ``my-env``:: + + aws elasticbeanstalk describe-environment-resources --environment-name my-env + +Output:: + + { + "EnvironmentResources": { + "EnvironmentName": "my-env", + "AutoScalingGroups": [ + { + "Name": "awseb-e-qu3fyyjyjs-stack-AWSEBAutoScalingGroup-QSB2ZO88SXZT" + } + ], + "Triggers": [], + "LoadBalancers": [ + { + "Name": "awseb-e-q-AWSEBLoa-1EEPZ0K98BIF0" + } + ], + "Queues": [], + "Instances": [ + { + "Id": "i-0c91c786" + } + ], + "LaunchConfigurations": [ + { + "Name": "awseb-e-qu3fyyjyjs-stack-AWSEBAutoScalingLaunchConfiguration-1UUVQIBC96TQ2" + } + ] + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-environments.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-environments.rst new file mode 100644 index 000000000..5995bd139 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-environments.rst @@ -0,0 +1,31 @@ +**To view information about an environment** + +The following command retrieves information about an environment named ``my-env``:: + + aws elasticbeanstalk describe-environments --environment-names my-env + +Output:: + + { + "Environments": [ + { + "ApplicationName": "my-app", + "EnvironmentName": "my-env", + "VersionLabel": "7f58-stage-150812_025409", + "Status": "Ready", + "EnvironmentId": "e-rpqsewtp2j", + "EndpointURL": "awseb-e-w-AWSEBLoa-1483140XB0Q4L-109QXY8121.us-west-2.elb.amazonaws.com", + "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8", + "CNAME": "my-env.elasticbeanstalk.com", + "Health": "Green", + "AbortableOperationInProgress": false, + "Tier": { + "Version": " ", + "Type": "Standard", + "Name": "WebServer" + }, + "DateUpdated": "2015-08-12T18:16:55.019Z", + "DateCreated": "2015-08-07T20:48:49.599Z" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-events.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-events.rst new file mode 100644 index 000000000..33df64a1f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-events.rst @@ -0,0 +1,44 @@ +**To view events for an environment** + +The following command retrieves events for an environment named ``my-env``:: + + aws elasticbeanstalk describe-events --environment-name my-env + +Output (abbreviated):: + + { + "Events": [ + { + "ApplicationName": "my-app", + "EnvironmentName": "my-env", + "Message": "Environment health has transitioned from Info to Ok.", + "EventDate": "2015-08-20T07:06:53.535Z", + "Severity": "INFO" + }, + { + "ApplicationName": "my-app", + "EnvironmentName": "my-env", + "Severity": "INFO", + "RequestId": "b7f3960b-4709-11e5-ba1e-07e16200da41", + "Message": "Environment update completed successfully.", + "EventDate": "2015-08-20T07:06:02.049Z" + }, + ... + { + "ApplicationName": "my-app", + "EnvironmentName": "my-env", + "Severity": "INFO", + "RequestId": "ca8dfbf6-41ef-11e5-988b-651aa638f46b", + "Message": "Using elasticbeanstalk-us-west-2-012445113685 as Amazon S3 storage bucket for environment data.", + "EventDate": "2015-08-13T19:16:27.561Z" + }, + { + "ApplicationName": "my-app", + "EnvironmentName": "my-env", + "Severity": "INFO", + "RequestId": "cdfba8f6-41ef-11e5-988b-65638f41aa6b", + "Message": "createEnvironment is starting.", + "EventDate": "2015-08-13T19:16:26.581Z" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-instances-health.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-instances-health.rst new file mode 100644 index 000000000..e843fd838 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/describe-instances-health.rst @@ -0,0 +1,60 @@ +**To view environment health** + +The following command retrieves health information for instances in an environment named ``my-env``:: + + aws elasticbeanstalk describe-instances-health --environment-name my-env --attribute-names All + +Output:: + + { + "InstanceHealthList": [ + { + "InstanceId": "i-08691cc7", + "ApplicationMetrics": { + "Duration": 10, + "Latency": { + "P99": 0.006, + "P75": 0.002, + "P90": 0.004, + "P95": 0.005, + "P85": 0.003, + "P10": 0.0, + "P999": 0.006, + "P50": 0.001 + }, + "RequestCount": 48, + "StatusCodes": { + "Status3xx": 0, + "Status2xx": 47, + "Status5xx": 0, + "Status4xx": 1 + } + }, + "System": { + "LoadAverage": [ + 0.0, + 0.02, + 0.05 + ], + "CPUUtilization": { + "SoftIRQ": 0.1, + "IOWait": 0.2, + "System": 0.3, + "Idle": 97.8, + "User": 1.5, + "IRQ": 0.0, + "Nice": 0.1 + } + }, + "Color": "Green", + "HealthStatus": "Ok", + "LaunchedAt": "2015-08-13T19:17:09Z", + "Causes": [] + } + ], + "RefreshedAt": "2015-08-20T21:09:08Z" + } + +Health information is only available for environments with enhanced health reporting enabled. For more information, see `Enhanced Health Reporting and Monitoring`_ in the *AWS Elastic Beanstalk Developer Guide*. + +.. _`Enhanced Health Reporting and Monitoring`: http://integ-docs-aws.amazon.com/elasticbeanstalk/latest/dg/health-enhanced.html diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/list-available-solution-stacks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/list-available-solution-stacks.rst new file mode 100644 index 000000000..c4bc8f66f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/list-available-solution-stacks.rst @@ -0,0 +1,50 @@ +**To view solution stacks** + +The following command lists solution stacks for all currently available platform configurations and any that you have used in the past:: + + aws elasticbeanstalk list-available-solution-stacks + +Output (abbreviated):: + + { + "SolutionStacks": [ + "64bit Amazon Linux 2015.03 v2.0.0 running Node.js", + "64bit Amazon Linux 2015.03 v2.0.0 running PHP 5.6", + "64bit Amazon Linux 2015.03 v2.0.0 running PHP 5.5", + "64bit Amazon Linux 2015.03 v2.0.0 running PHP 5.4", + "64bit Amazon Linux 2015.03 v2.0.0 running Python 3.4", + "64bit Amazon Linux 2015.03 v2.0.0 running Python 2.7", + "64bit Amazon Linux 2015.03 v2.0.0 running Python", + "64bit Amazon Linux 2015.03 v2.0.0 running Ruby 2.2 (Puma)", + "64bit Amazon Linux 2015.03 v2.0.0 running Ruby 2.2 (Passenger Standalone)", + "64bit Amazon Linux 2015.03 v2.0.0 running Ruby 2.1 (Puma)", + "64bit Amazon Linux 2015.03 v2.0.0 running Ruby 2.1 (Passenger Standalone)", + "64bit Amazon Linux 2015.03 v2.0.0 running Ruby 2.0 (Puma)", + "64bit Amazon Linux 2015.03 v2.0.0 running Ruby 2.0 (Passenger Standalone)", + "64bit Amazon Linux 2015.03 v2.0.0 running Ruby 1.9.3", + "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8", + "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 7 Java 7", + "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 7 Java 6", + "64bit Windows Server Core 2012 R2 running IIS 8.5", + "64bit Windows Server 2012 R2 running IIS 8.5", + "64bit Windows Server 2012 running IIS 8", + "64bit Windows Server 2008 R2 running IIS 7.5", + "64bit Amazon Linux 2015.03 v2.0.0 running Docker 1.6.2", + "64bit Amazon Linux 2015.03 v2.0.0 running Multi-container Docker 1.6.2 (Generic)", + "64bit Debian jessie v2.0.0 running GlassFish 4.1 Java 8 (Preconfigured - Docker)", + "64bit Debian jessie v2.0.0 running GlassFish 4.0 Java 7 (Preconfigured - Docker)", + "64bit Debian jessie v2.0.0 running Go 1.4 (Preconfigured - Docker)", + "64bit Debian jessie v2.0.0 running Go 1.3 (Preconfigured - Docker)", + "64bit Debian jessie v2.0.0 running Python 3.4 (Preconfigured - Docker)", + ], + "SolutionStackDetails": [ + { + "PermittedFileTypes": [ + "zip" + ], + "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Node.js" + }, + ... + ] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/rebuild-environment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/rebuild-environment.rst new file mode 100644 index 000000000..d60ecdd00 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/rebuild-environment.rst @@ -0,0 +1,5 @@ +**To rebuild an environment** + +The following command terminates and recreates the resources in an environment named ``my-env``:: + + aws elasticbeanstalk rebuild-environment --environment-name my-env diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/request-environment-info.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/request-environment-info.rst new file mode 100644 index 000000000..d21f9651f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/request-environment-info.rst @@ -0,0 +1,9 @@ +**To request tailed logs** + +The following command requests logs from an environment named ``my-env``:: + + aws elasticbeanstalk request-environment-info --environment-name my-env --info-type tail + +After requesting logs, retrieve their location with `retrieve-environment-info`_. + +.. _`retrieve-environment-info`: http://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/retrieve-environment-info.html diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/restart-app-server.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/restart-app-server.rst new file mode 100644 index 000000000..c2aa10399 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/restart-app-server.rst @@ -0,0 +1,5 @@ +**To restart application servers** + +The following command restarts application servers on all instances in an environment named ``my-env``:: + + aws elasticbeanstalk restart-app-server --environment-name my-env diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/retrieve-environment-info.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/retrieve-environment-info.rst new file mode 100644 index 000000000..01e7b134c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/retrieve-environment-info.rst @@ -0,0 +1,23 @@ +**To retrieve tailed logs** + +The following command retrieves a link to logs from an environment named ``my-env``:: + + aws elasticbeanstalk retrieve-environment-info --environment-name my-env --info-type tail + +Output:: + + { + "EnvironmentInfo": [ + { + "SampleTimestamp": "2015-08-20T22:23:17.703Z", + "Message": "https://elasticbeanstalk-us-west-2-0123456789012.s3.amazonaws.com/resources/environments/logs/tail/e-fyqyju3yjs/i-09c1c867/TailLogs-1440109397703.out?AWSAccessKeyId=AKGPT4J56IAJ2EUBL5CQ&Expires=1440195891&Signature=n%2BEalOV6A2HIOx4Rcfb7LT16bBM%3D", + "InfoType": "tail", + "Ec2InstanceId": "i-09c1c867" + } + ] + } + +View the link in a browser. Prior to retrieval, logs must be requested with `request-environment-info`_. + +.. _`request-environment-info`: http://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/retrieve-environment-info.html + \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/swap-environment-cnames.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/swap-environment-cnames.rst new file mode 100644 index 000000000..1cc727347 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/swap-environment-cnames.rst @@ -0,0 +1,5 @@ +**To swap environment CNAMES** + +The following command swaps the assigned subdomains of two environments:: + + aws elasticbeanstalk swap-environment-cnames --source-environment-name my-env-blue --destination-environment-name my-env-green diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/terminate-environment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/terminate-environment.rst new file mode 100644 index 000000000..be86dd47b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/terminate-environment.rst @@ -0,0 +1,26 @@ +**To terminate an environment** + +The following command terminates an Elastic Beanstalk environment named ``my-env``:: + + aws elasticbeanstalk terminate-environment --environment-name my-env + +Output:: + + { + "ApplicationName": "my-app", + "EnvironmentName": "my-env", + "Status": "Terminating", + "EnvironmentId": "e-fh2eravpns", + "EndpointURL": "awseb-e-f-AWSEBLoa-1I9XUMP4-8492WNUP202574.us-west-2.elb.amazonaws.com", + "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8", + "CNAME": "my-env.elasticbeanstalk.com", + "Health": "Grey", + "AbortableOperationInProgress": false, + "Tier": { + "Version": " ", + "Type": "Standard", + "Name": "WebServer" + }, + "DateUpdated": "2015-08-12T19:05:54.744Z", + "DateCreated": "2015-08-12T18:52:53.622Z" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/update-application-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/update-application-version.rst new file mode 100644 index 000000000..5d9ab22bb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/update-application-version.rst @@ -0,0 +1,21 @@ +**To change an application version's description** + +The following command updates the description of an application version named ``22a0-stage-150819_185942``:: + + aws elasticbeanstalk update-application-version --version-label 22a0-stage-150819_185942 --application-name my-app --description "new description" + +Output:: + + { + "ApplicationVersion": { + "ApplicationName": "my-app", + "VersionLabel": "22a0-stage-150819_185942", + "Description": "new description", + "DateCreated": "2015-08-19T18:59:17.646Z", + "DateUpdated": "2015-08-20T22:53:28.871Z", + "SourceBundle": { + "S3Bucket": "elasticbeanstalk-us-west-2-0123456789012", + "S3Key": "my-app/22a0-stage-150819_185942.war" + } + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/update-application.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/update-application.rst new file mode 100644 index 000000000..27e082e1c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/update-application.rst @@ -0,0 +1,24 @@ +**To change an application's description** + +The following command updates the description of an application named ``my-app``:: + + aws elasticbeanstalk update-application --application-name my-app --description "my Elastic Beanstalk application" + +Output:: + + { + "Application": { + "ApplicationName": "my-app", + "Description": "my Elastic Beanstalk application", + "Versions": [ + "2fba-stage-150819_234450", + "bf07-stage-150820_214945", + "93f8", + "fd7c-stage-150820_000431", + "22a0-stage-150819_185942" + ], + "DateCreated": "2015-08-13T19:15:50.449Z", + "ConfigurationTemplates": [], + "DateUpdated": "2015-08-20T22:34:56.195Z" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/update-configuration-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/update-configuration-template.rst new file mode 100644 index 000000000..c3ee6f2b9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/update-configuration-template.rst @@ -0,0 +1,19 @@ +**To update a configuration template** + +The following command removes the configured CloudWatch custom health metrics configuration ``ConfigDocument`` from a saved configuration template named ``my-template``:: + + aws elasticbeanstalk update-configuration-template --template-name my-template --application-name my-app --options-to-remove Namespace=aws:elasticbeanstalk:healthreporting:system,OptionName=ConfigDocument + +Output:: + + { + "ApplicationName": "my-app", + "TemplateName": "my-template", + "DateCreated": "2015-08-20T22:39:31Z", + "DateUpdated": "2015-08-20T22:43:11Z", + "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8" + } + +For more information about namespaces and supported options, see `Option Values`_ in the *AWS Elastic Beanstalk Developer Guide*. + +.. _`Option Values`: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/update-environment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/update-environment.rst new file mode 100644 index 000000000..78211b7ee --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/update-environment.rst @@ -0,0 +1,93 @@ +**To update an environment to a new version** + +The following command updates an environment named "my-env" to version "v2" of the application to which it belongs:: + + aws elasticbeanstalk update-environment --environment-name my-env --version-label v2 + +This command requires that the "my-env" environment already exists and belongs to an application that has a valid application version with the label "v2". + +Output:: + + { + "ApplicationName": "my-app", + "EnvironmentName": "my-env", + "VersionLabel": "v2", + "Status": "Updating", + "EnvironmentId": "e-szqipays4h", + "EndpointURL": "awseb-e-i-AWSEBLoa-1RDLX6TC9VUAO-0123456789.us-west-2.elb.amazonaws.com", + "SolutionStackName": "64bit Amazon Linux running Tomcat 7", + "CNAME": "my-env.elasticbeanstalk.com", + "Health": "Grey", + "Tier": { + "Version": " ", + "Type": "Standard", + "Name": "WebServer" + }, + "DateUpdated": "2015-02-03T23:12:29.119Z", + "DateCreated": "2015-02-03T23:04:54.453Z" + } + +**To set an environment variable** + +The following command sets the value of the "PARAM1" variable in the "my-env" environment to "ParamValue":: + + aws elasticbeanstalk update-environment --environment-name my-env --option-settings Namespace=aws:elasticbeanstalk:application:environment,OptionName=PARAM1,Value=ParamValue + +The ``option-settings`` parameter takes a namespace in addition to the name and value of the variable. Elastic Beanstalk supports several namespaces for options in addition to environment variables. + +**To configure option settings from a file** + +The following command configures several options in the ``aws:elb:loadbalancer`` namespace from a file:: + + aws elasticbeanstalk update-environment --environment-name my-env --option-settings file://options.json + +``options.json`` is a JSON object defining several settings:: + + [ + { + "Namespace": "aws:elb:healthcheck", + "OptionName": "Interval", + "Value": "15" + }, + { + "Namespace": "aws:elb:healthcheck", + "OptionName": "Timeout", + "Value": "8" + }, + { + "Namespace": "aws:elb:healthcheck", + "OptionName": "HealthyThreshold", + "Value": "2" + }, + { + "Namespace": "aws:elb:healthcheck", + "OptionName": "UnhealthyThreshold", + "Value": "3" + } + ] + +Output:: + + { + "ApplicationName": "my-app", + "EnvironmentName": "my-env", + "VersionLabel": "7f58-stage-150812_025409", + "Status": "Updating", + "EnvironmentId": "e-wtp2rpqsej", + "EndpointURL": "awseb-e-w-AWSEBLoa-14XB83101Q4L-104QXY80921.sa-east-1.elb.amazonaws.com", + "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8", + "CNAME": "my-env.elasticbeanstalk.com", + "Health": "Grey", + "AbortableOperationInProgress": true, + "Tier": { + "Version": " ", + "Type": "Standard", + "Name": "WebServer" + }, + "DateUpdated": "2015-08-12T18:15:23.804Z", + "DateCreated": "2015-08-07T20:48:49.599Z" + } + +For more information about namespaces and supported options, see `Option Values`_ in the *AWS Elastic Beanstalk Developer Guide*. + +.. _`Option Values`: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/validate-configuration-settings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/validate-configuration-settings.rst new file mode 100644 index 000000000..ef106c193 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elasticbeanstalk/validate-configuration-settings.rst @@ -0,0 +1,39 @@ +**To validate configuration settings** + +The following command validates a CloudWatch custom metrics config document:: + + aws elasticbeanstalk validate-configuration-settings --application-name my-app --environment-name my-env --option-settings file://options.json + +``options.json`` is a JSON document that includes one or more configuration settings to validate:: + + [ + { + "Namespace": "aws:elasticbeanstalk:healthreporting:system", + "OptionName": "ConfigDocument", + "Value": "{\"CloudWatchMetrics\": {\"Environment\": {\"ApplicationLatencyP99.9\": null,\"InstancesSevere\": 60,\"ApplicationLatencyP90\": 60,\"ApplicationLatencyP99\": null,\"ApplicationLatencyP95\": 60,\"InstancesUnknown\": 60,\"ApplicationLatencyP85\": 60,\"InstancesInfo\": null,\"ApplicationRequests2xx\": null,\"InstancesDegraded\": null,\"InstancesWarning\": 60,\"ApplicationLatencyP50\": 60,\"ApplicationRequestsTotal\": null,\"InstancesNoData\": null,\"InstancesPending\": 60,\"ApplicationLatencyP10\": null,\"ApplicationRequests5xx\": null,\"ApplicationLatencyP75\": null,\"InstancesOk\": 60,\"ApplicationRequests3xx\": null,\"ApplicationRequests4xx\": null},\"Instance\": {\"ApplicationLatencyP99.9\": null,\"ApplicationLatencyP90\": 60,\"ApplicationLatencyP99\": null,\"ApplicationLatencyP95\": null,\"ApplicationLatencyP85\": null,\"CPUUser\": 60,\"ApplicationRequests2xx\": null,\"CPUIdle\": null,\"ApplicationLatencyP50\": null,\"ApplicationRequestsTotal\": 60,\"RootFilesystemUtil\": null,\"LoadAverage1min\": null,\"CPUIrq\": null,\"CPUNice\": 60,\"CPUIowait\": 60,\"ApplicationLatencyP10\": null,\"LoadAverage5min\": null,\"ApplicationRequests5xx\": null,\"ApplicationLatencyP75\": 60,\"CPUSystem\": 60,\"ApplicationRequests3xx\": 60,\"ApplicationRequests4xx\": null,\"InstanceHealth\": null,\"CPUSoftirq\": 60}},\"Version\": 1}" + } + ] + +If the options that you specify are valid for the specified environment, Elastic Beanstalk returns an empty Messages array:: + + { + "Messages": [] + } + +If validation fails, the response will include information about the error:: + + { + "Messages": [ + { + "OptionName": "ConfigDocumet", + "Message": "Invalid option specification (Namespace: 'aws:elasticbeanstalk:healthreporting:system', OptionName: 'ConfigDocumet'): Unknown configuration setting.", + "Namespace": "aws:elasticbeanstalk:healthreporting:system", + "Severity": "error" + } + ] + } + + +For more information about namespaces and supported options, see `Option Values`_ in the *AWS Elastic Beanstalk Developer Guide*. + +.. _`Option Values`: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/add-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/add-tags.rst new file mode 100644 index 000000000..656a88b9b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/add-tags.rst @@ -0,0 +1,8 @@ +**To add a tag to a load balancer** + +This example adds tags to the specified load balancer. + +Command:: + + aws elb add-tags --load-balancer-name my-load-balancer --tags "Key=project,Value=lima" "Key=department,Value=digital-media" + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/apply-security-groups-to-load-balancer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/apply-security-groups-to-load-balancer.rst new file mode 100644 index 000000000..8a3782b50 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/apply-security-groups-to-load-balancer.rst @@ -0,0 +1,16 @@ +**To associate a security group with a load balancer in a VPC** + +This example associates a security group with the specified load balancer in a VPC. + +Command:: + + aws elb apply-security-groups-to-load-balancer --load-balancer-name my-load-balancer --security-groups sg-fc448899 + +Output:: + + { + "SecurityGroups": [ + "sg-fc448899" + ] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/attach-load-balancer-to-subnets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/attach-load-balancer-to-subnets.rst new file mode 100644 index 000000000..9b5a399db --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/attach-load-balancer-to-subnets.rst @@ -0,0 +1,17 @@ +**To attach subnets to a load balancer** + +This example adds the specified subnet to the set of configured subnets for the specified load balancer. + +Command:: + + aws elb attach-load-balancer-to-subnets --load-balancer-name my-load-balancer --subnets subnet-0ecac448 + +Output:: + + { + "Subnets": [ + "subnet-15aaab61", + "subnet-0ecac448" + ] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/configure-health-check.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/configure-health-check.rst new file mode 100644 index 000000000..82784d6e4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/configure-health-check.rst @@ -0,0 +1,21 @@ +**To specify the health check settings for your backend EC2 instances** + +This example specifies the health check settings used to evaluate the health of your backend EC2 instances. + + +Command:: + + aws elb configure-health-check --load-balancer-name my-load-balancer --health-check Target=HTTP:80/png,Interval=30,UnhealthyThreshold=2,HealthyThreshold=2,Timeout=3 + +Output:: + + { + "HealthCheck": { + "HealthyThreshold": 2, + "Interval": 30, + "Target": "HTTP:80/png", + "Timeout": 3, + "UnhealthyThreshold": 2 + } + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/create-app-cookie-stickiness-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/create-app-cookie-stickiness-policy.rst new file mode 100644 index 000000000..c44b4cc48 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/create-app-cookie-stickiness-policy.rst @@ -0,0 +1,7 @@ +**To generate a stickiness policy for your HTTPS load balancer** + +This example generates a stickiness policy that follows the sticky session lifetimes of the application-generated cookie. + +Command:: + + aws elb create-app-cookie-stickiness-policy --load-balancer-name my-load-balancer --policy-name my-app-cookie-policy --cookie-name my-app-cookie diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/create-lb-cookie-stickiness-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/create-lb-cookie-stickiness-policy.rst new file mode 100644 index 000000000..03ba7756e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/create-lb-cookie-stickiness-policy.rst @@ -0,0 +1,9 @@ +**To generate a duration-based stickiness policy for your HTTPS load balancer** + +This example generates a stickiness policy with sticky session lifetimes controlled by the specified expiration period. + + +Command:: + + aws elb create-lb-cookie-stickiness-policy --load-balancer-name my-load-balancer --policy-name my-duration-cookie-policy --cookie-expiration-period 60 + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/create-load-balancer-listeners.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/create-load-balancer-listeners.rst new file mode 100644 index 000000000..5ebb65106 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/create-load-balancer-listeners.rst @@ -0,0 +1,16 @@ +**To create HTTP listeners for a load balancer** + +This example creates a listener for your load balancer at port 80 using the HTTP protocol. + +Command:: + + aws elb create-load-balancer-listeners --load-balancer-name my-load-balancer --listeners "Protocol=HTTP,LoadBalancerPort=80,InstanceProtocol=HTTP,InstancePort=80" + +**To create HTTPS listeners for a load balancer** + +This example creates a listener for your load balancer at port 443 using the HTTPS protocol. + +Command:: + + aws elb create-load-balancer-listeners --load-balancer-name my-load-balancer --listeners "Protocol=HTTPS,LoadBalancerPort=443,InstanceProtocol=HTTP,InstancePort=80" + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/create-load-balancer-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/create-load-balancer-policy.rst new file mode 100644 index 000000000..05112d73b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/create-load-balancer-policy.rst @@ -0,0 +1,44 @@ +**To create a policy that enables Proxy Protocol on a load balancer** + +This example creates a policy that enables Proxy Protocol on the specified load balancer. + +Command:: + + aws elb create-load-balancer-policy --load-balancer-name my-load-balancer --policy-name my-ProxyProtocol-policy --policy-type-name ProxyProtocolPolicyType --policy-attributes AttributeName=ProxyProtocol,AttributeValue=true + + +**To create an SSL negotiation policy using the recommended security policy** + +This example creates an SSL negotiation policy for the specified HTTPS load balancer using the recommended security policy. + +Command:: + + aws elb create-load-balancer-policy --load-balancer-name my-load-balancer --policy-name my-SSLNegotiation-policy --policy-type-name SSLNegotiationPolicyType --policy-attributes AttributeName=Reference-Security-Policy,AttributeValue=ELBSecurityPolicy-2015-03 + + +**To create an SSL negotiation policy using a custom security policy** + +This example creates an SSL negotiation policy for your HTTPS load balancer using a custom security policy by enabling the protocols and the ciphers. + +Command:: + + aws elb create-load-balancer-policy --load-balancer-name my-load-balancer --policy-name my-SSLNegotiation-policy --policy-type-name SSLNegotiationPolicyType --policy-attributes AttributeName=Protocol-SSLv3,AttributeValue=true AttributeName=Protocol-TLSv1.1,AttributeValue=true AttributeName=DHE-RSA-AES256-SHA256,AttributeValue=true AttributeName=Server-Defined-Cipher-Order,AttributeValue=true + + +**To create a public key policy** + +This example creates a public key policy. + +Command:: + + aws elb create-load-balancer-policy --load-balancer-name my-load-balancer --policy-name my-PublicKey-policy --policy-type-name PublicKeyPolicyType --policy-attributes AttributeName=PublicKey,AttributeValue=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwAYUjnfyEyXr1pxjhFWBpMlggUcqoi3kl+dS74kj//c6x7ROtusUaeQCTgIUkayttRDWchuqo1pHC1u+n5xxXnBBe2ejbb2WRsKIQ5rXEeixsjFpFsojpSQKkzhVGI6mJVZBJDVKSHmswnwLBdofLhzvllpovBPTHe+o4haAWvDBALJU0pkSI1FecPHcs2hwxf14zHoXy1e2k36A64nXW43wtfx5qcVSIxtCEOjnYRg7RPvybaGfQ+v6Iaxb/+7J5kEvZhTFQId+bSiJImF1FSUT1W1xwzBZPUbcUkkXDj45vC2s3Z8E+Lk7a3uZhvsQHLZnrfuWjBWGWvZ/MhZYgEXAMPLE + + +**To create a backend server authentication policy** + +This example creates a backend server authentication policy that enables authentication on your backend instance using a public key policy. + +Command:: + + aws elb create-load-balancer-policy --load-balancer-name my-load-balancer --policy-name my-authentication-policy --policy-type-name BackendServerAuthenticationPolicyType --policy-attributes AttributeName=PublicKeyPolicyName,AttributeValue=my-PublicKey-policy + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/create-load-balancer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/create-load-balancer.rst new file mode 100644 index 000000000..581da9d11 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/create-load-balancer.rst @@ -0,0 +1,67 @@ +**To create an HTTP load balancer** + +This example creates a load balancer with an HTTP listener in a VPC. + +Command:: + + aws elb create-load-balancer --load-balancer-name my-load-balancer --listeners "Protocol=HTTP,LoadBalancerPort=80,InstanceProtocol=HTTP,InstancePort=80" --subnets subnet-15aaab61 --security-groups sg-a61988c3 + +Output:: + + { + "DNSName": "my-load-balancer-1234567890.us-west-2.elb.amazonaws.com" + } + + +This example creates a load balancer with an HTTP listener in EC2-Classic. + +Command:: + + aws elb create-load-balancer --load-balancer-name my-load-balancer --listeners "Protocol=HTTP,LoadBalancerPort=80,InstanceProtocol=HTTP,InstancePort=80" --availability-zones us-west-2a us-west-2b + +Output:: + + { + "DNSName": "my-load-balancer-123456789.us-west-2.elb.amazonaws.com" + } + +**To create an HTTPS load balancer** + +This example creates a load balancer with an HTTPS listener in a VPC. + +Command:: + + aws elb create-load-balancer --load-balancer-name my-load-balancer --listeners "Protocol=HTTP,LoadBalancerPort=80,InstanceProtocol=HTTP,InstancePort=80" "Protocol=HTTPS,LoadBalancerPort=443,InstanceProtocol=HTTP,InstancePort=80,SSLCertificateId=arn:aws:iam::123456789012:server-certificate/my-server-cert" --subnets subnet-15aaab61 --security-groups sg-a61988c3 + +Output:: + + { + "DNSName": "my-load-balancer-1234567890.us-west-2.elb.amazonaws.com" + } + +This example creates a load balancer with an HTTPS listener in EC2-Classic. + +Command:: + + aws elb create-load-balancer --load-balancer-name my-load-balancer --listeners "Protocol=HTTP,LoadBalancerPort=80,InstanceProtocol=HTTP,InstancePort=80" "Protocol=HTTPS,LoadBalancerPort=443,InstanceProtocol=HTTP,InstancePort=80,SSLCertificateId=arn:aws:iam::123456789012:server-certificate/my-server-cert" --availability-zones us-west-2a us-west-2b + +Output:: + + { + "DNSName": "my-load-balancer-123456789.us-west-2.elb.amazonaws.com" + } + +**To create an internal load balancer** + +This example creates an internal load balancer with an HTTP listener in a VPC. + +Command:: + + aws elb create-load-balancer --load-balancer-name my-load-balancer --listeners "Protocol=HTTP,LoadBalancerPort=80,InstanceProtocol=HTTP,InstancePort=80" --scheme internal --subnets subnet-a85db0df --security-groups sg-a61988c3 + +Output:: + + { + "DNSName": "internal-my-load-balancer-123456789.us-west-2.elb.amazonaws.com" + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/delete-load-balancer-listeners.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/delete-load-balancer-listeners.rst new file mode 100644 index 000000000..f0cb3d9ec --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/delete-load-balancer-listeners.rst @@ -0,0 +1,7 @@ +**To delete a listener from your load balancer** + +This example deletes the listener for the specified port from the specified load balancer. + +Command:: + + aws elb delete-load-balancer-listeners --load-balancer-name my-load-balancer --load-balancer-ports 80 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/delete-load-balancer-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/delete-load-balancer-policy.rst new file mode 100644 index 000000000..13b9cfabe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/delete-load-balancer-policy.rst @@ -0,0 +1,8 @@ +**To delete a policy from your load balancer** + +This example deletes the specified policy from the specified load balancer. The policy must not be enabled on any listener. + +Command:: + + aws elb delete-load-balancer-policy --load-balancer-name my-load-balancer --policy-name my-duration-cookie-policy + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/delete-load-balancer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/delete-load-balancer.rst new file mode 100644 index 000000000..4bedf54ba --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/delete-load-balancer.rst @@ -0,0 +1,7 @@ +**To delete a load balancer** + +This example deletes the specified load balancer. + +Command:: + + aws elb delete-load-balancer --load-balancer-name my-load-balancer diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/deregister-instances-from-load-balancer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/deregister-instances-from-load-balancer.rst new file mode 100644 index 000000000..9aae4413a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/deregister-instances-from-load-balancer.rst @@ -0,0 +1,22 @@ +**To deregister instances from a load balancer** + +This example deregisters the specified instance from the specified load balancer. + +Command:: + + aws elb deregister-instances-from-load-balancer --load-balancer-name my-load-balancer --instances i-d6f6fae3 + + +Output:: + + { + "Instances": [ + { + "InstanceId": "i-207d9717" + }, + { + "InstanceId": "i-afefb49b" + } + ] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/describe-account-limits.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/describe-account-limits.rst new file mode 100644 index 000000000..4c980e138 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/describe-account-limits.rst @@ -0,0 +1,24 @@ +**To describe your Classic Load Balancer limits** + +The following ``describe-account-limits`` example displays details about the Classic Load Balancer limits for your AWS account. :: + + aws elb describe-account-limits + +Output:: + + { + "Limits": [ + { + "Name": "classic-load-balancers", + "Max": "20" + }, + { + "Name": "classic-listeners", + "Max": "100" + }, + { + "Name": "classic-registered-instances", + "Max": "1000" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/describe-instance-health.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/describe-instance-health.rst new file mode 100644 index 000000000..5cac4b6f2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/describe-instance-health.rst @@ -0,0 +1,64 @@ +**To describe the health of the instances for a load balancer** + +This example describes the health of the instances for the specified load balancer. + +Command:: + + aws elb describe-instance-health --load-balancer-name my-load-balancer + +Output:: + + { + "InstanceStates": [ + { + "InstanceId": "i-207d9717", + "ReasonCode": "N/A", + "State": "InService", + "Description": "N/A" + }, + { + "InstanceId": "i-afefb49b", + "ReasonCode": "N/A", + "State": "InService", + "Description": "N/A" + } + ] + } + +**To describe the health of an instance for a load balancer** + +This example describes the health of the specified instance for the specified load balancer. + +Command:: + + aws elb describe-instance-health --load-balancer-name my-load-balancer --instances i-7299c809 + +The following is an example response for an instance that is registering. + +Output:: + + { + "InstanceStates": [ + { + "InstanceId": "i-7299c809", + "ReasonCode": "ELB", + "State": "OutOfService", + "Description": "Instance registration is still in progress." + } + ] + } + +The following is an example response for an unhealthy instance. + +Output:: + + { + "InstanceStates": [ + { + "InstanceId": "i-7299c809", + "ReasonCode": "Instance", + "State": "OutOfService", + "Description": "Instance has failed at least the UnhealthyThreshold number of health checks consecutively." + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/describe-load-balancer-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/describe-load-balancer-attributes.rst new file mode 100644 index 000000000..93f7bbb54 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/describe-load-balancer-attributes.rst @@ -0,0 +1,28 @@ +**To describe the attributes of a load balancer** + +This example describes the attributes of the specified load balancer. + +Command:: + + aws elb describe-load-balancer-attributes --load-balancer-name my-load-balancer + +Output:: + + { + "LoadBalancerAttributes": { + "ConnectionDraining": { + "Enabled": false, + "Timeout": 300 + }, + "CrossZoneLoadBalancing": { + "Enabled": true + }, + "ConnectionSettings": { + "IdleTimeout": 30 + }, + "AccessLog": { + "Enabled": false + } + } + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/describe-load-balancer-policies.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/describe-load-balancer-policies.rst new file mode 100644 index 000000000..aa4b0db73 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/describe-load-balancer-policies.rst @@ -0,0 +1,72 @@ +**To describe all policies associated with a load balancer** + +This example describes all of the policies associated with the specified load balancer. + +Command:: + + aws elb describe-load-balancer-policies --load-balancer-name my-load-balancer + +Output:: + + { + "PolicyDescriptions": [ + { + "PolicyAttributeDescriptions": [ + { + "AttributeName": "ProxyProtocol", + "AttributeValue": "true" + } + ], + "PolicyName": "my-ProxyProtocol-policy", + "PolicyTypeName": "ProxyProtocolPolicyType" + }, + { + "PolicyAttributeDescriptions": [ + { + "AttributeName": "CookieName", + "AttributeValue": "my-app-cookie" + } + ], + "PolicyName": "my-app-cookie-policy", + "PolicyTypeName": "AppCookieStickinessPolicyType" + }, + { + "PolicyAttributeDescriptions": [ + { + "AttributeName": "CookieExpirationPeriod", + "AttributeValue": "60" + } + ], + "PolicyName": "my-duration-cookie-policy", + "PolicyTypeName": "LBCookieStickinessPolicyType" + }, + . + . + . + ] + } + +**To describe a specific policy associated with a load balancer** + +This example describes the specified policy associated with the specified load balancer. + +Command:: + + aws elb describe-load-balancer-policies --load-balancer-name my-load-balancer --policy-name my-authentication-policy + +Output:: + + { + "PolicyDescriptions": [ + { + "PolicyAttributeDescriptions": [ + { + "AttributeName": "PublicKeyPolicyName", + "AttributeValue": "my-PublicKey-policy" + } + ], + "PolicyName": "my-authentication-policy", + "PolicyTypeName": "BackendServerAuthenticationPolicyType" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/describe-load-balancer-policy-types.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/describe-load-balancer-policy-types.rst new file mode 100644 index 000000000..93631a698 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/describe-load-balancer-policy-types.rst @@ -0,0 +1,78 @@ +**To describe the load balancer policy types defined by Elastic Load Balancing** + +This example describes the load balancer policy types that you can use to create policy configurations for your load balancer. + +Command:: + + aws elb describe-load-balancer-policy-types + +Output:: + + { + "PolicyTypeDescriptions": [ + { + "PolicyAttributeTypeDescriptions": [ + { + "Cardinality": "ONE", + "AttributeName": "ProxyProtocol", + "AttributeType": "Boolean" + } + ], + "PolicyTypeName": "ProxyProtocolPolicyType", + "Description": "Policy that controls whether to include the IP address and port of the originating request for TCP messages. This policy operates on TCP/SSL listeners only" + }, + { + "PolicyAttributeTypeDescriptions": [ + { + "Cardinality": "ONE", + "AttributeName": "PublicKey", + "AttributeType": "String" + } + ], + "PolicyTypeName": "PublicKeyPolicyType", + "Description": "Policy containing a list of public keys to accept when authenticating the back-end server(s). This policy cannot be applied directly to back-end servers or listeners but must be part of a BackendServerAuthenticationPolicyType." + }, + { + "PolicyAttributeTypeDescriptions": [ + { + "Cardinality": "ONE", + "AttributeName": "CookieName", + "AttributeType": "String" + } + ], + "PolicyTypeName": "AppCookieStickinessPolicyType", + "Description": "Stickiness policy with session lifetimes controlled by the lifetime of the application-generated cookie. This policy can be associated only with HTTP/HTTPS listeners." + }, + { + "PolicyAttributeTypeDescriptions": [ + { + "Cardinality": "ZERO_OR_ONE", + "AttributeName": "CookieExpirationPeriod", + "AttributeType": "Long" + } + ], + "PolicyTypeName": "LBCookieStickinessPolicyType", + "Description": "Stickiness policy with session lifetimes controlled by the browser (user-agent) or a specified expiration period. This policy can be associated only with HTTP/HTTPS listeners." + }, + { + "PolicyAttributeTypeDescriptions": [ + . + . + . + ], + "PolicyTypeName": "SSLNegotiationPolicyType", + "Description": "Listener policy that defines the ciphers and protocols that will be accepted by the load balancer. This policy can be associated only with HTTPS/SSL listeners." + }, + { + "PolicyAttributeTypeDescriptions": [ + { + "Cardinality": "ONE_OR_MORE", + "AttributeName": "PublicKeyPolicyName", + "AttributeType": "PolicyName" + } + ], + "PolicyTypeName": "BackendServerAuthenticationPolicyType", + "Description": "Policy that controls authentication to back-end server(s) and contains one or more policies, such as an instance of a PublicKeyPolicyType. This policy can be associated only with back-end servers that are using HTTPS/SSL." + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/describe-load-balancers.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/describe-load-balancers.rst new file mode 100644 index 000000000..c10d8dde7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/describe-load-balancers.rst @@ -0,0 +1,109 @@ +**To describe your load balancers** + +This example describes all of your load balancers. + +Command:: + + aws elb describe-load-balancers + +**To describe one of your load balancers** + +This example describes the specified load balancer. + +Command:: + + aws elb describe-load-balancers --load-balancer-name my-load-balancer + +The following example response is for an HTTPS load balancer in a VPC. + +Output:: + + { + "LoadBalancerDescriptions": [ + { + "Subnets": [ + "subnet-15aaab61" + ], + "CanonicalHostedZoneNameID": "Z3DZXE0EXAMPLE", + "CanonicalHostedZoneName": "my-load-balancer-1234567890.us-west-2.elb.amazonaws.com", + "ListenerDescriptions": [ + { + "Listener": { + "InstancePort": 80, + "LoadBalancerPort": 80, + "Protocol": "HTTP", + "InstanceProtocol": "HTTP" + }, + "PolicyNames": [] + }, + { + "Listener": { + "InstancePort": 443, + "SSLCertificateId": "arn:aws:iam::123456789012:server-certificate/my-server-cert", + "LoadBalancerPort": 443, + "Protocol": "HTTPS", + "InstanceProtocol": "HTTPS" + }, + "PolicyNames": [ + "ELBSecurityPolicy-2015-03" + ] + } + ], + "HealthCheck": { + "HealthyThreshold": 2, + "Interval": 30, + "Target": "HTTP:80/png", + "Timeout": 3, + "UnhealthyThreshold": 2 + }, + "VPCId": "vpc-a01106c2", + "BackendServerDescriptions": [ + { + "InstancePort": 80, + "PolicyNames": [ + "my-ProxyProtocol-policy" + ] + } + ], + "Instances": [ + { + "InstanceId": "i-207d9717" + }, + { + "InstanceId": "i-afefb49b" + } + ], + "DNSName": "my-load-balancer-1234567890.us-west-2.elb.amazonaws.com", + "SecurityGroups": [ + "sg-a61988c3" + ], + "Policies": { + "LBCookieStickinessPolicies": [ + { + "PolicyName": "my-duration-cookie-policy", + "CookieExpirationPeriod": 60 + } + ], + "AppCookieStickinessPolicies": [], + "OtherPolicies": [ + "my-PublicKey-policy", + "my-authentication-policy", + "my-SSLNegotiation-policy", + "my-ProxyProtocol-policy", + "ELBSecurityPolicy-2015-03" + ] + }, + "LoadBalancerName": "my-load-balancer", + "CreatedTime": "2015-03-19T03:24:02.650Z", + "AvailabilityZones": [ + "us-west-2a" + ], + "Scheme": "internet-facing", + "SourceSecurityGroup": { + "OwnerAlias": "123456789012", + "GroupName": "my-elb-sg" + } + } + ] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/describe-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/describe-tags.rst new file mode 100644 index 000000000..a47e70770 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/describe-tags.rst @@ -0,0 +1,28 @@ +**To describe the tags assigned to a load balancer** + +This example describes the tags assigned to the specified load balancer. + +Command:: + + aws elb describe-tags --load-balancer-name my-load-balancer + +Output:: + + { + "TagDescriptions": [ + { + "Tags": [ + { + "Value": "lima", + "Key": "project" + }, + { + "Value": "digital-media", + "Key": "department" + } + ], + "LoadBalancerName": "my-load-balancer" + } + ] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/detach-load-balancer-from-subnets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/detach-load-balancer-from-subnets.rst new file mode 100644 index 000000000..1f2bd71c7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/detach-load-balancer-from-subnets.rst @@ -0,0 +1,16 @@ +**To detach load balancers from subnets** + +This example detaches the specified load balancer from the specified subnet. + +Command:: + + aws elb detach-load-balancer-from-subnets --load-balancer-name my-load-balancer --subnets subnet-0ecac448 + +Output:: + + { + "Subnets": [ + "subnet-15aaab61" + ] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/disable-availability-zones-for-load-balancer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/disable-availability-zones-for-load-balancer.rst new file mode 100644 index 000000000..e3334bc77 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/disable-availability-zones-for-load-balancer.rst @@ -0,0 +1,15 @@ +**To disable Availability Zones for a load balancer** + +This example removes the specified Availability Zone from the set of Availability Zones for the specified load balancer. + +Command:: + + aws elb disable-availability-zones-for-load-balancer --load-balancer-name my-load-balancer --availability-zones us-west-2a + +Output:: + + { + "AvailabilityZones": [ + "us-west-2b" + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/enable-availability-zones-for-load-balancer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/enable-availability-zones-for-load-balancer.rst new file mode 100644 index 000000000..57eaea569 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/enable-availability-zones-for-load-balancer.rst @@ -0,0 +1,17 @@ +**To enable Availability Zones for a load balancer** + +This example adds the specified Availability Zone to the specified load balancer. + +Command:: + + aws elb enable-availability-zones-for-load-balancer --load-balancer-name my-load-balancer --availability-zones us-west-2b + +Output:: + + { + "AvailabilityZones": [ + "us-west-2a", + "us-west-2b" + ] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/modify-load-balancer-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/modify-load-balancer-attributes.rst new file mode 100644 index 000000000..ba6edde64 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/modify-load-balancer-attributes.rst @@ -0,0 +1,36 @@ +**To modify the attributes of a load balancer** + +This example modifies the ``CrossZoneLoadBalancing`` attribute of the specified load balancer. + +Command:: + + aws elb modify-load-balancer-attributes --load-balancer-name my-load-balancer --load-balancer-attributes "{\"CrossZoneLoadBalancing\":{\"Enabled\":true}}" + +Output:: + + { + "LoadBalancerAttributes": { + "CrossZoneLoadBalancing": { + "Enabled": true + } + }, + "LoadBalancerName": "my-load-balancer" + } + +This example modifies the ``ConnectionDraining`` attribute of the specified load balancer. + +Command:: + + aws elb modify-load-balancer-attributes --load-balancer-name my-load-balancer --load-balancer-attributes "{\"ConnectionDraining\":{\"Enabled\":true,\"Timeout\":300}}" + +Output:: + + { + "LoadBalancerAttributes": { + "ConnectionDraining": { + "Enabled": true, + "Timeout": 300 + } + }, + "LoadBalancerName": "my-load-balancer" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/register-instances-with-load-balancer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/register-instances-with-load-balancer.rst new file mode 100644 index 000000000..4baffd6c9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/register-instances-with-load-balancer.rst @@ -0,0 +1,24 @@ +**To register instances with a load balancer** + +This example registers the specified instance with the specified load balancer. + +Command:: + + aws elb register-instances-with-load-balancer --load-balancer-name my-load-balancer --instances i-d6f6fae3 + +Output:: + + { + "Instances": [ + { + "InstanceId": "i-d6f6fae3" + }, + { + "InstanceId": "i-207d9717" + }, + { + "InstanceId": "i-afefb49b" + } + ] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/remove-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/remove-tags.rst new file mode 100644 index 000000000..2d3201d3c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/remove-tags.rst @@ -0,0 +1,7 @@ +**To remove tags from a load balancer** + +This example removes a tag from the specified load balancer. + +Command:: + + aws elb remove-tags --load-balancer-name my-load-balancer --tags project diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/set-load-balancer-listener-ssl-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/set-load-balancer-listener-ssl-certificate.rst new file mode 100644 index 000000000..b57498398 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/set-load-balancer-listener-ssl-certificate.rst @@ -0,0 +1,8 @@ +**To update the SSL certificate for an HTTPS load balancer** + +This example replaces the existing SSL certificate for the specified HTTPS load balancer. + +Command:: + + aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name my-load-balancer --load-balancer-port 443 --ssl-certificate-id arn:aws:iam::123456789012:server-certificate/new-server-cert + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/set-load-balancer-policies-for-backend-server.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/set-load-balancer-policies-for-backend-server.rst new file mode 100644 index 000000000..24d13909b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/set-load-balancer-policies-for-backend-server.rst @@ -0,0 +1,20 @@ +**To replace the policies associated with a port for a backend instance** + +This example replaces the policies that are currently associated with the specified port. + +Command:: + + aws elb set-load-balancer-policies-for-backend-server --load-balancer-name my-load-balancer --instance-port 80 --policy-names my-ProxyProtocol-policy + + +**To remove all policies that are currently associated with a port on your backend instance** + +This example removes all policies associated with the specified port. + +Command:: + + aws elb set-load-balancer-policies-for-backend-server --load-balancer-name my-load-balancer --instance-port 80 --policy-names [] + + +To confirm that the policies are removed, use the ``describe-load-balancer-policies`` command. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/set-load-balancer-policies-of-listener.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/set-load-balancer-policies-of-listener.rst new file mode 100644 index 000000000..95c6406f0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/set-load-balancer-policies-of-listener.rst @@ -0,0 +1,19 @@ +**To replace the policies associated with a listener** + +This example replaces the policies that are currently associated with the specified listener. + +Command:: + + aws elb set-load-balancer-policies-of-listener --load-balancer-name my-load-balancer --load-balancer-port 443 --policy-names my-SSLNegotiation-policy + + +**To remove all policies associated with your listener** + +This example removes all policies that are currently associated with the specified listener. + +Command:: + + aws elb set-load-balancer-policies-of-listener --load-balancer-name my-load-balancer --load-balancer-port 443 --policy-names [] + +To confirm that the policies are removed from the load balancer, use the ``describe-load-balancer-policies`` command. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/wait/any-instance-in-service.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/wait/any-instance-in-service.rst new file mode 100644 index 000000000..9caf570f1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/wait/any-instance-in-service.rst @@ -0,0 +1,8 @@ +**To pause running until any registered instance is in service** + +The following ``wait any-instance-in-service`` command pauses and continues only after it confirms that the specified load balancer has at least one instance in service. + + aws elb wait any-instance-in-service \ + --load-balancer-name my-loadbalancer + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/wait/instance-deregistered.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/wait/instance-deregistered.rst new file mode 100644 index 000000000..49b5124db --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/wait/instance-deregistered.rst @@ -0,0 +1,9 @@ +**To pause running until an instance is deregistered** + +The following ``wait instance-deregistered`` command pauses and continues only after it can confirm that the specified instance is deregistered. + + aws elb wait instance-deregistered \ + --load-balancer-name my-loadbalancer \ + --instances InstanceId=i-1234567890abcdef0 + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/wait/instance-in-service.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/wait/instance-in-service.rst new file mode 100644 index 000000000..4f13e1ae5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elb/wait/instance-in-service.rst @@ -0,0 +1,9 @@ +**To pause running until the specified instance is in service** + +The following ``wait instance-in-service`` command pauses and continues only after it can confirm that the specified instance is in service. :: + + aws elb wait instance-in-service \ + --load-balancer-name my-loadbalancer \ + --instances InstanceId=i-1234567890abcdef0 + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/add-listener-certificates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/add-listener-certificates.rst new file mode 100644 index 000000000..0860780f7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/add-listener-certificates.rst @@ -0,0 +1,18 @@ +**To add a certificate to a secure listener** + +This example adds the specified certificate to the specified secure listener. + +Command:: + + aws elbv2 add-listener-certificates --listener-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2 --certificates CertificateArn=arn:aws:acm:us-west-2:123456789012:certificate/5cc54884-f4a3-4072-80be-05b9ba72f705 + +Output:: + + { + "Certificates": [ + { + "CertificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/5cc54884-f4a3-4072-80be-05b9ba72f705", + "IsDefault": false + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/add-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/add-tags.rst new file mode 100644 index 000000000..857b6f4e4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/add-tags.rst @@ -0,0 +1,7 @@ +**To add tags to a load balancer** + +The following ``add-tags`` example adds the ``project`` and ``department`` tags to the specified load balancer. :: + + aws elbv2 add-tags \ + --resource-arns arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 \ + --tags "Key=project,Value=lima" "Key=department,Value=digital-media" diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/create-listener.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/create-listener.rst new file mode 100644 index 000000000..91f978540 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/create-listener.rst @@ -0,0 +1,97 @@ +**Example 1: To create an HTTP listener** + +The following ``create-listener`` example creates an HTTP listener for the specified Application Load Balancer that forwards requests to the specified target group. :: + + aws elbv2 create-listener \ + --load-balancer-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 \ + --protocol HTTP \ + --port 80 \ + --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 + +For more information, see `Tutorial: Create an Application Load Balancer using the AWS CLI `__ in the *User Guide for Application Load Balancers*. + +**Example 2: To create an HTTPS listener** + +The following ``create-listener`` example creates an HTTPS listener for the specified Application Load Balancer that forwards requests to the specified target group. You must specify an SSL certificate for an HTTPS listener. You can create and manage certificates using AWS Certificate Manager (ACM). Alternatively, you can create a certificate using SSL/TLS tools, get the certificate signed by a certificate authority (CA), and upload the certificate to AWS Identity and Access Management (IAM). :: + + aws elbv2 create-listener \ + --load-balancer-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 \ + --protocol HTTPS \ + --port 443 \ + --certificates CertificateArn=arn:aws:acm:us-west-2:123456789012:certificate/3dcb0a41-bd72-4774-9ad9-756919c40557 \ + --ssl-policy ELBSecurityPolicy-2016-08 \ + --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 + +For more information, see `Add an HTTPS listener `__ in the *User Guide for Application Load Balancers*. + +**Example 3: To create a TCP listener** + +The following ``create-listener`` example creates a TCP listener for the specified Network Load Balancer that forwards requests to the specified target group. :: + + aws elbv2 create-listener \ + --load-balancer-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/net/my-network-load-balancer/5d1b75f4f1cee11e \ + --protocol TCP \ + --port 80 \ + --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-tcp-targets/b6bba954d1361c78 + +For more information, see `Tutorial: Create a Network Load Balancer using the AWS CLI `__ in the *User Guide for Network Load Balancers*. + +**Example 4: To create a TLS listener** + +The following ``create-listener`` example creates a TLS listener for the specified Network Load Balancer that forwards requests to the specified target group. You must specify an SSL certificate for a TLS listener. :: + + aws elbv2 create-listener \ + --load-balancer-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 \ + --protocol TLS \ + --port 443 \ + --certificates CertificateArn=arn:aws:acm:us-west-2:123456789012:certificate/3dcb0a41-bd72-4774-9ad9-756919c40557 \ + --ssl-policy ELBSecurityPolicy-2016-08 \ + --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 + +For more information, see `TLS listeners for your Network Load Balancer `__ in the *User Guide for Network Load Balancers*. + +**Example 5: To create a UDP listener** + +The following ``create-listener`` example creates a UDP listener for the specified Network Load Balancer that forwards requests to the specified target group. :: + + aws elbv2 create-listener \ + --load-balancer-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/net/my-network-load-balancer/5d1b75f4f1cee11e \ + --protocol UDP \ + --port 53 \ + --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-tcp-targets/b6bba954d1361c78 + +For more information, see `Tutorial: Create a Network Load Balancer using the AWS CLI `__ in the *User Guide for Network Load Balancers*. + +**Example 6: To create a listener for the specified gateway and forwarding** + +The following ``create-listener`` example creates a listener for the specified Gateway Load Balancer that forwards requests to the specified target group. :: + + aws elbv2 create-listener \ + --load-balancer-arn arn:aws:elasticloadbalancing:us-east-1:850631746142:loadbalancer/gwy/my-gateway-load-balancer/e0f9b3d5c7f7d3d6 \ + --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-east-1:850631746142:targetgroup/my-glb-targets/007ca469fae3bb1615 + +Output:: + + { + "Listeners": [ + { + "ListenerArn": "arn:aws:elasticloadbalancing:us-east-1:850631746142:listener/gwy/my-agw-lb-example2/e0f9b3d5c7f7d3d6/afc127db15f925de", + "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-east-1:850631746142:loadbalancer/gwy/my-agw-lb-example2/e0f9b3d5c7f7d3d6", + "DefaultActions": [ + { + "Type": "forward", + "TargetGroupArn": "arn:aws:elasticloadbalancing:us-east-1:850631746142:targetgroup/test-tg-agw-2/007ca469fae3bb1615", + "ForwardConfig": { + "TargetGroups": [ + { + "TargetGroupArn": "arn:aws:elasticloadbalancing:us-east-1:850631746142:targetgroup/test-tg-agw-2/007ca469fae3bb1615" + } + ] + } + } + ] + } + ] + } + +For more information, see `Getting started with Gateway Load Balancers using the AWS CLI `__ in the *User Guide for Gateway Load Balancers*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/create-load-balancer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/create-load-balancer.rst new file mode 100644 index 000000000..5a42ce7e5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/create-load-balancer.rst @@ -0,0 +1,170 @@ +**Example 1: To create an Internet-facing load balancer** + +The following ``create-load-balancer`` example creates an Internet-facing Application Load Balancer and enables the Availability Zones for the specified subnets. :: + + aws elbv2 create-load-balancer \ + --name my-load-balancer \ + --subnets subnet-b7d581c0 subnet-8360a9e7 + +Output:: + + { + "LoadBalancers": [ + { + "Type": "application", + "Scheme": "internet-facing", + "IpAddressType": "ipv4", + "VpcId": "vpc-3ac0fb5f", + "AvailabilityZones": [ + { + "ZoneName": "us-west-2a", + "SubnetId": "subnet-8360a9e7" + }, + { + "ZoneName": "us-west-2b", + "SubnetId": "subnet-b7d581c0" + } + ], + "CreatedTime": "2017-08-25T21:26:12.920Z", + "CanonicalHostedZoneId": "Z2P70J7EXAMPLE", + "DNSName": "my-load-balancer-424835706.us-west-2.elb.amazonaws.com", + "SecurityGroups": [ + "sg-5943793c" + ], + "LoadBalancerName": "my-load-balancer", + "State": { + "Code": "provisioning" + }, + "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188" + } + ] + } + +For more information, see `Tutorial: Create an Application Load Balancer using the AWS CLI `__ in the *User Guide for Application Load Balancers*. + +**Example 2: To create an internal load balancer** + +The following ``create-load-balancer`` example creates an internal Application Load Balancer and enables the Availability Zones for the specified subnets. :: + + aws elbv2 create-load-balancer \ + --name my-internal-load-balancer \ + --scheme internal \ + --subnets subnet-b7d581c0 subnet-8360a9e7 + +Output:: + + { + "LoadBalancers": [ + { + "Type": "application", + "Scheme": "internal", + "IpAddressType": "ipv4", + "VpcId": "vpc-3ac0fb5f", + "AvailabilityZones": [ + { + "ZoneName": "us-west-2a", + "SubnetId": "subnet-8360a9e7" + }, + { + "ZoneName": "us-west-2b", + "SubnetId": "subnet-b7d581c0" + } + ], + "CreatedTime": "2016-03-25T21:29:48.850Z", + "CanonicalHostedZoneId": "Z2P70J7EXAMPLE", + "DNSName": "internal-my-internal-load-balancer-1529930873.us-west-2.elb.amazonaws.com", + "SecurityGroups": [ + "sg-5943793c" + ], + "LoadBalancerName": "my-internal-load-balancer", + "State": { + "Code": "provisioning" + }, + "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-internal-load-balancer/5b49b8d4303115c2" + } + ] + } + +For more information, see `Tutorial: Create an Application Load Balancer using the AWS CLI `__ in the *User Guide for Application Load Balancers*. + +**Example 3: To create a Network Load Balancer** + +The following ``create-load-balancer`` example creates an Internet-facing Network Load Balancer and enables the Availability Zone for the specified subnet. It uses a subnet mapping to associate the specified Elastic IP address with the network interface used by the load balancer nodes for the Availability Zone. :: + + aws elbv2 create-load-balancer \ + --name my-network-load-balancer \ + --type network \ + --subnet-mappings SubnetId=subnet-b7d581c0,AllocationId=eipalloc-64d5890a + +Output:: + + { + "LoadBalancers": [ + { + "Type": "network", + "Scheme": "internet-facing", + "IpAddressType": "ipv4", + "VpcId": "vpc-3ac0fb5f", + "AvailabilityZones": [ + { + "LoadBalancerAddresses": [ + { + "IpAddress": "35.161.207.171", + "AllocationId": "eipalloc-64d5890a" + } + ], + "ZoneName": "us-west-2b", + "SubnetId": "subnet-5264e837" + } + ], + "CreatedTime": "2017-10-15T22:41:25.657Z", + "CanonicalHostedZoneId": "Z2P70J7EXAMPLE", + "DNSName": "my-network-load-balancer-5d1b75f4f1cee11e.elb.us-west-2.amazonaws.com", + "LoadBalancerName": "my-network-load-balancer", + "State": { + "Code": "provisioning" + }, + "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/net/my-network-load-balancer/5d1b75f4f1cee11e" + } + ] + } + +For more information, see `Tutorial: Create a Network Load Balancer using the AWS CLI `__ in the *User Guide for Network Load Balancers*. + +**Example 4: To create a Gateway Load Balancer** + +The following ``create-load-balancer`` example creates a Gateway Load Balancer and enables the Availability Zones for the specified subnets. :: + + aws elbv2 create-load-balancer \ + --name my-gateway-load-balancer \ + --type gateway \ + --subnets subnet-dc83f691 subnet-a62583f9 + +Output:: + + { + "LoadBalancers": [ + { + "Type": "gateway", + "VpcId": "vpc-838475fe", + "AvailabilityZones": [ + { + "ZoneName": "us-east-1b", + "SubnetId": "subnet-a62583f9" + }, + { + "ZoneName": "us-east-1a", + "SubnetId": "subnet-dc83f691" + } + ], + "CreatedTime": "2021-07-14T19:33:43.324000+00:00", + "LoadBalancerName": "my-gateway-load-balancer", + "State": { + "Code": "provisioning" + }, + "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-east-1:850631746142:loadbalancer/gwy/my-gateway-load-balancer/dfbb5a7d32cdee79" + } + ] + } + +For more information, see `Getting started with Gateway Load Balancers using the AWS CLI `__ in the *User Guide for Gateway Load Balancers*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/create-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/create-rule.rst new file mode 100644 index 000000000..86a780d23 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/create-rule.rst @@ -0,0 +1,105 @@ +**Example 1: To create a rule using a path condition and a forward action** + +The following ``create-rule`` example creates a rule that forwards requests to the specified target group if the URL contains the specified pattern. :: + + aws elbv2 create-rule \ + --listener-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2 \ + --priority 5 \ + --conditions file://conditions-pattern.json + --actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 + +Contents of ``conditions-pattern.json``:: + + [ + { + "Field": "path-pattern", + "PathPatternConfig": { + "Values": ["/images/*"] + } + } + ] + +**Example 2: To create a rule using a host condition and a fixed response** + +The following ``create-rule`` example creates a rule that provides a fixed response if the hostname in the host header matches the specified hostname. :: + + aws elbv2 create-rule \ + --listener-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2 \ + --priority 10 \ + --conditions file://conditions-host.json \ + --actions file://actions-fixed-response.json + +Contents of ``conditions-host.json`` :: + + [ + { + "Field": "host-header", + "HostHeaderConfig": { + "Values": ["*.example.com"] + } + } + ] + +Contents of ``actions-fixed-response.json`` :: + + [ + { + "Type": "fixed-response", + "FixedResponseConfig": { + "MessageBody": "Hello world", + "StatusCode": "200", + "ContentType": "text/plain" + } + } + ] + +**Example 3: To create a rule using a source IP address condition, an authenticate action, and a forward action** + +The following ``create-rule`` example creates a rule that authenticates the user if the source IP address matches the specified IP address, and forwards the request to the specified target group if authentication is successful. :: + + aws elbv2 create-rule \ + --listener-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2 \ + --priority 20 \ + --conditions file://conditions-source-ip.json \ + --actions file://actions-authenticate.json + +Contents of ``conditions-source-ip.json`` :: + + [ + { + "Field": "source-ip", + "SourceIpConfig": { + "Values": ["192.0.2.0/24", "198.51.100.10/32"] + } + } + ] + +Contents of ``actions-authenticate.json`` :: + + [ + { + "Type": "authenticate-oidc", + "AuthenticateOidcConfig": { + "Issuer": "https://idp-issuer.com", + "AuthorizationEndpoint": "https://authorization-endpoint.com", + "TokenEndpoint": "https://token-endpoint.com", + "UserInfoEndpoint": "https://user-info-endpoint.com", + "ClientId": "abcdefghijklmnopqrstuvwxyz123456789", + "ClientSecret": "123456789012345678901234567890", + "SessionCookieName": "my-cookie", + "SessionTimeout": 3600, + "Scope": "email", + "AuthenticationRequestExtraParams": { + "display": "page", + "prompt": "login" + }, + "OnUnauthenticatedRequest": "deny" + }, + "Order": 1 + }, + { + "Type": "forward", + "TargetGroupArn": "arn:aws:elasticloadbalancing:us-east-1:880185128111:targetgroup/cli-test/642a97ecb0e0f26b", + "Order": 2 + } + ] diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/create-target-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/create-target-group.rst new file mode 100644 index 000000000..63b17f602 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/create-target-group.rst @@ -0,0 +1,183 @@ +**Example 1: To create a target group for an Application Load Balancer** + +The following ``create-target-group`` example creates a target group for an Application Load Balancer where you register targets by instance ID (the target type is ``instance``). This target group uses the HTTP protocol, port 80, and the default health check settings for an HTTP target group. :: + + aws elbv2 create-target-group \ + --name my-targets \ + --protocol HTTP \ + --port 80 \ + --target-type instance \ + --vpc-id vpc-3ac0fb5f + +Output:: + + { + "TargetGroups": [ + { + "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", + "TargetGroupName": "my-targets", + "Protocol": "HTTP", + "Port": 80, + "VpcId": "vpc-3ac0fb5f", + "HealthCheckProtocol": "HTTP", + "HealthCheckPort": "traffic-port", + "HealthCheckEnabled": true, + "HealthCheckIntervalSeconds": 30, + "HealthCheckTimeoutSeconds": 5, + "HealthyThresholdCount": 5, + "UnhealthyThresholdCount": 2, + "HealthCheckPath": "/", + "Matcher": { + "HttpCode": "200" + }, + "TargetType": "instance", + "ProtocolVersion": "HTTP1", + "IpAddressType": "ipv4" + } + ] + } + +For more information, see `Create a target group `__ in the *User Guide for Application Load Balancers*. + +**Example 2: To create a target group to route traffic from an Application Load Balancer to a Lambda function** + +The following ``create-target-group`` example creates a target group for an Application Load Balancer where the target is a Lambda function (the target type is ``lambda``). Health checks are disabled for this target group by default. :: + + aws elbv2 create-target-group \ + --name my-lambda-target \ + --target-type lambda + +Output:: + + { + "TargetGroups": [ + { + "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-lambda-target/a3003e085dbb8ddc", + "TargetGroupName": "my-lambda-target", + "HealthCheckEnabled": false, + "HealthCheckIntervalSeconds": 35, + "HealthCheckTimeoutSeconds": 30, + "HealthyThresholdCount": 5, + "UnhealthyThresholdCount": 2, + "HealthCheckPath": "/", + "Matcher": { + "HttpCode": "200" + }, + "TargetType": "lambda", + "IpAddressType": "ipv4" + } + ] + } + +For more information, see `Lambda functions as targets `__ in the *User Guide for Application Load Balancers*. + +**Example 3: To create a target group for a Network Load Balancer** + +The following ``create-target-group`` example creates a target group for a Network Load Balancer where you register targets by IP address (the target type is ``ip``). This target group uses the TCP protocol, port 80, and the default health check settings for a TCP target group. :: + + aws elbv2 create-target-group \ + --name my-ip-targets \ + --protocol TCP \ + --port 80 \ + --target-type ip \ + --vpc-id vpc-3ac0fb5f + +Output:: + + { + "TargetGroups": [ + { + "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-ip-targets/b6bba954d1361c78", + "TargetGroupName": "my-ip-targets", + "Protocol": "TCP", + "Port": 80, + "VpcId": "vpc-3ac0fb5f", + "HealthCheckEnabled": true, + "HealthCheckProtocol": "TCP", + "HealthCheckPort": "traffic-port", + "HealthCheckIntervalSeconds": 30, + "HealthCheckTimeoutSeconds": 10, + "HealthyThresholdCount": 5, + "UnhealthyThresholdCount": 2, + "TargetType": "ip", + "IpAddressType": "ipv4" + } + ] + } + +For more information, see `Create a target group `__ in the *User Guide for Network Load Balancers*. + +**Example 4: To create a target group to route traffic from a Network Load Balancer to an Application Load Balancer** + +The following ``create-target-group`` example creates a target group for a Network Load Balancer where you register an Application Load Balancer as a target (the target type is ``alb``). + + aws elbv2 create-target-group \ + --name my-alb-target \ + --protocol TCP \ + --port 80 \ + --target-type alb \ + --vpc-id vpc-3ac0fb5f + +Output:: + + { + "TargetGroups": [ + { + "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-alb-target/a3003e085dbb8ddc", + "TargetGroupName": "my-alb-target", + "Protocol": "TCP", + "Port": 80, + "VpcId": "vpc-838475fe", + "HealthCheckProtocol": "HTTP", + "HealthCheckPort": "traffic-port", + "HealthCheckEnabled": true, + "HealthCheckIntervalSeconds": 30, + "HealthCheckTimeoutSeconds": 6, + "HealthyThresholdCount": 5, + "UnhealthyThresholdCount": 2, + "HealthCheckPath": "/", + "Matcher": { + "HttpCode": "200-399" + }, + "TargetType": "alb", + "IpAddressType": "ipv4" + } + ] + } + +For more information, see `Create a target group with an Application Load Balancer as the target `__ in the *User Guide for Network Load Balancers*. + +**Example 5: To create a target group for a Gateway Load Balancer** + +The following ``create-target-group`` example creates a target group for a Gateway Load Balancer where the target is an instance, and the target group protocol is ``GENEVE``. :: + + aws elbv2 create-target-group \ + --name my-glb-targetgroup \ + --protocol GENEVE \ + --port 6081 \ + --target-type instance \ + --vpc-id vpc-838475fe + +Output:: + + { + "TargetGroups": [ + { + "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-glb-targetgroup/00c3d57eacd6f40b6f", + "TargetGroupName": "my-glb-targetgroup", + "Protocol": "GENEVE", + "Port": 6081, + "VpcId": "vpc-838475fe", + "HealthCheckProtocol": "TCP", + "HealthCheckPort": "80", + "HealthCheckEnabled": true, + "HealthCheckIntervalSeconds": 10, + "HealthCheckTimeoutSeconds": 5, + "HealthyThresholdCount": 5, + "UnhealthyThresholdCount": 2, + "TargetType": "instance" + } + ] + } + +For more information, see Create a target group `__ in the *Gateway Load Balancer User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/delete-listener.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/delete-listener.rst new file mode 100644 index 000000000..c28a1d3c2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/delete-listener.rst @@ -0,0 +1,6 @@ +**To delete a listener** + +The following ``delete-listener`` example deletes the specified listener. :: + + aws elbv2 delete-listener \ + --listener-arn arn:aws:elasticloadbalancing:ua-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/delete-load-balancer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/delete-load-balancer.rst new file mode 100644 index 000000000..4d15a8a90 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/delete-load-balancer.rst @@ -0,0 +1,6 @@ +**To delete a load balancer** + +The following ``delete-load-balancer`` example deletes the specified load balancer. :: + + aws elbv2 delete-load-balancer \ + --load-balancer-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/delete-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/delete-rule.rst new file mode 100644 index 000000000..d862c11c8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/delete-rule.rst @@ -0,0 +1,6 @@ +**To delete a rule** + +The following ``delete-rule`` example deletes the specified rule. :: + + aws elbv2 delete-rule \ + --rule-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/1291d13826f405c3 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/delete-target-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/delete-target-group.rst new file mode 100644 index 000000000..63fdf9430 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/delete-target-group.rst @@ -0,0 +1,10 @@ +**To delete a target group** + +The following ``delete-target-group`` example deletes the specified target group. :: + + aws elbv2 delete-target-group \ + --target-group-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 + +This command produces no output. + +For more information, see `Delete a load balancer `__ in the *Application Load Balancer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/deregister-targets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/deregister-targets.rst new file mode 100644 index 000000000..09b5ddec5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/deregister-targets.rst @@ -0,0 +1,15 @@ +**Example 1: To deregister a target from a target group** + +The following ``deregister-targets`` example removes the specified instance from the specified target group. :: + + aws elbv2 deregister-targets \ + --target-group-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 \ + --targets Id=i-1234567890abcdef0 + +**Example 2: To deregister a target registered using port overrides** + +The following ``deregister-targets`` example removes an instance from a target group that was registered using port overrides. :: + + aws elbv2 deregister-targets \ + --target-group-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-internal-targets/3bb63f11dfb0faf9 \ + --targets Id=i-1234567890abcdef0,Port=80 Id=i-1234567890abcdef0,Port=766 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-account-limits.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-account-limits.rst new file mode 100644 index 000000000..1a607e1fe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-account-limits.rst @@ -0,0 +1,106 @@ +**To describe your Elastic Load Balancing limits** + +The following ``describe-account-limits`` example displays the Elastic Load Balancing limits for your AWS account in the current Region. :: + + aws elbv2 describe-account-limits + +Output:: + + { + "Limits": [ + { + "Name": "target-groups", + "Max": "3000" + }, + { + "Name": "targets-per-application-load-balancer", + "Max": "1000" + }, + { + "Name": "listeners-per-application-load-balancer", + "Max": "50" + }, + { + "Name": "rules-per-application-load-balancer", + "Max": "100" + }, + { + "Name": "network-load-balancers", + "Max": "50" + }, + { + "Name": "targets-per-network-load-balancer", + "Max": "3000" + }, + { + "Name": "targets-per-availability-zone-per-network-load-balancer", + "Max": "500" + }, + { + "Name": "listeners-per-network-load-balancer", + "Max": "50" + }, + { + "Name": "condition-values-per-alb-rule", + "Max": "5" + }, + { + "Name": "condition-wildcards-per-alb-rule", + "Max": "5" + }, + { + "Name": "target-groups-per-application-load-balancer", + "Max": "100" + }, + { + "Name": "target-groups-per-action-on-application-load-balancer", + "Max": "5" + }, + { + "Name": "target-groups-per-action-on-network-load-balancer", + "Max": "1" + }, + { + "Name": "certificates-per-application-load-balancer", + "Max": "25" + }, + { + "Name": "certificates-per-network-load-balancer", + "Max": "25" + }, + { + "Name": "targets-per-target-group", + "Max": "1000" + }, + { + "Name": "target-id-registrations-per-application-load-balancer", + "Max": "1000" + }, + { + "Name": "network-load-balancer-enis-per-vpc", + "Max": "1200" + }, + { + "Name": "application-load-balancers", + "Max": "50" + }, + { + "Name": "gateway-load-balancers", + "Max": "100" + }, + { + "Name": "gateway-load-balancers-per-vpc", + "Max": "100" + }, + { + "Name": "geneve-target-groups", + "Max": "100" + }, + { + "Name": "targets-per-availability-zone-per-gateway-load-balancer", + "Max": "300" + } + ] + } + +For more information, see `Quotas `__ in the *AWS General Reference*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-listener-certificates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-listener-certificates.rst new file mode 100644 index 000000000..79e029e47 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-listener-certificates.rst @@ -0,0 +1,26 @@ +**To describe the certificates for a secure listener** + +This example describes the certificates for the specified secure listener. + +Command:: + + aws elbv2 describe-listener-certificates --listener-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2 + +Output:: + + { + "Certificates": [ + { + "CertificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/5cc54884-f4a3-4072-80be-05b9ba72f705", + "IsDefault": false + }, + { + "CertificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/3dcb0a41-bd72-4774-9ad9-756919c40557", + "IsDefault": false + }, + { + "CertificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/fe59da96-6f58-4a22-8eed-6d0d50477e1d", + "IsDefault": true + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-listeners.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-listeners.rst new file mode 100644 index 000000000..21df8e577 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-listeners.rst @@ -0,0 +1,71 @@ +**To describe a listener** + +This example describes the specified listener. + +Command:: + + aws elbv2 describe-listeners --listener-arns arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2 + +Output:: + + { + "Listeners": [ + { + "Port": 80, + "Protocol": "HTTP", + "DefaultActions": [ + { + "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", + "Type": "forward" + } + ], + "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", + "ListenerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2" + } + ] + } + +**To describe the listeners for a load balancer** + +This example describe the listeners for the specified load balancer. + +Command:: + + aws elbv2 describe-listeners --load-balancer-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 + +Output:: + + { + "Listeners": [ + { + "Port": 443, + "Protocol": "HTTPS", + "DefaultActions": [ + { + "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", + "Type": "forward" + } + ], + "SslPolicy": "ELBSecurityPolicy-2015-05", + "Certificates": [ + { + "CertificateArn": "arn:aws:iam::123456789012:server-certificate/my-server-cert" + } + ], + "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", + "ListenerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/0467ef3c8400ae65" + }, + { + "Port": 80, + "Protocol": "HTTP", + "DefaultActions": [ + { + "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", + "Type": "forward" + } + ], + "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", + "ListenerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-load-balancer-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-load-balancer-attributes.rst new file mode 100644 index 000000000..fc6e67cde --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-load-balancer-attributes.rst @@ -0,0 +1,64 @@ +**To describe load balancer attributes** + +The following ``describe-load-balancer-attributes`` example displays the attributes of the specified load balancer. :: + + aws elbv2 describe-load-balancer-attributes \ + --load-balancer-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 + +The following example output show the attributes for an Application Load Balancer. :: + + { + "Attributes": [ + { + "Value": "false", + "Key": "access_logs.s3.enabled" + }, + { + "Value": "", + "Key": "access_logs.s3.bucket" + }, + { + "Value": "", + "Key": "access_logs.s3.prefix" + }, + { + "Value": "60", + "Key": "idle_timeout.timeout_seconds" + }, + { + "Value": "false", + "Key": "deletion_protection.enabled" + }, + { + "Value": "true", + "Key": "routing.http2.enabled" + } + ] + } + +The following example output includes the attributes for a Network Load Balancer. :: + + { + "Attributes": [ + { + "Value": "false", + "Key": "access_logs.s3.enabled" + }, + { + "Value": "", + "Key": "access_logs.s3.bucket" + }, + { + "Value": "", + "Key": "access_logs.s3.prefix" + }, + { + "Value": "false", + "Key": "deletion_protection.enabled" + }, + { + "Value": "false", + "Key": "load_balancing.cross_zone.enabled" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-load-balancers.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-load-balancers.rst new file mode 100644 index 000000000..412281826 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-load-balancers.rst @@ -0,0 +1,49 @@ +**To describe a load balancer** + +This example describes the specified load balancer. + +Command:: + + aws elbv2 describe-load-balancers --load-balancer-arns arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 + +Output:: + + { + "LoadBalancers": [ + { + "Type": "application", + "Scheme": "internet-facing", + "IpAddressType": "ipv4", + "VpcId": "vpc-3ac0fb5f", + "AvailabilityZones": [ + { + "ZoneName": "us-west-2a", + "SubnetId": "subnet-8360a9e7" + }, + { + "ZoneName": "us-west-2b", + "SubnetId": "subnet-b7d581c0" + } + ], + "CreatedTime": "2016-03-25T21:26:12.920Z", + "CanonicalHostedZoneId": "Z2P70J7EXAMPLE", + "DNSName": "my-load-balancer-424835706.us-west-2.elb.amazonaws.com", + "SecurityGroups": [ + "sg-5943793c" + ], + "LoadBalancerName": "my-load-balancer", + "State": { + "Code": "active" + }, + "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188" + } + ] + } + +**To describe all load balancers** + +This example describes all of your load balancers. + +Command:: + + aws elbv2 describe-load-balancers diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-rules.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-rules.rst new file mode 100644 index 000000000..eac700a8a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-rules.rst @@ -0,0 +1,13 @@ +**Example 1: To describe a rule** + +The following ``describe-rules`` example displays details for the specified rule. :: + + aws elbv2 describe-rules \ + --rule-arns arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/9683b2d02a6cabee + +**Example 2: To describe the rules for a listener** + +The following ``describe-rules`` example displays details for the rules for the specified listener. The output includes the default rule and any other rules that you've added. :: + + aws elbv2 describe-rules \ + --listener-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-ssl-policies.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-ssl-policies.rst new file mode 100644 index 000000000..eb8255b29 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-ssl-policies.rst @@ -0,0 +1,76 @@ +**Example 1: To list the policies used for SSL negotiation by load balancer type** + +The following ``describe-ssl-policies`` example displays the names of the polices that you can use for SSL negotiation with an Application Load Balancer. The example uses the ``--query`` parameter to display only the names of the policies. :: + + aws elbv2 describe-ssl-policies \ + --load-balancer-type application \ + --query SslPolicies[*].Name + +Output:: + + [ + "ELBSecurityPolicy-2016-08", + "ELBSecurityPolicy-TLS13-1-2-2021-06", + "ELBSecurityPolicy-TLS13-1-2-Res-2021-06", + "ELBSecurityPolicy-TLS13-1-2-Ext1-2021-06", + "ELBSecurityPolicy-TLS13-1-2-Ext2-2021-06", + "ELBSecurityPolicy-TLS13-1-1-2021-06", + "ELBSecurityPolicy-TLS13-1-0-2021-06", + "ELBSecurityPolicy-TLS13-1-3-2021-06", + "ELBSecurityPolicy-TLS-1-2-2017-01", + "ELBSecurityPolicy-TLS-1-1-2017-01", + "ELBSecurityPolicy-TLS-1-2-Ext-2018-06", + "ELBSecurityPolicy-FS-2018-06", + "ELBSecurityPolicy-2015-05", + "ELBSecurityPolicy-TLS-1-0-2015-04", + "ELBSecurityPolicy-FS-1-2-Res-2019-08", + "ELBSecurityPolicy-FS-1-1-2019-08", + "ELBSecurityPolicy-FS-1-2-2019-08", + "ELBSecurityPolicy-FS-1-2-Res-2020-10" + ] + +**Example 2: To list the policies that support a specific protocol** + +The following ``describe-ssl-policies`` example displays the names of the polices that support the TLS 1.3 protocol. The example uses the ``--query`` parameter to display only the names of the policies. :: + + aws elbv2 describe-ssl-policies \ + --load-balancer-type application \ + --query SslPolicies[?contains(SslProtocols,'TLSv1.3')].Name + +Output:: + + [ + "ELBSecurityPolicy-TLS13-1-2-2021-06", + "ELBSecurityPolicy-TLS13-1-2-Res-2021-06", + "ELBSecurityPolicy-TLS13-1-2-Ext1-2021-06", + "ELBSecurityPolicy-TLS13-1-2-Ext2-2021-06", + "ELBSecurityPolicy-TLS13-1-1-2021-06", + "ELBSecurityPolicy-TLS13-1-0-2021-06", + "ELBSecurityPolicy-TLS13-1-3-2021-06" + ] + +**Example 3: To display the ciphers for a policy** + +The following ``describe-ssl-policies`` example displays the names of the ciphers for the specified policy. The example uses the ``--query`` parameter to display only the cipher names. The first cipher in the list has priority 1, and the remaining ciphers are in priority order. :: + + aws elbv2 describe-ssl-policies \ + --names ELBSecurityPolicy-TLS13-1-2-2021-06 \ + --query SslPolicies[*].Ciphers[*].Name + +Output:: + + [ + "TLS_AES_128_GCM_SHA256", + "TLS_AES_256_GCM_SHA384", + "TLS_CHACHA20_POLY1305_SHA256", + "ECDHE-ECDSA-AES128-GCM-SHA256", + "ECDHE-RSA-AES128-GCM-SHA256", + "ECDHE-ECDSA-AES128-SHA256", + "ECDHE-RSA-AES128-SHA256", + "ECDHE-ECDSA-AES256-GCM-SHA384", + "ECDHE-RSA-AES256-GCM-SHA384", + "ECDHE-ECDSA-AES256-SHA384", + "ECDHE-RSA-AES256-SHA384" + ] + +For more information, see `Security policies `__ in the *User Guide for Application Load Balancers*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-tags.rst new file mode 100644 index 000000000..960c986c2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-tags.rst @@ -0,0 +1,27 @@ +**To describe the tags assigned to a load balancer** + +This example describes the tags assigned to the specified load balancer. + +Command:: + + aws elbv2 describe-tags --resource-arns arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 + +Output:: + + { + "TagDescriptions": [ + { + "ResourceArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", + "Tags": [ + { + "Value": "lima", + "Key": "project" + }, + { + "Value": "digital-media", + "Key": "department" + } + ] + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-target-group-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-target-group-attributes.rst new file mode 100644 index 000000000..1429ec2ed --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-target-group-attributes.rst @@ -0,0 +1,59 @@ +**To describe target group attributes** + +The following ``describe-target-group-attributes`` example displays the attributes of the specified target group. :: + + aws elbv2 describe-target-group-attributes \ + --target-group-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 + +The output includes the attributes if the protocol is HTTP or HTTPS and the target type is ``instance`` or ``ip``. :: + + { + "Attributes": [ + { + "Value": "false", + "Key": "stickiness.enabled" + }, + { + "Value": "300", + "Key": "deregistration_delay.timeout_seconds" + }, + { + "Value": "lb_cookie", + "Key": "stickiness.type" + }, + { + "Value": "86400", + "Key": "stickiness.lb_cookie.duration_seconds" + }, + { + "Value": "0", + "Key": "slow_start.duration_seconds" + } + ] + } + +The following output includes the attributes if the protocol is HTTP or HTTPS and the target type is ``lambda``. :: + + { + "Attributes": [ + { + "Value": "false", + "Key": "lambda.multi_value_headers.enabled" + } + ] + } + +The following output includes the attributes if the protocol is TCP, TLS, UDP, or TCP_UDP. :: + + { + "Attributes": [ + { + "Value": "false", + "Key": "proxy_protocol_v2.enabled" + }, + { + "Value": "300", + "Key": "deregistration_delay.timeout_seconds" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-target-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-target-groups.rst new file mode 100644 index 000000000..11848b8e4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-target-groups.rst @@ -0,0 +1,55 @@ +**Example 1: To describe a target group** + +The following ``describe-target-groups`` example displays details for the specified target group. :: + + aws elbv2 describe-target-groups \ + --target-group-arns arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 + +Output:: + + { + "TargetGroups": [ + { + "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", + "TargetGroupName": "my-targets", + "Protocol": "HTTP", + "Port": 80, + "VpcId": "vpc-3ac0fb5f", + "HealthCheckProtocol": "HTTP", + "HealthCheckPort": "traffic-port", + "HealthCheckEnabled": true, + "HealthCheckIntervalSeconds": 30, + "HealthCheckTimeoutSeconds": 5, + "HealthyThresholdCount": 5, + "UnhealthyThresholdCount": 2, + "HealthCheckPath": "/", + "Matcher": { + "HttpCode": "200" + }, + "LoadBalancerArns": [ + "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188" + ], + "TargetType": "instance", + "ProtocolVersion": "HTTP1", + "IpAddressType": "ipv4" + } + ] + } + +**Example 2: To describe all target groups for a load balancer** + +The following ``describe-target-groups`` example displays details for all target groups for the specified load balancer. The example uses the ``--query`` parameter to display only the target group names. :: + + aws elbv2 describe-target-groups \ + --load-balancer-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 \ + --query TargetGroups[*].TargetGroupName + +Output:: + + [ + "my-instance-targets", + "my-ip-targets", + "my-lambda-target" + ] + +For more information, see `Target groups `__ in the *Application Load Balancers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-target-health.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-target-health.rst new file mode 100644 index 000000000..630b34748 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/describe-target-health.rst @@ -0,0 +1,133 @@ +**Example 1: To describe the health of the targets for a target group** + +The following ``describe-target-health`` example displays health details for the targets of the specified target group. These targets are healthy. :: + + aws elbv2 describe-target-health \ + --target-group-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 + +Output:: + + { + "TargetHealthDescriptions": [ + { + "HealthCheckPort": "80", + "Target": { + "Id": "i-ceddcd4d", + "Port": 80 + }, + "TargetHealth": { + "State": "healthy" + } + }, + { + "HealthCheckPort": "80", + "Target": { + "Id": "i-0f76fade", + "Port": 80 + }, + "TargetHealth": { + "State": "healthy" + } + } + ] + } + +**Example 2: To describe the health of a target** + +The following ``describe-target-health`` example displays health details for the specified target. This target is healthy. :: + + aws elbv2 describe-target-health \ + --targets Id=i-0f76fade,Port=80 \ + --target-group-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 + +Output:: + + { + "TargetHealthDescriptions": [ + { + "HealthCheckPort": "80", + "Target": { + "Id": "i-0f76fade", + "Port": 80 + }, + "TargetHealth": { + "State": "healthy" + } + } + ] + } + +The following example output is for a target whose target group is not specified in an action for a listener. This target can't receive traffic from the load balancer. :: + + { + "TargetHealthDescriptions": [ + { + "HealthCheckPort": "80", + "Target": { + "Id": "i-0f76fade", + "Port": 80 + }, + "TargetHealth": { + "State": "unused", + "Reason": "Target.NotInUse", + "Description": "Target group is not configured to receive traffic from the load balancer" + } + } + ] + } + +The following example output is for a target whose target group was just specified in an action for a listener. The target is still being registered. :: + + { + "TargetHealthDescriptions": [ + { + "HealthCheckPort": "80", + "Target": { + "Id": "i-0f76fade", + "Port": 80 + }, + "TargetHealth": { + "State": "initial", + "Reason": "Elb.RegistrationInProgress", + "Description": "Target registration is in progress" + } + } + ] + } + +The following example output is for an unhealthy target. :: + + { + "TargetHealthDescriptions": [ + { + "HealthCheckPort": "80", + "Target": { + "Id": "i-0f76fade", + "Port": 80 + }, + "TargetHealth": { + "State": "unhealthy", + "Reason": "Target.Timeout", + "Description": "Connection to target timed out" + } + } + ] + } + +The following example output is for a target that is a Lambda function and health checks are disabled. :: + + { + "TargetHealthDescriptions": [ + { + "Target": { + "Id": "arn:aws:lambda:us-west-2:123456789012:function:my-function", + "AvailabilityZone": "all", + }, + "TargetHealth": { + "State": "unavailable", + "Reason": "Target.HealthCheckDisabled", + "Description": "Health checks are not enabled for this target" + } + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/modify-listener.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/modify-listener.rst new file mode 100644 index 000000000..5bc4c9965 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/modify-listener.rst @@ -0,0 +1,95 @@ +**Example 1: To change the default action to a forward action** + +The following ``modify-listener`` example changes the default action to a ``forward`` action for the specified listener. :: + + aws elbv2 modify-listener \ + --listener-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2 \ + --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-new-targets/2453ed029918f21f + +Output:: + + { + "Listeners": [ + { + "ListenerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2", + "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", + "Protocol": "HTTP", + "Port": 80, + "DefaultActions": [ + { + "Type": "forward", + "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-new-targets/2453ed029918f21f" + } + ] + } + ] + } + +**Example 2: To change the default action to a redirect action** + +The following ``modify-listener`` example changes the default action to a ``redirect`` action for the specified listener. :: + + aws elbv2 modify-listener \ + --listener-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2 \ + --default-actions Type=redirect, RedirectConfig='{Protocol=HTTPS,StatusCode=HTTP_302}' + +Output:: + + { + "Listeners": [ + { + "ListenerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2", + "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", + "Protocol": "HTTP", + "Port": 80, + "DefaultActions": [ + { + "Type": "redirect", + "RedirectConfig": { + "Protocol": "HTTPS", + "Port": "#{port}", + "Host": "#{host}", + "Path": "/#{path}", + "Query": "#{query}", + "StatusCode": "HTTP_302", + } + } + ] + } + ] + } + +**Example 3: To change the server certificate** + +The following ``modify-listener`` example changes the server certificate for the specified HTTPS listener. :: + + aws elbv2 modify-listener \ + --listener-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/0467ef3c8400ae65 \ + --certificates CertificateArn=arn:aws:iam::123456789012:server-certificate/my-new-server-cert + +Output:: + + { + "Listeners": [ + { + "ListenerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/0467ef3c8400ae65", + "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", + "Protocol": "HTTPS", + "Port": 443, + "DefaultActions": [ + { + "Type": "forward", + "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067" + } + ], + "SslPolicy": "ELBSecurityPolicy-2015-05", + "Certificates": [ + { + "CertificateArn": "arn:aws:iam::123456789012:server-certificate/my-new-server-cert" + } + ], + } + ] + } + +For more information, see `Listener rules `__ in the *Application Load Balancers User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/modify-load-balancer-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/modify-load-balancer-attributes.rst new file mode 100644 index 000000000..c33266b1f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/modify-load-balancer-attributes.rst @@ -0,0 +1,104 @@ +**To enable deletion protection** + +This example enables deletion protection for the specified load balancer. + +Command:: + + aws elbv2 modify-load-balancer-attributes --load-balancer-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 --attributes Key=deletion_protection.enabled,Value=true + +Output:: + + { + "Attributes": [ + { + "Value": "true", + "Key": "deletion_protection.enabled" + }, + { + "Value": "false", + "Key": "access_logs.s3.enabled" + }, + { + "Value": "60", + "Key": "idle_timeout.timeout_seconds" + }, + { + "Value": "", + "Key": "access_logs.s3.prefix" + }, + { + "Value": "", + "Key": "access_logs.s3.bucket" + } + ] + } + +**To change the idle timeout** + +This example changes the idle timeout value for the specified load balancer. + +Command:: + + aws elbv2 modify-load-balancer-attributes --load-balancer-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 --attributes Key=idle_timeout.timeout_seconds,Value=30 + +Output:: + + { + "Attributes": [ + { + "Value": "30", + "Key": "idle_timeout.timeout_seconds" + }, + { + "Value": "false", + "Key": "access_logs.s3.enabled" + }, + { + "Value": "", + "Key": "access_logs.s3.prefix" + }, + { + "Value": "true", + "Key": "deletion_protection.enabled" + }, + { + "Value": "", + "Key": "access_logs.s3.bucket" + } + ] + } + +**To enable access logs** + +This example enables access logs for the specified load balancer. Note that the S3 bucket must exist in the same region as the load balancer and must have a policy attached that grants access to the Elastic Load Balancing service. + +Command:: + + aws elbv2 modify-load-balancer-attributes --load-balancer-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 --attributes Key=access_logs.s3.enabled,Value=true Key=access_logs.s3.bucket,Value=my-loadbalancer-logs Key=access_logs.s3.prefix,Value=myapp + +Output:: + + { + "Attributes": [ + { + "Value": "true", + "Key": "access_logs.s3.enabled" + }, + { + "Value": "my-load-balancer-logs", + "Key": "access_logs.s3.bucket" + }, + { + "Value": "myapp", + "Key": "access_logs.s3.prefix" + }, + { + "Value": "60", + "Key": "idle_timeout.timeout_seconds" + }, + { + "Value": "false", + "Key": "deletion_protection.enabled" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/modify-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/modify-rule.rst new file mode 100644 index 000000000..5fb09842e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/modify-rule.rst @@ -0,0 +1,34 @@ +**To modify a rule** + +The following ``modify-rule`` example updates the actions and conditions for the specified rule. :: + + aws elbv2 modify-rule \ + --actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 \ + --conditions Field=path-pattern,Values='/images/*' + --rule-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/9683b2d02a6cabee + +Output:: + + { + "Rules": [ + { + "Priority": "10", + "Conditions": [ + { + "Field": "path-pattern", + "Values": [ + "/images/*" + ] + } + ], + "RuleArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/9683b2d02a6cabee", + "IsDefault": false, + "Actions": [ + { + "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", + "Type": "forward" + } + ] + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/modify-target-group-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/modify-target-group-attributes.rst new file mode 100644 index 000000000..9709fe870 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/modify-target-group-attributes.rst @@ -0,0 +1,30 @@ +**To modify the deregistration delay timeout** + +This example sets the deregistration delay timeout to the specified value for the specified target group. + +Command:: + + aws elbv2 modify-target-group-attributes --target-group-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 --attributes Key=deregistration_delay.timeout_seconds,Value=600 + +Output:: + + { + "Attributes": [ + { + "Value": "false", + "Key": "stickiness.enabled" + }, + { + "Value": "600", + "Key": "deregistration_delay.timeout_seconds" + }, + { + "Value": "lb_cookie", + "Key": "stickiness.type" + }, + { + "Value": "86400", + "Key": "stickiness.lb_cookie.duration_seconds" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/modify-target-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/modify-target-group.rst new file mode 100644 index 000000000..ce97ec8f9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/modify-target-group.rst @@ -0,0 +1,41 @@ +**To modify the health check configuration for a target group** + +The following ``modify-target-group`` example changes the configuration of the health checks used to evaluate the health of the targets for the specified target group. Note that due to the way the CLI parses commas, you must surround the range for the ``--matcher`` option with single quotes instead of double quotes. :: + + aws elbv2 modify-target-group \ + --target-group-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-https-targets/2453ed029918f21f \ + --health-check-protocol HTTPS \ + --health-check-port 443 \ + --matcher HttpCode='200,299' + +Output:: + + { + "TargetGroups": [ + { + "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-https-targets/2453ed029918f21f", + "TargetGroupName": "my-https-targets", + "Protocol": "HTTPS", + "Port": 443, + "VpcId": "vpc-3ac0fb5f", + "HealthCheckProtocol": "HTTPS", + "HealthCheckPort": "443", + "HealthCheckEnabled": true, + "HealthCheckIntervalSeconds": 30, + "HealthCheckTimeoutSeconds": 5, + "HealthyThresholdCount": 5, + "UnhealthyThresholdCount": 2, + "Matcher": { + "HttpCode": "200,299" + }, + "LoadBalancerArns": [ + "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188" + ], + "TargetType": "instance", + "ProtocolVersion": "HTTP1", + "IpAddressType": "ipv4" + } + ] + } + +For more information, see `Target groups `__ in the *Application Load Balancers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/register-targets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/register-targets.rst new file mode 100644 index 000000000..d89691a68 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/register-targets.rst @@ -0,0 +1,31 @@ +**Example 1: To register targets with a target group by instance ID** + +The following ``register-targets`` example registers the specified instances with a target group. The target group must have a target type of ``instance``. :: + + aws elbv2 register-targets \ + --target-group-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 \ + --targets Id=i-1234567890abcdef0 Id=i-0abcdef1234567890 + +**Example 2: To register targets with a target group using port overrides** + +The following ``register-targets`` example registers the specified instance with a target group using multiple ports. This enables you to register containers on the same instance as targets in the target group. :: + + aws elbv2 register-targets \ + --target-group-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-internal-targets/3bb63f11dfb0faf9 \ + --targets Id=i-0598c7d356eba48d7,Port=80 Id=i-0598c7d356eba48d7,Port=766 + +**Example 3: To register targets with a target group by IP address** + +The following ``register-targets`` example registers the specified IP addresses with a target group. The target group must have a target type of ``ip``. :: + + aws elbv2 register-targets \ + --target-group-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-tcp-ip-targets/8518e899d173178f \ + --targets Id=10.0.1.15 Id=10.0.1.23 + +**Example 4: To register a Lambda function as a target** + +The following ``register-targets`` example registers the specified IP addresses with a target group. The target group must have a target type of ``lambda``. You must grant Elastic Load Balancing permission to invoke the Lambda function. :: + + aws elbv2 register-targets \ + --target-group-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-tcp-ip-targets/8518e899d173178f \ + --targets Id=arn:aws:lambda:us-west-2:123456789012:function:my-function diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/remove-listener-certificates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/remove-listener-certificates.rst new file mode 100644 index 000000000..b732d2ffc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/remove-listener-certificates.rst @@ -0,0 +1,7 @@ +**To remove a certificate from a secure listener** + +This example removes the specified certificate from the specified secure listener. + +Command:: + + aws elbv2 remove-listener-certificates --listener-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2 --certificates CertificateArn=arn:aws:acm:us-west-2:123456789012:certificate/5cc54884-f4a3-4072-80be-05b9ba72f705 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/remove-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/remove-tags.rst new file mode 100644 index 000000000..82330b530 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/remove-tags.rst @@ -0,0 +1,7 @@ +**To remove tags from a load balancer** + +The following ``remove-tags`` example removes the ``project`` and ``department`` tags from the specified load balancer. :: + + aws elbv2 remove-tags \ + --resource-arns arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 \ + --tag-keys project department diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/set-ip-address-type.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/set-ip-address-type.rst new file mode 100644 index 000000000..423224797 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/set-ip-address-type.rst @@ -0,0 +1,13 @@ +**To set the address type of a load balancer** + +This example sets the address type of the specified load balancer to ``dualstack``. The load balancer subnets must have associated IPv6 CIDR blocks. + +Command:: + + aws elbv2 set-ip-address-type --load-balancer-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 --ip-address-type dualstack + +Output:: + + { + "IpAddressType": "dualstack" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/set-rule-priorities.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/set-rule-priorities.rst new file mode 100644 index 000000000..2d5340568 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/set-rule-priorities.rst @@ -0,0 +1,33 @@ +**To set the rule priority** + +This example sets the priority of the specified rule. + +Command:: + + aws elbv2 set-rule-priorities --rule-priorities RuleArn=arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/1291d13826f405c3,Priority=5 + +Output:: + + { + "Rules": [ + { + "Priority": "5", + "Conditions": [ + { + "Field": "path-pattern", + "Values": [ + "/img/*" + ] + } + ], + "RuleArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/1291d13826f405c3", + "IsDefault": false, + "Actions": [ + { + "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", + "Type": "forward" + } + ] + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/set-security-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/set-security-groups.rst new file mode 100644 index 000000000..45144300f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/set-security-groups.rst @@ -0,0 +1,15 @@ +**To associate a security group with a load balancer** + +This example associates the specified security group with the specified load balancer. + +Command:: + + aws elbv2 set-security-groups --load-balancer-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 --security-groups sg-5943793c + +Output:: + + { + "SecurityGroupIds": [ + "sg-5943793c" + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/set-subnets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/set-subnets.rst new file mode 100644 index 000000000..9bd3712c2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/set-subnets.rst @@ -0,0 +1,22 @@ +**To enable Availability Zones for a load balancer** + +This example enables the Availability Zone for the specified subnet for the specified load balancer. + +Command:: + + aws elbv2 set-subnets --load-balancer-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 --subnets subnet-8360a9e7 subnet-b7d581c0 + +Output:: + + { + "AvailabilityZones": [ + { + "SubnetId": "subnet-8360a9e7", + "ZoneName": "us-west-2a" + }, + { + "SubnetId": "subnet-b7d581c0", + "ZoneName": "us-west-2b" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/wait/load-balancer-available.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/wait/load-balancer-available.rst new file mode 100644 index 000000000..0097091eb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/wait/load-balancer-available.rst @@ -0,0 +1,8 @@ +**To pause running until a load balancer is available** + +The following ``wait load-balancer-available`` command pauses and continues only after it confirms that the specified load balancer is available. :: + + aws elbv2 wait load-balancer-available \ + --load-balancer-arns arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/wait/load-balancer-exists.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/wait/load-balancer-exists.rst new file mode 100644 index 000000000..5b1d631a3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/wait/load-balancer-exists.rst @@ -0,0 +1,8 @@ +**To pause running until a load balancer exists** + +The following ``wait load-balancer-exists`` command pauses and continues only after it confirms that the specified load balancer exists. + + aws elbv2 wait load-balancer-exists \ + --load-balancer-arns arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/wait/load-balancers-deleted.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/wait/load-balancers-deleted.rst new file mode 100644 index 000000000..261c91189 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/wait/load-balancers-deleted.rst @@ -0,0 +1,8 @@ +**To pause running until a load balancer is deleted** + +The following ``wait load-balancers-deleted`` command pauses and continues only after it confirms that the specified load balancer is deleted. + + aws elbv2 wait load-balancers-deleted \ + --load-balancer-arns arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/wait/target-deregistered.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/wait/target-deregistered.rst new file mode 100644 index 000000000..409bbf0ca --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/wait/target-deregistered.rst @@ -0,0 +1,9 @@ +**To pause running until a target is deregistered** + +The following ``wait target-deregistered`` command pauses and continues only after it confirms that the specified target is deregistered. + + aws elbv2 wait target-deregistered \ + --target-group-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 \ + --targets Id=i-1234567890abcdef0,Port=80 + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/wait/target-in-service.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/wait/target-in-service.rst new file mode 100644 index 000000000..87f9c20db --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/elbv2/wait/target-in-service.rst @@ -0,0 +1,9 @@ +**To pause running until a registered target is in service** + +The following ``wait target-in-service`` command pauses and continues only after it confirms that the specified target is in service. + + aws elbv2 wait target-in-service \ + --target-group-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 \ + --targets Id=i-1234567890abcdef0,Port=80 + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr-containers/update-role-trust-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr-containers/update-role-trust-policy.rst new file mode 100644 index 000000000..22acdbcbf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr-containers/update-role-trust-policy.rst @@ -0,0 +1,20 @@ +**To update the trust policy of an IAM Role to be used with Amazon EMR on EKS** + +This example command updates the trust policy of a role named **example_iam_role** such that it can be used with Amazon EMR on EKS with +**example_namespace** namespace from an EKS cluster named **example_cluster**. + +* Command:: + + aws emr-containers update-role-trust-policy \ + --cluster example_cluster \ + --namespace example_namespace \ + --role-name example_iam_role + +* Output:: + + If the trust policy has already been updated, then the output will be: + Trust policy statement already exists for role example_iam_role. No + changes were made! + + If the trust policy has not been updated yet, then the output will be: + Successfully updated trust policy of role example_iam_role. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr-containers/update-role-trust-policy/_description.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr-containers/update-role-trust-policy/_description.rst new file mode 100644 index 000000000..a26af13f2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr-containers/update-role-trust-policy/_description.rst @@ -0,0 +1,35 @@ +Updates the trust policy of given IAM role such that it can be used with Amazon EMR on EKS with the given namespace from the given EKS cluster. + +Note: + To use the IAM Role with Amazon EMR on EKS, OIDC identity provider also needs to be created for the EKS cluster. + This can be done using ``eksctl utils associate-iam-oidc-provider --cluster --approve`` command. + For information about installing or upgrading eksctl, see `Installing or upgrading eksctl `__ in the *Amazon EKS User Guide*. + +The command would merge the existing trust policy of the role with the below trust policy:: + + { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Federated": "arn:aws:iam:::oidc-provider/" + }, + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringLike": { + ":sub": "system:serviceaccount::emr-containers-sa-*-*--" + } + } + } + ] + } + +Here:: + + = AWS Account ID of the EKS cluster + = OIDC Identity Provider for the EKS cluster + = Namespace of the EKS cluster + = Base36 encoded form of the IAM Role name + +You can use the **--dry-run** option to print the merged trust policy document to stdout instead of updating the role trust policy directly. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/add-instance-fleet.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/add-instance-fleet.rst new file mode 100644 index 000000000..4edbb8761 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/add-instance-fleet.rst @@ -0,0 +1,14 @@ +**To add a task instance fleet to a cluster** + +This example adds a new task instance fleet to the cluster specified. + +Command:: + + aws emr add-instance-fleet --cluster-id 'j-12ABCDEFGHI34JK' --instance-fleet InstanceFleetType=TASK,TargetSpotCapacity=1,LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=20,TimeoutAction=TERMINATE_CLUSTER}'},InstanceTypeConfigs=['{InstanceType=m3.xlarge,BidPrice=0.5}'] + +Output:: + + { + "ClusterId": "j-12ABCDEFGHI34JK", + "InstanceFleetId": "if-23ABCDEFGHI45JJ" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/add-steps.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/add-steps.rst new file mode 100644 index 000000000..6ec39f356 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/add-steps.rst @@ -0,0 +1,180 @@ +**1. To add Custom JAR steps to a cluster** + +- Command:: + + aws emr add-steps --cluster-id j-XXXXXXXX --steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://amzn-s3-demo-bucket/mytest.jar,Args=arg1,arg2,arg3 Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://amzn-s3-demo-bucket/mytest.jar,MainClass=mymainclass,Args=arg1,arg2,arg3 + +- Required parameters:: + + Jar + +- Optional parameters:: + + Type, Name, ActionOnFailure, Args + +- Output:: + + { + "StepIds":[ + "s-XXXXXXXX", + "s-YYYYYYYY" + ] + } + +**2. To add Streaming steps to a cluster** + +- Command:: + + aws emr add-steps --cluster-id j-XXXXXXXX --steps Type=STREAMING,Name='Streaming Program',ActionOnFailure=CONTINUE,Args=[-files,s3://elasticmapreduce/samples/wordcount/wordSplitter.py,-mapper,wordSplitter.py,-reducer,aggregate,-input,s3://elasticmapreduce/samples/wordcount/input,-output,s3://amzn-s3-demo-bucket/wordcount/output] + +- Required parameters:: + + Type, Args + +- Optional parameters:: + + Name, ActionOnFailure + +- JSON equivalent (contents of step.json):: + + [ + { + "Name": "JSON Streaming Step", + "Args": ["-files","s3://elasticmapreduce/samples/wordcount/wordSplitter.py","-mapper","wordSplitter.py","-reducer","aggregate","-input","s3://elasticmapreduce/samples/wordcount/input","-output","s3://amzn-s3-demo-bucket/wordcount/output"], + "ActionOnFailure": "CONTINUE", + "Type": "STREAMING" + } + ] + +NOTE: JSON arguments must include options and values as their own items in the list. + +- Command (using step.json):: + + aws emr add-steps --cluster-id j-XXXXXXXX --steps file://./step.json + +- Output:: + + { + "StepIds":[ + "s-XXXXXXXX", + "s-YYYYYYYY" + ] + } + +**3. To add a Streaming step with multiple files to a cluster (JSON only)** + +- JSON (multiplefiles.json):: + + [ + { + "Name": "JSON Streaming Step", + "Type": "STREAMING", + "ActionOnFailure": "CONTINUE", + "Args": [ + "-files", + "s3://amzn-s3-demo-bucket/mapper.py,s3://amzn-s3-demo-bucket/reducer.py", + "-mapper", + "mapper.py", + "-reducer", + "reducer.py", + "-input", + "s3://amzn-s3-demo-bucket/input", + "-output", + "s3://amzn-s3-demo-bucket/output"] + } + ] + +- Command:: + + aws emr add-steps --cluster-id j-XXXXXXXX --steps file://./multiplefiles.json + +- Required parameters:: + + Type, Args + +- Optional parameters:: + + Name, ActionOnFailure + +- Output:: + + { + "StepIds":[ + "s-XXXXXXXX", + ] + } + + +**4. To add Hive steps to a cluster** + +- Command:: + + aws emr add-steps --cluster-id j-XXXXXXXX --steps Type=HIVE,Name='Hive program',ActionOnFailure=CONTINUE,Args=[-f,s3://amzn-s3-demo-bucket/myhivescript.q,-d,INPUT=s3://amzn-s3-demo-bucket/myhiveinput,-d,OUTPUT=s3://amzn-s3-demo-bucket/myhiveoutput,arg1,arg2] Type=HIVE,Name='Hive steps',ActionOnFailure=TERMINATE_CLUSTER,Args=[-f,s3://elasticmapreduce/samples/hive-ads/libs/model-build.q,-d,INPUT=s3://elasticmapreduce/samples/hive-ads/tables,-d,OUTPUT=s3://amzn-s3-demo-bucket/hive-ads/output/2014-04-18/11-07-32,-d,LIBS=s3://elasticmapreduce/samples/hive-ads/libs] + + +- Required parameters:: + + Type, Args + +- Optional parameters:: + + Name, ActionOnFailure + +- Output:: + + { + "StepIds":[ + "s-XXXXXXXX", + "s-YYYYYYYY" + ] + } + + +**5. To add Pig steps to a cluster** + +- Command:: + + aws emr add-steps --cluster-id j-XXXXXXXX --steps Type=PIG,Name='Pig program',ActionOnFailure=CONTINUE,Args=[-f,s3://amzn-s3-demo-bucket/mypigscript.pig,-p,INPUT=s3://amzn-s3-demo-bucket/mypiginput,-p,OUTPUT=s3://amzn-s3-demo-bucket/mypigoutput,arg1,arg2] Type=PIG,Name='Pig program',Args=[-f,s3://elasticmapreduce/samples/pig-apache/do-reports2.pig,-p,INPUT=s3://elasticmapreduce/samples/pig-apache/input,-p,OUTPUT=s3://amzn-s3-demo-bucket/pig-apache/output,arg1,arg2] + + +- Required parameters:: + + Type, Args + +- Optional parameters:: + + Name, ActionOnFailure + +- Output:: + + { + "StepIds":[ + "s-XXXXXXXX", + "s-YYYYYYYY" + ] + } + + +**6. To add Impala steps to a cluster** + +- Command:: + + aws emr add-steps --cluster-id j-XXXXXXXX --steps Type=IMPALA,Name='Impala program',ActionOnFailure=CONTINUE,Args=--impala-script,s3://myimpala/input,--console-output-path,s3://myimpala/output + +- Required parameters:: + + Type, Args + +- Optional parameters:: + + Name, ActionOnFailure + +- Output:: + + { + "StepIds":[ + "s-XXXXXXXX", + "s-YYYYYYYY" + ] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/add-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/add-tags.rst new file mode 100644 index 000000000..7675d7af7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/add-tags.rst @@ -0,0 +1,36 @@ +**1. To add tags to a cluster** + +- Command:: + + aws emr add-tags --resource-id j-xxxxxxx --tags name="John Doe" age=29 sex=male address="123 East NW Seattle" + +- Output:: + + None + +**2. To list tags of a cluster** + +--Command:: + + aws emr describe-cluster --cluster-id j-XXXXXXYY --query Cluster.Tags + +- Output:: + + [ + { + "Value": "male", + "Key": "sex" + }, + { + "Value": "123 East NW Seattle", + "Key": "address" + }, + { + "Value": "John Doe", + "Key": "name" + }, + { + "Value": "29", + "Key": "age" + } + ] diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/create-cluster-examples.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/create-cluster-examples.rst new file mode 100644 index 000000000..23d48e524 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/create-cluster-examples.rst @@ -0,0 +1,550 @@ +Most of the following examples assume that you specified your Amazon EMR service role and Amazon EC2 instance profile. If you have not done this, you must specify each required IAM role or use the ``--use-default-roles`` parameter when creating your cluster. For more information about specifying IAM roles, see `Configure IAM Roles for Amazon EMR Permissions to AWS Services `_ in the *Amazon EMR Management Guide*. + +**Example 1: To create a cluster** + +The following ``create-cluster`` example creates a simple EMR cluster. :: + + aws emr create-cluster \ + --release-label emr-5.14.0 \ + --instance-type m4.large \ + --instance-count 2 + +This command produces no output. + +**Example 2: To create an Amazon EMR cluster with default ServiceRole and InstanceProfile roles** + +The following ``create-cluster`` example creates an Amazon EMR cluster that uses the ``--instance-groups`` configuration. :: + + aws emr create-cluster \ + --release-label emr-5.14.0 \ + --service-role EMR_DefaultRole \ + --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large + +**Example 3: To create an Amazon EMR cluster that uses an instance fleet** + +The following ``create-cluster`` example creates an Amazon EMR cluster that uses the ``--instance-fleets`` configuration, specifying two instance types for each fleet and two EC2 Subnets. :: + + aws emr create-cluster \ + --release-label emr-5.14.0 \ + --service-role EMR_DefaultRole \ + --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c','subnet-de67890f'] \ + --instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m4.large}'] InstanceFleetType=CORE,TargetSpotCapacity=11,InstanceTypeConfigs=['{InstanceType=m4.large,BidPrice=0.5,WeightedCapacity=3}','{InstanceType=m4.2xlarge,BidPrice=0.9,WeightedCapacity=5}'],LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'} + +**Example 4: To create a cluster with default roles** + +The following ``create-cluster`` example uses the ``--use-default-roles`` parameter to specify the default service role and instance profile. :: + + aws emr create-cluster \ + --release-label emr-5.9.0 \ + --use-default-roles \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ + --auto-terminate + +**Example 5: To create a cluster and specify the applications to install** + +The following ``create-cluster`` example uses the ``--applications`` parameter to specify the applications that Amazon EMR installs. This example installs Hadoop, Hive and Pig. :: + + aws emr create-cluster \ + --applications Name=Hadoop Name=Hive Name=Pig \ + --release-label emr-5.9.0 \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ + --auto-terminate + +**Example 6: To create a cluster that includes Spark** + +The following example installs Spark. :: + + aws emr create-cluster \ + --release-label emr-5.9.0 \ + --applications Name=Spark \ + --ec2-attributes KeyName=myKey \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ + --auto-terminate + +**Example 7: To specify a custom AMI to use for cluster instances** + +The following ``create-cluster`` example creates a cluster instance based on the Amazon Linux AMI with ID ``ami-a518e6df``. :: + + aws emr create-cluster \ + --name "Cluster with My Custom AMI" \ + --custom-ami-id ami-a518e6df \ + --ebs-root-volume-size 20 \ + --release-label emr-5.9.0 \ + --use-default-roles \ + --instance-count 2 \ + --instance-type m4.large + +**Example 8: To customize application configurations** + +The following examples use the ``--configurations`` parameter to specify a JSON configuration file that contains application customizations for Hadoop. For more information, see `Configuring Applications `__ in the *Amazon EMR Release Guide*. + +Contents of ``configurations.json``:: + + [ + { + "Classification": "mapred-site", + "Properties": { + "mapred.tasktracker.map.tasks.maximum": 2 + } + }, + { + "Classification": "hadoop-env", + "Properties": {}, + "Configurations": [ + { + "Classification": "export", + "Properties": { + "HADOOP_DATANODE_HEAPSIZE": 2048, + "HADOOP_NAMENODE_OPTS": "-XX:GCTimeRatio=19" + } + } + ] + } + ] + +The following example references ``configurations.json`` as a local file. :: + + aws emr create-cluster \ + --configurations file://configurations.json \ + --release-label emr-5.9.0 \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ + --auto-terminate + +The following example references ``configurations.json`` as a file in Amazon S3. :: + + aws emr create-cluster \ + --configurations https://s3.amazonaws.com/amzn-s3-demo-bucket/configurations.json \ + --release-label emr-5.9.0 \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ + --auto-terminate + +**Example 9: To create a cluster with master, core, and task instance groups** + +The following ``create-cluster`` example uses ``--instance-groups`` to specify the type and number of EC2 instances to use for master, core, and task instance groups. :: + + aws emr create-cluster \ + --release-label emr-5.9.0 \ + --instance-groups Name=Master,InstanceGroupType=MASTER,InstanceType=m4.large,InstanceCount=1 Name=Core,InstanceGroupType=CORE,InstanceType=m4.large,InstanceCount=2 Name=Task,InstanceGroupType=TASK,InstanceType=m4.large,InstanceCount=2 + +**Example 10: To specify that a cluster should terminate after completing all steps** + +The following ``create-cluster`` example uses ``--auto-terminate`` to specify that the cluster should shut down automatically after completing all steps. :: + + aws emr create-cluster \ + --release-label emr-5.9.0 \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ + --auto-terminate + +**Example 11: To specify cluster configuration details such as the Amazon EC2 key pair, network configuration, and security groups** + +The following ``create-cluster`` example creates a cluster with the Amazon EC2 key pair named ``myKey`` and a customized instance profile named ``myProfile``. Key pairs are used to authorize SSH connections to cluster nodes, most often the master node. For more information, see `Use an Amazon EC2 Key Pair for SSH Credentials `__ in the *Amazon EMR Management Guide*. :: + + aws emr create-cluster \ + --ec2-attributes KeyName=myKey,InstanceProfile=myProfile \ + --release-label emr-5.9.0 \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ + --auto-terminate + +The following example creates a cluster in an Amazon VPC subnet. :: + + aws emr create-cluster \ + --ec2-attributes SubnetId=subnet-xxxxx \ + --release-label emr-5.9.0 \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ + --auto-terminate + +The following example creates a cluster in the ``us-east-1b`` availability zone. :: + + aws emr create-cluster \ + --ec2-attributes AvailabilityZone=us-east-1b \ + --release-label emr-5.9.0 \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large + +The following example creates a cluster and specifies only the Amazon EMR-managed security groups. :: + + aws emr create-cluster \ + --release-label emr-5.9.0 \ + --service-role myServiceRole \ + --ec2-attributes InstanceProfile=myRole,EmrManagedMasterSecurityGroup=sg-master1,EmrManagedSlaveSecurityGroup=sg-slave1 \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large + +The following example creates a cluster and specifies only additional Amazon EC2 security groups. :: + + aws emr create-cluster \ + --release-label emr-5.9.0 \ + --service-role myServiceRole \ + --ec2-attributes InstanceProfile=myRole,AdditionalMasterSecurityGroups=[sg-addMaster1,sg-addMaster2,sg-addMaster3,sg-addMaster4],AdditionalSlaveSecurityGroups=[sg-addSlave1,sg-addSlave2,sg-addSlave3,sg-addSlave4] \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large + +The following example creates a cluster and specifies the EMR-Managed security groups, as well as additional security groups. :: + + aws emr create-cluster \ + --release-label emr-5.9.0 \ + --service-role myServiceRole \ + --ec2-attributes InstanceProfile=myRole,EmrManagedMasterSecurityGroup=sg-master1,EmrManagedSlaveSecurityGroup=sg-slave1,AdditionalMasterSecurityGroups=[sg-addMaster1,sg-addMaster2,sg-addMaster3,sg-addMaster4],AdditionalSlaveSecurityGroups=[sg-addSlave1,sg-addSlave2,sg-addSlave3,sg-addSlave4] \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large + +The following example creates a cluster in a VPC private subnet and use a specific Amazon EC2 security group to enable Amazon EMR service access, which is required for clusters in private subnets. :: + + aws emr create-cluster \ + --release-label emr-5.9.0 \ + --service-role myServiceRole \ + --ec2-attributes InstanceProfile=myRole,ServiceAccessSecurityGroup=sg-service-access,EmrManagedMasterSecurityGroup=sg-master,EmrManagedSlaveSecurityGroup=sg-slave \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large + +The following example specifies security group configuration parameters using a JSON file named ``ec2_attributes.json`` that is stored locally. +NOTE: JSON arguments must include options and values as their own items in the list. :: + + aws emr create-cluster \ + --release-label emr-5.9.0 \ + --service-role myServiceRole \ + --ec2-attributes file://ec2_attributes.json \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large + +Contents of ``ec2_attributes.json``:: + + [ + { + "SubnetId": "subnet-xxxxx", + "KeyName": "myKey", + "InstanceProfile":"myRole", + "EmrManagedMasterSecurityGroup": "sg-master1", + "EmrManagedSlaveSecurityGroup": "sg-slave1", + "ServiceAccessSecurityGroup": "sg-service-access", + "AdditionalMasterSecurityGroups": ["sg-addMaster1","sg-addMaster2","sg-addMaster3","sg-addMaster4"], + "AdditionalSlaveSecurityGroups": ["sg-addSlave1","sg-addSlave2","sg-addSlave3","sg-addSlave4"] + } + ] + +**Example 12: To enable debugging and specify a log URI** + +The following ``create-cluster`` example uses the ``--enable-debugging`` parameter, which allows you to view log files more easily using the debugging tool in the Amazon EMR console. The ``--log-uri`` parameter is required with ``--enable-debugging``. :: + + aws emr create-cluster \ + --enable-debugging \ + --log-uri s3://amzn-s3-demo-bucket/myLog \ + --release-label emr-5.9.0 \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ + --auto-terminate + +**Example 13: To add tags when creating a cluster** + +Tags are key-value pairs that help you identify and manage clusters. The following ``create-cluster`` example uses the ``--tags`` parameter to create three tags for a cluster, one with the key name ``name`` and the value ``Shirley Rodriguez``, a second with the key name ``age`` and the value ``29``, and a third tag with the key name ``department`` and the value ``Analytics``. :: + + aws emr create-cluster \ + --tags name="Shirley Rodriguez" age=29 department="Analytics" \ + --release-label emr-5.32.0 \ + --instance-type m5.xlarge \ + --instance-count 3 \ + --use-default-roles + +The following example lists the tags applied to a cluster. :: + + aws emr describe-cluster \ + --cluster-id j-XXXXXXYY \ + --query Cluster.Tags + +**Example 14: To use a security configuration that enables encryption and other security features** + +The following ``create-cluster`` example uses the ``--security-configuration`` parameter to specify a security configuration for an EMR cluster. You can use security configurations with Amazon EMR version 4.8.0 or later. :: + + aws emr create-cluster \ + --instance-type m4.large \ + --release-label emr-5.9.0 \ + --security-configuration mySecurityConfiguration + +**Example 15: To create a cluster with additional EBS storage volumes configured for the instance groups** + +When specifying additional EBS volumes, the following arguments are required: ``VolumeType``, ``SizeInGB`` if ``EbsBlockDeviceConfigs`` is specified. + +The following ``create-cluster`` example creates a cluster with multiple EBS volumes attached to EC2 instances in the core instance group. :: + + aws emr create-cluster \ + --release-label emr-5.9.0 \ + --use-default-roles \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=d2.xlarge 'InstanceGroupType=CORE,InstanceCount=2,InstanceType=d2.xlarge,EbsConfiguration={EbsOptimized=true,EbsBlockDeviceConfigs=[{VolumeSpecification={VolumeType=gp2,SizeInGB=100}},{VolumeSpecification={VolumeType=io1,SizeInGB=100,Iops=100},VolumesPerInstance=4}]}' \ + --auto-terminate + +The following example creates a cluster with multiple EBS volumes attached to EC2 instances in the master instance group. :: + + aws emr create-cluster \ + --release-label emr-5.9.0 \ + --use-default-roles \ + --instance-groups 'InstanceGroupType=MASTER, InstanceCount=1, InstanceType=d2.xlarge, EbsConfiguration={EbsOptimized=true, EbsBlockDeviceConfigs=[{VolumeSpecification={VolumeType=io1, SizeInGB=100, Iops=100}},{VolumeSpecification={VolumeType=standard,SizeInGB=50},VolumesPerInstance=3}]}' InstanceGroupType=CORE,InstanceCount=2,InstanceType=d2.xlarge \ + --auto-terminate + +**Example 16: To create a cluster with an automatic scaling policy** + +You can attach automatic scaling policies to core and task instance groups using Amazon EMR version 4.0 and later. The automatic scaling policy dynamically adds and removes EC2 instances in response to an Amazon CloudWatch metric. For more information, see `Using Automatic Scaling in Amazon EMR` `_ in the *Amazon EMR Management Guide*. + +When attaching an automatic scaling policy, you must also specify the default role for automatic scaling using ``--auto-scaling-role EMR_AutoScaling_DefaultRole``. + +The following ``create-cluster`` example specifies the automatic scaling policy for the ``CORE`` instance group using the ``AutoScalingPolicy`` argument with an embedded JSON structure, which specifies the scaling policy configuration. Instance groups with an embedded JSON structure must have the entire collection of arguments enclosed in single quotes. Using single quotes is optional for instance groups without an embedded JSON structure. :: + + aws emr create-cluster + --release-label emr-5.9.0 \ + --use-default-roles --auto-scaling-role EMR_AutoScaling_DefaultRole \ + --instance-groups InstanceGroupType=MASTER,InstanceType=d2.xlarge,InstanceCount=1 'InstanceGroupType=CORE,InstanceType=d2.xlarge,InstanceCount=2,AutoScalingPolicy={Constraints={MinCapacity=1,MaxCapacity=5},Rules=[{Name=TestRule,Description=TestDescription,Action={Market=ON_DEMAND,SimpleScalingPolicyConfiguration={AdjustmentType=EXACT_CAPACITY,ScalingAdjustment=2}},Trigger={CloudWatchAlarmDefinition={ComparisonOperator=GREATER_THAN,EvaluationPeriods=5,MetricName=TestMetric,Namespace=EMR,Period=3,Statistic=MAXIMUM,Threshold=4.5,Unit=NONE,Dimensions=[{Key=TestKey,Value=TestValue}]}}}]}' + +The following example uses a JSON file, ``instancegroupconfig.json``, to specify the configuration of all instance groups in a cluster. The JSON file specifies the automatic scaling policy configuration for the core instance group. :: + + aws emr create-cluster \ + --release-label emr-5.9.0 \ + --service-role EMR_DefaultRole \ + --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ + --instance-groups file://myfolder/instancegroupconfig.json \ + --auto-scaling-role EMR_AutoScaling_DefaultRole + +Contents of ``instancegroupconfig.json``:: + + [ + { + "InstanceCount": 1, + "Name": "MyMasterIG", + "InstanceGroupType": "MASTER", + "InstanceType": "m4.large" + }, + { + "InstanceCount": 2, + "Name": "MyCoreIG", + "InstanceGroupType": "CORE", + "InstanceType": "m4.large", + "AutoScalingPolicy": { + "Constraints": { + "MinCapacity": 2, + "MaxCapacity": 10 + }, + "Rules": [ + { + "Name": "Default-scale-out", + "Description": "Replicates the default scale-out rule in the console for YARN memory.", + "Action": { + "SimpleScalingPolicyConfiguration": { + "AdjustmentType": "CHANGE_IN_CAPACITY", + "ScalingAdjustment": 1, + "CoolDown": 300 + } + }, + "Trigger": { + "CloudWatchAlarmDefinition": { + "ComparisonOperator": "LESS_THAN", + "EvaluationPeriods": 1, + "MetricName": "YARNMemoryAvailablePercentage", + "Namespace": "AWS/ElasticMapReduce", + "Period": 300, + "Threshold": 15, + "Statistic": "AVERAGE", + "Unit": "PERCENT", + "Dimensions": [ + { + "Key": "JobFlowId", + "Value": "${emr.clusterId}" + } + ] + } + } + } + ] + } + } + ] + +**Example 17: Add custom JAR steps when creating a cluster** + +The following ``create-cluster`` example adds steps by specifying a JAR file stored in Amazon S3. Steps submit work to a cluster. The main function defined in the JAR file executes after EC2 instances are provisioned, any bootstrap actions have executed, and applications are installed. The steps are specified using ``Type=CUSTOM_JAR``. + +Custom JAR steps require the ``Jar=`` parameter, which specifies the path and file name of the JAR. Optional parameters are ``Type``, ``Name``, ``ActionOnFailure``, ``Args``, and ``MainClass``. If main class is not specified, the JAR file should specify ``Main-Class`` in its manifest file. :: + + aws emr create-cluster \ + --steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://amzn-s3-demo-bucket/mytest.jar,Args=arg1,arg2,arg3 Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://amzn-s3-demo-bucket/mytest.jar,MainClass=mymainclass,Args=arg1,arg2,arg3 \ + --release-label emr-5.3.1 \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ + --auto-terminate + +**Example 18: To add streaming steps when creating a cluster** + +The following ``create-cluster`` examples add a streaming step to a cluster that terminates after all steps run. Streaming steps require parameters ``Type`` and ``Args``. Streaming steps optional parameters are ``Name`` and ``ActionOnFailure``. + +The following example specifies the step inline. :: + + aws emr create-cluster \ + --steps Type=STREAMING,Name='Streaming Program',ActionOnFailure=CONTINUE,Args=[-files,s3://elasticmapreduce/samples/wordcount/wordSplitter.py,-mapper,wordSplitter.py,-reducer,aggregate,-input,s3://elasticmapreduce/samples/wordcount/input,-output,s3://amzn-s3-demo-bucket/wordcount/output] \ + --release-label emr-5.3.1 \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ + --auto-terminate + +The following example uses a locally stored JSON configuration file named ``multiplefiles.json``. The JSON configuration specifies multiple files. To specify multiple files within a step, you must use a JSON configuration file to specify the step. JSON arguments must include options and values as their own items in the list. :: + + aws emr create-cluster \ + --steps file://./multiplefiles.json \ + --release-label emr-5.9.0 \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ + --auto-terminate + +Contents of ``multiplefiles.json``:: + + [ + { + "Name": "JSON Streaming Step", + "Args": [ + "-files", + "s3://elasticmapreduce/samples/wordcount/wordSplitter.py", + "-mapper", + "wordSplitter.py", + "-reducer", + "aggregate", + "-input", + "s3://elasticmapreduce/samples/wordcount/input", + "-output", + "s3://amzn-s3-demo-bucket/wordcount/output" + ], + "ActionOnFailure": "CONTINUE", + "Type": "STREAMING" + } + ] + +**Example 19: To add Hive steps when creating a cluster** + +The following example add Hive steps when creating a cluster. Hive steps require parameters ``Type`` and ``Args``. Hive steps optional parameters are ``Name`` and ``ActionOnFailure``. :: + + aws emr create-cluster \ + --steps Type=HIVE,Name='Hive program',ActionOnFailure=CONTINUE,ActionOnFailure=TERMINATE_CLUSTER,Args=[-f,s3://elasticmapreduce/samples/hive-ads/libs/model-build.q,-d,INPUT=s3://elasticmapreduce/samples/hive-ads/tables,-d,OUTPUT=s3://amzn-s3-demo-bucket/hive-ads/output/2014-04-18/11-07-32,-d,LIBS=s3://elasticmapreduce/samples/hive-ads/libs] \ + --applications Name=Hive \ + --release-label emr-5.3.1 \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large + +**Example 20: To add Pig steps when creating a cluster** + +The following example adds Pig steps when creating a cluster. Pig steps required parameters are ``Type`` and ``Args``. Pig steps optional parameters are ``Name`` and ``ActionOnFailure``. :: + + aws emr create-cluster \ + --steps Type=PIG,Name='Pig program',ActionOnFailure=CONTINUE,Args=[-f,s3://elasticmapreduce/samples/pig-apache/do-reports2.pig,-p,INPUT=s3://elasticmapreduce/samples/pig-apache/input,-p,OUTPUT=s3://amzn-s3-demo-bucket/pig-apache/output] \ + --applications Name=Pig \ + --release-label emr-5.3.1 \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large + +**Example 21: To add bootstrap actions** + +The following ``create-cluster`` example runs two bootstrap actions defined as scripts that are stored in Amazon S3. :: + + aws emr create-cluster \ + --bootstrap-actions Path=s3://amzn-s3-demo-bucket/myscript1,Name=BootstrapAction1,Args=[arg1,arg2] Path=s3://amzn-s3-demo-bucket/myscript2,Name=BootstrapAction2,Args=[arg1,arg2] \ + --release-label emr-5.3.1 \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ + --auto-terminate + +**Example 22: To enable EMRFS consistent view and customize the RetryCount and RetryPeriod settings** + +The following ``create-cluster`` example specifies the retry count and retry period for EMRFS consistent view. The ``Consistent=true`` argument is required. :: + + aws emr create-cluster \ + --instance-type m4.large \ + --release-label emr-5.9.0 \ + --emrfs Consistent=true,RetryCount=6,RetryPeriod=30 + +The following example specifies the same EMRFS configuration as the previous example, using a locally stored JSON configuration file named ``emrfsconfig.json``. :: + + aws emr create-cluster \ + --instance-type m4.large \ + --release-label emr-5.9.0 \ + --emrfs file://emrfsconfig.json + +Contents of ``emrfsconfig.json``:: + + { + "Consistent": true, + "RetryCount": 6, + "RetryPeriod": 30 + } + +**Example 23: To create a cluster with Kerberos configured** + +The following ``create-cluster`` examples create a cluster using a security configuration with Kerberos enabled, and establishes Kerberos parameters for the cluster using ``--kerberos-attributes``. + +The following command specifies Kerberos attributes for the cluster inline. :: + + aws emr create-cluster \ + --instance-type m3.xlarge \ + --release-label emr-5.10.0 \ + --service-role EMR_DefaultRole \ + --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ + --security-configuration mySecurityConfiguration \ + --kerberos-attributes Realm=EC2.INTERNAL,KdcAdminPassword=123,CrossRealmTrustPrincipalPassword=123 + +The following command specifies the same attributes, but references a locally stored JSON file named ``kerberos_attributes.json``. In this example, the file is saved in the same directory where you run the command. You can also reference a configuration file saved in Amazon S3. :: + + aws emr create-cluster \ + --instance-type m3.xlarge \ + --release-label emr-5.10.0 \ + --service-role EMR_DefaultRole \ + --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ + --security-configuration mySecurityConfiguration \ + --kerberos-attributes file://kerberos_attributes.json + +Contents of ``kerberos_attributes.json``:: + + { + "Realm": "EC2.INTERNAL", + "KdcAdminPassword": "123", + "CrossRealmTrustPrincipalPassword": "123", + } + +The following ``create-cluster`` example creates an Amazon EMR cluster that uses the ``--instance-groups`` configuration and has a managed scaling policy. :: + + aws emr create-cluster \ + --release-label emr-5.30.0 \ + --service-role EMR_DefaultRole \ + --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large + --managed-scaling-policy ComputeLimits='{MinimumCapacityUnits=2,MaximumCapacityUnits=4,UnitType=Instances}' + +The following ``create-cluster`` example creates an Amazon EMR cluster that uses the "--log-encryption-kms-key-id" to define KMS key ID utilized for Log encryption. :: + + aws emr create-cluster \ + --release-label emr-5.30.0 \ + --log-uri s3://amzn-s3-demo-bucket/myLog \ + --log-encryption-kms-key-id arn:aws:kms:us-east-1:110302272565:key/dd559181-283e-45d7-99d1-66da348c4d33 \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large + +The following ``create-cluster`` example creates an Amazon EMR cluster that uses the "--placement-group-configs" configuration to place master nodes in a high-availability (HA) cluster within an EC2 placement group using ``SPREAD`` placement strategy. :: + + aws emr create-cluster \ + --release-label emr-5.30.0 \ + --service-role EMR_DefaultRole \ + --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=3,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.large \ + --placement-group-configs InstanceRole=MASTER + +The following ``create-cluster`` example creates an Amazon EMR cluster that uses the "--auto-termination-policy" configuration to place an automatic idle termination threshold for the cluster. :: + + aws emr create-cluster \ + --release-label emr-5.34.0 \ + --service-role EMR_DefaultRole \ + --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.large \ + --auto-termination-policy IdleTimeout=100 + +The following ``create-cluster`` example creates an Amazon EMR cluster that uses the "--os-release-label" to define an Amazon Linux release for cluster launch :: + + aws emr create-cluster \ + --release-label emr-6.6.0 \ + --os-release-label 2.0.20220406.1 \ + --service-role EMR_DefaultRole \ + --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ + --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.large + +**Example 24: To specify an EBS root volume attributes: size, iops and throughput for cluster instances created with EMR releases 6.15.0 and later** + +The following ``create-cluster`` example creates an Amazon EMR cluster that uses root volume attributes to configure root volumes specifications for the EC2 instances. :: + + aws emr create-cluster \ + --name "Cluster with My Custom AMI" \ + --custom-ami-id ami-a518e6df \ + --ebs-root-volume-size 20 \ + --ebs-root-volume-iops 3000 \ + --ebs-root-volume-throughput 125 \ + --release-label emr-6.15.0 \ + --use-default-roles \ + --instance-count 2 \ + --instance-type m4.large \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/create-cluster-synopsis.txt b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/create-cluster-synopsis.txt new file mode 100644 index 000000000..c52900f9c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/create-cluster-synopsis.txt @@ -0,0 +1,35 @@ + create-cluster + --release-label | --ami-version + --instance-fleets | --instance-groups | --instance-type --instance-count + [--os-release-label ] + [--auto-terminate | --no-auto-terminate] + [--use-default-roles] + [--service-role ] + [--configurations ] + [--name ] + [--log-uri ] + [--log-encryption-kms-key-id ] + [--additional-info ] + [--ec2-attributes ] + [--termination-protected | --no-termination-protected] + [--unhealthy-node-replacement | --no-unhealthy-node-replacement] + [--scale-down-behavior ] + [--visible-to-all-users | --no-visible-to-all-users] + [--enable-debugging | --no-enable-debugging] + [--tags ] + [--applications ] + [--emrfs ] + [--bootstrap-actions ] + [--steps ] + [--restore-from-hbase-backup ] + [--security-configuration ] + [--custom-ami-id ] + [--ebs-root-volume-size ] + [--ebs-root-volume-iops ] + [--ebs-root-volume-throughput ] + [--repo-upgrade-on-boot ] + [--kerberos-attributes ] + [--managed-scaling-policy ] + [--placement-group-configs ] + [--auto-termination-policy ] + [--extended-support | --no-extended-support] diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/create-default-roles.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/create-default-roles.rst new file mode 100644 index 000000000..8bef5695a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/create-default-roles.rst @@ -0,0 +1,141 @@ +**1. To create the default IAM role for EC2** + +- Command:: + + aws emr create-default-roles + +- Output:: + + If the role already exists then the command returns nothing. + + If the role does not exist then the output will be: + + [ + { + "RolePolicy": { + "Version": "2012-10-17", + "Statement": [ + { + "Action": [ + "cloudwatch:*", + "dynamodb:*", + "ec2:Describe*", + "elasticmapreduce:Describe*", + "elasticmapreduce:ListBootstrapActions", + "elasticmapreduce:ListClusters", + "elasticmapreduce:ListInstanceGroups", + "elasticmapreduce:ListInstances", + "elasticmapreduce:ListSteps", + "kinesis:CreateStream", + "kinesis:DeleteStream", + "kinesis:DescribeStream", + "kinesis:GetRecords", + "kinesis:GetShardIterator", + "kinesis:MergeShards", + "kinesis:PutRecord", + "kinesis:SplitShard", + "rds:Describe*", + "s3:*", + "sdb:*", + "sns:*", + "sqs:*" + ], + "Resource": "*", + "Effect": "Allow" + } + ] + }, + "Role": { + "AssumeRolePolicyDocument": { + "Version": "2008-10-17", + "Statement": [ + { + "Action": "sts:AssumeRole", + "Sid": "", + "Effect": "Allow", + "Principal": { + "Service": "ec2.amazonaws.com" + } + } + ] + }, + "RoleId": "AROAIQ5SIQUGL5KMYBJX6", + "CreateDate": "2015-06-09T17:09:04.602Z", + "RoleName": "EMR_EC2_DefaultRole", + "Path": "/", + "Arn": "arn:aws:iam::176430881729:role/EMR_EC2_DefaultRole" + } + }, + { + "RolePolicy": { + "Version": "2012-10-17", + "Statement": [ + { + "Action": [ + "ec2:AuthorizeSecurityGroupIngress", + "ec2:CancelSpotInstanceRequests", + "ec2:CreateSecurityGroup", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeAccountAttributes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceStatus", + "ec2:DescribeKeyPairs", + "ec2:DescribePrefixLists", + "ec2:DescribeRouteTables", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSpotInstanceRequests", + "ec2:DescribeSpotPriceHistory", + "ec2:DescribeSubnets", + "ec2:DescribeVpcAttribute", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeVpcEndpointServices", + "ec2:DescribeVpcs", + "ec2:ModifyImageAttribute", + "ec2:ModifyInstanceAttribute", + "ec2:RequestSpotInstances", + "ec2:RunInstances", + "ec2:TerminateInstances", + "iam:GetRole", + "iam:GetRolePolicy", + "iam:ListInstanceProfiles", + "iam:ListRolePolicies", + "iam:PassRole", + "s3:CreateBucket", + "s3:Get*", + "s3:List*", + "sdb:BatchPutAttributes", + "sdb:Select", + "sqs:CreateQueue", + "sqs:Delete*", + "sqs:GetQueue*", + "sqs:ReceiveMessage" + ], + "Resource": "*", + "Effect": "Allow" + } + ] + }, + "Role": { + "AssumeRolePolicyDocument": { + "Version": "2008-10-17", + "Statement": [ + { + "Action": "sts:AssumeRole", + "Sid": "", + "Effect": "Allow", + "Principal": { + "Service": "elasticmapreduce.amazonaws.com" + } + } + ] + }, + "RoleId": "AROAI3SRVPPVSRDLARBPY", + "CreateDate": "2015-06-09T17:09:10.401Z", + "RoleName": "EMR_DefaultRole", + "Path": "/", + "Arn": "arn:aws:iam::176430881729:role/EMR_DefaultRole" + } + } + ] diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/create-security-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/create-security-configuration.rst new file mode 100644 index 000000000..cb9a8c501 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/create-security-configuration.rst @@ -0,0 +1,125 @@ +**1. To create a security configuration with in-transit encryption enabled with PEM for certificate provider, and at-rest encryption enabled with SSE-S3 for S3 encryption and AWS-KMS for local disk key provider** + +- Command:: + + aws emr create-security-configuration --name MySecurityConfig --security-configuration '{ + "EncryptionConfiguration": { + "EnableInTransitEncryption" : true, + "EnableAtRestEncryption" : true, + "InTransitEncryptionConfiguration" : { + "TLSCertificateConfiguration" : { + "CertificateProviderType" : "PEM", + "S3Object" : "s3://mycertstore/artifacts/MyCerts.zip" + } + }, + "AtRestEncryptionConfiguration" : { + "S3EncryptionConfiguration" : { + "EncryptionMode" : "SSE-S3" + }, + "LocalDiskEncryptionConfiguration" : { + "EncryptionKeyProviderType" : "AwsKms", + "AwsKmsKey" : "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" + } + } + } + }' + +- Output:: + + { + "CreationDateTime": 1474070889.129, + "Name": "MySecurityConfig" + } + +- JSON equivalent (contents of security_configuration.json):: + + { + "EncryptionConfiguration": { + "EnableInTransitEncryption": true, + "EnableAtRestEncryption": true, + "InTransitEncryptionConfiguration": { + "TLSCertificateConfiguration": { + "CertificateProviderType": "PEM", + "S3Object": "s3://mycertstore/artifacts/MyCerts.zip" + } + }, + "AtRestEncryptionConfiguration": { + "S3EncryptionConfiguration": { + "EncryptionMode": "SSE-S3" + }, + "LocalDiskEncryptionConfiguration": { + "EncryptionKeyProviderType": "AwsKms", + "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" + } + } + } + } + +- Command (using security_configuration.json):: + + aws emr create-security-configuration --name "MySecurityConfig" --security-configuration file://./security_configuration.json + +- Output:: + + { + "CreationDateTime": 1474070889.129, + "Name": "MySecurityConfig" + } + +**2. To create a security configuration with Kerberos enabled using cluster-dedicated KDC and cross-realm trust** + +- Command:: + + aws emr create-security-configuration --name MySecurityConfig --security-configuration '{ + "AuthenticationConfiguration": { + "KerberosConfiguration": { + "Provider": "ClusterDedicatedKdc", + "ClusterDedicatedKdcConfiguration": { + "TicketLifetimeInHours": 24, + "CrossRealmTrustConfiguration": { + "Realm": "AD.DOMAIN.COM", + "Domain": "ad.domain.com", + "AdminServer": "ad.domain.com", + "KdcServer": "ad.domain.com" + } + } + } + } + }' + +- Output:: + + { + "CreationDateTime": 1490225558.982, + "Name": "MySecurityConfig" + } + +- JSON equivalent (contents of security_configuration.json):: + + { + "AuthenticationConfiguration": { + "KerberosConfiguration": { + "Provider": "ClusterDedicatedKdc", + "ClusterDedicatedKdcConfiguration": { + "TicketLifetimeInHours": 24, + "CrossRealmTrustConfiguration": { + "Realm": "AD.DOMAIN.COM", + "Domain": "ad.domain.com", + "AdminServer": "ad.domain.com", + "KdcServer": "ad.domain.com" + } + } + } + } + } + +- Command (using security_configuration.json):: + + aws emr create-security-configuration --name "MySecurityConfig" --security-configuration file://./security_configuration.json + +- Output:: + + { + "CreationDateTime": 1490225558.982, + "Name": "MySecurityConfig" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/delete-security-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/delete-security-configuration.rst new file mode 100644 index 000000000..6669008ea --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/delete-security-configuration.rst @@ -0,0 +1,9 @@ +**To delete a security configuration in the current region** + +- Command:: + + aws emr delete-security-configuration --name MySecurityConfig + +- Output:: + + None diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/describe-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/describe-cluster.rst new file mode 100644 index 000000000..218fecd72 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/describe-cluster.rst @@ -0,0 +1,260 @@ +- Command:: + + aws emr describe-cluster --cluster-id j-XXXXXXXX + +- Output:: + + For release-label based uniform instance groups cluster: + + { + "Cluster": { + "Status": { + "Timeline": { + "ReadyDateTime": 1436475075.199, + "CreationDateTime": 1436474656.563, + }, + "State": "WAITING", + "StateChangeReason": { + "Message": "Waiting for steps to run" + } + }, + "Ec2InstanceAttributes": { + "ServiceAccessSecurityGroup": "sg-xxxxxxxx", + "EmrManagedMasterSecurityGroup": "sg-xxxxxxxx", + "IamInstanceProfile": "EMR_EC2_DefaultRole", + "Ec2KeyName": "myKey", + "Ec2AvailabilityZone": "us-east-1c", + "EmrManagedSlaveSecurityGroup": "sg-yyyyyyyyy" + }, + "Name": "My Cluster", + "ServiceRole": "EMR_DefaultRole", + "Tags": [], + "TerminationProtected": true, + "UnhealthyNodeReplacement": true, + "ReleaseLabel": "emr-4.0.0", + "NormalizedInstanceHours": 96, + "InstanceGroups": [ + { + "RequestedInstanceCount": 2, + "Status": { + "Timeline": { + "ReadyDateTime": 1436475074.245, + "CreationDateTime": 1436474656.564, + "EndDateTime": 1436638158.387 + }, + "State": "RUNNING", + "StateChangeReason": { + "Message": "", + } + }, + "Name": "CORE", + "InstanceGroupType": "CORE", + "Id": "ig-YYYYYYY", + "Configurations": [], + "InstanceType": "m3.large", + "Market": "ON_DEMAND", + "RunningInstanceCount": 2 + }, + { + "RequestedInstanceCount": 1, + "Status": { + "Timeline": { + "ReadyDateTime": 1436475074.245, + "CreationDateTime": 1436474656.564, + "EndDateTime": 1436638158.387 + }, + "State": "RUNNING", + "StateChangeReason": { + "Message": "", + } + }, + "Name": "MASTER", + "InstanceGroupType": "MASTER", + "Id": "ig-XXXXXXXXX", + "Configurations": [], + "InstanceType": "m3.large", + "Market": "ON_DEMAND", + "RunningInstanceCount": 1 + } + ], + "Applications": [ + { + "Name": "Hadoop" + } + ], + "VisibleToAllUsers": true, + "BootstrapActions": [], + "MasterPublicDnsName": "ec2-54-147-144-78.compute-1.amazonaws.com", + "AutoTerminate": false, + "Id": "j-XXXXXXXX", + "Configurations": [ + { + "Properties": { + "fs.s3.consistent.retryPeriodSeconds": "20", + "fs.s3.enableServerSideEncryption": "true", + "fs.s3.consistent": "false", + "fs.s3.consistent.retryCount": "2" + }, + "Classification": "emrfs-site" + } + ] + } + } + + + For release-label based instance fleet cluster: + { + "Cluster": { + "Status": { + "Timeline": { + "ReadyDateTime": 1487897289.705, + "CreationDateTime": 1487896933.942 + }, + "State": "WAITING", + "StateChangeReason": { + "Message": "Waiting for steps to run" + } + }, + "Ec2InstanceAttributes": { + "EmrManagedMasterSecurityGroup": "sg-xxxxx", + "RequestedEc2AvailabilityZones": [], + "RequestedEc2SubnetIds": [], + "IamInstanceProfile": "EMR_EC2_DefaultRole", + "Ec2AvailabilityZone": "us-east-1a", + "EmrManagedSlaveSecurityGroup": "sg-xxxxx" + }, + "Name": "My Cluster", + "ServiceRole": "EMR_DefaultRole", + "Tags": [], + "TerminationProtected": false, + "UnhealthyNodeReplacement": false, + "ReleaseLabel": "emr-5.2.0", + "NormalizedInstanceHours": 472, + "InstanceCollectionType": "INSTANCE_FLEET", + "InstanceFleets": [ + { + "Status": { + "Timeline": { + "ReadyDateTime": 1487897212.74, + "CreationDateTime": 1487896933.948 + }, + "State": "RUNNING", + "StateChangeReason": { + "Message": "" + } + }, + "ProvisionedSpotCapacity": 1, + "Name": "MASTER", + "InstanceFleetType": "MASTER", + "LaunchSpecifications": { + "SpotSpecification": { + "TimeoutDurationMinutes": 60, + "TimeoutAction": "TERMINATE_CLUSTER" + } + }, + "TargetSpotCapacity": 1, + "ProvisionedOnDemandCapacity": 0, + "InstanceTypeSpecifications": [ + { + "BidPrice": "0.5", + "InstanceType": "m3.xlarge", + "WeightedCapacity": 1 + } + ], + "Id": "if-xxxxxxx", + "TargetOnDemandCapacity": 0 + } + ], + "Applications": [ + { + "Version": "2.7.3", + "Name": "Hadoop" + } + ], + "ScaleDownBehavior": "TERMINATE_AT_INSTANCE_HOUR", + "VisibleToAllUsers": true, + "BootstrapActions": [], + "MasterPublicDnsName": "ec2-xxx-xx-xxx-xx.compute-1.amazonaws.com", + "AutoTerminate": false, + "Id": "j-xxxxx", + "Configurations": [] + } + } + + For ami based uniform instance group cluster: + + { + "Cluster": { + "Status": { + "Timeline": { + "ReadyDateTime": 1399400564.432, + "CreationDateTime": 1399400268.62 + }, + "State": "WAITING", + "StateChangeReason": { + "Message": "Waiting for steps to run" + } + }, + "Ec2InstanceAttributes": { + "IamInstanceProfile": "EMR_EC2_DefaultRole", + "Ec2AvailabilityZone": "us-east-1c" + }, + "Name": "My Cluster", + "Tags": [], + "TerminationProtected": true, + "UnhealthyNodeReplacement": true, + "RunningAmiVersion": "2.5.4", + "InstanceGroups": [ + { + "RequestedInstanceCount": 1, + "Status": { + "Timeline": { + "ReadyDateTime": 1399400558.848, + "CreationDateTime": 1399400268.621 + }, + "State": "RUNNING", + "StateChangeReason": { + "Message": "" + } + }, + "Name": "Master instance group", + "InstanceGroupType": "MASTER", + "InstanceType": "m1.small", + "Id": "ig-ABCD", + "Market": "ON_DEMAND", + "RunningInstanceCount": 1 + }, + { + "RequestedInstanceCount": 2, + "Status": { + "Timeline": { + "ReadyDateTime": 1399400564.439, + "CreationDateTime": 1399400268.621 + }, + "State": "RUNNING", + "StateChangeReason": { + "Message": "" + } + }, + "Name": "Core instance group", + "InstanceGroupType": "CORE", + "InstanceType": "m1.small", + "Id": "ig-DEF", + "Market": "ON_DEMAND", + "RunningInstanceCount": 2 + } + ], + "Applications": [ + { + "Version": "1.0.3", + "Name": "hadoop" + } + ], + "BootstrapActions": [], + "VisibleToAllUsers": false, + "RequestedAmiVersion": "2.4.2", + "LogUri": "s3://myLogUri/", + "AutoTerminate": false, + "Id": "j-XXXXXXXX" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/describe-step.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/describe-step.rst new file mode 100644 index 000000000..973604204 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/describe-step.rst @@ -0,0 +1,34 @@ +The following command describes a step with the step ID ``s-3LZC0QUT43AM`` in a cluster with the cluster ID ``j-3SD91U2E1L2QX``:: + + aws emr describe-step --cluster-id j-3SD91U2E1L2QX --step-id s-3LZC0QUT43AM + +Output:: + + { + "Step": { + "Status": { + "Timeline": { + "EndDateTime": 1433200470.481, + "CreationDateTime": 1433199926.597, + "StartDateTime": 1433200404.959 + }, + "State": "COMPLETED", + "StateChangeReason": {} + }, + "Config": { + "Args": [ + "s3://us-west-2.elasticmapreduce/libs/hive/hive-script", + "--base-path", + "s3://us-west-2.elasticmapreduce/libs/hive/", + "--install-hive", + "--hive-versions", + "0.13.1" + ], + "Jar": "s3://us-west-2.elasticmapreduce/libs/script-runner/script-runner.jar", + "Properties": {} + }, + "Id": "s-3LZC0QUT43AM", + "ActionOnFailure": "TERMINATE_CLUSTER", + "Name": "Setup hive" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/get.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/get.rst new file mode 100644 index 000000000..89440a6b7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/get.rst @@ -0,0 +1,3 @@ +The following downloads the ``hadoop-examples.jar`` archive from the master instance in a cluster with the cluster ID ``j-3SD91U2E1L2QX``:: + + aws emr get --cluster-id j-3SD91U2E1L2QX --key-pair-file ~/.ssh/mykey.pem --src /home/hadoop-examples.jar --dest ~ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/list-clusters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/list-clusters.rst new file mode 100644 index 000000000..17ea7e403 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/list-clusters.rst @@ -0,0 +1,25 @@ +The following command lists all active EMR clusters in the current region:: + + aws emr list-clusters --active + +Output:: + + { + "Clusters": [ + { + "Status": { + "Timeline": { + "ReadyDateTime": 1433200405.353, + "CreationDateTime": 1433199926.596 + }, + "State": "WAITING", + "StateChangeReason": { + "Message": "Waiting after step completed" + } + }, + "NormalizedInstanceHours": 6, + "Id": "j-3SD91U2E1L2QX", + "Name": "my-cluster" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/list-instance-fleets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/list-instance-fleets.rst new file mode 100644 index 000000000..cbf4352e1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/list-instance-fleets.rst @@ -0,0 +1,68 @@ +**To get configuration details of instance fleets in a cluster** + +This example lists the details of instance fleets in the cluster specified. + +Command:: + + list-instance-fleets --cluster-id 'j-12ABCDEFGHI34JK' + +Output:: + + { + "InstanceFleets": [ + { + "Status": { + "Timeline": { + "ReadyDateTime": 1488759094.637, + "CreationDateTime": 1488758719.817 + }, + "State": "RUNNING", + "StateChangeReason": { + "Message": "" + } + }, + "ProvisionedSpotCapacity": 6, + "Name": "CORE", + "InstanceFleetType": "CORE", + "LaunchSpecifications": { + "SpotSpecification": { + "TimeoutDurationMinutes": 60, + "TimeoutAction": "TERMINATE_CLUSTER" + } + }, + "ProvisionedOnDemandCapacity": 2, + "InstanceTypeSpecifications": [ + { + "BidPrice": "0.5", + "InstanceType": "m3.xlarge", + "WeightedCapacity": 2 + } + ], + "Id": "if-1ABC2DEFGHIJ3" + }, + { + "Status": { + "Timeline": { + "ReadyDateTime": 1488759058.598, + "CreationDateTime": 1488758719.811 + }, + "State": "RUNNING", + "StateChangeReason": { + "Message": "" + } + }, + "ProvisionedSpotCapacity": 0, + "Name": "MASTER", + "InstanceFleetType": "MASTER", + "ProvisionedOnDemandCapacity": 1, + "InstanceTypeSpecifications": [ + { + "BidPriceAsPercentageOfOnDemandPrice": 100.0, + "InstanceType": "m3.xlarge", + "WeightedCapacity": 1 + } + ], + "Id": "if-2ABC4DEFGHIJ4" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/list-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/list-instances.rst new file mode 100644 index 000000000..23f5b5579 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/list-instances.rst @@ -0,0 +1,89 @@ +The following command lists all of the instances in a cluster with the cluster ID ``j-3C6XNQ39VR9WL``:: + + aws emr list-instances --cluster-id j-3C6XNQ39VR9WL + +Output:: + + For a uniform instance group based cluster + { + "Instances": [ + { + "Status": { + "Timeline": { + "ReadyDateTime": 1433200400.03, + "CreationDateTime": 1433199960.152 + }, + "State": "RUNNING", + "StateChangeReason": {} + }, + "Ec2InstanceId": "i-f19ecfee", + "PublicDnsName": "ec2-52-52-41-150.us-west-2.compute.amazonaws.com", + "PrivateDnsName": "ip-172-21-11-216.us-west-2.compute.internal", + "PublicIpAddress": "52.52.41.150", + "Id": "ci-3NNHQUQ2TWB6Y", + "PrivateIpAddress": "172.21.11.216" + }, + { + "Status": { + "Timeline": { + "ReadyDateTime": 1433200400.031, + "CreationDateTime": 1433199949.102 + }, + "State": "RUNNING", + "StateChangeReason": {} + }, + "Ec2InstanceId": "i-1feee4c2", + "PublicDnsName": "ec2-52-63-246-32.us-west-2.compute.amazonaws.com", + "PrivateDnsName": "ip-172-31-24-130.us-west-2.compute.internal", + "PublicIpAddress": "52.63.246.32", + "Id": "ci-GAOCMKNKDCV7", + "PrivateIpAddress": "172.21.11.215" + }, + { + "Status": { + "Timeline": { + "ReadyDateTime": 1433200400.031, + "CreationDateTime": 1433199949.102 + }, + "State": "RUNNING", + "StateChangeReason": {} + }, + "Ec2InstanceId": "i-15cfeee3", + "PublicDnsName": "ec2-52-25-246-63.us-west-2.compute.amazonaws.com", + "PrivateDnsName": "ip-172-31-24-129.us-west-2.compute.internal", + "PublicIpAddress": "52.25.246.63", + "Id": "ci-2W3TDFFB47UAD", + "PrivateIpAddress": "172.21.11.214" + } + ] + } + + + For a fleet based cluster: + { + "Instances": [ + { + "Status": { + "Timeline": { + "ReadyDateTime": 1487810810.878, + "CreationDateTime": 1487810588.367, + "EndDateTime": 1488022990.924 + }, + "State": "TERMINATED", + "StateChangeReason": { + "Message": "Instance was terminated." + } + }, + "Ec2InstanceId": "i-xxxxx", + "InstanceFleetId": "if-xxxxx", + "EbsVolumes": [], + "PublicDnsName": "ec2-xx-xxx-xxx-xxx.compute-1.amazonaws.com", + "InstanceType": "m3.xlarge", + "PrivateDnsName": "ip-xx-xx-xxx-xx.ec2.internal", + "Market": "SPOT", + "PublicIpAddress": "xx.xx.xxx.xxx", + "Id": "ci-xxxxx", + "PrivateIpAddress": "10.47.191.80" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/list-security-configurations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/list-security-configurations.rst new file mode 100644 index 000000000..06d89e94e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/list-security-configurations.rst @@ -0,0 +1,21 @@ +**To list security configurations in the current region** + +Command:: + + aws emr list-security-configurations + +Output:: + + { + "SecurityConfigurations": [ + { + "CreationDateTime": 1473889697.417, + "Name": "MySecurityConfig-1" + }, + { + "CreationDateTime": 1473889697.417, + "Name": "MySecurityConfig-2" + } + ] + } + \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/list-steps.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/list-steps.rst new file mode 100644 index 000000000..f4a85a260 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/list-steps.rst @@ -0,0 +1,3 @@ +The following command lists all of the steps in a cluster with the cluster ID ``j-3SD91U2E1L2QX``:: + + aws emr list-steps --cluster-id j-3SD91U2E1L2QX diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/list-studios.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/list-studios.rst new file mode 100644 index 000000000..42ee3b63e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/list-studios.rst @@ -0,0 +1,21 @@ +**To list available EMR Studios** + +The following ``list-studios`` example lists the EMR Studios in the AWS account.:: + + aws emr list-studios + +Output:: + + { + "Studios": [ + { + "StudioId": "es-XXXXXXX132E0X7R0W7GAS1MVB", + "Name": "My_EMR_Studio", + "Url": "https://es-XXXXXXX132E0X7R0W7GAS1MVB.emrstudio-prod.us-east-1.amazonaws.com", + "AuthMode": "IAM", + "CreationTime": 1761664173.624 + } + ] + } + +For more information, see `Monitor, update and delete Amazon EMR Studio resources `__ in the *Amazon EMR Management Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/modify-cluster-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/modify-cluster-attributes.rst new file mode 100644 index 000000000..f4696d81b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/modify-cluster-attributes.rst @@ -0,0 +1,3 @@ +The following command sets the visibility of an EMR cluster with the ID ``j-301CDNY0J5XM4`` to all users:: + + aws emr modify-cluster-attributes --cluster-id j-301CDNY0J5XM4 --visible-to-all-users diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/modify-instance-fleet.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/modify-instance-fleet.rst new file mode 100644 index 000000000..a7154172b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/modify-instance-fleet.rst @@ -0,0 +1,7 @@ +**To change the target capacites of an instance fleet** + +This example changes the On-Demand and Spot target capacities to 1 for the instance fleet specified. + +Command:: + + aws emr modify-instance-fleet --cluster-id 'j-12ABCDEFGHI34JK' --instance-fleet InstanceFleetId='if-2ABC4DEFGHIJ4',TargetOnDemandCapacity=1,TargetSpotCapacity=1 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/put.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/put.rst new file mode 100644 index 000000000..5a44b4f5e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/put.rst @@ -0,0 +1,3 @@ +The following command uploads a file named ``healthcheck.sh`` to the master instance in a cluster with the cluster ID ``j-3SD91U2E1L2QX``:: + + aws emr put --cluster-id j-3SD91U2E1L2QX --key-pair-file ~/.ssh/mykey.pem --src ~/scripts/healthcheck.sh --dest /home/hadoop/bin/healthcheck.sh diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/remove-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/remove-tags.rst new file mode 100644 index 000000000..38c2c97a0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/remove-tags.rst @@ -0,0 +1,3 @@ +The following command removes a tag with the key ``prod`` from a cluster with the cluster ID ``j-3SD91U2E1L2QX``:: + + aws emr remove-tags --resource-id j-3SD91U2E1L2QX --tag-keys prod diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/schedule-hbase-backup.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/schedule-hbase-backup.rst new file mode 100644 index 000000000..2c81d52c3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/schedule-hbase-backup.rst @@ -0,0 +1,28 @@ +**Note: This command can only be used with HBase on AMI version 2.x and 3.x** + +**1. To schedule a full HBase backup** +>>>>>>> 06ab6d6e13564b5733d75abaf3b599f93cf39a23 + +- Command:: + + aws emr schedule-hbase-backup --cluster-id j-XXXXXXYY --type full --dir + s3://amzn-s3-demo-bucket/backup --interval 10 --unit hours --start-time + 2014-04-21T05:26:10Z --consistent + +- Output:: + + None + + +**2. To schedule an incremental HBase backup** + +- Command:: + + aws emr schedule-hbase-backup --cluster-id j-XXXXXXYY --type incremental + --dir s3://amzn-s3-demo-bucket/backup --interval 30 --unit minutes --start-time + 2014-04-21T05:26:10Z --consistent + +- Output:: + + None + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/socks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/socks.rst new file mode 100644 index 000000000..3ac8888e1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/socks.rst @@ -0,0 +1,5 @@ +The following command opens a socks connection with the master instance in a cluster with the cluster ID ``j-3SD91U2E1L2QX``:: + + aws emr socks --cluster-id j-3SD91U2E1L2QX --key-pair-file ~/.ssh/mykey.pem + +The key pair file option takes a local path to a private key file. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/ssh.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/ssh.rst new file mode 100644 index 000000000..2f609b735 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/ssh.rst @@ -0,0 +1,35 @@ +The following command opens an ssh connection with the master instance in a cluster with the cluster ID ``j-3SD91U2E1L2QX``:: + + aws emr ssh --cluster-id j-3SD91U2E1L2QX --key-pair-file ~/.ssh/mykey.pem + +The key pair file option takes a local path to a private key file. + +Output:: + + ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=10 -i /home/local/user/.ssh/mykey.pem hadoop@ec2-52-52-41-150.us-west-2.compute.amazonaws.com + Warning: Permanently added 'ec2-52-52-41-150.us-west-2.compute.amazonaws.com,52.52.41.150' (ECDSA) to the list of known hosts. + Last login: Mon Jun 1 23:15:38 2015 + + __| __|_ ) + _| ( / Amazon Linux AMI + ___|\___|___| + + https://aws.amazon.com/amazon-linux-ami/2015.03-release-notes/ + 26 package(s) needed for security, out of 39 available + Run "sudo yum update" to apply all updates. + + -------------------------------------------------------------------------------- + + Welcome to Amazon Elastic MapReduce running Hadoop and Amazon Linux. + + Hadoop is installed in /home/hadoop. Log files are in /mnt/var/log/hadoop. Check + /mnt/var/log/hadoop/steps for diagnosing step failures. + + The Hadoop UI can be accessed via the following commands: + + ResourceManager lynx http://ip-172-21-11-216:9026/ + NameNode lynx http://ip-172-21-11-216:9101/ + + -------------------------------------------------------------------------------- + + [hadoop@ip-172-31-16-216 ~]$ diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/wait.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/wait.rst new file mode 100644 index 000000000..dc1fbe74b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/emr/wait.rst @@ -0,0 +1,3 @@ +The following command waits until a cluster with the cluster ID ``j-3SD91U2E1L2QX`` is up and running:: + + aws emr wait cluster-running --cluster-id j-3SD91U2E1L2QX diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/es/create-elasticsearch-domain.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/es/create-elasticsearch-domain.rst new file mode 100644 index 000000000..685c265a8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/es/create-elasticsearch-domain.rst @@ -0,0 +1,63 @@ +**To create an Amazon Elasticsearch Service domain** + +The following ``create-elasticsearch-domain`` command creates a new Amazon Elasticsearch Service domain within a VPC and restricts access to a single user. Amazon ES infers the VPC ID from the specified subnet and security group IDs. :: + + aws es create-elasticsearch-domain \ + --domain-name vpc-cli-example \ + --elasticsearch-version 6.2 \ + --elasticsearch-cluster-config InstanceType=m4.large.elasticsearch,InstanceCount=1 \ + --ebs-options EBSEnabled=true,VolumeType=standard,VolumeSize=10 \ + --access-policies '{"Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:root" }, "Action":"es:*", "Resource": "arn:aws:es:us-west-1:123456789012:domain/vpc-cli-example/*" } ] }' \ + --vpc-options SubnetIds=subnet-1a2a3a4a,SecurityGroupIds=sg-2a3a4a5a + +Output:: + + { + "DomainStatus": { + "ElasticsearchClusterConfig": { + "DedicatedMasterEnabled": false, + "InstanceCount": 1, + "ZoneAwarenessEnabled": false, + "InstanceType": "m4.large.elasticsearch" + }, + "DomainId": "123456789012/vpc-cli-example", + "CognitoOptions": { + "Enabled": false + }, + "VPCOptions": { + "SubnetIds": [ + "subnet-1a2a3a4a" + ], + "VPCId": "vpc-3a4a5a6a", + "SecurityGroupIds": [ + "sg-2a3a4a5a" + ], + "AvailabilityZones": [ + "us-west-1c" + ] + }, + "Created": true, + "Deleted": false, + "EBSOptions": { + "VolumeSize": 10, + "VolumeType": "standard", + "EBSEnabled": true + }, + "Processing": true, + "DomainName": "vpc-cli-example", + "SnapshotOptions": { + "AutomatedSnapshotStartHour": 0 + }, + "ElasticsearchVersion": "6.2", + "AccessPolicies": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"},\"Action\":\"es:*\",\"Resource\":\"arn:aws:es:us-west-1:123456789012:domain/vpc-cli-example/*\"}]}", + "AdvancedOptions": { + "rest.action.multi.allow_explicit_index": "true" + }, + "EncryptionAtRestOptions": { + "Enabled": false + }, + "ARN": "arn:aws:es:us-west-1:123456789012:domain/vpc-cli-example" + } + } + +For more information, see `Creating and Managing Amazon Elasticsearch Service Domains `__ in the *Amazon Elasticsearch Service Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/es/describe-elasticsearch-domain-config.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/es/describe-elasticsearch-domain-config.rst new file mode 100644 index 000000000..8457b63b0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/es/describe-elasticsearch-domain-config.rst @@ -0,0 +1,176 @@ +**To get domain configuration details** + +The following ``describe-elasticsearch-domain-config`` example provides configuration details for a given domain, along with status information for each individual domain component. :: + + aws es describe-elasticsearch-domain-config \ + --domain-name cli-example + +Output:: + + { + "DomainConfig": { + "ElasticsearchVersion": { + "Options": "7.4", + "Status": { + "CreationDate": 1589395034.946, + "UpdateDate": 1589395827.325, + "UpdateVersion": 8, + "State": "Active", + "PendingDeletion": false + } + }, + "ElasticsearchClusterConfig": { + "Options": { + "InstanceType": "c5.large.elasticsearch", + "InstanceCount": 1, + "DedicatedMasterEnabled": true, + "ZoneAwarenessEnabled": false, + "DedicatedMasterType": "c5.large.elasticsearch", + "DedicatedMasterCount": 3, + "WarmEnabled": true, + "WarmType": "ultrawarm1.medium.elasticsearch", + "WarmCount": 2 + }, + "Status": { + "CreationDate": 1589395034.946, + "UpdateDate": 1589395827.325, + "UpdateVersion": 8, + "State": "Active", + "PendingDeletion": false + } + }, + "EBSOptions": { + "Options": { + "EBSEnabled": true, + "VolumeType": "gp2", + "VolumeSize": 10 + }, + "Status": { + "CreationDate": 1589395034.946, + "UpdateDate": 1589395827.325, + "UpdateVersion": 8, + "State": "Active", + "PendingDeletion": false + } + }, + "AccessPolicies": { + "Options": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":\"es:*\",\"Resource\":\"arn:aws:es:us-east-1:123456789012:domain/cli-example/*\"}]}", + "Status": { + "CreationDate": 1589395034.946, + "UpdateDate": 1589395827.325, + "UpdateVersion": 8, + "State": "Active", + "PendingDeletion": false + } + }, + "SnapshotOptions": { + "Options": { + "AutomatedSnapshotStartHour": 0 + }, + "Status": { + "CreationDate": 1589395034.946, + "UpdateDate": 1589395827.325, + "UpdateVersion": 8, + "State": "Active", + "PendingDeletion": false + } + }, + "VPCOptions": { + "Options": {}, + "Status": { + "CreationDate": 1591210426.162, + "UpdateDate": 1591210426.162, + "UpdateVersion": 18, + "State": "Active", + "PendingDeletion": false + } + }, + "CognitoOptions": { + "Options": { + "Enabled": false + }, + "Status": { + "CreationDate": 1591210426.163, + "UpdateDate": 1591210426.163, + "UpdateVersion": 18, + "State": "Active", + "PendingDeletion": false + } + }, + "EncryptionAtRestOptions": { + "Options": { + "Enabled": true, + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/1a2a3a4a-1a2a-1a2a-1a2a-1a2a3a4a5a6a" + }, + "Status": { + "CreationDate": 1589395034.946, + "UpdateDate": 1589395827.325, + "UpdateVersion": 8, + "State": "Active", + "PendingDeletion": false + } + }, + "NodeToNodeEncryptionOptions": { + "Options": { + "Enabled": true + }, + "Status": { + "CreationDate": 1589395034.946, + "UpdateDate": 1589395827.325, + "UpdateVersion": 8, + "State": "Active", + "PendingDeletion": false + } + }, + "AdvancedOptions": { + "Options": { + "rest.action.multi.allow_explicit_index": "true" + }, + "Status": { + "CreationDate": 1589395034.946, + "UpdateDate": 1589395827.325, + "UpdateVersion": 8, + "State": "Active", + "PendingDeletion": false + } + }, + "LogPublishingOptions": { + "Options": {}, + "Status": { + "CreationDate": 1591210426.164, + "UpdateDate": 1591210426.164, + "UpdateVersion": 18, + "State": "Active", + "PendingDeletion": false + } + }, + "DomainEndpointOptions": { + "Options": { + "EnforceHTTPS": true, + "TLSSecurityPolicy": "Policy-Min-TLS-1-0-2019-07" + }, + "Status": { + "CreationDate": 1589395034.946, + "UpdateDate": 1589395827.325, + "UpdateVersion": 8, + "State": "Active", + "PendingDeletion": false + } + }, + "AdvancedSecurityOptions": { + "Options": { + "Enabled": true, + "InternalUserDatabaseEnabled": true + }, + "Status": { + "CreationDate": 1589395034.946, + "UpdateDate": 1589827485.577, + "UpdateVersion": 14, + "State": "Active", + "PendingDeletion": false + } + } + } + } + +For more information, see `Creating and Managing Amazon Elasticsearch Service Domains `__ in the *Amazon Elasticsearch Service Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/es/describe-elasticsearch-domain.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/es/describe-elasticsearch-domain.rst new file mode 100644 index 000000000..6dbbf3648 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/es/describe-elasticsearch-domain.rst @@ -0,0 +1,74 @@ +**To get details for a single domain** + +The following ``describe-elasticsearch-domain`` example provides configuration details for a given domain. :: + + aws es describe-elasticsearch-domain \ + --domain-name cli-example + +Output:: + + { + "DomainStatus": { + "DomainId": "123456789012/cli-example", + "DomainName": "cli-example", + "ARN": "arn:aws:es:us-east-1:123456789012:domain/cli-example", + "Created": true, + "Deleted": false, + "Endpoint": "search-cli-example-1a2a3a4a5a6a7a8a9a0a.us-east-1.es.amazonaws.com", + "Processing": false, + "UpgradeProcessing": false, + "ElasticsearchVersion": "7.4", + "ElasticsearchClusterConfig": { + "InstanceType": "c5.large.elasticsearch", + "InstanceCount": 1, + "DedicatedMasterEnabled": true, + "ZoneAwarenessEnabled": false, + "DedicatedMasterType": "c5.large.elasticsearch", + "DedicatedMasterCount": 3, + "WarmEnabled": true, + "WarmType": "ultrawarm1.medium.elasticsearch", + "WarmCount": 2 + }, + "EBSOptions": { + "EBSEnabled": true, + "VolumeType": "gp2", + "VolumeSize": 10 + }, + "AccessPolicies": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":\"es:*\",\"Resource\":\"arn:aws:es:us-east-1:123456789012:domain/cli-example/*\"}]}", + "SnapshotOptions": { + "AutomatedSnapshotStartHour": 0 + }, + "CognitoOptions": { + "Enabled": false + }, + "EncryptionAtRestOptions": { + "Enabled": true, + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/1a2a3a4a-1a2a-1a2a-1a2a-1a2a3a4a5a6a" + }, + "NodeToNodeEncryptionOptions": { + "Enabled": true + }, + "AdvancedOptions": { + "rest.action.multi.allow_explicit_index": "true" + }, + "ServiceSoftwareOptions": { + "CurrentVersion": "R20200522", + "NewVersion": "", + "UpdateAvailable": false, + "Cancellable": false, + "UpdateStatus": "COMPLETED", + "Description": "There is no software update available for this domain.", + "AutomatedUpdateDate": 0.0 + }, + "DomainEndpointOptions": { + "EnforceHTTPS": true, + "TLSSecurityPolicy": "Policy-Min-TLS-1-0-2019-07" + }, + "AdvancedSecurityOptions": { + "Enabled": true, + "InternalUserDatabaseEnabled": true + } + } + } + +For more information, see `Creating and Managing Amazon Elasticsearch Service Domains `__ in the *Amazon Elasticsearch Service Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/es/describe-elasticsearch-domains.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/es/describe-elasticsearch-domains.rst new file mode 100644 index 000000000..fbfc1ffea --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/es/describe-elasticsearch-domains.rst @@ -0,0 +1,130 @@ +**To get details for one or more domains** + +The following ``describe-elasticsearch-domains`` example provides configuration details for one or more domains. :: + + aws es describe-elasticsearch-domains \ + --domain-names cli-example-1 cli-example-2 + +Output:: + + { + "DomainStatusList": [{ + "DomainId": "123456789012/cli-example-1", + "DomainName": "cli-example-1", + "ARN": "arn:aws:es:us-east-1:123456789012:domain/cli-example-1", + "Created": true, + "Deleted": false, + "Endpoint": "search-cli-example-1-1a2a3a4a5a6a7a8a9a0a.us-east-1.es.amazonaws.com", + "Processing": false, + "UpgradeProcessing": false, + "ElasticsearchVersion": "7.4", + "ElasticsearchClusterConfig": { + "InstanceType": "c5.large.elasticsearch", + "InstanceCount": 1, + "DedicatedMasterEnabled": true, + "ZoneAwarenessEnabled": false, + "DedicatedMasterType": "c5.large.elasticsearch", + "DedicatedMasterCount": 3, + "WarmEnabled": true, + "WarmType": "ultrawarm1.medium.elasticsearch", + "WarmCount": 2 + }, + "EBSOptions": { + "EBSEnabled": true, + "VolumeType": "gp2", + "VolumeSize": 10 + }, + "AccessPolicies": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":\"es:*\",\"Resource\":\"arn:aws:es:us-east-1:123456789012:domain/cli-example-1/*\"}]}", + "SnapshotOptions": { + "AutomatedSnapshotStartHour": 0 + }, + "CognitoOptions": { + "Enabled": false + }, + "EncryptionAtRestOptions": { + "Enabled": true, + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/1a2a3a4a-1a2a-1a2a-1a2a-1a2a3a4a5a6a" + }, + "NodeToNodeEncryptionOptions": { + "Enabled": true + }, + "AdvancedOptions": { + "rest.action.multi.allow_explicit_index": "true" + }, + "ServiceSoftwareOptions": { + "CurrentVersion": "R20200522", + "NewVersion": "", + "UpdateAvailable": false, + "Cancellable": false, + "UpdateStatus": "COMPLETED", + "Description": "There is no software update available for this domain.", + "AutomatedUpdateDate": 0.0 + }, + "DomainEndpointOptions": { + "EnforceHTTPS": true, + "TLSSecurityPolicy": "Policy-Min-TLS-1-0-2019-07" + }, + "AdvancedSecurityOptions": { + "Enabled": true, + "InternalUserDatabaseEnabled": true + } + }, + { + "DomainId": "123456789012/cli-example-2", + "DomainName": "cli-example-2", + "ARN": "arn:aws:es:us-east-1:123456789012:domain/cli-example-2", + "Created": true, + "Deleted": false, + "Processing": true, + "UpgradeProcessing": false, + "ElasticsearchVersion": "7.4", + "ElasticsearchClusterConfig": { + "InstanceType": "r5.large.elasticsearch", + "InstanceCount": 1, + "DedicatedMasterEnabled": false, + "ZoneAwarenessEnabled": false, + "WarmEnabled": false + }, + "EBSOptions": { + "EBSEnabled": true, + "VolumeType": "gp2", + "VolumeSize": 10 + }, + "AccessPolicies": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Deny\",\"Principal\":{\"AWS\":\"*\"},\"Action\":\"es:*\",\"Resource\":\"arn:aws:es:us-east-1:123456789012:domain/cli-example-2/*\"}]}", + "SnapshotOptions": { + "AutomatedSnapshotStartHour": 0 + }, + "CognitoOptions": { + "Enabled": false + }, + "EncryptionAtRestOptions": { + "Enabled": false + }, + "NodeToNodeEncryptionOptions": { + "Enabled": false + }, + "AdvancedOptions": { + "rest.action.multi.allow_explicit_index": "true" + }, + "ServiceSoftwareOptions": { + "CurrentVersion": "", + "NewVersion": "", + "UpdateAvailable": false, + "Cancellable": false, + "UpdateStatus": "COMPLETED", + "Description": "There is no software update available for this domain.", + "AutomatedUpdateDate": 0.0 + }, + "DomainEndpointOptions": { + "EnforceHTTPS": false, + "TLSSecurityPolicy": "Policy-Min-TLS-1-0-2019-07" + }, + "AdvancedSecurityOptions": { + "Enabled": false, + "InternalUserDatabaseEnabled": false + } + } + ] + } + +For more information, see `Creating and Managing Amazon Elasticsearch Service Domains `__ in the *Amazon Elasticsearch Service Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/es/describe-reserved-elasticsearch-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/es/describe-reserved-elasticsearch-instances.rst new file mode 100644 index 000000000..4d24f8e78 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/es/describe-reserved-elasticsearch-instances.rst @@ -0,0 +1,30 @@ +**To view all reserved instances** + +The following ``describe-elasticsearch-domains`` example provides a summary of all instances you have reserved in a region. :: + + aws es describe-reserved-elasticsearch-instances + +Output:: + + { + "ReservedElasticsearchInstances": [{ + "FixedPrice": 100.0, + "ReservedElasticsearchInstanceOfferingId": "1a2a3a4a5-1a2a-3a4a-5a6a-1a2a3a4a5a6a", + "ReservationName": "my-reservation", + "PaymentOption": "PARTIAL_UPFRONT", + "UsagePrice": 0.0, + "ReservedElasticsearchInstanceId": "9a8a7a6a-5a4a-3a2a-1a0a-9a8a7a6a5a4a", + "RecurringCharges": [{ + "RecurringChargeAmount": 0.603, + "RecurringChargeFrequency": "Hourly" + }], + "State": "payment-pending", + "StartTime": 1522872571.229, + "ElasticsearchInstanceCount": 3, + "Duration": 31536000, + "ElasticsearchInstanceType": "m4.2xlarge.elasticsearch", + "CurrencyCode": "USD" + }] + } + +For more information, see `Reserved Instances `__ in the *Amazon Elasticsearch Service Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/es/list-domain-names.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/es/list-domain-names.rst new file mode 100644 index 000000000..445f7c01f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/es/list-domain-names.rst @@ -0,0 +1,19 @@ +**To list all domains** + +The following ``list-domain-names`` example provides a quick summary of all domains in the region. :: + + aws es list-domain-names + +Output:: + + { + "DomainNames": [{ + "DomainName": "cli-example-1" + }, + { + "DomainName": "cli-example-2" + } + ] + } + +For more information, see `Creating and Managing Amazon Elasticsearch Service Domains `__ in the *Amazon Elasticsearch Service Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/delete-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/delete-rule.rst new file mode 100644 index 000000000..32a8a9275 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/delete-rule.rst @@ -0,0 +1,5 @@ +**To delete a CloudWatch Events rule** + +This example deletes the rule named EC2InstanceStateChanges:: + + aws events delete-rule --name "EC2InstanceStateChanges" diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/describe-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/describe-rule.rst new file mode 100644 index 000000000..12e5644ea --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/describe-rule.rst @@ -0,0 +1,5 @@ +**To display information about a CloudWatch Events rule** + +This example displays information about the rule named DailyLambdaFunction:: + + aws events describe-rule --name "DailyLambdaFunction" diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/disable-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/disable-rule.rst new file mode 100644 index 000000000..2ebb949c4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/disable-rule.rst @@ -0,0 +1,5 @@ +**To disable a CloudWatch Events rule** + +This example disables the rule named DailyLambdaFunction. The rule is not deleted:: + + aws events disable-rule --name "DailyLambdaFunction" diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/enable-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/enable-rule.rst new file mode 100644 index 000000000..d7ed4a973 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/enable-rule.rst @@ -0,0 +1,5 @@ +**To enable a CloudWatch Events rule** + +This example enables the rule named DailyLambdaFunction, which had been previously disabled:: + + aws events enable-rule --name "DailyLambdaFunction" diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/list-rule-names-by-target.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/list-rule-names-by-target.rst new file mode 100644 index 000000000..87b94dbcd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/list-rule-names-by-target.rst @@ -0,0 +1,5 @@ +**To display all the rules that have a specified target** + +This example displays all rules that have the Lambda function named "MyFunctionName" as the target:: + + aws events list-rule-names-by-target --target-arn "arn:aws:lambda:us-east-1:123456789012:function:MyFunctionName" diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/list-rules.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/list-rules.rst new file mode 100644 index 000000000..da3decda0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/list-rules.rst @@ -0,0 +1,11 @@ +**To display a list of all CloudWatch Events rules** + +This example displays all CloudWatch Events rules in the region:: + + aws events list-rules + +**To display a list of CloudWatch Events rules beginning with a certain string.** + +This example displays all CloudWatch Events rules in the region that have a name starting with "Daily":: + + aws events list-rules --name-prefix "Daily" diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/list-targets-by-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/list-targets-by-rule.rst new file mode 100644 index 000000000..4b9589d6b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/list-targets-by-rule.rst @@ -0,0 +1,5 @@ +**To display all the targets for a CloudWatch Events rule** + +This example displays all the targets of the rule named DailyLambdaFunction:: + + aws events list-targets-by-rule --rule "DailyLambdaFunction" diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/put-events.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/put-events.rst new file mode 100644 index 000000000..8769fe562 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/put-events.rst @@ -0,0 +1,28 @@ +**To send a custom event to CloudWatch Events** + +This example sends a custom event to CloudWatch Events. The event is contained within the putevents.json file:: + + aws events put-events --entries file://putevents.json + +Here are the contents of the putevents.json file:: + + [ + { + "Source": "com.mycompany.myapp", + "Detail": "{ \"key1\": \"value1\", \"key2\": \"value2\" }", + "Resources": [ + "resource1", + "resource2" + ], + "DetailType": "myDetailType" + }, + { + "Source": "com.mycompany.myapp", + "Detail": "{ \"key1\": \"value3\", \"key2\": \"value4\" }", + "Resources": [ + "resource1", + "resource2" + ], + "DetailType": "myDetailType" + } + ] diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/put-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/put-rule.rst new file mode 100644 index 000000000..ea6992153 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/put-rule.rst @@ -0,0 +1,13 @@ +**To create CloudWatch Events rules** + +This example creates a rule that triggers every day at 9:00am (UTC). If you use put-targets to add a Lambda function as a target of this rule, you could run the Lambda function every day at the specified time:: + + aws events put-rule --name "DailyLambdaFunction" --schedule-expression "cron(0 9 * * ? *)" + +This example creates a rule that triggers when any EC2 instance in the region changes state:: + + aws events put-rule --name "EC2InstanceStateChanges" --event-pattern "{\"source\":[\"aws.ec2\"],\"detail-type\":[\"EC2 Instance State-change Notification\"]}" --role-arn "arn:aws:iam::123456789012:role/MyRoleForThisRule" + +This example creates a rule that triggers when any EC2 instance in the region is stopped or terminated:: + + aws events put-rule --name "EC2InstanceStateChangeStopOrTerminate" --event-pattern "{\"source\":[\"aws.ec2\"],\"detail-type\":[\"EC2 Instance State-change Notification\"],\"detail\":{\"state\":[\"stopped\",\"terminated\"]}}" --role-arn "arn:aws:iam::123456789012:role/MyRoleForThisRule" diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/put-targets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/put-targets.rst new file mode 100644 index 000000000..d233fadea --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/put-targets.rst @@ -0,0 +1,13 @@ +**To add targets for CloudWatch Events rules** + +This example adds a Lambda function as the target of a rule:: + + aws events put-targets --rule DailyLambdaFunction --targets "Id"="1","Arn"="arn:aws:lambda:us-east-1:123456789012:function:MyFunctionName" + +This example sets an Amazon Kinesis stream as the target, so that events caught by this rule are relayed to the stream:: + + aws events put-targets --rule EC2InstanceStateChanges --targets "Id"="1","Arn"="arn:aws:kinesis:us-east-1:123456789012:stream/MyStream","RoleArn"="arn:aws:iam::123456789012:role/MyRoleForThisRule" + +This example sets two Amazon Kinesis streams as targets for one rule:: + + aws events put-targets --rule DailyLambdaFunction --targets "Id"="Target1","Arn"="arn:aws:kinesis:us-east-1:379642911888:stream/MyStream1","RoleArn"="arn:aws:iam::379642911888:role/ MyRoleToAccessLambda" "Id"="Target2"," Arn"="arn:aws:kinesis:us-east-1:379642911888:stream/MyStream2","RoleArn"="arn:aws:iam::379642911888:role/MyRoleToAccessLambda" diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/remove-targets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/remove-targets.rst new file mode 100644 index 000000000..7b123d050 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/remove-targets.rst @@ -0,0 +1,5 @@ +**To remove a target for an event** + +This example removes the Amazon Kinesis stream named MyStream1 from being a target of the rule DailyLambdaFunction. When DailyLambdaFunction was created, this stream was set as a target with an ID of Target1:: + + aws events remove-targets --rule "DailyLambdaFunction" --ids "Target1" diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/test-event-pattern.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/test-event-pattern.rst new file mode 100644 index 000000000..86cb607b0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/events/test-event-pattern.rst @@ -0,0 +1,5 @@ +**To check whether an event pattern matches a specified event** + +This example tests whether the pattern "source:com.mycompany.myapp" matches the specified event. In this example, the output would be "true":: + + aws events test-event-pattern --event-pattern "{\"source\":[\"com.mycompany.myapp\"]}" --event "{\"id\":\"1\",\"source\":\"com.mycompany.myapp\",\"detail-type\":\"myDetailType\",\"account\":\"123456789012\",\"region\":\"us-east-1\",\"time\":\"2017-04-11T20:11:04Z\"}" diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/firehose/list-delivery-streams.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/firehose/list-delivery-streams.rst new file mode 100644 index 000000000..cdfdacabf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/firehose/list-delivery-streams.rst @@ -0,0 +1,16 @@ +**To list the available delivery streams** + +The following ``list-delivery-streams`` example lists the available delivery streams in your AWS account. :: + + aws firehose list-delivery-streams + +Output:: + + { + "DeliveryStreamNames": [ + "my-stream" + ], + "HasMoreDeliveryStreams": false + } + +For more information, see `Creating an Amazon Kinesis Data Firehose Delivery Stream `__ in the *Amazon Kinesis Data Firehose Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/firehose/put-record-batch.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/firehose/put-record-batch.rst new file mode 100644 index 000000000..42b94d3c5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/firehose/put-record-batch.rst @@ -0,0 +1,35 @@ +**To write multiple records to a stream** + +The following ``put-record-batch`` example writes three records to a stream. The data is encoded in Base64 format. :: + + aws firehose put-record-batch \ + --delivery-stream-name my-stream \ + --records file://records.json + +Contents of ``myfile.json``:: + + [ + {"Data": "Rmlyc3QgdGhpbmc="}, + {"Data": "U2Vjb25kIHRoaW5n"}, + {"Data": "VGhpcmQgdGhpbmc="} + ] + +Output:: + + { + "FailedPutCount": 0, + "Encrypted": false, + "RequestResponses": [ + { + "RecordId": "9D2OJ6t2EqCTZTXwGzeSv/EVHxRoRCw89xd+o3+sXg8DhYOaWKPSmZy/CGlRVEys1u1xbeKh6VofEYKkoeiDrcjrxhQp9iF7sUW7pujiMEQ5LzlrzCkGosxQn+3boDnURDEaD42V7GiixpOyLJkYZcae1i7HzlCEoy9LJhMr8EjDSi4Om/9Vc2uhwwuAtGE0XKpxJ2WD7ZRWtAnYlKAnvgSPRgg7zOWL" + }, + { + "RecordId": "jFirejqxCLlK5xjH/UNmlMVcjktEN76I7916X9PaZ+PVaOSXDfU1WGOqEZhxq2js7xcZ552eoeDxsuTU1MSq9nZTbVfb6cQTIXnm/GsuF37Uhg67GKmR5z90l6XKJ+/+pDloFv7Hh9a3oUS6wYm3DcNRLTHHAimANp1PhkQvWpvLRfzbuCUkBphR2QVzhP9OiHLbzGwy8/DfH8sqWEUYASNJKS8GXP5s" + }, + { + "RecordId": "oy0amQ40o5Y2YV4vxzufdcMOOw6n3EPr3tpPJGoYVNKH4APPVqNcbUgefo1stEFRg4hTLrf2k6eliHu/9+YJ5R3iiedHkdsfkIqX0XTySSutvgFYTjNY1TSrK0pM2sWxpjqqnk3+2UX1MV5z88xGro3cQm/DTBt3qBlmTj7Xq8SKVbO1S7YvMTpWkMKA86f8JfmT8BMKoMb4XZS/sOkQLe+qh0sYKXWl" + } + ] + } + +For more information, see `Sending Data to an Amazon Kinesis Data Firehose Delivery Stream `__ in the *Amazon Kinesis Data Firehose Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/firehose/put-record.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/firehose/put-record.rst new file mode 100644 index 000000000..a4b2151ff --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/firehose/put-record.rst @@ -0,0 +1,17 @@ +**To write a record to a stream** + +The following ``put-record`` example writes data to a stream. The data is encoded in Base64 format. :: + + aws firehose put-record \ + --delivery-stream-name my-stream \ + --record '{"Data":"SGVsbG8gd29ybGQ="}' + +Output:: + + { + "RecordId": "RjB5K/nnoGFHqwTsZlNd/TTqvjE8V5dsyXZTQn2JXrdpMTOwssyEb6nfC8fwf1whhwnItt4mvrn+gsqeK5jB7QjuLg283+Ps4Sz/j1Xujv31iDhnPdaLw4BOyM9Amv7PcCuB2079RuM0NhoakbyUymlwY8yt20G8X2420wu1jlFafhci4erAt7QhDEvpwuK8N1uOQ1EuaKZWxQHDzcG6tk1E49IPeD9k", + "Encrypted": false + } + + +For more information, see `Sending Data to an Amazon Kinesis Data Firehose Delivery Stream `__ in the *Amazon Kinesis Data Firehose Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/create-experiment-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/create-experiment-template.rst new file mode 100644 index 000000000..bce1b2751 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/create-experiment-template.rst @@ -0,0 +1,78 @@ +**To create an experiment template** + +The following ``create-experiment-template`` example creates an experiment template in your AWS FIS account. :: + + aws fis create-experiment-template \ + --cli-input-json file://myfile.json + +Contents of ``myfile.json``:: + + { + "description": "experimentTemplate", + "stopConditions": [ + { + "source": "aws:cloudwatch:alarm", + "value": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:alarmName" + } + ], + "targets": { + "Instances-Target-1": { + "resourceType": "aws:ec2:instance", + "resourceArns": [ + "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" + ], + "selectionMode": "ALL" + } + }, + "actions": { + "reboot": { + "actionId": "aws:ec2:reboot-instances", + "description": "reboot", + "parameters": {}, + "targets": { + "Instances": "Instances-Target-1" + } + } + }, + "roleArn": "arn:aws:iam::123456789012:role/myRole" + } + +Output:: + + { + "experimentTemplate": { + "id": "ABCDE1fgHIJkLmNop", + "description": "experimentTemplate", + "targets": { + "Instances-Target-1": { + "resourceType": "aws:ec2:instance", + "resourceArns": [ + "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" + ], + "selectionMode": "ALL" + } + }, + "actions": { + "reboot": { + "actionId": "aws:ec2:reboot-instances", + "description": "reboot", + "parameters": {}, + "targets": { + "Instances": "Instances-Target-1" + } + } + }, + "stopConditions": [ + { + "source": "aws:cloudwatch:alarm", + "value": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:alarmName" + } + ], + "creationTime": 1616434850.659, + "lastUpdateTime": 1616434850.659, + "roleArn": "arn:aws:iam::123456789012:role/myRole", + "tags": {} + } + } + +For more information, see `Create an experiment template `__ in the *AWS Fault Injection Simulator User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/delete-experiment-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/delete-experiment-template.rst new file mode 100644 index 000000000..f9a4c140b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/delete-experiment-template.rst @@ -0,0 +1,43 @@ +**To delete an experiment template** + +The following ``delete-experiment-template`` example deletes the specified experiment template. :: + + aws fis delete-experiment-template \ + --id ABCDE1fgHIJkLmNop + +Output:: + + { + "experimentTemplate": { + "id": "ABCDE1fgHIJkLmNop", + "description": "myExperimentTemplate", + "targets": { + "Instances-Target-1": { + "resourceType": "aws:ec2:instance", + "resourceArns": [ + "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" + ], + "selectionMode": "ALL" + } + }, + "actions": { + "testaction": { + "actionId": "aws:ec2:stop-instances", + "parameters": {}, + "targets": { + "Instances": "Instances-Target-1" + } + } + }, + "stopConditions": [ + { + "source": "none" + } + ], + "creationTime": 1616017191.124, + "lastUpdateTime": 1616017859.607, + "roleArn": "arn:aws:iam::123456789012:role/FISRole" + } + } + +For more information, see `Delete an experiment template `__ in the *AWS Fault Injection Simulator User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/get-action.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/get-action.rst new file mode 100644 index 000000000..096f3ad3c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/get-action.rst @@ -0,0 +1,29 @@ +**To get action details** + +The following ``get-action`` example gets the details of the specified action. :: + + aws fis get-action \ + --id aws:ec2:stop-instances + +Output:: + + { + "action": { + "id": "aws:ec2:stop-instances", + "description": "Stop the specified EC2 instances.", + "parameters": { + "startInstancesAfterDuration": { + "description": "The time to wait before restarting the instances (ISO 8601 duration).", + "required": false + } + }, + "targets": { + "Instances": { + "resourceType": "aws:ec2:instance" + } + }, + "tags": {} + } + } + +For more information, see `Actions `__ in the *AWS Fault Injection Simulator User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/get-experiment-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/get-experiment-template.rst new file mode 100644 index 000000000..67427ed01 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/get-experiment-template.rst @@ -0,0 +1,46 @@ +**To get experiment template details** + +The following ``get-experiment-template`` example gets the details of the specified experiment template. :: + + aws fis get-experiment-template \ + --id ABCDE1fgHIJkLmNop + +Output:: + + { + "experimentTemplate": { + "id": "ABCDE1fgHIJkLmNop", + "description": "myExperimentTemplate", + "targets": { + "Instances-Target-1": { + "resourceType": "aws:ec2:instance", + "resourceArns": [ + "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" + ], + "selectionMode": "ALL" + } + }, + "actions": { + "testaction": { + "actionId": "aws:ec2:stop-instances", + "parameters": {}, + "targets": { + "Instances": "Instances-Target-1" + } + } + }, + "stopConditions": [ + { + "source": "none" + } + ], + "creationTime": 1616017191.124, + "lastUpdateTime": 1616017331.51, + "roleArn": "arn:aws:iam::123456789012:role/FISRole", + "tags": { + "key: "value" + } + } + } + +For more information, see `Experiment templates `__ in the *AWS Fault Injection Simulator User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/get-experiment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/get-experiment.rst new file mode 100644 index 000000000..b98888ee2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/get-experiment.rst @@ -0,0 +1,53 @@ +**To get experiment details** + +The following ``get-experiment`` example gets the details of the specified experiment. :: + + aws fis get-experiment \ + --id ABC12DeFGhI3jKLMNOP + +Output:: + + { + "experiment": { + "id": "ABC12DeFGhI3jKLMNOP", + "experimentTemplateId": "ABCDE1fgHIJkLmNop", + "roleArn": "arn:aws:iam::123456789012:role/myRole", + "state": { + "status": "completed", + "reason": "Experiment completed." + }, + "targets": { + "Instances-Target-1": { + "resourceType": "aws:ec2:instance", + "resourceArns": [ + "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" + ], + "selectionMode": "ALL" + } + }, + "actions": { + "reboot": { + "actionId": "aws:ec2:reboot-instances", + "parameters": {}, + "targets": { + "Instances": "Instances-Target-1" + }, + "state": { + "status": "completed", + "reason": "Action was completed." + } + } + }, + "stopConditions": [ + { + "source": "none" + } + ], + "creationTime": 1616432509.662, + "startTime": 1616432509.962, + "endTime": 1616432522.307, + "tags": {} + } + } + +For more information, see `Experiments for AWS FIS `__ in the *AWS Fault Injection Simulator User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/list-actions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/list-actions.rst new file mode 100644 index 000000000..d3fd8ce76 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/list-actions.rst @@ -0,0 +1,129 @@ +**To list actions** + +The following ``list-actions`` example lists the available actions. :: + + aws fis list-actions + +Output:: + + { + "actions": [ + { + "id": "aws:ec2:reboot-instances", + "description": "Reboot the specified EC2 instances.", + "targets": { + "Instances": { + "resourceType": "aws:ec2:instance" + } + }, + "tags": {} + }, + { + "id": "aws:ec2:stop-instances", + "description": "Stop the specified EC2 instances.", + "targets": { + "Instances": { + "resourceType": "aws:ec2:instance" + } + }, + "tags": {} + }, + { + "id": "aws:ec2:terminate-instances", + "description": "Terminate the specified EC2 instances.", + "targets": { + "Instances": { + "resourceType": "aws:ec2:instance" + } + }, + "tags": {} + }, + { + "id": "aws:ecs:drain-container-instances", + "description": "Drain percentage of underlying EC2 instances on an ECS cluster.", + "targets": { + "Clusters": { + "resourceType": "aws:ecs:cluster" + } + }, + "tags": {} + }, + { + "id": "aws:eks:terminate-nodegroup-instances", + "description": "Terminates a percentage of the underlying EC2 instances in an EKS cluster.", + "targets": { + "Nodegroups": { + "resourceType": "aws:eks:nodegroup" + } + }, + "tags": {} + }, + { + "id": "aws:fis:inject-api-internal-error", + "description": "Cause an AWS service to return internal error responses for specific callers and operations.", + "targets": { + "Roles": { + "resourceType": "aws:iam:role" + } + }, + "tags": {} + }, + { + "id": "aws:fis:inject-api-throttle-error", + "description": "Cause an AWS service to return throttled responses for specific callers and operations.", + "targets": { + "Roles": { + "resourceType": "aws:iam:role" + } + }, + "tags": {} + }, + { + "id": "aws:fis:inject-api-unavailable-error", + "description": "Cause an AWS service to return unavailable error responses for specific callers and operations.", + "targets": { + "Roles": { + "resourceType": "aws:iam:role" + } + }, + "tags": {} + }, + { + "id": "aws:fis:wait", + "description": "Wait for the specified duration. Stop condition monitoring will continue during this time.", + "tags": {} + }, + { + "id": "aws:rds:failover-db-cluster", + "description": "Failover a DB Cluster to one of the replicas.", + "targets": { + "Clusters": { + "resourceType": "aws:rds:cluster" + } + }, + "tags": {} + }, + { + "id": "aws:rds:reboot-db-instances", + "description": "Reboot the specified DB instances.", + "targets": { + "DBInstances": { + "resourceType": "aws:rds:db" + } + }, + "tags": {} + }, + { + "id": "aws:ssm:send-command", + "description": "Run the specified SSM document.", + "targets": { + "Instances": { + "resourceType": "aws:ec2:instance" + } + }, + "tags": {} + } + ] + } + +For more information, see `Actions `__ in the *AWS Fault Injection Simulator User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/list-experiment-templates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/list-experiment-templates.rst new file mode 100644 index 000000000..232eaf941 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/list-experiment-templates.rst @@ -0,0 +1,23 @@ +**To list experiment templates** + +The following ``list-experiment-templates`` example lists the experiment templates in your AWS account. :: + + aws fis list-experiment-templates + +Output:: + + { + "experimentTemplates": [ + { + "id": "ABCDE1fgHIJkLmNop", + "description": "myExperimentTemplate", + "creationTime": 1616017191.124, + "lastUpdateTime": 1616017191.124, + "tags": { + "key": "value" + } + } + ] + } + +For more information, see `Experiment templates `__ in the *AWS Fault Injection Simulator User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/list-experiments.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/list-experiments.rst new file mode 100644 index 000000000..0f6c978d2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/list-experiments.rst @@ -0,0 +1,26 @@ +**To list experiments** + +The following ``list-experiments`` example lists the experiments in your AWS account. :: + + aws fis list-experiments + +Output:: + + { + "experiments": [ + { + "id": "ABCdeF1GHiJkLM23NO", + "experimentTemplateId": "ABCDE1fgHIJkLmNop", + "state": { + "status": "running", + "reason": "Experiment is running." + }, + "creationTime": 1616017341.197, + "tags": { + "key": "value" + } + } + ] + } + +For more information, see `Experiments `__ in the *AWS Fault Injection Simulator User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/list-tags-for-resource.rst new file mode 100644 index 000000000..8f04d18d9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/list-tags-for-resource.rst @@ -0,0 +1,17 @@ +**To list tags for a resource** + +The following ``list-tags-for-resource`` example lists the tags for the specified resource. :: + + aws fis list-tags-for-resource \ + --resource-arn arn:aws:fis:us-west-2:123456789012:experiment/ABC12DeFGhI3jKLMNOP + +Output:: + + { + "tags": { + "key1": "value1", + "key2": "value2" + } + } + +For more information, see `Tag your AWS FIS resources `__ in the *AWS Fault Injection Simulator User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/start-experiment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/start-experiment.rst new file mode 100644 index 000000000..c3e10ce45 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/start-experiment.rst @@ -0,0 +1,52 @@ +**To start an experiment** + +The following ``start-experiment`` example starts the specified experiment. :: + + aws fis start-experiment \ + --experiment-template-id ABCDE1fgHIJkLmNop + +Output:: + + { + "experiment": { + "id": "ABC12DeFGhI3jKLMNOP", + "experimentTemplateId": "ABCDE1fgHIJkLmNop", + "roleArn": "arn:aws:iam::123456789012:role/myRole", + "state": { + "status": "initiating", + "reason": "Experiment is initiating." + }, + "targets": { + "Instances-Target-1": { + "resourceType": "aws:ec2:instance", + "resourceArns": [ + "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" + ], + "selectionMode": "ALL" + } + }, + "actions": { + "reboot": { + "actionId": "aws:ec2:reboot-instances", + "parameters": {}, + "targets": { + "Instances": "Instances-Target-1" + }, + "state": { + "status": "pending", + "reason": "Initial state" + } + } + }, + "stopConditions": [ + { + "source": "none" + } + ], + "creationTime": 1616432464.025, + "startTime": 1616432464.374, + "tags": {} + } + } + +For more information, see `Experiments for AWS FIS `__ in the *AWS Fault Injection Simulator User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/stop-experiment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/stop-experiment.rst new file mode 100644 index 000000000..385951222 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/stop-experiment.rst @@ -0,0 +1,65 @@ +**To stop an experiment** + +The following ``stop-experiment`` example stops the specified experiment from running. :: + + aws fis stop-experiment \ + --id ABC12DeFGhI3jKLMNOP + +Output:: + + { + "experiment": { + "id": "ABC12DeFGhI3jKLMNOP", + "experimentTemplateId": "ABCDE1fgHIJkLmNop", + "roleArn": "arn:aws:iam::123456789012:role/myRole", + "state": { + "status": "stopping", + "reason": "Stopping Experiment." + }, + "targets": { + "Instances-Target-1": { + "resourceType": "aws:ec2:instance", + "resourceArns": [ + "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" + ], + "selectionMode": "ALL" + } + }, + "actions": { + "reboot": { + "actionId": "aws:ec2:reboot-instances", + "parameters": {}, + "targets": { + "Instances": "Instances-Target-1" + }, + "startAfter": [ + "wait" + ], + "state": { + "status": "pending", + "reason": "Initial state." + } + }, + "wait": { + "actionId": "aws:fis:wait", + "parameters": { + "duration": "PT5M" + }, + "state": { + "status": "running", + "reason": "" + } + } + }, + "stopConditions": [ + { + "source": "none" + } + ], + "creationTime": 1616432680.927, + "startTime": 1616432681.177, + "tags": {} + } + } + +For more information, see `Experiments for AWS FIS `__ in the *AWS Fault Injection Simulator User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/tag-resource.rst new file mode 100644 index 000000000..d6b44269b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/tag-resource.rst @@ -0,0 +1,11 @@ +**To tag a resource** + +The following ``tag-resource`` example tags the specified resource. :: + + aws fis tag-resource \ + --resource-arn arn:aws:fis:us-west-2:123456789012:experiment/ABC12DeFGhI3jKLMNOP \ + --tags key1=value1,key2=value2 + +This command produces no output. + +For more information, see `Tag your AWS FIS resources `__ in the *AWS Fault Injection Simulator User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/untag-resource.rst new file mode 100644 index 000000000..d72ef6f44 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/untag-resource.rst @@ -0,0 +1,10 @@ +**To untag a resource** + +The following ``untag-resource`` example removes the tags from the specified resource. :: + + aws fis untag-resource \ + --resource-arn arn:aws:fis:us-west-2:123456789012:experiment/ABC12DeFGhI3jKLMNOP + +This command produces no output. + +For more information, see `Tag your AWS FIS resources `__ in the *AWS Fault Injection Simulator User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/update-experiment-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/update-experiment-template.rst new file mode 100644 index 000000000..fb5c33ecb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fis/update-experiment-template.rst @@ -0,0 +1,47 @@ +**To update an experiment template** + +The following ``update-experiment-template`` example updates the description of the specified experiment template. :: + + aws fis update-experiment-template \ + --id ABCDE1fgHIJkLmNop \ + ---description myExperimentTemplate + +Output:: + + { + "experimentTemplate": { + "id": "ABCDE1fgHIJkLmNop", + "description": "myExperimentTemplate", + "targets": { + "Instances-Target-1": { + "resourceType": "aws:ec2:instance", + "resourceArns": [ + "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" + ], + "selectionMode": "ALL" + } + }, + "actions": { + "testaction": { + "actionId": "aws:ec2:stop-instances", + "parameters": {}, + "targets": { + "Instances": "Instances-Target-1" + } + } + }, + "stopConditions": [ + { + "source": "none" + } + ], + "creationTime": 1616017191.124, + "lastUpdateTime": 1616017859.607, + "roleArn": "arn:aws:iam::123456789012:role/FISRole", + "tags": { + "key": "value" + } + } + } + +For more information, see `Update an experiment template `__ in the *AWS Fault Injection Simulator User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/associate-admin-account.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/associate-admin-account.rst new file mode 100755 index 000000000..d52cb5481 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/associate-admin-account.rst @@ -0,0 +1,10 @@ +**To set the Firewall Manager administrator account** + +The following ``associate-admin-account`` example sets the administrator account for Firewall Manager. :: + + aws fms associate-admin-account \ + --admin-account 123456789012 + +This command produces no output. + +For more information, see `Set the AWS Firewall Manager Administrator Account `__ in the *AWS WAF, AWS Firewall Manager, and AWS Shield Advanced Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/delete-notification-channel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/delete-notification-channel.rst new file mode 100755 index 000000000..9541a0aa4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/delete-notification-channel.rst @@ -0,0 +1,9 @@ +**To remove the SNS topic information for Firewall Manager logs** + +The following ``delete-notification-channel`` example removes the SNS topic information. :: + + aws fms delete-notification-channel + +This command produces no output. + +For more information, see `Configure Amazon SNS Notifications and Amazon CloudWatch Alarms `__ in the *AWS WAF, AWS Firewall Manager, and AWS Shield Advanced Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/delete-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/delete-policy.rst new file mode 100755 index 000000000..a56882b5a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/delete-policy.rst @@ -0,0 +1,11 @@ +**To delete a Firewall Manager policy** + +The following ``delete-policy`` example removes the policy with the specified ID, along with all of its resources. :: + + aws fms delete-policy \ + --policy-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ + --delete-all-policy-resources + +This command produces no output. + +For more information, see `Working with AWS Firewall Manager Policies `__ in the *AWS WAF, AWS Firewall Manager, and AWS Shield Advanced Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/disassociate-admin-account.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/disassociate-admin-account.rst new file mode 100755 index 000000000..3961fd207 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/disassociate-admin-account.rst @@ -0,0 +1,9 @@ +**To remove the Firewall Manager administrator account** + +The following ``disassociate-admin-account`` example removes the current administrator account association from Firewall Manager. :: + + aws fms disassociate-admin-account + +This command produces no output. + +For more information, see `Set the AWS Firewall Manager Administrator Account `__ in the *AWS WAF, AWS Firewall Manager, and AWS Shield Advanced Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/get-admin-account.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/get-admin-account.rst new file mode 100755 index 000000000..1e2415f1b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/get-admin-account.rst @@ -0,0 +1,14 @@ +**To retrieve the Firewall Manager administrator account** + +The following ``get-admin-account`` example retrieves the administrator account. :: + + aws fms get-admin-account + +Output:: + + { + "AdminAccount": "123456789012", + "RoleStatus": "READY" + } + +For more information, see `AWS Firewall Manager Prerequisites `__ in the *AWS WAF, AWS Firewall Manager, and AWS Shield Advanced Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/get-compliance-detail.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/get-compliance-detail.rst new file mode 100755 index 000000000..a2a68df7a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/get-compliance-detail.rst @@ -0,0 +1,21 @@ +**To retrieve the compliance information for an account** + +The following ``get-compliance-detail`` example retrieves compliance information for the specified policy and member account. :: + + aws fms get-compliance-detail \ + --policy-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ + --member-account 123456789012 + +Output:: + + { + "PolicyComplianceDetail": { + "EvaluationLimitExceeded": false, + "IssueInfoMap": {}, + "MemberAccount": "123456789012", + "PolicyId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "PolicyOwner": "123456789012", + "Violators": [] + } + +For more information, see `Viewing Resource Compliance with a Policy `__ in the *AWS WAF, AWS Firewall Manager, and AWS Shield Advanced Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/get-notification-channel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/get-notification-channel.rst new file mode 100755 index 000000000..b223b6342 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/get-notification-channel.rst @@ -0,0 +1,14 @@ +**To retrieve the SNS topic information for Firewall Manager logs** + +The following ``get-notification-channel`` example retrieves the SNS topic information. :: + + aws fms get-notification-channel + +Output:: + + { + "SnsTopicArn": "arn:aws:sns:us-west-2:123456789012:us-west-2-fms", + "SnsRoleName": "arn:aws:iam::123456789012:role/aws-service-role/fms.amazonaws.com/AWSServiceRoleForFMS" + } + +For more information, see `Configure Amazon SNS Notifications and Amazon CloudWatch Alarms `__ in the *AWS WAF, AWS Firewall Manager, and AWS Shield Advanced Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/get-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/get-policy.rst new file mode 100755 index 000000000..2d3f26ba6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/get-policy.rst @@ -0,0 +1,27 @@ +**To retrieve a Firewall Manager policy** + +The following ``get-policy`` example retrieves the policy with the specified ID. :: + + aws fms get-policy \ + --policy-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "Policy": { + "PolicyId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "PolicyName": "test", + "PolicyUpdateToken": "1:p+2RpKR4wPFx7mcrL1UOQQ==", + "SecurityServicePolicyData": { + "Type": "SECURITY_GROUPS_COMMON", + "ManagedServiceData": "{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":true,\"exclusiveResourceSecurityGroupManagement\":false,\"securityGroups\":[{\"id\":\"sg-045c43ccc9724e63e\"}]}" + }, + "ResourceType": "AWS::EC2::Instance", + "ResourceTags": [], + "ExcludeResourceTags": false, + "RemediationEnabled": false + }, + "PolicyArn": "arn:aws:fms:us-west-2:123456789012:policy/d1ac59b8-938e-42b3-b2e0-7c620422ddc2" + } + +For more information, see `Working with AWS Firewall Manager Policies `__ in the *AWS WAF, AWS Firewall Manager, and AWS Shield Advanced Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/list-compliance-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/list-compliance-status.rst new file mode 100755 index 000000000..83d8dd943 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/list-compliance-status.rst @@ -0,0 +1,35 @@ +**To retrieve the policy compliance information for member accounts** + +The following ``list-compliance-status`` example retrieves member account compliance information for the specified policy. :: + + aws fms list-compliance-status \ + --policy-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "PolicyComplianceStatusList": [ + { + "PolicyOwner": "123456789012", + "PolicyId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "PolicyName": "test", + "MemberAccount": "123456789012", + "EvaluationResults": [ + { + "ComplianceStatus": "COMPLIANT", + "ViolatorCount": 0, + "EvaluationLimitExceeded": false + }, + { + "ComplianceStatus": "NON_COMPLIANT", + "ViolatorCount": 2, + "EvaluationLimitExceeded": false + } + ], + "LastUpdated": 1576283774.0, + "IssueInfoMap": {} + } + ] + } + +For more information, see `Viewing Resource Compliance with a Policy `__ in the *AWS WAF, AWS Firewall Manager, and AWS Shield Advanced Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/list-member-accounts.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/list-member-accounts.rst new file mode 100755 index 000000000..bd855d7a9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/list-member-accounts.rst @@ -0,0 +1,17 @@ +**To retrieve the member accounts in the organization** + +The following ``list-member-accounts`` example lists all of the member accounts that are in the Firewall Manager administrator's organization. :: + + aws fms list-member-accounts + +Output:: + + { + "MemberAccounts": [ + "222222222222", + "333333333333", + "444444444444" + ] + } + +For more information, see `AWS Firewall Manager `__ in the *AWS WAF, AWS Firewall Manager, and AWS Shield Advanced Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/list-policies.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/list-policies.rst new file mode 100755 index 000000000..513ead6e1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/list-policies.rst @@ -0,0 +1,32 @@ +**To retrieve all Firewall Manager policies** + +The following ``list-policies`` example retrieves the list of policies for the account. In this example, the output is limited to two results per request. Each call returns a ``NextToken`` that can be used as the value for the ``--starting-token`` parameter in the next ``list-policies`` call to get the next set of results for the list. :: + + aws fms list-policies \ + --max-items 2 + +Output:: + + { + "PolicyList": [ + { + "PolicyArn": "arn:aws:fms:us-west-2:123456789012:policy/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "PolicyId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "PolicyName": "test", + "ResourceType": "AWS::EC2::Instance", + "SecurityServiceType": "SECURITY_GROUPS_COMMON", + "RemediationEnabled": false + }, + { + "PolicyArn": "arn:aws:fms:us-west-2:123456789012:policy/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "PolicyId": "457c9b21-fc94-406c-ae63-21217395ba72", + "PolicyName": "test", + "ResourceType": "AWS::EC2::Instance", + "SecurityServiceType": "SECURITY_GROUPS_COMMON", + "RemediationEnabled": false + } + ], + "NextToken": "eyJOZXh0VG9rZW4iOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAyfQ==" + } + +For more information, see `Working with AWS Firewall Manager Policies `__ in the *AWS WAF, AWS Firewall Manager, and AWS Shield Advanced Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/put-notification-channel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/put-notification-channel.rst new file mode 100755 index 000000000..7b9e71234 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/put-notification-channel.rst @@ -0,0 +1,11 @@ +**To set the SNS topic information for Firewall Manager logs** + +The following ``put-notification-channel`` example sets the SNS topic information. :: + + aws fms put-notification-channel \ + --sns-topic-arn arn:aws:sns:us-west-2:123456789012:us-west-2-fms \ + --sns-role-name arn:aws:iam::123456789012:role/aws-service-role/fms.amazonaws.com/AWSServiceRoleForFMS + +This command produces no output. + +For more information, see `Configure Amazon SNS Notifications and Amazon CloudWatch Alarms `__ in the *AWS WAF, AWS Firewall Manager, and AWS Shield Advanced Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/put-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/put-policy.rst new file mode 100755 index 000000000..cf9392929 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/fms/put-policy.rst @@ -0,0 +1,49 @@ +**To create a Firewall Manager policy** + +The following ``put-policy`` example creates a Firewall Manager security group policy. :: + + aws fms put-policy \ + --cli-input-json file://policy.json + +Contents of ``policy.json``:: + + { + "Policy": { + "PolicyName": "test", + "SecurityServicePolicyData": { + "Type": "SECURITY_GROUPS_USAGE_AUDIT", + "ManagedServiceData": "{\"type\":\"SECURITY_GROUPS_USAGE_AUDIT\",\"deleteUnusedSecurityGroups\":false,\"coalesceRedundantSecurityGroups\":true}" + }, + "ResourceType": "AWS::EC2::SecurityGroup", + "ResourceTags": [], + "ExcludeResourceTags": false, + "RemediationEnabled": false + }, + "TagList": [ + { + "Key": "foo", + "Value": "foo" + } + ] + } + +Output:: + + { + "Policy": { + "PolicyId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "PolicyName": "test", + "PolicyUpdateToken": "1:X9QGexP7HASDlsFp+G31Iw==", + "SecurityServicePolicyData": { + "Type": "SECURITY_GROUPS_USAGE_AUDIT", + "ManagedServiceData": "{\"type\":\"SECURITY_GROUPS_USAGE_AUDIT\",\"deleteUnusedSecurityGroups\":false,\"coalesceRedundantSecurityGroups\":true,\"optionalDelayForUnusedInMinutes\":null}" + }, + "ResourceType": "AWS::EC2::SecurityGroup", + "ResourceTags": [], + "ExcludeResourceTags": false, + "RemediationEnabled": false + }, + "PolicyArn": "arn:aws:fms:us-west-2:123456789012:policy/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + } + +For more information, see `Working with AWS Firewall Manager Policies `__ in the *AWS WAF, AWS Firewall Manager, and AWS Shield Advanced Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/create-build.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/create-build.rst new file mode 100755 index 000000000..3cc371853 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/create-build.rst @@ -0,0 +1,70 @@ +**Example1: To create a game build from files in an S3 bucket** + +The following ``create-build`` example creates a custom game build resource. It uses zipped files that are stored in an S3 location in an AWS account that you control. This example assumes that you've already created an IAM role that gives Amazon GameLift permission to access the S3 location. Since the request does not specify an operating system, the new build resource defaults to WINDOWS_2012. :: + + aws gamelift create-build \ + --storage-location file://storage-loc.json \ + --name MegaFrogRaceServer.NA \ + --build-version 12345.678 + +Contents of ``storage-loc.json``:: + + { + "Bucket":"MegaFrogRaceServer_NA_build_files" + "Key":"MegaFrogRaceServer_build_123.zip" + "RoleArn":"arn:aws:iam::123456789012:role/gamelift" + } + +Output:: + + { + "Build": { + "BuildArn": "arn:aws:gamelift:us-west-2::build/build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "BuildId": "build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "CreationTime": 1496708916.18, + "Name": "MegaFrogRaceServer.NA", + "OperatingSystem": "WINDOWS_2012", + "SizeOnDisk": 479303, + "Status": "INITIALIZED", + "Version": "12345.678" + }, + "StorageLocation": { + "Bucket": "MegaFrogRaceServer_NA_build_files", + "Key": "MegaFrogRaceServer_build_123.zip" + } + } + +**Example2: To create a game build resource for manually uploading files to GameLift** + +The following ``create-build`` example creates a new build resource. It also gets a storage location and temporary credentials that allow you to manually upload your game build to the GameLift location in Amazon S3. Once you've successfully uploaded your build, the GameLift service validates the build and updates the new build's status. :: + + aws gamelift create-build \ + --name MegaFrogRaceServer.NA \ + --build-version 12345.678 \ + --operating-system AMAZON_LINUX + +Output:: + + { + "Build": { + "BuildArn": "arn:aws:gamelift:us-west-2::build/build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "BuildId": "build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "CreationTime": 1496708916.18, + "Name": "MegaFrogRaceServer.NA", + "OperatingSystem": "AMAZON_LINUX", + "SizeOnDisk": 0, + "Status": "INITIALIZED", + "Version": "12345.678" + }, + "StorageLocation": { + "Bucket": "gamelift-builds-us-west-2", + "Key": "123456789012/build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + }, + "UploadCredentials": { + "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", + "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", + "SessionToken": "AgoGb3JpZ2luENz...EXAMPLETOKEN==" + } + } + +For more information, see `Upload a Custom Server Build to GameLift `__ in the *Amazon GameLift Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/create-fleet.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/create-fleet.rst new file mode 100755 index 000000000..17c4385a5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/create-fleet.rst @@ -0,0 +1,160 @@ +**Example 1: To create a basic Linux fleet** + +The following ``create-fleet`` example creates a minimally configured fleet of on-demand Linux instances to host a custom server build. You can complete the configuration by using ``update-fleet``. :: + + aws gamelift create-fleet \ + --name MegaFrogRaceServer.NA.v2 \ + --description 'Hosts for v2 North America' \ + --build-id build-1111aaaa-22bb-33cc-44dd-5555eeee66ff \ + --certificate-configuration 'CertificateType=GENERATED' \ + --ec2-instance-type c4.large \ + --fleet-type ON_DEMAND \ + --runtime-configuration 'ServerProcesses=[{LaunchPath=/local/game/release-na/MegaFrogRace_Server.exe,ConcurrentExecutions=1}]' + +Output:: + + { + "FleetAttributes": { + "BuildId": "build-1111aaaa-22bb-33cc-44dd-5555eeee66ff", + "CertificateConfiguration": { + "CertificateType": "GENERATED" + }, + "CreationTime": 1496365885.44, + "Description": "Hosts for v2 North America", + "FleetArn": "arn:aws:gamelift:us-west-2:444455556666:fleet/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa", + "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa", + "FleetType": "ON_DEMAND", + "InstanceType": "c4.large", + "MetricGroups": ["default"], + "Name": "MegaFrogRace.NA.v2", + "NewGameSessionProtectionPolicy": "NoProtection", + "OperatingSystem": "AMAZON_LINUX", + "ServerLaunchPath": "/local/game/release-na/MegaFrogRace_Server.exe", + "Status": "NEW" + } + } + +**Example 2: To create a basic Windows fleet** + +The following ``create-fleet`` example creates a minimally configured fleet of spot Windows instances to host a custom server build. You can complete the configuration by using ``update-fleet``. :: + + aws gamelift create-fleet \ + --name MegaFrogRace.NA.v2 \ + --description 'Hosts for v2 North America' \ + --build-id build-2222aaaa-33bb-44cc-55dd-6666eeee77ff \ + --certificate-configuration 'CertificateType=GENERATED' \ + --ec2-instance-type c4.large \ + --fleet-type SPOT \ + --runtime-configuration 'ServerProcesses=[{LaunchPath=C:\game\Bin64.Release.Dedicated\MegaFrogRace_Server.exe,ConcurrentExecutions=1}]' + +Output:: + + { + "FleetAttributes": { + "BuildId": "build-2222aaaa-33bb-44cc-55dd-6666eeee77ff", + "CertificateConfiguration": { + "CertificateType": "GENERATED" + }, + "CreationTime": 1496365885.44, + "Description": "Hosts for v2 North America", + "FleetArn": "arn:aws:gamelift:us-west-2:444455556666:fleet/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa", + "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa", + "FleetType": "SPOT", + "InstanceType": "c4.large", + "MetricGroups": ["default"], + "Name": "MegaFrogRace.NA.v2", + "NewGameSessionProtectionPolicy": "NoProtection", + "OperatingSystem": "WINDOWS_2012", + "ServerLaunchPath": "C:\game\Bin64.Release.Dedicated\MegaFrogRace_Server.exe", + "Status": "NEW" + } + } + + +**Example 3: To create a fully configured fleet** + +The following ``create-fleet`` example creates a fleet of Spot Windows instances for a custom server build, with most commonly used configuration settings provided. :: + + aws gamelift create-fleet \ + --name MegaFrogRace.NA.v2 \ + --description 'Hosts for v2 North America' \ + --build-id build-2222aaaa-33bb-44cc-55dd-6666eeee77ff \ + --certificate-configuration 'CertificateType=GENERATED' \ + --ec2-instance-type c4.large \ + --ec2-inbound-permissions 'FromPort=33435,ToPort=33435,IpRange=10.24.34.0/23,Protocol=UDP' \ + --fleet-type SPOT \ + --new-game-session-protection-policy FullProtection \ + --runtime-configuration file://runtime-config.json \ + --metric-groups default \ + --instance-role-arn 'arn:aws:iam::444455556666:role/GameLiftS3Access' + +Contents of ``runtime-config.json``:: + + GameSessionActivationTimeoutSeconds=300, + MaxConcurrentGameSessionActivations=2, + ServerProcesses=[ + {LaunchPath=C:\game\Bin64.Release.Dedicated\MegaFrogRace_Server.exe,Parameters=-debug,ConcurrentExecutions=1}, + {LaunchPath=C:\game\Bin64.Release.Dedicated\MegaFrogRace_Server.exe,ConcurrentExecutions=1}] + +Output:: + + { + "FleetAttributes": { + "InstanceRoleArn": "arn:aws:iam::444455556666:role/GameLiftS3Access", + "Status": "NEW", + "InstanceType": "c4.large", + "FleetArn": "arn:aws:gamelift:us-west-2:444455556666:fleet/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa", + "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa", + "Description": "Hosts for v2 North America", + "FleetType": "SPOT", + "OperatingSystem": "WINDOWS_2012", + "Name": "MegaFrogRace.NA.v2", + "CreationTime": 1569309011.11, + "MetricGroups": [ + "default" + ], + "BuildId": "build-2222aaaa-33bb-44cc-55dd-6666eeee77ff", + "ServerLaunchParameters": "abc", + "ServerLaunchPath": "C:\\game\\Bin64.Release.Dedicated\\MegaFrogRace_Server.exe", + "NewGameSessionProtectionPolicy": "FullProtection", + "CertificateConfiguration": { + "CertificateType": "GENERATED" + } + } + } + +**Example 4: To create a Realtime Servers fleet** + +The following ``create-fleet`` example creates a fleet of Spot instances with a Realtime configuration script that has been uploaded to Amazon GameLift. All Realtime servers are deployed onto Linux machines. For the purposes of this example, assume that the uploaded Realtime script includes multiple script files, with the ``Init()`` function located in the script file called ``MainScript.js``. As shown, this file is identified as the launch script in the runtime configuration. :: + + aws gamelift create-fleet \ + --name MegaFrogRace.NA.realtime \ + --description 'Mega Frog Race Realtime fleet' \ + --script-id script-1111aaaa-22bb-33cc-44dd-5555eeee66ff \ + --ec2-instance-type c4.large \ + --fleet-type SPOT \ + --certificate-configuration 'CertificateType=GENERATED' --runtime-configuration 'ServerProcesses=[{LaunchPath=/local/game/MainScript.js,Parameters=+map Winter444,ConcurrentExecutions=5}]' + +Output:: + + { + "FleetAttributes": { + "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa", + "Status": "NEW", + "CreationTime": 1569310745.212, + "InstanceType": "c4.large", + "NewGameSessionProtectionPolicy": "NoProtection", + "CertificateConfiguration": { + "CertificateType": "GENERATED" + }, + "Name": "MegaFrogRace.NA.realtime", + "ScriptId": "script-1111aaaa-22bb-33cc-44dd-5555eeee66ff", + "FleetArn": "arn:aws:gamelift:us-west-2:444455556666:fleet/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa", + "FleetType": "SPOT", + "MetricGroups": [ + "default" + ], + "Description": "Mega Frog Race Realtime fleet", + "OperatingSystem": "AMAZON_LINUX" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/create-game-session-queue.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/create-game-session-queue.rst new file mode 100755 index 000000000..0572620f3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/create-game-session-queue.rst @@ -0,0 +1,86 @@ +**Example1: To set up an ordered game session queue** + +The following ``create-game-session-queue`` example creates a new game session queue with destinations in two regions. It also configures the queue so that game session requests time out after waiting 10 minutes for placement. Since no latency policies are defined, GameLift attempts to place all game sessions with the first destination listed. :: + + aws gamelift create-game-session-queue \ + --name MegaFrogRaceServer-NA \ + --destinations file://destinations.json \ + --timeout-in-seconds 600 + +Contents of ``destinations.json``:: + + { + "Destinations": [ + {"DestinationArn": "arn:aws:gamelift:us-west-2::fleet/fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }, + {"DestinationArn": "arn:aws:gamelift:us-west-1::fleet/fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" } + ] + } + +Output:: + + { + "GameSessionQueues": [ + { + "Name": "MegaFrogRaceServer-NA", + "GameSessionQueueArn": "arn:aws:gamelift:us-west-2:123456789012:gamesessionqueue/MegaFrogRaceServer-NA", + "TimeoutInSeconds": 600, + "Destinations": [ + {"DestinationArn": "arn:aws:gamelift:us-west-2::fleet/fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"}, + {"DestinationArn": "arn:aws:gamelift:us-west-1::fleet/fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"} + ] + } + ] + } + +**Example2: To set up a game session queue with player latency policies** + +The following ``create-game-session-queue`` example creates a new game session queue with two player latency policies. The first policy sets a 100ms latency cap that is enforced during the first minute of a game session placement attempt. The second policy raises the latency cap to 200ms until the placement request times out at 3 minutes. :: + + aws gamelift create-game-session-queue \ + --name MegaFrogRaceServer-NA \ + --destinations file://destinations.json \ + --player-latency-policies file://latency-policies.json \ + --timeout-in-seconds 180 + +Contents of ``destinations.json``:: + + { + "Destinations": [ + { "DestinationArn": "arn:aws:gamelift:us-west-2::fleet/fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }, + { "DestinationArn": "arn:aws:gamelift:us-east-1::fleet/fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" } + ] + } + +Contents of ``latency-policies.json``:: + + { + "PlayerLatencyPolicies": [ + {"MaximumIndividualPlayerLatencyMilliseconds": 200}, + {"MaximumIndividualPlayerLatencyMilliseconds": 100, "PolicyDurationSeconds": 60} + ] + } + +Output:: + + { + "GameSessionQueue": { + "Name": "MegaFrogRaceServer-NA", + "GameSessionQueueArn": "arn:aws:gamelift:us-west-2:111122223333:gamesessionqueue/MegaFrogRaceServer-NA", + "TimeoutInSeconds": 600, + "PlayerLatencyPolicies": [ + { + "MaximumIndividualPlayerLatencyMilliseconds": 100, + "PolicyDurationSeconds": 60 + }, + { + "MaximumIndividualPlayerLatencyMilliseconds": 200 + } + ] + "Destinations": [ + {"DestinationArn": "arn:aws:gamelift:us-west-2::fleet/fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"}, + {"DestinationArn": "arn:aws:gamelift:us-east-1::fleet/fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"} + ], + } + } + +For more information, see `Create a Queue `__ in the *Amazon GameLift Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/delete-build.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/delete-build.rst new file mode 100755 index 000000000..6182620a9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/delete-build.rst @@ -0,0 +1,8 @@ +**To delete a custom game build** + +The following ``delete-build`` example removes a build from your Amazon GameLift account. After the build is deleted, you cannot use it to create new fleets. This operation cannot be undone. :: + + aws gamelift delete-build \ + --build-id build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/delete-fleet.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/delete-fleet.rst new file mode 100755 index 000000000..22c40117c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/delete-fleet.rst @@ -0,0 +1,10 @@ +**To delete a fleet that is no longer in use** + +The following ``delete-fleet`` example removes a fleet that has been scaled down to zero instances. If the fleet capacity is greater than zero, the request fails with an HTTP 400 error. :: + + aws gamelift delete-fleet \ + --fleet-id fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +This command produces no output. + +For more information, see `Manage GameLift Fleets `__ in the *Amazon GameLift Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/delete-game-session-queue.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/delete-game-session-queue.rst new file mode 100755 index 000000000..67c3b20d6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/delete-game-session-queue.rst @@ -0,0 +1,8 @@ +**To delete a game session queue** + +The following ``delete-game-session-queue`` example deletes a specified game session queue. :: + + aws gamelift delete-game-session-queue \ + --name MegaFrogRace-NA + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-build.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-build.rst new file mode 100755 index 000000000..6a7a87b6e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-build.rst @@ -0,0 +1,23 @@ +**To get information on a custom game build** + +The following ``describe-build`` example retrieves properties for a game server build resource. :: + + aws gamelift describe-build \ + --build-id build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "Build": { + "BuildArn": "arn:aws:gamelift:us-west-2::build/build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "BuildId": "build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "CreationTime": 1496708916.18, + "Name": "My_Game_Server_Build_One", + "OperatingSystem": "AMAZON_LINUX", + "SizeOnDisk": 1304924, + "Status": "READY", + "Version": "12345.678" + } + } + +For more information, see `Upload a Custom Server Build to GameLift `__ in the *Amazon GameLift Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-ec2-instance-limits.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-ec2-instance-limits.rst new file mode 100755 index 000000000..82e6a9681 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-ec2-instance-limits.rst @@ -0,0 +1,20 @@ +**To retrieve service limits for an EC2 instance type** + +The following ``describe-ec2-instance-limits`` example displays the maximum allowed instances and current instances in use for the specified EC2 instance type in the current Region. The result indicates that only five of the allowed twenty instances are being used. :: + + aws gamelift describe-ec2-instance-limits \ + --ec2-instance-type m5.large + +Output:: + + { + "EC2InstanceLimits": [ + { + "EC2InstanceType": ""m5.large", + "CurrentInstances": 5, + "InstanceLimit": 20 + } + ] + } + +For more information, see `Choose Computing Resources `__ in the *Amazon GameLift Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-fleet-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-fleet-attributes.rst new file mode 100755 index 000000000..e0cb714cd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-fleet-attributes.rst @@ -0,0 +1,102 @@ +**Example1: To view attributes for a list of fleets** + +The following ``describe-fleet-attributes`` example retrieves fleet attributes for two specified fleets. As shown, the requested fleets are deployed with the same build, one for On-Demand instances and one for Spot instances, with some minor configuration differences. :: + + aws gamelift describe-fleet-attributes \ + --fleet-ids arn:aws:gamelift:us-west-2::fleet/fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222 + +Output:: + + { + "FleetAttributes": [ + { + "FleetId": "fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "FleetArn": "arn:aws:gamelift:us-west-2::fleet/fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "FleetType": "ON_DEMAND", + "InstanceType": "c4.large", + "Description": "On-demand hosts for v2 North America", + "Name": "MegaFrogRaceServer.NA.v2-od", + "CreationTime": 1568836191.995, + "Status": "ACTIVE", + "BuildId": "build-a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", + "BuildArn": "arn:aws:gamelift:us-west-2::build/build-a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", + "ServerLaunchPath": "C:\\game\\MegaFrogRace_Server.exe", + "ServerLaunchParameters": "+gamelift_start_server", + "NewGameSessionProtectionPolicy": "NoProtection", + "OperatingSystem": "WINDOWS_2012", + "MetricGroups": [ + "default" + ], + "CertificateConfiguration": { + "CertificateType": "DISABLED" + } + }, + { + "FleetId": "fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "FleetArn": "arn:aws:gamelift:us-west-2::fleet/fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "FleetType": "SPOT", + "InstanceType": "c4.large", + "Description": "On-demand hosts for v2 North America", + "Name": "MegaFrogRaceServer.NA.v2-spot", + "CreationTime": 1568838275.379, + "Status": "ACTIVATING", + "BuildId": "build-a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", + "BuildArn": "arn:aws:gamelift:us-west-2::build/build-a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", + "ServerLaunchPath": "C:\\game\\MegaFrogRace_Server.exe", + "NewGameSessionProtectionPolicy": "NoProtection", + "OperatingSystem": "WINDOWS_2012", + "MetricGroups": [ + "default" + ], + "CertificateConfiguration": { + "CertificateType": "GENERATED" + } + } + ] + } + +**Example2: To request attributes for all fleets** + +The following ``describe-fleet-attributes`` returns fleet attributes for all fleets with any status. This example illustrates the use of pagination parameters to return one fleet at a time. :: + + aws gamelift describe-fleet-attributes \ + --limit 1 + +Output:: + + { + "FleetAttributes": [ + { + "FleetId": "fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "FleetArn": "arn:aws:gamelift:us-west-2::fleet/fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "FleetType": "SPOT", + "InstanceType": "c4.large", + "Description": "On-demand hosts for v2 North America", + "Name": "MegaFrogRaceServer.NA.v2-spot", + "CreationTime": 1568838275.379, + "Status": "ACTIVATING", + "BuildId": "build-a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", + "BuildArn": "arn:aws:gamelift:us-west-2::build/build-a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", + "ServerLaunchPath": "C:\\game\\MegaFrogRace_Server.exe", + "NewGameSessionProtectionPolicy": "NoProtection", + "OperatingSystem": "WINDOWS_2012", + "MetricGroups": [ + "default" + ], + "CertificateConfiguration": { + "CertificateType": "GENERATED" + } + } + ], + "NextToken": "eyJhd3NBY2NvdW50SWQiOnsicyI6IjMwMjc3NjAxNjM5OCJ9LCJidWlsZElkIjp7InMiOiJidWlsZC01NWYxZTZmMS1jY2FlLTQ3YTctOWI5ZS1iYjFkYTQwMjEXAMPLE2" + } + +The output includes a ``NextToken`` value that you can use when you call the command a second time. Pass the value to the ``--next-token`` parameter to specify where to pick up the output. The following command returns the second result in the output. :: + + aws gamelift describe-fleet-attributes \ + --limit 1 \ + --next-token eyJhd3NBY2NvdW50SWQiOnsicyI6IjMwMjc3NjAxNjM5OCJ9LCJidWlsZElkIjp7InMiOiJidWlsZC01NWYxZTZmMS1jY2FlLTQ3YTctOWI5ZS1iYjFkYTQwMjEXAMPLE1 + +Repeat until the response doesn't include a ``NextToken`` value. + +For more information, see `Setting Up GameLift Fleets `__ in the *Amazon GameLift Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-fleet-capacity.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-fleet-capacity.rst new file mode 100755 index 000000000..0d8742108 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-fleet-capacity.rst @@ -0,0 +1,42 @@ +**To view capacity status for a list of fleets** + +The following ``describe-fleet-capacity`` example retrieves current capacity for two specified fleets. :: + + aws gamelift describe-fleet-capacity \ + --fleet-ids arn:aws:gamelift:us-west-2::fleet/fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222 + +Output:: + + { + "FleetCapacity": [ + { + "FleetId": "fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "InstanceType": "c5.large", + "InstanceCounts": { + "DESIRED": 10, + "MINIMUM": 1, + "MAXIMUM": 20, + "PENDING": 0, + "ACTIVE": 10, + "IDLE": 3, + "TERMINATING": 0 + } + }, + { + "FleetId": "fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "InstanceType": "c5.large", + "InstanceCounts": { + "DESIRED": 13, + "MINIMUM": 1, + "MAXIMUM": 20, + "PENDING": 0, + "ACTIVE": 15, + "IDLE": 2, + "TERMINATING": 2 + } + } + + ] + } + +For more information, see `GameLift Metrics for Fleets `__ in the *Amazon GameLift Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-fleet-events.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-fleet-events.rst new file mode 100755 index 000000000..0739cdc12 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-fleet-events.rst @@ -0,0 +1,55 @@ +**To request events for a specified time span** + +The following ``describe-fleet-events`` example displays details of all fleet-related events that occurred during the specified time span. :: + + aws gamelift describe-fleet-events \ + --fleet-id arn:aws:gamelift:us-west-2::fleet/fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ + --start-time 1579647600 \ + --end-time 1579649400 \ + --limit 5 + +Output:: + + { + "Events": [ + { + "EventId": "a37b6892-5d07-4d3b-8b47-80244ecf66b9", + "ResourceId": "fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "EventCode": "FLEET_STATE_ACTIVE", + "Message": "Fleet fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 changed state to ACTIVE", + "EventTime": 1579649342.191 + }, + { + "EventId": "67da4ec9-92a3-4d95-886a-5d6772c24063", + "ResourceId": "fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "EventCode": "FLEET_STATE_ACTIVATING", + "Message": "Fleet fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 changed state to ACTIVATING", + "EventTime": 1579649321.427 + }, + { + "EventId": "23813a46-a9e6-4a53-8847-f12e6a8381ac", + "ResourceId": "fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "EventCode": "FLEET_STATE_BUILDING", + "Message": "Fleet fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 changed state to BUILDING", + "EventTime": 1579649321.243 + }, + { + "EventId": "3bf217d0-1d44-42f9-9202-433ed475d2e8", + "ResourceId": "fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "EventCode": "FLEET_STATE_VALIDATING", + "Message": "Fleet fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 changed state to VALIDATING", + "EventTime": 1579649197.449 + }, + { + "EventId": "2ecd0130-5986-44eb-99a7-62df27741084", + "ResourceId": "fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "EventCode": "FLEET_VALIDATION_LAUNCH_PATH_NOT_FOUND", + "Message": "Failed to find a valid path", + "EventTime": 1569319075.839, + "PreSignedLogUrl": "https://gamelift-event-logs-prod-us-west-2.s3.us-west-2.amazonaws.com/logs/fleet-83422059-8329-42a2-a4d6-c4444386a6f8/events/2ecd0130-5986-44eb-99a7-62df27741084/FLEET_VALIDATION_LAUNCH_PATH_NOT_FOUND.txt?X-Amz-Security-Token=IQoJb3JpZ2luX2VjEB8aCXVzLXdlc3QtMiJHMEUCIHV5K%2FLPx8h310D%2FAvx0%2FZxsDy5XA3cJOwPdu3T0eBa%2FAiEA1yovokcZYy%2FV4CWW6l26aFyiSHO%2Bxz%2FBMAhEHYHMQNcqkQMImP%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw3NDEwNjE1OTIxNzEiDI8rsZtzLzlwEDQhXSrlAtl5Ae%2Fgo6FCIzqXPbXfBOnSvFYqeDlriZarEpKqKrUt8mXQv9iqHResqCph9AKo49lwgSYTT2QoSxnrD7%2FUgv%2BZm2pVuczvuKtUA0fcx6s0GxpjIAzdIE%2F5P%2FB7B9M%2BVZ%2F9KF82hbJi0HTE6Y7BjKsEgFCvk4UXILhfjtan9iQl8%2F21ZTurAcJbm7Y5tuLF9SWSK3%2BEa7VXOcCK4D4O1sMjmdRm0q0CKZ%2FIaXoHkNvg0RVTa0hIqdvpaDQlsSBNdqTXbjHTu6fETE9Y9Ky%2BiJK5KiUG%2F59GjCpDcvS1FqKeLUEmKT7wysGmvjMc2n%2Fr%2F9VxQfte7w9srXwlLAQuwhiXAAyI5ICMZ5JvzjzQwTqD4CHTVKUUDwL%2BRZzbuuqkJObZml02CkRGp%2B74RTAzLbWptVqZTIfzctiCTmWxb%2FmKyELRYsVLrwNJ%2BGJ7%2BCrN0RC%2FjlgfLYIZyeAqjPgAu5HjgX%2BM7jCo9M7wBTrnAXKOFQuf9dvA84SuwXOJFp17LYGjrHMKv0qC3GfbTMrZ6kzeNV9awKCpXB2Gnx9z2KvIlJdqirWVpvHVGwKCmJBCesDzjJHrae3neogI1uW%2F9C6%2B4jIZPME3jXmZcEHqqw5uvAVF7aeIavtUZU8pxpDIWT0YE4p3Kriy2AA7ziCRKtVfjV839InyLk8LUjsioWK2qlpg2HXKFLpAXw1QsQyxYmFMB9sGKOUlbL7Jdkk%2BYUq8%2FDTlLxqj1S%2FiO4TI0Wo7ilAo%2FKKWWF4guuNDexj8EOOynSp1yImB%2BZf2Fua3O44W4eEXAMPLE33333&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20170621T231808Z&X-Amz-SignedHeaders=host&X-Amz-Expires=900&X-Amz-Credential=AKIAIOSFODNN7EXAMPLE%2F20170621%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Signature=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" + } + ], + "NextToken": "eyJhd3NBY2NvdW50SWQiOnsicyI6IjMwMjc3NjAxNjM5OCJ9LCJidWlsZElkIjp7InMiOiJidWlsZC01NWYxZTZmMS1jY2FlLTQ3YTctOWI5ZS1iYjFkYTQwMjEXAMPLE2" + } + +For more information, see `Debug GameLift Fleet Issues `__ in the *Amazon GameLift Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-fleet-port-settings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-fleet-port-settings.rst new file mode 100755 index 000000000..b7f2b1278 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-fleet-port-settings.rst @@ -0,0 +1,27 @@ +**To view inbound connection permissions for a fleet** + +The following ``describe-fleet-port-settings`` example retrieves connection settings for a specified fleet. :: + + aws gamelift describe-fleet-port-settings \ + --fleet-id arn:aws:gamelift:us-west-2::fleet/fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "InboundPermissions": [ + { + "FromPort": 33400, + "ToPort": 33500, + "IpRange": "0.0.0.0/0", + "Protocol": "UDP" + }, + { + "FromPort": 1900, + "ToPort": 2000, + "IpRange": "0.0.0.0/0", + "Protocol": "TCP" + } + ] + } + +For more information, see `Setting Up GameLift Fleets `__ in the *Amazon GameLift Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-fleet-utilization.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-fleet-utilization.rst new file mode 100755 index 000000000..a71839bc1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-fleet-utilization.rst @@ -0,0 +1,61 @@ +**Example1: To view usage data for a list of fleets** + +The following ``describe-fleet-utilization`` example retrieves current usage information for one specified fleet. :: + + aws gamelift describe-fleet-utilization \ + --fleet-ids arn:aws:gamelift:us-west-2::fleet/fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "FleetUtilization": [ + { + "FleetId": "fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "ActiveServerProcessCount": 100, + "ActiveGameSessionCount": 62, + "CurrentPlayerSessionCount": 329, + "MaximumPlayerSessionCount": 1000 + } + ] + } + +**Example2: To request usage data for all fleets** + +The following ``describe-fleet-utilization`` returns fleet usage data for all fleets with any status. This example uses pagination parameters to return data for two fleets at a time. :: + + aws gamelift describe-fleet-utilization \ + --limit 2 + +Output:: + + { + "FleetUtilization": [ + { + "FleetId": "fleet-1111aaaa-22bb-33cc-44dd-5555eeee66ff", + "ActiveServerProcessCount": 100, + "ActiveGameSessionCount": 13, + "CurrentPlayerSessionCount": 98, + "MaximumPlayerSessionCount": 1000 + }, + { + "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa", + "ActiveServerProcessCount": 100, + "ActiveGameSessionCount": 62, + "CurrentPlayerSessionCount": 329, + "MaximumPlayerSessionCount": 1000 + } + ], + "NextToken": "eyJhd3NBY2NvdW50SWQiOnsicyI6IjMwMjc3NjAxNjM5OCJ9LCJidWlsZElkIjp7InMiOiJidWlsZC01NWYxZTZmMS1jY2FlLTQ3YTctOWI5ZS1iYjFkYTQwMjEXAMPLE2" + } + +Call the command a second time, passing the ``NextToken`` value as the argument to the ``--next-token`` parameter to see the next two results. :: + + aws gamelift describe-fleet-utilization \ + --limit 2 \ + --next-token eyJhd3NBY2NvdW50SWQiOnsicyI6IjMwMjc3NjAxNjM5OCJ9LCJidWlsZElkIjp7InMiOiJidWlsZC01NWYxZTZmMS1jY2FlLTQ3YTctOWI5ZS1iYjFkYTQwMjEXAMPLE2 + +Repeat until the response no longer includes a ``NextToken`` value in the output. + +For more information, see `GameLift Metrics for Fleets `__ in the *Amazon GameLift Developer Guide*. + + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-game-session-queues.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-game-session-queues.rst new file mode 100755 index 000000000..793fb8e3c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-game-session-queues.rst @@ -0,0 +1,49 @@ +**To view game session queues** + +The following ``describe-game-session-queues`` example retrieves properties for two specified queues. :: + + aws gamelift describe-game-session-queues \ + --names MegaFrogRace-NA MegaFrogRace-EU + +Output:: + + { + "GameSessionQueues": [{ + "Destinations": [{ + "DestinationArn": "arn:aws:gamelift:us-west-2::fleet/fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + }, + { + "DestinationArn": "arn:aws:gamelift:us-west-2::fleet/fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" + } + ], + "Name": "MegaFrogRace-NA", + "TimeoutInSeconds": 600, + "GameSessionQueueArn": "arn:aws:gamelift:us-west-2::gamesessionqueue/MegaFrogRace-NA", + "PlayerLatencyPolicies": [{ + "MaximumIndividualPlayerLatencyMilliseconds": 200 + }, + { + "MaximumIndividualPlayerLatencyMilliseconds": 100, + "PolicyDurationSeconds": 60 + } + ], + "FilterConfiguration": { + "AllowedLocations": ["us-west-2", "ap-south-1", "us-east-1"] + }, + "PriorityConfiguration": { + "PriorityOrder": ["LOCATION", "FLEET_TYPE", "DESTINATION"], + "LocationOrder": ["us-west-2", "ap-south-1", "us-east-1"] + } + }, + { + "Destinations": [{ + "DestinationArn": "arn:aws:gamelift:eu-west-3::fleet/fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" + }], + "Name": "MegaFrogRace-EU", + "TimeoutInSeconds": 600, + "GameSessionQueueArn": "arn:aws:gamelift:us-west-2::gamesessionqueue/MegaFrogRace-EU" + } + ] + } + +For more information, see `Using Multi-Region Queues `__ in the *Amazon GameLift Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-runtime-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-runtime-configuration.rst new file mode 100755 index 000000000..0a6676e01 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/describe-runtime-configuration.rst @@ -0,0 +1,29 @@ +**To request the runtime configuration for a fleet** + +The following ``describe-runtime-configuration`` example retrieves details about the current runtime configuration for a specified fleet. :: + + aws gamelift describe-runtime-configuration \ + --fleet-id fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "RuntimeConfiguration": { + "ServerProcesses": [ + { + "LaunchPath": "C:\game\Bin64.Release.Dedicated\MegaFrogRace_Server.exe", + "Parameters": "+gamelift_start_server", + "ConcurrentExecutions": 3 + }, + { + "LaunchPath": "C:\game\Bin64.Release.Dedicated\MegaFrogRace_Server.exe", + "Parameters": "+gamelift_start_server +debug", + "ConcurrentExecutions": 1 + } + ], + "MaxConcurrentGameSessionActivations": 2147483647, + "GameSessionActivationTimeoutSeconds": 300 + } + } + +For more information, see `Run Multiple Processes on a Fleet `__ in the *Amazon GameLift Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/list-builds.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/list-builds.rst new file mode 100755 index 000000000..687656f61 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/list-builds.rst @@ -0,0 +1,67 @@ +**Example1: To get a list of custom game builds** + +The following ``list-builds`` example retrieves properties for all game server builds in the current Region. The sample request illustrates how to use the pagination parameters, ``Limit`` and ``NextToken``, to retrieve the results in sequential sets. The first command retrieves the first two builds. Because there are more than two available, the response includes a ``NextToken`` to indicate that more results are available. :: + + aws gamelift list-builds \ + --limit 2 + +Output:: + + { + "Builds": [ + { + "BuildArn": "arn:aws:gamelift:us-west-2::build/build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "BuildId": "build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "CreationTime": 1495664528.723, + "Name": "My_Game_Server_Build_One", + "OperatingSystem": "WINDOWS_2012", + "SizeOnDisk": 8567781, + "Status": "READY", + "Version": "12345.678" + }, + { + "BuildArn": "arn:aws:gamelift:us-west-2::build/build-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "BuildId": "build-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "CreationTime": 1495528748.555, + "Name": "My_Game_Server_Build_Two", + "OperatingSystem": "AMAZON_LINUX_2", + "SizeOnDisk": 8567781, + "Status": "FAILED", + "Version": "23456.789" + } + ], + "NextToken": "eyJhd3NBY2NvdW50SWQiOnsicyI6IjMwMjc3NjAxNjM5OCJ9LCJidWlsZElkIjp7InMiOiJidWlsZC01NWYxZTZmMS1jY2FlLTQ3YTctOWI5ZS1iYjFkYTQwMjJEXAMPLE=" + } + +You can then call the command again with the ``--next-token`` parameter as follows to see the next two builds. :: + + aws gamelift list-builds \ + --limit 2 + --next-token eyJhd3NBY2NvdW50SWQiOnsicyI6IjMwMjc3NjAxNjM5OCJ9LCJidWlsZElkIjp7InMiOiJidWlsZC01NWYxZTZmMS1jY2FlLTQ3YTctOWI5ZS1iYjFkYTQwMjJEXAMPLE= + +Repeat until the response doesn't include a ``NextToken`` value. + +**Example2: To get a list of custom game builds in failure status** + +The following ``list-builds`` example retrieves properties for all game server builds in the current region that currently have status FAILED. :: + + aws gamelift list-builds \ + --status FAILED + +Output:: + + { + "Builds": [ + { + "BuildArn": "arn:aws:gamelift:us-west-2::build/build-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "BuildId": "build-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "CreationTime": 1495528748.555, + "Name": "My_Game_Server_Build_Two", + "OperatingSystem": "AMAZON_LINUX_2", + "SizeOnDisk": 8567781, + "Status": "FAILED", + "Version": "23456.789" + } + ] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/list-fleets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/list-fleets.rst new file mode 100755 index 000000000..2b3b0dd80 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/list-fleets.rst @@ -0,0 +1,39 @@ +**Example1: To get a list of all fleets in a Region** + +The following ``list-fleets`` example displays the fleet IDs of all fleets in the current Region. This example uses pagination parameters to retrieve two fleet IDs at a time. The response includes a ``next-token`` attribute, which indicates that there are more results to retrieve. :: + + aws gamelift list-fleets \ + --limit 2 + +Output:: + + { + "FleetIds": [ + "fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" + ], + "NextToken": "eyJhd3NBY2NvdW50SWQiOnsicyI6IjMwMjc3NjAxNjM5OCJ9LCJidWlsZElkIjp7InMiOiJidWlsZC01NWYxZTZmMS1jY2FlLTQ3YTctOWI5ZS1iYjFkYTQwMjJEXAMPLE=" + } + +You can pass the ``NextToken`` value from the previous response in the next command, as shown here to get the next two results. :: + + aws gamelift list-fleets \ + --limit 2 \ + --next-token eyJhd3NBY2NvdW50SWQiOnsicyI6IjMwMjc3NjAxNjM5OCJ9LCJidWlsZElkIjp7InMiOiJidWlsZC00NDRlZjQxZS1hM2I1LTQ2NDYtODJmMy0zYzI4ZTgxNjVjEXAMPLE= + +**Example2: To get a list of all fleets in a Region with a specific build or script** + +The following ``list-builds`` example retrieves the IDs of fleets that are deployed with the specified game build. If you're working with Realtime Servers, you can provide a script ID in place of a build ID. Because this example does not specify the limit parameter, the results can include up to 16 fleet IDs. :: + + aws gamelift list-fleets \ + --build-id build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "FleetIds": [ + "fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", + "fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE44444" + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/request-upload-credentials.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/request-upload-credentials.rst new file mode 100755 index 000000000..50f1a6e51 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/request-upload-credentials.rst @@ -0,0 +1,22 @@ +**To refresh access credentials for uploading a build** + +The following ``create-build`` example obtains new, valid access credentials for uploading a GameLift build file to an Amazon S3 location. Credentials have a limited life span. You get the build ID from the response to the original ``CreateBuild`` request. :: + + aws gamelift request-upload-credentials \ + --build-id build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "StorageLocation": { + "Bucket": "gamelift-builds-us-west-2", + "Key": "123456789012/build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + }, + "UploadCredentials": { + "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", + "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", + "SessionToken": "AgoGb3JpZ2luENz...EXAMPLETOKEN==" + } + } + +For more information, see `Upload a Custom Server Build to GameLift `__ in the *Amazon GameLift Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/start-fleet-actions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/start-fleet-actions.rst new file mode 100755 index 000000000..d51f3e9b0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/start-fleet-actions.rst @@ -0,0 +1,9 @@ +**To restart fleet automatic scaling activity** + +The following ``start-fleet-actions`` example resumes the use of all scaling policies that are defined for the specified fleet but were stopped by calling``stop-fleet-actions``. After starting, the scaling policies immediately begin tracking their respective metrics. :: + + aws gamelift start-fleet-actions \ + --fleet-id fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ + --actions AUTO_SCALING + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/stop-fleet-actions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/stop-fleet-actions.rst new file mode 100755 index 000000000..7deee6574 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/stop-fleet-actions.rst @@ -0,0 +1,10 @@ +**To stop a fleet's automatic scaling activity** + +The following ``stop-fleet-actions`` example stops the use of all scaling policies that are defined for the specified fleet. After the policies are suspended, fleet capacity remains at the same active instance count unless you adjust it manually. :: + + aws gamelift start-fleet-actions \ + --fleet-id fleet-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ + --actions AUTO_SCALING + +This command produces no output. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/update-build.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/update-build.rst new file mode 100755 index 000000000..64f5e870c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/update-build.rst @@ -0,0 +1,25 @@ +**To update a custom game build** + +The following ``update-build`` example changes the name and version information that is associated with a specified build resource. The returned build object verifies that the changes were made successfully. :: + + aws gamelift update-build \ + --build-id build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ + --name MegaFrogRaceServer.NA.east \ + --build-version 12345.east + +Output:: + + { + "Build": { + "BuildArn": "arn:aws:gamelift:us-west-2::build/build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "BuildId": "build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "CreationTime": 1496708916.18, + "Name": "MegaFrogRaceServer.NA.east", + "OperatingSystem": "AMAZON_LINUX_2", + "SizeOnDisk": 1304924, + "Status": "READY", + "Version": "12345.east" + } + } + +For more information, see `Update Your Build Files `__ in the *Amazon GameLift Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/update-game-session-queue.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/update-game-session-queue.rst new file mode 100755 index 000000000..34c254169 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/update-game-session-queue.rst @@ -0,0 +1,50 @@ +**To update a game session queue configuration** + +The following ``update-game-session-queue`` example adds a new destination and updates the player latency policies for an existing game session queue. :: + + aws gamelift update-game-session-queue \ + --name MegaFrogRace-NA \ + --destinations file://destinations.json \ + --player-latency-policies file://latency-policies.json + +Contents of ``destinations.json``:: + + { + "Destinations": [ + {"DestinationArn": "arn:aws:gamelift:us-west-2::fleet/fleet-1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"}, + {"DestinationArn": "arn:aws:gamelift:us-east-1::fleet/fleet-5c6d3c4d-5e6f-7a8b-9c0d-1e2f3a4b5a2b"}, + {"DestinationArn": "arn:aws:gamelift:us-east-1::alias/alias-11aa22bb-3c4d-5e6f-000a-1111aaaa22bb"} + ] + } + +Contents of ``latency-policies.json``:: + + { + "PlayerLatencyPolicies": [ + {"MaximumIndividualPlayerLatencyMilliseconds": 200}, + {"MaximumIndividualPlayerLatencyMilliseconds": 150, "PolicyDurationSeconds": 120}, + {"MaximumIndividualPlayerLatencyMilliseconds": 100, "PolicyDurationSeconds": 120} + ] + } + +Output:: + + { + "GameSessionQueue": { + "Destinations": [ + {"DestinationArn": "arn:aws:gamelift:us-west-2::fleet/fleet-1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"}, + {"DestinationArn": "arn:aws:gamelift:us-east-1::fleet/fleet-5c6d3c4d-5e6f-7a8b-9c0d-1e2f3a4b5a2b"}, + {"DestinationArn": "arn:aws:gamelift:us-east-1::alias/alias-11aa22bb-3c4d-5e6f-000a-1111aaaa22bb"} + ], + "GameSessionQueueArn": "arn:aws:gamelift:us-west-2:111122223333:gamesessionqueue/MegaFrogRace-NA", + "Name": "MegaFrogRace-NA", + "TimeoutInSeconds": 600, + "PlayerLatencyPolicies": [ + {"MaximumIndividualPlayerLatencyMilliseconds": 200}, + {"MaximumIndividualPlayerLatencyMilliseconds": 150, "PolicyDurationSeconds": 120}, + {"MaximumIndividualPlayerLatencyMilliseconds": 100, "PolicyDurationSeconds": 120} + ] + } + } + +For more information, see `Using Multi-Region Queues `__ in the *Amazon GameLift Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/upload-build.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/upload-build.rst new file mode 100755 index 000000000..20f043e71 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/gamelift/upload-build.rst @@ -0,0 +1,43 @@ +**Example1: To upload a Linux game server build** + +The following ``upload-build`` example uploads Linux game server build files from a file directory to the GameLift service and creates a build resource. :: + + aws gamelift upload-build \ + --name MegaFrogRaceServer.NA \ + --build-version 2.0.1 \ + --build-root ~/MegaFrogRace_Server/release-na \ + --operating-system AMAZON_LINUX_2 + --server-sdk-version 4.0.2 + +Output:: + + Uploading ~/MegaFrogRace_Server/release-na: 16.0 KiB / 74.6 KiB (21.45%) + Uploading ~/MegaFrogRace_Server/release-na: 32.0 KiB / 74.6 KiB (42.89%) + Uploading ~/MegaFrogRace_Server/release-na: 48.0 KiB / 74.6 KiB (64.34%) + Uploading ~/MegaFrogRace_Server/release-na: 64.0 KiB / 74.6 KiB (85.79%) + Uploading ~/MegaFrogRace_Server/release-na: 74.6 KiB / 74.6 KiB (100.00%) + Successfully uploaded ~/MegaFrogRace_Server/release-na to AWS GameLift + Build ID: build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +**Example2: To upload a Windows game server build** + +The following ``upload-build`` example uploads Windows game server build files from a directory to the GameLift service and creates a build record. :: + + aws gamelift upload-build \ + --name MegaFrogRaceServer.NA \ + --build-version 2.0.1 \ + --build-root C:\MegaFrogRace_Server\release-na \ + --operating-system WINDOWS_2012 + --server-sdk-version 4.0.2 + +Output:: + + Uploading C:\MegaFrogRace_Server\release-na: 16.0 KiB / 74.6 KiB (21.45%) + Uploading C:\MegaFrogRace_Server\release-na: 32.0 KiB / 74.6 KiB (42.89%) + Uploading C:\MegaFrogRace_Server\release-na: 48.0 KiB / 74.6 KiB (64.34%) + Uploading C:\MegaFrogRace_Server\release-na: 64.0 KiB / 74.6 KiB (85.79%) + Uploading C:\MegaFrogRace_Server\release-na: 74.6 KiB / 74.6 KiB (100.00%) + Successfully uploaded C:\MegaFrogRace_Server\release-na to AWS GameLift + Build ID: build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +For more information, see `Upload a Custom Server Build to GameLift `__ in the *Amazon GameLift Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/abort-multipart-upload.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/abort-multipart-upload.rst new file mode 100644 index 000000000..e3efd53d6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/abort-multipart-upload.rst @@ -0,0 +1,9 @@ +The following command deletes an in-progress multipart upload to a vault named ``my-vault``:: + + aws glacier abort-multipart-upload --account-id - --vault-name my-vault --upload-id 19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ + +This command does not produce any output. Amazon Glacier requires an account ID argument when performing operations, but you can use a hyphen to specify the in-use account. The upload ID is returned by the ``aws glacier initiate-multipart-upload`` command and can also be obtained by using ``aws glacier list-multipart-uploads``. + +For more information on multipart uploads to Amazon Glacier using the AWS CLI, see `Using Amazon Glacier`_ in the *AWS CLI User Guide*. + +.. _`Using Amazon Glacier`: http://docs.aws.amazon.com/cli/latest/userguide/cli-using-glacier.html \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/abort-vault-lock.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/abort-vault-lock.rst new file mode 100644 index 000000000..dbc1b8305 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/abort-vault-lock.rst @@ -0,0 +1,11 @@ +**To abort an in-progress vault lock process** + +The following ``abort-vault-lock`` example deletes a vault lock policy from the specified vault and resets the lock state of the vault lock to unlocked. :: + + aws glacier abort-vault-lock \ + --account-id - \ + --vault-name MyVaultName + +This command produces no output. + +For more information, see `Abort Vault Lock (DELETE lock-policy) `__ in the *Amazon Glacier API Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/add-tags-to-vault.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/add-tags-to-vault.rst new file mode 100644 index 000000000..569e25561 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/add-tags-to-vault.rst @@ -0,0 +1,5 @@ +The following command adds two tags to a vault named ``my-vault``:: + + aws glacier add-tags-to-vault --account-id - --vault-name my-vault --tags id=1234,date=july2015 + +Amazon Glacier requires an account ID argument when performing operations, but you can use a hyphen to specify the in-use account. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/complete-multipart-upload.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/complete-multipart-upload.rst new file mode 100644 index 000000000..9987f84a4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/complete-multipart-upload.rst @@ -0,0 +1,11 @@ +The following command completes multipart upload for a 3 MiB archive:: + + aws glacier complete-multipart-upload --archive-size 3145728 --checksum 9628195fcdbcbbe76cdde456d4646fa7de5f219fb39823836d81f0cc0e18aa67 --upload-id 19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ --account-id - --vault-name my-vault + +Amazon Glacier requires an account ID argument when performing operations, but you can use a hyphen to specify the in-use account. + +The upload ID is returned by the ``aws glacier initiate-multipart-upload`` command and can also be obtained by using ``aws glacier list-multipart-uploads``. The checksum parameter takes a SHA-256 tree hash of the archive in hexadecimal. + +For more information on multipart uploads to Amazon Glacier using the AWS CLI, including instructions on calculating a tree hash, see `Using Amazon Glacier`_ in the *AWS CLI User Guide*. + +.. _`Using Amazon Glacier`: http://docs.aws.amazon.com/cli/latest/userguide/cli-using-glacier.html \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/complete-vault-lock.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/complete-vault-lock.rst new file mode 100644 index 000000000..7e9e74417 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/complete-vault-lock.rst @@ -0,0 +1,12 @@ +**To complete an in-progress vault lock process** + +The following ``complete-vault-lock`` example completes the in-progress locking progress for the specified vault and sets the lock state of the vault lock to ``Locked``. You get the value for the ``lock-id`` parameter when you run ``initiate-lock-process``. :: + + aws glacier complete-vault-lock \ + --account-id - \ + --vault-name MyVaultName \ + --lock-id 9QZgEXAMPLEPhvL6xEXAMPLE + +This command produces no output. + +For more information, see `Complete Vault Lock (POST lockId) `__ in the *Amazon Glacier API Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/create-vault.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/create-vault.rst new file mode 100644 index 000000000..e5efa1916 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/create-vault.rst @@ -0,0 +1,5 @@ +The following command creates a new vault named ``my-vault``:: + + aws glacier create-vault --vault-name my-vault --account-id - + +Amazon Glacier requires an account ID argument when performing operations, but you can use a hyphen to specify the in-use account. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/delete-archive.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/delete-archive.rst new file mode 100644 index 000000000..b5d52790c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/delete-archive.rst @@ -0,0 +1,10 @@ +**To delete an archive from a vault** + +The following ``delete-archive`` example removes the specified archive from ``example_vault``. :: + + aws glacier delete-archive \ + --account-id 111122223333 \ + --vault-name example_vault \ + --archive-id Sc0u9ZP8yaWkmh-XGlIvAVprtLhaLCGnNwNl5I5x9HqPIkX5mjc0DrId3Ln-Gi_k2HzmlIDZUz117KSdVMdMXLuFWi9PJUitxWO73edQ43eTlMWkH0pd9zVSAuV_XXZBVhKhyGhJ7w + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/delete-vault-access-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/delete-vault-access-policy.rst new file mode 100644 index 000000000..54cee5e83 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/delete-vault-access-policy.rst @@ -0,0 +1,9 @@ +**To remove the access policy of a vault** + +The following ``delete-vault-access-policy`` example removes the access policy for the specified vault. :: + + aws glacier delete-vault-access-policy \ + --account-id 111122223333 \ + --vault-name example_vault + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/delete-vault-notifications.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/delete-vault-notifications.rst new file mode 100644 index 000000000..5f56cb9e9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/delete-vault-notifications.rst @@ -0,0 +1,9 @@ +**To remove the SNS notifications for a vault** + +The following ``delete-vault-notifications`` example removes notifications sent by Amazon Simple Notification Service (Amazon SNS) for the specified vault. :: + + aws glacier delete-vault-notifications \ + --account-id 111122223333 \ + --vault-name example_vault + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/delete-vault.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/delete-vault.rst new file mode 100644 index 000000000..1ba3cdb73 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/delete-vault.rst @@ -0,0 +1,5 @@ +The following command deletes a vault named ``my-vault``:: + + aws glacier delete-vault --vault-name my-vault --account-id - + +This command does not produce any output. Amazon Glacier requires an account ID argument when performing operations, but you can use a hyphen to specify the in-use account. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/describe-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/describe-job.rst new file mode 100644 index 000000000..d46a4d84f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/describe-job.rst @@ -0,0 +1,20 @@ +The following command retrieves information about an inventory retrieval job on a vault named ``my-vault``:: + + aws glacier describe-job --account-id - --vault-name my-vault --job-id zbxcm3Z_3z5UkoroF7SuZKrxgGoDc3RloGduS7Eg-RO47Yc6FxsdGBgf_Q2DK5Ejh18CnTS5XW4_XqlNHS61dsO4CnMW + +Output:: + + { + "InventoryRetrievalParameters": { + "Format": "JSON" + }, + "VaultARN": "arn:aws:glacier:us-west-2:0123456789012:vaults/my-vault", + "Completed": false, + "JobId": "zbxcm3Z_3z5UkoroF7SuZKrxgGoDc3RloGduS7Eg-RO47Yc6FxsdGBgf_Q2DK5Ejh18CnTS5XW4_XqlNHS61dsO4CnMW", + "Action": "InventoryRetrieval", + "CreationDate": "2015-07-17T20:23:41.616Z", + "StatusCode": "InProgress" + } + +The job ID can be found in the output of ``aws glacier initiate-job`` and ``aws glacier list-jobs``. +Amazon Glacier requires an account ID argument when performing operations, but you can use a hyphen to specify the in-use account. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/describe-vault.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/describe-vault.rst new file mode 100644 index 000000000..8181d7ec6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/describe-vault.rst @@ -0,0 +1,5 @@ +The following command retrieves data about a vault named ``my-vault``:: + + aws glacier describe-vault --vault-name my-vault --account-id - + +Amazon Glacier requires an account ID argument when performing operations, but you can use a hyphen to specify the in-use account. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/get-data-retrieval-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/get-data-retrieval-policy.rst new file mode 100644 index 000000000..03c902236 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/get-data-retrieval-policy.rst @@ -0,0 +1,18 @@ +The following command gets the data retrieval policy for the in-use account:: + + aws glacier get-data-retrieval-policy --account-id - + +Output:: + + { + "Policy": { + "Rules": [ + { + "BytesPerHour": 10737418240, + "Strategy": "BytesPerHour" + } + ] + } + } + +Amazon Glacier requires an account ID argument when performing operations, but you can use a hyphen to specify the in-use account. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/get-job-output.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/get-job-output.rst new file mode 100644 index 000000000..67b29b3fe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/get-job-output.rst @@ -0,0 +1,17 @@ +The following command saves the output from a vault inventory job to a file in the current directory named ``output.json``:: + + aws glacier get-job-output --account-id - --vault-name my-vault --job-id zbxcm3Z_3z5UkoroF7SuZKrxgGoDc3RloGduS7Eg-RO47Yc6FxsdGBgf_Q2DK5Ejh18CnTS5XW4_XqlNHS61dsO4CnMW output.json + +The ``job-id`` is available in the output of ``aws glacier list-jobs``. Note that the output file name is a positional argument that is not prefixed by an option name. Amazon Glacier requires an account ID argument when performing operations, but you can use a hyphen to specify the in-use account. + +Output:: + + { + "status": 200, + "acceptRanges": "bytes", + "contentType": "application/json" + } + +``output.json``:: + + {"VaultARN":"arn:aws:glacier:us-west-2:0123456789012:vaults/my-vault","InventoryDate":"2015-04-07T00:26:18Z","ArchiveList":[{"ArchiveId":"kKB7ymWJVpPSwhGP6ycSOAekp9ZYe_--zM_mw6k76ZFGEIWQX-ybtRDvc2VkPSDtfKmQrj0IRQLSGsNuDp-AJVlu2ccmDSyDUmZwKbwbpAdGATGDiB3hHO0bjbGehXTcApVud_wyDw","ArchiveDescription":"multipart upload test","CreationDate":"2015-04-06T22:24:34Z","Size":3145728,"SHA256TreeHash":"9628195fcdbcbbe76cdde932d4646fa7de5f219fb39823836d81f0cc0e18aa67"}]} \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/get-vault-access-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/get-vault-access-policy.rst new file mode 100644 index 000000000..b9d31df73 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/get-vault-access-policy.rst @@ -0,0 +1,15 @@ +**To retrieve the access policy of a vault** + +The following ``get-vault-access-policy`` example retrieves the access policy for the specified vault. :: + + aws glacier get-vault-access-policy \ + --account-id 111122223333 \ + --vault-name example_vault + +Output:: + + { + "policy": { + "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::444455556666:root\"},\"Action\":\"glacier:ListJobs\",\"Resource\":\"arn:aws:glacier:us-east-1:111122223333:vaults/example_vault\"},{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::444455556666:root\"},\"Action\":\"glacier:UploadArchive\",\"Resource\":\"arn:aws:glacier:us-east-1:111122223333:vaults/example_vault\"}]}" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/get-vault-lock.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/get-vault-lock.rst new file mode 100644 index 000000000..a86addc8a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/get-vault-lock.rst @@ -0,0 +1,17 @@ +**To get the details of a vault lock** + +The following ``get-vault-lock`` example retrieved the details about the lock for the specified vault. :: + + aws glacier get-vault-lock \ + --account-id - \ + --vault-name MyVaultName + +Output:: + + { + "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Define-vault-lock\",\"Effect\":\"Deny\",\"Principal\":{\"AWS\":\"arn:aws:iam::999999999999:root\"},\"Action\":\"glacier:DeleteArchive\",\"Resource\":\"arn:aws:glacier:us-west-2:99999999999:vaults/MyVaultName\",\"Condition\":{\"NumericLessThanEquals\":{\"glacier:ArchiveAgeinDays\":\"365\"}}}]}", + "State": "Locked", + "CreationDate": "2019-07-29T22:25:28.640Z" + } + +For more information, see `Get Vault Lock (GET lock-policy) `__ in the *Amazon Glacier API Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/get-vault-notifications.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/get-vault-notifications.rst new file mode 100644 index 000000000..6808d3fc1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/get-vault-notifications.rst @@ -0,0 +1,17 @@ +The following command gets a description of the notification configuration for a vault named ``my-vault``:: + + aws glacier get-vault-notifications --account-id - --vault-name my-vault + +Output:: + + { + "vaultNotificationConfig": { + "Events": [ + "InventoryRetrievalCompleted", + "ArchiveRetrievalCompleted" + ], + "SNSTopic": "arn:aws:sns:us-west-2:0123456789012:my-vault" + } + } + +If no notifications have been configured for the vault, an error is returned. Amazon Glacier requires an account ID argument when performing operations, but you can use a hyphen to specify the in-use account. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/initiate-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/initiate-job.rst new file mode 100644 index 000000000..711c1cfa0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/initiate-job.rst @@ -0,0 +1,38 @@ +The following command initiates a job to get an inventory of the vault ``my-vault``:: + + aws glacier initiate-job --account-id - --vault-name my-vault --job-parameters '{"Type": "inventory-retrieval"}' + +Output:: + + { + "location": "/0123456789012/vaults/my-vault/jobs/zbxcm3Z_3z5UkoroF7SuZKrxgGoDc3RloGduS7Eg-RO47Yc6FxsdGBgf_Q2DK5Ejh18CnTS5XW4_XqlNHS61dsO4CnMW", + "jobId": "zbxcm3Z_3z5UkoroF7SuZKrxgGoDc3RloGduS7Eg-RO47Yc6FxsdGBgf_Q2DK5Ejh18CnTS5XW4_XqlNHS61dsO4CnMW" + } + +Amazon Glacier requires an account ID argument when performing operations, but you can use a hyphen to specify the in-use account. + +The following command initiates a job to retrieve an archive from the vault ``my-vault``:: + + aws glacier initiate-job --account-id - --vault-name my-vault --job-parameters file://job-archive-retrieval.json + +``job-archive-retrieval.json`` is a JSON file in the local folder that specifies the type of job, archive ID, and some optional parameters:: + + { + "Type": "archive-retrieval", + "ArchiveId": "kKB7ymWJVpPSwhGP6ycSOAekp9ZYe_--zM_mw6k76ZFGEIWQX-ybtRDvc2VkPSDtfKmQrj0IRQLSGsNuDp-AJVlu2ccmDSyDUmZwKbwbpAdGATGDiB3hHO0bjbGehXTcApVud_wyDw", + "Description": "Retrieve archive on 2015-07-17", + "SNSTopic": "arn:aws:sns:us-west-2:0123456789012:my-topic" + } + +Archive IDs are available in the output of ``aws glacier upload-archive`` and ``aws glacier get-job-output``. + +Output:: + + { + "location": "/011685312445/vaults/mwunderl/jobs/l7IL5-EkXyEY9Ws95fClzIbk2O5uLYaFdAYOi-azsX_Z8V6NH4yERHzars8wTKYQMX6nBDI9cMNHzyZJO59-8N9aHWav", + "jobId": "l7IL5-EkXy2O5uLYaFdAYOiEY9Ws95fClzIbk-azsX_Z8V6NH4yERHzars8wTKYQMX6nBDI9cMNHzyZJO59-8N9aHWav" + } + +See `Initiate Job`_ in the *Amazon Glacier API Reference* for details on the job parameters format. + +.. _`Initiate Job`: http://docs.aws.amazon.com/amazonglacier/latest/dev/api-initiate-job-post.html \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/initiate-multipart-upload.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/initiate-multipart-upload.rst new file mode 100644 index 000000000..b2fd8feb1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/initiate-multipart-upload.rst @@ -0,0 +1,9 @@ +The following command initiates a multipart upload to a vault named ``my-vault`` with a part size of 1 MiB (1024 x 1024 bytes) per file:: + + aws glacier initiate-multipart-upload --account-id - --part-size 1048576 --vault-name my-vault --archive-description "multipart upload test" + +The archive description parameter is optional. Amazon Glacier requires an account ID argument when performing operations, but you can use a hyphen to specify the in-use account. + +This command outputs an upload ID when successful. Use the upload ID when uploading each part of your archive with ``aws glacier upload-multipart-part``. For more information on multipart uploads to Amazon Glacier using the AWS CLI, see `Using Amazon Glacier`_ in the *AWS CLI User Guide*. + +.. _`Using Amazon Glacier`: http://docs.aws.amazon.com/cli/latest/userguide/cli-using-glacier.html \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/initiate-vault-lock.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/initiate-vault-lock.rst new file mode 100644 index 000000000..24333e645 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/initiate-vault-lock.rst @@ -0,0 +1,20 @@ +**To initiate the vault locking process** + +The following ``initiate-vault-lock`` example installs a vault lock policy on the specified vault and sets the lock state of the vault lock to ``InProgress``. You must complete the process by calling ``complete-vault-lock`` within 24 hours to set the state of the vault lock to ``Locked``. :: + + aws glacier initiate-vault-lock \ + --account-id - \ + --vault-name MyVaultName \ + --policy file://vault_lock_policy.json + +Contents of ``vault_lock_policy.json``:: + + {"Policy":"{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Define-vault-lock\",\"Effect\":\"Deny\",\"Principal\":{\"AWS\":\"arn:aws:iam::999999999999:root\"},\"Action\":\"glacier:DeleteArchive\",\"Resource\":\"arn:aws:glacier:us-west-2:999999999999:vaults/examplevault\",\"Condition\":{\"NumericLessThanEquals\":{\"glacier:ArchiveAgeinDays\":\"365\"}}}]}"} + +The output is the vault lock ID that you can use to complete the vault lock process. :: + + { + "lockId": "9QZgEXAMPLEPhvL6xEXAMPLE" + } + +For more information, see `Initiate Vault Lock (POST lock-policy) `__ in the *Amazon Glacier API Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/list-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/list-jobs.rst new file mode 100644 index 000000000..6ff977721 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/list-jobs.rst @@ -0,0 +1,38 @@ +The following command lists in-progress and recently completed jobs for a vault named ``my-vault``:: + + aws glacier list-jobs --account-id - --vault-name my-vault + +Output:: + + { + "JobList": [ + { + "VaultARN": "arn:aws:glacier:us-west-2:0123456789012:vaults/my-vault", + "RetrievalByteRange": "0-3145727", + "SNSTopic": "arn:aws:sns:us-west-2:0123456789012:my-vault", + "Completed": false, + "SHA256TreeHash": "9628195fcdbcbbe76cdde932d4646fa7de5f219fb39823836d81f0cc0e18aa67", + "JobId": "l7IL5-EkXyEY9Ws95fClzIbk2O5uLYaFdAYOi-azsX_Z8V6NH4yERHzars8wTKYQMX6nBDI9cMNHzyZJO59-8N9aHWav", + "ArchiveId": "kKB7ymWJVpPSwhGP6ycSOAekp9ZYe_--zM_mw6k76ZFGEIWQX-ybtRDvc2VkPSDtfKmQrj0IRQLSGsNuDp-AJVlu2ccmDSyDUmZwKbwbpAdGATGDiB3hHO0bjbGehXTcApVud_wyDw", + "JobDescription": "Retrieve archive on 2015-07-17", + "ArchiveSizeInBytes": 3145728, + "Action": "ArchiveRetrieval", + "ArchiveSHA256TreeHash": "9628195fcdbcbbe76cdde932d4646fa7de5f219fb39823836d81f0cc0e18aa67", + "CreationDate": "2015-07-17T21:16:13.840Z", + "StatusCode": "InProgress" + }, + { + "InventoryRetrievalParameters": { + "Format": "JSON" + }, + "VaultARN": "arn:aws:glacier:us-west-2:0123456789012:vaults/my-vault", + "Completed": false, + "JobId": "zbxcm3Z_3z5UkoroF7SuZKrxgGoDc3RloGduS7Eg-RO47Yc6FxsdGBgf_Q2DK5Ejh18CnTS5XW4_XqlNHS61dsO4CnMW", + "Action": "InventoryRetrieval", + "CreationDate": "2015-07-17T20:23:41.616Z", + "StatusCode": ""InProgress"" + } + ] + } + +Amazon Glacier requires an account ID argument when performing operations, but you can use a hyphen to specify the in-use account. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/list-multipart-uploads.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/list-multipart-uploads.rst new file mode 100644 index 000000000..c868b86a7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/list-multipart-uploads.rst @@ -0,0 +1,9 @@ +The following command shows all of the in-progress multipart uploads for a vault named ``my-vault``:: + + aws glacier list-multipart-uploads --account-id - --vault-name my-vault + +Amazon Glacier requires an account ID argument when performing operations, but you can use a hyphen to specify the in-use account. + +For more information on multipart uploads to Amazon Glacier using the AWS CLI, see `Using Amazon Glacier`_ in the *AWS CLI User Guide*. + +.. _`Using Amazon Glacier`: http://docs.aws.amazon.com/cli/latest/userguide/cli-using-glacier.html \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/list-parts.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/list-parts.rst new file mode 100644 index 000000000..875fdcf1b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/list-parts.rst @@ -0,0 +1,28 @@ +The following command lists the uploaded parts for a multipart upload to a vault named ``my-vault``:: + + aws glacier list-parts --account-id - --vault-name my-vault --upload-id "SYZi7qnL-YGqGwAm8Kn3BLP2ElNCvnB-5961R09CSaPmPwkYGHOqeN_nX3-Vhnd2yF0KfB5FkmbnBU9GubbdrCs8ut-D" + +Output:: + + { + "MultipartUploadId": "SYZi7qnL-YGqGwAm8Kn3BLP2ElNCvnB-5961R09CSaPmPwkYGHOqeN_nX3-Vhnd2yF0KfB5FkmbnBU9GubbdrCs8ut-D", + "Parts": [ + { + "RangeInBytes": "0-1048575", + "SHA256TreeHash": "e1f2a7cd6e047350f69b9f8cfa60fa606fe2f02802097a9a026360a7edc1f553" + }, + { + "RangeInBytes": "1048576-2097151", + "SHA256TreeHash": "43cf3061fb95796aed99a11a6aa3cd8f839eed15e655ab0a597126210636aee6" + } + ], + "VaultARN": "arn:aws:glacier:us-west-2:0123456789012:vaults/my-vault", + "CreationDate": "2015-07-18T00:05:23.830Z", + "PartSizeInBytes": 1048576 + } + +Amazon Glacier requires an account ID argument when performing operations, but you can use a hyphen to specify the in-use account. + +For more information on multipart uploads to Amazon Glacier using the AWS CLI, see `Using Amazon Glacier`_ in the *AWS CLI User Guide*. + +.. _`Using Amazon Glacier`: http://docs.aws.amazon.com/cli/latest/userguide/cli-using-glacier.html \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/list-provisioned-capacity.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/list-provisioned-capacity.rst new file mode 100644 index 000000000..f1e4bac8d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/list-provisioned-capacity.rst @@ -0,0 +1,18 @@ +**To retrieve the provisioned capacity units** + +The following ``list-provisioned-capacity`` example retrieves details for any provisioned capacity units for the specified account. :: + + aws glacier list-provisioned-capacity \ + --account-id 111122223333 + +Output:: + + { + "ProvisionedCapacityList": [ + { + "CapacityId": "HpASAuvfRFiVDbOjMfEIcr8K", + "ExpirationDate": "2020-03-18T19:59:24.000Z", + "StartDate": "2020-02-18T19:59:24.912Z" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/list-tags-for-vault.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/list-tags-for-vault.rst new file mode 100644 index 000000000..f884418b6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/list-tags-for-vault.rst @@ -0,0 +1,14 @@ +The following command lists the tags applied to a vault named ``my-vault``:: + + aws glacier list-tags-for-vault --account-id - --vault-name my-vault + +Output:: + + { + "Tags": { + "date": "july2015", + "id": "1234" + } + } + +Amazon Glacier requires an account ID argument when performing operations, but you can use a hyphen to specify the in-use account. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/list-vaults.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/list-vaults.rst new file mode 100644 index 000000000..8ec78fcf1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/list-vaults.rst @@ -0,0 +1,20 @@ +The following command lists the vaults in the default account and region:: + + aws glacier list-vaults --account-id - + +Output:: + + { + "VaultList": [ + { + "SizeInBytes": 3178496, + "VaultARN": "arn:aws:glacier:us-west-2:0123456789012:vaults/my-vault", + "LastInventoryDate": "2015-04-07T00:26:19.028Z", + "VaultName": "my-vault", + "NumberOfArchives": 1, + "CreationDate": "2015-04-06T21:23:45.708Z" + } + ] + } + +Amazon Glacier requires an account ID argument when performing operations, but you can use a hyphen to specify the in-use account. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/purchase-provisioned-capacity.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/purchase-provisioned-capacity.rst new file mode 100644 index 000000000..5d27095e4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/purchase-provisioned-capacity.rst @@ -0,0 +1,12 @@ +**To purchase a provisioned capacity unit** + +The following ``purchase-provisioned-capacity`` example purchases a provisioned capacity unit. :: + + aws glacier purchase-provisioned-capacity \ + --account-id 111122223333 + +Output:: + + { + "capacityId": "HpASAuvfRFiVDbOjMfEIcr8K" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/remove-tags-from-vault.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/remove-tags-from-vault.rst new file mode 100644 index 000000000..78a60a4e6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/remove-tags-from-vault.rst @@ -0,0 +1,5 @@ +The following command removes a tag with the key ``date`` from a vault named ``my-vault``:: + + aws glacier remove-tags-from-vault --account-id - --vault-name my-vault --tag-keys date + +Amazon Glacier requires an account ID argument when performing operations, but you can use a hyphen to specify the in-use account. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/set-data-retrieval-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/set-data-retrieval-policy.rst new file mode 100644 index 000000000..522ca5c6a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/set-data-retrieval-policy.rst @@ -0,0 +1,24 @@ +The following command configures a data retrieval policy for the in-use account:: + + aws glacier set-data-retrieval-policy --account-id - --policy file://data-retrieval-policy.json + +``data-retrieval-policy.json`` is a JSON file in the current folder that specifies a data retrieval policy:: + + { + "Rules":[ + { + "Strategy":"BytesPerHour", + "BytesPerHour":10737418240 + } + ] + } + +Amazon Glacier requires an account ID argument when performing operations, but you can use a hyphen to specify the in-use account. + +The following command sets the data retrieval policy to ``FreeTier`` using inline JSON:: + + aws glacier set-data-retrieval-policy --account-id - --policy '{"Rules":[{"Strategy":"FreeTier"}]}' + +See `Set Data Retrieval Policy`_ in the *Amazon Glacier API Reference* for details on the policy format. + +.. _`Set Data Retrieval Policy`: http://docs.aws.amazon.com/amazonglacier/latest/dev/api-SetDataRetrievalPolicy.html diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/set-vault-access-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/set-vault-access-policy.rst new file mode 100644 index 000000000..4c8d9d3d1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/set-vault-access-policy.rst @@ -0,0 +1,10 @@ +**To set the access policy of a vault** + +The following ``set-vault-access-policy`` example attaches a permission policy to the specified vault. :: + + aws glacier set-vault-access-policy \ + --account-id 111122223333 \ + --vault-name example_vault + --policy '{"Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::444455556666:root\"},\"Action\":\"glacier:ListJobs\",\"Resource\":\"arn:aws:glacier:us-east-1:111122223333:vaults/example_vault\"},{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::444455556666:root\"},\"Action\":\"glacier:UploadArchive\",\"Resource\":\"arn:aws:glacier:us-east-1:111122223333:vaults/example_vault\"}]}"}' + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/set-vault-notifications.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/set-vault-notifications.rst new file mode 100644 index 000000000..7b09972fe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/set-vault-notifications.rst @@ -0,0 +1,12 @@ +The following command configures SNS notifications for a vault named ``my-vault``:: + + aws glacier set-vault-notifications --account-id - --vault-name my-vault --vault-notification-config file://notificationconfig.json + +``notificationconfig.json`` is a JSON file in the current folder that specifies an SNS topic and the events to publish:: + + { + "SNSTopic": "arn:aws:sns:us-west-2:0123456789012:my-vault", + "Events": ["ArchiveRetrievalCompleted", "InventoryRetrievalCompleted"] + } + +Amazon Glacier requires an account ID argument when performing operations, but you can use a hyphen to specify the in-use account. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/upload-archive.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/upload-archive.rst new file mode 100644 index 000000000..4bc1e7042 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/upload-archive.rst @@ -0,0 +1,17 @@ +The following command uploads an archive in the current folder named ``archive.zip`` to a vault named ``my-vault``:: + + aws glacier upload-archive --account-id - --vault-name my-vault --body archive.zip + +Output:: + + { + "archiveId": "kKB7ymWJVpPSwhGP6ycSOAekp9ZYe_--zM_mw6k76ZFGEIWQX-ybtRDvc2VkPSDtfKmQrj0IRQLSGsNuDp-AJVlu2ccmDSyDUmZwKbwbpAdGATGDiB3hHO0bjbGehXTcApVud_wyDw", + "checksum": "969fb39823836d81f0cc028195fcdbcbbe76cdde932d4646fa7de5f21e18aa67", + "location": "/0123456789012/vaults/my-vault/archives/kKB7ymWJVpPSwhGP6ycSOAekp9ZYe_--zM_mw6k76ZFGEIWQX-ybtRDvc2VkPSDtfKmQrj0IRQLSGsNuDp-AJVlu2ccmDSyDUmZwKbwbpAdGATGDiB3hHO0bjbGehXTcApVud_wyDw" + } + +Amazon Glacier requires an account ID argument when performing operations, but you can use a hyphen to specify the in-use account. + +To retrieve an uploaded archive, initiate a retrieval job with the `aws glacier initiate-job`_ command. + +.. _`aws glacier initiate-job`: http://docs.aws.amazon.com/cli/latest/reference/glacier/initiate-job.html \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/upload-multipart-part.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/upload-multipart-part.rst new file mode 100644 index 000000000..1748e582a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/upload-multipart-part.rst @@ -0,0 +1,11 @@ +The following command uploads the first 1 MiB (1024 x 1024 bytes) part of an archive:: + + aws glacier upload-multipart-part --body part1 --range 'bytes 0-1048575/*' --account-id - --vault-name my-vault --upload-id 19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ + +Amazon Glacier requires an account ID argument when performing operations, but you can use a hyphen to specify the in-use account. + +The body parameter takes a path to a part file on the local filesystem. The range parameter takes an HTTP content range indicating the bytes that the part occupies in the completed archive. The upload ID is returned by the ``aws glacier initiate-multipart-upload`` command and can also be obtained by using ``aws glacier list-multipart-uploads``. + +For more information on multipart uploads to Amazon Glacier using the AWS CLI, see `Using Amazon Glacier`_ in the *AWS CLI User Guide*. + +.. _`Using Amazon Glacier`: http://docs.aws.amazon.com/cli/latest/userguide/cli-using-glacier.html \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/wait/vault-exists.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/wait/vault-exists.rst new file mode 100644 index 000000000..4967b4e5f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/wait/vault-exists.rst @@ -0,0 +1,9 @@ +**To pause until a vault exists*** + +The following ``wait vault-exists`` example pauses running and continues only after it confirms that the specified vault exists. :: + + aws glacier wait vault-exists \ + --account-id 111122223333 \ + --vault-name example_vault + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/wait/vault-not-exists.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/wait/vault-not-exists.rst new file mode 100644 index 000000000..9a8c14dac --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glacier/wait/vault-not-exists.rst @@ -0,0 +1,9 @@ +**To pause until a vault no longer exists** + +The following ``wait vault-not-exists`` example pauses running and continues only after it confirms that the specified vault doesn't exist. :: + + aws glacier wait vault-not-exists \ + --account-id 111122223333 \ + --vault-name example_vault + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/global_options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/global_options.rst new file mode 100644 index 000000000..d450cf0ce --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/global_options.rst @@ -0,0 +1,76 @@ +``--debug`` (boolean) + + Turn on debug logging. + +``--endpoint-url`` (string) + + Override command's default URL with the given URL. + +``--no-verify-ssl`` (boolean) + + By default, the AWS CLI uses SSL when communicating with AWS services. For each SSL connection, the AWS CLI will verify SSL certificates. This option overrides the default behavior of verifying SSL certificates. + +``--no-paginate`` (boolean) + + Disable automatic pagination. If automatic pagination is disabled, the AWS CLI will only make one call, for the first page of results. + +``--output`` (string) + + The formatting style for command output. + + + * json + + * text + + * table + + +``--query`` (string) + + A JMESPath query to use in filtering the response data. + +``--profile`` (string) + + Use a specific profile from your credential file. + +``--region`` (string) + + The region to use. Overrides config/env settings. + +``--version`` (string) + + Display the version of this tool. + +``--color`` (string) + + Turn on/off color output. + + + * on + + * off + + * auto + + +``--no-sign-request`` (boolean) + + Do not sign requests. Credentials will not be loaded if this argument is provided. + +``--ca-bundle`` (string) + + The CA certificate bundle to use when verifying SSL certificates. Overrides config/env settings. + +``--cli-read-timeout`` (int) + + The maximum socket read time in seconds. If the value is set to 0, the socket read will be blocking and not timeout. The default value is 60 seconds. + +``--cli-connect-timeout`` (int) + + The maximum socket connect time in seconds. If the value is set to 0, the socket connect will be blocking and not timeout. The default value is 60 seconds. + +``--v2-debug`` (boolean) + + Enable AWS CLI v2 migration assistance. Prints warnings if the command would face a breaking change after swapping AWS CLI v1 for AWS CLI v2 in the current environment. Prints one warning for each breaking change detected. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/global_synopsis.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/global_synopsis.rst new file mode 100644 index 000000000..12865958a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/global_synopsis.rst @@ -0,0 +1,15 @@ +[--debug] +[--endpoint-url ] +[--no-verify-ssl] +[--no-paginate] +[--output ] +[--query ] +[--profile ] +[--region ] +[--version ] +[--color ] +[--no-sign-request] +[--ca-bundle ] +[--cli-read-timeout ] +[--cli-connect-timeout ] +[--v2-debug] diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/add-custom-routing-endpoints.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/add-custom-routing-endpoints.rst new file mode 100644 index 000000000..0d6aeeae5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/add-custom-routing-endpoints.rst @@ -0,0 +1,20 @@ +**To add a VPC subnet endpoint to an endpoint group for a custom routing accelerator** + +The following ``add-custom-routing-endpoints`` example adds a VPC subnet endpoint to an endpoint group for a custom routing accelerator. :: + + aws globalaccelerator add-custom-routing-endpoints \ + --endpoint-group-arn arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/0123vxyz/endpoint-group/4321abcd \ + --endpoint-configurations "EndpointId=subnet-1234567890abcdef0" + +Output:: + + { + "EndpointDescriptions": [ + { + "EndpointId": "subnet-1234567890abcdef0" + } + ], + "EndpointGroupArn":"arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/0123vxyz/endpoint-group/4321abcd" + } + +For more information, see `VPC subnet endpoints for custom routing accelerators in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/advertise-byoip-cidr.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/advertise-byoip-cidr.rst new file mode 100644 index 000000000..daf6a123d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/advertise-byoip-cidr.rst @@ -0,0 +1,17 @@ +**To advertise an address range** + +The following ``advertise-byoip-cidr`` example requests AWS to advertise an address range that you've provisioned for use with your AWS resources. :: + + aws globalaccelerator advertise-byoip-cidr \ + --cidr 198.51.100.0/24 + +Output:: + + { + "ByoipCidr": { + "Cidr": "198.51.100.0/24", + "State": "PENDING_ADVERTISING" + } + } + +For more information, see `Bring Your Own IP Address in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/allow-custom-routing-traffic.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/allow-custom-routing-traffic.rst new file mode 100644 index 000000000..186787c05 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/allow-custom-routing-traffic.rst @@ -0,0 +1,13 @@ +**To allow traffic to specific Amazon EC2 instance destinations in a VPC subnet for a custom routing accelerator** + +The following ``allow-custom-routing-traffic`` example specifies that traffic is allowed to certain Amazon EC2 instance (destination) IP addresses and ports for a VPC subnet endpoint in a custom routing accelerator can receive traffic. :: + + aws globalaccelerator allow-custom-routing-traffic \ + --endpoint-group-arn arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/0123vxyz/endpoint-group/ab88888example \ + --endpoint-id subnet-abcd123example \ + --destination-addresses "172.31.200.6" "172.31.200.7" \ + --destination-ports 80 81 + +This command produces no output. + +For more information, see `VPC subnet endpoints for custom routing accelerators in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/create-accelerator.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/create-accelerator.rst new file mode 100644 index 000000000..41e69792b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/create-accelerator.rst @@ -0,0 +1,34 @@ +**To create an accelerator** + +The following ``create-accelerator`` example creates an accelerator with two tags with two BYOIP static IP addresses. You must specify the ``US-West-2 (Oregon)`` Region to create or update an accelerator. :: + + aws globalaccelerator create-accelerator \ + --name ExampleAccelerator \ + --tags Key="Name",Value="Example Name" Key="Project",Value="Example Project" \ + --ip-addresses 192.0.2.250 198.51.100.52 + +Output:: + + { + "Accelerator": { + "AcceleratorArn": "arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh", + "IpAddressType": "IPV4", + "Name": "ExampleAccelerator", + "Enabled": true, + "Status": "IN_PROGRESS", + "IpSets": [ + { + "IpAddresses": [ + "192.0.2.250", + "198.51.100.52" + ], + "IpFamily": "IPv4" + } + ], + "DnsName":"a1234567890abcdef.awsglobalaccelerator.com", + "CreatedTime": 1542394847.0, + "LastModifiedTime": 1542394847.0 + } + } + +For more information, see `Accelerators in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/create-custom-routing-accelerator.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/create-custom-routing-accelerator.rst new file mode 100644 index 000000000..10257f5d4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/create-custom-routing-accelerator.rst @@ -0,0 +1,34 @@ +**To create a custom routing accelerator** + +The following ``create-custom-routing-accelerator`` example creates a custom routing accelerator with the tags ``Name`` and ``Project``. :: + + aws globalaccelerator create-custom-routing-accelerator \ + --name ExampleCustomRoutingAccelerator \ + --tags Key="Name",Value="Example Name" Key="Project",Value="Example Project" \ + --ip-addresses 192.0.2.250 198.51.100.52 + +Output:: + + { + "Accelerator": { + "AcceleratorArn": "arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh", + "IpAddressType": "IPV4", + "Name": "ExampleCustomRoutingAccelerator", + "Enabled": true, + "Status": "IN_PROGRESS", + "IpSets": [ + { + "IpAddresses": [ + "192.0.2.250", + "198.51.100.52" + ], + "IpFamily": "IPv4" + } + ], + "DnsName":"a1234567890abcdef.awsglobalaccelerator.com", + "CreatedTime": 1542394847.0, + "LastModifiedTime": 1542394847.0 + } + } + +For more information, see `Custom routing accelerators in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/create-custom-routing-endpoint-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/create-custom-routing-endpoint-group.rst new file mode 100644 index 000000000..d1fc8e093 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/create-custom-routing-endpoint-group.rst @@ -0,0 +1,30 @@ +**To create an endpoint group for a custom routing accelerator** + +The following ``create-custom-routing-endpoint-group`` example creates an endpoint group for a custom routing accelerator. :: + + aws globalaccelerator create-custom-routing-endpoint-group \ + --listener-arn arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/0123vxyz \ + --endpoint-group-region us-east-2 \ + --destination-configurations "FromPort=80,ToPort=81,Protocols=TCP,UDP" + +Output:: + + { + "EndpointGroup": { + "EndpointGroupArn": "arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/0123vxyz/endpoint-group/4321abcd", + "EndpointGroupRegion": "us-east-2", + "DestinationDescriptions": [ + { + "FromPort": 80, + "ToPort": 81, + "Protocols": [ + "TCP", + "UDP" + ] + } + ], + "EndpointDescriptions": [] + } + } + +For more information, see `Endpoint groups for custom routing accelerators in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/create-custom-routing-listener.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/create-custom-routing-listener.rst new file mode 100644 index 000000000..a1a2764de --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/create-custom-routing-listener.rst @@ -0,0 +1,21 @@ +**To create a listener for a custom routing accelerator** + +The following ``create-custom-routing-listener`` example creates a listener with a port range from 5000 to 10000 for a custom routing accelerator. :: + + aws globalaccelerator create-custom-routing-listener \ + --accelerator-arn arn:aws:globalaccelerator::123456789012:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh \ + --port-ranges FromPort=5000,ToPort=10000 + +Output:: + + { + "Listener": { + "PortRange": [ + "FromPort": 5000, + "ToPort": 10000 + ], + "ListenerArn": "arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/0123vxyz" + } + } + +For more information, see `Listeners for custom routing accelerators in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/create-endpoint-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/create-endpoint-group.rst new file mode 100644 index 000000000..a8633a48c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/create-endpoint-group.rst @@ -0,0 +1,26 @@ +**To create an endpoint group** + +The following ``create-endpoint-group`` example creates an endpoint group with one endpoint. :: + + aws globalaccelerator create-endpoint-group \ + --listener-arn arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/0123vxyz \ + --endpoint-group-region us-east-1 \ + --endpoint-configurations EndpointId=i-1234567890abcdef0,Weight=128 + +Output:: + + { + "EndpointGroup": { + "TrafficDialPercentage": 100.0, + "EndpointDescriptions": [ + { + "Weight": 128, + "EndpointId": "i-1234567890abcdef0" + } + ], + "EndpointGroupArn": "arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/0123vxyz/endpoint-group/098765zyxwvu", + "EndpointGroupRegion": "us-east-1" + } + } + +For more information, see `Endpoint groups in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/create-listener.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/create-listener.rst new file mode 100644 index 000000000..a1de86892 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/create-listener.rst @@ -0,0 +1,30 @@ +**To create a listener** + +The following ``create-listener`` example creates a listener with two ports. :: + + aws globalaccelerator create-listener \ + --accelerator-arn arn:aws:globalaccelerator::123456789012:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh \ + --port-ranges FromPort=80,ToPort=80 FromPort=81,ToPort=81 \ + --protocol TCP + +Output:: + + { + "Listener": { + "PortRanges": [ + { + "ToPort": 80, + "FromPort": 80 + }, + { + "ToPort": 81, + "FromPort": 81 + } + ], + "ClientAffinity": "NONE", + "Protocol": "TCP", + "ListenerArn": "arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/0123vxyz" + } + } + +For more information, see `Listeners in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/deny-custom-routing-traffic.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/deny-custom-routing-traffic.rst new file mode 100644 index 000000000..2f4d8a562 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/deny-custom-routing-traffic.rst @@ -0,0 +1,12 @@ +**To specify a destination address that cannot receive traffic in a custom routing accelerator** + +The following ``deny-custom-routing-traffic`` example specifies destination address or addresses in a subnet endpoint that cannot receive traffic for a custom routing accelerator. To specify more than one destination address, separate the addresses with a space. There's no response for a successful deny-custom-routing-traffic call. :: + + aws globalaccelerator deny-custom-routing-traffic \ + --endpoint-group-arn "arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/0123vxyz/endpoint-group/ab88888example" \ + --endpoint-id "subnet-abcd123example" \ + --destination-addresses "198.51.100.52" + +This command produces no output. + +For more information, see `VPC subnet endpoints for custom routing accelerators in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/deprovision-byoip-cidr.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/deprovision-byoip-cidr.rst new file mode 100644 index 000000000..5f24c4903 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/deprovision-byoip-cidr.rst @@ -0,0 +1,17 @@ +**To deprovision an address range** + +The following ``deprovision-byoip-cidr`` example releases the specified address range that you provisioned to use with your AWS resources. :: + + aws globalaccelerator deprovision-byoip-cidr \ + --cidr "198.51.100.0/24" + +Output:: + + { + "ByoipCidr": { + "Cidr": "198.51.100.0/24", + "State": "PENDING_DEPROVISIONING" + } + } + +For more information, see `Bring your own IP address in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-accelerator-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-accelerator-attributes.rst new file mode 100644 index 000000000..3b2fd1614 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-accelerator-attributes.rst @@ -0,0 +1,18 @@ +**To describe an accelerator's attributes** + +The following ``describe-accelerator-attributes`` example retrieves the attribute details for an accelerator. :: + + aws globalaccelerator describe-accelerator-attributes \ + --accelerator-arn arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh + +Output:: + + { + "AcceleratorAttributes": { + "FlowLogsEnabled": true + "FlowLogsS3Bucket": flowlogs-abc + "FlowLogsS3Prefix": bucketprefix-abc + } + } + +For more information, see `Accelerators in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-accelerator.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-accelerator.rst new file mode 100644 index 000000000..d7943fd61 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-accelerator.rst @@ -0,0 +1,32 @@ +**To describe an accelerator** + +The following ``describe-accelerator`` example retrieves the details about the specified accelerator. :: + + aws globalaccelerator describe-accelerator \ + --accelerator-arn arn:aws:globalaccelerator::123456789012:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh + +Output:: + + { + "Accelerator": { + "AcceleratorArn": "arn:aws:globalaccelerator::123456789012:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh", + "IpAddressType": "IPV4", + "Name": "ExampleAccelerator", + "Enabled": true, + "Status": "IN_PROGRESS", + "IpSets": [ + { + "IpAddresses": [ + "192.0.2.250", + "198.51.100.52" + ], + "IpFamily": "IPv4" + } + ], + "DnsName":"a1234567890abcdef.awsglobalaccelerator.com", + "CreatedTime": 1542394847, + "LastModifiedTime": 1542395013 + } + } + +For more information, see `Accelerators in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-custom-routing-accelerator-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-custom-routing-accelerator-attributes.rst new file mode 100644 index 000000000..00297379d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-custom-routing-accelerator-attributes.rst @@ -0,0 +1,16 @@ +**To describe a custom routing accelerator's attributes** + +The following ``describe-custom-routing-accelerator-attributes`` example describes the attributes for a custom routing accelerator. :: + + aws globalaccelerator describe-custom-routing-accelerator-attributes \ + --accelerator-arn arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh + +Output:: + + { + "AcceleratorAttributes": { + "FlowLogsEnabled": false + } + } + +For more information, see `Custom routing accelerators in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-custom-routing-accelerator.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-custom-routing-accelerator.rst new file mode 100644 index 000000000..411641352 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-custom-routing-accelerator.rst @@ -0,0 +1,32 @@ +**To describe a custom routing accelerator** + +The following ``describe-custom-routing-accelerator`` example retrieves the details about the specified custom routing accelerator. :: + + aws globalaccelerator describe-custom-routing-accelerator \ + --accelerator-arn arn:aws:globalaccelerator::123456789012:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh + +Output:: + + { + "Accelerator": { + "AcceleratorArn": "arn:aws:globalaccelerator::123456789012:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh", + "IpAddressType": "IPV4", + "Name": "ExampleCustomRoutingAccelerator", + "Enabled": true, + "Status": "IN_PROGRESS", + "IpSets": [ + { + "IpAddresses": [ + "192.0.2.250", + "198.51.100.52" + ], + "IpFamily": "IPv4" + } + ], + "DnsName":"a1234567890abcdef.awsglobalaccelerator.com", + "CreatedTime": 1542394847, + "LastModifiedTime": 1542395013 + } + } + +For more information, see `Custom routing accelerators in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-custom-routing-endpoint-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-custom-routing-endpoint-group.rst new file mode 100644 index 000000000..192a4038c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-custom-routing-endpoint-group.rst @@ -0,0 +1,31 @@ +**To describe an endpoint group for a custom routing accelerator** + +The following ``describe-custom-routing-endpoint-group`` example describes an endpoint group for a custom routing accelerator. :: + + aws globalaccelerator describe-custom-routing-endpoint-group \ + --endpoint-group-arn arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/6789vxyz/endpoint-group/ab88888example + +Output:: + + { + "EndpointGroup": { + "EndpointGroupArn": "arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/6789vxyz/endpoint-group/ab88888example", + "EndpointGroupRegion": "us-east-2", + "DestinationDescriptions": [ + { + "FromPort": 5000, + "ToPort": 10000, + "Protocols": [ + "UDP" + ] + } + ], + "EndpointDescriptions": [ + { + "EndpointId": "subnet-1234567890abcdef0" + } + ] + } + } + +For more information, see `Endpoint groups for custom routing accelerators in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-custom-routing-listener.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-custom-routing-listener.rst new file mode 100644 index 000000000..f76a646b7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-custom-routing-listener.rst @@ -0,0 +1,20 @@ +**To describe a listener for a custom routing accelerator** + +The following ``describe-custom-routing-listener`` example describes a listener for a custom routing accelerator. :: + + aws globalaccelerator describe-custom-routing-listener \ + --listener-arn arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/abcdef1234 + +Output:: + + { + "Listener": { + "PortRanges": [ + "FromPort": 5000, + "ToPort": 10000 + ], + "ListenerArn": "arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/abcdef1234" + } + } + +For more information, see `Listeners for custom routing accelerators in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-endpoint-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-endpoint-group.rst new file mode 100644 index 000000000..9cb5560e6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-endpoint-group.rst @@ -0,0 +1,32 @@ +**To describe an endpoint group** + +The following ``describe-endpoint-group`` example retrieves details about an endpoint group with the following endpoints: an Amazon EC2 instance, an ALB, and an NLB. :: + + aws globalaccelerator describe-endpoint-group \ + --endpoint-group-arn arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/6789vxyz-vxyz-6789-vxyz-6789lmnopqrs/endpoint-group/ab88888example + +Output:: + + { + "EndpointGroup": { + "TrafficDialPercentage": 100.0, + "EndpointDescriptions": [ + { + "Weight": 128, + "EndpointId": "i-1234567890abcdef0" + }, + { + "Weight": 128, + "EndpointId": "arn:aws:elasticloadbalancing:us-east-1:000123456789:loadbalancer/app/ALBTesting/alb01234567890xyz" + }, + { + "Weight": 128, + "EndpointId": "arn:aws:elasticloadbalancing:us-east-1:000123456789:loadbalancer/net/NLBTesting/alb01234567890qrs" + } + ], + "EndpointGroupArn": "arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/6789vxyz-vxyz-6789-vxyz-6789lmnopqrs/endpoint-group/4321abcd-abcd-4321-abcd-4321abcdefg", + "EndpointGroupRegion": "us-east-1" + } + } + +For more information, see `Endpoint groups in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-listener.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-listener.rst new file mode 100644 index 000000000..998d9f887 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/describe-listener.rst @@ -0,0 +1,24 @@ +**To describe a listener** + +The following ``describe-listener`` example describes a listener. :: + + aws globalaccelerator describe-listener \ + --listener-arn arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/abcdef1234 + +Output:: + + { + "Listener": { + "ListenerArn": "arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/abcdef1234", + "PortRanges": [ + { + "FromPort": 80, + "ToPort": 80 + } + ], + "Protocol": "TCP", + "ClientAffinity": "NONE" + } + } + +For more information, see `Listeners in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-accelerators.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-accelerators.rst new file mode 100644 index 000000000..5765be71d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-accelerators.rst @@ -0,0 +1,52 @@ +**To list your accelerators** + +The following ``list-accelerators`` example lists the accelerators in your AWS account. This account has two accelerators. :: + + aws globalaccelerator list-accelerators + +Output:: + + { + "Accelerators": [ + { + "AcceleratorArn": "arn:aws:globalaccelerator::012345678901:accelerator/5555abcd-abcd-5555-abcd-5555EXAMPLE1", + "Name": "TestAccelerator", + "IpAddressType": "IPV4", + "Enabled": true, + "IpSets": [ + { + "IpFamily": "IPv4", + "IpAddresses": [ + "192.0.2.250", + "198.51.100.52" + ] + } + ], + "DnsName": "5a5a5a5a5a5a5a5a.awsglobalaccelerator.com", + "Status": "DEPLOYED", + "CreatedTime": 1552424416.0, + "LastModifiedTime": 1569375641.0 + }, + { + "AcceleratorArn": "arn:aws:globalaccelerator::888888888888:accelerator/8888abcd-abcd-8888-abcd-8888EXAMPLE2", + "Name": "ExampleAccelerator", + "IpAddressType": "IPV4", + "Enabled": true, + "IpSets": [ + { + "IpFamily": "IPv4", + "IpAddresses": [ + "192.0.2.100", + "198.51.100.10" + ] + } + ], + "DnsName": "6a6a6a6a6a6a6a.awsglobalaccelerator.com", + "Status": "DEPLOYED", + "CreatedTime": 1575585564.0, + "LastModifiedTime": 1579809243.0 + }, + ] + } + +For more information, see `Accelerators in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-byoip-cidr.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-byoip-cidr.rst new file mode 100644 index 000000000..496fbdef3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-byoip-cidr.rst @@ -0,0 +1,22 @@ +**To list your address ranges** + +The following ``list-byoip-cidr`` example list the bring your own IP address (BYOIP) address ranges that you've provisioned for use with Global Accelerator. :: + + aws globalaccelerator list-byoip-cidrs + +Output:: + + { + "ByoipCidrs": [ + { + "Cidr": "198.51.100.0/24", + "State": "READY" + } + { + "Cidr": "203.0.113.25/24", + "State": "READY" + } + ] + } + +For more information, see `Bring your own IP address in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-custom-routing-accelerators.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-custom-routing-accelerators.rst new file mode 100644 index 000000000..2ade3d87b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-custom-routing-accelerators.rst @@ -0,0 +1,52 @@ +**To list your custom routing accelerators** + +The following ``list-custom-routing-accelerators`` example lists the custom routing accelerators in an AWS account. :: + + aws globalaccelerator list-custom-routing-accelerators + +Output:: + + { + "Accelerators": [ + { + "AcceleratorArn": "arn:aws:globalaccelerator::012345678901:accelerator/5555abcd-abcd-5555-abcd-5555EXAMPLE1", + "Name": "TestCustomRoutingAccelerator", + "IpAddressType": "IPV4", + "Enabled": true, + "IpSets": [ + { + "IpFamily": "IPv4", + "IpAddresses": [ + "192.0.2.250", + "198.51.100.52" + ] + } + ], + "DnsName": "5a5a5a5a5a5a5a5a.awsglobalaccelerator.com", + "Status": "DEPLOYED", + "CreatedTime": 1552424416.0, + "LastModifiedTime": 1569375641.0 + }, + { + "AcceleratorArn": "arn:aws:globalaccelerator::888888888888:accelerator/8888abcd-abcd-8888-abcd-8888EXAMPLE2", + "Name": "ExampleCustomRoutingAccelerator", + "IpAddressType": "IPV4", + "Enabled": true, + "IpSets": [ + { + "IpFamily": "IPv4", + "IpAddresses": [ + "192.0.2.100", + "198.51.100.10" + ] + } + ], + "DnsName": "6a6a6a6a6a6a6a.awsglobalaccelerator.com", + "Status": "DEPLOYED", + "CreatedTime": 1575585564.0, + "LastModifiedTime": 1579809243.0 + }, + ] + } + +For more information, see `Custom routing accelerators in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-custom-routing-endpoint-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-custom-routing-endpoint-groups.rst new file mode 100644 index 000000000..57f687674 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-custom-routing-endpoint-groups.rst @@ -0,0 +1,34 @@ +**To list endpoint groups for a listener in a custom routing accelerator** + +The following ``list-custom-routing-endpoint-groups`` example lists the endpoint groups for a listener in a custom routing accelerator. :: + + aws globalaccelerator list-custom-routing-endpoint-groups \ + --listener-arn arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/abcdef1234 + +Output:: + + { + "EndpointGroups": [ + { + "EndpointGroupArn": "arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/abcdef1234/endpoint-group/ab88888example", + "EndpointGroupRegion": "eu-central-1", + "DestinationDescriptions": [ + { + "FromPort": 80, + "ToPort": 80, + "Protocols": [ + "TCP", + "UDP" + ] + } + ] + "EndpointDescriptions": [ + { + "EndpointId": "subnet-abcd123example" + } + ] + } + ] + } + +For more information, see `Endpoint groups for custom routing accelerators in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-custom-routing-listeners.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-custom-routing-listeners.rst new file mode 100644 index 000000000..da9c0e8b2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-custom-routing-listeners.rst @@ -0,0 +1,25 @@ +**To list listeners for custom routing accelerators** + +The following ``list-custom-routing-listeners`` example lists the listeners for a custom routing accelerator. :: + + aws globalaccelerator list-custom-routing-listeners \ + --accelerator-arn arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh + +Output:: + + { + "Listeners": [ + { + "ListenerArn": "arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/abcdef1234", + "PortRanges": [ + { + "FromPort": 5000, + "ToPort": 10000 + } + ], + "Protocol": "TCP" + } + ] + } + +For more information, see `Listeners for custom routing accelerators in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-custom-routing-port-mappings-by-destination.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-custom-routing-port-mappings-by-destination.rst new file mode 100644 index 000000000..476aeffae --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-custom-routing-port-mappings-by-destination.rst @@ -0,0 +1,38 @@ +**To list the port mappings for a specific custom routing accelerator destination** + +The following ``list-custom-routing-port-mappings-by-destination`` example provides the port mappings for a specific destination EC2 server (at the destination address) for a custom routing accelerator. :: + + aws globalaccelerator list-custom-routing-port-mappings-by-destination \ + --endpoint-id subnet-abcd123example \ + --destination-address 198.51.100.52 + +Output:: + + { + "DestinationPortMappings": [ + { + "AcceleratorArn": "arn:aws:globalaccelerator::402092451327:accelerator/24ea29b8-d750-4489-8919-3095f3c4b0a7", + "AcceleratorSocketAddresses": [ + { + "IpAddress": "192.0.2.250", + "Port": 65514 + }, + { + "IpAddress": "192.10.100.99", + "Port": 65514 + } + ], + "EndpointGroupArn": "arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/0123vxyz/endpoint-group/ab88888example", + "EndpointId": "subnet-abcd123example", + "EndpointGroupRegion": "us-west-2", + "DestinationSocketAddress": { + "IpAddress": "198.51.100.52", + "Port": 80 + }, + "IpAddressType": "IPv4", + "DestinationTrafficState": "ALLOW" + } + ] + } + +For more information, see `How custom routing accelerators work in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-custom-routing-port-mappings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-custom-routing-port-mappings.rst new file mode 100644 index 000000000..df9517ca4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-custom-routing-port-mappings.rst @@ -0,0 +1,43 @@ +**To list the port mappings in a custom routing accelerator** + +The following ``list-custom-routing-port-mappings`` example provides a partial list of the port mappings in a custom routing accelerator. :: + + aws globalaccelerator list-custom-routing-port-mappings \ + --accelerator-arn arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh + +Output:: + + { + "PortMappings": [ + { + "AcceleratorPort": 40480, + "EndpointGroupArn": "arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/0123vxyz/endpoint-group/098765zyxwvu", + "EndpointId": "subnet-1234567890abcdef0", + "DestinationSocketAddress": { + "IpAddress": "192.0.2.250", + "Port": 80 + }, + "Protocols": [ + "TCP", + "UDP" + ], + "DestinationTrafficState": "ALLOW" + } + { + "AcceleratorPort": 40481, + "EndpointGroupArn": "arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/0123vxyz/endpoint-group/098765zyxwvu", + "EndpointId": "subnet-1234567890abcdef0", + "DestinationSocketAddress": { + "IpAddress": "192.0.2.251", + "Port": 80 + }, + "Protocols": [ + "TCP", + "UDP" + ], + "DestinationTrafficState": "ALLOW" + } + ] + } + +For more information, see `How custom routing accelerators work in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-endpoint-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-endpoint-groups.rst new file mode 100644 index 000000000..2b8beb534 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-endpoint-groups.rst @@ -0,0 +1,35 @@ +**To list endpoint groups** + +The following ``list-endpoint-groups`` example lists the endpoint groups for a listener. This listener has two endpoint groups. :: + + aws globalaccelerator --region us-west-2 list-endpoint-groups \ + --listener-arn arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/abcdef1234 + +Output:: + + { + "EndpointGroups": [ + { + "EndpointGroupArn": "arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/abcdef1234/endpoint-group/ab88888example", + "EndpointGroupRegion": "eu-central-1", + "EndpointDescriptions": [], + "TrafficDialPercentage": 100.0, + "HealthCheckPort": 80, + "HealthCheckProtocol": "TCP", + "HealthCheckIntervalSeconds": 30, + "ThresholdCount": 3 + } + { + "EndpointGroupArn": "arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/abcdef1234/endpoint-group/ab99999example", + "EndpointGroupRegion": "us-east-1", + "EndpointDescriptions": [], + "TrafficDialPercentage": 50.0, + "HealthCheckPort": 80, + "HealthCheckProtocol": "TCP", + "HealthCheckIntervalSeconds": 30, + "ThresholdCount": 3 + } + ] + } + +For more information, see `Endpoint Groups in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-listeners.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-listeners.rst new file mode 100644 index 000000000..948e4d8d1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-listeners.rst @@ -0,0 +1,26 @@ +**To list listeners** + +The following ``list-listeners`` example lists the listeners for an accelerator. :: + + aws globalaccelerator list-listeners \ + --accelerator-arn arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh + +Output:: + + { + "Listeners": [ + { + "ListenerArn": "arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/abcdef1234", + "PortRanges": [ + { + "FromPort": 80, + "ToPort": 80 + } + ], + "Protocol": "TCP", + "ClientAffinity": "NONE" + } + ] + } + +For more information, see `Listeners in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-tags-for-resource.rst new file mode 100644 index 000000000..b9ad73b9f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/list-tags-for-resource.rst @@ -0,0 +1,19 @@ +**To list tags for an accelerator** + +The following ``list-tags-for-resource`` example lists the tags for a specific accelerator. :: + + aws globalaccelerator list-tags-for-resource \ + --accelerator-arn arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh + +Output:: + + { + "Tags": [ + { + "Key": "Project", + "Value": "A123456" + } + ] + } + +For more information, see `Tagging in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/provision-byoip-cidr.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/provision-byoip-cidr.rst new file mode 100644 index 000000000..3a02d0e0c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/provision-byoip-cidr.rst @@ -0,0 +1,18 @@ +**To provision an address range** + +The following ``provision-byoip-cidr`` example provisions the specified address range to use with your AWS resources. :: + + aws globalaccelerator provision-byoip-cidr \ + --cidr 192.0.2.250/24 \ + --cidr-authorization-context Message="$text_message",Signature="$signed_message" + +Output:: + + { + "ByoipCidr": { + "Cidr": "192.0.2.250/24", + "State": "PENDING_PROVISIONING" + } + } + +For more information, see `Bring your own IP address in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/tag-resource.rst new file mode 100644 index 000000000..f32461953 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/tag-resource.rst @@ -0,0 +1,11 @@ +**To tag an accelerator** + +The following ``tag-resource`` example adds tags Name and Project to an accelerator, along with corresponding values for each. :: + + aws globalaccelerator tag-resource \ + --resource-arn arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh \ + --tags Key="Name",Value="Example Name" Key="Project",Value="Example Project" + +This command produces no output. + +For more information, see `Tagging in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/untag-resource.rst new file mode 100644 index 000000000..218e75e52 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove a tag from an accelerator** + +The following ``untag-resource`` example removes the tags Name and Project from an accelerator. :: + + aws globalaccelerator untag-resource \ + --resource-arn arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh \ + --tag-keys Key="Name" Key="Project" + +This command produces no output. + +For more information, see `Tagging in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/update-accelerator-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/update-accelerator-attributes.rst new file mode 100644 index 000000000..ed78a8548 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/update-accelerator-attributes.rst @@ -0,0 +1,21 @@ +**To update an accelerator's attributes** + +The following ``update-accelerator-attributes`` example updates an accelerator to enable flow logs. You must specify the ``US-West-2 (Oregon)`` Region to create or update accelerator attributes. :: + + aws globalaccelerator update-accelerator-attributes \ + --accelerator-arn arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh \ + --flow-logs-enabled \ + --flow-logs-s3-bucket flowlogs-abc \ + --flow-logs-s3-prefix bucketprefix-abc + +Output:: + + { + "AcceleratorAttributes": { + "FlowLogsEnabled": true + "FlowLogsS3Bucket": flowlogs-abc + "FlowLogsS3Prefix": bucketprefix-abc + } + } + +For more information, see `Accelerators in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/update-accelerator.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/update-accelerator.rst new file mode 100644 index 000000000..c3b8b9e3f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/update-accelerator.rst @@ -0,0 +1,33 @@ +**To update an accelerator** + +The following ``update-accelerator`` example modifies an accelerator to change the accelerator name to ``ExampleAcceleratorNew``. You must specify the ``US-West-2 (Oregon)`` Region to create or update accelerators. :: + + aws globalaccelerator update-accelerator \ + --accelerator-arn arn:aws:globalaccelerator::123456789012:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh \ + --name ExampleAcceleratorNew + +Output:: + + { + "Accelerator": { + "AcceleratorArn": "arn:aws:globalaccelerator::123456789012:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh", + "IpAddressType": "IPV4", + "Name": "ExampleAcceleratorNew", + "Enabled": true, + "Status": "IN_PROGRESS", + "IpSets": [ + { + "IpAddresses": [ + "192.0.2.250", + "198.51.100.52" + ], + "IpFamily": "IPv4" + } + ], + "DnsName":"a1234567890abcdef.awsglobalaccelerator.com", + "CreatedTime": 1232394847, + "LastModifiedTime": 1232395654 + } + } + +For more information, see `Accelerators in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/update-custom-routing-accelerator-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/update-custom-routing-accelerator-attributes.rst new file mode 100644 index 000000000..e8c19ca7f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/update-custom-routing-accelerator-attributes.rst @@ -0,0 +1,21 @@ +**To update a custom routing accelerator's attributes** + +The following ``update-custom-routing-accelerator-attributes`` example updates a custom routing accelerator to enable flow logs. :: + + aws globalaccelerator update-custom-routing-accelerator-attributes \ + --accelerator-arn arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh \ + --flow-logs-enabled \ + --flow-logs-s3-bucket flowlogs-abc \ + --flow-logs-s3-prefix bucketprefix-abc + +Output:: + + { + "AcceleratorAttributes": { + "FlowLogsEnabled": true + "FlowLogsS3Bucket": flowlogs-abc + "FlowLogsS3Prefix": bucketprefix-abc + } + } + +For more information, see `Custom routing accelerators in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/update-custom-routing-accelerator.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/update-custom-routing-accelerator.rst new file mode 100644 index 000000000..c649bc0d2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/update-custom-routing-accelerator.rst @@ -0,0 +1,33 @@ +**To update a custom routing accelerator** + +The following ``update-custom-routing-accelerator`` example modifies a custom routing accelerator to change the accelerator name. :: + + aws globalaccelerator --region us-west-2 update-custom-routing-accelerator \ + --accelerator-arn arn:aws:globalaccelerator::123456789012:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh \ + --name ExampleCustomRoutingAcceleratorNew + +Output:: + + { + "Accelerator": { + "AcceleratorArn": "arn:aws:globalaccelerator::123456789012:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh", + "IpAddressType": "IPV4", + "Name": "ExampleCustomRoutingAcceleratorNew", + "Enabled": true, + "Status": "IN_PROGRESS", + "IpSets": [ + { + "IpAddresses": [ + "192.0.2.250", + "198.51.100.52" + ], + "IpFamily": "IPv4" + } + ], + "DnsName":"a1234567890abcdef.awsglobalaccelerator.com", + "CreatedTime": 1232394847, + "LastModifiedTime": 1232395654 + } + } + +For more information, see `Custom routing accelerators in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/update-custom-routing-listener.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/update-custom-routing-listener.rst new file mode 100644 index 000000000..86b73e85f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/update-custom-routing-listener.rst @@ -0,0 +1,24 @@ +**To update a listener for a custom routing accelerator** + +The following ``update-custom-routing-listener`` example updates a listener to change the port range. :: + + aws globalaccelerator update-custom-routing-listener \ + --listener-arn arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/0123vxyz \ + --port-ranges FromPort=10000,ToPort=20000 + +Output:: + + { + "Listener": { + "ListenerArn": "arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/0123vxyz + "PortRanges": [ + { + "FromPort": 10000, + "ToPort": 20000 + } + ], + "Protocol": "TCP" + } + } + +For more information, see `Listeners for custom routing accelerators in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/update-endpoint-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/update-endpoint-group.rst new file mode 100644 index 000000000..dcb29cac9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/update-endpoint-group.rst @@ -0,0 +1,36 @@ +**To update an endpoint group** + +The following ``update-endpoint-group`` example adds three endpoints to an endpoint group: an Elastic IP address, an ALB, and an NLB. :: + + aws globalaccelerator update-endpoint-group \ + --endpoint-group-arn arn:aws:globalaccelerator::123456789012:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/6789vxyz-vxyz-6789-vxyz-6789lmnopqrs/endpoint-group/ab88888example \ + --endpoint-configurations \ + EndpointId=eipalloc-eip01234567890abc,Weight=128 \ + EndpointId=arn:aws:elasticloadbalancing:us-east-1:000123456789:loadbalancer/app/ALBTesting/alb01234567890xyz,Weight=128 \ + EndpointId=arn:aws:elasticloadbalancing:us-east-1:000123456789:loadbalancer/net/NLBTesting/alb01234567890qrs,Weight=128 + +Output:: + + { + "EndpointGroup": { + "TrafficDialPercentage": 100, + "EndpointDescriptions": [ + { + "Weight": 128, + "EndpointId": "eip01234567890abc" + }, + { + "Weight": 128, + "EndpointId": "arn:aws:elasticloadbalancing:us-east-1:000123456789:loadbalancer/app/ALBTesting/alb01234567890xyz" + }, + { + "Weight": 128, + "EndpointId": "arn:aws:elasticloadbalancing:us-east-1:000123456789:loadbalancer/net/NLBTesting/alb01234567890qrs" + } + ], + "EndpointGroupArn": "arn:aws:globalaccelerator::123456789012:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/6789vxyz-vxyz-6789-vxyz-6789lmnopqrs/endpoint-group/4321abcd-abcd-4321-abcd-4321abcdefg", + "EndpointGroupRegion": "us-east-1" + } + } + +For more information, see `Endpoint groups in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/update-listener.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/update-listener.rst new file mode 100644 index 000000000..fd016c910 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/update-listener.rst @@ -0,0 +1,25 @@ +**To update a listener** + +The following ``update-listener`` example updates a listener to change the port to 100. :: + + aws globalaccelerator update-listener \ + --listener-arn arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/0123vxyz \ + --port-ranges FromPort=100,ToPort=100 + +Output:: + + { + "Listener": { + "ListenerArn": "arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh/listener/0123vxyz + "PortRanges": [ + { + "FromPort": 100, + "ToPort": 100 + } + ], + "Protocol": "TCP", + "ClientAffinity": "NONE" + } + } + +For more information, see `Listeners in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/withdraw-byoip-cidr.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/withdraw-byoip-cidr.rst new file mode 100644 index 000000000..7ae7c8029 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/globalaccelerator/withdraw-byoip-cidr.rst @@ -0,0 +1,17 @@ +**To withdraw an address range** + +The following ``withdraw-byoip-cidr`` example withdraws an address range from AWS Global Accelerator that you previously advertised for use with your AWS resources. :: + + aws globalaccelerator withdraw-byoip-cidr \ + --cidr 192.0.2.250/24 + +Output:: + + { + "ByoipCidr": { + "Cidr": "192.0.2.250/24", + "State": "PENDING_WITHDRAWING" + } + } + +For more information, see `Bring your own IP address in AWS Global Accelerator `__ in the *AWS Global Accelerator Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/batch-stop-job-run.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/batch-stop-job-run.rst new file mode 100644 index 000000000..94f531fd3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/batch-stop-job-run.rst @@ -0,0 +1,33 @@ +**To stop job runs** + +The following ``batch-stop-job-run`` example stops a job runs. :: + + aws glue batch-stop-job-run \ + --job-name "my-testing-job" \ + --job-run-id jr_852f1de1f29fb62e0ba4166c33970803935d87f14f96cfdee5089d5274a61d3f + +Output:: + + { + "SuccessfulSubmissions": [ + { + "JobName": "my-testing-job", + "JobRunId": "jr_852f1de1f29fb62e0ba4166c33970803935d87f14f96cfdee5089d5274a61d3f" + } + ], + "Errors": [], + "ResponseMetadata": { + "RequestId": "66bd6b90-01db-44ab-95b9-6aeff0e73d88", + "HTTPStatusCode": 200, + "HTTPHeaders": { + "date": "Fri, 16 Oct 2020 20:54:51 GMT", + "content-type": "application/x-amz-json-1.1", + "content-length": "148", + "connection": "keep-alive", + "x-amzn-requestid": "66bd6b90-01db-44ab-95b9-6aeff0e73d88" + }, + "RetryAttempts": 0 + } + } + +For more information, see `Job Runs `__ in the *AWS Glue Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/create-connection.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/create-connection.rst new file mode 100644 index 000000000..605652c2f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/create-connection.rst @@ -0,0 +1,25 @@ +**To create a connection for AWS Glue data stores** + +The following ``create-connection`` example creates a connection in the AWS Glue Data Catalog that provides connection information for a Kafka data store. :: + + aws glue create-connection \ + --connection-input '{ \ + "Name":"conn-kafka-custom", \ + "Description":"kafka connection with ssl to custom kafka", \ + "ConnectionType":"KAFKA", \ + "ConnectionProperties":{ \ + "KAFKA_BOOTSTRAP_SERVERS":":", \ + "KAFKA_SSL_ENABLED":"true", \ + "KAFKA_CUSTOM_CERT": "s3://bucket/prefix/cert-file.pem" \ + }, \ + "PhysicalConnectionRequirements":{ \ + "SubnetId":"subnet-1234", \ + "SecurityGroupIdList":["sg-1234"], \ + "AvailabilityZone":"us-east-1a"} \ + }' \ + --region us-east-1 + --endpoint https://glue.us-east-1.amazonaws.com + +This command produces no output. + +For more information, see `Defining Connections in the AWS Glue Data Catalog `__ in the *AWS Glue Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/create-database.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/create-database.rst new file mode 100644 index 000000000..7fccf4f27 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/create-database.rst @@ -0,0 +1,12 @@ +**To create a database** + +The following ``create-database`` example creates a database in the AWS Glue Data Catalog. :: + + aws glue create-database \ + --database-input "{\"Name\":\"tempdb\"}" \ + --profile my_profile \ + --endpoint https://glue.us-east-1.amazonaws.com + +This command produces no output. + +For more information, see `Defining a Database in Your Data Catalog `__ in the *AWS Glue Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/create-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/create-job.rst new file mode 100644 index 000000000..57fcfb2b8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/create-job.rst @@ -0,0 +1,76 @@ +**To create a job to transform data** + +The following ``create-job`` example creates a streaming job that runs a script stored in S3. :: + + aws glue create-job \ + --name my-testing-job \ + --role AWSGlueServiceRoleDefault \ + --command '{ \ + "Name": "gluestreaming", \ + "ScriptLocation": "s3://amzn-s3-demo-bucket/folder/" \ + }' \ + --region us-east-1 \ + --output json \ + --default-arguments '{ \ + "--job-language":"scala", \ + "--class":"GlueApp" \ + }' \ + --profile my-profile \ + --endpoint https://glue.us-east-1.amazonaws.com + +Contents of ``test_script.scala``:: + + import com.amazonaws.services.glue.ChoiceOption + import com.amazonaws.services.glue.GlueContext + import com.amazonaws.services.glue.MappingSpec + import com.amazonaws.services.glue.ResolveSpec + import com.amazonaws.services.glue.errors.CallSite + import com.amazonaws.services.glue.util.GlueArgParser + import com.amazonaws.services.glue.util.Job + import com.amazonaws.services.glue.util.JsonOptions + import org.apache.spark.SparkContext + import scala.collection.JavaConverters._ + + object GlueApp { + def main(sysArgs: Array[String]) { + val spark: SparkContext = new SparkContext() + val glueContext: GlueContext = new GlueContext(spark) + // @params: [JOB_NAME] + val args = GlueArgParser.getResolvedOptions(sysArgs, Seq("JOB_NAME").toArray) + Job.init(args("JOB_NAME"), glueContext, args.asJava) + // @type: DataSource + // @args: [database = "tempdb", table_name = "s3-source", transformation_ctx = "datasource0"] + // @return: datasource0 + // @inputs: [] + val datasource0 = glueContext.getCatalogSource(database = "tempdb", tableName = "s3-source", redshiftTmpDir = "", transformationContext = "datasource0").getDynamicFrame() + // @type: ApplyMapping + // @args: [mapping = [("sensorid", "int", "sensorid", "int"), ("currenttemperature", "int", "currenttemperature", "int"), ("status", "string", "status", "string")], transformation_ctx = "applymapping1"] + // @return: applymapping1 + // @inputs: [frame = datasource0] + val applymapping1 = datasource0.applyMapping(mappings = Seq(("sensorid", "int", "sensorid", "int"), ("currenttemperature", "int", "currenttemperature", "int"), ("status", "string", "status", "string")), caseSensitive = false, transformationContext = "applymapping1") + // @type: SelectFields + // @args: [paths = ["sensorid", "currenttemperature", "status"], transformation_ctx = "selectfields2"] + // @return: selectfields2 + // @inputs: [frame = applymapping1] + val selectfields2 = applymapping1.selectFields(paths = Seq("sensorid", "currenttemperature", "status"), transformationContext = "selectfields2") + // @type: ResolveChoice + // @args: [choice = "MATCH_CATALOG", database = "tempdb", table_name = "my-s3-sink", transformation_ctx = "resolvechoice3"] + // @return: resolvechoice3 + // @inputs: [frame = selectfields2] + val resolvechoice3 = selectfields2.resolveChoice(choiceOption = Some(ChoiceOption("MATCH_CATALOG")), database = Some("tempdb"), tableName = Some("my-s3-sink"), transformationContext = "resolvechoice3") + // @type: DataSink + // @args: [database = "tempdb", table_name = "my-s3-sink", transformation_ctx = "datasink4"] + // @return: datasink4 + // @inputs: [frame = resolvechoice3] + val datasink4 = glueContext.getCatalogSink(database = "tempdb", tableName = "my-s3-sink", redshiftTmpDir = "", transformationContext = "datasink4").writeDynamicFrame(resolvechoice3) + Job.commit() + } + } + +Output:: + + { + "Name": "my-testing-job" + } + +For more information, see `Authoring Jobs in AWS Glue `__ in the *AWS Glue Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/create-table.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/create-table.rst new file mode 100644 index 000000000..9f5121c5f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/create-table.rst @@ -0,0 +1,86 @@ +**Example 1: To create a table for a Kinesis data stream** + +The following ``create-table`` example creates a table in the AWS Glue Data Catalog that describes a Kinesis data stream. :: + + aws glue create-table \ + --database-name tempdb \ + --table-input '{"Name":"test-kinesis-input", "StorageDescriptor":{ \ + "Columns":[ \ + {"Name":"sensorid", "Type":"int"}, \ + {"Name":"currenttemperature", "Type":"int"}, \ + {"Name":"status", "Type":"string"} + ], \ + "Location":"my-testing-stream", \ + "Parameters":{ \ + "typeOfData":"kinesis","streamName":"my-testing-stream", \ + "kinesisUrl":"https://kinesis.us-east-1.amazonaws.com" \ + }, \ + "SerdeInfo":{ \ + "SerializationLibrary":"org.openx.data.jsonserde.JsonSerDe"} \ + }, \ + "Parameters":{ \ + "classification":"json"} \ + }' \ + --profile my-profile \ + --endpoint https://glue.us-east-1.amazonaws.com + +This command produces no output. + +For more information, see `Defining Tables in the AWS Glue Data Catalog `__ in the *AWS Glue Developer Guide*. + +**Example 2: To create a table for a Kafka data store** + +The following ``create-table`` example creates a table in the AWS Glue Data Catalog that describes a Kafka data store. :: + + aws glue create-table \ + --database-name tempdb \ + --table-input '{"Name":"test-kafka-input", "StorageDescriptor":{ \ + "Columns":[ \ + {"Name":"sensorid", "Type":"int"}, \ + {"Name":"currenttemperature", "Type":"int"}, \ + {"Name":"status", "Type":"string"} + ], \ + "Location":"glue-topic", \ + "Parameters":{ \ + "typeOfData":"kafka","topicName":"glue-topic", \ + "connectionName":"my-kafka-connection" + }, \ + "SerdeInfo":{ \ + "SerializationLibrary":"org.apache.hadoop.hive.serde2.OpenCSVSerde"} \ + }, \ + "Parameters":{ \ + "separatorChar":","} \ + }' \ + --profile my-profile \ + --endpoint https://glue.us-east-1.amazonaws.com + +This command produces no output. + +For more information, see `Defining Tables in the AWS Glue Data Catalog `__ in the *AWS Glue Developer Guide*. + +**Example 3: To create a table for a AWS S3 data store** + +The following ``create-table`` example creates a table in the AWS Glue Data Catalog that +describes a AWS Simple Storage Service (AWS S3) data store. :: + + aws glue create-table \ + --database-name tempdb \ + --table-input '{"Name":"s3-output", "StorageDescriptor":{ \ + "Columns":[ \ + {"Name":"s1", "Type":"string"}, \ + {"Name":"s2", "Type":"int"}, \ + {"Name":"s3", "Type":"string"} + ], \ + "Location":"s3://bucket-path/", \ + "SerdeInfo":{ \ + "SerializationLibrary":"org.openx.data.jsonserde.JsonSerDe"} \ + }, \ + "Parameters":{ \ + "classification":"json"} \ + }' \ + --profile my-profile \ + --endpoint https://glue.us-east-1.amazonaws.com + +This command produces no output. + +For more information, see `Defining Tables in the AWS Glue Data Catalog `__ in the *AWS Glue Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/delete-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/delete-job.rst new file mode 100644 index 000000000..d31b5bc1c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/delete-job.rst @@ -0,0 +1,14 @@ +**To delete a job** + +The following ``delete-job`` example deletes a job that is no longer needed. :: + + aws glue delete-job \ + --job-name my-testing-job + +Output:: + + { + "JobName": "my-testing-job" + } + +For more information, see `Working with Jobs on the AWS Glue Console `__ in the *AWS Glue Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/get-databases.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/get-databases.rst new file mode 100644 index 000000000..88d71baae --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/get-databases.rst @@ -0,0 +1,76 @@ +**To list the definitions of some or all of the databases in the AWS Glue Data Catalog** + +The following ``get-databases`` example returns information about the databases in the Data Catalog. :: + + aws glue get-databases + +Output:: + + { + "DatabaseList": [ + { + "Name": "default", + "Description": "Default Hive database", + "LocationUri": "file:/spark-warehouse", + "CreateTime": 1602084052.0, + "CreateTableDefaultPermissions": [ + { + "Principal": { + "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS" + }, + "Permissions": [ + "ALL" + ] + } + ], + "CatalogId": "111122223333" + }, + { + "Name": "flights-db", + "CreateTime": 1587072847.0, + "CreateTableDefaultPermissions": [ + { + "Principal": { + "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS" + }, + "Permissions": [ + "ALL" + ] + } + ], + "CatalogId": "111122223333" + }, + { + "Name": "legislators", + "CreateTime": 1601415625.0, + "CreateTableDefaultPermissions": [ + { + "Principal": { + "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS" + }, + "Permissions": [ + "ALL" + ] + } + ], + "CatalogId": "111122223333" + }, + { + "Name": "tempdb", + "CreateTime": 1601498566.0, + "CreateTableDefaultPermissions": [ + { + "Principal": { + "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS" + }, + "Permissions": [ + "ALL" + ] + } + ], + "CatalogId": "111122223333" + } + ] + } + +For more information, see `Defining a Database in Your Data Catalog `__ in the *AWS Glue Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/get-job-run.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/get-job-run.rst new file mode 100644 index 000000000..6aef0ef31 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/get-job-run.rst @@ -0,0 +1,39 @@ +**To get information about a job run** + +The following ``get-job-run`` example retrieves information about a job run. :: + + aws glue get-job-run \ + --job-name "Combine legistators data" \ + --run-id jr_012e176506505074d94d761755e5c62538ee1aad6f17d39f527e9140cf0c9a5e + +Output:: + + { + "JobRun": { + "Id": "jr_012e176506505074d94d761755e5c62538ee1aad6f17d39f527e9140cf0c9a5e", + "Attempt": 0, + "JobName": "Combine legistators data", + "StartedOn": 1602873931.255, + "LastModifiedOn": 1602874075.985, + "CompletedOn": 1602874075.985, + "JobRunState": "SUCCEEDED", + "Arguments": { + "--enable-continuous-cloudwatch-log": "true", + "--enable-metrics": "", + "--enable-spark-ui": "true", + "--job-bookmark-option": "job-bookmark-enable", + "--spark-event-logs-path": "s3://aws-glue-assets-111122223333-us-east-1/sparkHistoryLogs/" + }, + "PredecessorRuns": [], + "AllocatedCapacity": 10, + "ExecutionTime": 117, + "Timeout": 2880, + "MaxCapacity": 10.0, + "WorkerType": "G.1X", + "NumberOfWorkers": 10, + "LogGroupName": "/aws-glue/jobs", + "GlueVersion": "2.0" + } + } + +For more information, see `Job Runs `__ in the *AWS Glue Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/get-job-runs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/get-job-runs.rst new file mode 100644 index 000000000..c4482b0ef --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/get-job-runs.rst @@ -0,0 +1,87 @@ +**To get information about all job runs for a job** + +The following ``get-job-runs`` example retrieves information about job runs for a job. :: + + aws glue get-job-runs \ + --job-name "my-testing-job" + +Output:: + + { + "JobRuns": [ + { + "Id": "jr_012e176506505074d94d761755e5c62538ee1aad6f17d39f527e9140cf0c9a5e", + "Attempt": 0, + "JobName": "my-testing-job", + "StartedOn": 1602873931.255, + "LastModifiedOn": 1602874075.985, + "CompletedOn": 1602874075.985, + "JobRunState": "SUCCEEDED", + "Arguments": { + "--enable-continuous-cloudwatch-log": "true", + "--enable-metrics": "", + "--enable-spark-ui": "true", + "--job-bookmark-option": "job-bookmark-enable", + "--spark-event-logs-path": "s3://aws-glue-assets-111122223333-us-east-1/sparkHistoryLogs/" + }, + "PredecessorRuns": [], + "AllocatedCapacity": 10, + "ExecutionTime": 117, + "Timeout": 2880, + "MaxCapacity": 10.0, + "WorkerType": "G.1X", + "NumberOfWorkers": 10, + "LogGroupName": "/aws-glue/jobs", + "GlueVersion": "2.0" + }, + { + "Id": "jr_03cc19ddab11c4e244d3f735567de74ff93b0b3ef468a713ffe73e53d1aec08f_attempt_2", + "Attempt": 2, + "PreviousRunId": "jr_03cc19ddab11c4e244d3f735567de74ff93b0b3ef468a713ffe73e53d1aec08f_attempt_1", + "JobName": "my-testing-job", + "StartedOn": 1602811168.496, + "LastModifiedOn": 1602811282.39, + "CompletedOn": 1602811282.39, + "JobRunState": "FAILED", + "ErrorMessage": "An error occurred while calling o122.pyWriteDynamicFrame. + Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; + Request ID: 021AAB703DB20A2D; + S3 Extended Request ID: teZk24Y09TkXzBvMPG502L5VJBhe9DJuWA9/TXtuGOqfByajkfL/Tlqt5JBGdEGpigAqzdMDM/U=)", + "PredecessorRuns": [], + "AllocatedCapacity": 10, + "ExecutionTime": 110, + "Timeout": 2880, + "MaxCapacity": 10.0, + "WorkerType": "G.1X", + "NumberOfWorkers": 10, + "LogGroupName": "/aws-glue/jobs", + "GlueVersion": "2.0" + }, + { + "Id": "jr_03cc19ddab11c4e244d3f735567de74ff93b0b3ef468a713ffe73e53d1aec08f_attempt_1", + "Attempt": 1, + "PreviousRunId": "jr_03cc19ddab11c4e244d3f735567de74ff93b0b3ef468a713ffe73e53d1aec08f", + "JobName": "my-testing-job", + "StartedOn": 1602811020.518, + "LastModifiedOn": 1602811138.364, + "CompletedOn": 1602811138.364, + "JobRunState": "FAILED", + "ErrorMessage": "An error occurred while calling o122.pyWriteDynamicFrame. + Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; + Request ID: 2671D37856AE7ABB; + S3 Extended Request ID: RLJCJw20brV+PpC6GpORahyF2fp9flB5SSb2bTGPnUSPVizLXRl1PN3QZldb+v1o9qRVktNYbW8=)", + "PredecessorRuns": [], + "AllocatedCapacity": 10, + "ExecutionTime": 113, + "Timeout": 2880, + "MaxCapacity": 10.0, + "WorkerType": "G.1X", + "NumberOfWorkers": 10, + "LogGroupName": "/aws-glue/jobs", + "GlueVersion": "2.0" + } + ] + } + + +For more information, see `Job Runs `__ in the *AWS Glue Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/get-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/get-job.rst new file mode 100644 index 000000000..6be3d59e8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/get-job.rst @@ -0,0 +1,35 @@ +**To retrieve information about a job** + +The following ``get-job`` example retrieves information about a job. :: + + aws glue get-job \ + --job-name my-testing-job + +Output:: + + { + "Job": { + "Name": "my-testing-job", + "Role": "Glue_DefaultRole", + "CreatedOn": 1602805698.167, + "LastModifiedOn": 1602805698.167, + "ExecutionProperty": { + "MaxConcurrentRuns": 1 + }, + "Command": { + "Name": "gluestreaming", + "ScriptLocation": "s3://janetst-bucket-01/Scripts/test_script.scala", + "PythonVersion": "2" + }, + "DefaultArguments": { + "--class": "GlueApp", + "--job-language": "scala" + }, + "MaxRetries": 0, + "AllocatedCapacity": 10, + "MaxCapacity": 10.0, + "GlueVersion": "1.0" + } + } + +For more information, see `Jobs `__ in the *AWS Glue Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/get-plan.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/get-plan.rst new file mode 100644 index 000000000..2826b65e9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/get-plan.rst @@ -0,0 +1,92 @@ +**To get the generated code for mapping data from source tables to target tables** + +The following ``get-plan`` retrieves the generated code for mapping columns from the data source to the data target. :: + + aws glue get-plan --mapping '[ \ + { \ + "SourcePath":"sensorid", \ + "SourceTable":"anything", \ + "SourceType":"int", \ + "TargetPath":"sensorid", \ + "TargetTable":"anything", \ + "TargetType":"int" \ + }, \ + { \ + "SourcePath":"currenttemperature", \ + "SourceTable":"anything", \ + "SourceType":"int", \ + "TargetPath":"currenttemperature", \ + "TargetTable":"anything", \ + "TargetType":"int" \ + }, \ + { \ + "SourcePath":"status", \ + "SourceTable":"anything", \ + "SourceType":"string", \ + "TargetPath":"status", \ + "TargetTable":"anything", \ + "TargetType":"string" \ + }]' \ + --source '{ \ + "DatabaseName":"tempdb", \ + "TableName":"s3-source" \ + }' \ + --sinks '[ \ + { \ + "DatabaseName":"tempdb", \ + "TableName":"my-s3-sink" \ + }]' + --language "scala" + --endpoint https://glue.us-east-1.amazonaws.com + --output "text" + +Output:: + + import com.amazonaws.services.glue.ChoiceOption + import com.amazonaws.services.glue.GlueContext + import com.amazonaws.services.glue.MappingSpec + import com.amazonaws.services.glue.ResolveSpec + import com.amazonaws.services.glue.errors.CallSite + import com.amazonaws.services.glue.util.GlueArgParser + import com.amazonaws.services.glue.util.Job + import com.amazonaws.services.glue.util.JsonOptions + import org.apache.spark.SparkContext + import scala.collection.JavaConverters._ + + object GlueApp { + def main(sysArgs: Array[String]) { + val spark: SparkContext = new SparkContext() + val glueContext: GlueContext = new GlueContext(spark) + // @params: [JOB_NAME] + val args = GlueArgParser.getResolvedOptions(sysArgs, Seq("JOB_NAME").toArray) + Job.init(args("JOB_NAME"), glueContext, args.asJava) + // @type: DataSource + // @args: [database = "tempdb", table_name = "s3-source", transformation_ctx = "datasource0"] + // @return: datasource0 + // @inputs: [] + val datasource0 = glueContext.getCatalogSource(database = "tempdb", tableName = "s3-source", redshiftTmpDir = "", transformationContext = "datasource0").getDynamicFrame() + // @type: ApplyMapping + // @args: [mapping = [("sensorid", "int", "sensorid", "int"), ("currenttemperature", "int", "currenttemperature", "int"), ("status", "string", "status", "string")], transformation_ctx = "applymapping1"] + // @return: applymapping1 + // @inputs: [frame = datasource0] + val applymapping1 = datasource0.applyMapping(mappings = Seq(("sensorid", "int", "sensorid", "int"), ("currenttemperature", "int", "currenttemperature", "int"), ("status", "string", "status", "string")), caseSensitive = false, transformationContext = "applymapping1") + // @type: SelectFields + // @args: [paths = ["sensorid", "currenttemperature", "status"], transformation_ctx = "selectfields2"] + // @return: selectfields2 + // @inputs: [frame = applymapping1] + val selectfields2 = applymapping1.selectFields(paths = Seq("sensorid", "currenttemperature", "status"), transformationContext = "selectfields2") + // @type: ResolveChoice + // @args: [choice = "MATCH_CATALOG", database = "tempdb", table_name = "my-s3-sink", transformation_ctx = "resolvechoice3"] + // @return: resolvechoice3 + // @inputs: [frame = selectfields2] + val resolvechoice3 = selectfields2.resolveChoice(choiceOption = Some(ChoiceOption("MATCH_CATALOG")), database = Some("tempdb"), tableName = Some("my-s3-sink"), transformationContext = "resolvechoice3") + // @type: DataSink + // @args: [database = "tempdb", table_name = "my-s3-sink", transformation_ctx = "datasink4"] + // @return: datasink4 + // @inputs: [frame = resolvechoice3] + val datasink4 = glueContext.getCatalogSink(database = "tempdb", tableName = "my-s3-sink", redshiftTmpDir = "", transformationContext = "datasink4").writeDynamicFrame(resolvechoice3) + Job.commit() + } + } + +For more information, see `Editing Scripts in AWS Glue `__ in the *AWS Glue Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/get-tables.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/get-tables.rst new file mode 100644 index 000000000..c3168876e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/get-tables.rst @@ -0,0 +1,127 @@ +**To list the definitions of some or all of the tables in the specified database** + +The following ``get-tables`` example returns information about the tables in the specified database. :: + + aws glue get-tables --database-name 'tempdb' + +Output:: + + { + "TableList": [ + { + "Name": "my-s3-sink", + "DatabaseName": "tempdb", + "CreateTime": 1602730539.0, + "UpdateTime": 1602730539.0, + "Retention": 0, + "StorageDescriptor": { + "Columns": [ + { + "Name": "sensorid", + "Type": "int" + }, + { + "Name": "currenttemperature", + "Type": "int" + }, + { + "Name": "status", + "Type": "string" + } + ], + "Location": "s3://janetst-bucket-01/test-s3-output/", + "Compressed": false, + "NumberOfBuckets": 0, + "SerdeInfo": { + "SerializationLibrary": "org.openx.data.jsonserde.JsonSerDe" + }, + "SortColumns": [], + "StoredAsSubDirectories": false + }, + "Parameters": { + "classification": "json" + }, + "CreatedBy": "arn:aws:iam::007436865787:user/JRSTERN", + "IsRegisteredWithLakeFormation": false, + "CatalogId": "007436865787" + }, + { + "Name": "s3-source", + "DatabaseName": "tempdb", + "CreateTime": 1602730658.0, + "UpdateTime": 1602730658.0, + "Retention": 0, + "StorageDescriptor": { + "Columns": [ + { + "Name": "sensorid", + "Type": "int" + }, + { + "Name": "currenttemperature", + "Type": "int" + }, + { + "Name": "status", + "Type": "string" + } + ], + "Location": "s3://janetst-bucket-01/", + "Compressed": false, + "NumberOfBuckets": 0, + "SortColumns": [], + "StoredAsSubDirectories": false + }, + "Parameters": { + "classification": "json" + }, + "CreatedBy": "arn:aws:iam::007436865787:user/JRSTERN", + "IsRegisteredWithLakeFormation": false, + "CatalogId": "007436865787" + }, + { + "Name": "test-kinesis-input", + "DatabaseName": "tempdb", + "CreateTime": 1601507001.0, + "UpdateTime": 1601507001.0, + "Retention": 0, + "StorageDescriptor": { + "Columns": [ + { + "Name": "sensorid", + "Type": "int" + }, + { + "Name": "currenttemperature", + "Type": "int" + }, + { + "Name": "status", + "Type": "string" + } + ], + "Location": "my-testing-stream", + "Compressed": false, + "NumberOfBuckets": 0, + "SerdeInfo": { + "SerializationLibrary": "org.openx.data.jsonserde.JsonSerDe" + }, + "SortColumns": [], + "Parameters": { + "kinesisUrl": "https://kinesis.us-east-1.amazonaws.com", + "streamName": "my-testing-stream", + "typeOfData": "kinesis" + }, + "StoredAsSubDirectories": false + }, + "Parameters": { + "classification": "json" + }, + "CreatedBy": "arn:aws:iam::007436865787:user/JRSTERN", + "IsRegisteredWithLakeFormation": false, + "CatalogId": "007436865787" + } + ] + } + +For more information, see `Defining Tables in the AWS Glue Data Catalog `__ in the *AWS Glue Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/start-crawler.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/start-crawler.rst new file mode 100644 index 000000000..23864389e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/start-crawler.rst @@ -0,0 +1,11 @@ +**To start a crawler** + +The following ``start-crawler`` example starts a crawler. :: + + aws glue start-crawler --name my-crawler + +Output:: + + None + +For more information, see `Defining Crawlers `__ in the *AWS Glue Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/start-job-run.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/start-job-run.rst new file mode 100644 index 000000000..f17f4143b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/glue/start-job-run.rst @@ -0,0 +1,14 @@ +**To start running a job** + +The following ``start-job-run`` example starts a job. :: + + aws glue start-job-run \ + --job-name my-job + +Output:: + + { + "JobRunId": "jr_22208b1f44eb5376a60569d4b21dd20fcb8621e1a366b4e7b2494af764b82ded" + } + +For more information, see `Authoring Jobs `__ in the *AWS Glue Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/grafana/list-workspaces.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/grafana/list-workspaces.rst new file mode 100644 index 000000000..c8ee3ff80 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/grafana/list-workspaces.rst @@ -0,0 +1,48 @@ +**To list workspaces for the account in the Region specified by the user credential** + +The following ``list-workspaces`` example lists Grafana workspaces for the account's Region. :: + + aws grafana list-workspaces + +Output:: + + { + "workspaces": [ + { + "authentication": { + "providers": [ + "AWS_SSO" + ] + }, + "created": "2022-04-04T16:20:21.796000-07:00", + "description": "to test tags", + "endpoint": "g-949e7b44df.grafana-workspace.us-east-1.amazonaws.com", + "grafanaVersion": "8.2", + "id": "g-949e7b44df", + "modified": "2022-04-04T16:20:21.796000-07:00", + "name": "testtag2", + "notificationDestinations": [ + "SNS" + ], + "status": "ACTIVE" + }, + { + "authentication": { + "providers": [ + "AWS_SSO" + ] + }, + "created": "2022-04-20T10:22:15.115000-07:00", + "description": "ww", + "endpoint": "g-bffa51ed1b.grafana-workspace.us-east-1.amazonaws.com", + "grafanaVersion": "8.2", + "id": "g-bffa51ed1b", + "modified": "2022-04-20T10:22:15.115000-07:00", + "name": "ww", + "notificationDestinations": [ + "SNS" + ], + "status": "ACTIVE" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/associate-role-to-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/associate-role-to-group.rst new file mode 100644 index 000000000..36cf4d06b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/associate-role-to-group.rst @@ -0,0 +1,15 @@ +**To associate a role with a Greengrass group** + +The following ``associate-role-to-group`` example associates the specified IAM role with a Greengrass group. The group role is used by local Lambda functions and connectors to access AWS services. For example, your group role might grant permissions required for CloudWatch Logs integration. :: + + aws greengrass associate-role-to-group \ + --group-id 2494ee3f-7f8a-4e92-a78b-d205f808b84b \ + --role-arn arn:aws:iam::123456789012:role/GG-Group-Role + +Output:: + + { + "AssociatedAt": "2019-09-10T20:03:30Z" + } + +For more information, see `Configure the Group Role `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/associate-service-role-to-account.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/associate-service-role-to-account.rst new file mode 100644 index 000000000..72b07485f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/associate-service-role-to-account.rst @@ -0,0 +1,14 @@ +**To associate a service role with your AWS account** + +The following ``associate-service-role-to-account`` example associates an IAM service role, specified by its ARN, with AWS IoT Greengrass in your AWS account. You must have previously created the service role in IAM, and you must associate a policy document with it that allows AWS IoT Greengrass to assume this role. :: + + aws greengrass associate-service-role-to-account \ + --role-arn "arn:aws:iam::123456789012:role/service-role/Greengrass_ServiceRole" + +Output:: + + { + "AssociatedAt": "2019-06-25T18:12:45Z" + } + +For more information, see `Greengrass Service Role `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-connector-definition-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-connector-definition-version.rst new file mode 100644 index 000000000..846499e25 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-connector-definition-version.rst @@ -0,0 +1,16 @@ +**To create a connector definition version** + +The following ``create-connector-definition-version`` example creates a connector definition version and associates it with the specified connector definition. All connectors in a version define values for their parameters. :: + + aws greengrass create-connector-definition-version \ + --connector-definition-id "55d0052b-0d7d-44d6-b56f-21867215e118" \ + --connectors "[{\"Id\": \"MyTwilioNotificationsConnector\", \"ConnectorArn\": \"arn:aws:greengrass:us-west-2::/connectors/TwilioNotifications/versions/2\", \"Parameters\": {\"TWILIO_ACCOUNT_SID\": \"AC1a8d4204890840d7fc482aab38090d57\", \"TwilioAuthTokenSecretArn\": \"arn:aws:secretsmanager:us-west-2:123456789012:secret:greengrass-TwilioAuthToken-ntSlp6\", \"TwilioAuthTokenSecretArn-ResourceId\": \"TwilioAuthToken\", \"DefaultFromPhoneNumber\": \"4254492999\"}}]" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/connectors/55d0052b-0d7d-44d6-b56f-21867215e118/versions/33f709a0-c825-49cb-9eea-dc8964fbd635", + "CreationTimestamp": "2019-06-24T20:46:30.134Z", + "Id": "55d0052b-0d7d-44d6-b56f-21867215e118", + "Version": "33f709a0-c825-49cb-9eea-dc8964fbd635" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-connector-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-connector-definition.rst new file mode 100644 index 000000000..b6d31db9b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-connector-definition.rst @@ -0,0 +1,21 @@ +**To create a connector definition** + +The following ``create-connector-definition`` example example creates a connector definition and an initial connector definition version. The initial version contains one connector. All connectors in a version define values for their parameters. :: + + aws greengrass create-connector-definition \ + --name MySNSConnector \ + --initial-version "{\"Connectors\": [{\"Id\":\"MySNSConnector\",\"ConnectorArn\":\"arn:aws:greengrass:us-west-2::/connectors/SNS/versions/1\",\"Parameters\": {\"DefaultSNSArn\":\"arn:aws:sns:us-west-2:123456789012:GGConnectorTopic\"}}]}" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/connectors/b5c4ebfd-f672-49a3-83cd-31c7216a7bb8", + "CreationTimestamp": "2019-06-19T19:30:01.300Z", + "Id": "b5c4ebfd-f672-49a3-83cd-31c7216a7bb8", + "LastUpdatedTimestamp": "2019-06-19T19:30:01.300Z", + "LatestVersion": "63c57963-c7c2-4a26-a7e2-7bf478ea2623", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/connectors/b5c4ebfd-f672-49a3-83cd-31c7216a7bb8/versions/63c57963-c7c2-4a26-a7e2-7bf478ea2623", + "Name": "MySNSConnector" + } + +For more information, see `Getting Started with Greengrass Connectors (CLI) `__ in the **AWS IoT Greengrass Developer Guide**. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-core-definition-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-core-definition-version.rst new file mode 100644 index 000000000..4901ce6d7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-core-definition-version.rst @@ -0,0 +1,84 @@ +**To create a core definition version** + +The following ``create-core-definition-version`` example creates a core definition version and associates it with the specified core definition. The version can contain one core only. Before you can create a core, you must first create and provision the corresponding AWS IoT thing. This process includes the following ``iot`` commands, which return the ``ThingArn`` and ``CertificateArn`` required for the ``create-core-definition-version`` command. + +* Create the AWS IoT thing that corresponds to the core device:: + + aws iot create-thing \ + --thing-name "MyCoreDevice" + +Output:: + + { + "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyCoreDevice", + "thingName": "MyCoreDevice", + "thingId": "cb419a19-9099-4515-9cec-e9b0e760608a" + } + +* Create public and private keys and the core device certificate for the thing. This example uses the ``create-keys-and-certificate`` command and requires write permissions to the current directory. Alternatively, you can use the ``create-certificate-from-csr`` command. :: + + aws iot create-keys-and-certificate \ + --set-as-active \ + --certificate-pem-outfile "myCore.cert.pem" \ + --public-key-outfile "myCore.public.key" \ + --private-key-outfile "myCore.private.key" + +Output:: + + { + "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/123a15ec415668c2349a76170b64ac0878231c1e21ec83c10e92a1EXAMPLExyz", + "certificatePem": "-----BEGIN CERTIFICATE-----\nMIIDWTCAkGgAwIBATgIUCgq6EGqou6zFqWgIZRndgQEFW+gwDQYJKoZIhvc...KdGewQS\n-----END CERTIFICATE-----\n", + "keyPair": { + "PublicKey": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBzrqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqKpRgnn6yq26U3y...wIDAQAB\n-----END PUBLIC KEY-----\n", + "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIABAKCAQEAqKpRgnn6yq26U3yt5YFZquyukfRjbMXDcNOK4rMCxDR...fvY4+te\n-----END RSA PRIVATE KEY-----\n" + }, + "certificateId": "123a15ec415668c2349a76170b64ac0878231c1e21ec83c10e92a1EXAMPLExyz" + } + +* Create an AWS IoT policy that allows ``iot`` and ``greengrass`` actions. For simplicity, the following policy allows actions on all resources, but your policy should be more restrictive. :: + + aws iot create-policy \ + --policy-name "Core_Devices" \ + --policy-document "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"iot:Publish\",\"iot:Subscribe\",\"iot:Connect\",\"iot:Receive\"],\"Resource\":[\"*\"]},{\"Effect\":\"Allow\",\"Action\":[\"iot:GetThingShadow\",\"iot:UpdateThingShadow\",\"iot:DeleteThingShadow\"],\"Resource\":[\"*\"]},{\"Effect\":\"Allow\",\"Action\":[\"greengrass:*\"],\"Resource\":[\"*\"]}]}" + +Output:: + + { + "policyName": "Core_Devices", + "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/Core_Devices", + "policyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"iot:Publish\",\"iot:Subscribe\",\"iot:Connect\",\"iot:Receive\"],\"Resource\":[\"*\"]},{\"Effect\":\"Allow\",\"Action\":[\"iot:GetThingShadow\",\"iot:UpdateThingShadow\",\"iot:DeleteThingShadow\"],\"Resource\":[\"*\"]},{\"Effect\":\"Allow\",\"Action\":[\"greengrass:*\"],\"Resource\":[\"*\"]}]}", + "policyVersionId": "1" + } + +* Attach the policy to the certificate:: + + aws iot attach-policy \ + --policy-name "Core_Devices" \ + --target "arn:aws:iot:us-west-2:123456789012:cert/123a15ec415668c2349a76170b64ac0878231c1e21ec83c10e92a1EXAMPLExyz" + +This command produces no output. + +* Attach the thing to the certificate:: + + aws iot attach-thing-principal \ + --thing-name "MyCoreDevice" \ + --principal "arn:aws:iot:us-west-2:123456789012:cert/123a15ec415668c2349a76170b64ac0878231c1e21ec83c10e92a1EXAMPLExyz" + +This command produces no output. + +* Create the core definition version:: + + aws greengrass create-core-definition-version \ + --core-definition-id "582efe12-b05a-409e-9a24-a2ba1bcc4a12" \ + --cores "[{\"Id\":\"MyCoreDevice\",\"ThingArn\":\"arn:aws:iot:us-west-2:123456789012:thing/MyCoreDevice\",\"CertificateArn\":\"arn:aws:iot:us-west-2:123456789012:cert/123a15ec415668c2349a76170b64ac0878231c1e21ec83c10e92a1EXAMPLExyz\",\"SyncShadow\":true}]" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/cores/582efe12-b05a-409e-9a24-a2ba1bcc4a12/versions/3fdc1190-2ce5-44de-b98b-eec8f9571014", + "Version": "3fdc1190-2ce5-44de-b98b-eec8f9571014", + "CreationTimestamp": "2019-09-18T00:15:09.838Z", + "Id": "582efe12-b05a-409e-9a24-a2ba1bcc4a12" + } + +For more information, see `Configure the AWS IoT Greengrass Core `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-core-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-core-definition.rst new file mode 100644 index 000000000..49d6c9105 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-core-definition.rst @@ -0,0 +1,104 @@ +**Example 1: To create an empty core definition** + +The following ``create-core-definition`` example creates an empty (no initial version) Greengrass core definition. Before the core is usable, you must use the ``create-core-definition-version`` command to provide the other parameters for the core. :: + + aws greengrass create-core-definition \ + --name cliGroup_Core + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/cores/b5c08008-54cb-44bd-9eec-c121b04283b5", + "CreationTimestamp": "2019-06-25T18:23:22.106Z", + "Id": "b5c08008-54cb-44bd-9eec-c121b04283b5", + "LastUpdatedTimestamp": "2019-06-25T18:23:22.106Z", + "Name": "cliGroup_Core" + } + +**Example 2: To create a core definition with an initial version** + +The following ``create-core-definition`` example creates a core definition that contains an initial core definition version. The version can contain one core only. Before you can create a core, you must first create and provision the corresponding AWS IoT thing. This process includes the following ``iot`` commands, which return the ``ThingArn`` and ``CertificateArn`` required for the ``create-core-definition`` command. + +* Create the AWS IoT thing that corresponds to the core device:: + + aws iot create-thing \ + --thing-name "MyCoreDevice" + +Output:: + + { + "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyCoreDevice", + "thingName": "MyCoreDevice", + "thingId": "cb419a19-9099-4515-9cec-e9b0e760608a" + } + +* Create public and private keys and the core device certificate for the thing. This example uses the ``create-keys-and-certificate`` command and requires write permissions to the current directory. Alternatively, you can use the ``create-certificate-from-csr`` command. :: + + aws iot create-keys-and-certificate \ + --set-as-active \ + --certificate-pem-outfile "myCore.cert.pem" \ + --public-key-outfile "myCore.public.key" \ + --private-key-outfile "myCore.private.key" + +Output:: + + { + "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/123a15ec415668c2349a76170b64ac0878231c1e21ec83c10e92a1EXAMPLExyz", + "certificatePem": "-----BEGIN CERTIFICATE-----\nMIIDWTCAkGgAwIBATgIUCgq6EGqou6zFqWgIZRndgQEFW+gwDQYJKoZIhvc...KdGewQS\n-----END CERTIFICATE-----\n", + "keyPair": { + "PublicKey": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBzrqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqKpRgnn6yq26U3y...wIDAQAB\n-----END PUBLIC KEY-----\n", + "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIABAKCAQEAqKpRgnn6yq26U3yt5YFZquyukfRjbMXDcNOK4rMCxDR...fvY4+te\n-----END RSA PRIVATE KEY-----\n" + }, + "certificateId": "123a15ec415668c2349a76170b64ac0878231c1e21ec83c10e92a1EXAMPLExyz" + } + +* Create an AWS IoT policy that allows ``iot`` and ``greengrass`` actions. For simplicity, the following policy allows actions on all resources, but your policy should be more restrictive. :: + + aws iot create-policy \ + --policy-name "Core_Devices" \ + --policy-document "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"iot:Publish\",\"iot:Subscribe\",\"iot:Connect\",\"iot:Receive\"],\"Resource\":[\"*\"]},{\"Effect\":\"Allow\",\"Action\":[\"iot:GetThingShadow\",\"iot:UpdateThingShadow\",\"iot:DeleteThingShadow\"],\"Resource\":[\"*\"]},{\"Effect\":\"Allow\",\"Action\":[\"greengrass:*\"],\"Resource\":[\"*\"]}]}" + +Output:: + + { + "policyName": "Core_Devices", + "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/Core_Devices", + "policyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"iot:Publish\",\"iot:Subscribe\",\"iot:Connect\",\"iot:Receive\"],\"Resource\":[\"*\"]},{\"Effect\":\"Allow\",\"Action\":[\"iot:GetThingShadow\",\"iot:UpdateThingShadow\",\"iot:DeleteThingShadow\"],\"Resource\":[\"*\"]},{\"Effect\":\"Allow\",\"Action\":[\"greengrass:*\"],\"Resource\":[\"*\"]}]}", + "policyVersionId": "1" + } + +* Attach the policy to the certificate:: + + aws iot attach-policy \ + --policy-name "Core_Devices" \ + --target "arn:aws:iot:us-west-2:123456789012:cert/123a15ec415668c2349a76170b64ac0878231c1e21ec83c10e92a1EXAMPLExyz" + +This command produces no output. + +* Attach the thing to the certificate:: + + aws iot attach-thing-principal \ + --thing-name "MyCoreDevice" \ + --principal "arn:aws:iot:us-west-2:123456789012:cert/123a15ec415668c2349a76170b64ac0878231c1e21ec83c10e92a1EXAMPLExyz" + +This command produces no output. + +* Create the core definition:: + + aws greengrass create-core-definition \ + --name "MyCores" \ + --initial-version "{\"Cores\":[{\"Id\":\"MyCoreDevice\",\"ThingArn\":\"arn:aws:iot:us-west-2:123456789012:thing/MyCoreDevice\",\"CertificateArn\":\"arn:aws:iot:us-west-2:123456789012:cert/123a15ec415668c2349a76170b64ac0878231c1e21ec83c10e92a1EXAMPLExyz\",\"SyncShadow\":true}]}" + +Output:: + + { + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/cores/582efe12-b05a-409e-9a24-a2ba1bcc4a12/versions/cc87b5b3-8f4b-465d-944c-1d6de5dbfcdb", + "Name": "MyCores", + "LastUpdatedTimestamp": "2019-09-18T00:11:06.197Z", + "LatestVersion": "cc87b5b3-8f4b-465d-944c-1d6de5dbfcdb", + "CreationTimestamp": "2019-09-18T00:11:06.197Z", + "Id": "582efe12-b05a-409e-9a24-a2ba1bcc4a12", + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/cores/582efe12-b05a-409e-9a24-a2ba1bcc4a12" + } + +For more information, see `Configure the AWS IoT Greengrass Core `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-deployment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-deployment.rst new file mode 100644 index 000000000..4fad72c00 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-deployment.rst @@ -0,0 +1,17 @@ +**To create a deployment for a version of a Greengrass group** + +The following ``create-deployment`` example deploys the specified version of a Greengrass group. :: + + aws greengrass create-deployment \ + --deployment-type NewDeployment \ + --group-id "ce2e7d01-3240-4c24-b8e6-f6f6e7a9eeca" \ + --group-version-id "dc40c1e9-e8c8-4d28-a84d-a9cad5f599c9" + +Output:: + + { + "DeploymentArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/ce2e7d01-3240-4c24-b8e6-f6f6e7a9eeca/deployments/bfceb608-4e97-45bc-af5c-460144270308", + "DeploymentId": "bfceb608-4e97-45bc-af5c-460144270308" + } + +For more information, see `Getting Started with Connectors (CLI) `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-device-definition-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-device-definition-version.rst new file mode 100644 index 000000000..2102be1ad --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-device-definition-version.rst @@ -0,0 +1,79 @@ +**To create a device definition version** + +The following ``create-device-definition-version`` example creates a device definition version and associates it with the specified device definition. The version defines two devices. +Before you can create a Greengrass device, you must first create and provision the corresponding AWS IoT thing. This process includes the following ``iot`` commands that you must run to get the required information for the Greengrass command: + +* Create the AWS IoT thing that corresponds to the device:: + + aws iot create-thing \ + --thing-name "InteriorTherm" + +Output:: + + { + "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/InteriorTherm", + "thingName": "InteriorTherm", + "thingId": "01d4763c-78a6-46c6-92be-7add080394bf" + } + +* Create public and private keys and the device certificate for the thing. This example uses the ``create-keys-and-certificate`` command and requires write permissions to the current directory. Alternatively, you can use the ``create-certificate-from-csr`` command:: + + aws iot create-keys-and-certificate \ + --set-as-active \ + --certificate-pem-outfile "myDevice.cert.pem" \ + --public-key-outfile "myDevice.public.key" \ + --private-key-outfile "myDevice.private.key" + +Output:: + + { + "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/66a415ec415668c2349a76170b64ac0878231c1e21ec83c10e92a18bd568eb92", + "certificatePem": "-----BEGIN CERTIFICATE-----\nMIIDWTCAkGgAwIBATgIUCgq6EGqou6zFqWgIZRndgQEFW+gwDQYJKoZIhvc...KdGewQS\n-----END CERTIFICATE-----\n", + "keyPair": { + "PublicKey": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBzrqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqKpRgnn6yq26U3y...wIDAQAB\n-----END PUBLIC KEY-----\n", + "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIABAKCAQEAqKpRgnn6yq26U3yt5YFZquyukfRjbMXDcNOK4rMCxDR...fvY4+te\n-----END RSA PRIVATE KEY-----\n" + }, + "certificateId": "66a415ec415668c2349a76170b64ac0878231c1e21ec83c10e92a18bd568eb92" + } + +* Create an AWS IoT policy that allows ``iot`` and ``greengrass`` actions. For simplicity, the following policy allows actions on all resources, but your policy can be more restrictive:: + + aws iot create-policy \ + --policy-name "GG_Devices" \ + --policy-document "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"iot:Publish\",\"iot:Subscribe\",\"iot:Connect\",\"iot:Receive\"],\"Resource\":[\"*\"]},{\"Effect\":\"Allow\",\"Action\":[\"iot:GetThingShadow\",\"iot:UpdateThingShadow\",\"iot:DeleteThingShadow\"],\"Resource\":[\"*\"]},{\"Effect\":\"Allow\",\"Action\":[\"greengrass:*\"],\"Resource\":[\"*\"]}]}" + +Output:: + + { + "policyName": "GG_Devices", + "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GG_Devices", + "policyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"iot:Publish\",\"iot:Subscribe\",\"iot:Connect\",\"iot:Receive\"],\"Resource\":[\"*\"]},{\"Effect\":\"Allow\",\"Action\":[\"iot:GetThingShadow\",\"iot:UpdateThingShadow\",\"iot:DeleteThingShadow\"],\"Resource\":[\"*\"]},{\"Effect\":\"Allow\",\"Action\":[\"greengrass:*\"],\"Resource\":[\"*\"]}]}", + "policyVersionId": "1" + } + +* Attach the policy to the certificate:: + + aws iot attach-policy \ + --policy-name "GG_Devices" \ + --target "arn:aws:iot:us-west-2:123456789012:cert/66a415ec415668c2349a76170b64ac0878231c1e21ec83c10e92a18bd568eb92" + +* Attach the thing to the certificate :: + + aws iot attach-thing-principal \ + --thing-name "InteriorTherm" \ + --principal "arn:aws:iot:us-west-2:123456789012:cert/66a415ec415668c2349a76170b64ac0878231c1e21ec83c10e92a18bd568eb92" + +After you create and configure the IoT thing as shown above, use the ``ThingArn`` and ``CertificateArn`` from the first two commands in the following example. :: + + aws greengrass create-device-definition-version \ + --device-definition-id "f9ba083d-5ad4-4534-9f86-026a45df1ccd" \ + --devices "[{\"Id\":\"InteriorTherm\",\"ThingArn\":\"arn:aws:iot:us-west-2:123456789012:thing/InteriorTherm\",\"CertificateArn\":\"arn:aws:iot:us-west-2:123456789012:cert/66a415ec415668c2349a76170b64ac0878231c1e21ec83c10e92a18bd568eb92\",\"SyncShadow\":true},{\"Id\":\"ExteriorTherm\",\"ThingArn\":\"arn:aws:iot:us-west-2:123456789012:thing/ExteriorTherm\",\"CertificateArn\":\"arn:aws:iot:us-west-2:123456789012:cert/6c52ce1b47bde88a637e9ccdd45fe4e4c2c0a75a6866f8f63d980ee22fa51e02\",\"SyncShadow\":true}]" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/devices/f9ba083d-5ad4-4534-9f86-026a45df1ccd/versions/83c13984-6fed-447e-84d5-5b8aa45d5f71", + "Version": "83c13984-6fed-447e-84d5-5b8aa45d5f71", + "CreationTimestamp": "2019-09-11T00:15:09.838Z", + "Id": "f9ba083d-5ad4-4534-9f86-026a45df1ccd" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-device-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-device-definition.rst new file mode 100644 index 000000000..1a55cc433 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-device-definition.rst @@ -0,0 +1,82 @@ +**To create a device definition** + +The following ``create-device-definition`` example creates a device definition that contains an initial device definition version. The initial version defines two devices. +Before you can create a Greengrass device, you must first create and provision the corresponding AWS IoT thing. This process includes the following ``iot`` commands that you must run to get the required information for the Greengrass command: + +* Create the AWS IoT thing that corresponds to the device:: + + aws iot create-thing \ + --thing-name "InteriorTherm" + +Output:: + + { + "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/InteriorTherm", + "thingName": "InteriorTherm", + "thingId": "01d4763c-78a6-46c6-92be-7add080394bf" + } + +* Create public and private keys and the device certificate for the thing. This example uses the ``create-keys-and-certificate`` command and requires write permissions to the current directory. Alternatively, you can use the ``create-certificate-from-csr`` command:: + + aws iot create-keys-and-certificate \ + --set-as-active \ + --certificate-pem-outfile "myDevice.cert.pem" \ + --public-key-outfile "myDevice.public.key" \ + --private-key-outfile "myDevice.private.key" + +Output:: + + { + "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/66a415ec415668c2349a76170b64ac0878231c1e21ec83c10e92a18bd568eb92", + "certificatePem": "-----BEGIN CERTIFICATE-----\nMIIDWTCAkGgAwIBATgIUCgq6EGqou6zFqWgIZRndgQEFW+gwDQYJKoZIhvc...KdGewQS\n-----END CERTIFICATE-----\n", + "keyPair": { + "PublicKey": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBzrqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqKpRgnn6yq26U3y...wIDAQAB\n-----END PUBLIC KEY-----\n", + "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIABAKCAQEAqKpRgnn6yq26U3yt5YFZquyukfRjbMXDcNOK4rMCxDR...fvY4+te\n-----END RSA PRIVATE KEY-----\n" + }, + "certificateId": "66a415ec415668c2349a76170b64ac0878231c1e21ec83c10e92a18bd568eb92" + } + +* Create an AWS IoT policy that allows ``iot`` and ``greengrass`` actions. For simplicity, the following policy allows actions on all resources, but your policy can be more restrictive:: + + aws iot create-policy \ + --policy-name "GG_Devices" \ + --policy-document "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"iot:Publish\",\"iot:Subscribe\",\"iot:Connect\",\"iot:Receive\"],\"Resource\":[\"*\"]},{\"Effect\":\"Allow\",\"Action\":[\"iot:GetThingShadow\",\"iot:UpdateThingShadow\",\"iot:DeleteThingShadow\"],\"Resource\":[\"*\"]},{\"Effect\":\"Allow\",\"Action\":[\"greengrass:*\"],\"Resource\":[\"*\"]}]}" + +Output:: + + { + "policyName": "GG_Devices", + "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GG_Devices", + "policyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"iot:Publish\",\"iot:Subscribe\",\"iot:Connect\",\"iot:Receive\"],\"Resource\":[\"*\"]},{\"Effect\":\"Allow\",\"Action\":[\"iot:GetThingShadow\",\"iot:UpdateThingShadow\",\"iot:DeleteThingShadow\"],\"Resource\":[\"*\"]},{\"Effect\":\"Allow\",\"Action\":[\"greengrass:*\"],\"Resource\":[\"*\"]}]}", + "policyVersionId": "1" + } + +* Attach the policy to the certificate:: + + aws iot attach-policy \ + --policy-name "GG_Devices" \ + --target "arn:aws:iot:us-west-2:123456789012:cert/66a415ec415668c2349a76170b64ac0878231c1e21ec83c10e92a18bd568eb92" + +* Attach the thing to the certificate :: + + aws iot attach-thing-principal \ + --thing-name "InteriorTherm" \ + --principal "arn:aws:iot:us-west-2:123456789012:cert/66a415ec415668c2349a76170b64ac0878231c1e21ec83c10e92a18bd568eb92" + +After you create and configure the IoT thing as shown above, use the ``ThingArn`` and ``CertificateArn`` from the first two commands in the following example. :: + + aws greengrass create-device-definition \ + --name "Sensors" \ + --initial-version "{\"Devices\":[{\"Id\":\"InteriorTherm\",\"ThingArn\":\"arn:aws:iot:us-west-2:123456789012:thing/InteriorTherm\",\"CertificateArn\":\"arn:aws:iot:us-west-2:123456789012:cert/66a415ec415668c2349a76170b64ac0878231c1e21ec83c10e92a18bd568eb92\",\"SyncShadow\":true},{\"Id\":\"ExteriorTherm\",\"ThingArn\":\"arn:aws:iot:us-west-2:123456789012:thing/ExteriorTherm\",\"CertificateArn\":\"arn:aws:iot:us-west-2:123456789012:cert/6c52ce1b47bde88a637e9ccdd45fe4e4c2c0a75a6866f8f63d980ee22fa51e02\",\"SyncShadow\":true}]}" + +Output:: + + { + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/devices/f9ba083d-5ad4-4534-9f86-026a45df1ccd/versions/3b5cc510-58c1-44b5-9d98-4ad858ffa795", + "Name": "Sensors", + "LastUpdatedTimestamp": "2019-09-11T00:11:06.197Z", + "LatestVersion": "3b5cc510-58c1-44b5-9d98-4ad858ffa795", + "CreationTimestamp": "2019-09-11T00:11:06.197Z", + "Id": "f9ba083d-5ad4-4534-9f86-026a45df1ccd", + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/devices/f9ba083d-5ad4-4534-9f86-026a45df1ccd" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-function-definition-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-function-definition-version.rst new file mode 100644 index 000000000..75d33994b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-function-definition-version.rst @@ -0,0 +1,15 @@ +**To create a version of the function definition** + +The following ``create-function-definition-version`` example creates a new version of the specified function definition. This version specifies a single function whose ID is ``Hello-World-function``, allows access to the file system, and specifies a maximum memory size and timeout period. :: + + aws greengrass create-function-definition-version \ + --cli-input-json "{\"FunctionDefinitionId\": \"e626e8c9-3b8f-4bf3-9cdc-d26ecdeb9fa3\",\"Functions\": [{\"Id\": \"Hello-World-function\", \"FunctionArn\": \""arn:aws:lambda:us-west-2:123456789012:function:Greengrass_HelloWorld_Counter:gghw-alias"\",\"FunctionConfiguration\": {\"Environment\": {\"AccessSysfs\": true},\"Executable\": \"greengrassHelloWorldCounter.function_handler\",\"MemorySize\": 16000,\"Pinned\": false,\"Timeout\": 25}}]}" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/e626e8c9-3b8f-4bf3-9cdc-d26ecdeb9fa3/versions/74abd1cc-637e-4abe-8684-9a67890f4043", + "CreationTimestamp": "2019-06-25T22:03:43.376Z", + "Id": "e626e8c9-3b8f-4bf3-9cdc-d26ecdeb9fa3", + "Version": "74abd1cc-637e-4abe-8684-9a67890f4043" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-function-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-function-definition.rst new file mode 100644 index 000000000..4716b31c0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-function-definition.rst @@ -0,0 +1,21 @@ +**To create a Lambda function definition** + +The following ``create-function-definition`` example creates a Lambda function definition and an initial version by providing a list of Lambda functions (in this case, a list of just one function named ``TempMonitorFunction``) and their configurations. Before you can create the function definition, you need the Lambda function ARN. To create the function and its alias, use Lambda's ``create-function`` and ``publish-version`` commands. Lambda's ``create-function`` command requires the ARN of the execution role, even though AWS IoT Greengrass doesn't use that role because permissions are specified in the Greengrass group role. You can use the IAM ``create-role`` command to create an empty role to get an ARN to use with Lambda's ``create-function`` or you can use an existing execution role. :: + + aws greengrass create-function-definition \ + --name MyGreengrassFunctions \ + --initial-version "{\"Functions\": [{\"Id\": \"TempMonitorFunction\", \"FunctionArn\": \"arn:aws:lambda:us-west-2:123456789012:function:TempMonitor:GG_TempMonitor\", \"FunctionConfiguration\": {\"Executable\": \"temp_monitor.function_handler\", \"MemorySize\": 16000,\"Timeout\": 5}}]}" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/3b0d0080-87e7-48c6-b182-503ec743a08b", + "CreationTimestamp": "2019-06-19T22:24:44.585Z", + "Id": "3b0d0080-87e7-48c6-b182-503ec743a08b", + "LastUpdatedTimestamp": "2019-06-19T22:24:44.585Z", + "LatestVersion": "67f918b9-efb4-40b0-b87c-de8c9faf085b", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/3b0d0080-87e7-48c6-b182-503ec743a08b/versions/67f918b9-efb4-40b0-b87c-de8c9faf085b", + "Name": "MyGreengrassFunctions" + } + +For more information, see `How to Configure Local Resource Access Using the AWS Command Line Interface `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-group-certificate-authority.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-group-certificate-authority.rst new file mode 100644 index 000000000..aeb02b14a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-group-certificate-authority.rst @@ -0,0 +1,14 @@ +**To create a certificate authority (CA) for a group** + +The following ``create-group-certificate-authority`` example creates or rotates a CA for the specified group. :: + + aws greengrass create-group-certificate-authority \ + --group-id "8eaadd72-ce4b-4f15-892a-0cc4f3a343f1" + +Output:: + + { + "GroupCertificateAuthorityArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/8eaadd72-ce4b-4f15-892a-0cc4f3a343f1/certificateauthorities/d31630d674c4437f6c5dbc0dca56312a902171ce2d086c38e509c8EXAMPLEcc5" + } + +For more information, see `AWS IoT Greengrass Security `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-group-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-group-version.rst new file mode 100644 index 000000000..52730d05d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-group-version.rst @@ -0,0 +1,32 @@ +**To create a version of a Greengrass group** + +The following ``create-group-version`` example creates a group version and associates it with the specified group. The version references the core, resource, connector, function, and subscription versions that contain the entities to include in this group version. You must create these entities before you can create the group version. + +* To create a resource definition with an initial version, use the ``create-resource-definition`` command. + +* To create a connector definition with an initial version, use the ``create-connector-definition`` command. + +* To create a function definition with an initial version, use the ``create-function-definition`` command. + +* To create a subscription definition with an initial version, use the ``create-subscription-definition`` command. + +* To retrieve the ARN of the latest core definition version, use the ``get-group-version`` command and specify the ID of the latest group version. :: + + aws greengrass create-group-version \ + --group-id "ce2e7d01-3240-4c24-b8e6-f6f6e7a9eeca" \ + --core-definition-version-arn "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/cores/6a630442-8708-4838-ad36-eb98849d975e/versions/6c87151b-1fb4-4cb2-8b31-6ee715d8f8ba" \ + --resource-definition-version-arn "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/resources/c8bb9ebc-c3fd-40a4-9c6a-568d75569d38/versions/a5f94d0b-f6bc-40f4-bb78-7a1c5fe13ba1" \ + --connector-definition-version-arn "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/connectors/55d0052b-0d7d-44d6-b56f-21867215e118/versions/78a3331b-895d-489b-8823-17b4f9f418a0" \ + --function-definition-version-arn "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/3b0d0080-87e7-48c6-b182-503ec743a08b/versions/67f918b9-efb4-40b0-b87c-de8c9faf085b" \ + --subscription-definition-version-arn "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/subscriptions/9d611d57-5d5d-44bd-a3b4-feccbdd69112/versions/aa645c47-ac90-420d-9091-8c7ffa4f103f" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/ce2e7d01-3240-4c24-b8e6-f6f6e7a9eeca/versions/e10b0459-4345-4a09-88a4-1af1f5d34638", + "CreationTimestamp": "2019-06-20T18:42:47.020Z", + "Id": "ce2e7d01-3240-4c24-b8e6-f6f6e7a9eeca", + "Version": "e10b0459-4345-4a09-88a4-1af1f5d34638" + } + +For more information, see `Overview of the AWS IoT Greengrass Group Object Model `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-group.rst new file mode 100644 index 000000000..997648434 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-group.rst @@ -0,0 +1,18 @@ +**To create a Greeengrass group** + +The following ``create-group`` example creates a group named ``cli-created-group``. :: + + aws greengrass create-group \ + --name cli-created-group + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/4e22bd92-898c-436b-ade5-434d883ff749", + "CreationTimestamp": "2019-06-25T18:07:17.688Z", + "Id": "4e22bd92-898c-436b-ade5-434d883ff749", + "LastUpdatedTimestamp": "2019-06-25T18:07:17.688Z", + "Name": "cli-created-group" + } + +For more information, see `Overview of the AWS IoT Greengrass Group Object Model `__ in the *AWS IoT Greengrass Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-logger-definition-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-logger-definition-version.rst new file mode 100644 index 000000000..0f7431dd3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-logger-definition-version.rst @@ -0,0 +1,18 @@ +**To create a logger definition version** + +The following ``create-logger-definition-version`` example creates a logger definition version and associates it with a logger definition. The version defines four logging configurations: 1) system component logs on the file system of the core device, 2) user-defined Lambda function logs on the file system of the core device, 3) system component logs in Amazon CloudWatch Logs, and 4) user-defined Lambda function logs in Amazon CloudWatch Logs. Note: For CloudWatch Logs integration, your group role must grant appropriate permissions. :: + + aws greengrass create-logger-definition-version \ + --logger-definition-id "a454b62a-5d56-4ca9-bdc4-8254e1662cb0" \ + --loggers "[{\"Id\":\"1\",\"Component\":\"GreengrassSystem\",\"Level\":\"ERROR\",\"Space\":10240,\"Type\":\"FileSystem\"},{\"Id\":\"2\",\"Component\":\"Lambda\",\"Level\":\"INFO\",\"Space\":10240,\"Type\":\"FileSystem\"},{\"Id\":\"3\",\"Component\":\"GreengrassSystem\",\"Level\":\"WARN\",\"Type\":\"AWSCloudWatch\"},{\"Id\":\"4\",\"Component\":\"Lambda\",\"Level\":\"INFO\",\"Type\":\"AWSCloudWatch\"}]" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/loggers/a454b62a-5d56-4ca9-bdc4-8254e1662cb0/versions/49aedb1e-01a3-4d39-9871-3a052573f1ea", + "Version": "49aedb1e-01a3-4d39-9871-3a052573f1ea", + "CreationTimestamp": "2019-07-24T00:04:48.523Z", + "Id": "a454b62a-5d56-4ca9-bdc4-8254e1662cb0" + } + +For more information, see `Monitoring with AWS IoT Greengrass Logs `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-logger-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-logger-definition.rst new file mode 100644 index 000000000..c3cbacd3c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-logger-definition.rst @@ -0,0 +1,21 @@ +**To create a logger definition** + +The following ``create-logger-definition`` example creates a logger definition that contains an initial logger definition version. The initial version defines three logging configurations: 1) system component logs on the file system of the core device, 2) user-defined Lambda function logs on the file system of the core device, and 3) user-defined Lambda function logs in Amazon CloudWatch Logs. Note: For CloudWatch Logs integration, your group role must grant appropriate permissions. :: + + aws greengrass create-logger-definition \ + --name "LoggingConfigs" \ + --initial-version "{\"Loggers\":[{\"Id\":\"1\",\"Component\":\"GreengrassSystem\",\"Level\":\"ERROR\",\"Space\":10240,\"Type\":\"FileSystem\"},{\"Id\":\"2\",\"Component\":\"Lambda\",\"Level\":\"INFO\",\"Space\":10240,\"Type\":\"FileSystem\"},{\"Id\":\"3\",\"Component\":\"Lambda\",\"Level\":\"INFO\",\"Type\":\"AWSCloudWatch\"}]}" + +Output:: + + { + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/loggers/a454b62a-5d56-4ca9-bdc4-8254e1662cb0/versions/de1d9854-1588-4525-b25e-b378f60f2322", + "Name": "LoggingConfigs", + "LastUpdatedTimestamp": "2019-07-23T23:52:17.165Z", + "LatestVersion": "de1d9854-1588-4525-b25e-b378f60f2322", + "CreationTimestamp": "2019-07-23T23:52:17.165Z", + "Id": "a454b62a-5d56-4ca9-bdc4-8254e1662cb0", + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/loggers/a454b62a-5d56-4ca9-bdc4-8254e1662cb0" + } + +For more information, see `Monitoring with AWS IoT Greengrass Logs `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-resource-definition-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-resource-definition-version.rst new file mode 100644 index 000000000..7b43e154b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-resource-definition-version.rst @@ -0,0 +1,16 @@ +**To create a version of a resource definition** + +The following ``create-resource-definition-version`` example creates a new version of a TwilioAuthToken. :: + + aws greengrass create-resource-definition-version \ + --resource-definition-id "c8bb9ebc-c3fd-40a4-9c6a-568d75569d38" \ + --resources "[{\"Id\": \"TwilioAuthToken\",\"Name\": \"MyTwilioAuthToken\",\"ResourceDataContainer\": {\"SecretsManagerSecretResourceData\": {\"ARN\": \"arn:aws:secretsmanager:us-west-2:123456789012:secret:greengrass-TwilioAuthToken-ntSlp6\"}}}]" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/resources/c8bb9ebc-c3fd-40a4-9c6a-568d75569d38/versions/b3bcada0-5fb6-42df-bf0b-1ee4f15e769e", + "CreationTimestamp": "2019-06-24T21:17:25.623Z", + "Id": "c8bb9ebc-c3fd-40a4-9c6a-568d75569d38", + "Version": "b3bcada0-5fb6-42df-bf0b-1ee4f15e769e" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-resource-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-resource-definition.rst new file mode 100644 index 000000000..b8d5c32a5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-resource-definition.rst @@ -0,0 +1,21 @@ +**To create a resource definition** + +The following ``create-resource-definition`` example creates a resource definition that contains a list of resources to be used in a Greengrass group. In this example, an initial version of the resource definition is included by providing a list of resources. The list includes one resource for a Twilio authorization token and the ARN for a secret stored in AWS Secrets Manager. You must create the secret before you can create the resource definition. :: + + aws greengrass create-resource-definition \ + --name MyGreengrassResources \ + --initial-version "{\"Resources\": [{\"Id\": \"TwilioAuthToken\",\"Name\": \"MyTwilioAuthToken\",\"ResourceDataContainer\": {\"SecretsManagerSecretResourceData\": {\"ARN\": \"arn:aws:secretsmanager:us-west-2:123456789012:secret:greengrass-TwilioAuthToken-ntSlp6\"}}}]}" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/resources/c8bb9ebc-c3fd-40a4-9c6a-568d75569d38", + "CreationTimestamp": "2019-06-19T21:51:28.212Z", + "Id": "c8bb9ebc-c3fd-40a4-9c6a-568d75569d38", + "LastUpdatedTimestamp": "2019-06-19T21:51:28.212Z", + "LatestVersion": "a5f94d0b-f6bc-40f4-bb78-7a1c5fe13ba1", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/resources/c8bb9ebc-c3fd-40a4-9c6a-568d75569d38/versions/a5f94d0b-f6bc-40f4-bb78-7a1c5fe13ba1", + "Name": "MyGreengrassResources" + } + +For more information, see `How to Configure Local Resource Access Using the AWS Command Line Interface `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-software-update-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-software-update-job.rst new file mode 100644 index 000000000..efc149a94 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-software-update-job.rst @@ -0,0 +1,21 @@ +**To create a software update job for a core** + +The following ``create-software-update-job`` example creates an over-the-air (OTA) update job to update the AWS IoT Greengrass Core software on the core whose name is ``MyFirstGroup_Core``. This command requires an IAM role that allows access to software update packages in Amazon S3 and includes ``iot.amazonaws.com`` as a trusted entity. :: + + aws greengrass create-software-update-job \ + --update-targets-architecture armv7l \ + --update-targets [\"arn:aws:iot:us-west-2:123456789012:thing/MyFirstGroup_Core\"] \ + --update-targets-operating-system raspbian \ + --software-to-update core \ + --s3-url-signer-role arn:aws:iam::123456789012:role/OTA_signer_role \ + --update-agent-log-level WARN + +Output:: + + { + "IotJobId": "GreengrassUpdateJob_30b353e3-3af7-4786-be25-4c446663c09e", + "IotJobArn": "arn:aws:iot:us-west-2:123456789012:job/GreengrassUpdateJob_30b353e3-3af7-4786-be25-4c446663c09e", + "PlatformSoftwareVersion": "1.9.3" + } + +For more information, see `OTA Updates of AWS IoT Greengrass Core Software `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-subscription-definition-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-subscription-definition-version.rst new file mode 100644 index 000000000..5d26332d7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-subscription-definition-version.rst @@ -0,0 +1,16 @@ +**To create a new version of a subscription definition** + +The following ``create-subscription-definition-version`` example creates a new version of a subscription definition that contains three subscriptions: a trigger notification, a temperature input, and an output status. :: + + aws greengrass create-subscription-definition-version \ + --subscription-definition-id "9d611d57-5d5d-44bd-a3b4-feccbdd69112" \ + --subscriptions "[{\"Id\": \"TriggerNotification\", \"Source\": \"arn:aws:lambda:us-west-2:123456789012:function:TempMonitor:GG_TempMonitor\", \"Subject\": \"twilio/txt\", \"Target\": \"arn:aws:greengrass:us-west-2::/connectors/TwilioNotifications/versions/1\"},{\"Id\": \"TemperatureInput\", \"Source\": \"cloud\", \"Subject\": \"temperature/input\", \"Target\": \"arn:aws:lambda:us-west-2:123456789012:function:TempMonitor:GG_TempMonitor\"},{\"Id\": \"OutputStatus\", \"Source\": \"arn:aws:greengrass:us-west-2::/connectors/TwilioNotifications/versions/1\", \"Subject\": \"twilio/message/status\", \"Target\": \"cloud\"}]" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/subscriptions/9d611d57-5d5d-44bd-a3b4-feccbdd69112/versions/7b65dfae-50b6-4d0f-b3e0-27728bfb0620", + "CreationTimestamp": "2019-06-24T21:21:33.837Z", + "Id": "9d611d57-5d5d-44bd-a3b4-feccbdd69112", + "Version": "7b65dfae-50b6-4d0f-b3e0-27728bfb0620" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-subscription-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-subscription-definition.rst new file mode 100644 index 000000000..100310368 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/create-subscription-definition.rst @@ -0,0 +1,19 @@ +**To create a subscription definition** + +The following ``create-subscription-definition`` example creates a subscription definition and specifies its initial version. The initial version contains three subscriptions: one for the MQTT topic to which the connector subscribes, one to allow a function to receive temperature readings from AWS IoT, and one to allow AWS IoT to receive status information from the connector. The example provides the ARN for the Lambda function alias that was created earlier by using Lambda's ``create-alias`` command. :: + + aws greengrass create-subscription-definition \ + --initial-version "{\"Subscriptions\": [{\"Id\": \"TriggerNotification\", \"Source\": \"arn:aws:lambda:us-west-2:123456789012:function:TempMonitor:GG_TempMonitor\", \"Subject\": \"twilio/txt\", \"Target\": \"arn:aws:greengrass:us-west-2::/connectors/TwilioNotifications/versions/1\"},{\"Id\": \"TemperatureInput\", \"Source\": \"cloud\", \"Subject\": \"temperature/input\", \"Target\": \"arn:aws:lambda:us-west-2:123456789012:function:TempMonitor:GG_TempMonitor\"},{\"Id\": \"OutputStatus\", \"Source\": \"arn:aws:greengrass:us-west-2::/connectors/TwilioNotifications/versions/1\", \"Subject\": \"twilio/message/status\", \"Target\": \"cloud\"}]}" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/subscriptions/9d611d57-5d5d-44bd-a3b4-feccbdd69112", + "CreationTimestamp": "2019-06-19T22:34:26.677Z", + "Id": "9d611d57-5d5d-44bd-a3b4-feccbdd69112", + "LastUpdatedTimestamp": "2019-06-19T22:34:26.677Z", + "LatestVersion": "aa645c47-ac90-420d-9091-8c7ffa4f103f", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/subscriptions/9d611d57-5d5d-44bd-a3b4-feccbdd69112/versions/aa645c47-ac90-420d-9091-8c7ffa4f103f" + } + +For more information, see `Getting Started with Connectors (CLI) `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-connector-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-connector-definition.rst new file mode 100644 index 000000000..09387c47f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-connector-definition.rst @@ -0,0 +1,8 @@ +**To delete a connector definition** + +The following ``delete-connector-definition`` example deletes the specified Greengrass connector definition. If you delete a connector definition that is used by a group, that group can't be deployed successfully. :: + + aws greengrass delete-connector-definition \ + --connector-definition-id "b5c4ebfd-f672-49a3-83cd-31c7216a7bb8" + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-core-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-core-definition.rst new file mode 100644 index 000000000..ad5c2ca6f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-core-definition.rst @@ -0,0 +1,8 @@ +**To delete a core definition** + +The following ``delete-core-definition`` example deletes the specified Greengrass core definition, including all versions. If you delete a core that is associated with a Greengrass group, that group can't be deployed successfully. :: + + aws greengrass delete-core-definition \ + --core-definition-id "ff36cc5f-9f98-4994-b468-9d9b6dc52abd" + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-device-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-device-definition.rst new file mode 100644 index 000000000..f5d1a60f6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-device-definition.rst @@ -0,0 +1,8 @@ +**To delete a device definition** + +The following ``delete-device-definition`` example deletes the specified device definition, including all of its versions. If you delete a device definition version that is used by a group version, the group version cannot be deployed successfully. :: + + aws greengrass delete-device-definition \ + --device-definition-id "f9ba083d-5ad4-4534-9f86-026a45df1ccd" + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-function-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-function-definition.rst new file mode 100644 index 000000000..92995a285 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-function-definition.rst @@ -0,0 +1,8 @@ +**To delete a function definition** + +The following ``delete-function-definition`` example deletes the specified Greengrass function definition. If you delete a function definition that is used by a group, that group can't be deployed successfully. :: + + aws greengrass delete-function-definition \ + --function-definition-id "fd4b906a-dff3-4c1b-96eb-52ebfcfac06a" + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-group.rst new file mode 100644 index 000000000..64e398078 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-group.rst @@ -0,0 +1,8 @@ +**To delete a group** + +The following ``delete-group`` example deletes the specified Greengrass group. :: + + aws greengrass delete-group \ + --group-id "4e22bd92-898c-436b-ade5-434d883ff749" + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-logger-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-logger-definition.rst new file mode 100644 index 000000000..3ca78b61f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-logger-definition.rst @@ -0,0 +1,10 @@ +**To delete a logger definition** + +The following ``delete-logger-definition`` example deletes the specified logger definition, including all logger definition versions. If you delete a logger definition version that is used by a group version, the group version cannot be deployed successfully. :: + + aws greengrass delete-logger-definition \ + --logger-definition-id "a454b62a-5d56-4ca9-bdc4-8254e1662cb0" + +This command produces no output. + +For more information, see `Monitoring with AWS IoT Greengrass Logs `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-resource-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-resource-definition.rst new file mode 100644 index 000000000..aa356dca6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-resource-definition.rst @@ -0,0 +1,8 @@ +**To delete a resource definition** + +The following ``delete-resource-definition`` example deletes the specified resource definition, including all resource versions. If you delete a resource definition that is used by a group, that group can't be deployed successfully. :: + + aws greengrass delete-resource-definition \ + --resource-definition-id "ad8c101d-8109-4b0e-b97d-9cc5802ab658" + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-subscription-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-subscription-definition.rst new file mode 100644 index 000000000..0f9a139da --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/delete-subscription-definition.rst @@ -0,0 +1,8 @@ +**To delete a subscription definition** + +The following ``delete-subscription-definition`` example deletes the specified Greengrass subscription definition. If you delete a subscription that is being used by a group, that group can't be deployed successfully. :: + + aws greengrass delete-subscription-definition \ + --subscription-definition-id "cd6f1c37-d9a4-4e90-be94-01a7404f5967" + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/disassociate-role-from-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/disassociate-role-from-group.rst new file mode 100644 index 000000000..2748d6268 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/disassociate-role-from-group.rst @@ -0,0 +1,14 @@ +**To disassociate the role from a Greengrass group** + +The following ``disassociate-role-from-group`` example disassociates the IAM role from the specified Greengrass group. :: + + aws greengrass disassociate-role-from-group \ + --group-id 2494ee3f-7f8a-4e92-a78b-d205f808b84b + +Output:: + + { + "DisassociatedAt": "2019-09-10T20:05:49Z" + } + +For more information, see `Configure the Group Role `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/disassociate-service-role-from-account.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/disassociate-service-role-from-account.rst new file mode 100644 index 000000000..87d85681c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/disassociate-service-role-from-account.rst @@ -0,0 +1,13 @@ +**To disassociate a service role from your AWS account** + +The following ``disassociate-service-role-from-account`` example removes the service role that is associated with your AWS account. If you are not using the service role in any AWS Region, use the ``delete-role-policy`` command to detach the ``AWSGreengrassResourceAccessRolePolicy`` managed policy from the role, and then use the ``delete-role`` command to delete the role. :: + + aws greengrass disassociate-service-role-from-account + +Output:: + + { + "DisassociatedAt": "2019-06-25T22:12:55Z" + } + +For more information, see `Greengrass Service Role `__ in the **AWS IoT Greengrass Developer Guide**. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-associated-role.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-associated-role.rst new file mode 100644 index 000000000..bcd23d510 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-associated-role.rst @@ -0,0 +1,15 @@ +**To get the role associated with a Greengrass group** + +The following ``get-associated-role`` example gets the IAM role that's associated with the specified Greengrass group. The group role is used by local Lambda functions and connectors to access AWS services. :: + + aws greengrass get-associated-role \ + --group-id 2494ee3f-7f8a-4e92-a78b-d205f808b84b + +Output:: + + { + "RoleArn": "arn:aws:iam::123456789012:role/GG-Group-Role", + "AssociatedAt": "2019-09-10T20:03:30Z" + } + +For more information, see `Configure the Group Role `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-bulk-deployment-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-bulk-deployment-status.rst new file mode 100644 index 000000000..e11ad9d28 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-bulk-deployment-status.rst @@ -0,0 +1,21 @@ +**To check the status of your bulk deployment** + +The following ``get-bulk-deployment-status`` example retrieves status information for the specified bulk deployment operation. In this example, the file that specified the groups to be deployed has an invalid input record. :: + + aws greengrass get-bulk-deployment-status \ + --bulk-deployment-id "870fb41b-6288-4e0c-bc76-a7ba4b4d3267" + +Output:: + + { + "BulkDeploymentMetrics": { + "InvalidInputRecords": 1, + "RecordsProcessed": 1, + "RetryAttempts": 0 + }, + "BulkDeploymentStatus": "Completed", + "CreatedAt": "2019-06-25T16:11:33.265Z", + "tags": {} + } + +For more information, see `Create Bulk Deployments for Groups `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-connectivity-info.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-connectivity-info.rst new file mode 100644 index 000000000..18a6d53a9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-connectivity-info.rst @@ -0,0 +1,37 @@ +**To get the connectivity information for a Greengrass core** + +The following ``get-connectivity-info`` example displays the endpoints that devices can use to connect to the specified Greengrass core. Connectivity information is a list of IP addresses or domain names, with corresponding port numbers and optional customer-defined metadata. :: + + aws greengrass get-connectivity-info \ + --thing-name "MyGroup_Core" + +Output:: + + { + "ConnectivityInfo": [ + { + "Metadata": "", + "PortNumber": 8883, + "HostAddress": "127.0.0.1", + "Id": "AUTOIP_127.0.0.1_0" + }, + { + "Metadata": "", + "PortNumber": 8883, + "HostAddress": "192.168.1.3", + "Id": "AUTOIP_192.168.1.3_1" + }, + { + "Metadata": "", + "PortNumber": 8883, + "HostAddress": "::1", + "Id": "AUTOIP_::1_2" + }, + { + "Metadata": "", + "PortNumber": 8883, + "HostAddress": "fe80::1e69:ed93:f5b:f6d", + "Id": "AUTOIP_fe80::1e69:ed93:f5b:f6d_3" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-connector-definition-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-connector-definition-version.rst new file mode 100644 index 000000000..5a2eb5948 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-connector-definition-version.rst @@ -0,0 +1,29 @@ +**To retrieve information about a specific version of a connector definition** + +The following ``get-connector-definition-version`` example retrieves information about the specified version of the specified connector definition. To retrieve the IDs of all versions of the connector definition, use the ``list-connector-definition-versions`` command. To retrieve the ID of the last version added to the connector definition, use the ``get-connector-definition`` command and check the ``LatestVersion`` property. :: + + aws greengrass get-connector-definition-version \ + --connector-definition-id "b5c4ebfd-f672-49a3-83cd-31c7216a7bb8" \ + --connector-definition-version-id "63c57963-c7c2-4a26-a7e2-7bf478ea2623" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/connectors/b5c4ebfd-f672-49a3-83cd-31c7216a7bb8/versions/63c57963-c7c2-4a26-a7e2-7bf478ea2623", + "CreationTimestamp": "2019-06-19T19:30:01.300Z", + "Definition": { + "Connectors": [ + { + "ConnectorArn": "arn:aws:greengrass:us-west-2::/connectors/SNS/versions/1", + "Id": "MySNSConnector", + "Parameters": { + "DefaultSNSArn": "arn:aws:sns:us-west-2:123456789012:GGConnectorTopic" + } + } + ] + }, + "Id": "b5c4ebfd-f672-49a3-83cd-31c7216a7bb8", + "Version": "63c57963-c7c2-4a26-a7e2-7bf478ea2623" + } + +For more information, see `Integrate with Services and Protocols Using Greengrass Connectors `__ in the **AWS IoT Greengrass Developer Guide**. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-connector-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-connector-definition.rst new file mode 100644 index 000000000..8a5624f4a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-connector-definition.rst @@ -0,0 +1,21 @@ +**To retrieve information about a connector definition** + +The following ``get-connector-definition`` example retrieves information about the specified connector definition. To retrieve the IDs of your connector definitions, use the ``list-connector-definitions`` command. :: + + aws greengrass get-connector-definition \ + --connector-definition-id "b5c4ebfd-f672-49a3-83cd-31c7216a7bb8" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/connectors/b5c4ebfd-f672-49a3-83cd-31c7216a7bb8", + "CreationTimestamp": "2019-06-19T19:30:01.300Z", + "Id": "b5c4ebfd-f672-49a3-83cd-31c7216a7bb8", + "LastUpdatedTimestamp": "2019-06-19T19:30:01.300Z", + "LatestVersion": "63c57963-c7c2-4a26-a7e2-7bf478ea2623", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/connectors/b5c4ebfd-f672-49a3-83cd-31c7216a7bb8/versions/63c57963-c7c2-4a26-a7e2-7bf478ea2623", + "Name": "MySNSConnector", + "tags": {} + } + +For more information, see `Integrate with Services and Protocols Using Greengrass Connectors `__ in the **AWS IoT Greengrass Developer Guide**. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-core-definition-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-core-definition-version.rst new file mode 100644 index 000000000..a8cee2bcb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-core-definition-version.rst @@ -0,0 +1,26 @@ +**To retrieve details about a specific version of the Greengrass core definition** + +The following ``get-core-definition-version`` example retrieves information about the specified version of the specified core definition. To retrieve the IDs of all versions of the core definition, use the ``list-core-definition-versions`` command. To retrieve the ID of the last version added to the core definition, use the ``get-core-definition`` command and check the ``LatestVersion`` property. :: + + aws greengrass get-core-definition-version \ + --core-definition-id "c906ed39-a1e3-4822-a981-7b9bd57b4b46" \ + --core-definition-version-id "42aeeac3-fd9d-4312-a8fd-ffa9404a20e0" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/cores/c906ed39-a1e3-4822-a981-7b9bd57b4b46/versions/42aeeac3-fd9d-4312-a8fd-ffa9404a20e0", + "CreationTimestamp": "2019-06-18T16:21:21.351Z", + "Definition": { + "Cores": [ + { + "CertificateArn": "arn:aws:iot:us-west-2:123456789012:cert/928dea7b82331b47c3ff77b0e763fc5e64e2f7c884e6ef391baed9b6b8e21b45", + "Id": "1a39aac7-0885-4417-91f6-23e4cea6c511", + "SyncShadow": false, + "ThingArn": "arn:aws:iot:us-west-2:123456789012:thing/GGGroup4Pi3_Core" + } + ] + }, + "Id": "c906ed39-a1e3-4822-a981-7b9bd57b4b46", + "Version": "42aeeac3-fd9d-4312-a8fd-ffa9404a20e0" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-core-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-core-definition.rst new file mode 100644 index 000000000..da6fe78fa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-core-definition.rst @@ -0,0 +1,18 @@ +**To retrieve details for a Greengrass core definition** + +The following ``get-core-definition`` example retrieves information about the specified core definition. To retrieve the IDs of your core definitions, use the ``list-core-definitions`` command. :: + + aws greengrass get-core-definition \ + --core-definition-id "c906ed39-a1e3-4822-a981-7b9bd57b4b46" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/cores/237d6916-27cf-457f-ba0c-e86cfb5d25cd", + "CreationTimestamp": "2018-10-18T04:47:06.721Z", + "Id": "237d6916-27cf-457f-ba0c-e86cfb5d25cd", + "LastUpdatedTimestamp": "2018-10-18T04:47:06.721Z", + "LatestVersion": "bd2cd6d4-2bc5-468a-8962-39e071e34b68", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/cores/237d6916-27cf-457f-ba0c-e86cfb5d25cd/versions/bd2cd6d4-2bc5-468a-8962-39e071e34b68", + "tags": {} + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-deployment-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-deployment-status.rst new file mode 100644 index 000000000..4abcf2adf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-deployment-status.rst @@ -0,0 +1,15 @@ +**To retrieve the status of a deployment** + +The following ``get-deployment-status`` example retrieves the status for the specified deployment of the specified Greengrass group. To get the deployment ID, use the ``list-deployments`` command and specify the group ID. :: + + aws greengrass get-deployment-status \ + --group-id "1013db12-8b58-45ff-acc7-704248f66731" \ + --deployment-id "1065b8a0-812b-4f21-9d5d-e89b232a530f" + +Output:: + + { + "DeploymentStatus": "Success", + "DeploymentType": "NewDeployment", + "UpdatedAt": "2019-06-18T17:04:44.761Z" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-device-definition-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-device-definition-version.rst new file mode 100644 index 000000000..9a19bd91e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-device-definition-version.rst @@ -0,0 +1,32 @@ +**To get a device definition version** + +The following ``get-device-definition-version`` example retrieves information about the specified version of the specified device definition. To retrieve the IDs of all versions of the device definition, use the ``list-device-definition-versions`` command. To retrieve the ID of the last version added to the device definition, use the ``get-device-definition`` command and check the ``LatestVersion`` property. :: + + aws greengrass get-device-definition-version \ + --device-definition-id "f9ba083d-5ad4-4534-9f86-026a45df1ccd" \ + --device-definition-version-id "83c13984-6fed-447e-84d5-5b8aa45d5f71" + +Output:: + + { + "Definition": { + "Devices": [ + { + "CertificateArn": "arn:aws:iot:us-west-2:123456789012:cert/6c52ce1b47bde88a637e9ccdd45fe4e4c2c0a75a6866f8f63d980ee22fa51e02", + "ThingArn": "arn:aws:iot:us-west-2:123456789012:thing/ExteriorTherm", + "SyncShadow": true, + "Id": "ExteriorTherm" + }, + { + "CertificateArn": "arn:aws:iot:us-west-2:123456789012:cert/66a415ec415668c2349a76170b64ac0878231c1e21ec83c10e92a18bd568eb92", + "ThingArn": "arn:aws:iot:us-west-2:123456789012:thing/InteriorTherm", + "SyncShadow": true, + "Id": "InteriorTherm" + } + ] + }, + "Version": "83c13984-6fed-447e-84d5-5b8aa45d5f71", + "CreationTimestamp": "2019-09-11T00:15:09.838Z", + "Id": "f9ba083d-5ad4-4534-9f86-026a45df1ccd", + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/devices/f9ba083d-5ad4-4534-9f86-026a45df1ccd/versions/83c13984-6fed-447e-84d5-5b8aa45d5f71" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-device-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-device-definition.rst new file mode 100644 index 000000000..e4ccfab1a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-device-definition.rst @@ -0,0 +1,19 @@ +**To get a device definition** + +The following ``get-device-definition`` example retrieves information about the specified device definition. To retrieve the IDs of your device definitions, use the ``list-device-definitions`` command. :: + + aws greengrass get-device-definition \ + --device-definition-id "f9ba083d-5ad4-4534-9f86-026a45df1ccd" + +Output:: + + { + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/devices/f9ba083d-5ad4-4534-9f86-026a45df1ccd/versions/83c13984-6fed-447e-84d5-5b8aa45d5f71", + "Name": "TemperatureSensors", + "tags": {}, + "LastUpdatedTimestamp": "2019-09-11T00:19:03.698Z", + "LatestVersion": "83c13984-6fed-447e-84d5-5b8aa45d5f71", + "CreationTimestamp": "2019-09-11T00:11:06.197Z", + "Id": "f9ba083d-5ad4-4534-9f86-026a45df1ccd", + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/devices/f9ba083d-5ad4-4534-9f86-026a45df1ccd" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-function-definition-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-function-definition-version.rst new file mode 100644 index 000000000..5f9b10272 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-function-definition-version.rst @@ -0,0 +1,43 @@ +**To retrieve details about a specific version of a Lambda function** + +The following ``get-function-definition-version`` retrieves information about the specified version of the specified function definition. To retrieve the IDs of all versions of the function definition, use the ``list-function-definition-versions`` command. To retrieve the ID of the last version added to the function definition, use the ``get-function-definition`` command and check the ``LatestVersion`` property. :: + + aws greengrass get-function-definition-version \ + --function-definition-id "063f5d1a-1dd1-40b4-9b51-56f8993d0f85" \ + --function-definition-version-id "9748fda7-1589-4fcc-ac94-f5559e88678b" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/063f5d1a-1dd1-40b4-9b51-56f8993d0f85/versions/9748fda7-1589-4fcc-ac94-f5559e88678b", + "CreationTimestamp": "2019-06-18T17:04:30.776Z", + "Definition": { + "Functions": [ + { + "FunctionArn": "arn:aws:lambda:::function:GGIPDetector:1", + "FunctionConfiguration": { + "Environment": {}, + "MemorySize": 32768, + "Pinned": true, + "Timeout": 3 + }, + "Id": "26b69bdb-e547-46bc-9812-84ec04b6cc8c" + }, + { + "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:Greengrass_HelloWorld:GG_HelloWorld", + "FunctionConfiguration": { + "EncodingType": "json", + "Environment": { + "Variables": {} + }, + "MemorySize": 16384, + "Pinned": true, + "Timeout": 25 + }, + "Id": "384465a8-eedf-48c6-b793-4c35f7bfae9b" + } + ] + }, + "Id": "063f5d1a-1dd1-40b4-9b51-56f8993d0f85", + "Version": "9748fda7-1589-4fcc-ac94-f5559e88678b" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-function-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-function-definition.rst new file mode 100644 index 000000000..5d3058eb7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-function-definition.rst @@ -0,0 +1,18 @@ +**To retrieve a function definition** + +The following ``get-function-definition`` example displays details for the specified function definition. To retrieve the IDs of your function definitions, use the ``list-function-definitions`` command. :: + + aws greengrass get-function-definition \ + --function-definition-id "063f5d1a-1dd1-40b4-9b51-56f8993d0f85" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/063f5d1a-1dd1-40b4-9b51-56f8993d0f85", + "CreationTimestamp": "2019-06-18T16:21:21.431Z", + "Id": "063f5d1a-1dd1-40b4-9b51-56f8993d0f85", + "LastUpdatedTimestamp": "2019-06-18T16:21:21.431Z", + "LatestVersion": "9748fda7-1589-4fcc-ac94-f5559e88678b", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/063f5d1a-1dd1-40b4-9b51-56f8993d0f85/versions/9748fda7-1589-4fcc-ac94-f5559e88678b", + "tags": {} + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-group-certificate-authority.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-group-certificate-authority.rst new file mode 100644 index 000000000..b2ad3cb3b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-group-certificate-authority.rst @@ -0,0 +1,30 @@ +**To retrieve the CA associated with a Greengrass group** + +The following ``get-group-certificate-authority`` example retrieves the certificate authority (CA) that is associated with the specified Greengrass group. To get the certificate authority ID, use the ``list-group-certificate-authorities`` command and specify the group ID. :: + + aws greengrass get-group-certificate-authority \ + --group-id "1013db12-8b58-45ff-acc7-704248f66731" \ + --certificate-authority-id "f0430e1736ea8ed30cc5d5de9af67a7e3586bad9ae4d89c2a44163f65fdd8cf6" + +Output:: + + { + "GroupCertificateAuthorityArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/1013db12-8b58-45ff-acc7-704248f66731/certificateauthorities/f0430e1736ea8ed30cc5d5de9af67a7e3586bad9ae4d89c2a44163f65fdd8cf6", + "GroupCertificateAuthorityId": "f0430e1736ea8ed30cc5d5de9af67a7e3586bad9ae4d89c2a44163f65fdd8cf6", + "PemEncodedCertificate": "-----BEGIN CERTIFICATE----- + MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBWEXAMPLEGA1UEBhMC + VVMxCzAJBgNVBAgTAldBMRAwDEXAMPLEEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 + b24xFDASBgNVBAEXAMPLESBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd + BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jEXAMPLENMTEwNDI1MjA0NTIxWhcN + MTIwNDI0MjA0EXAMPLEBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD + VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWEXAMPLEDASBgNVBAsTC0lBTSBDb25z + b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWEXAMPLEgkqhkiG9w0BCQEWEG5vb25lQGFt + YXpvbi5EXAMPLE8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ + 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CEXAMPLE93vUEIO3IyNoH/f0wYK8m9T + rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswYEXAMPLEgpE + Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKEXAMPLEAQEFBQADgYEAtCu4 + nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb + FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb + NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE= + -----END CERTIFICATE-----\n" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-group-certificate-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-group-certificate-configuration.rst new file mode 100644 index 000000000..3cb33b2f0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-group-certificate-configuration.rst @@ -0,0 +1,14 @@ +**To retrieve the configuration for the certificate authority used by the Greengrass group** + +The following ``get-group-certificate-configuration`` example retrieves the configuration for the certificate authority (CA) used by the specified Greengrass group. :: + + aws greengrass get-group-certificate-configuration \ + --group-id "1013db12-8b58-45ff-acc7-704248f66731" + +Output:: + + { + "CertificateAuthorityExpiryInMilliseconds": 2524607999000, + "CertificateExpiryInMilliseconds": 604800000, + "GroupId": "1013db12-8b58-45ff-acc7-704248f66731" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-group-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-group-version.rst new file mode 100644 index 000000000..3fcfe69aa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-group-version.rst @@ -0,0 +1,21 @@ +**To retrieve information about a version of a Greengrass group** + +The following ``get-group-version`` example retrieves information about the specified version of the specified group. To retrieve the IDs of all versions of the group, use the ``list-group-versions`` command. To retrieve the ID of the last version added to the group, use the ``get-group`` command and check the ``LatestVersion`` property. :: + + aws greengrass get-group-version \ + --group-id "1013db12-8b58-45ff-acc7-704248f66731" \ + --group-version-id "115136b3-cfd7-4462-b77f-8741a4b00e5e" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/1013db12-8b58-45ff-acc7-704248f66731/versions/115136b3-cfd7-4462-b77f-8741a4b00e5e", + "CreationTimestamp": "2019-06-18T17:04:30.915Z", + "Definition": { + "CoreDefinitionVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/cores/c906ed39-a1e3-4822-a981-7b9bd57b4b46/versions/42aeeac3-fd9d-4312-a8fd-ffa9404a20e0", + "FunctionDefinitionVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/063f5d1a-1dd1-40b4-9b51-56f8993d0f85/versions/9748fda7-1589-4fcc-ac94-f5559e88678b", + "SubscriptionDefinitionVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/subscriptions/70e49321-83d5-45d2-bc09-81f4917ae152/versions/88ae8699-12ac-4663-ba3f-4d7f0519140b" + }, + "Id": "1013db12-8b58-45ff-acc7-704248f66731", + "Version": "115136b3-cfd7-4462-b77f-8741a4b00e5e" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-group.rst new file mode 100644 index 000000000..5ae0f5932 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-group.rst @@ -0,0 +1,19 @@ +**To retrieve information about a Greengrass group** + +The following ``get-group`` example retrieves information about the specified Greengrass group. To retrieve the IDs of your groups, use the ``list-groups`` command. :: + + aws greengrass get-group \ + --group-id "1013db12-8b58-45ff-acc7-704248f66731" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/1013db12-8b58-45ff-acc7-704248f66731", + "CreationTimestamp": "2019-06-18T16:21:21.457Z", + "Id": "1013db12-8b58-45ff-acc7-704248f66731", + "LastUpdatedTimestamp": "2019-06-18T16:21:21.457Z", + "LatestVersion": "115136b3-cfd7-4462-b77f-8741a4b00e5e", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/1013db12-8b58-45ff-acc7-704248f66731/versions/115136b3-cfd7-4462-b77f-8741a4b00e5e", + "Name": "GGGroup4Pi3", + "tags": {} + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-logger-definition-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-logger-definition-version.rst new file mode 100644 index 000000000..28d3ad09b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-logger-definition-version.rst @@ -0,0 +1,19 @@ +**To retrieve information about a version of a logger definition** + +The following ``get-logger-definition-version`` example retrieves information about the specified version of the specified logger definition. To retrieve the IDs of all versions of the logger definition, use the ``list-logger-definition-versions`` command. To retrieve the ID of the last version added to the logger definition, use the ``get-logger-definition`` command and check the ``LatestVersion`` property. :: + + aws greengrass get-logger-definition-version \ + --logger-definition-id "49eeeb66-f1d3-4e34-86e3-3617262abf23" \ + --logger-definition-version-id "5e3f6f64-a565-491e-8de0-3c0d8e0f2073" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/loggers/49eeeb66-f1d3-4e34-86e3-3617262abf23/versions/5e3f6f64-a565-491e-8de0-3c0d8e0f2073", + "CreationTimestamp": "2019-05-08T16:10:13.866Z", + "Definition": { + "Loggers": [] + }, + "Id": "49eeeb66-f1d3-4e34-86e3-3617262abf23", + "Version": "5e3f6f64-a565-491e-8de0-3c0d8e0f2073" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-logger-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-logger-definition.rst new file mode 100644 index 000000000..26de40dbf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-logger-definition.rst @@ -0,0 +1,18 @@ +**To retrieve information about a logger definition** + +The following ``get-logger-definition`` example retrieves information about the specified logger definition. To retrieve the IDs of your logger definitions, use the ``list-logger-definitions`` command. :: + + aws greengrass get-logger-definition \ + --logger-definition-id "49eeeb66-f1d3-4e34-86e3-3617262abf23" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/loggers/49eeeb66-f1d3-4e34-86e3-3617262abf23", + "CreationTimestamp": "2019-05-08T16:10:13.809Z", + "Id": "49eeeb66-f1d3-4e34-86e3-3617262abf23", + "LastUpdatedTimestamp": "2019-05-08T16:10:13.809Z", + "LatestVersion": "5e3f6f64-a565-491e-8de0-3c0d8e0f2073", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/loggers/49eeeb66-f1d3-4e34-86e3-3617262abf23/versions/5e3f6f64-a565-491e-8de0-3c0d8e0f2073", + "tags": {} + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-resource-definition-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-resource-definition-version.rst new file mode 100644 index 000000000..9be34ad1c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-resource-definition-version.rst @@ -0,0 +1,32 @@ +**To retrieve information about a specific version of a resource definition** + +The following ``get-resource-definition-version`` example retrieves information about the specified version of the specified resource definition. To retrieve the IDs of all versions of the resource definition, use the ``list-resource-definition-versions`` command. To retrieve the ID of the last version added to the resource definition, use the ``get-resource-definition`` command and check the ``LatestVersion`` property. :: + + aws greengrass get-resource-definition-version \ + --resource-definition-id "ad8c101d-8109-4b0e-b97d-9cc5802ab658" \ + --resource-definition-version-id "26e8829a-491a-464d-9c87-664bf6f6f2be" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/resources/ad8c101d-8109-4b0e-b97d-9cc5802ab658/versions/26e8829a-491a-464d-9c87-664bf6f6f2be", + "CreationTimestamp": "2019-06-19T16:40:59.392Z", + "Definition": { + "Resources": [ + { + "Id": "26ff3f7b-839a-4217-9fdc-a218308b3963", + "Name": "usb-port", + "ResourceDataContainer": { + "LocalDeviceResourceData": { + "GroupOwnerSetting": { + "AutoAddGroupOwner": false + }, + "SourcePath": "/dev/bus/usb" + } + } + } + ] + }, + "Id": "ad8c101d-8109-4b0e-b97d-9cc5802ab658", + "Version": "26e8829a-491a-464d-9c87-664bf6f6f2be" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-resource-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-resource-definition.rst new file mode 100644 index 000000000..e983dc31e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-resource-definition.rst @@ -0,0 +1,18 @@ +**To retrieve information about a resource definition** + +The following ``get-resource-definition`` example retrieves information about the specified resource definition. To retrieve the IDs of your resource definitions, use the ``list-resource-definitions`` command. :: + + aws greengrass get-resource-definition \ + --resource-definition-id "ad8c101d-8109-4b0e-b97d-9cc5802ab658" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/resources/ad8c101d-8109-4b0e-b97d-9cc5802ab658", + "CreationTimestamp": "2019-06-19T16:40:59.261Z", + "Id": "ad8c101d-8109-4b0e-b97d-9cc5802ab658", + "LastUpdatedTimestamp": "2019-06-19T16:40:59.261Z", + "LatestVersion": "26e8829a-491a-464d-9c87-664bf6f6f2be", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/resources/ad8c101d-8109-4b0e-b97d-9cc5802ab658/versions/26e8829a-491a-464d-9c87-664bf6f6f2be", + "tags": {} + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-service-role-for-account.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-service-role-for-account.rst new file mode 100644 index 000000000..f5c8ccbdd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-service-role-for-account.rst @@ -0,0 +1,14 @@ +**To retrieve the details for the service role that is attached to your account** + +The following ``get-service-role-for-account`` example retrieves information about the service role that is attached to your AWS account. :: + + aws greengrass get-service-role-for-account + +Output:: + + { + "AssociatedAt": "2018-10-18T15:59:20Z", + "RoleArn": "arn:aws:iam::123456789012:role/service-role/Greengrass_ServiceRole" + } + +For more information, see `Greengrass Service Role `__ in the **AWS IoT Greengrass Developer Guide**. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-subscription-definition-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-subscription-definition-version.rst new file mode 100644 index 000000000..77b2a0e55 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-subscription-definition-version.rst @@ -0,0 +1,26 @@ +**To retrieve information about a specific version of a subscription definition** + +The following ``get-subscription-definition-version`` example retrieves retrieves information about the specified version of the specified subscription definition. To retrieve the IDs of all versions of the subscription definition, use the ``list-subscription-definition-versions`` command. To retrieve the ID of the last version added to the subscription definition, use the ``get-subscription-definition`` command and check the ``LatestVersion`` property. :: + + aws greengrass get-subscription-definition-version \ + --subscription-definition-id "70e49321-83d5-45d2-bc09-81f4917ae152" \ + --subscription-definition-version-id "88ae8699-12ac-4663-ba3f-4d7f0519140b" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/subscriptions/70e49321-83d5-45d2-bc09-81f4917ae152/versions/88ae8699-12ac-4663-ba3f-4d7f0519140b", + "CreationTimestamp": "2019-06-18T17:03:52.499Z", + "Definition": { + "Subscriptions": [ + { + "Id": "692c4484-d89f-4f64-8edd-1a041a65e5b6", + "Source": "arn:aws:lambda:us-west-2:123456789012:function:Greengrass_HelloWorld:GG_HelloWorld", + "Subject": "hello/world", + "Target": "cloud" + } + ] + }, + "Id": "70e49321-83d5-45d2-bc09-81f4917ae152", + "Version": "88ae8699-12ac-4663-ba3f-4d7f0519140b" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-subscription-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-subscription-definition.rst new file mode 100644 index 000000000..6c1d0ecb7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-subscription-definition.rst @@ -0,0 +1,18 @@ +**To retrieve information about a subscription definition** + +The following ``get-subscription-definition`` example retrieves information about the specified subscription definition. To retrieve the IDs of your subscription definitions, use the ``list-subscription-definitions`` command. :: + + aws greengrass get-subscription-definition \ + --subscription-definition-id "70e49321-83d5-45d2-bc09-81f4917ae152" + +Output:: + + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/subscriptions/70e49321-83d5-45d2-bc09-81f4917ae152", + "CreationTimestamp": "2019-06-18T17:03:52.392Z", + "Id": "70e49321-83d5-45d2-bc09-81f4917ae152", + "LastUpdatedTimestamp": "2019-06-18T17:03:52.392Z", + "LatestVersion": "88ae8699-12ac-4663-ba3f-4d7f0519140b", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/subscriptions/70e49321-83d5-45d2-bc09-81f4917ae152/versions/88ae8699-12ac-4663-ba3f-4d7f0519140b", + "tags": {} + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-thing-runtime-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-thing-runtime-configuration.rst new file mode 100644 index 000000000..efb013bb4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/get-thing-runtime-configuration.rst @@ -0,0 +1,19 @@ +**To retrieve the runtime configuration of a Greengrass core** + +The following ``get-thing-runtime-configuration`` example retrieves the runtime configuration of a Greengrass core. Before you can retrieve the runtime configuration, you must use the ``update-thing-runtime-configuration`` command to create a runtime configuration for the core. :: + + aws greengrass get-thing-runtime-configuration \ + --thing-name SampleGreengrassCore + +Output:: + + { + "RuntimeConfiguration": { + "TelemetryConfiguration": { + "ConfigurationSyncStatus": "OutOfSync", + "Telemetry": "On" + } + } + } + +For more information, see `Configuring telemetry settings `__ in the *AWS IoT Greengrass Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-bulk-deployment-detailed-reports.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-bulk-deployment-detailed-reports.rst new file mode 100755 index 000000000..aa9ad21a7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-bulk-deployment-detailed-reports.rst @@ -0,0 +1,32 @@ +**To list information about individual deployments in a bulk deployment** + +The following ``list-bulk-deployment-detailed-reports`` example displays information about the individual deployments in a bulk deployment operation, including status. :: + + aws greengrass list-bulk-deployment-detailed-reports \ + --bulk-deployment-id 42ce9c42-489b-4ed4-b905-8996aa50ef9d + +Output:: + + { + "Deployments": [ + { + "DeploymentType": "NewDeployment", + "DeploymentStatus": "Success", + "DeploymentId": "123456789012:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "DeploymentArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/a1b2c3d4-5678-90ab-cdef-EXAMPLE33333/deployments/123456789012:123456789012:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "GroupArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/a1b2c3d4-5678-90ab-cdef-EXAMPLE33333/versions/123456789012:a1b2c3d4-5678-90ab-cdef-EXAMPLE44444", + "CreatedAt": "2020-01-21T21:34:16.501Z" + }, + { + "DeploymentType": "NewDeployment", + "DeploymentStatus": "InProgress", + "DeploymentId": "123456789012:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "DeploymentArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/a1b2c3d4-5678-90ab-cdef-EXAMPLE55555/deployments/123456789012:123456789012:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "GroupArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/a1b2c3d4-5678-90ab-cdef-EXAMPLE55555/versions/a1b2c3d4-5678-90ab-cdef-EXAMPLE66666", + "CreatedAt": "2020-01-21T21:34:16.486Z" + }, + ... + ] + } + +For more information, see `Create Bulk Deployments for Groups `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-bulk-deployments.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-bulk-deployments.rst new file mode 100644 index 000000000..00db58533 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-bulk-deployments.rst @@ -0,0 +1,19 @@ +**To list bulk deployments** + +The following ``list-bulk-deployments`` example lists all bulk deployments. :: + + aws greengrass list-bulk-deployments + +Output:: + + { + "BulkDeployments": [ + { + "BulkDeploymentArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/bulk/deployments/870fb41b-6288-4e0c-bc76-a7ba4b4d3267", + "BulkDeploymentId": "870fb41b-6288-4e0c-bc76-a7ba4b4d3267", + "CreatedAt": "2019-06-25T16:11:33.265Z" + } + ] + } + +For more information, see `Create Bulk Deployments for Groups `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-connector-definition-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-connector-definition-versions.rst new file mode 100644 index 000000000..45f734be6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-connector-definition-versions.rst @@ -0,0 +1,21 @@ +**To list the versions that are available for a connector definition** + +The following ``list-connector-definition-versions`` example lists the versions that are available for the specified connector definition. Use the ``list-connector-definitions`` command to get the connector definition ID. :: + + aws greengrass list-connector-definition-versions \ + --connector-definition-id "b5c4ebfd-f672-49a3-83cd-31c7216a7bb8" + +Output:: + + { + "Versions": [ + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/connectors/b5c4ebfd-f672-49a3-83cd-31c7216a7bb8/versions/63c57963-c7c2-4a26-a7e2-7bf478ea2623", + "CreationTimestamp": "2019-06-19T19:30:01.300Z", + "Id": "b5c4ebfd-f672-49a3-83cd-31c7216a7bb8", + "Version": "63c57963-c7c2-4a26-a7e2-7bf478ea2623" + } + ] + } + +For more information, see `Integrate with Services and Protocols Using Greengrass Connectors `__ in the **AWS IoT Greengrass Developer Guide**. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-connector-definitions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-connector-definitions.rst new file mode 100644 index 000000000..14b751b22 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-connector-definitions.rst @@ -0,0 +1,23 @@ +**To list the Greengrass connectors that are defined** + +The following ``list-connector-definitions`` example lists all of the Greengrass connectors that are defined for your AWS account. :: + + aws greengrass list-connector-definitions + +Output:: + + { + "Definitions": [ + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/connectors/b5c4ebfd-f672-49a3-83cd-31c7216a7bb8", + "CreationTimestamp": "2019-06-19T19:30:01.300Z", + "Id": "b5c4ebfd-f672-49a3-83cd-31c7216a7bb8", + "LastUpdatedTimestamp": "2019-06-19T19:30:01.300Z", + "LatestVersion": "63c57963-c7c2-4a26-a7e2-7bf478ea2623", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/connectors/b5c4ebfd-f672-49a3-83cd-31c7216a7bb8/versions/63c57963-c7c2-4a26-a7e2-7bf478ea2623", + "Name": "MySNSConnector" + } + ] + } + +For more information, see `Integrate with Services and Protocols Using Greengrass Connectors `__ in the **AWS IoT Greengrass Developer Guide**. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-core-definition-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-core-definition-versions.rst new file mode 100644 index 000000000..e8c45c251 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-core-definition-versions.rst @@ -0,0 +1,19 @@ +**To list the versions of a Greengrass core definition** + +The following ``list-core-definitions`` example lists all versions of the specified Greengrass core definition. You can use the ``list-core-definitions`` command to get the version ID. :: + + aws greengrass list-core-definition-versions \ + --core-definition-id "eaf280cb-138c-4d15-af36-6f681a1348f7" + +Output:: + + { + "Versions": [ + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/cores/eaf280cb-138c-4d15-af36-6f681a1348f7/versions/467c36e4-c5da-440c-a97b-084e62593b4c", + "CreationTimestamp": "2019-06-18T16:14:17.709Z", + "Id": "eaf280cb-138c-4d15-af36-6f681a1348f7", + "Version": "467c36e4-c5da-440c-a97b-084e62593b4c" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-core-definitions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-core-definitions.rst new file mode 100644 index 000000000..35351df1f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-core-definitions.rst @@ -0,0 +1,44 @@ +**To list Greengrass core definitions** + +The following ``list-core-definitions`` example lists all of the Greengrass core definitions for your AWS account. :: + + aws greengrass list-core-definitions + +Output:: + + { + "Definitions": [ + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/cores/0507843c-c1ef-4f06-b051-817030df7e7d", + "CreationTimestamp": "2018-10-17T04:30:32.786Z", + "Id": "0507843c-c1ef-4f06-b051-817030df7e7d", + "LastUpdatedTimestamp": "2018-10-17T04:30:32.786Z", + "LatestVersion": "bcdf9e86-3793-491e-93af-3cdfbf4e22b7", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/cores/0507843c-c1ef-4f06-b051-817030df7e7d/versions/bcdf9e86-3793-491e-93af-3cdfbf4e22b7" + }, + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/cores/31c22500-3509-4271-bafd-cf0655cda438", + "CreationTimestamp": "2019-06-18T16:24:16.064Z", + "Id": "31c22500-3509-4271-bafd-cf0655cda438", + "LastUpdatedTimestamp": "2019-06-18T16:24:16.064Z", + "LatestVersion": "2f350395-6d09-4c8a-8336-9ae5b57ace84", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/cores/31c22500-3509-4271-bafd-cf0655cda438/versions/2f350395-6d09-4c8a-8336-9ae5b57ace84" + }, + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/cores/c906ed39-a1e3-4822-a981-7b9bd57b4b46", + "CreationTimestamp": "2019-06-18T16:21:21.351Z", + "Id": "c906ed39-a1e3-4822-a981-7b9bd57b4b46", + "LastUpdatedTimestamp": "2019-06-18T16:21:21.351Z", + "LatestVersion": "42aeeac3-fd9d-4312-a8fd-ffa9404a20e0", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/cores/c906ed39-a1e3-4822-a981-7b9bd57b4b46/versions/42aeeac3-fd9d-4312-a8fd-ffa9404a20e0" + }, + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/cores/eaf280cb-138c-4d15-af36-6f681a1348f7", + "CreationTimestamp": "2019-06-18T16:14:17.709Z", + "Id": "eaf280cb-138c-4d15-af36-6f681a1348f7", + "LastUpdatedTimestamp": "2019-06-18T16:14:17.709Z", + "LatestVersion": "467c36e4-c5da-440c-a97b-084e62593b4c", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/cores/eaf280cb-138c-4d15-af36-6f681a1348f7/versions/467c36e4-c5da-440c-a97b-084e62593b4c" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-deployments.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-deployments.rst new file mode 100644 index 000000000..c4c759246 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-deployments.rst @@ -0,0 +1,19 @@ +**To list the deployments for a Greengrass group** + +The following ``list-deployments`` example lists the deployments for the specified Greengrass group. You can use the ``list-groups`` command to look up your group ID. :: + + aws greengrass list-deployments \ + --group-id "1013db12-8b58-45ff-acc7-704248f66731" + +Output:: + + { + "Deployments": [ + { + "CreatedAt": "2019-06-18T17:04:32.702Z", + "DeploymentId": "1065b8a0-812b-4f21-9d5d-e89b232a530f", + "DeploymentType": "NewDeployment", + "GroupArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/1013db12-8b58-45ff-acc7-704248f66731/versions/115136b3-cfd7-4462-b77f-8741a4b00e5e" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-device-definition-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-device-definition-versions.rst new file mode 100644 index 000000000..5d86a4884 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-device-definition-versions.rst @@ -0,0 +1,25 @@ +**To list the versions of a device definition** + +The following ``list-device-definition-versions`` example displays the device definition versions associated with the specified device definition. :: + + aws greengrass list-device-definition-versions \ + --device-definition-id "f9ba083d-5ad4-4534-9f86-026a45df1ccd" + +Output:: + + { + "Versions": [ + { + "Version": "83c13984-6fed-447e-84d5-5b8aa45d5f71", + "CreationTimestamp": "2019-09-11T00:15:09.838Z", + "Id": "f9ba083d-5ad4-4534-9f86-026a45df1ccd", + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/devices/f9ba083d-5ad4-4534-9f86-026a45df1ccd/versions/83c13984-6fed-447e-84d5-5b8aa45d5f71" + }, + { + "Version": "3b5cc510-58c1-44b5-9d98-4ad858ffa795", + "CreationTimestamp": "2019-09-11T00:11:06.197Z", + "Id": "f9ba083d-5ad4-4534-9f86-026a45df1ccd", + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/devices/f9ba083d-5ad4-4534-9f86-026a45df1ccd/versions/3b5cc510-58c1-44b5-9d98-4ad858ffa795" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-device-definitions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-device-definitions.rst new file mode 100644 index 000000000..64fc28b71 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-device-definitions.rst @@ -0,0 +1,39 @@ +**To list your device definitions** + +The following ``list-device-definitions`` example displays details about the device definitions in your AWS account in the specified AWS Region. :: + + aws greengrass list-device-definitions \ + --region us-west-2 + +Output:: + + { + "Definitions": [ + { + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/devices/50f3274c-3f0a-4f57-b114-6f46085281ab/versions/c777b0f5-1059-449b-beaa-f003ebc56c34", + "LastUpdatedTimestamp": "2019-06-14T15:42:09.059Z", + "LatestVersion": "c777b0f5-1059-449b-beaa-f003ebc56c34", + "CreationTimestamp": "2019-06-14T15:42:09.059Z", + "Id": "50f3274c-3f0a-4f57-b114-6f46085281ab", + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/devices/50f3274c-3f0a-4f57-b114-6f46085281ab" + }, + { + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/devices/e01951c9-6134-479a-969a-1a15cac11c40/versions/514d57aa-4ee6-401c-9fac-938a9f7a51e5", + "Name": "TestDeviceDefinition", + "LastUpdatedTimestamp": "2019-04-16T23:17:43.245Z", + "LatestVersion": "514d57aa-4ee6-401c-9fac-938a9f7a51e5", + "CreationTimestamp": "2019-04-16T23:17:43.245Z", + "Id": "e01951c9-6134-479a-969a-1a15cac11c40", + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/devices/e01951c9-6134-479a-969a-1a15cac11c40" + }, + { + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/devices/f9ba083d-5ad4-4534-9f86-026a45df1ccd/versions/83c13984-6fed-447e-84d5-5b8aa45d5f71", + "Name": "TemperatureSensors", + "LastUpdatedTimestamp": "2019-09-10T00:19:03.698Z", + "LatestVersion": "83c13984-6fed-447e-84d5-5b8aa45d5f71", + "CreationTimestamp": "2019-09-11T00:11:06.197Z", + "Id": "f9ba083d-5ad4-4534-9f86-026a45df1ccd", + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/devices/f9ba083d-5ad4-4534-9f86-026a45df1ccd" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-function-definition-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-function-definition-versions.rst new file mode 100644 index 000000000..bacf89269 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-function-definition-versions.rst @@ -0,0 +1,37 @@ +**To list the versions of a Lambda function** + +The following ``list-function-definition-versions`` example lists all of the versions of the specified Lambda function. You can use the ``list-function-definitions`` command to get the ID. :: + + aws greengrass list-function-definition-versions \ + --function-definition-id "063f5d1a-1dd1-40b4-9b51-56f8993d0f85" + +Output:: + + { + "Versions": [ + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/063f5d1a-1dd1-40b4-9b51-56f8993d0f85/versions/9748fda7-1589-4fcc-ac94-f5559e88678b", + "CreationTimestamp": "2019-06-18T17:04:30.776Z", + "Id": "063f5d1a-1dd1-40b4-9b51-56f8993d0f85", + "Version": "9748fda7-1589-4fcc-ac94-f5559e88678b" + }, + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/063f5d1a-1dd1-40b4-9b51-56f8993d0f85/versions/9b08df77-26f2-4c29-93d2-769715edcfec", + "CreationTimestamp": "2019-06-18T17:02:44.087Z", + "Id": "063f5d1a-1dd1-40b4-9b51-56f8993d0f85", + "Version": "9b08df77-26f2-4c29-93d2-769715edcfec" + }, + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/063f5d1a-1dd1-40b4-9b51-56f8993d0f85/versions/4236239f-94f7-4b90-a2f8-2a24c829d21e", + "CreationTimestamp": "2019-06-18T17:01:42.284Z", + "Id": "063f5d1a-1dd1-40b4-9b51-56f8993d0f85", + "Version": "4236239f-94f7-4b90-a2f8-2a24c829d21e" + }, + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/063f5d1a-1dd1-40b4-9b51-56f8993d0f85/versions/343408bb-549a-4fbe-b043-853643179a39", + "CreationTimestamp": "2019-06-18T16:21:21.431Z", + "Id": "063f5d1a-1dd1-40b4-9b51-56f8993d0f85", + "Version": "343408bb-549a-4fbe-b043-853643179a39" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-function-definitions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-function-definitions.rst new file mode 100644 index 000000000..bacfaf59e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-function-definitions.rst @@ -0,0 +1,44 @@ +**To list Lambda functions** + +The following ``list-function-definitions`` example lists all of the Lambda functions defined for your AWS account. :: + + aws greengrass list-function-definitions + +Output:: + + { + "Definitions": [ + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/017970a5-8952-46dd-b1c1-020b3ae8e960", + "CreationTimestamp": "2018-10-17T04:30:32.884Z", + "Id": "017970a5-8952-46dd-b1c1-020b3ae8e960", + "LastUpdatedTimestamp": "2018-10-17T04:30:32.884Z", + "LatestVersion": "4380b302-790d-4ed8-92bf-02e88afecb15", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/017970a5-8952-46dd-b1c1-020b3ae8e960/versions/4380b302-790d-4ed8-92bf-02e88afecb15" + }, + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/063f5d1a-1dd1-40b4-9b51-56f8993d0f85", + "CreationTimestamp": "2019-06-18T16:21:21.431Z", + "Id": "063f5d1a-1dd1-40b4-9b51-56f8993d0f85", + "LastUpdatedTimestamp": "2019-06-18T16:21:21.431Z", + "LatestVersion": "9748fda7-1589-4fcc-ac94-f5559e88678b", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/063f5d1a-1dd1-40b4-9b51-56f8993d0f85/versions/9748fda7-1589-4fcc-ac94-f5559e88678b" + }, + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/6598e653-a262-440c-9967-e2697f64da7b", + "CreationTimestamp": "2019-06-18T16:24:16.123Z", + "Id": "6598e653-a262-440c-9967-e2697f64da7b", + "LastUpdatedTimestamp": "2019-06-18T16:24:16.123Z", + "LatestVersion": "38bc6ccd-98a2-4ce7-997e-16c84748fae4", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/6598e653-a262-440c-9967-e2697f64da7b/versions/38bc6ccd-98a2-4ce7-997e-16c84748fae4" + }, + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/c668df84-fad2-491b-95f4-655d2cad7885", + "CreationTimestamp": "2019-06-18T16:14:17.784Z", + "Id": "c668df84-fad2-491b-95f4-655d2cad7885", + "LastUpdatedTimestamp": "2019-06-18T16:14:17.784Z", + "LatestVersion": "37dd68c4-a64f-40ba-aa13-71fecc3ebded", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/c668df84-fad2-491b-95f4-655d2cad7885/versions/37dd68c4-a64f-40ba-aa13-71fecc3ebded" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-group-certificate-authorities.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-group-certificate-authorities.rst new file mode 100644 index 000000000..8c7b59eea --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-group-certificate-authorities.rst @@ -0,0 +1,17 @@ +**To list the current CAs for a group** + +The following ``list-group-certificate-authorities`` example lists the current certificate authorities (CAs) for the specified Greengrass group. :: + + aws greengrass list-group-certificate-authorities \ + --group-id "1013db12-8b58-45ff-acc7-704248f66731" + +Output:: + + { + "GroupCertificateAuthorities": [ + { + "GroupCertificateAuthorityArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/1013db12-8b58-45ff-acc7-704248f66731/certificateauthorities/f0430e1736ea8ed30cc5d5de9af67a7e3586bad9ae4d89c2a44163f65fdd8cf6", + "GroupCertificateAuthorityId": "f0430e1736ea8ed30cc5d5de9af67a7e3586bad9ae4d89c2a44163f65fdd8cf6" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-group-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-group-versions.rst new file mode 100644 index 000000000..0f0703f01 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-group-versions.rst @@ -0,0 +1,43 @@ +**To list the versions of a Greengrass group** + +The following ``list-group-versions`` example lists the versions of the specified Greengrass group. :: + + aws greengrass list-group-versions \ + --group-id "1013db12-8b58-45ff-acc7-704248f66731" + +Output:: + + { + "Versions": [ + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/1013db12-8b58-45ff-acc7-704248f66731/versions/115136b3-cfd7-4462-b77f-8741a4b00e5e", + "CreationTimestamp": "2019-06-18T17:04:30.915Z", + "Id": "1013db12-8b58-45ff-acc7-704248f66731", + "Version": "115136b3-cfd7-4462-b77f-8741a4b00e5e" + }, + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/1013db12-8b58-45ff-acc7-704248f66731/versions/4340669d-d14d-44e3-920c-46c928750750", + "CreationTimestamp": "2019-06-18T17:03:52.663Z", + "Id": "1013db12-8b58-45ff-acc7-704248f66731", + "Version": "4340669d-d14d-44e3-920c-46c928750750" + }, + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/1013db12-8b58-45ff-acc7-704248f66731/versions/1b06e099-2d5b-4f10-91b9-78c4e060f5da", + "CreationTimestamp": "2019-06-18T17:02:44.189Z", + "Id": "1013db12-8b58-45ff-acc7-704248f66731", + "Version": "1b06e099-2d5b-4f10-91b9-78c4e060f5da" + }, + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/1013db12-8b58-45ff-acc7-704248f66731/versions/2d3f27f1-3b43-4554-ab7a-73ec30477efe", + "CreationTimestamp": "2019-06-18T17:01:42.401Z", + "Id": "1013db12-8b58-45ff-acc7-704248f66731", + "Version": "2d3f27f1-3b43-4554-ab7a-73ec30477efe" + }, + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/1013db12-8b58-45ff-acc7-704248f66731/versions/d20f7ae9-3444-4c1c-b025-e2ede23cdd31", + "CreationTimestamp": "2019-06-18T16:21:21.457Z", + "Id": "1013db12-8b58-45ff-acc7-704248f66731", + "Version": "d20f7ae9-3444-4c1c-b025-e2ede23cdd31" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-groups.rst new file mode 100644 index 000000000..66099a3e7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-groups.rst @@ -0,0 +1,39 @@ +**To list the Greengrass groups** + +The following ``list-groups`` example lists all Greengrass groups that are defined in your AWS account. :: + + aws greengrass list-groups + +Output:: + + { + "Groups": [ + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/1013db12-8b58-45ff-acc7-704248f66731", + "CreationTimestamp": "2019-06-18T16:21:21.457Z", + "Id": "1013db12-8b58-45ff-acc7-704248f66731", + "LastUpdatedTimestamp": "2019-06-18T16:21:21.457Z", + "LatestVersion": "115136b3-cfd7-4462-b77f-8741a4b00e5e", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/1013db12-8b58-45ff-acc7-704248f66731/versions/115136b3-cfd7-4462-b77f-8741a4b00e5e", + "Name": "GGGroup4Pi3" + }, + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/1402daf9-71cf-4cfe-8be0-d5e80526d0d8", + "CreationTimestamp": "2018-10-31T21:52:46.603Z", + "Id": "1402daf9-71cf-4cfe-8be0-d5e80526d0d8", + "LastUpdatedTimestamp": "2018-10-31T21:52:46.603Z", + "LatestVersion": "749af901-60ab-456f-a096-91b12d983c29", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/1402daf9-71cf-4cfe-8be0-d5e80526d0d8/versions/749af901-60ab-456f-a096-91b12d983c29", + "Name": "MyTestGroup" + }, + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/504b5c8d-bbed-4635-aff1-48ec5b586db5", + "CreationTimestamp": "2018-12-31T21:39:36.771Z", + "Id": "504b5c8d-bbed-4635-aff1-48ec5b586db5", + "LastUpdatedTimestamp": "2018-12-31T21:39:36.771Z", + "LatestVersion": "46911e8e-f9bc-4898-8b63-59c7653636ec", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/504b5c8d-bbed-4635-aff1-48ec5b586db5/versions/46911e8e-f9bc-4898-8b63-59c7653636ec", + "Name": "smp-ggrass-group" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-logger-definition-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-logger-definition-versions.rst new file mode 100644 index 000000000..450a85e2e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-logger-definition-versions.rst @@ -0,0 +1,25 @@ +**To get a list of versions of a logger definition** + +The following ``list-logger-definition-versions`` example gets a list of all versions of the specified logger definition. :: + + aws greengrass list-logger-definition-versions \ + --logger-definition-id "49eeeb66-f1d3-4e34-86e3-3617262abf23" + +Output:: + + { + "Versions": [ + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/loggers/49eeeb66-f1d3-4e34-86e3-3617262abf23/versions/5e3f6f64-a565-491e-8de0-3c0d8e0f2073", + "CreationTimestamp": "2019-05-08T16:10:13.866Z", + "Id": "49eeeb66-f1d3-4e34-86e3-3617262abf23", + "Version": "5e3f6f64-a565-491e-8de0-3c0d8e0f2073" + }, + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/loggers/49eeeb66-f1d3-4e34-86e3-3617262abf23/versions/3ec6d3af-eb85-48f9-a16d-1c795fe696d7", + "CreationTimestamp": "2019-05-08T16:10:13.809Z", + "Id": "49eeeb66-f1d3-4e34-86e3-3617262abf23", + "Version": "3ec6d3af-eb85-48f9-a16d-1c795fe696d7" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-logger-definitions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-logger-definitions.rst new file mode 100644 index 000000000..d1f0b2294 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-logger-definitions.rst @@ -0,0 +1,20 @@ +**To get a list of logger definitions** + +The following ``list-logger-definitions`` example lists all of the logger definitions for your AWS account. :: + + aws greengrass list-logger-definitions + +Output:: + + { + "Definitions": [ + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/loggers/49eeeb66-f1d3-4e34-86e3-3617262abf23", + "CreationTimestamp": "2019-05-08T16:10:13.809Z", + "Id": "49eeeb66-f1d3-4e34-86e3-3617262abf23", + "LastUpdatedTimestamp": "2019-05-08T16:10:13.809Z", + "LatestVersion": "5e3f6f64-a565-491e-8de0-3c0d8e0f2073", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/loggers/49eeeb66-f1d3-4e34-86e3-3617262abf23/versions/5e3f6f64-a565-491e-8de0-3c0d8e0f2073" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-resource-definition-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-resource-definition-versions.rst new file mode 100644 index 000000000..922d87e6f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-resource-definition-versions.rst @@ -0,0 +1,25 @@ +**To list the versions of a resource definition** + +The following ``list-resource-definition-versions`` example lists the versions for the specified Greengrass resource. :: + + aws greengrass list-resource-definition-versions \ + --resource-definition-id "ad8c101d-8109-4b0e-b97d-9cc5802ab658" + +Output:: + + { + "Versions": [ + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/resources/ad8c101d-8109-4b0e-b97d-9cc5802ab658/versions/26e8829a-491a-464d-9c87-664bf6f6f2be", + "CreationTimestamp": "2019-06-19T16:40:59.392Z", + "Id": "ad8c101d-8109-4b0e-b97d-9cc5802ab658", + "Version": "26e8829a-491a-464d-9c87-664bf6f6f2be" + }, + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/resources/ad8c101d-8109-4b0e-b97d-9cc5802ab658/versions/432d92f6-12de-4ec9-a704-619a942a62aa", + "CreationTimestamp": "2019-06-19T16:40:59.261Z", + "Id": "ad8c101d-8109-4b0e-b97d-9cc5802ab658", + "Version": "432d92f6-12de-4ec9-a704-619a942a62aa" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-resource-definitions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-resource-definitions.rst new file mode 100644 index 000000000..4292fc16f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-resource-definitions.rst @@ -0,0 +1,29 @@ +**To list the resources that are defined** + +The following ``list-resource-definitions`` example lists the resources that are defined for AWS IoT Greengrass to use. :: + + aws greengrass list-resource-definitions + +Output:: + + { + "Definitions": [ + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/resources/ad8c101d-8109-4b0e-b97d-9cc5802ab658", + "CreationTimestamp": "2019-06-19T16:40:59.261Z", + "Id": "ad8c101d-8109-4b0e-b97d-9cc5802ab658", + "LastUpdatedTimestamp": "2019-06-19T16:40:59.261Z", + "LatestVersion": "26e8829a-491a-464d-9c87-664bf6f6f2be", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/resources/ad8c101d-8109-4b0e-b97d-9cc5802ab658/versions/26e8829a-491a-464d-9c87-664bf6f6f2be" + }, + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/resources/c8bb9ebc-c3fd-40a4-9c6a-568d75569d38", + "CreationTimestamp": "2019-06-19T21:51:28.212Z", + "Id": "c8bb9ebc-c3fd-40a4-9c6a-568d75569d38", + "LastUpdatedTimestamp": "2019-06-19T21:51:28.212Z", + "LatestVersion": "a5f94d0b-f6bc-40f4-bb78-7a1c5fe13ba1", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/resources/c8bb9ebc-c3fd-40a4-9c6a-568d75569d38/versions/a5f94d0b-f6bc-40f4-bb78-7a1c5fe13ba1", + "Name": "MyGreengrassResources" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-subscription-definition-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-subscription-definition-versions.rst new file mode 100644 index 000000000..48e955b18 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-subscription-definition-versions.rst @@ -0,0 +1,25 @@ +**To list the versions of a subscription definition** + +The following ``list-subscription-definition-versions`` example lists all versions of the specified subscription. You can use the ``list-subscription-definitions`` command to look up the subscription ID. :: + + aws greengrass list-subscription-definition-versions \ + --subscription-definition-id "70e49321-83d5-45d2-bc09-81f4917ae152" + +Output:: + + { + "Versions": [ + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/subscriptions/70e49321-83d5-45d2-bc09-81f4917ae152/versions/88ae8699-12ac-4663-ba3f-4d7f0519140b", + "CreationTimestamp": "2019-06-18T17:03:52.499Z", + "Id": "70e49321-83d5-45d2-bc09-81f4917ae152", + "Version": "88ae8699-12ac-4663-ba3f-4d7f0519140b" + }, + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/subscriptions/70e49321-83d5-45d2-bc09-81f4917ae152/versions/7e320ba3-c369-4069-a2f0-90acb7f219d6", + "CreationTimestamp": "2019-06-18T17:03:52.392Z", + "Id": "70e49321-83d5-45d2-bc09-81f4917ae152", + "Version": "7e320ba3-c369-4069-a2f0-90acb7f219d6" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-subscription-definitions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-subscription-definitions.rst new file mode 100644 index 000000000..b1bd4731c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-subscription-definitions.rst @@ -0,0 +1,36 @@ +**To get a list subscription definitions** + +The following ``list-subscription-definitions`` example lists all of the AWS IoT Greengrass subscriptions that are defined in your AWS account. :: + + aws greengrass list-subscription-definitions + +Output:: + + { + "Definitions": [ + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/subscriptions/70e49321-83d5-45d2-bc09-81f4917ae152", + "CreationTimestamp": "2019-06-18T17:03:52.392Z", + "Id": "70e49321-83d5-45d2-bc09-81f4917ae152", + "LastUpdatedTimestamp": "2019-06-18T17:03:52.392Z", + "LatestVersion": "88ae8699-12ac-4663-ba3f-4d7f0519140b", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/subscriptions/70e49321-83d5-45d2-bc09-81f4917ae152/versions/88ae8699-12ac-4663-ba3f-4d7f0519140b" + }, + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/subscriptions/cd6f1c37-d9a4-4e90-be94-01a7404f5967", + "CreationTimestamp": "2018-10-18T15:45:34.024Z", + "Id": "cd6f1c37-d9a4-4e90-be94-01a7404f5967", + "LastUpdatedTimestamp": "2018-10-18T15:45:34.024Z", + "LatestVersion": "d1cf8fac-284f-4f6a-98fe-a2d36d089373", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/subscriptions/cd6f1c37-d9a4-4e90-be94-01a7404f5967/versions/d1cf8fac-284f-4f6a-98fe-a2d36d089373" + }, + { + "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/subscriptions/fa81bc84-3f59-4377-a84b-5d0134da359b", + "CreationTimestamp": "2018-10-22T17:09:31.429Z", + "Id": "fa81bc84-3f59-4377-a84b-5d0134da359b", + "LastUpdatedTimestamp": "2018-10-22T17:09:31.429Z", + "LatestVersion": "086d1b08-b25a-477c-a16f-6f9b3a9c295a", + "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/subscriptions/fa81bc84-3f59-4377-a84b-5d0134da359b/versions/086d1b08-b25a-477c-a16f-6f9b3a9c295a" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-tags-for-resource.rst new file mode 100644 index 000000000..3627e30b6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/list-tags-for-resource.rst @@ -0,0 +1,17 @@ +**To list the tags attached to a resource** + +The following ``list-tags-for-resource`` example lists the tags and their values that are attached to the specified resource. :: + + aws greengrass list-tags-for-resource \ + --resource-arn "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/resources/ad8c101d-8109-4b0e-b97d-9cc5802ab658" + +Output:: + + { + "tags": { + "ResourceSubType": "USB", + "ResourceType": "Device" + } + } + +For more information, see `Tagging Your Greengrass Resources `__ in the **AWS IoT Greengrass Developer Guide**. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/reset-deployments.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/reset-deployments.rst new file mode 100644 index 000000000..b2af73c2c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/reset-deployments.rst @@ -0,0 +1,16 @@ +**To clean up deployment information for a Greengrass group** + +The following ``reset-deployments`` example cleans up deployment information for the specified Greengrass group. When you add the ``--force option``, the deployment information is reset without waiting for the core device to respond. :: + + aws greengrass reset-deployments \ + --group-id "1402daf9-71cf-4cfe-8be0-d5e80526d0d8" \ + --force + +Output:: + + { + "DeploymentArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/1402daf9-71cf-4cfe-8be0-d5e80526d0d8/deployments/7dd4e356-9882-46a3-9e28-6d21900c011a", + "DeploymentId": "7dd4e356-9882-46a3-9e28-6d21900c011a" + } + +For more information, see `Reset Deployments `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/start-bulk-deployment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/start-bulk-deployment.rst new file mode 100644 index 000000000..276ec0082 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/start-bulk-deployment.rst @@ -0,0 +1,15 @@ +**To start a bulk deployment operation** + +The following ``start-bulk-deployment`` example starts a bulk deployment operation, using a file stored in an S3 bucket to specify the groups to be deployed. :: + + aws greengrass start-bulk-deployment \ + --cli-input-json "{\"InputFileUri\":\"https://gg-group-deployment1.s3-us-west-2.amazonaws.com/MyBulkDeploymentInputFile.txt\", \"ExecutionRoleArn\":\"arn:aws:iam::123456789012:role/ggCreateDeploymentRole\",\"AmznClientToken\":\"yourAmazonClientToken\"}" + +Output:: + + { + "BulkDeploymentArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/bulk/deployments/870fb41b-6288-4e0c-bc76-a7ba4b4d3267", + "BulkDeploymentId": "870fb41b-6288-4e0c-bc76-a7ba4b4d3267" + } + +For more information, see `Create Bulk Deployments for Groups `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/stop-bulk-deployment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/stop-bulk-deployment.rst new file mode 100644 index 000000000..19f24cf42 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/stop-bulk-deployment.rst @@ -0,0 +1,10 @@ +**To stop a bulk deployment** + +The following ``stop-bulk-deployment`` example stops the specified bulk deployment. If you try to stop a bulk deployment that is complete, you receive an error: ``InvalidInputException: Cannot change state of finished execution.`` :: + + aws greengrass stop-bulk-deployment \ + --bulk-deployment-id "870fb41b-6288-4e0c-bc76-a7ba4b4d3267" + +This command produces no output. + +For more information, see `Create Bulk Deployments for Groups `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/tag-resource.rst new file mode 100644 index 000000000..4a81c79b5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/tag-resource.rst @@ -0,0 +1,11 @@ +**To apply tags to a resource** + +The following ``tag-resource`` example applies two tags, ``ResourceType`` and ``ResourceSubType``, to the specified Greengrass resource. This operation can both add new tags and values or update the value for existing tags. Use the ``untag-resource`` command to remove a tag. :: + + aws greengrass tag-resource \ + --resource-arn "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/resources/ad8c101d-8109-4b0e-b97d-9cc5802ab658" \ + --tags "ResourceType=Device,ResourceSubType=USB" + +This command produces no output. + +For more information, see `Tagging Your Greengrass Resources `__ in the **AWS IoT Greengrass Developer Guide**. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/untag-resource.rst new file mode 100644 index 000000000..9501b2dea --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove a tag and its value from a resource** + +The following ``untag-resource`` example removes the tag whose key is ``Category`` from the specified Greengrass group. If the key ``Category`` does not exist for the specified resource, no error is returned. :: + + aws greengrass untag-resource \ + --resource-arn "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/1013db12-8b58-45ff-acc7-704248f66731" \ + --tag-keys "Category" + +This command produces no output. + +For more information, see `Tagging Your Greengrass Resources `__ in the **AWS IoT Greengrass Developer Guide**. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-connectivity-info.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-connectivity-info.rst new file mode 100644 index 000000000..c8da6ccf0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-connectivity-info.rst @@ -0,0 +1,13 @@ +**To update the connectivity information for a Greengrass core** + +The following ``update-connectivity-info`` example changes the endpoints that devices can use to connect to the specified Greengrass core. Connectivity information is a list of IP addresses or domain names, with corresponding port numbers and optional customer-defined metadata. You might need to update connectivity information when the local network changes. :: + + aws greengrass update-connectivity-info \ + --thing-name "MyGroup_Core" \ + --connectivity-info "[{\"Metadata\":\"\",\"PortNumber\":8883,\"HostAddress\":\"127.0.0.1\",\"Id\":\"localhost_127.0.0.1_0\"},{\"Metadata\":\"\",\"PortNumber\":8883,\"HostAddress\":\"192.168.1.3\",\"Id\":\"localIP_192.168.1.3\"}]" + +Output:: + + { + "Version": "312de337-59af-4cf9-a278-2a23bd39c300" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-connector-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-connector-definition.rst new file mode 100644 index 000000000..a1723b536 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-connector-definition.rst @@ -0,0 +1,9 @@ +**To update the name for a connector definition** + +The following ``update-connector-definition`` example updates the name for the specified connector definition. If you want to update the details for the connector, use the ``create-connector-definition-version`` command to create a new version. :: + + aws greengrass update-connector-definition \ + --connector-definition-id "55d0052b-0d7d-44d6-b56f-21867215e118" \ + --name "GreengrassConnectors2019" + +For more information, see `Integrate with Services and Protocols Using Connectors `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-core-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-core-definition.rst new file mode 100644 index 000000000..e844ea827 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-core-definition.rst @@ -0,0 +1,11 @@ +**To update a core definition** + +The following ``update-core-definition`` example changes the name of the specified core definition. You can update only the ``name`` property of a core definition. :: + + aws greengrass update-core-definition \ + --core-definition-id "582efe12-b05a-409e-9a24-a2ba1bcc4a12" \ + --name "MyCoreDevices" + +This command produces no output. + +For more information, see `Configure the AWS IoT Greengrass Core `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-device-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-device-definition.rst new file mode 100644 index 000000000..b69acbc2d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-device-definition.rst @@ -0,0 +1,9 @@ +**To update a device definition** + +The following ``update-device-definition`` example changes the name of the specified device definition. You can only update the ``name`` property of a device definition. :: + + aws greengrass update-device-definition \ + --device-definition-id "f9ba083d-5ad4-4534-9f86-026a45df1ccd" \ + --name "TemperatureSensors" + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-function-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-function-definition.rst new file mode 100644 index 000000000..642ad29e4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-function-definition.rst @@ -0,0 +1,11 @@ +**To update the name for a function definition** + +The following ``update-function-definition`` example updates the name for the specified function definition. If you want to update the details for the function, use the ``create-function-definition-version`` command to create a new version. :: + + aws greengrass update-function-definition \ + --function-definition-id "e47952bd-dea9-4e2c-a7e1-37bbe8807f46" \ + --name ObsoleteFunction + +This command produces no output. + +For more information, see `Run Local Lambda Functions `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-group-certificate-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-group-certificate-configuration.rst new file mode 100644 index 000000000..7c5cd8337 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-group-certificate-configuration.rst @@ -0,0 +1,17 @@ +**To update the expiry of a group's certificates** + +The following ``update-group-certificate-configuration`` example sets a 10-day expiry for the certificates generated for the specified group. :: + + aws greengrass update-group-certificate-configuration \ + --group-id "8eaadd72-ce4b-4f15-892a-0cc4f3a343f1" \ + --certificate-expiry-in-milliseconds 864000000 + +Output:: + + { + "CertificateExpiryInMilliseconds": 864000000, + "CertificateAuthorityExpiryInMilliseconds": 2524607999000, + "GroupId": "8eaadd72-ce4b-4f15-892a-0cc4f3a343f1" + } + +For more information, see `AWS IoT Greengrass Security `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-group.rst new file mode 100644 index 000000000..b363aeadf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-group.rst @@ -0,0 +1,9 @@ +**To update the group name** + +The following ``update-group`` example updates the name of the specified Greengrass group. If you want to update the details for the group, use the ``create-group-version`` command to create a new version. :: + + aws greengrass update-group \ + --group-id "1402daf9-71cf-4cfe-8be0-d5e80526d0d8" \ + --name TestGroup4of6 + +For more information, see `Configure AWS IoT Greengrass on AWS IoT `__ in the *AWS IoT Greengrass Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-logger-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-logger-definition.rst new file mode 100644 index 000000000..c956661bb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-logger-definition.rst @@ -0,0 +1,11 @@ +**To update a logger definition** + +The following ``update-logger-definition`` example changes the name of the specified logger definition. You can only update the ``name`` property of a logger definition. :: + + aws greengrass update-logger-definition \ + --logger-definition-id "a454b62a-5d56-4ca9-bdc4-8254e1662cb0" \ + --name "LoggingConfigsForSensors" + +This command produces no output. + +For more information, see `Monitoring with AWS IoT Greengrass Logs `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-resource-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-resource-definition.rst new file mode 100644 index 000000000..a12bd7289 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-resource-definition.rst @@ -0,0 +1,11 @@ +**To update the name for a resource definition** + +The following ``update-resource-definition`` example updates the name for the specified resource definition. If you want to change the details for the resource, use the ``create-resource-definition-version`` command to create a new version. :: + + aws greengrass update-resource-definition \ + --resource-definition-id "c8bb9ebc-c3fd-40a4-9c6a-568d75569d38" \ + --name GreengrassConnectorResources + +This command produces no output. + +For more information, see `Access Local Resources with Lambda Functions and Connectors `__ in the *AWS IoT Greengrass Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-subscription-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-subscription-definition.rst new file mode 100644 index 000000000..9569eb934 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-subscription-definition.rst @@ -0,0 +1,11 @@ +**To update the name for a subscription definition** + +The following ``update-subscription-definition`` example updates the name for the specified subscription definition. If you want to change details for the subscription, use the ``create-subscription-definition-version`` command to create a new version. :: + + aws greengrass update-subscription-definition \ + --subscription-definition-id "fa81bc84-3f59-4377-a84b-5d0134da359b" \ + --name "ObsoleteSubscription" + +This command produces no output. + +For more information, see `title `__ in the *guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-thing-runtime-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-thing-runtime-configuration.rst new file mode 100644 index 000000000..a7f184d04 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrass/update-thing-runtime-configuration.rst @@ -0,0 +1,11 @@ +**To turn on telemetry in the runtime configuration of a Greengrass core** + +The following ``update-thing-runtime-configuration`` example updates the runtime configuration of a Greengrass core to turn on telemetry. :: + + aws greengrass update-thing-runtime-configuration \ + --thing-name SampleGreengrassCore \ + --telemetry-configuration {\"Telemetry\":\"On\"} + +This command produces no output. + +For more information, see `Configuring telemetry settings `__ in the *AWS IoT Greengrass Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/associate-service-role-to-account.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/associate-service-role-to-account.rst new file mode 100644 index 000000000..e239a623d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/associate-service-role-to-account.rst @@ -0,0 +1,14 @@ +**To associate the Greengrass service role to your AWS account** + +The following ``associate-service-role-to-account`` example associates a service role with AWS IoT Greengrass for your AWS account. :: + + aws greengrassv2 associate-service-role-to-account \ + --role-arn arn:aws:iam::123456789012:role/service-role/Greengrass_ServiceRole + +Output:: + + { + "associatedAt": "2022-01-19T19:21:53Z" + } + +For more information, see `Greengrass service role `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/batch-associate-client-device-with-core-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/batch-associate-client-device-with-core-device.rst new file mode 100644 index 000000000..32a3dd00e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/batch-associate-client-device-with-core-device.rst @@ -0,0 +1,15 @@ +**To associate client devices with a core device** + +The following ``batch-associate-client-device-with-core-device`` example associates two client devices with a core device. :: + + aws greengrassv2 batch-associate-client-device-with-core-device \ + --core-device-thing-name MyGreengrassCore \ + --entries thingName=MyClientDevice1 thingName=MyClientDevice2 + +Output:: + + { + "errorEntries": [] + } + +For more information, see `Interact with local IoT devices `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/batch-disassociate-client-device-from-core-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/batch-disassociate-client-device-from-core-device.rst new file mode 100644 index 000000000..a6b9c27bf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/batch-disassociate-client-device-from-core-device.rst @@ -0,0 +1,15 @@ +**To disassociate client devices from a core device** + +The following ``batch-disassociate-client-device-from-core-device`` example disassociates two client devices from a core device. :: + + aws greengrassv2 batch-disassociate-client-device-from-core-device \ + --core-device-thing-name MyGreengrassCore \ + --entries thingName=MyClientDevice1 thingName=MyClientDevice2 + +Output:: + + { + "errorEntries": [] + } + +For more information, see `Interact with local IoT devices `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/cancel-deployment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/cancel-deployment.rst new file mode 100644 index 000000000..990980b5b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/cancel-deployment.rst @@ -0,0 +1,14 @@ +**To cancel a deployment** + +The following ``cancel-deployment`` example stops a continuous deployment to a thing group. :: + + aws greengrassv2 cancel-deployment \ + --deployment-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "message": "SUCCESS" + } + +For more information, see `Cancel deployments `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/create-component-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/create-component-version.rst new file mode 100644 index 000000000..1f1296034 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/create-component-version.rst @@ -0,0 +1,88 @@ +**Example 1: To create a component version from a recipe** + +The following ``create-component-version`` example creates a version of a Hello World component from a recipe file. :: + + aws greengrassv2 create-component-version \ + --inline-recipe fileb://com.example.HelloWorld-1.0.0.json + +Contents of ``com.example.HelloWorld-1.0.0.json``:: + + { + "RecipeFormatVersion": "2020-01-25", + "ComponentName": "com.example.HelloWorld", + "ComponentVersion": "1.0.0", + "ComponentDescription": "My first AWS IoT Greengrass component.", + "ComponentPublisher": "Amazon", + "ComponentConfiguration": { + "DefaultConfiguration": { + "Message": "world" + } + }, + "Manifests": [ + { + "Platform": { + "os": "linux" + }, + "Lifecycle": { + "Run": "echo 'Hello {configuration:/Message}'" + } + } + ] + } + +Output:: + + { + "arn": "arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.0", + "componentName": "com.example.HelloWorld", + "componentVersion": "1.0.0", + "creationTimestamp": "2021-01-07T16:24:33.650000-08:00", + "status": { + "componentState": "REQUESTED", + "message": "NONE", + "errors": {} + } + } + +For more information, see `Create custom components `__ and `Upload components to deploy `__ in the *AWS IoT Greengrass V2 Developer Guide*. + +**Example 2: To create a component version from an AWS Lambda function** + +The following ``create-component-version`` example creates a version of a Hello World component from an AWS Lambda function. :: + + aws greengrassv2 create-component-version \ + --cli-input-json file://lambda-function-component.json + +Contents of ``lambda-function-component.json``:: + + { + "lambdaFunction": { + "lambdaArn": "arn:aws:lambda:us-west-2:123456789012:function:HelloWorldPythonLambda:1", + "componentName": "com.example.HelloWorld", + "componentVersion": "1.0.0", + "componentLambdaParameters": { + "eventSources": [ + { + "topic": "hello/world/+", + "type": "IOT_CORE" + } + ] + } + } + } + +Output:: + + { + "arn": "arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.0", + "componentName": "com.example.HelloWorld", + "componentVersion": "1.0.0", + "creationTimestamp": "2021-01-07T17:05:27.347000-08:00", + "status": { + "componentState": "REQUESTED", + "message": "NONE", + "errors": {} + } + } + +For more information, see `Run AWS Lambda functions `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/create-deployment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/create-deployment.rst new file mode 100644 index 000000000..0400d5ced --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/create-deployment.rst @@ -0,0 +1,91 @@ +**Example 1: To create a deployment** + +The following ``create-deployment`` example deploys the AWS IoT Greengrass Command Line Interface to a core device. :: + + aws greengrassv2 create-deployment \ + --cli-input-json file://cli-deployment.json + +Contents of ``cli-deployment.json``:: + + { + "targetArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore", + "deploymentName": "Deployment for MyGreengrassCore", + "components": { + "aws.greengrass.Cli": { + "componentVersion": "2.0.3" + } + }, + "deploymentPolicies": { + "failureHandlingPolicy": "DO_NOTHING", + "componentUpdatePolicy": { + "timeoutInSeconds": 60, + "action": "NOTIFY_COMPONENTS" + }, + "configurationValidationPolicy": { + "timeoutInSeconds": 60 + } + }, + "iotJobConfiguration": {} + } + +Output:: + + { + "deploymentId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + } + +For more information, see `Create deployments `__ in the *AWS IoT Greengrass V2 Developer Guide*. + +**Example 2: To create a deployment that updates component configurations** + +The following ``create-deployment`` example deploys the AWS IoT Greengrass nucleus component to a group of core devices. This deployment applies the following configuration updates for the nucleus component: + +- Reset the target devices' proxy settings to their default no proxy settings. +- Reset the target devices' MQTT settings to their defaults. +- Sets the JVM options for the nucleus' JVM. +- Sets the logging level for the nucleus. + +:: + + aws greengrassv2 create-deployment \ + --cli-input-json file://nucleus-deployment.json + +Contents of ``nucleus-deployment.json``:: + + { + "targetArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup", + "deploymentName": "Deployment for MyGreengrassCoreGroup", + "components": { + "aws.greengrass.Nucleus": { + "componentVersion": "2.0.3", + "configurationUpdate": { + "reset": [ + "/networkProxy", + "/mqtt" + ], + "merge": "{\"jvmOptions\":\"-Xmx64m\",\"logging\":{\"level\":\"WARN\"}}" + } + } + }, + "deploymentPolicies": { + "failureHandlingPolicy": "ROLLBACK", + "componentUpdatePolicy": { + "timeoutInSeconds": 60, + "action": "NOTIFY_COMPONENTS" + }, + "configurationValidationPolicy": { + "timeoutInSeconds": 60 + } + }, + "iotJobConfiguration": {} + } + +Output:: + + { + "deploymentId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "iotJobId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "iotJobArn": "arn:aws:iot:us-west-2:123456789012:job/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" + } + +For more information, see `Create deployments `__ and `Update component configurations `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/delete-component.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/delete-component.rst new file mode 100644 index 000000000..274fafb4f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/delete-component.rst @@ -0,0 +1,10 @@ +**To delete a component version** + +The following ``delete-component`` example deletes a Hello World component. :: + + aws greengrassv2 delete-component \ + --arn arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.0 + +This command produces no output. + +For more information, see `Manage components `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/delete-core-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/delete-core-device.rst new file mode 100644 index 000000000..18670a1ad --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/delete-core-device.rst @@ -0,0 +1,10 @@ +**To delete a core device** + +The following ``delete-core-device`` example deletes an AWS IoT Greengrass core device. :: + + aws greengrassv2 delete-core-device \ + --core-device-thing-name MyGreengrassCore + +This command produces no output. + +For more information, see `Uninstall the AWS IoT Greengrass Core software `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/describe-component.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/describe-component.rst new file mode 100644 index 000000000..e8e845a1a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/describe-component.rst @@ -0,0 +1,31 @@ +**To describe a component version** + +The following ``describe-component`` example describes a Hello World component. :: + + aws greengrassv2 describe-component \ + --arn arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.0 + +Output:: + + { + "arn": "arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.0", + "componentName": "com.example.HelloWorld", + "componentVersion": "1.0.0", + "creationTimestamp": "2021-01-07T17:12:11.133000-08:00", + "publisher": "Amazon", + "description": "My first AWS IoT Greengrass component.", + "status": { + "componentState": "DEPLOYABLE", + "message": "NONE", + "errors": {} + }, + "platforms": [ + { + "attributes": { + "os": "linux" + } + } + ] + } + +For more information, see `Manage components `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/disassociate-service-role-from-account.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/disassociate-service-role-from-account.rst new file mode 100644 index 000000000..f96867917 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/disassociate-service-role-from-account.rst @@ -0,0 +1,13 @@ +**To disassociate the Greengrass service role from your AWS account** + +The following ``disassociate-service-role-from-account`` example disassociates the Greengrass service role from AWS IoT Greengrass for your AWS account. :: + + aws greengrassv2 disassociate-service-role-from-account + +Output:: + + { + "disassociatedAt": "2022-01-19T19:26:09Z" + } + +For more information, see `Greengrass service role `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/get-component-version-artifact.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/get-component-version-artifact.rst new file mode 100644 index 000000000..a5162e459 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/get-component-version-artifact.rst @@ -0,0 +1,15 @@ +**To get a URL to download a component artifact** + +The following ``get-component-version-artifact`` example gets a URL to download the local debug console component's JAR file. :: + + aws greengrassv2 get-component-version-artifact \ + --arn arn:aws:greengrass:us-west-2:aws:components:aws.greengrass.LocalDebugConsole:versions:2.0.3 \ + --artifact-name "Uvt6ZEzQ9TKiAuLbfXBX_APdY0TWks3uc46tHFHTzBM=/aws.greengrass.LocalDebugConsole.jar" + +Output:: + + { + "preSignedUrl": "https://evergreencomponentmanageme-artifactbucket7410c9ef-g18n1iya8kwr.s3.us-west-2.amazonaws.com/public/aws.greengrass.LocalDebugConsole/2.0.3/s3/ggv2-component-releases-prod-pdx/EvergreenHttpDebugView/2ffc496ba41b39568968b22c582b4714a937193ee7687a45527238e696672521/aws.greengrass.LocalDebugConsole/aws.greengrass.LocalDebugConsole.jar?X-Amz-Security-Token=KwfLKSdEXAMPLE..." + } + +For more information, see `Manage components `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/get-component.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/get-component.rst new file mode 100644 index 000000000..5c1380fc5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/get-component.rst @@ -0,0 +1,47 @@ +**Example 1: To download a component's recipe in YAML format (Linux, macOS, or Unix)** + +The following ``get-component`` example downloads a Hello World component's recipe to a file in YAML format. This command does the following: + +#. Uses the ``--output`` and ``--query`` parameters to control the command's output. These parameters extract the recipe blob from the command's output. For more information about controlling output, see `Controlling Command Output `_ in the *AWS Command Line Interface User Guide*. + +#. Uses the ``base64`` utility. This utility decodes the extracted blob to the original text. The blob that is returned by a successful ``get-component`` command is base64-encoded text. You must decode this blob to obtain the original text. + +#. Saves the decoded text to a file. The final section of the command (``> com.example.HelloWorld-1.0.0.json``) saves the decoded text to a file. + +:: + + aws greengrassv2 get-component \ + --arn arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.0 \ + --recipe-output-format YAML \ + --query recipe \ + --output text | base64 --decode > com.example.HelloWorld-1.0.0.json + +For more information, see `Manage components `__ in the *AWS IoT Greengrass V2 Developer Guide*. + +**Example 2: To download a component's recipe in YAML format (Windows CMD)** + +The following ``get-component`` example downloads a Hello World component's recipe to a file in YAML format. This command uses the ``certutil`` utility. :: + + aws greengrassv2 get-component ^ + --arn arn:aws:greengrass:us-west-2:675946970638:components:com.example.HelloWorld:versions:1.0.0 ^ + --recipe-output-format YAML ^ + --query recipe ^ + --output text > com.example.HelloWorld-1.0.0.yaml.b64 + + certutil -decode com.example.HelloWorld-1.0.0.yaml.b64 com.example.HelloWorld-1.0.0.yaml + +For more information, see `Manage components `__ in the *AWS IoT Greengrass V2 Developer Guide*. + +**Example 3: To download a component's recipe in YAML format (Windows PowerShell)** + +The following ``get-component`` example downloads a Hello World component's recipe to a file in YAML format. This command uses the ``certutil`` utility. :: + + aws greengrassv2 get-component ` + --arn arn:aws:greengrass:us-west-2:675946970638:components:com.example.HelloWorld:versions:1.0.0 ` + --recipe-output-format YAML ` + --query recipe ` + --output text > com.example.HelloWorld-1.0.0.yaml.b64 + + certutil -decode com.example.HelloWorld-1.0.0.yaml.b64 com.example.HelloWorld-1.0.0.yaml + +For more information, see `Manage components `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/get-connectivity-info.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/get-connectivity-info.rst new file mode 100644 index 000000000..6a9dc3bd6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/get-connectivity-info.rst @@ -0,0 +1,20 @@ +**To get the connectivity information for a Greengrass core device** + +The following ``get-connectivity-info`` example gets the connectivity information for a Greengrass core device. Client devices use this information to connect to the MQTT broker that runs on this core device. :: + + aws greengrassv2 get-connectivity-info \ + --thing-name MyGreengrassCore + +Output:: + + { + "connectivityInfo": [ + { + "id": "localIP_192.0.2.0", + "hostAddress": "192.0.2.0", + "portNumber": 8883 + } + ] + } + +For more information, see `Manage core device endpoints `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/get-core-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/get-core-device.rst new file mode 100644 index 000000000..f4d84eac1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/get-core-device.rst @@ -0,0 +1,20 @@ +**To get a core device** + +The following ``get-core-device`` example gets information about an AWS IoT Greengrass core device. :: + + aws greengrassv2 get-core-device \ + --core-device-thing-name MyGreengrassCore + +Output:: + + { + "coreDeviceThingName": "MyGreengrassCore", + "coreVersion": "2.0.3", + "platform": "linux", + "architecture": "amd64", + "status": "HEALTHY", + "lastStatusUpdateTimestamp": "2021-01-08T04:57:58.838000-08:00", + "tags": {} + } + +For more information, see `Check core device status `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/get-deployment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/get-deployment.rst new file mode 100644 index 000000000..4c0d72b29 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/get-deployment.rst @@ -0,0 +1,46 @@ +**To get a deployment** + +The following ``get-deployment`` example gets information about the deployment of the AWS IoT Greengrass nucleus component to a group of core devices. :: + + aws greengrassv2 get-deployment \ + --deployment-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 + +Output:: + + { + "targetArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup", + "revisionId": "14", + "deploymentId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "deploymentName": "Deployment for MyGreengrassCoreGroup", + "deploymentStatus": "ACTIVE", + "iotJobId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "iotJobArn": "arn:aws:iot:us-west-2:123456789012:job/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "components": { + "aws.greengrass.Nucleus": { + "componentVersion": "2.0.3", + "configurationUpdate": { + "merge": "{\"jvmOptions\":\"-Xmx64m\",\"logging\":{\"level\":\"WARN\"}}", + "reset": [ + "/networkProxy", + "/mqtt" + ] + } + } + }, + "deploymentPolicies": { + "failureHandlingPolicy": "ROLLBACK", + "componentUpdatePolicy": { + "timeoutInSeconds": 60, + "action": "NOTIFY_COMPONENTS" + }, + "configurationValidationPolicy": { + "timeoutInSeconds": 60 + } + }, + "iotJobConfiguration": {}, + "creationTimestamp": "2021-01-07T17:21:20.691000-08:00", + "isLatestForTarget": false, + "tags": {} + } + +For more information, see `Deploy components to devices `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/get-service-role-for-account.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/get-service-role-for-account.rst new file mode 100644 index 000000000..70c824924 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/get-service-role-for-account.rst @@ -0,0 +1,14 @@ +**To get the Greengrass service role for your AWS account** + +The following ``get-service-role-for-account`` example gets the service role that's associated with AWS IoT Greengrass for your AWS account. :: + + aws greengrassv2 get-service-role-for-account + +Output:: + + { + "associatedAt": "2022-01-19T19:21:53Z", + "roleArn": "arn:aws:iam::123456789012:role/service-role/Greengrass_ServiceRole" + } + +For more information, see `Greengrass service role `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-client-devices-associated-with-core-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-client-devices-associated-with-core-device.rst new file mode 100644 index 000000000..7f22bffa9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-client-devices-associated-with-core-device.rst @@ -0,0 +1,23 @@ +**To list the client devices associated with a core device** + +The following ``list-client-devices-associated-with-core-device`` example lists all client devices associated with a core device. :: + + aws greengrassv2 list-client-devices-associated-with-core-device \ + --core-device-thing-name MyTestGreengrassCore + +Output:: + + { + "associatedClientDevices": [ + { + "thingName": "MyClientDevice2", + "associationTimestamp": "2021-07-12T16:33:55.843000-07:00" + }, + { + "thingName": "MyClientDevice1", + "associationTimestamp": "2021-07-12T16:33:55.843000-07:00" + } + ] + } + +For more information, see `Interact with local IoT devices `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-component-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-component-versions.rst new file mode 100644 index 000000000..9f29a1ee8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-component-versions.rst @@ -0,0 +1,25 @@ +**To list the versions of a component** + +The following ``list-component-versions`` example lists all versions of a Hello World component. :: + + aws greengrassv2 list-component-versions \ + --arn arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld + +Output:: + + { + "componentVersions": [ + { + "componentName": "com.example.HelloWorld", + "componentVersion": "1.0.1", + "arn": "arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.1" + }, + { + "componentName": "com.example.HelloWorld", + "componentVersion": "1.0.0", + "arn": "arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.0" + } + ] + } + +For more information, see `Manage components `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-components.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-components.rst new file mode 100644 index 000000000..07d859295 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-components.rst @@ -0,0 +1,32 @@ +**To list components** + +The following ``list-components`` example lists each component and its latest version defined in your AWS account in the current Region. :: + + aws greengrassv2 list-components + +Output:: + + { + "components": [ + { + "arn": "arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld", + "componentName": "com.example.HelloWorld", + "latestVersion": { + "arn": "arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.1", + "componentVersion": "1.0.1", + "creationTimestamp": "2021-01-08T16:51:07.352000-08:00", + "description": "My first AWS IoT Greengrass component.", + "publisher": "Amazon", + "platforms": [ + { + "attributes": { + "os": "linux" + } + } + ] + } + } + ] + } + +For more information, see `Manage components `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-core-devices.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-core-devices.rst new file mode 100644 index 000000000..7aa7e5a94 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-core-devices.rst @@ -0,0 +1,19 @@ +**To list core devices** + +The following ``list-core-devices`` example lists the AWS IoT Greengrass core devices in your AWS account in the current Region. :: + + aws greengrassv2 list-core-devices + +Output:: + + { + "coreDevices": [ + { + "coreDeviceThingName": "MyGreengrassCore", + "status": "HEALTHY", + "lastStatusUpdateTimestamp": "2021-01-08T04:57:58.838000-08:00" + } + ] + } + +For more information, see `Check core device status `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-deployments.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-deployments.rst new file mode 100644 index 000000000..ff740b893 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-deployments.rst @@ -0,0 +1,32 @@ +**To list deployments** + +The following ``list-deployments`` example lists the latest revision of each deployment defined in your AWS account in the current Region. :: + + aws greengrassv2 list-deployments + +Output:: + + { + "deployments": [ + { + "targetArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup", + "revisionId": "14", + "deploymentId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "deploymentName": "Deployment for MyGreengrassCoreGroup", + "creationTimestamp": "2021-01-07T17:21:20.691000-08:00", + "deploymentStatus": "ACTIVE", + "isLatestForTarget": false + }, + { + "targetArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore", + "revisionId": "1", + "deploymentId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "deploymentName": "Deployment for MyGreengrassCore", + "creationTimestamp": "2021-01-06T16:10:42.407000-08:00", + "deploymentStatus": "COMPLETED", + "isLatestForTarget": false + } + ] + } + +For more information, see `Deploy components to devices `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-effective-deployments.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-effective-deployments.rst new file mode 100644 index 000000000..c4705ad29 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-effective-deployments.rst @@ -0,0 +1,36 @@ +**To list deployment jobs** + +The following ``list-effective-deployments`` example lists the deployments that apply to an AWS IoT Greengrass core device. :: + + aws greengrassv2 list-effective-deployments \ + --core-device-thing-name MyGreengrassCore + +Output:: + + { + "effectiveDeployments": [ + { + "deploymentId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "deploymentName": "Deployment for MyGreengrassCore", + "iotJobId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", + "targetArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore", + "coreDeviceExecutionStatus": "COMPLETED", + "reason": "SUCCESSFUL", + "creationTimestamp": "2021-01-06T16:10:42.442000-08:00", + "modifiedTimestamp": "2021-01-08T17:21:27.830000-08:00" + }, + { + "deploymentId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "deploymentName": "Deployment for MyGreengrassCoreGroup", + "iotJobId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE44444", + "iotJobArn": "arn:aws:iot:us-west-2:123456789012:job/a1b2c3d4-5678-90ab-cdef-EXAMPLE44444", + "targetArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup", + "coreDeviceExecutionStatus": "SUCCEEDED", + "reason": "SUCCESSFUL", + "creationTimestamp": "2021-01-07T17:19:20.394000-08:00", + "modifiedTimestamp": "2021-01-07T17:21:20.721000-08:00" + } + ] + } + +For more information, see `Check core device status `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-installed-components.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-installed-components.rst new file mode 100644 index 000000000..7ec941d6b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-installed-components.rst @@ -0,0 +1,27 @@ +**To list components installed on a core device** + +The following ``list-installed-components`` example lists the components that are installed on an AWS IoT Greengrass core device. :: + + aws greengrassv2 list-installed-components \ + --core-device-thing-name MyGreengrassCore + +Output:: + + { + "installedComponents": [ + { + "componentName": "aws.greengrass.Cli", + "componentVersion": "2.0.3", + "lifecycleState": "RUNNING", + "isRoot": true + }, + { + "componentName": "aws.greengrass.Nucleus", + "componentVersion": "2.0.3", + "lifecycleState": "FINISHED", + "isRoot": true + } + ] + } + +For more information, see `Check core device status `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-tags-for-resource.rst new file mode 100644 index 000000000..0e1fb4150 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/list-tags-for-resource.rst @@ -0,0 +1,16 @@ +**To list tags for a resource** + +The following ``list-tags-for-resource`` example lists all tags for an AWS IoT Greengrass core device. :: + + aws greengrassv2 list-tags-for-resource \ + --resource-arn arn:aws:greengrass:us-west-2:123456789012:coreDevices:MyGreengrassCore + +Output:: + + { + "tags": { + "Owner": "richard-roe" + } + } + +For more information, see `Tag your resources `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/tag-resource.rst new file mode 100644 index 000000000..5673a224e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/tag-resource.rst @@ -0,0 +1,11 @@ +**To add a tag to a resource** + +The following ``tag-resource`` example adds an owner tag to an AWS IoT Greengrass core device. You can use this tag to control access to the core device based on who owns it. :: + + aws greengrassv2 tag-resource \ + --resource-arn arn:aws:greengrass:us-west-2:123456789012:coreDevices:MyGreengrassCore \ + --tags Owner=richard-roe + +This command produces no output. + +For more information, see `Tag your resources `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/untag-resource.rst new file mode 100644 index 000000000..d14b0045b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove a tag from a resource** + +The following ``untag-resource`` example removes an owner tag from an AWS IoT Greengrass core device. :: + + aws iotsitewise untag-resource \ + --resource-arn arn:aws:greengrass:us-west-2:123456789012:coreDevices:MyGreengrassCore \ + --tag-keys Owner + +This command produces no output. + +For more information, see `Tag your resources `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/update-connectivity-info.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/update-connectivity-info.rst new file mode 100644 index 000000000..d9ba47ace --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/greengrassv2/update-connectivity-info.rst @@ -0,0 +1,27 @@ +**To update connectivity information for a Greengrass core device** + +The following ``update-connectivity-info`` example gets the connectivity information for a Greengrass core device. Client devices use this information to connect to the MQTT broker that runs on this core device. :: + + aws greengrassv2 update-connectivity-info \ + --thing-name MyGreengrassCore \ + --cli-input-json file://core-device-connectivity-info.json + +Contents of ``core-device-connectivity-info.json``:: + + { + "connectivityInfo": [ + { + "hostAddress": "192.0.2.0", + "portNumber": 8883, + "id": "localIP_192.0.2.0" + } + ] + } + +Output:: + + { + "version": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + } + +For more information, see `Manage core device endpoints `__ in the *AWS IoT Greengrass V2 Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/accept-invitation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/accept-invitation.rst new file mode 100644 index 000000000..d82af3c15 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/accept-invitation.rst @@ -0,0 +1,12 @@ +**To accept an invitation to become a GuardDuty member account in the current region** + +The following ``accept-invitation`` example shows how to accept an invitation to become a GuardDuty member account in the current region. :: + + aws guardduty accept-invitation \ + --detector-id 12abc34d567e8fa901bc2d34eexample \ + --master-id 123456789111 \ + --invitation-id d6b94fb03a66ff665f7db8764example + +This command produces no output. + +For more information, see `Managing GuardDuty accounts by invitation `__ in the GuardDuty User Guide. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/archive-findings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/archive-findings.rst new file mode 100644 index 000000000..c67b714dd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/archive-findings.rst @@ -0,0 +1,11 @@ +**To archive findings in the current region** + +This ``archive-findings`` example shows how to archive findings in the current region. :: + + aws guardduty archive-findings \ + --detector-id 12abc34d567e8fa901bc2d34eexample \ + --finding-ids d6b94fb03a66ff665f7db8764example 3eb970e0de00c16ec14e6910fexample + +This command produces no output. + +For more information, see `Creating suppression rules `__ in the *GuardDuty User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/create-detector.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/create-detector.rst new file mode 100644 index 000000000..459a1a4ac --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/create-detector.rst @@ -0,0 +1,14 @@ +**To enable GuardDuty in the current region** + +This example shows how to create a new detector, which enables GuardDuty, in the current region.:: + + aws guardduty create-detector \ + --enable + +Output:: + + { + "DetectorId": "b6b992d6d2f48e64bc59180bfexample" + } + +For more information, see `Enable Amazon GuardDuty `__ in the *GuardDuty User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/create-filter.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/create-filter.rst new file mode 100644 index 000000000..d074dccd4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/create-filter.rst @@ -0,0 +1,34 @@ +**Example 1: To create a new filter in the current region** + +The following ``create-filter`` example creates a filter that matches all Portscan findings for instance created from a specific image. This does not suppress those findings. :: + + aws guardduty create-filter \ + --detector-id b6b992d6d2f48e64bc59180bfexample \ + --name myFilterExample \ + --finding-criteria '{"Criterion": {"type": {"Eq": ["Recon:EC2/Portscan"]},"resource.instanceDetails.imageId": {"Eq": ["ami-0a7a207083example"]}}}' + +Output:: + + { + "Name": "myFilterExample" + } + +For more information, see `Filtering GuardDuty findings `__ in the *GuardDuty User Guide*. + +**Example 2: To create a new filter and suppress findings in the current region** + +The following ``create-filter`` example creates a filter that matches all Portscan findings for instance created from a specific image. This filter archives those findings so that they do not appear in your current findings. :: + + aws guardduty create-filter \ + --detector-id b6b992d6d2f48e64bc59180bfexample \ + --action ARCHIVE \ + --name myFilterSecondExample \ + --finding-criteria '{"Criterion": {"type": {"Eq": ["Recon:EC2/Portscan"]},"resource.instanceDetails.imageId": {"Eq": ["ami-0a7a207083example"]}}}' + +Output:: + + { + "Name": "myFilterSecondExample" + } + +For more information, see `Filtering GuardDuty findings `__ in the *GuardDuty User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/create-ip-set.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/create-ip-set.rst new file mode 100644 index 000000000..580049c4e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/create-ip-set.rst @@ -0,0 +1,18 @@ +**To create and activate a trusted IP set** + +The following ``create-ip-set`` example creates and activates a trusted IP set in the current Region. :: + + aws guardduty create-ip-set \ + --detector-id 12abc34d567e8fa901bc2d34eexample \ + --name new-ip-set-example \ + --format TXT \ + --location s3://amzn-s3-demo-bucket/customtrustlist.csv \ + --activate + +Output:: + + { + "IpSetId": "d4b94fc952d6912b8f3060768example" + } + +For more information, see `Working with Trusted IP Lists and Threat Lists `__ in the *GuardDuty User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/create-members.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/create-members.rst new file mode 100644 index 000000000..e50cc22ab --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/create-members.rst @@ -0,0 +1,15 @@ +**To associate a new member with your GuardDuty master account in the current region.** + +This example shows how to associate member accounts to be managed by the current account as the GuardDuty master. :: + + aws guardduty create-members + --detector-id b6b992d6d2f48e64bc59180bfexample \ + --account-details AccountId=111122223333,Email=first+member@example.com AccountId=111111111111 ,Email=another+member@example.com + +Output:: + + { + "UnprocessedAccounts": [] + } + +For more information, see `Managing multiple accounts `__ in the GuardDuty User Guide. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/create-publishing-destination.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/create-publishing-destination.rst new file mode 100644 index 000000000..5d5e883cf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/create-publishing-destination.rst @@ -0,0 +1,16 @@ +**To create a publishing destination to export GuardDuty findings in the current region to.** + +The following ``create-publishing-destination`` example shows how to set up a publishing destination to export current (not archived) GuardDuty findings to keep track of historical findings data. :: + + aws guardduty create-publishing-destination \ + --detector-id b6b992d6d2f48e64bc59180bfexample \ + --destination-type S3 \ + --destination-properties 'DestinationArn=arn:aws:s3:::amzn-s3-demo-bucket,KmsKeyArn=arn:aws:kms:us-west-1:111122223333:key/84cee9c5-dea1-401a-ab6d-e1de7example' + +Output:: + + { + "DestinationId": "46b99823849e1bbc242dfbe3cexample" + } + +For more information, see `Exporting generated GuardDuty findings to Amazon S3 buckets `__ in the *GuardDuty User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/create-sample-findings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/create-sample-findings.rst new file mode 100644 index 000000000..4565773c6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/create-sample-findings.rst @@ -0,0 +1,11 @@ +**To create sample GuardDuty findings in the current region.** + +This example shows how to create a sample finding of the provided types. :: + + aws guardduty create-sample-findings \ + --detector-id b6b992d6d2f48e64bc59180bfexample \ + --finding-types UnauthorizedAccess:EC2/TorClient UnauthorizedAccess:EC2/TorRelay + +This command produces no output. + +For more information, see `Sample findings `__ in the *GuardDuty User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/create-threat-intel-set.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/create-threat-intel-set.rst new file mode 100644 index 000000000..aecffff3e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/create-threat-intel-set.rst @@ -0,0 +1,18 @@ +**To create and activate a new threat intel set** + +The following ``create-threat-intel-set`` example creates and activates a threat intel set in the current Region. :: + + aws guardduty create-threat-intel-set \ + --detector-id b6b992d6d2f48e64bc59180bfexample \ + --name myThreatSet-example \ + --format TXT \ + --location s3://amzn-s3-demo-bucket/threatlist.csv \ + --activate + +Output:: + + { + "ThreatIntelSetId": "20b9a4691aeb33506b808878cexample" + } + +For more information, see `Working with Trusted IP Lists and Threat Lists `__ in the *GuardDuty User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/decline-invitations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/decline-invitations.rst new file mode 100644 index 000000000..ecdfea8a7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/decline-invitations.rst @@ -0,0 +1,14 @@ +**To decline an invitation to have Guardduty managed by another account in the current region.** + +This example shows how to decline a membership invitation. :: + + aws guardduty decline-invitations \ + --account-ids 111122223333 + +Output:: + + { + "UnprocessedAccounts": [] + } + +For more information, see `Managing GuardDuty accounts by invitation `__ in the GuardDuty User Guide. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/delete-detector.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/delete-detector.rst new file mode 100644 index 000000000..916706182 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/delete-detector.rst @@ -0,0 +1,10 @@ +**To delete a detector, and disable GuardDuty, in the current region.** + +This example shows how to delete a detector, if successful, this will disable GuardDuty in the region associated with that detector. :: + + aws guardduty delete-detector \ + --detector-id b6b992d6d2f48e64bc59180bfexample + +This command produces no output. + +For more information, see `Suspending or disabling GuardDuty `__ in the *GuardDuty User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/delete-filter.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/delete-filter.rst new file mode 100644 index 000000000..f18c14564 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/delete-filter.rst @@ -0,0 +1,11 @@ +**To delete an existing filter in the current region** + +This example shows how to create delete a filter. :: + + aws guardduty delete-filter \ + --detector-id b6b992d6d2f48e64bc59180bfexample \ + --filter-name byebyeFilter + +This command produces no output. + +For more information, see `Filtering findings `__ in the GuardDuty User Guide. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/disable-organization-admin-account.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/disable-organization-admin-account.rst new file mode 100644 index 000000000..ec8240d33 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/disable-organization-admin-account.rst @@ -0,0 +1,10 @@ +**To remove an account as the delegated administrator for GuardDuty within your organization** + +This example shows how to remove an account as the delegated administrator for GuardDuty. :: + + aws guardduty disable-organization-admin-account \ + --admin-account-id 111122223333 + +This command produces no output. + +For more information, see `Managing accounts with AWS organizations `__ in the *GuardDuty User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/disassociate-from-master-account.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/disassociate-from-master-account.rst new file mode 100644 index 000000000..31a6ad53a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/disassociate-from-master-account.rst @@ -0,0 +1,10 @@ +**To disassociate from your current administrator account in the current region** + +The following ``disassociate-from-master-account`` example disassociates your account from the current GuardDuty administrator account in the current AWS region. :: + + aws guardduty disassociate-from-master-account \ + --detector-id d4b040365221be2b54a6264dcexample + +This command produces no output. + +For more information, see `Understanding the relationship between GuardDuty administrator account and member accounts `__ in the *GuardDuty User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/get-detector.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/get-detector.rst new file mode 100644 index 000000000..a4aa5e162 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/get-detector.rst @@ -0,0 +1,19 @@ +**To retrieve details of a specific detector** + +The following ``get-detector`` example displays the configurations details of the specified detector. :: + + aws guardduty get-detector \ + --detector-id 12abc34d567e8fa901bc2d34eexample + +Output:: + + { + "Status": "ENABLED", + "ServiceRole": "arn:aws:iam::111122223333:role/aws-service-role/guardduty.amazonaws.com/AWSServiceRoleForAmazonGuardDuty", + "Tags": {}, + "FindingPublishingFrequency": "SIX_HOURS", + "UpdatedAt": "2018-11-07T03:24:22.938Z", + "CreatedAt": "2017-12-22T22:51:31.940Z" + } + +For more information, see `Concepts and Terminology `__ in the GuardDuty User Guide. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/get-findings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/get-findings.rst new file mode 100644 index 000000000..c292fa24f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/get-findings.rst @@ -0,0 +1,75 @@ +**Example 1: To retrieve the details of a specific finding** + +The following ``get-findings`` example retrieves the full JSON finding details of the specified finding. :: + + aws guardduty get-findings \ + --detector-id 12abc34d567e8fa901bc2d34eexample \ + --finding-id 1ab92989eaf0e742df4a014d5example + +Output:: + + { + "Findings": [ + { + "Resource": { + "ResourceType": "AccessKey", + "AccessKeyDetails": { + "UserName": "testuser", + "UserType": "IAMUser", + "PrincipalId": "AIDACKCEVSQ6C2EXAMPLE", + "AccessKeyId": "ASIASZ4SI7REEEXAMPLE" + } + }, + "Description": "APIs commonly used to discover the users, groups, policies and permissions in an account, was invoked by IAM principal testuser under unusual circumstances. Such activity is not typically seen from this principal.", + "Service": { + "Count": 5, + "Archived": false, + "ServiceName": "guardduty", + "EventFirstSeen": "2020-05-26T22:02:24Z", + "ResourceRole": "TARGET", + "EventLastSeen": "2020-05-26T22:33:55Z", + "DetectorId": "d4b040365221be2b54a6264dcexample", + "Action": { + "ActionType": "AWS_API_CALL", + "AwsApiCallAction": { + "RemoteIpDetails": { + "GeoLocation": { + "Lat": 51.5164, + "Lon": -0.093 + }, + "City": { + "CityName": "London" + }, + "IpAddressV4": "52.94.36.7", + "Organization": { + "Org": "Amazon.com", + "Isp": "Amazon.com", + "Asn": "16509", + "AsnOrg": "AMAZON-02" + }, + "Country": { + "CountryName": "United Kingdom" + } + }, + "Api": "ListPolicyVersions", + "ServiceName": "iam.amazonaws.com", + "CallerType": "Remote IP" + } + } + }, + "Title": "Unusual user permission reconnaissance activity by testuser.", + "Type": "Recon:IAMUser/UserPermissions", + "Region": "us-east-1", + "Partition": "aws", + "Arn": "arn:aws:guardduty:us-east-1:111122223333:detector/d4b040365221be2b54a6264dcexample/finding/1ab92989eaf0e742df4a014d5example", + "UpdatedAt": "2020-05-26T22:55:21.703Z", + "SchemaVersion": "2.0", + "Severity": 5, + "Id": "1ab92989eaf0e742df4a014d5example", + "CreatedAt": "2020-05-26T22:21:48.385Z", + "AccountId": "111122223333" + } + ] + } + +For more information, see `Findings `__ in the GuardDuty User Guide. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/get-ip-set.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/get-ip-set.rst new file mode 100644 index 000000000..8a8acc04c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/get-ip-set.rst @@ -0,0 +1,19 @@ +**To list get details on a specified trusted IP set** + +The following ``get-ip-set`` example shows the status and details of the specified trusted IP set. :: + + aws guardduty get-ip-set \ + --detector-id 12abc34d567e8fa901bc2d34eexample \ + --ip-set-id d4b94fc952d6912b8f3060768example + +Output:: + + { + "Status": "ACTIVE", + "Location": "s3://amzn-s3-demo-bucket.s3-us-west-2.amazonaws.com/customlist.csv", + "Tags": {}, + "Format": "TXT", + "Name": "test-ip-set-example" + } + +For more information, see `Working with Trusted IP Lists and Threat Lists `__ in the *GuardDuty User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/get-master-account.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/get-master-account.rst new file mode 100644 index 000000000..11d9e6699 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/get-master-account.rst @@ -0,0 +1,19 @@ +**To retrieve details about your master account in the current region** + +The following ``get-master-account`` example displays the status and details of the master account associated with your detector in the current region. :: + + aws guardduty get-master-account \ + --detector-id 12abc34d567e8fa901bc2d34eexample + +Output:: + + { + "Master": { + "InvitationId": "04b94d9704854a73f94e061e8example", + "InvitedAt": "2020-06-09T22:23:04.970Z", + "RelationshipStatus": "Enabled", + "AccountId": "111122223333" + } + } + +For more information, see `Understanding the relationship between GuardDuty administrator account and member account `__ in the *GuardDuty User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/list-detectors.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/list-detectors.rst new file mode 100644 index 000000000..2e4fb100a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/list-detectors.rst @@ -0,0 +1,15 @@ +**To list the available detectors in the current region** + +The following ``list-detectors`` example lists the available detectors in your current AWS region. :: + + aws guardduty list-detectors + +Output:: + + { + "DetectorIds": [ + "12abc34d567e8fa901bc2d34eexample" + ] + } + +For more information, see `Concepts and Terminology `__ in the GuardDuty User Guide. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/list-findings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/list-findings.rst new file mode 100644 index 000000000..59dc17950 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/list-findings.rst @@ -0,0 +1,77 @@ +**Example 1: To list all findings for the current region** + +The following ``list-findings`` example displays a list of all findingIds for the current region sorted by severity from highest to lowest. :: + + aws guardduty list-findings \ + --detector-id 12abc34d567e8fa901bc2d34eexample \ + --sort-criteria '{"AttributeName": "severity","OrderBy":"DESC"}' + +Output:: + + { + "FindingIds": [ + "04b8ab50fd29c64fc771b232dexample", + "5ab8ab50fd21373735c826d3aexample", + "90b93de7aba69107f05bbe60bexample", + ... + ] + } + +For more information, see `Findings `__ in the GuardDuty User Guide. + +**Example 2: To list findings for the current region matching a specific finding criteria** + +The following ``list-findings`` example displays a list of all findingIds that match a specified finding type. :: + + aws guardduty list-findings \ + --detector-id 12abc34d567e8fa901bc2d34eexample \ + --finding-criteria '{"Criterion":{"type": {"Eq":["UnauthorizedAccess:EC2/SSHBruteForce"]}}}' + +Output:: + + { + "FindingIds": [ + "90b93de7aba69107f05bbe60bexample", + "6eb9430d7023d30774d6f05e3example", + "2eb91a2d060ac9a21963a5848example", + "44b8ab50fd2b0039a9e48f570example", + "9eb8ab4cd2b7e5b66ba4f5e96example", + "e0b8ab3a38e9b0312cc390ceeexample" + ] + } + +For more information, see `Findings `__ in the GuardDuty User Guide. + +**Example 3: To list findings for the current region matching a specific set of finding criteria defined within a JSON file** + +The following ``list-findings`` example displays a list of all findingIds that are not archived, and involve the IAM user named "testuser", as specified in a JSON file. :: + + aws guardduty list-findings \ + --detector-id 12abc34d567e8fa901bc2d34eexample \ + --finding-criteria file://myfile.json + +Contents of ``myfile.json``:: + + {"Criterion": { + "resource.accessKeyDetails.userName":{ + "Eq":[ + "testuser" + ] + }, + "service.archived": { + "Eq": [ + "false" + ] + } + } + } + +Output:: + + { + "FindingIds": [ + "1ab92989eaf0e742df4a014d5example" + ] + } + +For more information, see `Findings `__ in the GuardDuty User Guide. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/list-invitations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/list-invitations.rst new file mode 100644 index 000000000..154129dff --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/list-invitations.rst @@ -0,0 +1,20 @@ +**To list details on your invitations to become a member account in the current region** + +The following ``list-invitations`` example lists details and statuses on your invitations to become a GuardDuty member account in the current region. :: + + aws guardduty list-invitations + +Output:: + + { + "Invitations": [ + { + "InvitationId": "d6b94fb03a66ff665f7db8764example", + "InvitedAt": "2020-06-10T17:56:38.221Z", + "RelationshipStatus": "Invited", + "AccountId": "123456789111" + } + ] + } + +For more information, see `Managing GuardDuty Accounts by Invitation `__ in the GuardDuty User Guide. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/list-ip-sets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/list-ip-sets.rst new file mode 100644 index 000000000..695a83304 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/list-ip-sets.rst @@ -0,0 +1,16 @@ +**To list trusted IP sets in the current region** + +The following ``list-ip-sets`` example lists the trusted IP sets in your current AWS region. :: + + aws guardduty list-ip-sets \ + --detector-id 12abc34d567e8fa901bc2d34eexample + +Output:: + + { + "IpSetIds": [ + "d4b94fc952d6912b8f3060768example" + ] + } + +For more information, see `Working with Trusted IP Lists and Threat Lists `__ in the GuardDuty User Guide. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/list-members.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/list-members.rst new file mode 100644 index 000000000..435d5a1c2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/list-members.rst @@ -0,0 +1,51 @@ +**Example 1: To list only current members in the current Region** + +The following ``list-members`` example lists and provides details of only current member accounts associated with the GuardDuty administrator account, in the current region. :: + + aws guardduty list-members \ + --detector-id 12abc34d567e8fa901bc2d34eexample \ + --only-associated="true" + +Output:: + + { + "Members": [ + { + "RelationshipStatus": "Enabled", + "InvitedAt": "2020-06-09T22:49:00.910Z", + "MasterId": "111122223333", + "DetectorId": "7ab8b2f61b256c87f793f6a86example", + "UpdatedAt": "2020-06-09T23:08:22.512Z", + "Email": "your+member@example.com", + "AccountId": "123456789012" + } + ] + } + +For more information, see `Understanding the relationship between GuardDuty administrator account and member accounts `__ in the *GuardDuty User Guide*. + +**Example 2: To list all the members in the current Region** + +The following ``list-members`` example lists and provides details of all the member accounts, including those who have been disassociated or have not yet accepted the invite from the GuardDuty administrator, in the current region. :: + + aws guardduty list-members \ + --detector-id 12abc34d567e8fa901bc2d34eexample \ + --only-associated="false" + +Output:: + + { + "Members": [ + { + "RelationshipStatus": "Enabled", + "InvitedAt": "2020-06-09T22:49:00.910Z", + "MasterId": "111122223333", + "DetectorId": "7ab8b2f61b256c87f793f6a86example", + "UpdatedAt": "2020-06-09T23:08:22.512Z", + "Email": "your+other+member@example.com", + "AccountId": "555555555555" + } + ] + } + +For more information, see `Understanding the relationship between GuardDuty administrator account and member accounts `__ in the *GuardDuty User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/update-detector.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/update-detector.rst new file mode 100644 index 000000000..96a8117d6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/update-detector.rst @@ -0,0 +1,23 @@ +**Example 1: To enable runtime monitoring in GuardDuty** + +The following ``update-detector`` example enables runtime monitoring without additional configuration. :: + + aws guardduty update-detector \ + --detector-id 12abc34d567e8fa901bc2d34eexample \ + --features 'Name=RUNTIME_MONITORING,Status=ENABLED' + +This command produces no output. + +For more information, see `Runtime monitoring `__ in the *GuardDuty User Guide*. + +**Example 2: To enable runtime monitoring with additional configuration** + +The following ``update-detector`` example enables runtime monitoring with additional configuration for EC2, ECS Fargate, and EKS. :: + + aws guardduty update-detector \ + --detector-id 12abc34d567e8fa901bc2d34eexample \ + --features 'Name=RUNTIME_MONITORING,Status=ENABLED,AdditionalConfiguration=[{Name=EC2_AGENT_MANAGEMENT,Status=ENABLED},{Name=ECS_FARGATE_AGENT_MANAGEMENT,Status=ENABLED},{Name=EKS_ADDON_MANAGEMENT,Status=ENABLED}]' + +This command produces no output. + +For more information, see `Runtime monitoring `__ in the *GuardDuty User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/update-ip-set.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/update-ip-set.rst new file mode 100644 index 000000000..fce7c3817 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/guardduty/update-ip-set.rst @@ -0,0 +1,12 @@ +**To update a trusted IP set** + +The following ``update-ip-set`` example shows how to update the details of a trusted IP set. :: + + aws guardduty update-ip-set \ + --detector-id 12abc34d567e8fa901bc2d34eexample \ + --ip-set-id d4b94fc952d6912b8f3060768example \ + --location https://amzn-s3-demo-bucket.s3-us-west-2.amazonaws.com/customtrustlist2.csv + +This command produces no output. + +For more information, see `Working with Trusted IP Lists and Threat Lists `__ in the *GuardDuty User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/health/describe-affected-entities.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/health/describe-affected-entities.rst new file mode 100644 index 000000000..9b7ce19c3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/health/describe-affected-entities.rst @@ -0,0 +1,23 @@ +**To list the entities that are affected by a specified AWS Health event** + +The following ``describe-affected-entities`` example lists the entities that are affected by the specified AWS Health event. This event is a billing notification for the AWS account. :: + + aws health describe-affected-entities \ + --filter "eventArns=arn:aws:health:global::event/BILLING/AWS_BILLING_NOTIFICATION/AWS_BILLING_NOTIFICATION_6ce1d874-e995-40e2-99cd-EXAMPLE11145" \ + --region us-east-1 + +Output:: + + { + "entities": [ + { + "entityArn": "arn:aws:health:global:123456789012:entity/EXAMPLEimSMoULmWHpb", + "eventArn": "arn:aws:health:global::event/BILLING/AWS_BILLING_NOTIFICATION/AWS_BILLING_NOTIFICATION_6ce1d874-e995-40e2-99cd-EXAMPLE11145", + "entityValue": "AWS_ACCOUNT", + "awsAccountId": "123456789012", + "lastUpdatedTime": 1588356454.08 + } + ] + } + +For more information, see `Event log `__ in the *AWS Health User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/health/describe-event-details.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/health/describe-event-details.rst new file mode 100644 index 000000000..cc53eb79e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/health/describe-event-details.rst @@ -0,0 +1,33 @@ +**To list information about an AWS Health event** + +The following ``describe-event-details`` example lists information about the specified AWS Health event. :: + + aws health describe-event-details \ + --event-arns "arn:aws:health:us-east-1::event/EC2/AWS_EC2_OPERATIONAL_ISSUE/AWS_EC2_OPERATIONAL_ISSUE_VKTXI_EXAMPLE111" \ + --region us-east-1 + +Output:: + + { + "successfulSet": [ + { + "event": { + "arn": "arn:aws:health:us-east-1::event/EC2/AWS_EC2_OPERATIONAL_ISSUE/AWS_EC2_OPERATIONAL_ISSUE_VKTXI_EXAMPLE111", + "service": "EC2", + "eventTypeCode": "AWS_EC2_OPERATIONAL_ISSUE", + "eventTypeCategory": "issue", + "region": "us-east-1", + "startTime": 1587462325.096, + "endTime": 1587464204.774, + "lastUpdatedTime": 1587464204.865, + "statusCode": "closed" + }, + "eventDescription": { + "latestDescription": "[RESOLVED] Increased API Error Rates and Latencies\n\n[02:45 AM PDT] We are investigating increased API error rates and latencies in the US-EAST-1 Region.\n\n[03:16 AM PDT] Between 2:10 AM and 2:59 AM PDT we experienced increased API error rates and latencies in the US-EAST-1 Region. The issue has been resolved and the service is operating normally." + } + } + ], + "failedSet": [] + } + +For more information, see `Event details pane `__ in the *AWS Health User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/health/describe-events.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/health/describe-events.rst new file mode 100644 index 000000000..17b618b45 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/health/describe-events.rst @@ -0,0 +1,184 @@ +**Example 1: To list AWS Health events** + +The following ``describe-events`` example lists recent AWS Health events. :: + + aws health describe-events \ + --region us-east-1 + +Output:: + + { + "events": [ + { + "arn": "arn:aws:health:us-west-1::event/ECS/AWS_ECS_OPERATIONAL_ISSUE/AWS_ECS_OPERATIONAL_ISSUE_KWQPY_EXAMPLE111", + "service": "ECS", + "eventTypeCode": "AWS_ECS_OPERATIONAL_ISSUE", + "eventTypeCategory": "issue", + "region": "us-west-1", + "startTime": 1589077890.53, + "endTime": 1589086345.597, + "lastUpdatedTime": 1589086345.905, + "statusCode": "closed", + "eventScopeCode": "PUBLIC" + }, + { + "arn": "arn:aws:health:global::event/BILLING/AWS_BILLING_NOTIFICATION/AWS_BILLING_NOTIFICATION_6ce1d874-e995-40e2-99cd-EXAMPLE1118b", + "service": "BILLING", + "eventTypeCode": "AWS_BILLING_NOTIFICATION", + "eventTypeCategory": "accountNotification", + "region": "global", + "startTime": 1588356000.0, + "lastUpdatedTime": 1588356524.358, + "statusCode": "open", + "eventScopeCode": "ACCOUNT_SPECIFIC" + }, + { + "arn": "arn:aws:health:us-west-2::event/CLOUDFORMATION/AWS_CLOUDFORMATION_OPERATIONAL_ISSUE/AWS_CLOUDFORMATION_OPERATIONAL_ISSUE_OHTWY_EXAMPLE111", + "service": "CLOUDFORMATION", + "eventTypeCode": "AWS_CLOUDFORMATION_OPERATIONAL_ISSUE", + "eventTypeCategory": "issue", + "region": "us-west-2", + "startTime": 1588279630.761, + "endTime": 1588284650.0, + "lastUpdatedTime": 1588284691.941, + "statusCode": "closed", + "eventScopeCode": "PUBLIC" + }, + { + "arn": "arn:aws:health:ap-northeast-1::event/LAMBDA/AWS_LAMBDA_OPERATIONAL_ISSUE/AWS_LAMBDA_OPERATIONAL_ISSUE_JZDND_EXAMPLE111", + "service": "LAMBDA", + "eventTypeCode": "AWS_LAMBDA_OPERATIONAL_ISSUE", + "eventTypeCategory": "issue", + "region": "ap-northeast-1", + "startTime": 1587379534.08, + "endTime": 1587391771.0, + "lastUpdatedTime": 1587395689.316, + "statusCode": "closed", + "eventScopeCode": "PUBLIC" + }, + { + "arn": "arn:aws:health:us-east-1::event/EC2/AWS_EC2_OPERATIONAL_ISSUE/AWS_EC2_OPERATIONAL_ISSUE_COBXJ_EXAMPLE111", + "service": "EC2", + "eventTypeCode": "AWS_EC2_OPERATIONAL_ISSUE", + "eventTypeCategory": "issue", + "region": "us-east-1", + "startTime": 1586473044.284, + "endTime": 1586479706.091, + "lastUpdatedTime": 1586479706.153, + "statusCode": "closed", + "eventScopeCode": "PUBLIC" + }, + { + "arn": "arn:aws:health:global::event/SECURITY/AWS_SECURITY_NOTIFICATION/AWS_SECURITY_NOTIFICATION_42007387-8129-42da-8c88-EXAMPLE11139", + "service": "SECURITY", + "eventTypeCode": "AWS_SECURITY_NOTIFICATION", + "eventTypeCategory": "accountNotification", + "region": "global", + "startTime": 1585674000.0, + "lastUpdatedTime": 1585674004.132, + "statusCode": "open", + "eventScopeCode": "PUBLIC" + }, + { + "arn": "arn:aws:health:global::event/CLOUDFRONT/AWS_CLOUDFRONT_OPERATIONAL_ISSUE/AWS_CLOUDFRONT_OPERATIONAL_ISSUE_FRQXG_EXAMPLE111", + "service": "CLOUDFRONT", + "eventTypeCode": "AWS_CLOUDFRONT_OPERATIONAL_ISSUE", + "eventTypeCategory": "issue", + "region": "global", + "startTime": 1585610898.589, + "endTime": 1585617671.0, + "lastUpdatedTime": 1585620638.869, + "statusCode": "closed", + "eventScopeCode": "PUBLIC" + }, + { + "arn": "arn:aws:health:us-east-1::event/SES/AWS_SES_OPERATIONAL_ISSUE/AWS_SES_OPERATIONAL_ISSUE_URNDF_EXAMPLE111", + "service": "SES", + "eventTypeCode": "AWS_SES_OPERATIONAL_ISSUE", + "eventTypeCategory": "issue", + "region": "us-east-1", + "startTime": 1585342008.46, + "endTime": 1585344017.0, + "lastUpdatedTime": 1585344355.989, + "statusCode": "closed", + "eventScopeCode": "PUBLIC" + }, + { + "arn": "arn:aws:health:global::event/IAM/AWS_IAM_OPERATIONAL_NOTIFICATION/AWS_IAM_OPERATIONAL_NOTIFICATION_b6771c34-6ecd-4aea-9d3e-EXAMPLE1117e", + "service": "IAM", + "eventTypeCode": "AWS_IAM_OPERATIONAL_NOTIFICATION", + "eventTypeCategory": "accountNotification", + "region": "global", + "startTime": 1584978300.0, + "lastUpdatedTime": 1584978553.572, + "statusCode": "open", + "eventScopeCode": "ACCOUNT_SPECIFIC" + }, + { + "arn": "arn:aws:health:ap-southeast-2::event/EC2/AWS_EC2_OPERATIONAL_ISSUE/AWS_EC2_OPERATIONAL_ISSUE_HNGHE_EXAMPLE111", + "service": "EC2", + "eventTypeCode": "AWS_EC2_OPERATIONAL_ISSUE", + "eventTypeCategory": "issue", + "region": "ap-southeast-2", + "startTime": 1583881487.483, + "endTime": 1583885056.785, + "lastUpdatedTime": 1583885057.052, + "statusCode": "closed", + "eventScopeCode": "PUBLIC" + } + ] + } + +For more information, see `Getting started with the AWS Personal Health Dashboard `__ in the *AWS Health User Guide*. + +**Example 2: To list AWS Health events by service and event status code** + +The following ``describe-events`` example lists AWS Health events for Amazon Elastic Compute Cloud (Amazon EC2) where the event status is closed. :: + + aws health describe-events \ + --filter "services=EC2,eventStatusCodes=closed" + +Output:: + + { + "events": [ + { + "arn": "arn:aws:health:us-east-1::event/EC2/AWS_EC2_OPERATIONAL_ISSUE/AWS_EC2_OPERATIONAL_ISSUE_VKTXI_EXAMPLE111", + "service": "EC2", + "eventTypeCode": "AWS_EC2_OPERATIONAL_ISSUE", + "eventTypeCategory": "issue", + "region": "us-east-1", + "startTime": 1587462325.096, + "endTime": 1587464204.774, + "lastUpdatedTime": 1587464204.865, + "statusCode": "closed", + "eventScopeCode": "PUBLIC" + }, + { + "arn": "arn:aws:health:us-east-1::event/EC2/AWS_EC2_OPERATIONAL_ISSUE/AWS_EC2_OPERATIONAL_ISSUE_COBXJ_EXAMPLE111", + "service": "EC2", + "eventTypeCode": "AWS_EC2_OPERATIONAL_ISSUE", + "eventTypeCategory": "issue", + "region": "us-east-1", + "startTime": 1586473044.284, + "endTime": 1586479706.091, + "lastUpdatedTime": 1586479706.153, + "statusCode": "closed", + "eventScopeCode": "PUBLIC" + }, + { + "arn": "arn:aws:health:ap-southeast-2::event/EC2/AWS_EC2_OPERATIONAL_ISSUE/AWS_EC2_OPERATIONAL_ISSUE_HNGHE_EXAMPLE111", + "service": "EC2", + "eventTypeCode": "AWS_EC2_OPERATIONAL_ISSUE", + "eventTypeCategory": "issue", + "region": "ap-southeast-2", + "startTime": 1583881487.483, + "endTime": 1583885056.785, + "lastUpdatedTime": 1583885057.052, + "statusCode": "closed", + "eventScopeCode": "PUBLIC" + } + ] + } + +For more information, see `Getting started with the AWS Personal Health Dashboard `__ in the *AWS Health User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/create-fhir-datastore.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/create-fhir-datastore.rst new file mode 100644 index 000000000..f2114244b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/create-fhir-datastore.rst @@ -0,0 +1,47 @@ +**Example 1: Create a SigV4-enabled HealthLake data store** + +The following ``create-fhir-datastore`` example demonstrates how to create a new data store in AWS HealthLake. :: + + aws healthlake create-fhir-datastore \ + --datastore-type-version R4 \ + --datastore-name "FhirTestDatastore" + +Output:: + + { + "DatastoreEndpoint": "https://healthlake.us-east-1.amazonaws.com/datastore/(Data store ID)/r4/", + "DatastoreArn": "arn:aws:healthlake:us-east-1:(AWS Account ID):datastore/(Data store ID)", + "DatastoreStatus": "CREATING", + "DatastoreId": "(Data store ID)" + } + +**Example 2: Create a SMART on FHIR-enabled HealthLake data store** + +The following ``create-fhir-datastore`` example demonstrates how to create a new SMART on FHIR-enabled data store in AWS HealthLake. :: + + aws healthlake create-fhir-datastore \ + --datastore-name "your-data-store-name" \ + --datastore-type-version R4 \ + --preload-data-config PreloadDataType="SYNTHEA" \ + --sse-configuration '{ "KmsEncryptionConfig": { "CmkType": "CUSTOMER_MANAGED_KMS_KEY", "KmsKeyId": "arn:aws:kms:us-east-1:your-account-id:key/your-key-id" } }' \ + --identity-provider-configuration file://identity_provider_configuration.json + +Contents of ``identity_provider_configuration.json``:: + + { + "AuthorizationStrategy": "SMART_ON_FHIR_V1", + "FineGrainedAuthorizationEnabled": true, + "IdpLambdaArn": "arn:aws:lambda:your-region:your-account-id:function:your-lambda-name", + "Metadata": "{\"issuer\":\"https://ehr.example.com\", \"jwks_uri\":\"https://ehr.example.com/.well-known/jwks.json\",\"authorization_endpoint\":\"https://ehr.example.com/auth/authorize\",\"token_endpoint\":\"https://ehr.token.com/auth/token\",\"token_endpoint_auth_methods_supported\":[\"client_secret_basic\",\"foo\"],\"grant_types_supported\":[\"client_credential\",\"foo\"],\"registration_endpoint\":\"https://ehr.example.com/auth/register\",\"scopes_supported\":[\"openId\",\"profile\",\"launch\"],\"response_types_supported\":[\"code\"],\"management_endpoint\":\"https://ehr.example.com/user/manage\",\"introspection_endpoint\":\"https://ehr.example.com/user/introspect\",\"revocation_endpoint\":\"https://ehr.example.com/user/revoke\",\"code_challenge_methods_supported\":[\"S256\"],\"capabilities\":[\"launch-ehr\",\"sso-openid-connect\",\"client-public\"]}" + } + +Output:: + + { + "DatastoreEndpoint": "https://healthlake.us-east-1.amazonaws.com/datastore/(Data store ID)/r4/", + "DatastoreArn": "arn:aws:healthlake:us-east-1:(AWS Account ID):datastore/(Data store ID)", + "DatastoreStatus": "CREATING", + "DatastoreId": "(Data store ID)" + } + +For more information, see `Creating and monitoring a FHIR data store `__ in the *AWS HealthLake Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/delete-fhir-datastore.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/delete-fhir-datastore.rst new file mode 100644 index 000000000..d4668f95d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/delete-fhir-datastore.rst @@ -0,0 +1,17 @@ +**To delete a FHIR data store** + +The following ``delete-fhir-datastore`` example demonstrates how to delete a data store and all of its contents in AWS HealthLake. :: + + aws healthlake delete-fhir-datastore \ + --datastore-id (Data store ID) + +Output:: + + { + "DatastoreEndpoint": "https://healthlake.us-east-1.amazonaws.com/datastore/(Data store ID)/r4/", + "DatastoreArn": "arn:aws:healthlake:us-east-1:(AWS Account ID):datastore/(Data store ID)", + "DatastoreStatus": "DELETING", + "DatastoreId": "(Data store ID)" + } + +For more information, see `Creating and monitoring a FHIR data store ` in the *AWS HealthLake Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/describe-fhir-datastore.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/describe-fhir-datastore.rst new file mode 100644 index 000000000..3c58363f1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/describe-fhir-datastore.rst @@ -0,0 +1,36 @@ +**To describe a FHIR data store** + +The following ``describe-fhir-datastore`` example demonstrates how to find the properties of a data store in AWS HealthLake. :: + + aws healthlake describe-fhir-datastore \ + --datastore-id "1f2f459836ac6c513ce899f9e4f66a59" + + +Output:: + + { + "DatastoreProperties": { + "PreloadDataConfig": { + "PreloadDataType": "SYNTHEA" + }, + "SseConfiguration": { + "KmsEncryptionConfig": { + "CmkType": "CUSTOMER_MANAGED_KMS_KEY", + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + } + }, + "DatastoreName": "Demo", + "DatastoreArn": "arn:aws:healthlake:us-east-1::datastore/", + "DatastoreEndpoint": "https://healthlake.us-east-1.amazonaws.com/datastore//r4/", + "DatastoreStatus": "ACTIVE", + "DatastoreTypeVersion": "R4", + "CreatedAt": 1603761064.881, + "DatastoreId": "", + "IdentityProviderConfiguration": { + "AuthorizationStrategy": "AWS_AUTH", + "FineGrainedAuthorizationEnabled": false + } + } + } + +For more information, see `Creating and monitoring a FHIR data stores `__ in the *AWS HealthLake Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/describe-fhir-export-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/describe-fhir-export-job.rst new file mode 100644 index 000000000..943695765 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/describe-fhir-export-job.rst @@ -0,0 +1,29 @@ +**To describe a FHIR export job** + +The following ``describe-fhir-export-job`` example shows how to find the properties of a FHIR export job in AWS HealthLake. :: + + aws healthlake describe-fhir-export-job \ + --datastore-id (Data store ID) \ + --job-id 9b9a51943afaedd0a8c0c26c49135a31 + +Output:: + + { + "ExportJobProperties": { + "DataAccessRoleArn": "arn:aws:iam::(AWS Account ID):role/(Role Name)", + "JobStatus": "IN_PROGRESS", + "JobId": "9009813e9d69ba7cf79bcb3468780f16", + "SubmitTime": "2024-11-20T11:31:46.672000-05:00", + "EndTime": "2024-11-20T11:34:01.636000-05:00", + "OutputDataConfig": { + "S3Configuration": { + "S3Uri": "s3://(Bucket Name)/(Prefix Name)/", + "KmsKeyId": "arn:aws:kms:us-east-1:012345678910:key/d330e7fc-b56c-4216-a250-f4c43ef46e83" + } + + }, + "DatastoreId": "(Data store ID)" + } + } + +For more information, see `Exporting files from a FHIR data store `__ in the *AWS HealthLake Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/describe-fhir-import-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/describe-fhir-import-job.rst new file mode 100644 index 000000000..26b80f7ea --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/describe-fhir-import-job.rst @@ -0,0 +1,26 @@ +**To describe a FHIR import job** + +The following ``describe-fhir-import-job`` example shows how to learn the properties of a FHIR import job using AWS HealthLake. :: + + aws healthlake describe-fhir-import-job \ + --datastore-id (Data store ID) \ + --job-id c145fbb27b192af392f8ce6e7838e34f + +Output:: + + { + "ImportJobProperties": { + "InputDataConfig": { + "S3Uri": "s3://(Bucket Name)/(Prefix Name)/" + { "arrayitem2": 2 } + }, + "DataAccessRoleArn": "arn:aws:iam::(AWS Account ID):role/(Role Name)", + "JobStatus": "COMPLETED", + "JobId": "c145fbb27b192af392f8ce6e7838e34f", + "SubmitTime": 1606272542.161, + "EndTime": 1606272609.497, + "DatastoreId": "(Data store ID)" + } + } + +For more information, see `Importing files to a FHIR data store `__ in the *AWS HealthLake Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/list-fhir-datastores.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/list-fhir-datastores.rst new file mode 100644 index 000000000..9169a61c2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/list-fhir-datastores.rst @@ -0,0 +1,37 @@ +**To list FHIR data stores** + +The following ``list-fhir-datastores`` example shows to how to use the command and how users can filter results based on data store status in AWS HealthLake. :: + + aws healthlake list-fhir-datastores \ + --filter DatastoreStatus=ACTIVE + +Output:: + + { + "DatastorePropertiesList": [ + { + "PreloadDataConfig": { + "PreloadDataType": "SYNTHEA" + }, + "SseConfiguration": { + "KmsEncryptionConfig": { + "CmkType": "CUSTOMER_MANAGED_KMS_KEY", + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + } + }, + "DatastoreName": "Demo", + "DatastoreArn": "arn:aws:healthlake:us-east-1::datastore/", + "DatastoreEndpoint": "https://healthlake.us-east-1.amazonaws.com/datastore//r4/", + "DatastoreStatus": "ACTIVE", + "DatastoreTypeVersion": "R4", + "CreatedAt": 1603761064.881, + "DatastoreId": "", + "IdentityProviderConfiguration": { + "AuthorizationStrategy": "AWS_AUTH", + "FineGrainedAuthorizationEnabled": false + } + } + ] + } + +For more information, see `Creating and monitoring a FHIR data store `__ in the *AWS HealthLake Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/list-fhir-export-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/list-fhir-export-jobs.rst new file mode 100644 index 000000000..7e45c1908 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/list-fhir-export-jobs.rst @@ -0,0 +1,38 @@ +**To list all FHIR export jobs** + +The following ``list-fhir-export-jobs`` example shows how to use the command to view a list of export jobs associated with an account. :: + + aws healthlake list-fhir-export-jobs \ + --datastore-id (Data store ID) \ + --submitted-before (DATE like 2024-10-13T19:00:00Z)\ + --submitted-after (DATE like 2020-10-13T19:00:00Z )\ + --job-name "FHIR-EXPORT" \ + --job-status SUBMITTED \ + --max-results (Integer between 1 and 500) + +Output:: + + { + "ExportJobPropertiesList": [ + { + "ExportJobProperties": { + "OutputDataConfig": { + "S3Uri": "s3://(Bucket Name)/(Prefix Name)/", + "S3Configuration": { + "S3Uri": "s3://(Bucket Name)/(Prefix Name)/", + "KmsKeyId": "(KmsKey Id)" + } + }, + "DataAccessRoleArn": "arn:aws:iam::(AWS Account ID):role/(Role Name)", + "JobStatus": "COMPLETED", + "JobId": "c145fbb27b192af392f8ce6e7838e34f", + "JobName": "FHIR-EXPORT", + "SubmitTime": "2024-11-20T11:31:46.672000-05:00", + "EndTime": "2024-11-20T11:34:01.636000-05:00", + "DatastoreId": "(Data store ID)" + } + } + ] + } + +For more information, see `Exporting files from a FHIR data store `__ in the AWS HealthLake Developer Guide. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/list-fhir-import-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/list-fhir-import-jobs.rst new file mode 100644 index 000000000..428df7220 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/list-fhir-import-jobs.rst @@ -0,0 +1,48 @@ +**To list all FHIR import jobs** + +The following ``list-fhir-import-jobs`` example shows how to use the command to view a list of all import jobs associated with an account. :: + + aws healthlake list-fhir-import-jobs \ + --datastore-id (Data store ID) \ + --submitted-before (DATE like 2024-10-13T19:00:00Z) \ + --submitted-after (DATE like 2020-10-13T19:00:00Z ) \ + --job-name "FHIR-IMPORT" \ + --job-status SUBMITTED \ + -max-results (Integer between 1 and 500) + +Output:: + + { + "ImportJobPropertiesList": [ + { + "JobId": "c0fddbf76f238297632d4aebdbfc9ddf", + "JobStatus": "COMPLETED", + "SubmitTime": "2024-11-20T10:08:46.813000-05:00", + "EndTime": "2024-11-20T10:10:09.093000-05:00", + "DatastoreId": "(Data store ID)", + "InputDataConfig": { + "S3Uri": "s3://(Bucket Name)/(Prefix Name)/" + }, + "JobOutputDataConfig": { + "S3Configuration": { + "S3Uri": "s3://(Bucket Name)/import/6407b9ae4c2def3cb6f1a46a0c599ec0-FHIR_IMPORT-c0fddbf76f238297632d4aebdbfc9ddf/", + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/b7f645cb-e564-4981-8672-9e012d1ff1a0" + } + }, + "JobProgressReport": { + "TotalNumberOfScannedFiles": 1, + "TotalSizeOfScannedFilesInMB": 0.001798, + "TotalNumberOfImportedFiles": 1, + "TotalNumberOfResourcesScanned": 1, + "TotalNumberOfResourcesImported": 1, + "TotalNumberOfResourcesWithCustomerError": 0, + "TotalNumberOfFilesReadWithCustomerError": 0, + "Throughput": 0.0 + }, + "DataAccessRoleArn": "arn:aws:iam::(AWS Account ID):role/(Role Name)" + } + ] + } + + +For more information, see `Importing files to FHIR data store `__ in the AWS HealthLake Developer Guide. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/list-tags-for-resource.rst new file mode 100644 index 000000000..47b227316 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/list-tags-for-resource.rst @@ -0,0 +1,17 @@ +**To list tags for a data store** + +The following ``list-tags-for-resource`` example lists the tags associated with the specified data store.:: + + aws healthlake list-tags-for-resource \ + --resource-arn "arn:aws:healthlake:us-east-1:123456789012:datastore/fhir/0725c83f4307f263e16fd56b6d8ebdbe" + +Output:: + + { + "tags": { + "key": "value", + "key1": "value1" + } + } + +For more information, see `Tagging resources in AWS HealthLake `__ in the AWS HealthLake Developer Guide. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/start-fhir-export-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/start-fhir-export-job.rst new file mode 100644 index 000000000..034b67188 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/start-fhir-export-job.rst @@ -0,0 +1,18 @@ +**To start a FHIR export job** + +The following ``start-fhir-export-job`` example shows how to start a FHIR export job using AWS HealthLake. :: + + aws healthlake start-fhir-export-job \ + --output-data-config '{"S3Configuration": {"S3Uri":"s3://(Bucket Name)/(Prefix Name)/","KmsKeyId":"arn:aws:kms:us-east-1:012345678910:key/d330e7fc-b56c-4216-a250-f4c43ef46e83"}}' \ + --datastore-id (Data store ID) \ + --data-access-role-arn arn:aws:iam::(AWS Account ID):role/(Role Name) + +Output:: + + { + "DatastoreId": "(Data store ID)", + "JobStatus": "SUBMITTED", + "JobId": "9b9a51943afaedd0a8c0c26c49135a31" + } + +For more information, see `Exporting files from a FHIR data store `__ in the *AWS HealthLake Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/start-fhir-import-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/start-fhir-import-job.rst new file mode 100644 index 000000000..15018ce28 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/start-fhir-import-job.rst @@ -0,0 +1,20 @@ +**To start a FHIR import job** + +The following ``start-fhir-import-job`` example shows how to start a FHIR import job using AWS HealthLake. :: + + aws healthlake start-fhir-import-job \ + --input-data-config S3Uri="s3://(Bucket Name)/(Prefix Name)/" \ + --job-output-data-config '{"S3Configuration": {"S3Uri":"s3://(Bucket Name)/(Prefix Name)/","KmsKeyId":"arn:aws:kms:us-east-1:012345678910:key/d330e7fc-b56c-4216-a250-f4c43ef46e83"}}' \ + --datastore-id (Data store ID) \ + --data-access-role-arn "arn:aws:iam::(AWS Account ID):role/(Role Name)" + +Output:: + + { + "DatastoreId": "(Data store ID)", + "JobStatus": "SUBMITTED", + "JobId": "c145fbb27b192af392f8ce6e7838e34f" + } + +For more information, see `Importing files to a FHIR data store `__ in the *AWS HealthLake Developer Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/tag-resource.rst new file mode 100644 index 000000000..2411ff7c9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/tag-resource.rst @@ -0,0 +1,11 @@ +**To add a tag to data store** + +The following ``tag-resource`` example shows how to add a tag to a data store. :: + + aws healthlake tag-resource \ + --resource-arn "arn:aws:healthlake:us-east-1:123456789012:datastore/fhir/0725c83f4307f263e16fd56b6d8ebdbe" \ + --tags '[{"Key": "key1", "Value": "value1"}]' + +This command produces no output. + +For more information, see `Adding a tag to a data store `__ in the *AWS HealthLake Developer Guide.*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/untag-resource.rst new file mode 100644 index 000000000..76e18e102 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/healthlake/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove tags from a data store.** + +The following ``untag-resource`` example shows how to remove tags from a data store. :: + + aws healthlake untag-resource \ + --resource-arn "arn:aws:healthlake:us-east-1:123456789012:datastore/fhir/b91723d65c6fdeb1d26543a49d2ed1fa" \ + --tag-keys '["key1"]' + +This command produces no output. + +For more information, see `Removing tags from a data store `__ in the *AWS HealthLake Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/add-client-id-to-open-id-connect-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/add-client-id-to-open-id-connect-provider.rst new file mode 100644 index 000000000..f0fe0ddc9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/add-client-id-to-open-id-connect-provider.rst @@ -0,0 +1,13 @@ +**To add a client ID (audience) to an Open-ID Connect (OIDC) provider** + +The following ``add-client-id-to-open-id-connect-provider`` command adds the client ID ``my-application-ID`` to the OIDC provider named ``server.example.com``. :: + + aws iam add-client-id-to-open-id-connect-provider \ + --client-id my-application-ID \ + --open-id-connect-provider-arn arn:aws:iam::123456789012:oidc-provider/server.example.com + +This command produces no output. + +To create an OIDC provider, use the ``create-open-id-connect-provider`` command. + +For more information, see `Creating OpenID Connect (OIDC) identity providers `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/add-role-to-instance-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/add-role-to-instance-profile.rst new file mode 100644 index 000000000..cec08fb26 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/add-role-to-instance-profile.rst @@ -0,0 +1,13 @@ +**To add a role to an instance profile** + +The following ``add-role-to-instance-profile`` command adds the role named ``S3Access`` to the instance profile named ``Webserver``. :: + + aws iam add-role-to-instance-profile \ + --role-name S3Access \ + --instance-profile-name Webserver + +This command produces no output. + +To create an instance profile, use the ``create-instance-profile`` command. + +For more information, see `Using an IAM role to grant permissions to applications running on Amazon EC2 instances `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/add-user-to-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/add-user-to-group.rst new file mode 100644 index 000000000..630fa3c99 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/add-user-to-group.rst @@ -0,0 +1,11 @@ +**To add a user to an IAM group** + +The following ``add-user-to-group`` command adds an IAM user named ``Bob`` to the IAM group named ``Admins``. :: + + aws iam add-user-to-group \ + --user-name Bob \ + --group-name Admins + +This command produces no output. + +For more information, see `Adding and removing users in an IAM user group `__ in the *AWS IAM User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/attach-group-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/attach-group-policy.rst new file mode 100644 index 000000000..50875d58f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/attach-group-policy.rst @@ -0,0 +1,11 @@ +**To attach a managed policy to an IAM group** + +The following ``attach-group-policy`` command attaches the AWS managed policy named ``ReadOnlyAccess`` to the IAM group named ``Finance``. :: + + aws iam attach-group-policy \ + --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess \ + --group-name Finance + +This command produces no output. + +For more information, see `Managed policies and inline policies `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/attach-role-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/attach-role-policy.rst new file mode 100644 index 000000000..b09616f58 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/attach-role-policy.rst @@ -0,0 +1,11 @@ +**To attach a managed policy to an IAM role** + +The following ``attach-role-policy`` command attaches the AWS managed policy named ``ReadOnlyAccess`` to the IAM role named ``ReadOnlyRole``. :: + + aws iam attach-role-policy \ + --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess \ + --role-name ReadOnlyRole + +This command produces no output. + +For more information, see `Managed policies and inline policies `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/attach-user-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/attach-user-policy.rst new file mode 100644 index 000000000..172fca800 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/attach-user-policy.rst @@ -0,0 +1,11 @@ +**To attach a managed policy to an IAM user** + +The following ``attach-user-policy`` command attaches the AWS managed policy named ``AdministratorAccess`` to the IAM user named ``Alice``. :: + + aws iam attach-user-policy \ + --policy-arn arn:aws:iam::aws:policy/AdministratorAccess \ + --user-name Alice + +This command produces no output. + +For more information, see `Managed policies and inline policies `__ in the *AWS IAM User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/change-password.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/change-password.rst new file mode 100644 index 000000000..6e63c5b28 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/change-password.rst @@ -0,0 +1,24 @@ +**To change the password for your IAM user** + +To change the password for your IAM user, we recommend using the ``--cli-input-json`` parameter to pass a JSON file that contains your old and new passwords. Using this method, you can use strong passwords with non-alphanumeric characters. It can be difficult to use passwords with non-alphanumeric characters when you pass them as command line parameters. To use the ``--cli-input-json`` parameter, start by using the ``change-password`` command with the ``--generate-cli-skeleton`` parameter, as in the following example. :: + + aws iam change-password \ + --generate-cli-skeleton > change-password.json + +The previous command creates a JSON file called change-password.json that you can use to fill in your old and new passwords. For example, the file might look like the following. :: + + { + "OldPassword": "3s0K_;xh4~8XXI", + "NewPassword": "]35d/{pB9Fo9wJ" + } + +Next, to change your password, use the ``change-password`` command again, this time passing the ``--cli-input-json`` parameter to specify your JSON file. The following ``change-password`` command uses the ``--cli-input-json`` parameter with a JSON file called change-password.json. :: + + aws iam change-password \ + --cli-input-json file://change-password.json + +This command produces no output. + +This command can be called by IAM users only. If this command is called using AWS account (root) credentials, the command returns an ``InvalidUserType`` error. + +For more information, see `How an IAM user changes their own password `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-access-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-access-key.rst new file mode 100644 index 000000000..7f85ebd85 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-access-key.rst @@ -0,0 +1,22 @@ +**To create an access key for an IAM user** + +The following ``create-access-key`` command creates an access key (access key ID and secret access key) for the IAM user named ``Bob``. :: + + aws iam create-access-key \ + --user-name Bob + +Output:: + + { + "AccessKey": { + "UserName": "Bob", + "Status": "Active", + "CreateDate": "2015-03-09T18:39:23.411Z", + "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY", + "AccessKeyId": "AKIAIOSFODNN7EXAMPLE" + } + } + +Store the secret access key in a secure location. If it is lost, it cannot be recovered, and you must create a new access key. + +For more information, see `Managing access keys for IAM users `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-account-alias.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-account-alias.rst new file mode 100644 index 000000000..e18c6b44a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-account-alias.rst @@ -0,0 +1,10 @@ +**To create an account alias** + +The following ``create-account-alias`` command creates the alias ``examplecorp`` for your AWS account. :: + + aws iam create-account-alias \ + --account-alias examplecorp + +This command produces no output. + +For more information, see `Your AWS account ID and its alias `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-group.rst new file mode 100644 index 000000000..f23d06ea8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-group.rst @@ -0,0 +1,20 @@ +**To create an IAM group** + +The following ``create-group`` command creates an IAM group named ``Admins``. :: + + aws iam create-group \ + --group-name Admins + +Output:: + + { + "Group": { + "Path": "/", + "CreateDate": "2015-03-09T20:30:24.940Z", + "GroupId": "AIDGPMS9RO4H3FEXAMPLE", + "Arn": "arn:aws:iam::123456789012:group/Admins", + "GroupName": "Admins" + } + } + +For more information, see `Creating IAM user groups `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-instance-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-instance-profile.rst new file mode 100644 index 000000000..0d027921b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-instance-profile.rst @@ -0,0 +1,23 @@ +**To create an instance profile** + +The following ``create-instance-profile`` command creates an instance profile named ``Webserver``. :: + + aws iam create-instance-profile \ + --instance-profile-name Webserver + +Output:: + + { + "InstanceProfile": { + "InstanceProfileId": "AIPAJMBYC7DLSPEXAMPLE", + "Roles": [], + "CreateDate": "2015-03-09T20:33:19.626Z", + "InstanceProfileName": "Webserver", + "Path": "/", + "Arn": "arn:aws:iam::123456789012:instance-profile/Webserver" + } + } + +To add a role to an instance profile, use the ``add-role-to-instance-profile`` command. + +For more information, see `Using an IAM role to grant permissions to applications running on Amazon EC2 instances `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-login-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-login-profile.rst new file mode 100644 index 000000000..385dace3a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-login-profile.rst @@ -0,0 +1,39 @@ +**To create a password for an IAM user** + +To create a password for an IAM user, we recommend using the ``--cli-input-json`` parameter to pass a JSON file that contains the password. Using this method, you can create a strong password with non-alphanumeric characters. It can be difficult to create a password with non-alphanumeric characters when you pass it as a command line parameter. + +To use the ``--cli-input-json`` parameter, start by using the ``create-login-profile`` command with the ``--generate-cli-skeleton`` parameter, as in the following example. :: + + aws iam create-login-profile \ + --generate-cli-skeleton > create-login-profile.json + +The previous command creates a JSON file called create-login-profile.json that you can use to fill in the information for a subsequent ``create-login-profile`` command. For example:: + + { + "UserName": "Bob", + "Password": "&1-3a6u:RA0djs", + "PasswordResetRequired": true + } + +Next, to create a password for an IAM user, use the ``create-login-profile`` command again, this time passing the ``--cli-input-json`` parameter to specify your JSON file. The following ``create-login-profile`` command uses the ``--cli-input-json`` parameter with a JSON file called create-login-profile.json. :: + + aws iam create-login-profile \ + --cli-input-json file://create-login-profile.json + +Output:: + + { + "LoginProfile": { + "UserName": "Bob", + "CreateDate": "2015-03-10T20:55:40.274Z", + "PasswordResetRequired": true + } + } + +If the new password violates the account password policy, the command returns a ``PasswordPolicyViolation`` error. + +To change the password for a user that already has one, use ``update-login-profile``. To set a password policy for the account, use the ``update-account-password-policy`` command. + +If the account password policy allows them to, IAM users can change their own passwords using the ``change-password`` command. + +For more information, see `Managing passwords for IAM users `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-open-id-connect-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-open-id-connect-provider.rst new file mode 100644 index 000000000..f7c9470e9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-open-id-connect-provider.rst @@ -0,0 +1,35 @@ +**To create an OpenID Connect (OIDC) provider** + +To create an OpenID Connect (OIDC) provider, we recommend using the ``--cli-input-json`` parameter to pass a JSON file that contains the required parameters. When you create an OIDC provider, you must pass the URL of the provider, and the URL must begin with ``https://``. It can be difficult to pass the URL as a command line parameter, because the colon (:) and forward slash (/) characters have special meaning in some command line environments. Using the ``--cli-input-json`` parameter gets around this limitation. + +To use the ``--cli-input-json`` parameter, start by using the ``create-open-id-connect-provider`` command with the ``--generate-cli-skeleton`` parameter, as in the following example. :: + + aws iam create-open-id-connect-provider \ + --generate-cli-skeleton > create-open-id-connect-provider.json + +The previous command creates a JSON file called create-open-id-connect-provider.json that you can use to fill in the information for a subsequent ``create-open-id-connect-provider`` command. For example:: + + { + "Url": "https://server.example.com", + "ClientIDList": [ + "example-application-ID" + ], + "ThumbprintList": [ + "c3768084dfb3d2b68b7897bf5f565da8eEXAMPLE" + ] + } + +Next, to create the OpenID Connect (OIDC) provider, use the ``create-open-id-connect-provider`` command again, this time passing the ``--cli-input-json`` parameter to specify your JSON file. The following ``create-open-id-connect-provider`` command uses the ``--cli-input-json`` parameter with a JSON file called create-open-id-connect-provider.json. :: + + aws iam create-open-id-connect-provider \ + --cli-input-json file://create-open-id-connect-provider.json + +Output:: + + { + "OpenIDConnectProviderArn": "arn:aws:iam::123456789012:oidc-provider/server.example.com" + } + +For more information about OIDC providers, see `Creating OpenID Connect (OIDC) identity providers `__ in the *AWS IAM User Guide*. + +For more information about obtaining thumbprints for an OIDC provider, see `Obtaining the thumbprint for an OpenID Connect Identity Provider `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-policy-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-policy-version.rst new file mode 100644 index 000000000..0688f20dd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-policy-version.rst @@ -0,0 +1,21 @@ +**To create a new version of a managed policy** + + +This example creates a new ``v2`` version of the IAM policy whose ARN is ``arn:aws:iam::123456789012:policy/MyPolicy`` and makes it the default version. :: + + aws iam create-policy-version \ + --policy-arn arn:aws:iam::123456789012:policy/MyPolicy \ + --policy-document file://NewPolicyVersion.json \ + --set-as-default + +Output:: + + { + "PolicyVersion": { + "CreateDate": "2015-06-16T18:56:03.721Z", + "VersionId": "v2", + "IsDefaultVersion": true + } + } + +For more information, see `Versioning IAM policies `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-policy.rst new file mode 100644 index 000000000..8319d8e26 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-policy.rst @@ -0,0 +1,150 @@ +**Example 1: To create a customer managed policy** + +The following command creates a customer managed policy named ``my-policy``. The file ``policy.json`` is a JSON document in the current folder that grants read only access to the ``shared`` folder in an Amazon S3 bucket named ``amzn-s3-demo-bucket``. :: + + aws iam create-policy \ + --policy-name my-policy \ + --policy-document file://policy.json + +Contents of policy.json:: + + { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "s3:Get*", + "s3:List*" + ], + "Resource": [ + "arn:aws:s3:::amzn-s3-demo-bucket/shared/*" + ] + } + ] + } + +Output:: + + { + "Policy": { + "PolicyName": "my-policy", + "CreateDate": "2015-06-01T19:31:18.620Z", + "AttachmentCount": 0, + "IsAttachable": true, + "PolicyId": "ZXR6A36LTYANPAI7NJ5UV", + "DefaultVersionId": "v1", + "Path": "/", + "Arn": "arn:aws:iam::0123456789012:policy/my-policy", + "UpdateDate": "2015-06-01T19:31:18.620Z" + } + } + +For more information on using files as input for string parameters, see `Specify parameter values for the AWS CLI `__ in the *AWS CLI User Guide*. + +**Example 2: To create a customer managed policy with a description** + +The following command creates a customer managed policy named ``my-policy`` with an immutable description. + +The file ``policy.json`` is a JSON document in the current folder that grants access to all Put, List, and Get actions for an Amazon S3 bucket named ``amzn-s3-demo-bucket``. :: + + aws iam create-policy \ + --policy-name my-policy \ + --policy-document file://policy.json \ + --description "This policy grants access to all Put, Get, and List actions for amzn-s3-demo-bucket" + +Contents of policy.json:: + + { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "s3:ListBucket*", + "s3:PutBucket*", + "s3:GetBucket*" + ], + "Resource": [ + "arn:aws:s3:::amzn-s3-demo-bucket" + ] + } + ] + } + +Output:: + + { + "Policy": { + "PolicyName": "my-policy", + "PolicyId": "ANPAWGSUGIDPEXAMPLE", + "Arn": "arn:aws:iam::123456789012:policy/my-policy", + "Path": "/", + "DefaultVersionId": "v1", + "AttachmentCount": 0, + "PermissionsBoundaryUsageCount": 0, + "IsAttachable": true, + "CreateDate": "2023-05-24T22:38:47+00:00", + "UpdateDate": "2023-05-24T22:38:47+00:00" + } + } + +For more information on Idenity-based Policies, see `Identity-based policies and resource-based policies `__ in the *AWS IAM User Guide*. + +**Example 3: To create a customer managed policy with tags** + +The following command creates a customer managed policy named ``my-policy`` with tags. This example uses the ``--tags`` parameter with the following JSON-formatted tags: ``'{"Key": "Department", "Value": "Accounting"}' '{"Key": "Location", "Value": "Seattle"}'``. Alternatively, the ``--tags`` parameter can be used with tags in the shorthand format: ``'Key=Department,Value=Accounting Key=Location,Value=Seattle'``. + +The file ``policy.json`` is a JSON document in the current folder that grants access to all Put, List, and Get actions for an Amazon S3 bucket named ``amzn-s3-demo-bucket``. :: + + aws iam create-policy \ + --policy-name my-policy \ + --policy-document file://policy.json \ + --tags '{"Key": "Department", "Value": "Accounting"}' '{"Key": "Location", "Value": "Seattle"}' + +Contents of policy.json:: + + { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "s3:ListBucket*", + "s3:PutBucket*", + "s3:GetBucket*" + ], + "Resource": [ + "arn:aws:s3:::amzn-s3-demo-bucket" + ] + } + ] + } + +Output:: + + { + "Policy": { + "PolicyName": "my-policy", + "PolicyId": "ANPAWGSUGIDPEXAMPLE", + "Arn": "arn:aws:iam::12345678012:policy/my-policy", + "Path": "/", + "DefaultVersionId": "v1", + "AttachmentCount": 0, + "PermissionsBoundaryUsageCount": 0, + "IsAttachable": true, + "CreateDate": "2023-05-24T23:16:39+00:00", + "UpdateDate": "2023-05-24T23:16:39+00:00", + "Tags": [ + { + "Key": "Department", + "Value": "Accounting" + }, + "Key": "Location", + "Value": "Seattle" + { + ] + } + } + +For more information on Tagging policies, see `Tagging customer managed policies `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-role.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-role.rst new file mode 100644 index 000000000..31c2b6221 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-role.rst @@ -0,0 +1,108 @@ +**Example 1: To create an IAM role** + +The following ``create-role`` command creates a role named ``Test-Role`` and attaches a trust policy to it. :: + + aws iam create-role \ + --role-name Test-Role \ + --assume-role-policy-document file://Test-Role-Trust-Policy.json + +Output:: + + { + "Role": { + "AssumeRolePolicyDocument": "", + "RoleId": "AKIAIOSFODNN7EXAMPLE", + "CreateDate": "2013-06-07T20:43:32.821Z", + "RoleName": "Test-Role", + "Path": "/", + "Arn": "arn:aws:iam::123456789012:role/Test-Role" + } + } + +The trust policy is defined as a JSON document in the *Test-Role-Trust-Policy.json* file. (The file name and extension do not have significance.) The trust policy must specify a principal. + +To attach a permissions policy to a role, use the ``put-role-policy`` command. + +For more information, see `Creating IAM roles `__ in the *AWS IAM User Guide*. + +**Example 2: To create an IAM role with specified maximum session duration** + +The following ``create-role`` command creates a role named ``Test-Role`` and sets a maximum session duration of 7200 seconds (2 hours). :: + + aws iam create-role \ + --role-name Test-Role \ + --assume-role-policy-document file://Test-Role-Trust-Policy.json \ + --max-session-duration 7200 + +Output:: + + { + "Role": { + "Path": "/", + "RoleName": "Test-Role", + "RoleId": "AKIAIOSFODNN7EXAMPLE", + "Arn": "arn:aws:iam::12345678012:role/Test-Role", + "CreateDate": "2023-05-24T23:50:25+00:00", + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "Statement1", + "Effect": "Allow", + "Principal": { + "AWS": "arn:aws:iam::12345678012:root" + }, + "Action": "sts:AssumeRole" + } + ] + } + } + } + +For more information, see `Modifying a role maximum session duration (AWS API) `__ in the *AWS IAM User Guide*. + +**Example 3: To create an IAM Role with tags** + +The following command creates an IAM Role ``Test-Role`` with tags. This example uses the ``--tags`` parameter flag with the following JSON-formatted tags: ``'{"Key": "Department", "Value": "Accounting"}' '{"Key": "Location", "Value": "Seattle"}'``. Alternatively, the ``--tags`` flag can be used with tags in the shorthand format: ``'Key=Department,Value=Accounting Key=Location,Value=Seattle'``. :: + + aws iam create-role \ + --role-name Test-Role \ + --assume-role-policy-document file://Test-Role-Trust-Policy.json \ + --tags '{"Key": "Department", "Value": "Accounting"}' '{"Key": "Location", "Value": "Seattle"}' + +Output:: + + { + "Role": { + "Path": "/", + "RoleName": "Test-Role", + "RoleId": "AKIAIOSFODNN7EXAMPLE", + "Arn": "arn:aws:iam::123456789012:role/Test-Role", + "CreateDate": "2023-05-25T23:29:41+00:00", + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "Statement1", + "Effect": "Allow", + "Principal": { + "AWS": "arn:aws:iam::123456789012:root" + }, + "Action": "sts:AssumeRole" + } + ] + }, + "Tags": [ + { + "Key": "Department", + "Value": "Accounting" + }, + { + "Key": "Location", + "Value": "Seattle" + } + ] + } + } + +For more information, see `Tagging IAM roles `__ in the *AWS IAM User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-saml-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-saml-provider.rst new file mode 100644 index 000000000..3ef25ac01 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-saml-provider.rst @@ -0,0 +1,15 @@ +**To create a SAML provider** + +This example creates a new SAML provider in IAM named ``MySAMLProvider``. It is described by the SAML metadata document found in the file ``SAMLMetaData.xml``. :: + + aws iam create-saml-provider \ + --saml-metadata-document file://SAMLMetaData.xml \ + --name MySAMLProvider + +Output:: + + { + "SAMLProviderArn": "arn:aws:iam::123456789012:saml-provider/MySAMLProvider" + } + +For more information, see `Creating IAM SAML identity providers `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-service-linked-role.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-service-linked-role.rst new file mode 100644 index 000000000..66c07295a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-service-linked-role.rst @@ -0,0 +1,37 @@ +**To create a service-linked role** + +The following ``create-service-linked-role`` example creates a service-linked role for the specified AWS service and attaches the specified description. :: + + aws iam create-service-linked-role \ + --aws-service-name lex.amazonaws.com \ + --description "My service-linked role to support Lex" + +Output:: + + { + "Role": { + "Path": "/aws-service-role/lex.amazonaws.com/", + "RoleName": "AWSServiceRoleForLexBots", + "RoleId": "AROA1234567890EXAMPLE", + "Arn": "arn:aws:iam::1234567890:role/aws-service-role/lex.amazonaws.com/AWSServiceRoleForLexBots", + "CreateDate": "2019-04-17T20:34:14+00:00", + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lex.amazonaws.com" + ] + } + } + ] + } + } + } + +For more information, see `Using service-linked roles `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-service-specific-credential.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-service-specific-credential.rst new file mode 100644 index 000000000..28d0e0cb9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-service-specific-credential.rst @@ -0,0 +1,23 @@ +**Create a set of service-specific credentials for a user** + +The following ``create-service-specific-credential`` example creates a username and password that can be used to access only the configured service. :: + + aws iam create-service-specific-credential \ + --user-name sofia \ + --service-name codecommit.amazonaws.com + +Output:: + + { + "ServiceSpecificCredential": { + "CreateDate": "2019-04-18T20:45:36+00:00", + "ServiceName": "codecommit.amazonaws.com", + "ServiceUserName": "sofia-at-123456789012", + "ServicePassword": "k1zPZM6uVxMQ3oxqgoYlNuJPyRTZ1vREs76zTQE3eJk=", + "ServiceSpecificCredentialId": "ACCAEXAMPLE123EXAMPLE", + "UserName": "sofia", + "Status": "Active" + } + } + +For more information, see `Create Git credentials for HTTPS connections to CodeCommit `__ in the *AWS CodeCommit User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-user.rst new file mode 100644 index 000000000..fa32fb261 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-user.rst @@ -0,0 +1,101 @@ +**Example 1: To create an IAM user** + +The following ``create-user`` command creates an IAM user named ``Bob`` in the current account. :: + + aws iam create-user \ + --user-name Bob + +Output:: + + { + "User": { + "UserName": "Bob", + "Path": "/", + "CreateDate": "2023-06-08T03:20:41.270Z", + "UserId": "AIDAIOSFODNN7EXAMPLE", + "Arn": "arn:aws:iam::123456789012:user/Bob" + } + } + +For more information, see `Creating an IAM user in your AWS account `__ in the *AWS IAM User Guide*. + +**Example 2: To create an IAM user at a specified path** + +The following ``create-user`` command creates an IAM user named ``Bob`` at the specified path. :: + + aws iam create-user \ + --user-name Bob \ + --path /division_abc/subdivision_xyz/ + +Output:: + + { + "User": { + "Path": "/division_abc/subdivision_xyz/", + "UserName": "Bob", + "UserId": "AIDAIOSFODNN7EXAMPLE", + "Arn": "arn:aws:iam::12345678012:user/division_abc/subdivision_xyz/Bob", + "CreateDate": "2023-05-24T18:20:17+00:00" + } + } + +For more information, see `IAM identifiers `__ in the *AWS IAM User Guide*. + +**Example 3: To Create an IAM User with tags** + +The following ``create-user`` command creates an IAM user named ``Bob`` with tags. This example uses the ``--tags`` parameter flag with the following +JSON-formatted tags: ``'{"Key": "Department", "Value": "Accounting"}' '{"Key": "Location", "Value": "Seattle"}'``. Alternatively, the ``--tags`` flag can be used with tags in the shorthand format: ``'Key=Department,Value=Accounting Key=Location,Value=Seattle'``. :: + + aws iam create-user \ + --user-name Bob \ + --tags '{"Key": "Department", "Value": "Accounting"}' '{"Key": "Location", "Value": "Seattle"}' + +Output:: + + { + "User": { + "Path": "/", + "UserName": "Bob", + "UserId": "AIDAIOSFODNN7EXAMPLE", + "Arn": "arn:aws:iam::12345678012:user/Bob", + "CreateDate": "2023-05-25T17:14:21+00:00", + "Tags": [ + { + "Key": "Department", + "Value": "Accounting" + }, + { + "Key": "Location", + "Value": "Seattle" + } + ] + } + } + +For more information, see `Tagging IAM users `__ in the *AWS IAM User Guide*. + +**Example 3: To create an IAM user with a set permissions boundary** + +The following ``create-user`` command creates an IAM user named ``Bob`` with the permissions boundary of AmazonS3FullAccess. :: + + aws iam create-user \ + --user-name Bob \ + --permissions-boundary arn:aws:iam::aws:policy/AmazonS3FullAccess + +Output:: + + { + "User": { + "Path": "/", + "UserName": "Bob", + "UserId": "AIDAIOSFODNN7EXAMPLE", + "Arn": "arn:aws:iam::12345678012:user/Bob", + "CreateDate": "2023-05-24T17:50:53+00:00", + "PermissionsBoundary": { + "PermissionsBoundaryType": "Policy", + "PermissionsBoundaryArn": "arn:aws:iam::aws:policy/AmazonS3FullAccess" + } + } + } + +For more information, see `Permissions boundaries for IAM entities `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-virtual-mfa-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-virtual-mfa-device.rst new file mode 100644 index 000000000..0751fbc9b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/create-virtual-mfa-device.rst @@ -0,0 +1,19 @@ +**To create a virtual MFA device** + +This example creates a new virtual MFA device called ``BobsMFADevice``. It creates a file that contains bootstrap information called ``QRCode.png`` +and places it in the ``C:/`` directory. The bootstrap method used in this example is ``QRCodePNG``. :: + + + aws iam create-virtual-mfa-device \ + --virtual-mfa-device-name BobsMFADevice \ + --outfile C:/QRCode.png \ + --bootstrap-method QRCodePNG + +Output:: + + { + "VirtualMFADevice": { + "SerialNumber": "arn:aws:iam::210987654321:mfa/BobsMFADevice" + } + +For more information, see `Using multi-factor authentication (MFA) in AWS `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/deactivate-mfa-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/deactivate-mfa-device.rst new file mode 100644 index 000000000..86047e434 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/deactivate-mfa-device.rst @@ -0,0 +1,11 @@ +**To deactivate an MFA device** + +This command deactivates the virtual MFA device with the ARN ``arn:aws:iam::210987654321:mfa/BobsMFADevice`` that is associated with the user ``Bob``. :: + + aws iam deactivate-mfa-device \ + --user-name Bob \ + --serial-number arn:aws:iam::210987654321:mfa/BobsMFADevice + +This command produces no output. + +For more information, see `Using multi-factor authentication (MFA) in AWS `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/decode-authorization-message.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/decode-authorization-message.rst new file mode 100644 index 000000000..6a121448d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/decode-authorization-message.rst @@ -0,0 +1,14 @@ +**To decode a authorization failure message** + +The following ``decode-authorization-message`` example decodes the message returned by the EC2 console when attempting to launch an instance without the required permissions. :: + + aws sts decode-authorization-message \ + --encoded-message lxzA8VEjEvu-s0TTt3PgYCXik9YakOqsrFJGRZR98xNcyWAxwRq14xIvd-npzbgTevuufCTbjeBAaDARg9cbTK1rJbg3awM33o-Vy3ebPErE2-mWR9hVYdvX-0zKgVOWF9pWjZaJSMqxB-aLXo-I_8TTvBq88x8IFPbMArNdpu0IjxDjzf22PF3SOE3XvIQ-_PEO0aUqHCCcsSrFtvxm6yQD1nbm6VTIVrfa0Bzy8lsoMo7SjIaJ2r5vph6SY5vCCwg6o2JKe3hIHTa8zRrDbZSFMkcXOT6EOPkQXmaBsAC6ciG7Pz1JnEOvuj5NSTlSMljrAXczWuRKAs5GsMYiU8KZXZhokVzdQCUZkS5aVHumZbadu0io53jpgZqhMqvS4fyfK4auK0yKRMtS6JCXPlhkolEs7ZMFA0RVkutqhQqpSDPB5SX5l00lYipWyFK0_AyAx60vumPuVh8P0AzXwdFsT0l4D0m42NFIKxbWXsoJdqaOqVFyFEd0-Xx9AYAAIr6bhcis7C__bZh4dlAAWooHFGKgfoJcWGwgdzgbu9hWyVvKTpeot5hsb8qANYjJRCPXTKpi6PZfdijIkwb6gDMEsJ9qMtr62qP_989mwmtNgnVvBa_ir6oxJxVe_kL9SH1j5nsGDxQFajvPQhxWOHvEQIg_H0bnKWk + +The output is formatted as a single-line string of JSON text that you can parse with any JSON text processor. :: + + { + "DecodedMessage": "{\"allowed\":false,\"explicitDeny\":false,\"matchedStatements\":{\"items\":[]},\"failures\":{\"items\":[]},\"context\":{\"principal\":{\"id\":\"AIDAV3ZUEFP6J7GY7O6LO\",\"name\":\"chain-user\",\"arn\":\"arn:aws:iam::403299380220:user/chain-user\"},\"action\":\"ec2:RunInstances\",\"resource\":\"arn:aws:ec2:us-east-2:403299380220:instance/*\",\"conditions\":{\"items\":[{\"key\":\"ec2:InstanceMarketType\",\"values\":{\"items\":[{\"value\":\"on-demand\"}]}},{\"key\":\"aws:Resource\",\"values\":{\"items\":[{\"value\":\"instance/*\"}]}},{\"key\":\"aws:Account\",\"values\":{\"items\":[{\"value\":\"403299380220\"}]}},{\"key\":\"ec2:AvailabilityZone\",\"values\":{\"items\":[{\"value\":\"us-east-2b\"}]}},{\"key\":\"ec2:ebsOptimized\",\"values\":{\"items\":[{\"value\":\"false\"}]}},{\"key\":\"ec2:IsLaunchTemplateResource\",\"values\":{\"items\":[{\"value\":\"false\"}]}},{\"key\":\"ec2:InstanceType\",\"values\":{\"items\":[{\"value\":\"t2.micro\"}]}},{\"key\":\"ec2:RootDeviceType\",\"values\":{\"items\":[{\"value\":\"ebs\"}]}},{\"key\":\"aws:Region\",\"values\":{\"items\":[{\"value\":\"us-east-2\"}]}},{\"key\":\"aws:Service\",\"values\":{\"items\":[{\"value\":\"ec2\"}]}},{\"key\":\"ec2:InstanceID\",\"values\":{\"items\":[{\"value\":\"*\"}]}},{\"key\":\"aws:Type\",\"values\":{\"items\":[{\"value\":\"instance\"}]}},{\"key\":\"ec2:Tenancy\",\"values\":{\"items\":[{\"value\":\"default\"}]}},{\"key\":\"ec2:Region\",\"values\":{\"items\":[{\"value\":\"us-east-2\"}]}},{\"key\":\"aws:ARN\",\"values\":{\"items\":[{\"value\":\"arn:aws:ec2:us-east-2:403299380220:instance/*\"}]}}]}}}" + } + +For more information, see `How can I decode an authorization failure message after receiving an "UnauthorizedOperation" error during an EC2 instance launch? `__ in *AWS re:Post*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-access-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-access-key.rst new file mode 100644 index 000000000..3d86a8e69 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-access-key.rst @@ -0,0 +1,13 @@ +**To delete an access key for an IAM user** + +The following ``delete-access-key`` command deletes the specified access key (access key ID and secret access key) for the IAM user named ``Bob``. :: + + aws iam delete-access-key \ + --access-key-id AKIDPMS9RO4H3FEXAMPLE \ + --user-name Bob + +This command produces no output. + +To list the access keys defined for an IAM user, use the ``list-access-keys`` command. + +For more information, see `Managing access keys for IAM users `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-account-alias.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-account-alias.rst new file mode 100644 index 000000000..558675987 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-account-alias.rst @@ -0,0 +1,10 @@ +**To delete an account alias** + +The following ``delete-account-alias`` command removes the alias ``mycompany`` for the current account. :: + + aws iam delete-account-alias \ + --account-alias mycompany + +This command produces no output. + +For more information, see `Your AWS account ID and its alias `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-account-password-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-account-password-policy.rst new file mode 100644 index 000000000..aa4233f5e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-account-password-policy.rst @@ -0,0 +1,9 @@ +**To delete the current account password policy** + +The following ``delete-account-password-policy`` command removes the password policy for the current account. :: + + aws iam delete-account-password-policy + +This command produces no output. + +For more information, see `Setting an account password policy for IAM users `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-group-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-group-policy.rst new file mode 100644 index 000000000..580f73dff --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-group-policy.rst @@ -0,0 +1,13 @@ +**To delete a policy from an IAM group** + +The following ``delete-group-policy`` command deletes the policy named ``ExamplePolicy`` from the group named ``Admins``. :: + + aws iam delete-group-policy \ + --group-name Admins \ + --policy-name ExamplePolicy + +This command produces no output. + +To see the policies attached to a group, use the ``list-group-policies`` command. + +For more information, see `Managing IAM policies `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-group.rst new file mode 100644 index 000000000..61ac6bcec --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-group.rst @@ -0,0 +1,10 @@ +**To delete an IAM group** + +The following ``delete-group`` command deletes an IAM group named ``MyTestGroup``. :: + + aws iam delete-group \ + --group-name MyTestGroup + +This command produces no output. + +For more information, see `Deleting an IAM user group `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-instance-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-instance-profile.rst new file mode 100644 index 000000000..39f1a4a22 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-instance-profile.rst @@ -0,0 +1,10 @@ +**To delete an instance profile** + +The following ``delete-instance-profile`` command deletes the instance profile named ``ExampleInstanceProfile``. :: + + aws iam delete-instance-profile \ + --instance-profile-name ExampleInstanceProfile + +This command produces no output. + +For more information, see `Using instance profiles `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-login-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-login-profile.rst new file mode 100644 index 000000000..093445afb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-login-profile.rst @@ -0,0 +1,10 @@ +**To delete a password for an IAM user** + +The following ``delete-login-profile`` command deletes the password for the IAM user named ``Bob``. :: + + aws iam delete-login-profile \ + --user-name Bob + +This command produces no output. + +For more information, see `Managing passwords for IAM users `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-open-id-connect-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-open-id-connect-provider.rst new file mode 100644 index 000000000..2d89a8a84 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-open-id-connect-provider.rst @@ -0,0 +1,10 @@ +**To delete an IAM OpenID Connect identity provider** + +This example deletes the IAM OIDC provider that connects to the provider ``example.oidcprovider.com``. :: + + aws iam delete-open-id-connect-provider \ + --open-id-connect-provider-arn arn:aws:iam::123456789012:oidc-provider/example.oidcprovider.com + +This command produces no output. + +For more information, see `Creating OpenID Connect (OIDC) identity providers `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-policy-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-policy-version.rst new file mode 100644 index 000000000..2e3a261fe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-policy-version.rst @@ -0,0 +1,11 @@ +**To delete a version of a managed policy** + +This example deletes the version identified as ``v2`` from the policy whose ARN is ``arn:aws:iam::123456789012:policy/MySamplePolicy``. :: + + aws iam delete-policy-version \ + --policy-arn arn:aws:iam::123456789012:policy/MyPolicy \ + --version-id v2 + +This command produces no output. + +For more information, see `Policies and permissions in IAM `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-policy.rst new file mode 100644 index 000000000..1d3a31b98 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-policy.rst @@ -0,0 +1,10 @@ +**To delete an IAM policy** + +This example deletes the policy whose ARN is ``arn:aws:iam::123456789012:policy/MySamplePolicy``. :: + + aws iam delete-policy \ + --policy-arn arn:aws:iam::123456789012:policy/MySamplePolicy + +This command produces no output. + +For more information, see `Policies and permissions in IAM `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-role-permissions-boundary.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-role-permissions-boundary.rst new file mode 100755 index 000000000..c62fcf64b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-role-permissions-boundary.rst @@ -0,0 +1,10 @@ +**To delete a permissions boundary from an IAM role** + +The following ``delete-role-permissions-boundary`` example deletes the permissions boundary for the specified IAM role. To apply a permissions boundary to a role, use the ``put-role-permissions-boundary`` command. :: + + aws iam delete-role-permissions-boundary \ + --role-name lambda-application-role + +This command produces no output. + +For more information, see `Policies and permissions in IAM `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-role-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-role-policy.rst new file mode 100644 index 000000000..7c68ccf9b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-role-policy.rst @@ -0,0 +1,11 @@ +**To remove a policy from an IAM role** + +The following ``delete-role-policy`` command removes the policy named ``ExamplePolicy`` from the role named ``Test-Role``. :: + + aws iam delete-role-policy \ + --role-name Test-Role \ + --policy-name ExamplePolicy + +This command produces no output. + +For more information, see `Modifying a role `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-role.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-role.rst new file mode 100644 index 000000000..7543a6167 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-role.rst @@ -0,0 +1,12 @@ +**To delete an IAM role** + +The following ``delete-role`` command removes the role named ``Test-Role``. :: + + aws iam delete-role \ + --role-name Test-Role + +This command produces no output. + +Before you can delete a role, you must remove the role from any instance profile (``remove-role-from-instance-profile``), detach any managed policies (``detach-role-policy``) and delete any inline policies that are attached to the role (``delete-role-policy``). + +For more information, see `Creating IAM roles `__ and `Using instance profiles `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-saml-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-saml-provider.rst new file mode 100644 index 000000000..25c19388b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-saml-provider.rst @@ -0,0 +1,10 @@ +**To delete a SAML provider** + +This example deletes the IAM SAML 2.0 provider whose ARN is ``arn:aws:iam::123456789012:saml-provider/SAMLADFSProvider``. :: + + aws iam delete-saml-provider \ + --saml-provider-arn arn:aws:iam::123456789012:saml-provider/SAMLADFSProvider + +This command produces no output. + +For more information, see `Creating IAM SAML identity providers `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-server-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-server-certificate.rst new file mode 100644 index 000000000..7f63b8c4c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-server-certificate.rst @@ -0,0 +1,12 @@ +**To delete a server certificate from your AWS account** + +The following ``delete-server-certificate`` command removes the specified server certificate from your AWS account. :: + + aws iam delete-server-certificate \ + --server-certificate-name myUpdatedServerCertificate + +This command produces no output. + +To list the server certificates available in your AWS account, use the ``list-server-certificates`` command. + +For more information, see `Managing server certificates in IAM `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-service-linked-role.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-service-linked-role.rst new file mode 100644 index 000000000..b40d61800 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-service-linked-role.rst @@ -0,0 +1,14 @@ +**To delete a service-linked role** + +The following ``delete-service-linked-role`` example deletes the specified service-linked role that you no longer need. The deletion happens asynchronously. You can check the status of the deletion and confirm when it is done by using the ``get-service-linked-role-deletion-status`` command. :: + + aws iam delete-service-linked-role \ + --role-name AWSServiceRoleForLexBots + +Output:: + + { + "DeletionTaskId": "task/aws-service-role/lex.amazonaws.com/AWSServiceRoleForLexBots/1a2b3c4d-1234-abcd-7890-abcdeEXAMPLE" + } + +For more information, see `Using service-linked roles `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-service-specific-credential.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-service-specific-credential.rst new file mode 100644 index 000000000..c35f0be07 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-service-specific-credential.rst @@ -0,0 +1,20 @@ +**Example 1: Delete a service-specific credential for the requesting user** + +The following ``delete-service-specific-credential`` example deletes the specified service-specific credential for the user making the request. The ``service-specific-credential-id`` is provided when you create the credential and you can retrieve it by using the ``list-service-specific-credentials`` command. :: + + aws iam delete-service-specific-credential \ + --service-specific-credential-id ACCAEXAMPLE123EXAMPLE + +This command produces no output. + +**Example 2: Delete a service-specific credential for a specified user** + +The following ``delete-service-specific-credential`` example deletes the specified service-specific credential for the specified user. The ``service-specific-credential-id`` is provided when you create the credential and you can retrieve it by using the ``list-service-specific-credentials`` command. :: + + aws iam delete-service-specific-credential \ + --user-name sofia \ + --service-specific-credential-id ACCAEXAMPLE123EXAMPLE + +This command produces no output. + +For more information, see `Create Git credentials for HTTPS connections to CodeCommit `__ in the *AWS CodeCommit User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-signing-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-signing-certificate.rst new file mode 100644 index 000000000..a1079075c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-signing-certificate.rst @@ -0,0 +1,13 @@ +**To delete a signing certificate for an IAM user** + +The following ``delete-signing-certificate`` command deletes the specified signing certificate for the IAM user named ``Bob``. :: + + aws iam delete-signing-certificate \ + --user-name Bob \ + --certificate-id TA7SMP42TDN5Z26OBPJE7EXAMPLE + +This command produces no output. + +To get the ID for a signing certificate, use the ``list-signing-certificates`` command. + +For more information, see `Manage signing certificates `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-ssh-public-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-ssh-public-key.rst new file mode 100644 index 000000000..2afec5da2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-ssh-public-key.rst @@ -0,0 +1,11 @@ +**To delete an SSH public keys attached to an IAM user** + +The following ``delete-ssh-public-key`` command deletes the specified SSH public key attached to the IAM user ``sofia``. :: + + aws iam delete-ssh-public-key \ + --user-name sofia \ + --ssh-public-key-id APKA123456789EXAMPLE + +This command produces no output. + +For more information, see `Use SSH keys and SSH with CodeCommit `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-user-permissions-boundary.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-user-permissions-boundary.rst new file mode 100755 index 000000000..7ec698e78 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-user-permissions-boundary.rst @@ -0,0 +1,10 @@ +**To delete a permissions boundary from an IAM user** + +The following ``delete-user-permissions-boundary`` example deletes the permissions boundary attached to the IAM user named ``intern``. To apply a permissions boundary to a user, use the ``put-user-permissions-boundary`` command. :: + + aws iam delete-user-permissions-boundary \ + --user-name intern + +This command produces no output. + +For more information, see `Policies and permissions in IAM `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-user-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-user-policy.rst new file mode 100644 index 000000000..40a1c4525 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-user-policy.rst @@ -0,0 +1,13 @@ +**To remove a policy from an IAM user** + +The following ``delete-user-policy`` command removes the specified policy from the IAM user named ``Bob``. :: + + aws iam delete-user-policy \ + --user-name Bob \ + --policy-name ExamplePolicy + +This command produces no output. + +To get a list of policies for an IAM user, use the ``list-user-policies`` command. + +For more information, see `Creating an IAM user in your AWS account `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-user.rst new file mode 100644 index 000000000..95e5ad1b4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-user.rst @@ -0,0 +1,10 @@ +**To delete an IAM user** + +The following ``delete-user`` command removes the IAM user named ``Bob`` from the current account. :: + + aws iam delete-user \ + --user-name Bob + +This command produces no output. + +For more information, see `Deleting an IAM user `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-virtual-mfa-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-virtual-mfa-device.rst new file mode 100644 index 000000000..94980b2d8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/delete-virtual-mfa-device.rst @@ -0,0 +1,10 @@ +**To remove a virtual MFA device** + +The following ``delete-virtual-mfa-device`` command removes the specified MFA device from the current account. :: + + aws iam delete-virtual-mfa-device \ + --serial-number arn:aws:iam::123456789012:mfa/MFATest + +This command produces no output. + +For more information, see `Deactivating MFA devices `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/detach-group-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/detach-group-policy.rst new file mode 100644 index 000000000..f317ae266 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/detach-group-policy.rst @@ -0,0 +1,11 @@ +**To detach a policy from a group** + +This example removes the managed policy with the ARN ``arn:aws:iam::123456789012:policy/TesterAccessPolicy`` from the group called ``Testers``. :: + + aws iam detach-group-policy \ + --group-name Testers \ + --policy-arn arn:aws:iam::123456789012:policy/TesterAccessPolicy + +This command produces no output. + +For more information, see `Managing IAM user groups `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/detach-role-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/detach-role-policy.rst new file mode 100644 index 000000000..19f8d7892 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/detach-role-policy.rst @@ -0,0 +1,11 @@ +**To detach a policy from a role** + +This example removes the managed policy with the ARN ``arn:aws:iam::123456789012:policy/FederatedTesterAccessPolicy`` from the role called ``FedTesterRole``. :: + + aws iam detach-role-policy \ + --role-name FedTesterRole \ + --policy-arn arn:aws:iam::123456789012:policy/FederatedTesterAccessPolicy + +This command produces no output. + +For more information, see `Modifying a role `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/detach-user-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/detach-user-policy.rst new file mode 100644 index 000000000..861d84d06 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/detach-user-policy.rst @@ -0,0 +1,11 @@ +**To detach a policy from a user** + +This example removes the managed policy with the ARN ``arn:aws:iam::123456789012:policy/TesterPolicy`` from the user ``Bob``. :: + + aws iam detach-user-policy \ + --user-name Bob \ + --policy-arn arn:aws:iam::123456789012:policy/TesterPolicy + +This command produces no output. + +For more information, see `Changing permissions for an IAM user `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/disable-organizations-root-credentials-management.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/disable-organizations-root-credentials-management.rst new file mode 100644 index 000000000..8c5d0adb0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/disable-organizations-root-credentials-management.rst @@ -0,0 +1,16 @@ +**To disable the RootCredentialsManagement feature in your organization** + +The following ``disable-organizations-root-credentials-management`` command disables the management of privileged root user credentials across member accounts in your organization. :: + + aws iam disable-organizations-root-credentials-management + +Output:: + + { + "EnabledFeatures": [ + "RootSessions" + ] + "OrganizationId": "o-aa111bb222" + } + +For more information, see `Centralize root access for member accounts `__ in the *AWS IAM User Guide*.g \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/disable-organizations-root-sessions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/disable-organizations-root-sessions.rst new file mode 100644 index 000000000..e0d545d0b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/disable-organizations-root-sessions.rst @@ -0,0 +1,16 @@ +**To disable the RootSessions feature in your organization** + +The following ``disable-organizations-root-sessions`` command disables root user sessions for privileged tasks across member accounts in your organization. :: + + aws iam disable-organizations-root-sessions + +Output:: + + { + "EnabledFeatures": [ + "RootCredentialsManagement" + ] + "OrganizationId": "o-aa111bb222" + } + +For more information, see `Centralize root access for member accounts `__ in the *AWS IAM User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/enable-mfa-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/enable-mfa-device.rst new file mode 100644 index 000000000..e5bd40383 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/enable-mfa-device.rst @@ -0,0 +1,13 @@ +**To enable an MFA device** + +After you use the ``create-virtual-mfa-device`` command to create a new virtual MFA device, you can assign the MFA device to a user. The following ``enable-mfa-device`` example assigns the MFA device with the serial number ``arn:aws:iam::210987654321:mfa/BobsMFADevice`` to the user ``Bob``. The command also synchronizes the device with AWS by including the first two codes in sequence from the virtual MFA device. :: + + aws iam enable-mfa-device \ + --user-name Bob \ + --serial-number arn:aws:iam::210987654321:mfa/BobsMFADevice \ + --authentication-code1 123456 \ + --authentication-code2 789012 + +This command produces no output. + +For more information, see `Enabling a virtual multi-factor authentication (MFA) device `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/enable-organizations-root-credentials-management.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/enable-organizations-root-credentials-management.rst new file mode 100644 index 000000000..95d7d819c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/enable-organizations-root-credentials-management.rst @@ -0,0 +1,16 @@ +**To enable the RootCredentialsManagement feature in your organization** + +The following ``enable-organizations-root-credentials-management`` command enables the management of privileged root user credentials across member accounts in your organization. :: + + aws iam enable-organizations-root-credentials-management + +Output:: + + { + "EnabledFeatures": [ + "RootCredentialsManagement" + ] + "OrganizationId": "o-aa111bb222" + } + +For more information, see `Centralize root access for member accounts `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/enable-organizations-root-sessions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/enable-organizations-root-sessions.rst new file mode 100644 index 000000000..e2bf7fb9e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/enable-organizations-root-sessions.rst @@ -0,0 +1,16 @@ +**To enable the RootSessions feature in your organization** + +The following ``enable-organizations-root-sessions`` command allows the management account or delegated administrator to perform privileged tasks on member accounts in your organization. :: + + aws iam enable-organizations-root-sessions + +Output:: + + { + "EnabledFeatures": [ + "RootSessions" + ] + "OrganizationId": "o-aa111bb222" + } + +For more information, see `Centralize root access for member accounts `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/generate-credential-report.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/generate-credential-report.rst new file mode 100644 index 000000000..382e3ca74 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/generate-credential-report.rst @@ -0,0 +1,14 @@ +**To generate a credential report** + +The following example attempts to generate a credential report for the AWS account. :: + + aws iam generate-credential-report + +Output:: + + { + "State": "STARTED", + "Description": "No report exists. Starting a new report generation task" + } + +For more information, see `Getting credential reports for your AWS account `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/generate-organizations-access-report.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/generate-organizations-access-report.rst new file mode 100755 index 000000000..9913449ec --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/generate-organizations-access-report.rst @@ -0,0 +1,42 @@ +**Example 1: To generate an access report for a root in an organization** + +The following ``generate-organizations-access-report`` example starts a background job to create an access report for the specified root in an organization. You can display the report after it's created by running the ``get-organizations-access-report`` command. :: + + aws iam generate-organizations-access-report \ + --entity-path o-4fxmplt198/r-c3xb + +Output:: + + { + "JobId": "a8b6c06f-aaa4-8xmp-28bc-81da71836359" + } + +**Example 2: To generate an access report for an account in an organization** + +The following ``generate-organizations-access-report`` example starts a background job to create an access report for account ID ``123456789012`` in the organization ``o-4fxmplt198``. You can display the report after it's created by running the ``get-organizations-access-report`` command. :: + + aws iam generate-organizations-access-report \ + --entity-path o-4fxmplt198/r-c3xb/123456789012 + +Output:: + + { + "JobId": "14b6c071-75f6-2xmp-fb77-faf6fb4201d2" + } + +**Example 3: To generate an access report for an account in an organizational unit in an organization** + +The following ``generate-organizations-access-report`` example starts a background job to create an access report for account ID ``234567890123`` in organizational unit ``ou-c3xb-lmu7j2yg`` in the organization ``o-4fxmplt198``. You can display the report after it's created by running the ``get-organizations-access-report`` command. :: + + aws iam generate-organizations-access-report \ + --entity-path o-4fxmplt198/r-c3xb/ou-c3xb-lmu7j2yg/234567890123 + +Output:: + + { + "JobId": "2eb6c2e6-0xmp-ec04-1425-c937916a64af" + } + +To get details about roots and organizational units in your organization, use the ``organizations list-roots`` and ``organizations list-organizational-units-for-parent`` commands. + +For more information, see `Refining permissions in AWS using last accessed information `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/generate-service-last-accessed-details.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/generate-service-last-accessed-details.rst new file mode 100755 index 000000000..e1504edb7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/generate-service-last-accessed-details.rst @@ -0,0 +1,27 @@ +**Example 1: To generate a service access report for a custom policy** + +The following ``generate-service-last-accessed-details`` example starts a background job to generate a report that lists the services accessed by IAM users and other entities with a custom policy named ``intern-boundary``. You can display the report after it is created by running the ``get-service-last-accessed-details`` command. :: + + aws iam generate-service-last-accessed-details \ + --arn arn:aws:iam::123456789012:policy/intern-boundary + +Output:: + + { + "JobId": "2eb6c2b8-7b4c-3xmp-3c13-03b72c8cdfdc" + } + +**Example 2: To generate a service access report for the AWS managed AdministratorAccess policy** + +The following ``generate-service-last-accessed-details`` example starts a background job to generate a report that lists the services accessed by IAM users and other entities with the AWS managed ``AdministratorAccess`` policy. You can display the report after it is created by running the ``get-service-last-accessed-details`` command. :: + + aws iam generate-service-last-accessed-details \ + --arn arn:aws:iam::aws:policy/AdministratorAccess + +Output:: + + { + "JobId": "78b6c2ba-d09e-6xmp-7039-ecde30b26916" + } + +For more information, see `Refining permissions in AWS using last accessed information `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-access-key-last-used.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-access-key-last-used.rst new file mode 100644 index 000000000..48f2a8794 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-access-key-last-used.rst @@ -0,0 +1,19 @@ +**To retrieve information about when the specified access key was last used** + +The following example retrieves information about when the access key ``ABCDEXAMPLE`` was last used. :: + + aws iam get-access-key-last-used \ + --access-key-id ABCDEXAMPLE + +Output:: + + { + "UserName": "Bob", + "AccessKeyLastUsed": { + "Region": "us-east-1", + "ServiceName": "iam", + "LastUsedDate": "2015-06-16T22:45:00Z" + } + } + +For more information, see `Managing access keys for IAM users `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-account-authorization-details.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-account-authorization-details.rst new file mode 100644 index 000000000..10400d7d3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-account-authorization-details.rst @@ -0,0 +1,300 @@ +**To list an AWS account's IAM users, groups, roles, and policies** + +The following ``get-account-authorization-details`` command returns information about all IAM users, groups, roles, and policies in the AWS account. :: + + aws iam get-account-authorization-details + +Output:: + + { + "RoleDetailList": [ + { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Allow", + "Principal": { + "Service": "ec2.amazonaws.com" + }, + "Action": "sts:AssumeRole" + } + ] + }, + "RoleId": "AROA1234567890EXAMPLE", + "CreateDate": "2014-07-30T17:09:20Z", + "InstanceProfileList": [ + { + "InstanceProfileId": "AIPA1234567890EXAMPLE", + "Roles": [ + { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Allow", + "Principal": { + "Service": "ec2.amazonaws.com" + }, + "Action": "sts:AssumeRole" + } + ] + }, + "RoleId": "AROA1234567890EXAMPLE", + "CreateDate": "2014-07-30T17:09:20Z", + "RoleName": "EC2role", + "Path": "/", + "Arn": "arn:aws:iam::123456789012:role/EC2role" + } + ], + "CreateDate": "2014-07-30T17:09:20Z", + "InstanceProfileName": "EC2role", + "Path": "/", + "Arn": "arn:aws:iam::123456789012:instance-profile/EC2role" + } + ], + "RoleName": "EC2role", + "Path": "/", + "AttachedManagedPolicies": [ + { + "PolicyName": "AmazonS3FullAccess", + "PolicyArn": "arn:aws:iam::aws:policy/AmazonS3FullAccess" + }, + { + "PolicyName": "AmazonDynamoDBFullAccess", + "PolicyArn": "arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess" + } + ], + "RoleLastUsed": { + "Region": "us-west-2", + "LastUsedDate": "2019-11-13T17:30:00Z" + }, + "RolePolicyList": [], + "Arn": "arn:aws:iam::123456789012:role/EC2role" + } + ], + "GroupDetailList": [ + { + "GroupId": "AIDA1234567890EXAMPLE", + "AttachedManagedPolicies": { + "PolicyName": "AdministratorAccess", + "PolicyArn": "arn:aws:iam::aws:policy/AdministratorAccess" + }, + "GroupName": "Admins", + "Path": "/", + "Arn": "arn:aws:iam::123456789012:group/Admins", + "CreateDate": "2013-10-14T18:32:24Z", + "GroupPolicyList": [] + }, + { + "GroupId": "AIDA1234567890EXAMPLE", + "AttachedManagedPolicies": { + "PolicyName": "PowerUserAccess", + "PolicyArn": "arn:aws:iam::aws:policy/PowerUserAccess" + }, + "GroupName": "Dev", + "Path": "/", + "Arn": "arn:aws:iam::123456789012:group/Dev", + "CreateDate": "2013-10-14T18:33:55Z", + "GroupPolicyList": [] + }, + { + "GroupId": "AIDA1234567890EXAMPLE", + "AttachedManagedPolicies": [], + "GroupName": "Finance", + "Path": "/", + "Arn": "arn:aws:iam::123456789012:group/Finance", + "CreateDate": "2013-10-14T18:57:48Z", + "GroupPolicyList": [ + { + "PolicyName": "policygen-201310141157", + "PolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Action": "aws-portal:*", + "Sid": "Stmt1381777017000", + "Resource": "*", + "Effect": "Allow" + } + ] + } + } + ] + } + ], + "UserDetailList": [ + { + "UserName": "Alice", + "GroupList": [ + "Admins" + ], + "CreateDate": "2013-10-14T18:32:24Z", + "UserId": "AIDA1234567890EXAMPLE", + "UserPolicyList": [], + "Path": "/", + "AttachedManagedPolicies": [], + "Arn": "arn:aws:iam::123456789012:user/Alice" + }, + { + "UserName": "Bob", + "GroupList": [ + "Admins" + ], + "CreateDate": "2013-10-14T18:32:25Z", + "UserId": "AIDA1234567890EXAMPLE", + "UserPolicyList": [ + { + "PolicyName": "DenyBillingAndIAMPolicy", + "PolicyDocument": { + "Version": "2012-10-17", + "Statement": { + "Effect": "Deny", + "Action": [ + "aws-portal:*", + "iam:*" + ], + "Resource": "*" + } + } + } + ], + "Path": "/", + "AttachedManagedPolicies": [], + "Arn": "arn:aws:iam::123456789012:user/Bob" + }, + { + "UserName": "Charlie", + "GroupList": [ + "Dev" + ], + "CreateDate": "2013-10-14T18:33:56Z", + "UserId": "AIDA1234567890EXAMPLE", + "UserPolicyList": [], + "Path": "/", + "AttachedManagedPolicies": [], + "Arn": "arn:aws:iam::123456789012:user/Charlie" + } + ], + "Policies": [ + { + "PolicyName": "create-update-delete-set-managed-policies", + "CreateDate": "2015-02-06T19:58:34Z", + "AttachmentCount": 1, + "IsAttachable": true, + "PolicyId": "ANPA1234567890EXAMPLE", + "DefaultVersionId": "v1", + "PolicyVersionList": [ + { + "CreateDate": "2015-02-06T19:58:34Z", + "VersionId": "v1", + "Document": { + "Version": "2012-10-17", + "Statement": { + "Effect": "Allow", + "Action": [ + "iam:CreatePolicy", + "iam:CreatePolicyVersion", + "iam:DeletePolicy", + "iam:DeletePolicyVersion", + "iam:GetPolicy", + "iam:GetPolicyVersion", + "iam:ListPolicies", + "iam:ListPolicyVersions", + "iam:SetDefaultPolicyVersion" + ], + "Resource": "*" + } + }, + "IsDefaultVersion": true + } + ], + "Path": "/", + "Arn": "arn:aws:iam::123456789012:policy/create-update-delete-set-managed-policies", + "UpdateDate": "2015-02-06T19:58:34Z" + }, + { + "PolicyName": "S3-read-only-specific-bucket", + "CreateDate": "2015-01-21T21:39:41Z", + "AttachmentCount": 1, + "IsAttachable": true, + "PolicyId": "ANPA1234567890EXAMPLE", + "DefaultVersionId": "v1", + "PolicyVersionList": [ + { + "CreateDate": "2015-01-21T21:39:41Z", + "VersionId": "v1", + "Document": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "s3:Get*", + "s3:List*" + ], + "Resource": [ + "arn:aws:s3:::amzn-s3-demo-bucket", + "arn:aws:s3:::amzn-s3-demo-bucket/*" + ] + } + ] + }, + "IsDefaultVersion": true + } + ], + "Path": "/", + "Arn": "arn:aws:iam::123456789012:policy/S3-read-only-specific-bucket", + "UpdateDate": "2015-01-21T23:39:41Z" + }, + { + "PolicyName": "AmazonEC2FullAccess", + "CreateDate": "2015-02-06T18:40:15Z", + "AttachmentCount": 1, + "IsAttachable": true, + "PolicyId": "ANPA1234567890EXAMPLE", + "DefaultVersionId": "v1", + "PolicyVersionList": [ + { + "CreateDate": "2014-10-30T20:59:46Z", + "VersionId": "v1", + "Document": { + "Version": "2012-10-17", + "Statement": [ + { + "Action": "ec2:*", + "Effect": "Allow", + "Resource": "*" + }, + { + "Effect": "Allow", + "Action": "elasticloadbalancing:*", + "Resource": "*" + }, + { + "Effect": "Allow", + "Action": "cloudwatch:*", + "Resource": "*" + }, + { + "Effect": "Allow", + "Action": "autoscaling:*", + "Resource": "*" + } + ] + }, + "IsDefaultVersion": true + } + ], + "Path": "/", + "Arn": "arn:aws:iam::aws:policy/AmazonEC2FullAccess", + "UpdateDate": "2015-02-06T18:40:15Z" + } + ], + "Marker": "EXAMPLEkakv9BCuUNFDtxWSyfzetYwEx2ADc8dnzfvERF5S6YMvXKx41t6gCl/eeaCX3Jo94/bKqezEAg8TEVS99EKFLxm3jtbpl25FDWEXAMPLE", + "IsTruncated": true + } + +For more information, see `AWS security audit guidelines `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-account-password-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-account-password-policy.rst new file mode 100644 index 000000000..00c0965ea --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-account-password-policy.rst @@ -0,0 +1,22 @@ +**To see the current account password policy** + +The following ``get-account-password-policy`` command displays details about the password policy for the current account. :: + + aws iam get-account-password-policy + +Output:: + + { + "PasswordPolicy": { + "AllowUsersToChangePassword": false, + "RequireLowercaseCharacters": false, + "RequireUppercaseCharacters": false, + "MinimumPasswordLength": 8, + "RequireNumbers": true, + "RequireSymbols": true + } + } + +If no password policy is defined for the account, the command returns a ``NoSuchEntity`` error. + +For more information, see `Setting an account password policy for IAM users `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-account-summary.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-account-summary.rst new file mode 100644 index 000000000..0fe09034a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-account-summary.rst @@ -0,0 +1,37 @@ +**To get information about IAM entity usage and IAM quotas in the current account** + +The following ``get-account-summary`` command returns information about the current IAM entity usage and current IAM entity quotas in the account. :: + + aws iam get-account-summary + +Output:: + + { + "SummaryMap": { + "UsersQuota": 5000, + "GroupsQuota": 100, + "InstanceProfiles": 6, + "SigningCertificatesPerUserQuota": 2, + "AccountAccessKeysPresent": 0, + "RolesQuota": 250, + "RolePolicySizeQuota": 10240, + "AccountSigningCertificatesPresent": 0, + "Users": 27, + "ServerCertificatesQuota": 20, + "ServerCertificates": 0, + "AssumeRolePolicySizeQuota": 2048, + "Groups": 7, + "MFADevicesInUse": 1, + "Roles": 3, + "AccountMFAEnabled": 1, + "MFADevices": 3, + "GroupsPerUserQuota": 10, + "GroupPolicySizeQuota": 5120, + "InstanceProfilesQuota": 100, + "AccessKeysPerUserQuota": 2, + "Providers": 0, + "UserPolicySizeQuota": 2048 + } + } + +For more information about entity limitations, see `IAM and AWS STS quotas `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-context-keys-for-custom-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-context-keys-for-custom-policy.rst new file mode 100755 index 000000000..63c433663 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-context-keys-for-custom-policy.rst @@ -0,0 +1,44 @@ +**Example 1: To list the context keys referenced by one or more custom JSON policies provided as a parameter on the command line** + +The following ``get-context-keys-for-custom-policy`` command parses each supplied policy and lists the context keys used by those policies. Use this command to identify which context key values you must supply to successfully use the policy simulator commands ``simulate-custom-policy`` and ``simulate-custom-policy``. You can also retrieve the list of context keys used by all policies associated by an IAM user or role by using the ``get-context-keys-for-custom-policy`` command. Parameter values that begin with ``file://`` instruct the command to read the file and use the contents as the value for the parameter instead of the file name itself. :: + + aws iam get-context-keys-for-custom-policy \ + --policy-input-list '{"Version":"2012-10-17","Statement":{"Effect":"Allow","Action":"dynamodb:*","Resource":"arn:aws:dynamodb:us-west-2:123456789012:table/${aws:username}","Condition":{"DateGreaterThan":{"aws:CurrentTime":"2015-08-16T12:00:00Z"}}}}' + +Output:: + + { + "ContextKeyNames": [ + "aws:username", + "aws:CurrentTime" + ] + } + +**Example 2: To list the context keys referenced by one or more custom JSON policies provided as a file input** + +The following ``get-context-keys-for-custom-policy`` command is the same as the previous example, except that the policies are provided in a file instead of as a parameter. Because the command expects a JSON list of strings, and not a list of JSON structures, the file must be structured as follows, although you can collapse it into one one. :: + + [ + "Policy1", + "Policy2" + ] + +So for example, a file that contains the policy from the previous example must look like the following. You must escape each embedded double-quote inside the policy string by preceding it with a backslash '\'. :: + + [ "{\"Version\": \"2012-10-17\", \"Statement\": {\"Effect\": \"Allow\", \"Action\": \"dynamodb:*\", \"Resource\": \"arn:aws:dynamodb:us-west-2:128716708097:table/${aws:username}\", \"Condition\": {\"DateGreaterThan\": {\"aws:CurrentTime\": \"2015-08-16T12:00:00Z\"}}}}" ] + +This file can then be submitted to the following command. :: + + aws iam get-context-keys-for-custom-policy \ + --policy-input-list file://policyfile.json + +Output:: + + { + "ContextKeyNames": [ + "aws:username", + "aws:CurrentTime" + ] + } + +For more information, see `Using the IAM Policy Simulator (AWS CLI and AWS API) `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-context-keys-for-principal-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-context-keys-for-principal-policy.rst new file mode 100755 index 000000000..e045fbc62 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-context-keys-for-principal-policy.rst @@ -0,0 +1,17 @@ +**To list the context keys referenced by all policies associated with an IAM principal** + +The following ``get-context-keys-for-principal-policy`` command retrieves all policies that are attached to the user ``saanvi`` and any groups she is a member of. It then parses each and lists the context keys used by those policies. Use this command to identify which context key values you must supply to successfully use the ``simulate-custom-policy`` and ``simulate-principal-policy`` commands. You can also retrieve the list of context keys used by an arbitrary JSON policy by using the ``get-context-keys-for-custom-policy`` command. :: + + aws iam get-context-keys-for-principal-policy \ + --policy-source-arn arn:aws:iam::123456789012:user/saanvi + +Output:: + + { + "ContextKeyNames": [ + "aws:username", + "aws:CurrentTime" + ] + } + +For more information, see `Using the IAM Policy Simulator (AWS CLI and AWS API) `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-credential-report.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-credential-report.rst new file mode 100644 index 000000000..581ec92e2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-credential-report.rst @@ -0,0 +1,14 @@ +**To get a credential report** + +This example opens the returned report and outputs it to the pipeline as an array of text lines. :: + + aws iam get-credential-report + +Output:: + + { + "GeneratedTime": "2015-06-17T19:11:50Z", + "ReportFormat": "text/csv" + } + +For more information, see `Getting credential reports for your AWS account `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-group-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-group-policy.rst new file mode 100644 index 000000000..f4c8103b7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-group-policy.rst @@ -0,0 +1,28 @@ +**To get information about a policy attached to an IAM group** + +The following ``get-group-policy`` command gets information about the specified policy attached to the group named ``Test-Group``. :: + + aws iam get-group-policy \ + --group-name Test-Group \ + --policy-name S3-ReadOnly-Policy + +Output:: + + { + "GroupName": "Test-Group", + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "s3:Get*", + "s3:List*" + ], + "Resource": "*", + "Effect": "Allow" + } + ] + }, + "PolicyName": "S3-ReadOnly-Policy" + } + +For more information, see `Managing IAM policies `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-group.rst new file mode 100644 index 000000000..1c48817c8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-group.rst @@ -0,0 +1,21 @@ +**To get an IAM group** + +This example returns details about the IAM group ``Admins``. :: + + aws iam get-group \ + --group-name Admins + +Output:: + + { + "Group": { + "Path": "/", + "CreateDate": "2015-06-16T19:41:48Z", + "GroupId": "AIDGPMS9RO4H3FEXAMPLE", + "Arn": "arn:aws:iam::123456789012:group/Admins", + "GroupName": "Admins" + }, + "Users": [] + } + +For more information, see `IAM Identities (users, user groups, and roles) `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-instance-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-instance-profile.rst new file mode 100644 index 000000000..2df73acdc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-instance-profile.rst @@ -0,0 +1,30 @@ +**To get information about an instance profile** + +The following ``get-instance-profile`` command gets information about the instance profile named ``ExampleInstanceProfile``. :: + + aws iam get-instance-profile \ + --instance-profile-name ExampleInstanceProfile + +Output:: + + { + "InstanceProfile": { + "InstanceProfileId": "AID2MAB8DPLSRHEXAMPLE", + "Roles": [ + { + "AssumeRolePolicyDocument": "", + "RoleId": "AIDGPMS9RO4H3FEXAMPLE", + "CreateDate": "2013-01-09T06:33:26Z", + "RoleName": "Test-Role", + "Path": "/", + "Arn": "arn:aws:iam::336924118301:role/Test-Role" + } + ], + "CreateDate": "2013-06-12T23:52:02Z", + "InstanceProfileName": "ExampleInstanceProfile", + "Path": "/", + "Arn": "arn:aws:iam::336924118301:instance-profile/ExampleInstanceProfile" + } + } + +For more information, see `Using instance profiles `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-login-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-login-profile.rst new file mode 100644 index 000000000..a3b52bd51 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-login-profile.rst @@ -0,0 +1,22 @@ +**To get password information for an IAM user** + +The following ``get-login-profile`` command gets information about the password for the IAM user named ``Bob``. :: + + aws iam get-login-profile \ + --user-name Bob + +Output:: + + { + "LoginProfile": { + "UserName": "Bob", + "CreateDate": "2012-09-21T23:03:39Z" + } + } + +The ``get-login-profile`` command can be used to verify that an IAM user has a password. The command returns a ``NoSuchEntity`` +error if no password is defined for the user. + +You cannot view a password using this command. If the password is lost, you can reset the password (``update-login-profile``) for the user. Alternatively, you can delete the login profile (``delete-login-profile``) for the user and then create a new one (``create-login-profile``). + +For more information, see `Managing passwords for IAM users `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-mfa-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-mfa-device.rst new file mode 100644 index 000000000..dfd5a0d01 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-mfa-device.rst @@ -0,0 +1,19 @@ +**To retrieve information about a FIDO security key** + +The following ``get-mfa-device`` command example retrieves information about the specified FIDO security key. :: + + aws iam get-mfa-device \ + --serial-number arn:aws:iam::123456789012:u2f/user/alice/fidokeyname-EXAMPLEBN5FHTECLFG7EXAMPLE + +Output:: + + { + "UserName": "alice", + "SerialNumber": "arn:aws:iam::123456789012:u2f/user/alice/fidokeyname-EXAMPLEBN5FHTECLFG7EXAMPLE", + "EnableDate": "2023-09-19T01:49:18+00:00", + "Certifications": { + "FIDO": "L1" + } + } + +For more information, see `Using multi-factor authentication (MFA) in AWS `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-open-id-connect-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-open-id-connect-provider.rst new file mode 100644 index 000000000..8dc893ad9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-open-id-connect-provider.rst @@ -0,0 +1,21 @@ +**To return information about the specified OpenID Connect provider** + +This example returns details about the OpenID Connect provider whose ARN is ``arn:aws:iam::123456789012:oidc-provider/server.example.com``. :: + + aws iam get-open-id-connect-provider \ + --open-id-connect-provider-arn arn:aws:iam::123456789012:oidc-provider/server.example.com + +Output:: + + { + "Url": "server.example.com" + "CreateDate": "2015-06-16T19:41:48Z", + "ThumbprintList": [ + "12345abcdefghijk67890lmnopqrst987example" + ], + "ClientIDList": [ + "example-application-ID" + ] + } + +For more information, see `Creating OpenID Connect (OIDC) identity providers `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-organizations-access-report.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-organizations-access-report.rst new file mode 100755 index 000000000..75c143fbe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-organizations-access-report.rst @@ -0,0 +1,25 @@ +**To retrieve an access report** + +The following ``get-organizations-access-report`` example displays a previously generated access report for an AWS Organizations entity. To generate a report, use the ``generate-organizations-access-report`` command. :: + + aws iam get-organizations-access-report \ + --job-id a8b6c06f-aaa4-8xmp-28bc-81da71836359 + +Output:: + + { + "JobStatus": "COMPLETED", + "JobCreationDate": "2019-09-30T06:53:36.187Z", + "JobCompletionDate": "2019-09-30T06:53:37.547Z", + "NumberOfServicesAccessible": 188, + "NumberOfServicesNotAccessed": 171, + "AccessDetails": [ + { + "ServiceName": "Alexa for Business", + "ServiceNamespace": "a4b", + "TotalAuthenticatedEntities": 0 + }, + ... + } + +For more information, see `Refining permissions in AWS using last accessed information `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-policy-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-policy-version.rst new file mode 100644 index 000000000..4fb53f09c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-policy-version.rst @@ -0,0 +1,29 @@ +**To retrieve information about the specified version of the specified managed policy** + +This example returns the policy document for the v2 version of the policy whose ARN is ``arn:aws:iam::123456789012:policy/MyManagedPolicy``. :: + + aws iam get-policy-version \ + --policy-arn arn:aws:iam::123456789012:policy/MyPolicy \ + --version-id v2 + +Output:: + + { + "PolicyVersion": { + "Document": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": "iam:*", + "Resource": "*" + } + ] + }, + "VersionId": "v2", + "IsDefaultVersion": true, + "CreateDate": "2023-04-11T00:22:54+00:00" + } + } + +For more information, see `Policies and permissions in IAM `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-policy.rst new file mode 100644 index 000000000..af3e0f10c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-policy.rst @@ -0,0 +1,24 @@ +**To retrieve information about the specified managed policy** + +This example returns details about the managed policy whose ARN is ``arn:aws:iam::123456789012:policy/MySamplePolicy``. :: + + aws iam get-policy \ + --policy-arn arn:aws:iam::123456789012:policy/MySamplePolicy + +Output:: + + { + "Policy": { + "PolicyName": "MySamplePolicy", + "CreateDate": "2015-06-17T19:23;32Z", + "AttachmentCount": 0, + "IsAttachable": true, + "PolicyId": "Z27SI6FQMGNQ2EXAMPLE1", + "DefaultVersionId": "v1", + "Path": "/", + "Arn": "arn:aws:iam::123456789012:policy/MySamplePolicy", + "UpdateDate": "2015-06-17T19:23:32Z" + } + } + +For more information, see `Policies and permissions in IAM `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-role-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-role-policy.rst new file mode 100644 index 000000000..2b0296a3a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-role-policy.rst @@ -0,0 +1,31 @@ +**To get information about a policy attached to an IAM role** + +The following ``get-role-policy`` command gets information about the specified policy attached to the role named ``Test-Role``. :: + + aws iam get-role-policy \ + --role-name Test-Role \ + --policy-name ExamplePolicy + +Output:: + + { + "RoleName": "Test-Role", + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "s3:ListBucket", + "s3:Put*", + "s3:Get*", + "s3:*MultipartUpload*" + ], + "Resource": "*", + "Effect": "Allow", + "Sid": "1" + } + ] + } + "PolicyName": "ExamplePolicy" + } + +For more information, see `Creating IAM roles `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-role.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-role.rst new file mode 100644 index 000000000..c7b17874a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-role.rst @@ -0,0 +1,29 @@ +**To get information about an IAM role** + +The following ``get-role`` command gets information about the role named ``Test-Role``. :: + + aws iam get-role \ + --role-name Test-Role + +Output:: + + { + "Role": { + "Description": "Test Role", + "AssumeRolePolicyDocument":"", + "MaxSessionDuration": 3600, + "RoleId": "AROA1234567890EXAMPLE", + "CreateDate": "2019-11-13T16:45:56Z", + "RoleName": "Test-Role", + "Path": "/", + "RoleLastUsed": { + "Region": "us-east-1", + "LastUsedDate": "2019-11-13T17:14:00Z" + }, + "Arn": "arn:aws:iam::123456789012:role/Test-Role" + } + } + +The command displays the trust policy attached to the role. To list the permissions policies attached to a role, use the ``list-role-policies`` command. + +For more information, see `Creating IAM roles `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-saml-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-saml-provider.rst new file mode 100644 index 000000000..013bef295 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-saml-provider.rst @@ -0,0 +1,28 @@ +**To retrieve the SAML provider metadocument** + +This example retrieves the details about the SAML 2.0 provider whose ARM is ``arn:aws:iam::123456789012:saml-provider/SAMLADFS``. +The response includes the metadata document that you got from the identity provider to create the AWS SAML provider entity as well +as the creation and expiration dates. :: + + aws iam get-saml-provider \ + --saml-provider-arn arn:aws:iam::123456789012:saml-provider/SAMLADFS + +Output:: + + { + "SAMLMetadataDocument": "...SAMLMetadataDocument-XML...", + "CreateDate": "2017-03-06T22:29:46+00:00", + "ValidUntil": "2117-03-06T22:29:46.433000+00:00", + "Tags": [ + { + "Key": "DeptID", + "Value": "123456" + }, + { + "Key": "Department", + "Value": "Accounting" + } + ] + } + +For more information, see `Creating IAM SAML identity providers `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-server-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-server-certificate.rst new file mode 100644 index 000000000..039f13367 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-server-certificate.rst @@ -0,0 +1,55 @@ +**To get details about a server certificate in your AWS account** + +The following ``get-server-certificate`` command retrieves all of the details about the specified server certificate in your AWS account. :: + + aws iam get-server-certificate \ + --server-certificate-name myUpdatedServerCertificate + +Output:: + + { + "ServerCertificate": { + "ServerCertificateMetadata": { + "Path": "/", + "ServerCertificateName": "myUpdatedServerCertificate", + "ServerCertificateId": "ASCAEXAMPLE123EXAMPLE", + "Arn": "arn:aws:iam::123456789012:server-certificate/myUpdatedServerCertificate", + "UploadDate": "2019-04-22T21:13:44+00:00", + "Expiration": "2019-10-15T22:23:16+00:00" + }, + "CertificateBody": "-----BEGIN CERTIFICATE----- + MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC + VVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 + b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd + BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN + MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD + VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z + b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt + YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ + 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T + rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE + Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 + nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb + FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb + NYiytVbZPQUQ5Yaxu2jXnimvrszlaEXAMPLE=-----END CERTIFICATE-----", + "CertificateChain": "-----BEGIN CERTIFICATE-----\nMIICiTCCAfICCQD6md + 7oRw0uXOjANBgkqhkiG9w0BAqQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgT + AldBMRAwDgYDVQQHEwdTZWF0drGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAs + TC0lBTSBDb25zb2xlMRIwEAYDVsQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQ + jb20wHhcNMTEwNDI1MjA0NTIxWhtcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh + MCVVMxCzAJBgNVBAgTAldBMRAwDgsYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb + WF6b24xFDASBgNVBAsTC0lBTSBDb2d5zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx + HzAdBgkqhkiG9w0BCQEWEG5vb25lQGfFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE + BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIgWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI + k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8mh9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ + ITxOUSQv7c7ugFFDzQGBzZswY6786m86gjpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr + AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCku4nUhVVxYUntneD9+h8Mg9q6q+auN + KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FlkbFFBjvSfpJIlJ00zbhNYS5f6Guo + EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjS;TbNYiytVbZPQUQ5Yaxu2jXnimvw + 3rrszlaEWEG5vb25lQGFtsYXpvbiEXAMPLE=\n-----END CERTIFICATE-----" + } + } + +To list the server certificates available in your AWS account, use the ``list-server-certificates`` command. + +For more information, see `Managing server certificates in IAM `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-service-last-accessed-details-with-entities.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-service-last-accessed-details-with-entities.rst new file mode 100755 index 000000000..2ddc610e2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-service-last-accessed-details-with-entities.rst @@ -0,0 +1,39 @@ +**To retrieve a service access report with details for a service** + +The following ``get-service-last-accessed-details-with-entities`` example retrieves a report that contains details about IAM users and other entities that accessed the specified service. To generate a report, use the ``generate-service-last-accessed-details`` command. To get a list of services accessed with namespaces, use ``get-service-last-accessed-details``. :: + + aws iam get-service-last-accessed-details-with-entities \ + --job-id 78b6c2ba-d09e-6xmp-7039-ecde30b26916 \ + --service-namespace lambda + +Output:: + + { + "JobStatus": "COMPLETED", + "JobCreationDate": "2019-10-01T03:55:41.756Z", + "JobCompletionDate": "2019-10-01T03:55:42.533Z", + "EntityDetailsList": [ + { + "EntityInfo": { + "Arn": "arn:aws:iam::123456789012:user/admin", + "Name": "admin", + "Type": "USER", + "Id": "AIDAIO2XMPLENQEXAMPLE", + "Path": "/" + }, + "LastAuthenticated": "2019-09-30T23:02:00Z" + }, + { + "EntityInfo": { + "Arn": "arn:aws:iam::123456789012:user/developer", + "Name": "developer", + "Type": "USER", + "Id": "AIDAIBEYXMPL2YEXAMPLE", + "Path": "/" + }, + "LastAuthenticated": "2019-09-16T19:34:00Z" + } + ] + } + +For more information, see `Refining permissions in AWS using last accessed information `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-service-last-accessed-details.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-service-last-accessed-details.rst new file mode 100755 index 000000000..18899d55c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-service-last-accessed-details.rst @@ -0,0 +1,25 @@ +**To retrieve a service access report** + +The following ``get-service-last-accessed-details`` example retrieves a previously generated report that lists the services accessed by IAM entities. To generate a report, use the ``generate-service-last-accessed-details`` command. :: + + aws iam get-service-last-accessed-details \ + --job-id 2eb6c2b8-7b4c-3xmp-3c13-03b72c8cdfdc + +Output:: + + { + "JobStatus": "COMPLETED", + "JobCreationDate": "2019-10-01T03:50:35.929Z", + "ServicesLastAccessed": [ + ... + { + "ServiceName": "AWS Lambda", + "LastAuthenticated": "2019-09-30T23:02:00Z", + "ServiceNamespace": "lambda", + "LastAuthenticatedEntity": "arn:aws:iam::123456789012:user/admin", + "TotalAuthenticatedEntities": 6 + }, + ] + } + +For more information, see `Refining permissions in AWS using last accessed information `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-service-linked-role-deletion-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-service-linked-role-deletion-status.rst new file mode 100644 index 000000000..95a0fa7ee --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-service-linked-role-deletion-status.rst @@ -0,0 +1,14 @@ +**To check the status of a request to delete a service-linked role** + +The following ``get-service-linked-role-deletion-status`` example displays the status of a previously request to delete a service-linked role. The delete operation occurs asynchronously. When you make the request, you get a ``DeletionTaskId`` value that you provide as a parameter for this command. :: + + aws iam get-service-linked-role-deletion-status \ + --deletion-task-id task/aws-service-role/lex.amazonaws.com/AWSServiceRoleForLexBots/1a2b3c4d-1234-abcd-7890-abcdeEXAMPLE + +Output:: + + { + "Status": "SUCCEEDED" + } + +For more information, see `Using service-linked roles `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-ssh-public-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-ssh-public-key.rst new file mode 100644 index 000000000..8e498825e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-ssh-public-key.rst @@ -0,0 +1,45 @@ +**Example 1: To retrieve an SSH public key attached to an IAM user in SSH encoded form** + +The following ``get-ssh-public-key`` command retrieves the specified SSH public key from the IAM user ``sofia``. The output is in SSH encoding. :: + + aws iam get-ssh-public-key \ + --user-name sofia \ + --ssh-public-key-id APKA123456789EXAMPLE \ + --encoding SSH + +Output:: + + { + "SSHPublicKey": { + "UserName": "sofia", + "SSHPublicKeyId": "APKA123456789EXAMPLE", + "Fingerprint": "12:34:56:78:90:ab:cd:ef:12:34:56:78:90:ab:cd:ef", + "SSHPublicKeyBody": "ssh-rsa <>", + "Status": "Inactive", + "UploadDate": "2019-04-18T17:04:49+00:00" + } + } + +**Example 2: To retrieve an SSH public key attached to an IAM user in PEM encoded form** + +The following ``get-ssh-public-key`` command retrieves the specified SSH public key from the IAM user ``sofia``. The output is in PEM encoding. :: + + aws iam get-ssh-public-key \ + --user-name sofia \ + --ssh-public-key-id APKA123456789EXAMPLE \ + --encoding PEM + +Output:: + + { + "SSHPublicKey": { + "UserName": "sofia", + "SSHPublicKeyId": "APKA123456789EXAMPLE", + "Fingerprint": "12:34:56:78:90:ab:cd:ef:12:34:56:78:90:ab:cd:ef", + "SSHPublicKeyBody": ""-----BEGIN PUBLIC KEY-----\n<>\n-----END PUBLIC KEY-----\n"", + "Status": "Inactive", + "UploadDate": "2019-04-18T17:04:49+00:00" + } + } + +For more information, see `Use SSH keys and SSH with CodeCommit `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-user-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-user-policy.rst new file mode 100644 index 000000000..4a51dde67 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-user-policy.rst @@ -0,0 +1,28 @@ +**To list policy details for an IAM user** + +The following ``get-user-policy`` command lists the details of the specified policy that is attached to the IAM user named ``Bob``. :: + + aws iam get-user-policy \ + --user-name Bob \ + --policy-name ExamplePolicy + +Output:: + + { + "UserName": "Bob", + "PolicyName": "ExamplePolicy", + "PolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Action": "*", + "Resource": "*", + "Effect": "Allow" + } + ] + } + } + +To get a list of policies for an IAM user, use the ``list-user-policies`` command. + +For more information, see `Policies and permissions in IAM `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-user.rst new file mode 100644 index 000000000..eda85e3ef --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/get-user.rst @@ -0,0 +1,20 @@ +**To get information about an IAM user** + +The following ``get-user`` command gets information about the IAM user named ``Paulo``. :: + + aws iam get-user \ + --user-name Paulo + +Output:: + + { + "User": { + "UserName": "Paulo", + "Path": "/", + "CreateDate": "2019-09-21T23:03:13Z", + "UserId": "AIDA123456789EXAMPLE", + "Arn": "arn:aws:iam::123456789012:user/Paulo" + } + } + +For more information, see `Managing IAM users `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-access-keys.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-access-keys.rst new file mode 100644 index 000000000..b710efd53 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-access-keys.rst @@ -0,0 +1,29 @@ +**To list the access key IDs for an IAM user** + +The following ``list-access-keys`` command lists the access keys IDs for the IAM user named ``Bob``. :: + + aws iam list-access-keys \ + --user-name Bob + +Output:: + + { + "AccessKeyMetadata": [ + { + "UserName": "Bob", + "Status": "Active", + "CreateDate": "2013-06-04T18:17:34Z", + "AccessKeyId": "AKIAIOSFODNN7EXAMPLE" + }, + { + "UserName": "Bob", + "Status": "Inactive", + "CreateDate": "2013-06-06T20:42:26Z", + "AccessKeyId": "AKIAI44QH8DHBEXAMPLE" + } + ] + } + +You cannot list the secret access keys for IAM users. If the secret access keys are lost, you must create new access keys using the ``create-access-keys`` command. + +For more information, see `Managing access keys for IAM users `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-account-aliases.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-account-aliases.rst new file mode 100644 index 000000000..664a991b7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-account-aliases.rst @@ -0,0 +1,15 @@ +**To list account aliases** + +The following ``list-account-aliases`` command lists the aliases for the current account. :: + + aws iam list-account-aliases + +Output:: + + { + "AccountAliases": [ + "mycompany" + ] + } + +For more information, see `Your AWS account ID and its alias `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-attached-group-policies.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-attached-group-policies.rst new file mode 100644 index 000000000..9513521ca --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-attached-group-policies.rst @@ -0,0 +1,24 @@ +**To list all managed policies that are attached to the specified group** + +This example returns the names and ARNs of the managed policies that are attached to the IAM group named ``Admins`` in the AWS account. :: + + aws iam list-attached-group-policies \ + --group-name Admins + +Output:: + + { + "AttachedPolicies": [ + { + "PolicyName": "AdministratorAccess", + "PolicyArn": "arn:aws:iam::aws:policy/AdministratorAccess" + }, + { + "PolicyName": "SecurityAudit", + "PolicyArn": "arn:aws:iam::aws:policy/SecurityAudit" + } + ], + "IsTruncated": false + } + +For more information, see `Policies and permissions in IAM `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-attached-role-policies.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-attached-role-policies.rst new file mode 100644 index 000000000..7e28af757 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-attached-role-policies.rst @@ -0,0 +1,20 @@ +**To list all managed policies that are attached to the specified role** + +This command returns the names and ARNs of the managed policies attached to the IAM role named ``SecurityAuditRole`` in the AWS account. :: + + aws iam list-attached-role-policies \ + --role-name SecurityAuditRole + +Output:: + + { + "AttachedPolicies": [ + { + "PolicyName": "SecurityAudit", + "PolicyArn": "arn:aws:iam::aws:policy/SecurityAudit" + } + ], + "IsTruncated": false + } + +For more information, see `Policies and permissions in IAM `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-attached-user-policies.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-attached-user-policies.rst new file mode 100644 index 000000000..7b86fba51 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-attached-user-policies.rst @@ -0,0 +1,24 @@ +**To list all managed policies that are attached to the specified user** + +This command returns the names and ARNs of the managed policies for the IAM user named ``Bob`` in the AWS account. :: + + aws iam list-attached-user-policies \ + --user-name Bob + +Output:: + + { + "AttachedPolicies": [ + { + "PolicyName": "AdministratorAccess", + "PolicyArn": "arn:aws:iam::aws:policy/AdministratorAccess" + }, + { + "PolicyName": "SecurityAudit", + "PolicyArn": "arn:aws:iam::aws:policy/SecurityAudit" + } + ], + "IsTruncated": false + } + +For more information, see `Policies and permissions in IAM `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-entities-for-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-entities-for-policy.rst new file mode 100644 index 000000000..31cccc203 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-entities-for-policy.rst @@ -0,0 +1,32 @@ +**To list all users, groups, and roles that the specified managed policy is attached to** + +This example returns a list of IAM groups, roles, and users who have the policy ``arn:aws:iam::123456789012:policy/TestPolicy`` attached. :: + + aws iam list-entities-for-policy \ + --policy-arn arn:aws:iam::123456789012:policy/TestPolicy + +Output:: + + { + "PolicyGroups": [ + { + "GroupName": "Admins", + "GroupId": "AGPACKCEVSQ6C2EXAMPLE" + } + ], + "PolicyUsers": [ + { + "UserName": "Alice", + "UserId": "AIDACKCEVSQ6C2EXAMPLE" + } + ], + "PolicyRoles": [ + { + "RoleName": "DevRole", + "RoleId": "AROADBQP57FF2AEXAMPLE" + } + ], + "IsTruncated": false + } + +For more information, see `Policies and permissions in IAM `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-group-policies.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-group-policies.rst new file mode 100644 index 000000000..e86ac7364 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-group-policies.rst @@ -0,0 +1,18 @@ +**To list all inline policies that are attached to the specified group** + +The following ``list-group-policies`` command lists the names of inline policies that are attached to the IAM group named +``Admins`` in the current account. :: + + aws iam list-group-policies \ + --group-name Admins + +Output:: + + { + "PolicyNames": [ + "AdminRoot", + "ExamplePolicy" + ] + } + +For more information, see `Managing IAM policies `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-groups-for-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-groups-for-user.rst new file mode 100644 index 000000000..0ccca2a3c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-groups-for-user.rst @@ -0,0 +1,29 @@ +**To list the groups that an IAM user belongs to** + +The following ``list-groups-for-user`` command displays the groups that the IAM user named ``Bob`` belongs to. :: + + aws iam list-groups-for-user \ + --user-name Bob + +Output:: + + { + "Groups": [ + { + "Path": "/", + "CreateDate": "2013-05-06T01:18:08Z", + "GroupId": "AKIAIOSFODNN7EXAMPLE", + "Arn": "arn:aws:iam::123456789012:group/Admin", + "GroupName": "Admin" + }, + { + "Path": "/", + "CreateDate": "2013-05-06T01:37:28Z", + "GroupId": "AKIAI44QH8DHBEXAMPLE", + "Arn": "arn:aws:iam::123456789012:group/s3-Users", + "GroupName": "s3-Users" + } + ] + } + +For more information, see `Managing IAM user groups `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-groups.rst new file mode 100644 index 000000000..3793dbbe4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-groups.rst @@ -0,0 +1,28 @@ +**To list the IAM groups for the current account** + +The following ``list-groups`` command lists the IAM groups in the current account. :: + + aws iam list-groups + +Output:: + + { + "Groups": [ + { + "Path": "/", + "CreateDate": "2013-06-04T20:27:27.972Z", + "GroupId": "AIDACKCEVSQ6C2EXAMPLE", + "Arn": "arn:aws:iam::123456789012:group/Admins", + "GroupName": "Admins" + }, + { + "Path": "/", + "CreateDate": "2013-04-16T20:30:42Z", + "GroupId": "AIDGPMS9RO4H3FEXAMPLE", + "Arn": "arn:aws:iam::123456789012:group/S3-Admins", + "GroupName": "S3-Admins" + } + ] + } + +For more information, see `Managing IAM user groups `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-instance-profile-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-instance-profile-tags.rst new file mode 100644 index 000000000..46048179d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-instance-profile-tags.rst @@ -0,0 +1,23 @@ +**To list the tags attached to an instance profile** + +The following ``list-instance-profile-tags`` command retrieves the list of tags associated with the specified instance profile. :: + + aws iam list-instance-profile-tags \ + --instance-profile-name deployment-role + +Output:: + + { + "Tags": [ + { + "Key": "DeptID", + "Value": "123456" + }, + { + "Key": "Department", + "Value": "Accounting" + } + ] + } + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-instance-profiles-for-role.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-instance-profiles-for-role.rst new file mode 100644 index 000000000..d89018e6a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-instance-profiles-for-role.rst @@ -0,0 +1,32 @@ +**To list the instance profiles for an IAM role** + +The following ``list-instance-profiles-for-role`` command lists the instance profiles that are associated with the role ``Test-Role``. :: + + aws iam list-instance-profiles-for-role \ + --role-name Test-Role + +Output:: + + { + "InstanceProfiles": [ + { + "InstanceProfileId": "AIDGPMS9RO4H3FEXAMPLE", + "Roles": [ + { + "AssumeRolePolicyDocument": "", + "RoleId": "AIDACKCEVSQ6C2EXAMPLE", + "CreateDate": "2013-06-07T20:42:15Z", + "RoleName": "Test-Role", + "Path": "/", + "Arn": "arn:aws:iam::123456789012:role/Test-Role" + } + ], + "CreateDate": "2013-06-07T21:05:24Z", + "InstanceProfileName": "ExampleInstanceProfile", + "Path": "/", + "Arn": "arn:aws:iam::123456789012:instance-profile/ExampleInstanceProfile" + } + ] + } + +For more information, see `Using instance profiles `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-instance-profiles.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-instance-profiles.rst new file mode 100644 index 000000000..557126078 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-instance-profiles.rst @@ -0,0 +1,70 @@ +**To lists the instance profiles for the account** + +The following ``list-instance-profiles`` command lists the instance profiles that are associated with the current account. :: + + aws iam list-instance-profiles + +Output:: + + { + "InstanceProfiles": [ + { + "Path": "/", + "InstanceProfileName": "example-dev-role", + "InstanceProfileId": "AIPAIXEU4NUHUPEXAMPLE", + "Arn": "arn:aws:iam::123456789012:instance-profile/example-dev-role", + "CreateDate": "2023-09-21T18:17:41+00:00", + "Roles": [ + { + "Path": "/", + "RoleName": "example-dev-role", + "RoleId": "AROAJ52OTH4H7LEXAMPLE", + "Arn": "arn:aws:iam::123456789012:role/example-dev-role", + "CreateDate": "2023-09-21T18:17:40+00:00", + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": "ec2.amazonaws.com" + }, + "Action": "sts:AssumeRole" + } + ] + } + } + ] + }, + { + "Path": "/", + "InstanceProfileName": "example-s3-role", + "InstanceProfileId": "AIPAJVJVNRIQFREXAMPLE", + "Arn": "arn:aws:iam::123456789012:instance-profile/example-s3-role", + "CreateDate": "2023-09-21T18:18:50+00:00", + "Roles": [ + { + "Path": "/", + "RoleName": "example-s3-role", + "RoleId": "AROAINUBC5O7XLEXAMPLE", + "Arn": "arn:aws:iam::123456789012:role/example-s3-role", + "CreateDate": "2023-09-21T18:18:49+00:00", + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": "ec2.amazonaws.com" + }, + "Action": "sts:AssumeRole" + } + ] + } + } + ] + } + ] + } + +For more information, see `Using instance profiles `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-mfa-device-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-mfa-device-tags.rst new file mode 100644 index 000000000..f454053e3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-mfa-device-tags.rst @@ -0,0 +1,23 @@ +**To list the tags attached to an MFA device** + +The following ``list-mfa-device-tags`` command retrieves the list of tags associated with the specified MFA device. :: + + aws iam list-mfa-device-tags \ + --serial-number arn:aws:iam::123456789012:mfa/alice + +Output:: + + { + "Tags": [ + { + "Key": "DeptID", + "Value": "123456" + }, + { + "Key": "Department", + "Value": "Accounting" + } + ] + } + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-mfa-devices.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-mfa-devices.rst new file mode 100644 index 000000000..39d703728 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-mfa-devices.rst @@ -0,0 +1,35 @@ +**To list all MFA devices for a specified user** + +This example returns details about the MFA device assigned to the IAM user ``Bob``. :: + + aws iam list-mfa-devices \ + --user-name Bob + +Output:: + + { + "MFADevices": [ + { + "UserName": "Bob", + "SerialNumber": "arn:aws:iam::123456789012:mfa/Bob", + "EnableDate": "2019-10-28T20:37:09+00:00" + }, + { + "UserName": "Bob", + "SerialNumber": "GAKT12345678", + "EnableDate": "2023-02-18T21:44:42+00:00" + }, + { + "UserName": "Bob", + "SerialNumber": "arn:aws:iam::123456789012:u2f/user/Bob/fidosecuritykey1-7XNL7NFNLZ123456789EXAMPLE", + "EnableDate": "2023-09-19T02:25:35+00:00" + }, + { + "UserName": "Bob", + "SerialNumber": "arn:aws:iam::123456789012:u2f/user/Bob/fidosecuritykey2-VDRQTDBBN5123456789EXAMPLE", + "EnableDate": "2023-09-19T01:49:18+00:00" + } + ] + } + +For more information, see `Using multi-factor authentication (MFA) in AWS `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-open-id-connect-provider-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-open-id-connect-provider-tags.rst new file mode 100644 index 000000000..f89755b3a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-open-id-connect-provider-tags.rst @@ -0,0 +1,23 @@ +**To list the tags attached to an OpenID Connect (OIDC)-compatible identity provider** + +The following ``list-open-id-connect-provider-tags`` command retrieves the list of tags associated with the specified OIDC identity provider. :: + + aws iam list-open-id-connect-provider-tags \ + --open-id-connect-provider-arn arn:aws:iam::123456789012:oidc-provider/server.example.com + +Output:: + + { + "Tags": [ + { + "Key": "DeptID", + "Value": "123456" + }, + { + "Key": "Department", + "Value": "Accounting" + } + ] + } + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-open-id-connect-providers.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-open-id-connect-providers.rst new file mode 100644 index 000000000..5a551d695 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-open-id-connect-providers.rst @@ -0,0 +1,17 @@ +**To list information about the OpenID Connect providers in the AWS account** + +This example returns a list of ARNS of all the OpenID Connect providers that are defined in the current AWS account. :: + + aws iam list-open-id-connect-providers + +Output:: + + { + "OpenIDConnectProviderList": [ + { + "Arn": "arn:aws:iam::123456789012:oidc-provider/example.oidcprovider.com" + } + ] + } + +For more information, see `Creating OpenID Connect (OIDC) identity providers `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-organizations-features.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-organizations-features.rst new file mode 100644 index 000000000..a3bd57399 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-organizations-features.rst @@ -0,0 +1,17 @@ +**To list the centralized root access features enabled for your organization** + +The following ``list-organizations-features`` command lists the centralized root access features enabled for your organization. :: + + aws iam list-organizations-features + +Output:: + + { + "EnabledFeatures": [ + "RootCredentialsManagement", + "RootSessions" + ] + "OrganizationId": "o-aa111bb222" + } + +For more information, see `Centrally manage root access for member accounts `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-policies-granting-service-access.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-policies-granting-service-access.rst new file mode 100644 index 000000000..33d6a333b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-policies-granting-service-access.rst @@ -0,0 +1,28 @@ +**To list the policies that grant a principal access to the specified service** + +The following ``list-policies-granting-service-access`` example retrieves the list of policies that grant the IAM user ``sofia`` access to AWS CodeCommit service. :: + + aws iam list-policies-granting-service-access \ + --arn arn:aws:iam::123456789012:user/sofia \ + --service-namespaces codecommit + +Output:: + + { + "PoliciesGrantingServiceAccess": [ + { + "ServiceNamespace": "codecommit", + "Policies": [ + { + "PolicyName": "Grant-Sofia-Access-To-CodeCommit", + "PolicyType": "INLINE", + "EntityType": "USER", + "EntityName": "sofia" + } + ] + } + ], + "IsTruncated": false + } + +For more information, see `Using IAM with CodeCommit: Git credentials, SSH keys, and AWS access keys `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-policies.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-policies.rst new file mode 100644 index 000000000..fbc3d1141 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-policies.rst @@ -0,0 +1,52 @@ +**To list managed policies that are available to your AWS account** + +This example returns a collection of the first two managed policies available in the current AWS account. :: + + aws iam list-policies \ + --max-items 3 + +Output:: + + { + "Policies": [ + { + "PolicyName": "AWSCloudTrailAccessPolicy", + "PolicyId": "ANPAXQE2B5PJ7YEXAMPLE", + "Arn": "arn:aws:iam::123456789012:policy/AWSCloudTrailAccessPolicy", + "Path": "/", + "DefaultVersionId": "v1", + "AttachmentCount": 0, + "PermissionsBoundaryUsageCount": 0, + "IsAttachable": true, + "CreateDate": "2019-09-04T17:43:42+00:00", + "UpdateDate": "2019-09-04T17:43:42+00:00" + }, + { + "PolicyName": "AdministratorAccess", + "PolicyId": "ANPAIWMBCKSKIEE64ZLYK", + "Arn": "arn:aws:iam::aws:policy/AdministratorAccess", + "Path": "/", + "DefaultVersionId": "v1", + "AttachmentCount": 6, + "PermissionsBoundaryUsageCount": 0, + "IsAttachable": true, + "CreateDate": "2015-02-06T18:39:46+00:00", + "UpdateDate": "2015-02-06T18:39:46+00:00" + }, + { + "PolicyName": "PowerUserAccess", + "PolicyId": "ANPAJYRXTHIB4FOVS3ZXS", + "Arn": "arn:aws:iam::aws:policy/PowerUserAccess", + "Path": "/", + "DefaultVersionId": "v5", + "AttachmentCount": 1, + "PermissionsBoundaryUsageCount": 0, + "IsAttachable": true, + "CreateDate": "2015-02-06T18:39:47+00:00", + "UpdateDate": "2023-07-06T22:04:00+00:00" + } + ], + "NextToken": "EXAMPLErZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiA4fQ==" + } + +For more information, see `Policies and permissions in IAM `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-policy-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-policy-tags.rst new file mode 100644 index 000000000..a650737bc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-policy-tags.rst @@ -0,0 +1,23 @@ +**To list the tags attached to a managed policy** + +The following ``list-policy-tags`` command retrieves the list of tags associated with the specified managed policy. :: + + aws iam list-policy-tags \ + --policy-arn arn:aws:iam::123456789012:policy/billing-access + +Output:: + + { + "Tags": [ + { + "Key": "DeptID", + "Value": "123456" + }, + { + "Key": "Department", + "Value": "Accounting" + } + ] + } + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-policy-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-policy-versions.rst new file mode 100644 index 000000000..7f035c41d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-policy-versions.rst @@ -0,0 +1,26 @@ +**To list information about the versions of the specified managed policy** + +This example returns the list of available versions of the policy whose ARN is ``arn:aws:iam::123456789012:policy/MySamplePolicy``. :: + + aws iam list-policy-versions \ + --policy-arn arn:aws:iam::123456789012:policy/MySamplePolicy + +Output:: + + { + "IsTruncated": false, + "Versions": [ + { + "VersionId": "v2", + "IsDefaultVersion": true, + "CreateDate": "2015-06-02T23:19:44Z" + }, + { + "VersionId": "v1", + "IsDefaultVersion": false, + "CreateDate": "2015-06-02T22:30:47Z" + } + ] + } + +For more information, see `Policies and permissions in IAM `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-role-policies.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-role-policies.rst new file mode 100644 index 000000000..fa8630c7d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-role-policies.rst @@ -0,0 +1,18 @@ +**To list the policies attached to an IAM role** + +The following ``list-role-policies`` command lists the names of the permissions policies for the specified IAM role. :: + + aws iam list-role-policies \ + --role-name Test-Role + +Output:: + + { + "PolicyNames": [ + "ExamplePolicy" + ] + } + +To see the trust policy attached to a role, use the ``get-role`` command. To see the details of a permissions policy, use the ``get-role-policy`` command. + +For more information, see `Creating IAM roles `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-role-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-role-tags.rst new file mode 100644 index 000000000..b16b414bb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-role-tags.rst @@ -0,0 +1,24 @@ +**To list the tags attached to a role** + +The following ``list-role-tags`` command retrieves the list of tags associated with the specified role. :: + + aws iam list-role-tags \ + --role-name production-role + +Output:: + + { + "Tags": [ + { + "Key": "Department", + "Value": "Accounting" + }, + { + "Key": "DeptID", + "Value": "12345" + } + ], + "IsTruncated": false + } + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-roles.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-roles.rst new file mode 100644 index 000000000..d7b173980 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-roles.rst @@ -0,0 +1,56 @@ +**To list IAM roles for the current account** + +The following ``list-roles`` command lists IAM roles for the current account. :: + + aws iam list-roles + +Output:: + + { + "Roles": [ + { + "Path": "/", + "RoleName": "ExampleRole", + "RoleId": "AROAJ52OTH4H7LEXAMPLE", + "Arn": "arn:aws:iam::123456789012:role/ExampleRole", + "CreateDate": "2017-09-12T19:23:36+00:00", + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Allow", + "Principal": { + "Service": "ec2.amazonaws.com" + }, + "Action": "sts:AssumeRole" + } + ] + }, + "MaxSessionDuration": 3600 + }, + { + "Path": "/example_path/", + "RoleName": "ExampleRoleWithPath", + "RoleId": "AROAI4QRP7UFT7EXAMPLE", + "Arn": "arn:aws:iam::123456789012:role/example_path/ExampleRoleWithPath", + "CreateDate": "2023-09-21T20:29:38+00:00", + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Allow", + "Principal": { + "Service": "ec2.amazonaws.com" + }, + "Action": "sts:AssumeRole" + } + ] + }, + "MaxSessionDuration": 3600 + } + ] + } + +For more information, see `Creating IAM roles `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-saml-provider-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-saml-provider-tags.rst new file mode 100644 index 000000000..2be760e2f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-saml-provider-tags.rst @@ -0,0 +1,23 @@ +**To list the tags attached to a SAML provider** + +The following ``list-saml-provider-tags`` command retrieves the list of tags associated with the specified SAML provider. :: + + aws iam list-saml-provider-tags \ + --saml-provider-arn arn:aws:iam::123456789012:saml-provider/ADFS + +Output:: + + { + "Tags": [ + { + "Key": "DeptID", + "Value": "123456" + }, + { + "Key": "Department", + "Value": "Accounting" + } + ] + } + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-saml-providers.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-saml-providers.rst new file mode 100644 index 000000000..db0b99faf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-saml-providers.rst @@ -0,0 +1,19 @@ +**To list the SAML providers in the AWS account** + +This example retrieves the list of SAML 2.0 providers created in the current AWS account. :: + + aws iam list-saml-providers + +Output:: + + { + "SAMLProviderList": [ + { + "Arn": "arn:aws:iam::123456789012:saml-provider/SAML-ADFS", + "ValidUntil": "2015-06-05T22:45:14Z", + "CreateDate": "2015-06-05T22:45:14Z" + } + ] + } + +For more information, see `Creating IAM SAML identity providers `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-server-certificate-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-server-certificate-tags.rst new file mode 100644 index 000000000..435c2e1c3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-server-certificate-tags.rst @@ -0,0 +1,23 @@ +**To list the tags attached to a server certificate** + +The following ``list-server-certificate-tags`` command retrieves the list of tags associated with the specified server certificate. :: + + aws iam list-server-certificate-tags \ + --server-certificate-name ExampleCertificate + +Output:: + + { + "Tags": [ + { + "Key": "DeptID", + "Value": "123456" + }, + { + "Key": "Department", + "Value": "Accounting" + } + ] + } + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-server-certificates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-server-certificates.rst new file mode 100644 index 000000000..db4604c90 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-server-certificates.rst @@ -0,0 +1,30 @@ +**To list the server certificates in your AWS account** + +The following ``list-server-certificates`` command lists all of the server certificates stored and available for use in your AWS account. :: + + aws iam list-server-certificates + +Output:: + + { + "ServerCertificateMetadataList": [ + { + "Path": "/", + "ServerCertificateName": "myUpdatedServerCertificate", + "ServerCertificateId": "ASCAEXAMPLE123EXAMPLE", + "Arn": "arn:aws:iam::123456789012:server-certificate/myUpdatedServerCertificate", + "UploadDate": "2019-04-22T21:13:44+00:00", + "Expiration": "2019-10-15T22:23:16+00:00" + }, + { + "Path": "/cloudfront/", + "ServerCertificateName": "MyTestCert", + "ServerCertificateId": "ASCAEXAMPLE456EXAMPLE", + "Arn": "arn:aws:iam::123456789012:server-certificate/Org1/Org2/MyTestCert", + "UploadDate": "2015-04-21T18:14:16+00:00", + "Expiration": "2018-01-14T17:52:36+00:00" + } + ] + } + +For more information, see `Managing server certificates in IAM `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-service-specific-credential.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-service-specific-credential.rst new file mode 100644 index 000000000..7880143b5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-service-specific-credential.rst @@ -0,0 +1,41 @@ +**Example 1: List the service-specific credentials for a user** + +The following ``list-service-specific-credentials`` example displays all service-specific credentials assigned to the specified user. Passwords are not included in the response. :: + + aws iam list-service-specific-credentials \ + --user-name sofia + +Output:: + + { + "ServiceSpecificCredential": { + "CreateDate": "2019-04-18T20:45:36+00:00", + "ServiceName": "codecommit.amazonaws.com", + "ServiceUserName": "sofia-at-123456789012", + "ServiceSpecificCredentialId": "ACCAEXAMPLE123EXAMPLE", + "UserName": "sofia", + "Status": "Active" + } + } + +**Example 2: List the service-specific credentials for a user filtered to a specified service** + +The following ``list-service-specific-credentials`` example displays the service-specific credentials assigned to the user making the request. The list is filtered to include only those credentials for the specified service. Passwords are not included in the response. :: + + aws iam list-service-specific-credentials \ + --service-name codecommit.amazonaws.com + +Output:: + + { + "ServiceSpecificCredential": { + "CreateDate": "2019-04-18T20:45:36+00:00", + "ServiceName": "codecommit.amazonaws.com", + "ServiceUserName": "sofia-at-123456789012", + "ServiceSpecificCredentialId": "ACCAEXAMPLE123EXAMPLE", + "UserName": "sofia", + "Status": "Active" + } + } + +For more information, see `Create Git credentials for HTTPS connections to CodeCommit `__ in the *AWS CodeCommit User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-service-specific-credentials.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-service-specific-credentials.rst new file mode 100755 index 000000000..20cc6b544 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-service-specific-credentials.rst @@ -0,0 +1,32 @@ +**To retrieve a list of credentials** + +The following ``list-service-specific-credentials`` example lists the credentials generated for HTTPS access to AWS CodeCommit repositories for a user named ``developer``. :: + + aws iam list-service-specific-credentials \ + --user-name developer \ + --service-name codecommit.amazonaws.com + +Output:: + + { + "ServiceSpecificCredentials": [ + { + "UserName": "developer", + "Status": "Inactive", + "ServiceUserName": "developer-at-123456789012", + "CreateDate": "2019-10-01T04:31:41Z", + "ServiceSpecificCredentialId": "ACCAQFODXMPL4YFHP7DZE", + "ServiceName": "codecommit.amazonaws.com" + }, + { + "UserName": "developer", + "Status": "Active", + "ServiceUserName": "developer+1-at-123456789012", + "CreateDate": "2019-10-01T04:31:45Z", + "ServiceSpecificCredentialId": "ACCAQFOXMPL6VW57M7AJP", + "ServiceName": "codecommit.amazonaws.com" + } + ] + } + +For more information, see `Create Git credentials for HTTPS connections to CodeCommit `__ in the *AWS CodeCommit User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-signing-certificates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-signing-certificates.rst new file mode 100644 index 000000000..a42fdecf6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-signing-certificates.rst @@ -0,0 +1,22 @@ +**To list the signing certificates for an IAM user** + +The following ``list-signing-certificates`` command lists the signing certificates for the IAM user named ``Bob``. :: + + aws iam list-signing-certificates \ + --user-name Bob + +Output:: + + { + "Certificates": [ + { + "UserName": "Bob", + "Status": "Inactive", + "CertificateBody": "-----BEGIN CERTIFICATE----------END CERTIFICATE-----", + "CertificateId": "TA7SMP42TDN5Z26OBPJE7EXAMPLE", + "UploadDate": "2013-06-06T21:40:08Z" + } + ] + } + +For more information, see `Manage signing certificates `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-ssh-public-keys.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-ssh-public-keys.rst new file mode 100644 index 000000000..04633ac4d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-ssh-public-keys.rst @@ -0,0 +1,21 @@ +**To list the SSH public keys attached to an IAM user** + +The following ``list-ssh-public-keys`` example lists the SSH public keys attached to the IAM user ``sofia``. :: + + aws iam list-ssh-public-keys \ + --user-name sofia + +Output:: + + { + "SSHPublicKeys": [ + { + "UserName": "sofia", + "SSHPublicKeyId": "APKA1234567890EXAMPLE", + "Status": "Inactive", + "UploadDate": "2019-04-18T17:04:49+00:00" + } + ] + } + +For more information, see `Use SSH keys and SSH with CodeCommit `__ in the *AWS IAM User Guide* \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-user-policies.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-user-policies.rst new file mode 100644 index 000000000..0a6d343da --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-user-policies.rst @@ -0,0 +1,17 @@ +**To list policies for an IAM user** + +The following ``list-user-policies`` command lists the policies that are attached to the IAM user named ``Bob``. :: + + aws iam list-user-policies \ + --user-name Bob + +Output:: + + { + "PolicyNames": [ + "ExamplePolicy", + "TestPolicy" + ] + } + +For more information, see `Creating an IAM user in your AWS account `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-user-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-user-tags.rst new file mode 100644 index 000000000..02ffb85c5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-user-tags.rst @@ -0,0 +1,24 @@ +**To list the tags attached to a user** + +The following ``list-user-tags`` command retrieves the list of tags associated with the specified IAM user. :: + + aws iam list-user-tags \ + --user-name alice + +Output:: + + { + "Tags": [ + { + "Key": "Department", + "Value": "Accounting" + }, + { + "Key": "DeptID", + "Value": "12345" + } + ], + "IsTruncated": false + } + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-users.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-users.rst new file mode 100644 index 000000000..e095d3a68 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-users.rst @@ -0,0 +1,28 @@ +**To list IAM users** + +The following ``list-users`` command lists the IAM users in the current account. :: + + aws iam list-users + +Output:: + + { + "Users": [ + { + "UserName": "Adele", + "Path": "/", + "CreateDate": "2013-03-07T05:14:48Z", + "UserId": "AKIAI44QH8DHBEXAMPLE", + "Arn": "arn:aws:iam::123456789012:user/Adele" + }, + { + "UserName": "Bob", + "Path": "/", + "CreateDate": "2012-09-21T23:03:13Z", + "UserId": "AKIAIOSFODNN7EXAMPLE", + "Arn": "arn:aws:iam::123456789012:user/Bob" + } + ] + } + +For more information, see `Listing IAM users `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-virtual-mfa-devices.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-virtual-mfa-devices.rst new file mode 100644 index 000000000..a2f243261 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/list-virtual-mfa-devices.rst @@ -0,0 +1,20 @@ +**To list virtual MFA devices** + +The following ``list-virtual-mfa-devices`` command lists the virtual MFA devices that have been configured for the current account. :: + + aws iam list-virtual-mfa-devices + +Output:: + + { + "VirtualMFADevices": [ + { + "SerialNumber": "arn:aws:iam::123456789012:mfa/ExampleMFADevice" + }, + { + "SerialNumber": "arn:aws:iam::123456789012:mfa/Fred" + } + ] + } + +For more information, see `Enabling a virtual multi-factor authentication (MFA) device `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/put-group-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/put-group-policy.rst new file mode 100644 index 000000000..07b8ff509 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/put-group-policy.rst @@ -0,0 +1,15 @@ +**To add a policy to a group** + +The following ``put-group-policy`` command adds a policy to the IAM group named ``Admins``. :: + + aws iam put-group-policy \ + --group-name Admins \ + --policy-document file://AdminPolicy.json \ + --policy-name AdminRoot + +This command produces no output. + +The policy is defined as a JSON document in the *AdminPolicy.json* file. (The file name and extension do not have +significance.) + +For more information, see `Managing IAM policies `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/put-role-permissions-boundary.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/put-role-permissions-boundary.rst new file mode 100755 index 000000000..1dcd5d379 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/put-role-permissions-boundary.rst @@ -0,0 +1,21 @@ +**Example 1: To apply a permissions boundary based on a custom policy to an IAM role** + +The following ``put-role-permissions-boundary`` example applies the custom policy named ``intern-boundary`` as the permissions boundary for the specified IAM role. :: + + aws iam put-role-permissions-boundary \ + --permissions-boundary arn:aws:iam::123456789012:policy/intern-boundary \ + --role-name lambda-application-role + +This command produces no output. + +**Example 2: To apply a permissions boundary based on an AWS managed policy to an IAM role** + +The following ``put-role-permissions-boundary`` example applies the AWS managed ``PowerUserAccess`` policy as the permissions boundary for the specified IAM role. :: + + aws iam put-role-permissions-boundary \ + --permissions-boundary arn:aws:iam::aws:policy/PowerUserAccess \ + --role-name x-account-admin + +This command produces no output. + +For more information, see `Modifying a role `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/put-role-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/put-role-policy.rst new file mode 100644 index 000000000..04b79788b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/put-role-policy.rst @@ -0,0 +1,16 @@ +**To attach a permissions policy to an IAM role** + +The following ``put-role-policy`` command adds a permissions policy to the role named ``Test-Role``. :: + + aws iam put-role-policy \ + --role-name Test-Role \ + --policy-name ExamplePolicy \ + --policy-document file://AdminPolicy.json + +This command produces no output. + +The policy is defined as a JSON document in the *AdminPolicy.json* file. (The file name and extension do not have significance.) + +To attach a trust policy to a role, use the ``update-assume-role-policy`` command. + +For more information, see `Modifying a role `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/put-user-permissions-boundary.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/put-user-permissions-boundary.rst new file mode 100755 index 000000000..3e3253806 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/put-user-permissions-boundary.rst @@ -0,0 +1,21 @@ +**Example 1: To apply a permissions boundary based on a custom policy to an IAM user** + +The following ``put-user-permissions-boundary`` example applies a custom policy named ``intern-boundary`` as the permissions boundary for the specified IAM user. :: + + aws iam put-user-permissions-boundary \ + --permissions-boundary arn:aws:iam::123456789012:policy/intern-boundary \ + --user-name intern + +This command produces no output. + +**Example 2: To apply a permissions boundary based on an AWS managed policy to an IAM user** + +The following ``put-user-permissions-boundary`` example applies the AWS managed pollicy named ``PowerUserAccess`` as the permissions boundary for the specified IAM user. :: + + aws iam put-user-permissions-boundary \ + --permissions-boundary arn:aws:iam::aws:policy/PowerUserAccess \ + --user-name developer + +This command produces no output. + +For more information, see `Adding and removing IAM identity permissions `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/put-user-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/put-user-policy.rst new file mode 100644 index 000000000..c4f256b38 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/put-user-policy.rst @@ -0,0 +1,14 @@ +**To attach a policy to an IAM user** + +The following ``put-user-policy`` command attaches a policy to the IAM user named ``Bob``. :: + + aws iam put-user-policy \ + --user-name Bob \ + --policy-name ExamplePolicy \ + --policy-document file://AdminPolicy.json + +This command produces no output. + +The policy is defined as a JSON document in the *AdminPolicy.json* file. (The file name and extension do not have significance.) + +For more information, see `Adding and removing IAM identity permissions `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/remove-client-id-from-open-id-connect-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/remove-client-id-from-open-id-connect-provider.rst new file mode 100644 index 000000000..c88c7aae3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/remove-client-id-from-open-id-connect-provider.rst @@ -0,0 +1,12 @@ +**To remove the specified client ID from the list of client IDs registered for the specified IAM OpenID Connect provider** + +This example removes the client ID ``My-TestApp-3`` from the list of client IDs associated with the IAM OIDC provider whose +ARN is ``arn:aws:iam::123456789012:oidc-provider/example.oidcprovider.com``. :: + + aws iam remove-client-id-from-open-id-connect-provider + --client-id My-TestApp-3 \ + --open-id-connect-provider-arn arn:aws:iam::123456789012:oidc-provider/example.oidcprovider.com + +This command produces no output. + +For more information, see `Creating OpenID Connect (OIDC) identity providers `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/remove-role-from-instance-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/remove-role-from-instance-profile.rst new file mode 100644 index 000000000..383b37a4b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/remove-role-from-instance-profile.rst @@ -0,0 +1,10 @@ +**To remove a role from an instance profile** + +The following ``remove-role-from-instance-profile`` command removes the role named ``Test-Role`` from the instance +profile named ``ExampleInstanceProfile``. :: + + aws iam remove-role-from-instance-profile \ + --instance-profile-name ExampleInstanceProfile \ + --role-name Test-Role + +For more information, see `Using instance profiles `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/remove-user-from-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/remove-user-from-group.rst new file mode 100644 index 000000000..da568f719 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/remove-user-from-group.rst @@ -0,0 +1,11 @@ +**To remove a user from an IAM group** + +The following ``remove-user-from-group`` command removes the user named ``Bob`` from the IAM group named ``Admins``. :: + + aws iam remove-user-from-group \ + --user-name Bob \ + --group-name Admins + +This command produces no output. + +For more information, see `Adding and removing users in an IAM user group `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/reset-service-specific-credential.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/reset-service-specific-credential.rst new file mode 100644 index 000000000..d7f1471de --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/reset-service-specific-credential.rst @@ -0,0 +1,44 @@ +**Example 1: Reset the password for a service-specific credential attached to the user making the request** + +The following ``reset-service-specific-credential`` example generates a new cryptographically strong password for the specified service-specific credential attached to the user making the request. :: + + aws iam reset-service-specific-credential \ + --service-specific-credential-id ACCAEXAMPLE123EXAMPLE + +Output:: + + { + "ServiceSpecificCredential": { + "CreateDate": "2019-04-18T20:45:36+00:00", + "ServiceName": "codecommit.amazonaws.com", + "ServiceUserName": "sofia-at-123456789012", + "ServicePassword": "+oaFsNk7tLco+C/obP9GhhcOzGcKOayTmE3LnAmAmH4=", + "ServiceSpecificCredentialId": "ACCAEXAMPLE123EXAMPLE", + "UserName": "sofia", + "Status": "Active" + } + } + +**Example 2: Reset the password for a service-specific credential attached to a specified user** + +The following ``reset-service-specific-credential`` example generates a new cryptographically strong password for a service-specific credential attached to the specified user. :: + + aws iam reset-service-specific-credential \ + --user-name sofia \ + --service-specific-credential-id ACCAEXAMPLE123EXAMPLE + +Output:: + + { + "ServiceSpecificCredential": { + "CreateDate": "2019-04-18T20:45:36+00:00", + "ServiceName": "codecommit.amazonaws.com", + "ServiceUserName": "sofia-at-123456789012", + "ServicePassword": "+oaFsNk7tLco+C/obP9GhhcOzGcKOayTmE3LnAmAmH4=", + "ServiceSpecificCredentialId": "ACCAEXAMPLE123EXAMPLE", + "UserName": "sofia", + "Status": "Active" + } + } + +For more information, see `Create Git credentials for HTTPS connections to CodeCommit `__ in the *AWS CodeCommit User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/resync-mfa-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/resync-mfa-device.rst new file mode 100644 index 000000000..182c652a5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/resync-mfa-device.rst @@ -0,0 +1,13 @@ +**To synchronize an MFA device** + +The following ``resync-mfa-device`` example synchronizes the MFA device that is associated with the IAM user ``Bob`` and whose ARN is ``arn:aws:iam::123456789012:mfa/BobsMFADevice`` with an authenticator program that provided the two authentication codes. :: + + aws iam resync-mfa-device \ + --user-name Bob \ + --serial-number arn:aws:iam::210987654321:mfa/BobsMFADevice \ + --authentication-code1 123456 \ + --authentication-code2 987654 + +This command produces no output. + +For more information, see `Using multi-factor authentication (MFA) in AWS `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/set-default-policy-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/set-default-policy-version.rst new file mode 100644 index 000000000..fd8268690 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/set-default-policy-version.rst @@ -0,0 +1,9 @@ +**To set the specified version of the specified policy as the policy's default version.** + +This example sets the ``v2`` version of the policy whose ARN is ``arn:aws:iam::123456789012:policy/MyPolicy`` as the default active version. :: + + aws iam set-default-policy-version \ + --policy-arn arn:aws:iam::123456789012:policy/MyPolicy \ + --version-id v2 + +For more information, see `Policies and permissions in IAM `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/set-security-token-service-preferences.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/set-security-token-service-preferences.rst new file mode 100755 index 000000000..36ad40b92 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/set-security-token-service-preferences.rst @@ -0,0 +1,10 @@ +**To set the global endpoint token version** + +The following ``set-security-token-service-preferences`` example configures Amazon STS to use version 2 tokens when you authenticate against the global endpoint. :: + + aws iam set-security-token-service-preferences \ + --global-endpoint-token-version v2Token + +This command produces no output. + +For more information, see `Managing AWS STS in an AWS Region `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/simulate-custom-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/simulate-custom-policy.rst new file mode 100755 index 000000000..bc1ce447e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/simulate-custom-policy.rst @@ -0,0 +1,60 @@ +**Example 1: To simulate the effects of all IAM policies associated with an IAM user or role** + +The following ``simulate-custom-policy`` shows how to provide both the policy and define variable values and simulate an API call to see if it is allowed or denied. The following example shows a policy that enables database access only after a specified date and time. The simulation succeeds because the simulated actions and the specified ``aws:CurrentTime`` variable all match the requirements of the policy. :: + + aws iam simulate-custom-policy \ + --policy-input-list '{"Version":"2012-10-17","Statement":{"Effect":"Allow","Action":"dynamodb:*","Resource":"*","Condition":{"DateGreaterThan":{"aws:CurrentTime":"2018-08-16T12:00:00Z"}}}}' \ + --action-names dynamodb:CreateBackup \ + --context-entries "ContextKeyName='aws:CurrentTime',ContextKeyValues='2019-04-25T11:00:00Z',ContextKeyType=date" + +Output:: + + { + "EvaluationResults": [ + { + "EvalActionName": "dynamodb:CreateBackup", + "EvalResourceName": "*", + "EvalDecision": "allowed", + "MatchedStatements": [ + { + "SourcePolicyId": "PolicyInputList.1", + "StartPosition": { + "Line": 1, + "Column": 38 + }, + "EndPosition": { + "Line": 1, + "Column": 167 + } + } + ], + "MissingContextValues": [] + } + ] + } + + +**Example 2: To simulate a command that is prohibited by the policy** + +The following ``simulate-custom-policy`` example shows the results of simulating a command that is prohibited by the policy. In this example, the provided date is before that required by the policy's condition. :: + + aws iam simulate-custom-policy \ + --policy-input-list '{"Version":"2012-10-17","Statement":{"Effect":"Allow","Action":"dynamodb:*","Resource":"*","Condition":{"DateGreaterThan":{"aws:CurrentTime":"2018-08-16T12:00:00Z"}}}}' \ + --action-names dynamodb:CreateBackup \ + --context-entries "ContextKeyName='aws:CurrentTime',ContextKeyValues='2014-04-25T11:00:00Z',ContextKeyType=date" + +Output:: + + { + "EvaluationResults": [ + { + "EvalActionName": "dynamodb:CreateBackup", + "EvalResourceName": "*", + "EvalDecision": "implicitDeny", + "MatchedStatements": [], + "MissingContextValues": [] + } + ] + } + +For more information, see `Testing IAM policies with the IAM policy simulator `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/simulate-principal-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/simulate-principal-policy.rst new file mode 100755 index 000000000..79ab72977 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/simulate-principal-policy.rst @@ -0,0 +1,58 @@ +**Example 1: To simulate the effects of an arbitrary IAM policy** + +The following ``simulate-principal-policy`` shows how to simulate a user calling an API action and determining whether the policies associated with that user allow or deny the action. In the following example, the user has a policy that allows only the ``codecommit:ListRepositories`` action. :: + + aws iam simulate-principal-policy \ + --policy-source-arn arn:aws:iam::123456789012:user/alejandro \ + --action-names codecommit:ListRepositories + +Output:: + + { + "EvaluationResults": [ + { + "EvalActionName": "codecommit:ListRepositories", + "EvalResourceName": "*", + "EvalDecision": "allowed", + "MatchedStatements": [ + { + "SourcePolicyId": "Grant-Access-To-CodeCommit-ListRepo", + "StartPosition": { + "Line": 3, + "Column": 19 + }, + "EndPosition": { + "Line": 9, + "Column": 10 + } + } + ], + "MissingContextValues": [] + } + ] + } + +**Example 2: To simulate the effects of a prohibited command** + +The following ``simulate-custom-policy`` example shows the results of simulating a command that is prohibited by one of the user's policies. In the following example, the user has a policy that permits access to a DynamoDB database only after a certain date and time. The simulation has the user attempting to access the database with an ``aws:CurrentTime`` value that is earlier than the policy's condition permits. :: + + aws iam simulate-principal-policy \ + --policy-source-arn arn:aws:iam::123456789012:user/alejandro \ + --action-names dynamodb:CreateBackup \ + --context-entries "ContextKeyName='aws:CurrentTime',ContextKeyValues='2018-04-25T11:00:00Z',ContextKeyType=date" + +Output:: + + { + "EvaluationResults": [ + { + "EvalActionName": "dynamodb:CreateBackup", + "EvalResourceName": "*", + "EvalDecision": "implicitDeny", + "MatchedStatements": [], + "MissingContextValues": [] + } + ] + } + +For more information, see `Testing IAM policies with the IAM policy simulator `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-instance-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-instance-profile.rst new file mode 100644 index 000000000..6d636a63a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-instance-profile.rst @@ -0,0 +1,11 @@ +**To add a tag to an instance profile** + +The following ``tag-instance-profile`` command adds a tag with a Department name to the specified instance profile. :: + + aws iam tag-instance-profile \ + --instance-profile-name deployment-role \ + --tags '[{"Key": "Department", "Value": "Accounting"}]' + +This command produces no output. + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-mfa-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-mfa-device.rst new file mode 100644 index 000000000..124a366dd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-mfa-device.rst @@ -0,0 +1,11 @@ +**To add a tag to an MFA device** + +The following ``tag-mfa-device`` command adds a tag with a Department name to the specified MFA device. :: + + aws iam tag-mfa-device \ + --serial-number arn:aws:iam::123456789012:mfa/alice \ + --tags '[{"Key": "Department", "Value": "Accounting"}]' + +This command produces no output. + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-open-id-connect-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-open-id-connect-provider.rst new file mode 100644 index 000000000..e535a16fd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-open-id-connect-provider.rst @@ -0,0 +1,11 @@ +**To add a tag to an OpenID Connect (OIDC)-compatible identity provider** + +The following ``tag-open-id-connect-provider`` command adds a tag with a Department name to the specified OIDC identity provider. :: + + aws iam tag-open-id-connect-provider \ + --open-id-connect-provider-arn arn:aws:iam::123456789012:oidc-provider/server.example.com \ + --tags '[{"Key": "Department", "Value": "Accounting"}]' + +This command produces no output. + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-policy.rst new file mode 100644 index 000000000..8080c2d30 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-policy.rst @@ -0,0 +1,11 @@ +**To add a tag to a customer managed policy** + +The following ``tag-policy`` command adds a tag with a Department name to the specified customer managed policy. :: + + aws iam tag-policy \ + --policy-arn arn:aws:iam::123456789012:policy/billing-access \ + --tags '[{"Key": "Department", "Value": "Accounting"}]' + +This command produces no output. + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-role.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-role.rst new file mode 100644 index 000000000..d2767d2db --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-role.rst @@ -0,0 +1,10 @@ +**To add a tag to a role** + +The following ``tag-role`` command adds a tag with a Department name to the specified role. :: + + aws iam tag-role --role-name my-role \ + --tags '{"Key": "Department", "Value": "Accounting"}' + +This command produces no output. + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-saml-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-saml-provider.rst new file mode 100644 index 000000000..9be65b1d5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-saml-provider.rst @@ -0,0 +1,11 @@ +**To add a tag to a SAML provider** + +The following ``tag-saml-provider`` command adds a tag with a Department name to the specified SAML provider. :: + + aws iam tag-saml-provider \ + --saml-provider-arn arn:aws:iam::123456789012:saml-provider/ADFS \ + --tags '[{"Key": "Department", "Value": "Accounting"}]' + +This command produces no output. + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-server-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-server-certificate.rst new file mode 100644 index 000000000..234c8d57d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-server-certificate.rst @@ -0,0 +1,11 @@ +**To add a tag to a server certificate** + +The following ``tag-saml-provider`` command adds a tag with a Department name to the specified sever certificate. :: + + aws iam tag-server-certificate \ + --server-certificate-name ExampleCertificate \ + --tags '[{"Key": "Department", "Value": "Accounting"}]' + +This command produces no output. + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-user.rst new file mode 100644 index 000000000..398398ab7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/tag-user.rst @@ -0,0 +1,11 @@ +**To add a tag to a user** + +The following ``tag-user`` command adds a tag with the associated Department to the specified user. :: + + aws iam tag-user \ + --user-name alice \ + --tags '{"Key": "Department", "Value": "Accounting"}' + +This command produces no output. + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-instance-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-instance-profile.rst new file mode 100644 index 000000000..8221bb9f6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-instance-profile.rst @@ -0,0 +1,11 @@ +**To remove a tag from an instance profile** + +The following ``untag-instance-profile`` command removes any tag with the key name 'Department' from the specified instance profile. :: + + aws iam untag-instance-profile \ + --instance-profile-name deployment-role \ + --tag-keys Department + +This command produces no output. + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-mfa-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-mfa-device.rst new file mode 100644 index 000000000..1ca852824 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-mfa-device.rst @@ -0,0 +1,11 @@ +**To remove a tag from an MFA device** + +The following ``untag-mfa-device`` command removes any tag with the key name 'Department' from the specified MFA device. :: + + aws iam untag-mfa-device \ + --serial-number arn:aws:iam::123456789012:mfa/alice \ + --tag-keys Department + +This command produces no output. + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-open-id-connect-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-open-id-connect-provider.rst new file mode 100644 index 000000000..11a990375 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-open-id-connect-provider.rst @@ -0,0 +1,11 @@ +**To remove a tag from an OIDC identity provider** + +The following ``untag-open-id-connect-provider`` command removes any tag with the key name 'Department' from the specified OIDC identity provider. :: + + aws iam untag-open-id-connect-provider \ + --open-id-connect-provider-arn arn:aws:iam::123456789012:oidc-provider/server.example.com \ + --tag-keys Department + +This command produces no output. + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-policy.rst new file mode 100644 index 000000000..80471ca27 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-policy.rst @@ -0,0 +1,11 @@ +**To remove a tag from a customer managed policy** + +The following ``untag-policy`` command removes any tag with the key name 'Department' from the specified customer managed policy. :: + + aws iam untag-policy \ + --policy-arn arn:aws:iam::452925170507:policy/billing-access \ + --tag-keys Department + +This command produces no output. + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-role.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-role.rst new file mode 100644 index 000000000..e71b6f34f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-role.rst @@ -0,0 +1,11 @@ +**To remove a tag from a role** + +The following ``untag-role`` command removes any tag with the key name 'Department' from the specified role. :: + + aws iam untag-role \ + --role-name my-role \ + --tag-keys Department + +This command produces no output. + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-saml-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-saml-provider.rst new file mode 100644 index 000000000..dea1ba3cb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-saml-provider.rst @@ -0,0 +1,11 @@ +**To remove a tag from a SAML provider** + +The following ``untag-saml-provider`` command removes any tag with the key name 'Department' from the specified instance profile. :: + + aws iam untag-saml-provider \ + --saml-provider-arn arn:aws:iam::123456789012:saml-provider/ADFS \ + --tag-keys Department + +This command produces no output. + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-server-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-server-certificate.rst new file mode 100644 index 000000000..a46e4bc9d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-server-certificate.rst @@ -0,0 +1,11 @@ +**To remove a tag from a server certificate** + +The following ``untag-server-certificate`` command removes any tag with the key name 'Department' from the specified server certificate. :: + + aws iam untag-server-certificate \ + --server-certificate-name ExampleCertificate \ + --tag-keys Department + +This command produces no output. + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-user.rst new file mode 100644 index 000000000..b0ed68d78 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/untag-user.rst @@ -0,0 +1,11 @@ +**To remove a tag from a user** + +The following ``untag-user`` command removes any tag with the key name 'Department' from the specified user. :: + + aws iam untag-user \ + --user-name alice \ + --tag-keys Department + +This command produces no output. + +For more information, see `Tagging IAM resources `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-access-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-access-key.rst new file mode 100644 index 000000000..f600c0494 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-access-key.rst @@ -0,0 +1,15 @@ +**To activate or deactivate an access key for an IAM user** + +The following ``update-access-key`` command deactivates the specified access key (access key ID and secret access key) +for the IAM user named ``Bob``. :: + + aws iam update-access-key \ + --access-key-id AKIAIOSFODNN7EXAMPLE \ + --status Inactive \ + --user-name Bob + +This command produces no output. + +Deactivating the key means that it cannot be used for programmatic access to AWS. However, the key is still available and can be reactivated. + +For more information, see `Managing access keys for IAM users `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-account-password-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-account-password-policy.rst new file mode 100644 index 000000000..c0adf8a3a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-account-password-policy.rst @@ -0,0 +1,15 @@ +**To set or change the current account password policy** + +The following ``update-account-password-policy`` command sets the password policy to require a minimum length of eight +characters and to require one or more numbers in the password. :: + + aws iam update-account-password-policy \ + --minimum-password-length 8 \ + --require-numbers + +This command produces no output. + +Changes to an account's password policy affect any new passwords that are created for IAM users in the account. Password +policy changes do not affect existing passwords. + +For more information, see `Setting an account password policy for IAM users `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-assume-role-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-assume-role-policy.rst new file mode 100644 index 000000000..a3a10457e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-assume-role-policy.rst @@ -0,0 +1,16 @@ +**To update the trust policy for an IAM role** + +The following ``update-assume-role-policy`` command updates the trust policy for the role named ``Test-Role``. :: + + aws iam update-assume-role-policy \ + --role-name Test-Role \ + --policy-document file://Test-Role-Trust-Policy.json + +This command produces no output. + +The trust policy is defined as a JSON document in the *Test-Role-Trust-Policy.json* file. (The file name and extension +do not have significance.) The trust policy must specify a principal. + +To update the permissions policy for a role, use the ``put-role-policy`` command. + +For more information, see `Creating IAM roles `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-group.rst new file mode 100644 index 000000000..8ca111028 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-group.rst @@ -0,0 +1,11 @@ +**To rename an IAM group** + +The following ``update-group`` command changes the name of the IAM group ``Test`` to ``Test-1``. :: + + aws iam update-group \ + --group-name Test \ + --new-group-name Test-1 + +This command produces no output. + +For more information, see `Renaming an IAM user group `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-login-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-login-profile.rst new file mode 100644 index 000000000..624ef5f70 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-login-profile.rst @@ -0,0 +1,18 @@ +**To update the password for an IAM user** + +The following ``update-login-profile`` command creates a new password for the IAM user named ``Bob``. :: + + aws iam update-login-profile \ + --user-name Bob \ + --password + +This command produces no output. + +To set a password policy for the account, use the ``update-account-password-policy`` command. If the new password +violates the account password policy, the command returns a ``PasswordPolicyViolation`` error. + +If the account password policy allows them to, IAM users can change their own passwords using the ``change-password`` command. + +Store the password in a secure place. If the password is lost, it cannot be recovered, and you must create a new one using the ``create-login-profile`` command. + +For more information, see `Managing passwords for IAM users `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-open-id-connect-provider-thumbprint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-open-id-connect-provider-thumbprint.rst new file mode 100644 index 000000000..caeb731a6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-open-id-connect-provider-thumbprint.rst @@ -0,0 +1,12 @@ +**To replace the existing list of server certificate thumbprints with a new list** + +This example updates the certificate thumbprint list for the OIDC provider whose ARN is +``arn:aws:iam::123456789012:oidc-provider/example.oidcprovider.com`` to use a new thumbprint. :: + + aws iam update-open-id-connect-provider-thumbprint \ + --open-id-connect-provider-arn arn:aws:iam::123456789012:oidc-provider/example.oidcprovider.com \ + --thumbprint-list 7359755EXAMPLEabc3060bce3EXAMPLEec4542a3 + +This command produces no output. + +For more information, see `Creating OpenID Connect (OIDC) identity providers `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-role-description.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-role-description.rst new file mode 100644 index 000000000..a18a9338d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-role-description.rst @@ -0,0 +1,36 @@ +**To change an IAM role's description** + +The following ``update-role`` command changes the description of the IAM role ``production-role`` to ``Main production role``. :: + + aws iam update-role-description \ + --role-name production-role \ + --description 'Main production role' + +Output:: + + { + "Role": { + "Path": "/", + "RoleName": "production-role", + "RoleId": "AROA1234567890EXAMPLE", + "Arn": "arn:aws:iam::123456789012:role/production-role", + "CreateDate": "2017-12-06T17:16:37+00:00", + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "AWS": "arn:aws:iam::123456789012:root" + }, + "Action": "sts:AssumeRole", + "Condition": {} + } + ] + }, + "Description": "Main production role" + } + } + +For more information, see `Modifying a role `__ in the *AWS IAM User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-role.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-role.rst new file mode 100644 index 000000000..e28cae8fc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-role.rst @@ -0,0 +1,12 @@ +**To change an IAM role's description or session duration** + +The following ``update-role`` command changes the description of the IAM role ``production-role`` to ``Main production role`` and sets the maximum session duration to 12 hours. :: + + aws iam update-role \ + --role-name production-role \ + --description 'Main production role' \ + --max-session-duration 43200 + +This command produces no output. + +For more information, see `Modifying a role `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-saml-provider.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-saml-provider.rst new file mode 100644 index 000000000..65b5fdd89 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-saml-provider.rst @@ -0,0 +1,15 @@ +**To update the metadata document for an existing SAML provider** + +This example updates the SAML provider in IAM whose ARN is ``arn:aws:iam::123456789012:saml-provider/SAMLADFS`` with a new SAML metadata document from the file ``SAMLMetaData.xml``. :: + + aws iam update-saml-provider \ + --saml-metadata-document file://SAMLMetaData.xml \ + --saml-provider-arn arn:aws:iam::123456789012:saml-provider/SAMLADFS + +Output:: + + { + "SAMLProviderArn": "arn:aws:iam::123456789012:saml-provider/SAMLADFS" + } + +For more information, see `Creating IAM SAML identity providers `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-server-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-server-certificate.rst new file mode 100644 index 000000000..e0a1ca1f6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-server-certificate.rst @@ -0,0 +1,12 @@ +**To change the path or name of a server certificate in your AWS account** + +The following ``update-server-certificate`` command changes the name of the certificate from ``myServerCertificate`` to ``myUpdatedServerCertificate``. It also changes the path to ``/cloudfront/`` so that it can be accessed by the Amazon CloudFront service. This command produces no output. You can see the results of the update by running the ``list-server-certificates`` command. :: + + aws-iam update-server-certificate \ + --server-certificate-name myServerCertificate \ + --new-server-certificate-name myUpdatedServerCertificate \ + --new-path /cloudfront/ + +This command produces no output. + +For more information, see `Managing server certificates in IAM `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-service-specific-credential.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-service-specific-credential.rst new file mode 100644 index 000000000..6ee8c5b1c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-service-specific-credential.rst @@ -0,0 +1,22 @@ +**Example 1: To update the status of the requesting user's service-specific credential** + +The following ``update-service-specific-credential`` example changes the status for the specified credential for the user making the request to ``Inactive``. :: + + aws iam update-service-specific-credential \ + --service-specific-credential-id ACCAEXAMPLE123EXAMPLE \ + --status Inactive + +This command produces no output. + +**Example 2: To update the status of a specified user's service-specific credential** + +The following ``update-service-specific-credential`` example changes the status for the credential of the specified user to Inactive. :: + + aws iam update-service-specific-credential \ + --user-name sofia \ + --service-specific-credential-id ACCAEXAMPLE123EXAMPLE \ + --status Inactive + +This command produces no output. + +For more information, see `Create Git Credentials for HTTPS Connections to CodeCommit `__ in the *AWS CodeCommit User Guide* diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-signing-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-signing-certificate.rst new file mode 100644 index 000000000..f4e30c772 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-signing-certificate.rst @@ -0,0 +1,12 @@ +**To activate or deactivate a signing certificate for an IAM user** + +The following ``update-signing-certificate`` command deactivates the specified signing certificate for the IAM user named ``Bob``. :: + + aws iam update-signing-certificate \ + --certificate-id TA7SMP42TDN5Z26OBPJE7EXAMPLE \ + --status Inactive \ + --user-name Bob + +To get the ID for a signing certificate, use the ``list-signing-certificates`` command. + +For more information, see `Manage signing certificates `__ in the *Amazon EC2 User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-ssh-public-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-ssh-public-key.rst new file mode 100644 index 000000000..c9421593e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-ssh-public-key.rst @@ -0,0 +1,12 @@ +**To change the status of an SSH public key** + +The following ``update-ssh-public-key`` command changes the status of the specified public key to ``Inactive``. :: + + aws iam update-ssh-public-key \ + --user-name sofia \ + --ssh-public-key-id APKA1234567890EXAMPLE \ + --status Inactive + +This command produces no output. + +For more information, see `Use SSH keys and SSH with CodeCommit `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-user.rst new file mode 100644 index 000000000..2e3dbc775 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/update-user.rst @@ -0,0 +1,11 @@ +**To change an IAM user's name** + +The following ``update-user`` command changes the name of the IAM user ``Bob`` to ``Robert``. :: + + aws iam update-user \ + --user-name Bob \ + --new-user-name Robert + +This command produces no output. + +For more information, see `Renaming an IAM user group `__ in the *AWS IAM User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/upload-server-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/upload-server-certificate.rst new file mode 100644 index 000000000..b0c8de7bb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/upload-server-certificate.rst @@ -0,0 +1,27 @@ +**To upload a server certificate to your AWS account** + +The following **upload-server-certificate** command uploads a server certificate to your AWS account. In this example, the certificate is in the file ``public_key_cert_file.pem``, the associated private key is in the file ``my_private_key.pem``, and the the certificate chain provided by the certificate authority (CA) is in the ``my_certificate_chain_file.pem`` file. When the file has finished uploading, it is available under the name *myServerCertificate*. Parameters that begin with ``file://`` tells the command to read the contents of the file and use that as the parameter value instead of the file name itself. :: + + aws iam upload-server-certificate \ + --server-certificate-name myServerCertificate \ + --certificate-body file://public_key_cert_file.pem \ + --private-key file://my_private_key.pem \ + --certificate-chain file://my_certificate_chain_file.pem + +Output:: + + { + "ServerCertificateMetadata": { + "Path": "/", + "ServerCertificateName": "myServerCertificate", + "ServerCertificateId": "ASCAEXAMPLE123EXAMPLE", + "Arn": "arn:aws:iam::1234567989012:server-certificate/myServerCertificate", + "UploadDate": "2019-04-22T21:13:44+00:00", + "Expiration": "2019-10-15T22:23:16+00:00" + } + } + +For more information, see `Creating, Uploading, and Deleting Server Certificates`__ in the *Using IAM* guide. + +.. _`Creating, Uploading, and Deleting Server Certificates`: http://docs.aws.amazon.com/IAM/latest/UserGuide/InstallCert.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/upload-signing-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/upload-signing-certificate.rst new file mode 100644 index 000000000..96586751c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/upload-signing-certificate.rst @@ -0,0 +1,26 @@ +**To upload a signing certificate for an IAM user** + +The following ``upload-signing-certificate`` command uploads a signing certificate for the IAM user named ``Bob``. :: + + aws iam upload-signing-certificate \ + --user-name Bob \ + --certificate-body file://certificate.pem + +Output:: + + { + "Certificate": { + "UserName": "Bob", + "Status": "Active", + "CertificateBody": "-----BEGIN CERTIFICATE----------END CERTIFICATE-----", + "CertificateId": "TA7SMP42TDN5Z26OBPJE7EXAMPLE", + "UploadDate": "2013-06-06T21:40:08.121Z" + } + } + +The certificate is in a file named *certificate.pem* in PEM format. + +For more information, see `Creating and Uploading a User Signing Certificate`__ in the *Using IAM* guide. + +.. _`Creating and Uploading a User Signing Certificate`: http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_UploadCertificate.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/upload-ssh-public-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/upload-ssh-public-key.rst new file mode 100644 index 000000000..409c134a9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/upload-ssh-public-key.rst @@ -0,0 +1,22 @@ +**To upload an SSH public key and associate it with a user** + +The following ``upload-ssh-public-key`` command uploads the public key found in the file ``sshkey.pub`` and attaches it to the user ``sofia``. :: + + aws iam upload-ssh-public-key \ + --user-name sofia \ + --ssh-public-key-body file://sshkey.pub + +Output:: + + { + "SSHPublicKey": { + "UserName": "sofia", + "SSHPublicKeyId": "APKA1234567890EXAMPLE", + "Fingerprint": "12:34:56:78:90:ab:cd:ef:12:34:56:78:90:ab:cd:ef", + "SSHPublicKeyBody": "ssh-rsa <>", + "Status": "Active", + "UploadDate": "2019-04-18T17:04:49+00:00" + } + } + +For more information about how to generate keys in a format suitable for this command, see `SSH and Linux, macOS, or Unix: Set up the public and private keys for Git and CodeCommit `__ or `SSH and Windows: Set up the public and private keys for Git and CodeCommit `__ in the *AWS CodeCommit User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/wait/instance-profile-exists.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/wait/instance-profile-exists.rst new file mode 100644 index 000000000..56652c10e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/wait/instance-profile-exists.rst @@ -0,0 +1,8 @@ +**To pause running until the specified instance profile exists** + +The following ``wait instance-profile-exists`` command pauses and continues only after it can confirm that the specified instance profile exists. :: + + aws iam wait instance-profile-exists \ + --instance-profile-name WebServer + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/wait/policy-exists.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/wait/policy-exists.rst new file mode 100644 index 000000000..8645b8c66 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/wait/policy-exists.rst @@ -0,0 +1,8 @@ +**To pause running until the specified role exists** + +The following ``wait policy-exists`` command pauses and continues only after it can confirm that the specified policy exists. :: + + aws iam wait policy-exists \ + --policy-arn arn:aws:iam::123456789012:policy/MyPolicy + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/wait/role-exists.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/wait/role-exists.rst new file mode 100644 index 000000000..1ce9039c6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/wait/role-exists.rst @@ -0,0 +1,8 @@ +**To pause running until the specified role exists** + +The following ``wait role-exists`` command pauses and continues only after it can confirm that the specified role exists. :: + + aws iam wait role-exists \ + --role-name MyRole + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/wait/user-exists.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/wait/user-exists.rst new file mode 100644 index 000000000..cec5f2f75 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iam/wait/user-exists.rst @@ -0,0 +1,8 @@ +**To pause running until the specified user exists** + +The following ``wait user-exists`` command pauses and continues only after it can confirm that the specified user exists. :: + + aws iam wait user-exists \ + --user-name marcia + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/create-component.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/create-component.rst new file mode 100644 index 000000000..e778ce986 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/create-component.rst @@ -0,0 +1,27 @@ +**To create a component** + +The following ``create-component`` example creates a component that uses a JSON document file and references a component document in YAML format that is uploaded to an Amazon S3 bucket. :: + + aws imagebuilder create-component \ + --cli-input-json file://create-component.json + +Contents of ``create-component.json``:: + + { + "name": "MyExampleComponent", + "semanticVersion": "2019.12.02", + "description": "An example component that builds, validates and tests an image", + "changeDescription": "Initial version.", + "platform": "Windows", + "uri": "s3://s3-bucket-name/s3-bucket-path/component.yaml" + } + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "clientToken": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "componentBuildVersionArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/examplecomponent/2019.12.02/1" + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/create-distribution-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/create-distribution-configuration.rst new file mode 100644 index 000000000..5b1fdb605 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/create-distribution-configuration.rst @@ -0,0 +1,54 @@ +**To create a distribution configuration** + +The following ``create-distribution-configuration`` example creates a distribution configuration using a JSON file. :: + + aws imagebuilder create-distribution-configuration \ + --cli-input-json file:/create-distribution-configuration.json + +Contents of ``create-distribution-configuration.json``:: + + { + "name": "MyExampleDistribution", + "description": "Copies AMI to eu-west-1", + "distributions": [ + { + "region": "us-west-2", + "amiDistributionConfiguration": { + "name": "Name {{imagebuilder:buildDate}}", + "description": "An example image name with parameter references", + "amiTags": { + "KeyName": "{{ssm:parameter_name}}" + }, + "launchPermission": { + "userIds": [ + "123456789012" + ] + } + } + }, + { + "region": "eu-west-1", + "amiDistributionConfiguration": { + "name": "My {{imagebuilder:buildVersion}} image {{imagebuilder:buildDate}}", + "amiTags": { + "KeyName": "Value" + }, + "launchPermission": { + "userIds": [ + "123456789012" + ] + } + } + } + ] + } + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "clientToken": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "distributionConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/myexampledistribution" + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/create-image-pipeline.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/create-image-pipeline.rst new file mode 100644 index 000000000..c763528a9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/create-image-pipeline.rst @@ -0,0 +1,35 @@ +**To create an image pipeline** + +The following ``create-image-pipeline`` example creates an image pipeline using a JSON file. :: + + aws imagebuilder create-image-pipeline \ + --cli-input-json file://create-image-pipeline.json + +Contents of ``create-image-pipeline.json``:: + + { + "name": "MyWindows2016Pipeline", + "description": "Builds Windows 2016 Images", + "imageRecipeArn": "arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/mybasicrecipe/2019.12.03", + "infrastructureConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:infrastructure-configuration/myexampleinfrastructure", + "distributionConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/myexampledistribution", + "imageTestsConfiguration": { + "imageTestsEnabled": true, + "timeoutMinutes": 60 + }, + "schedule": { + "scheduleExpression": "cron(0 0 * * SUN)", + "pipelineExecutionStartCondition": "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" + }, + "status": "ENABLED" + } + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "clientToken": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "imagePipelineArn": "arn:aws:imagebuilder:us-west-2:123456789012:image-pipeline/mywindows2016pipeline" + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/create-image-recipe.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/create-image-recipe.rst new file mode 100644 index 000000000..253958e69 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/create-image-recipe.rst @@ -0,0 +1,34 @@ +**To create a recipe** + +The following ``create-image-recipe`` example creates an image recipe using a JSON file. Components are installed in the order in which they are specified. :: + + aws imagebuilder create-image-recipe \ + --cli-input-json file://create-image-recipe.json + +Contents of ``create-image-recipe.json``:: + + { + "name": "MyBasicRecipe", + "description": "This example image recipe creates a Windows 2016 image.", + "semanticVersion": "2019.12.03", + "components": + [ + { + "componentArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/myexamplecomponent/2019.12.02/1" + }, + { + "componentArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/myimportedcomponent/1.0.0/1" + } + ], + "parentImage": "arn:aws:imagebuilder:us-west-2:aws:image/windows-server-2016-english-full-base-x86/xxxx.x.x" + } + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "clientToken": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "imageRecipeArn": "arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/mybasicrecipe/2019.12.03" + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/create-image.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/create-image.rst new file mode 100644 index 000000000..a35df6649 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/create-image.rst @@ -0,0 +1,18 @@ +**To create an image** + +The following ``create-image`` example creates an image. :: + + aws imagebuilder create-image \ + --image-recipe-arn arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/mybasicrecipe/2019.12.03 \ + --infrastructure-configuration-arn arn:aws:imagebuilder:us-west-2:123456789012:infrastructure-configuration/myexampleinfrastructure + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "clientToken": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "imageBuildVersionArn": "arn:aws:imagebuilder:us-west-2:123456789012:image/mybasicrecipe/2019.12.03/1" + } + + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/create-infrastructure-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/create-infrastructure-configuration.rst new file mode 100644 index 000000000..332af7d01 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/create-infrastructure-configuration.rst @@ -0,0 +1,40 @@ +**To create an infrastructure configuration** + +The following ``create-infrastructure-configuration`` example creates an infrastructure configuration using a JSON file. :: + + aws imagebuilder create-infrastructure-configuration \ + --cli-input-json file://create-infrastructure-configuration.json + +Contents of ``create-infrastructure-configuration.json``:: + + { + "name": "MyExampleInfrastructure", + "description": "An example that will retain instances of failed builds", + "instanceTypes": [ + "m5.large", "m5.xlarge" + ], + "instanceProfileName": "EC2InstanceProfileForImageBuilder", + "securityGroupIds": [ + "sg-a1b2c3d4" + ], + "subnetId": "subnet-a1b2c3d4", + "logging": { + "s3Logs": { + "s3BucketName": "bucket-name", + "s3KeyPrefix": "bucket-path" + } + }, + "keyPair": "key-pair-name", + "terminateInstanceOnFailure": false, + "snsTopicArn": "arn:aws:sns:us-west-2:123456789012:sns-topic-name" + } + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "clientToken": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "infrastructureConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:infrastructure-configuration/myexampleinfrastructure" + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/delete-component.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/delete-component.rst new file mode 100644 index 000000000..31b5d1179 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/delete-component.rst @@ -0,0 +1,15 @@ +**To delete a component** + +The following ``delete-component`` example deletes a component build version by specifying its ARN. :: + + aws imagebuilder delete-component \ + --component-build-version-arn arn:aws:imagebuilder:us-west-2:123456789012:component/myexamplecomponent/2019.12.02/1 + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "componentBuildVersionArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/myexamplecomponent/2019.12.02/1" + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/delete-image-pipeline.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/delete-image-pipeline.rst new file mode 100644 index 000000000..de94b11bb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/delete-image-pipeline.rst @@ -0,0 +1,15 @@ +**To delete an image pipeline** + +The following ``delete-image-pipeline`` example deletes an image pipeline by specifying its ARN. :: + + aws imagebuilder delete-image-pipeline \ + --image-pipeline-arn arn:aws:imagebuilder:us-west-2:123456789012:image-pipeline/my-example-pipeline + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "imagePipelineArn": "arn:aws:imagebuilder:us-west-2:123456789012:image-pipeline/mywindows2016pipeline" + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/delete-image-recipe.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/delete-image-recipe.rst new file mode 100644 index 000000000..114a88724 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/delete-image-recipe.rst @@ -0,0 +1,15 @@ +**To delete an image recipe** + +The following ``delete-image-recipe`` example deletes an image recipe by specifying its ARN. :: + + aws imagebuilder delete-image-recipe \ + --image-recipe-arn arn:aws:imagebuilder:us-east-1:123456789012:image-recipe/mybasicrecipe/2019.12.03 + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "imageRecipeArn": "arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/mybasicrecipe/2019.12.03" + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/delete-image.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/delete-image.rst new file mode 100644 index 000000000..9bcd8c7e7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/delete-image.rst @@ -0,0 +1,15 @@ +**To delete an image** + +The following ``delete-image`` example deletes an image build version by specifying its ARN. :: + + aws imagebuilder delete-image \ + --image-build-version-arn arn:aws:imagebuilder:us-west-2:123456789012:image/my-example-image/2019.12.02/1 + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "imageBuildVersionArn": "arn:aws:imagebuilder:us-west-2:123456789012:image/mybasicrecipe/2019.12.03/1" + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/delete-infrastructure-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/delete-infrastructure-configuration.rst new file mode 100644 index 000000000..305dfad2a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/delete-infrastructure-configuration.rst @@ -0,0 +1,15 @@ +**To delete an infrastructure configuration** + +The following ``delete-infrastructure-configuration`` example deletes an image pipeline by specifying its ARN. :: + + aws imagebuilder delete-infrastructure-configuration \ + --infrastructure-configuration-arn arn:aws:imagebuilder:us-east-1:123456789012:infrastructure-configuration/myexampleinfrastructure + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "infrastructureConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:infrastructure-configuration/myexampleinfrastructure" + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-component-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-component-policy.rst new file mode 100644 index 000000000..39e675a47 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-component-policy.rst @@ -0,0 +1,14 @@ +**To get component policy details** + +The following ``get-component-policy`` example lists the details of a component policy by specifying its ARN. :: + + aws imagebuilder get-component-policy \ + --component-arn arn:aws:imagebuilder:us-west-2:123456789012:component/my-example-component/2019.12.03/1 + +Output:: + + { + "Policy": "{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "123456789012" ] }, "Action": [ "imagebuilder:GetComponent", "imagebuilder:ListComponents" ], "Resource": [ "arn:aws:imagebuilder:us-west-2:123456789012:component/my-example-component/2019.12.03/1" ] } ] }" + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI` `__ in the *EC2 Image Builder Users Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-component.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-component.rst new file mode 100644 index 000000000..478311156 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-component.rst @@ -0,0 +1,26 @@ +**To get component details** + +The following ``get-component`` example lists the details of a component by specifying its ARN. :: + + aws imagebuilder get-component \ + --component-build-version-arn arn:aws:imagebuilder:us-west-2:123456789012:component/component-name/1.0.0/1 + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "component": { + "arn": "arn:aws:imagebuilder:us-west-2:123456789012:component/component-name/1.0.0/1", + "name": "component-name", + "version": "1.0.0", + "type": "TEST", + "platform": "Linux", + "owner": "123456789012", + "data": "name: HelloWorldTestingDocument\ndescription: This is hello world testing document.\nschemaVersion: 1.0\n\nphases:\n - name: test\n steps:\n - name: HelloWorldStep\n action: ExecuteBash\n inputs:\n commands:\n - echo \"Hello World! Test.\"\n", + "encrypted": true, + "dateCreated": "2020-01-27T20:43:30.306Z", + "tags": {} + } + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-distribution-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-distribution-configuration.rst new file mode 100644 index 000000000..f4ba4e5cb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-distribution-configuration.rst @@ -0,0 +1,52 @@ +**To get the details of a distribution configuration** + +The following ``get-distribution-configuration`` example displays the details of a distribution configuration by specifying its ARN. :: + + aws imagebuilder get-distribution-configuration \ + --distribution-configuration-arn arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/myexampledistribution + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "distributionConfiguration": { + "arn": "arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/myexampledistribution", + "name": "MyExampleDistribution", + "description": "Copies AMI to eu-west-1 and exports to S3", + "distributions": [ + { + "region": "us-west-2", + "amiDistributionConfiguration": { + "name": "Name {{imagebuilder:buildDate}}", + "description": "An example image name with parameter references", + "amiTags": { + "KeyName": "{{ssm:parameter_name}}" + }, + "launchPermission": { + "userIds": [ + "123456789012" + ] + } + } + }, + { + "region": "eu-west-1", + "amiDistributionConfiguration": { + "name": "My {{imagebuilder:buildVersion}} image {{imagebuilder:buildDate}}", + "amiTags": { + "KeyName": "Value" + }, + "launchPermission": { + "userIds": [ + "123456789012" + ] + } + } + } + ], + "dateCreated": "2020-02-19T18:40:10.529Z", + "tags": {} + } + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-image-pipeline.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-image-pipeline.rst new file mode 100644 index 000000000..89f367a3e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-image-pipeline.rst @@ -0,0 +1,35 @@ +**To get image pipeline details** + +The following ``get-image-pipeline`` example lists the details of an image pipeline by specifying its ARN. :: + + aws imagebuilder get-image-pipeline \ + --image-pipeline-arn arn:aws:imagebuilder:us-west-2:123456789012:image-pipeline/mywindows2016pipeline + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "imagePipeline": { + "arn": "arn:aws:imagebuilder:us-west-2:123456789012:image-pipeline/mywindows2016pipeline", + "name": "MyWindows2016Pipeline", + "description": "Builds Windows 2016 Images", + "platform": "Windows", + "imageRecipeArn": "arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/mybasicrecipe/2019.12.03", + "infrastructureConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:infrastructure-configuration/myexampleinfrastructure", + "distributionConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/myexampledistribution", + "imageTestsConfiguration": { + "imageTestsEnabled": true, + "timeoutMinutes": 60 + }, + "schedule": { + "scheduleExpression": "cron(0 0 * * SUN)", + "pipelineExecutionStartCondition": "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" + }, + "status": "ENABLED", + "dateCreated": "2020-02-19T19:04:01.253Z", + "dateUpdated": "2020-02-19T19:04:01.253Z", + "tags": {} + } + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-image-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-image-policy.rst new file mode 100644 index 000000000..50e868394 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-image-policy.rst @@ -0,0 +1,14 @@ +**To get image policy details** + +The following ``get-image-policy`` example lists the details of an image policy by specifying its ARN. :: + + aws imagebuilder get-image-policy \ + --image-arn arn:aws:imagebuilder:us-west-2:123456789012:image/my-example-image/2019.12.03/1 + +Output:: + + { + "Policy": "{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "123456789012" ] }, "Action": [ "imagebuilder:GetImage", "imagebuilder:ListImages" ], "Resource": [ "arn:aws:imagebuilder:us-west-2:123456789012:image/my-example-image/2019.12.03/1" ] } ] }" + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-image-recipe-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-image-recipe-policy.rst new file mode 100644 index 000000000..cca344330 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-image-recipe-policy.rst @@ -0,0 +1,14 @@ +**To get image recipe policy details** + +The following ``get-image-recipe-policy`` example lists the details of an image recipe policy by specifying its ARN. :: + + aws imagebuilder get-image-recipe-policy \ + --image-recipe-arn arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/my-example-image-recipe/2019.12.03/1 + +Output:: + + { + "Policy": "{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "123456789012" ] }, "Action": [ "imagebuilder:GetImageRecipe", "imagebuilder:ListImageRecipes" ], "Resource": [ "arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/my-example-image-recipe/2019.12.03/1" ] } ] }" + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-image.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-image.rst new file mode 100644 index 000000000..c46611a8c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-image.rst @@ -0,0 +1,75 @@ +**To get image details** + +The following ``get-image`` example lists the details of an image by specifying its ARN. :: + + aws imagebuilder get-image \ + --image-build-version-arn arn:aws:imagebuilder:us-west-2:123456789012:image/mybasicrecipe/2019.12.03/1 + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "image": { + "arn": "arn:aws:imagebuilder:us-west-2:123456789012:image/mybasicrecipe/2019.12.03/1", + "name": "MyBasicRecipe", + "version": "2019.12.03/1", + "platform": "Windows", + "state": { + "status": "BUILDING" + }, + "imageRecipe": { + "arn": "arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/mybasicrecipe/2019.12.03", + "name": "MyBasicRecipe", + "description": "This example image recipe creates a Windows 2016 image.", + "platform": "Windows", + "version": "2019.12.03", + "components": [ + { + "componentArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/myexamplecomponent/2019.12.02/1" + }, + { + "componentArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/myimportedcomponent/1.0.0/1" + } + ], + "parentImage": "arn:aws:imagebuilder:us-west-2:aws:image/windows-server-2016-english-full-base-x86/2019.12.17/1", + "dateCreated": "2020-02-14T19:46:16.904Z", + "tags": {} + }, + "infrastructureConfiguration": { + "arn": "arn:aws:imagebuilder:us-west-2:123456789012:infrastructure-configuration/myexampleinfrastructure", + "name": "MyExampleInfrastructure", + "description": "An example that will retain instances of failed builds", + "instanceTypes": [ + "m5.large", + "m5.xlarge" + ], + "instanceProfileName": "EC2InstanceProfileForImageFactory", + "securityGroupIds": [ + "sg-a1b2c3d4" + ], + "subnetId": "subnet-a1b2c3d4", + "logging": { + "s3Logs": { + "s3BucketName": "bucket-name", + "s3KeyPrefix": "bucket-path" + } + }, + "keyPair": "Sam", + "terminateInstanceOnFailure": false, + "snsTopicArn": "arn:aws:sns:us-west-2:123456789012:sns-name", + "dateCreated": "2020-02-14T21:21:05.098Z", + "tags": {} + }, + "imageTestsConfiguration": { + "imageTestsEnabled": true, + "timeoutMinutes": 720 + }, + "dateCreated": "2020-02-14T23:14:13.597Z", + "outputResources": { + "amis": [] + }, + "tags": {} + } + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-infrastructure-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-infrastructure-configuration.rst new file mode 100644 index 000000000..bb5fb3787 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/get-infrastructure-configuration.rst @@ -0,0 +1,39 @@ +**To get infrastructure configuration details** + +The following ``get-infrastructure-configuration`` example lists the details of an infrastructure configuration by specifying its ARN. :: + + aws imagebuilder get-infrastructure-configuration \ + --infrastructure-configuration-arn arn:aws:imagebuilder:us-west-2:123456789012:infrastructure-configuration/myexampleinfrastructure + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "infrastructureConfiguration": { + "arn": "arn:aws:imagebuilder:us-west-2:123456789012:infrastructure-configuration/myexampleinfrastructure", + "name": "MyExampleInfrastructure", + "description": "An example that will retain instances of failed builds", + "instanceTypes": [ + "m5.large", + "m5.xlarge" + ], + "instanceProfileName": "EC2InstanceProfileForImageBuilder", + "securityGroupIds": [ + "sg-a48c95ef" + ], + "subnetId": "subnet-a48c95ef", + "logging": { + "s3Logs": { + "s3BucketName": "bucket-name", + "s3KeyPrefix": "bucket-path" + } + }, + "keyPair": "Name", + "terminateInstanceOnFailure": false, + "snsTopicArn": "arn:aws:sns:us-west-2:123456789012:sns-name", + "dateCreated": "2020-02-19T19:11:51.858Z", + "tags": {} + } + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/import-component.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/import-component.rst new file mode 100644 index 000000000..330494986 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/import-component.rst @@ -0,0 +1,29 @@ +**To import a component** + +The following ``import-component`` example imports a preexisting script using a JSON file. :: + + aws imagebuilder import-component \ + --cli-input-json file://import-component.json + +Contents of ``import-component.json``:: + + { + "name": "MyImportedComponent", + "semanticVersion": "1.0.0", + "description": "An example of how to import a component", + "changeDescription": "First commit message.", + "format": "SHELL", + "platform": "Windows", + "type": "BUILD", + "uri": "s3://s3-bucket-name/s3-bucket-path/component.yaml" + } + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "clientToken": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "componentBuildVersionArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/myimportedcomponent/1.0.0/1" + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-component-build-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-component-build-versions.rst new file mode 100644 index 000000000..3fd0ccbdc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-component-build-versions.rst @@ -0,0 +1,29 @@ +**To list component build versions** + +The following ``list-component-build-versions`` example lists the component build versions with a specific semantic version. :: + + aws imagebuilder list-component-build-versions --component-version-arn arn:aws:imagebuilder:us-west-2:123456789012:component/myexamplecomponent/2019.12.02 + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "componentSummaryList": [ + { + "arn": "arn:aws:imagebuilder:us-west-2:123456789012:component/myexamplecomponent/2019.12.02/1", + "name": "MyExampleComponent", + "version": "2019.12.02", + "platform": "Windows", + "type": "BUILD", + "owner": "123456789012", + "description": "An example component that builds, validates and tests an image", + "changeDescription": "Initial version.", + "dateCreated": "2020-02-19T18:53:45.940Z", + "tags": { + "KeyName": "KeyValue" + } + } + ] + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-components.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-components.rst new file mode 100644 index 000000000..757b75932 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-components.rst @@ -0,0 +1,24 @@ +**To list all of the component semantic versions** + +The following ``list-components`` example lists all of the component semantic versions to which you have access. You can optionally filter on whether to list components owned by you, by Amazon, or that have been shared with you by other accounts. :: + + aws imagebuilder list-components + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "componentVersionList": [ + { + "arn": "arn:aws:imagebuilder:us-west-2:123456789012:component/component-name/1.0.0", + "name": "component-name", + "version": "1.0.0", + "platform": "Linux", + "type": "TEST", + "owner": "123456789012", + "dateCreated": "2020-01-27T20:43:30.306Z" + } + ] + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-distribution-configurations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-distribution-configurations.rst new file mode 100644 index 000000000..e9b7672ab --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-distribution-configurations.rst @@ -0,0 +1,24 @@ +**To list distributions** + +The following ``list-distribution-configurations`` example lists all of your distributions. :: + + aws imagebuilder list-distribution-configurations + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "distributionConfigurationSummaryList": [ + { + "arn": "arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/myexampledistribution", + "name": "MyExampleDistribution", + "description": "Copies AMI to eu-west-1 and exports to S3", + "dateCreated": "2020-02-19T18:40:10.529Z", + "tags": { + "KeyName": "KeyValue" + } + } + ] + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-image-build-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-image-build-versions.rst new file mode 100644 index 000000000..8260d6ee5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-image-build-versions.rst @@ -0,0 +1,149 @@ +**To list image build versions** + +The following ``list-image-build-versions`` example lists all of the image build versions with a semantic version. :: + + aws imagebuilder list-image-build-versions \ + --image-version-arn arn:aws:imagebuilder:us-west-2:123456789012:image/mybasicrecipe/2019.12.03 + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "imageSummaryList": [ + { + "arn": "arn:aws:imagebuilder:us-west-2:123456789012:image/mybasicrecipe/2019.12.03/7", + "name": "MyBasicRecipe", + "version": "2019.12.03/7", + "platform": "Windows", + "state": { + "status": "FAILED", + "reason": "Can't start SSM Automation for arn arn:aws:imagebuilder:us-west-2:123456789012:image/mybasicrecipe/2019.12.03/7 during building. Parameter \"iamInstanceProfileName\" has a null value." + }, + "owner": "123456789012", + "dateCreated": "2020-02-19T18:56:11.511Z", + "outputResources": { + "amis": [] + }, + "tags": {} + }, + { + "arn": "arn:aws:imagebuilder:us-west-2:123456789012:image/mybasicrecipe/2019.12.03/6", + "name": "MyBasicRecipe", + "version": "2019.12.03/6", + "platform": "Windows", + "state": { + "status": "FAILED", + "reason": "An internal error has occurred." + }, + "owner": "123456789012", + "dateCreated": "2020-02-18T22:49:08.142Z", + "outputResources": { + "amis": [ + { + "region": "us-west-2", + "image": "ami-a1b2c3d4567890ab", + "name": "MyBasicRecipe 2020-02-18T22-49-38.704Z", + "description": "This example image recipe creates a Windows 2016 image." + }, + { + "region": "us-west-2", + "image": "ami-a1b2c3d4567890ab", + "name": "Name 2020-02-18T22-49-08.131Z", + "description": "Copies AMI to eu-west-2 and exports to S3" + }, + { + "region": "eu-west-2", + "image": "ami-a1b2c3d4567890ab", + "name": "My 6 image 2020-02-18T22-49-08.131Z", + "description": "Copies AMI to eu-west-2 and exports to S3" + } + ] + }, + "tags": {} + }, + { + "arn": "arn:aws:imagebuilder:us-west-2:123456789012:image/mybasicrecipe/2019.12.03/5", + "name": "MyBasicRecipe", + "version": "2019.12.03/5", + "platform": "Windows", + "state": { + "status": "AVAILABLE" + }, + "owner": "123456789012", + "dateCreated": "2020-02-18T16:51:48.403Z", + "outputResources": { + "amis": [ + { + "region": "us-west-2", + "image": "ami-a1b2c3d4567890ab", + "name": "MyBasicRecipe 2020-02-18T16-52-18.965Z", + "description": "This example image recipe creates a Windows 2016 image." + } + ] + }, + "tags": {} + }, + { + "arn": "arn:aws:imagebuilder:us-west-2:123456789012:image/mybasicrecipe/2019.12.03/4", + "name": "MyBasicRecipe", + "version": "2019.12.03/4", + "platform": "Windows", + "state": { + "status": "AVAILABLE" + }, + "owner": "123456789012", + "dateCreated": "2020-02-18T16:50:01.827Z", + "outputResources": { + "amis": [ + { + "region": "us-west-2", + "image": "ami-a1b2c3d4567890ab", + "name": "MyBasicRecipe 2020-02-18T16-50-32.280Z", + "description": "This example image recipe creates a Windows 2016 image." + } + ] + }, + "tags": {} + }, + { + "arn": "arn:aws:imagebuilder:us-west-2:123456789012:image/mybasicrecipe/2019.12.03/3", + "name": "MyBasicRecipe", + "version": "2019.12.03/3", + "platform": "Windows", + "state": { + "status": "AVAILABLE" + }, + "owner": "123456789012", + "dateCreated": "2020-02-14T23:14:13.597Z", + "outputResources": { + "amis": [ + { + "region": "us-west-2", + "image": "ami-a1b2c3d4567890ab", + "name": "MyBasicRecipe 2020-02-14T23-14-44.243Z", + "description": "This example image recipe creates a Windows 2016 image." + } + ] + }, + "tags": {} + }, + { + "arn": "arn:aws:imagebuilder:us-west-2:123456789012:image/mybasicrecipe/2019.12.03/2", + "name": "MyBasicRecipe", + "version": "2019.12.03/2", + "platform": "Windows", + "state": { + "status": "FAILED", + "reason": "SSM execution 'a1b2c3d4-5678-90ab-cdef-EXAMPLE11111' failed with status = 'Failed' and failure message = 'Step fails when it is verifying the command has completed. Command a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 returns unexpected invocation result: \n{Status=[Failed], ResponseCode=[1], Output=[\n----------ERROR-------\nfailed to run commands: exit status 1], OutputPayload=[{\"Status\":\"Failed\",\"ResponseCode\":1,\"Output\":\"\\n----------ERROR-------\\nfailed to run commands: exit status 1\",\"CommandId\":\"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111\"}], CommandId=[a1b2c3d4-5678-90ab-cdef-EXAMPLE11111]}. Please refer to Automation Service Troubleshooting Guide for more diagnosis details.'" + }, + "owner": "123456789012", + "dateCreated": "2020-02-14T22:57:42.593Z", + "outputResources": { + "amis": [] + }, + "tags": {} + } + ] + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-image-pipeline-images.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-image-pipeline-images.rst new file mode 100644 index 000000000..d94a9c55a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-image-pipeline-images.rst @@ -0,0 +1,56 @@ +**To list image pipeline pipeline images** + +The following ``list-image-pipeline-images`` example lists all images that were created by a specific image pipeline. :: + + aws imagebuilder list-image-pipeline-images \ + --image-pipeline-arn arn:aws:imagebuilder:us-west-2:123456789012:image-pipeline/mywindows2016pipeline + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "imagePipelineList": [ + { + "arn": "arn:aws:imagebuilder:us-west-2:123456789012:image-pipeline/mywindows2016pipeline", + "name": "MyWindows2016Pipeline", + "description": "Builds Windows 2016 Images", + "platform": "Windows", + "imageRecipeArn": "arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/mybasicrecipe/2019.12.03", + "infrastructureConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:infrastructure-configuration/myexampleinfrastructure", + "distributionConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/myexampledistribution", + "imageTestsConfiguration": { + "imageTestsEnabled": true, + "timeoutMinutes": 60 + }, + "schedule": { + "scheduleExpression": "cron(0 0 * * SUN)", + "pipelineExecutionStartCondition": "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" + }, + "status": "ENABLED", + "dateCreated": "2020-02-19T19:04:01.253Z", + "dateUpdated": "2020-02-19T19:04:01.253Z", + "tags": { + "KeyName": "KeyValue" + } + }, + { + "arn": "arn:aws:imagebuilder:us-west-2:123456789012:image-pipeline/sam", + "name": "PipelineName", + "platform": "Linux", + "imageRecipeArn": "arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/recipe-name-a1b2c3d45678/1.0.0", + "infrastructureConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:infrastructure-configuration/infrastructureconfiguration-name-a1b2c3d45678", + "imageTestsConfiguration": { + "imageTestsEnabled": true, + "timeoutMinutes": 720 + }, + "status": "ENABLED", + "dateCreated": "2019-12-16T18:19:02.068Z", + "dateUpdated": "2019-12-16T18:19:02.068Z", + "tags": { + "KeyName": "KeyValue" + } + } + ] + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-image-recipes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-image-recipes.rst new file mode 100644 index 000000000..498d5f284 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-image-recipes.rst @@ -0,0 +1,37 @@ +**To list image recipes** + +The following ``list-image-recipes`` example lists all of your image recipes. :: + + aws imagebuilder list-image-recipes + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "imageRecipeSummaryList": [ + { + "arn": "arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/mybasicrecipe/2019.12.03", + "name": "MyBasicRecipe", + "platform": "Windows", + "owner": "123456789012", + "parentImage": "arn:aws:imagebuilder:us-west-2:aws:image/windows-server-2016-english-full-base-x86/2019.x.x", + "dateCreated": "2020-02-19T18:54:25.975Z", + "tags": { + "KeyName": "KeyValue" + } + }, + { + "arn": "arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/recipe-name-a1b2c3d45678/1.0.0", + "name": "recipe-name-a1b2c3d45678", + "platform": "Linux", + "owner": "123456789012", + "parentImage": "arn:aws:imagebuilder:us-west-2:aws:image/amazon-linux-2-x86/2019.11.21", + "dateCreated": "2019-12-16T18:19:00.120Z", + "tags": { + "KeyName": "KeyValue" + } + } + ] + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-images.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-images.rst new file mode 100644 index 000000000..89428157f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-images.rst @@ -0,0 +1,23 @@ +**To list images** + +The following ``list-images`` example lists all of the semantic versions you have access to. :: + + aws imagebuilder list-images + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "imageVersionList": [ + { + "arn": "arn:aws:imagebuilder:us-west-2:123456789012:image/mybasicrecipe/2019.12.03", + "name": "MyBasicRecipe", + "version": "2019.12.03", + "platform": "Windows", + "owner": "123456789012", + "dateCreated": "2020-02-14T21:29:18.810Z" + } + ] + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-infrastructure-configurations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-infrastructure-configurations.rst new file mode 100644 index 000000000..a6ccde02d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-infrastructure-configurations.rst @@ -0,0 +1,30 @@ +**To list infrastructure configurations** + +The following ``list-infrastructure-configurations`` example lists all of your infrastructure configurations. :: + + aws imagebuilder list-infrastructure-configurations + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "infrastructureConfigurationSummaryList": [ + { + "arn": "arn:aws:imagebuilder:us-west-2:123456789012:infrastructure-configuration/myexampleinfrastructure", + "name": "MyExampleInfrastructure", + "description": "An example that will retain instances of failed builds", + "dateCreated": "2020-02-19T19:11:51.858Z", + "tags": {} + }, + { + "arn": "arn:aws:imagebuilder:us-west-2:123456789012:infrastructure-configuration/infrastructureconfiguration-name-a1b2c3d45678", + "name": "infrastructureConfiguration-name-a1b2c3d45678", + "dateCreated": "2019-12-16T18:19:01.038Z", + "tags": { + "KeyName": "KeyValue" + } + } + ] + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-tags-for-resource.rst new file mode 100644 index 000000000..fa1da20b4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/list-tags-for-resource.rst @@ -0,0 +1,16 @@ +**To list tags for a specific resource** + +The following ``list-tags-for-resource`` example lists all of the tags for a specific resource. :: + + aws imagebuilder list-tags-for-resource \ + --resource-arn arn:aws:imagebuilder:us-west-2:123456789012:image-pipeline/mywindows2016pipeline + +Output:: + + { + "tags": { + "KeyName": "KeyValue" + } + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/put-component-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/put-component-policy.rst new file mode 100644 index 000000000..bca64adf8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/put-component-policy.rst @@ -0,0 +1,16 @@ +**To apply a resource policy to a component** + +The following ``put-component-policy`` command applies a resource policy to a build component to enable cross-account sharing of build components. We recommend you use the RAM CLI command ``create-resource-share``. If you use the EC2 Image Builder CLI command ``put-component-policy``, you must also use the RAM CLI command ``promote-resource-share-create-from-policy`` in order for the resource to be visible to all principals with whom the resource is shared. :: + + aws imagebuilder put-component-policy \ + --component-arn arn:aws:imagebuilder:us-west-2:123456789012:component/examplecomponent/2019.12.02/1 \ + --policy '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "123456789012" ] }, "Action": [ "imagebuilder:GetComponent", "imagebuilder:ListComponents" ], "Resource": [ "arn:aws:imagebuilder:us-west-2:123456789012:component/examplecomponent/2019.12.02/1" ] } ] }' + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "componentArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/examplecomponent/2019.12.02/1" + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/put-image-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/put-image-policy.rst new file mode 100644 index 000000000..c368f77b9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/put-image-policy.rst @@ -0,0 +1,16 @@ +**To apply a resource policy to an image** + +The following ``put-image-policy`` command applies a resource policy to an image to enable cross-account sharing of images. We recommend you use the RAM CLI command create-resource-share. If you use the EC2 Image Builder CLI command put-image-policy, you must also use the RAM CLI command promote-resource-share-create-from-policy in order for the resource to be visible to all principals with whom the resource is shared. :: + + aws imagebuilder put-image-policy \ + --image-arn arn:aws:imagebuilder:us-west-2:123456789012:image/example-image/2019.12.02/1 \ + --policy '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "123456789012" ] }, "Action": [ "imagebuilder:GetImage", "imagebuilder:ListImages" ], "Resource": [ "arn:aws:imagebuilder:us-west-2:123456789012:image/example-image/2019.12.02/1" ] } ] }' + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "imageArn": "arn:aws:imagebuilder:us-west-2:123456789012:image/example-image/2019.12.02/1" + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/put-image-recipe-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/put-image-recipe-policy.rst new file mode 100644 index 000000000..cf1846355 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/put-image-recipe-policy.rst @@ -0,0 +1,16 @@ +**To apply a resource policy to an image recipe** + +The following ``put-image-recipe-policy`` command applies a resource policy to an image recipe to enable cross-account sharing of image recipes. We recommend that you use the RAM CLI command ``create-resource-share``. If you use the EC2 Image Builder CLI command ``put-image-recipe-policy``, you must also use the RAM CLI command ``promote-resource-share-create-from-policy`` in order for the resource to be visible to all principals with whom the resource is shared. :: + + aws imagebuilder put-image-recipe-policy \ + --image-recipe-arn arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/example-image-recipe/2019.12.02 \ + --policy '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "123456789012" ] }, "Action": [ "imagebuilder:GetImageRecipe", "imagebuilder:ListImageRecipes" ], "Resource": [ "arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/example-image-recipe/2019.12.02" ] } ] }' + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "imageRecipeArn": "arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/example-image-recipe/2019.12.02/1" + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/start-image-pipeline-execution.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/start-image-pipeline-execution.rst new file mode 100644 index 000000000..44f3c8b50 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/start-image-pipeline-execution.rst @@ -0,0 +1,18 @@ +**To start an image pipeline manually** + +The following ``start-image-pipeline-execution`` example manually starts an image pipeline. :: + + aws imagebuilder start-image-pipeline-execution \ + --image-pipeline-arn arn:aws:imagebuilder:us-west-2:123456789012:image-pipeline/mywindows2016pipeline + + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "clientToken": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "imageBuildVersionArn": "arn:aws:imagebuilder:us-west-2:123456789012:image/mybasicrecipe/2019.12.03/1" + } + + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/tag-resource.rst new file mode 100644 index 000000000..88ab68a0d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/tag-resource.rst @@ -0,0 +1,19 @@ +**To tag a resource** + +The following ``tag-resource`` example adds and tags a resource to EC2 Image Builder using a JSON file. :: + + aws imagebuilder tag-resource \ + --cli-input-json file://tag-resource.json + +Contents of ``tag-resource.json``:: + + { + "resourceArn": "arn:aws:imagebuilder:us-west-2:123456789012:image-pipeline/mywindows2016pipeline", + "tags": { + "KeyName: "KeyValue" + } + } + +This command produces no output. + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/untag-resource.rst new file mode 100644 index 000000000..8009ce59d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/untag-resource.rst @@ -0,0 +1,19 @@ +**To remove a tag from a resource** + +The following ``untag-resource`` example removes a tag from a resource using a JSON file. :: + + aws imagebuilder untag-resource \ + --cli-input-json file://tag-resource.json + +Contents of ``untag-resource.json``:: + + { + "resourceArn": "arn:aws:imagebuilder:us-west-2:123456789012:image-pipeline/mywindows2016pipeline", + "tagKeys": [ + "KeyName" + ] + } + +This command produces no output. + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/update-distribution-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/update-distribution-configuration.rst new file mode 100644 index 000000000..0793a0140 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/update-distribution-configuration.rst @@ -0,0 +1,36 @@ +**To update a distribution configuration** + +The following ``update-distribution-configuration`` example updates a distribution configuration using a JSON file. :: + + aws imagebuilder update-distribution-configuration \ + --cli-input-json file://update-distribution-configuration.json + +Contents of ``update-distribution-configuration.json``:: + + { + "distributionConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/myexampledistribution", + "description": "Copies AMI to eu-west-2 and exports to S3", + "distributions": [ + { + "region": "us-west-2", + "amiDistributionConfiguration": { + "name": "Name {{imagebuilder:buildDate}}", + "description": "An example image name with parameter references" + } + }, + { + "region": "eu-west-2", + "amiDistributionConfiguration": { + "name": "My {{imagebuilder:buildVersion}} image {{imagebuilder:buildDate}}" + } + } + ] + } + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/update-image-pipeline.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/update-image-pipeline.rst new file mode 100644 index 000000000..e7ffc7ee2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/update-image-pipeline.rst @@ -0,0 +1,32 @@ +**To update an image pipeline** + +The following ``update-image-pipeline`` example updates an image pipeline using a JSON file. :: + + aws imagebuilder update-image-pipeline \ + --cli-input-json file://update-image-pipeline.json + +Contents of ``update-image-pipeline.json``:: + + { + "imagePipelineArn": "arn:aws:imagebuilder:us-west-2:123456789012:image-pipeline/mywindows2016pipeline", + "imageRecipeArn": "arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/mybasicrecipe/2019.12.03", + "infrastructureConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:infrastructure-configuration/myexampleinfrastructure", + "distributionConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/myexampledistribution", + "imageTestsConfiguration": { + "imageTestsEnabled": true, + "timeoutMinutes": 120 + }, + "schedule": { + "scheduleExpression": "cron(0 0 * * MON)", + "pipelineExecutionStartCondition": "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" + }, + "status": "DISABLED" + } + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/update-infrastructure-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/update-infrastructure-configuration.rst new file mode 100644 index 000000000..9826cd1c1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/imagebuilder/update-infrastructure-configuration.rst @@ -0,0 +1,37 @@ +**To update an infrastructure configuration** + +The following ``update-infrastructure-configuration`` example updates an infrastructure configuration using a JSON file. :: + + aws imagebuilder update-infrastructure-configuration \ + --cli-input-json file:/update-infrastructure-configuration.json + +Contents of ``update-infrastructure-configuration.json``:: + + { + "infrastructureConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:infrastructure-configuration/myexampleinfrastructure", + "description": "An example that will terminate instances of failed builds", + "instanceTypes": [ + "m5.large", "m5.2xlarge" + ], + "instanceProfileName": "EC2InstanceProfileForImageFactory", + "securityGroupIds": [ + "sg-a48c95ef" + ], + "subnetId": "subnet-a48c95ef", + "logging": { + "s3Logs": { + "s3BucketName": "bucket-name", + "s3KeyPrefix": "bucket-path" + } + }, + "terminateInstanceOnFailure": true, + "snsTopicArn": "arn:aws:sns:us-west-2:123456789012:sns-name" + } + +Output:: + + { + "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + } + +For more information, see `Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI `__ in the *EC2 Image Builder Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/importexport/cancel-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/importexport/cancel-job.rst new file mode 100644 index 000000000..d93ce0d0e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/importexport/cancel-job.rst @@ -0,0 +1,5 @@ +The following command cancels the specified job:: + + aws importexport cancel-job --job-id EX1ID + +Only jobs that were created by the AWS account you're currently using can be canceled. Jobs that have already completed cannot be canceled. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/importexport/create-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/importexport/create-job.rst new file mode 100644 index 000000000..84b6c701d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/importexport/create-job.rst @@ -0,0 +1,45 @@ +The following command creates an import job from a manifest file:: + + aws importexport create-job --job-type import --manifest file://manifest --no-validate-only + +The file ``manifest`` is a YAML formatted text file in the current directory with the following content:: + + manifestVersion: 2.0; + returnAddress: + name: Jane Roe + company: Example Corp. + street1: 123 Any Street + city: Anytown + stateOrProvince: WA + postalCode: 91011-1111 + phoneNumber: 206-555-1111 + country: USA + deviceId: 49382 + eraseDevice: yes + notificationEmail: john.doe@example.com;jane.roe@example.com + bucket: amzn-s3-demo-bucket + +For more information on the manifest file format, see `Creating Import Manifests`_ in the *AWS Import/Export Developer Guide*. + +.. _`Creating Import Manifests`: http://docs.aws.amazon.com/AWSImportExport/latest/DG/ImportManifestFile.html + +You can also pass the manifest as a string in quotes:: + + aws importexport create-job --job-type import --manifest 'manifestVersion: 2.0; + returnAddress: + name: Jane Roe + company: Example Corp. + street1: 123 Any Street + city: Anytown + stateOrProvince: WA + postalCode: 91011-1111 + phoneNumber: 206-555-1111 + country: USA + deviceId: 49382 + eraseDevice: yes + notificationEmail: john.doe@example.com;jane.roe@example.com + bucket: amzn-s3-demo-bucket' + +For information on quoting string arguments and using files, see `Specifying Parameter Values`_ in the *AWS CLI User Guide*. + +.. _`Specifying Parameter Values`: http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/importexport/get-shipping-label.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/importexport/get-shipping-label.rst new file mode 100644 index 000000000..c4ee1af28 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/importexport/get-shipping-label.rst @@ -0,0 +1,11 @@ +The following command creates a pre-paid shipping label for the specified job:: + + aws importexport get-shipping-label --job-ids EX1ID --name "Jane Roe" --company "Example Corp." --phone-number "206-555-1111" --country "USA" --state-or-province "WA" --city "Anytown" --postal-code "91011-1111" --street-1 "123 Any Street" + +The output for the get-shipping-label command looks like the following:: + + https://s3.amazonaws.com/amzn-s3-demo-bucket/shipping-label-EX1ID.pdf + +The link in the output contains the pre-paid shipping label generated in a PDF. It also contains shipping instructions with a unique bar code to identify and authenticate your device. For more information about using the pre-paid shipping label and shipping your device, see `Shipping Your Storage Device`_ in the *AWS Import/Export Developer Guide*. + +.. _`Shipping Your Storage Device`: http://docs.aws.amazon.com/AWSImportExport/latest/DG/CHAP_ShippingYourStorageDevice.html diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/importexport/get-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/importexport/get-status.rst new file mode 100644 index 000000000..c7c1bf9a1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/importexport/get-status.rst @@ -0,0 +1,32 @@ +The following command returns the status the specified job:: + + aws importexport get-status --job-id EX1ID + +The output for the get-status command looks like the following:: + + 2015-05-27T18:58:21Z manifestVersion:2.0 + generator:Text editor + bucket:amzn-s3-demo-bucket + deviceId:49382 + eraseDevice:yes + notificationEmail:john.doe@example.com;jane.roe@example.com + trueCryptPassword:password123 + acl:private + serviceLevel:standard + returnAddress: + name: Jane Roe + company: Example Corp. + street1: 123 Any Street + street2: + street3: + city: Anytown + stateOrProvince: WA + postalCode: 91011-1111 + country:USA + phoneNumber:206-555-1111 0 EX1ID Import NotReceived AWS has not received your device. Pending The specified job has not started. + ktKDXpdbEXAMPLEyGFJmQO744UHw= version:2.0 + signingMethod:HmacSHA1 + jobId:EX1ID + signature:ktKDXpdbEXAMPLEyGFJmQO744UHw= + +When you ship your device, it will be delivered to a sorting facility, and then forwarded on to an AWS data center. Note that when you send a get-status command, the status of your job will not show as ``At AWS`` until the shipment has been received at the AWS data center. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/importexport/list-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/importexport/list-jobs.rst new file mode 100644 index 000000000..09264da13 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/importexport/list-jobs.rst @@ -0,0 +1,9 @@ +The following command lists the jobs you've created:: + + aws importexport list-jobs + +The output for the list-jobs command looks like the following:: + + JOBS 2015-05-27T18:58:21Z False EX1ID Import + +You can only list jobs created by users under the AWS account you are currently using. Listing jobs returns useful information, like job IDs, which are necessary for other AWS Import/Export commands. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/importexport/update-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/importexport/update-job.rst new file mode 100644 index 000000000..eb958c40f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/importexport/update-job.rst @@ -0,0 +1,9 @@ +The following command updates the specified job:: + + aws importexport update-job --job-id EX1ID --job-type import --manifest file://manifest.txt --no-validate-only + +The output for the update-jobs command looks like the following:: + + True **** Device will be erased before being returned. **** + +With this command, you can either modify the original manifest you submitted, or you can start over and create a new manifest file. In either case, the original manifest is discarded. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/add-attributes-to-findings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/add-attributes-to-findings.rst new file mode 100644 index 000000000..4acf4336c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/add-attributes-to-findings.rst @@ -0,0 +1,16 @@ +**To add attributes to findings** + +The following ``add-attribute-to-finding`` command assigns an attribute with the key of ``Example`` and value of ``example`` to the finding with the ARN of ``arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-8l1VIE0D/run/0-Z02cjjug/finding/0-T8yM9mEU``:: + + aws inspector add-attributes-to-findings --finding-arns arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-8l1VIE0D/run/0-Z02cjjug/finding/0-T8yM9mEU --attributes key=Example,value=example + +Output:: + + { + "failedItems": {} + } + +For more information, see `Amazon Inspector Findings`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Findings`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_findings.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/create-assessment-target.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/create-assessment-target.rst new file mode 100644 index 000000000..82afb1ed9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/create-assessment-target.rst @@ -0,0 +1,16 @@ +**To create an assessment target** + +The following ``create-assessment-target`` command creates an assessment target named ``ExampleAssessmentTarget`` using the resource group with the ARN of ``arn:aws:inspector:us-west-2:123456789012:resourcegroup/0-AB6DMKnv``:: + + aws inspector create-assessment-target --assessment-target-name ExampleAssessmentTarget --resource-group-arn arn:aws:inspector:us-west-2:123456789012:resourcegroup/0-AB6DMKnv + +Output:: + + { + "assessmentTargetArn": "arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX" + } + +For more information, see `Amazon Inspector Assessment Targets`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Assessment Targets`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_applications.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/create-assessment-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/create-assessment-template.rst new file mode 100644 index 000000000..9932d8823 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/create-assessment-template.rst @@ -0,0 +1,16 @@ +**To create an assessment template** + +The following ``create-assessment-template`` command creates an assessment template called ``ExampleAssessmentTemplate`` for the assessment target with the ARN of ``arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX``:: + + aws inspector create-assessment-template --assessment-target-arn arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX --assessment-template-name ExampleAssessmentTemplate --duration-in-seconds 180 --rules-package-arns arn:aws:inspector:us-west-2:758058086616:rulespackage/0-9hgA516p --user-attributes-for-findings key=ExampleTag,value=examplevalue + +Output:: + + { + "assessmentTemplateArn": "arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-it5r2S4T" + } + +For more information, see `Amazon Inspector Assessment Templates and Assessment Runs`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Assessment Templates and Assessment Runs`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_assessments.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/create-resource-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/create-resource-group.rst new file mode 100644 index 000000000..944812d39 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/create-resource-group.rst @@ -0,0 +1,16 @@ +**To create a resource group** + +The following ``create-resource-group`` command creates a resource group using the tag key of ``Name`` and value of ``example``:: + + aws inspector create-resource-group --resource-group-tags key=Name,value=example + +Output:: + + { + "resourceGroupArn": "arn:aws:inspector:us-west-2:123456789012:resourcegroup/0-AB6DMKnv" + } + +For more information, see `Amazon Inspector Assessment Targets`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Assessment Targets`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_applications.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/delete-assessment-run.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/delete-assessment-run.rst new file mode 100644 index 000000000..778219d7c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/delete-assessment-run.rst @@ -0,0 +1,10 @@ +**To delete an assessment run** + +The following ``delete-assessment-run`` command deletes the assessment run with the ARN of ``arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-it5r2S4T/run/0-11LMTAVe``:: + + aws inspector delete-assessment-run --assessment-run-arn arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-it5r2S4T/run/0-11LMTAVe + +For more information, see `Amazon Inspector Assessment Templates and Assessment Runs`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Assessment Templates and Assessment Runs`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_assessments.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/delete-assessment-target.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/delete-assessment-target.rst new file mode 100644 index 000000000..a50ee6e01 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/delete-assessment-target.rst @@ -0,0 +1,10 @@ +**To delete an assessment target** + +The following ``delete-assessment-target`` command deletes the assessment target with the ARN of ``arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq``:: + + aws inspector delete-assessment-target --assessment-target-arn arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq + +For more information, see `Amazon Inspector Assessment Targets`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Assessment Targets`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_applications.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/delete-assessment-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/delete-assessment-template.rst new file mode 100644 index 000000000..16fdb4073 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/delete-assessment-template.rst @@ -0,0 +1,10 @@ +**To delete an assessment template** + +The following ``delete-assessment-template`` command deletes the assessment template with the ARN of ``arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-it5r2S4T``:: + + aws inspector delete-assessment-template --assessment-template-arn arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-it5r2S4T + +For more information, see `Amazon Inspector Assessment Templates and Assessment Runs`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Assessment Templates and Assessment Runs`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_assessments.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/describe-assessment-runs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/describe-assessment-runs.rst new file mode 100644 index 000000000..41f7fc69c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/describe-assessment-runs.rst @@ -0,0 +1,69 @@ +**To describe assessment runs** + +The following ``describe-assessment-run`` command describes an assessment run with the ARN of ``arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE``:: + + aws inspector describe-assessment-runs --assessment-run-arns arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE + +Output:: + + { + "assessmentRuns": [ + { + "arn": "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE", + "assessmentTemplateArn": "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw", + "completedAt": 1458680301.4, + "createdAt": 1458680170.035, + "dataCollected": true, + "durationInSeconds": 3600, + "name": "Run 1 for ExampleAssessmentTemplate", + "notifications": [], + "rulesPackageArns": [ + "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-X1KXtawP" + ], + "startedAt": 1458680170.161, + "state": "COMPLETED", + "stateChangedAt": 1458680301.4, + "stateChanges": [ + { + "state": "CREATED", + "stateChangedAt": 1458680170.035 + }, + { + "state": "START_DATA_COLLECTION_PENDING", + "stateChangedAt": 1458680170.065 + }, + { + "state": "START_DATA_COLLECTION_IN_PROGRESS", + "stateChangedAt": 1458680170.096 + }, + { + "state": "COLLECTING_DATA", + "stateChangedAt": 1458680170.161 + }, + { + "state": "STOP_DATA_COLLECTION_PENDING", + "stateChangedAt": 1458680239.883 + }, + { + "state": "DATA_COLLECTED", + "stateChangedAt": 1458680299.847 + }, + { + "state": "EVALUATING_RULES", + "stateChangedAt": 1458680300.099 + }, + { + "state": "COMPLETED", + "stateChangedAt": 1458680301.4 + } + ], + "userAttributesForFindings": [] + } + ], + "failedItems": {} + } + +For more information, see `Amazon Inspector Assessment Templates and Assessment Runs`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Assessment Templates and Assessment Runs`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_assessments.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/describe-assessment-targets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/describe-assessment-targets.rst new file mode 100644 index 000000000..bfd1bc43a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/describe-assessment-targets.rst @@ -0,0 +1,25 @@ +**To describe assessment targets** + +The following ``describe-assessment-targets`` command describes the assessment target with the ARN of ``arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq``:: + + aws inspector describe-assessment-targets --assessment-target-arns arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq + +Output:: + + { + "assessmentTargets": [ + { + "arn": "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq", + "createdAt": 1458074191.459, + "name": "ExampleAssessmentTarget", + "resourceGroupArn": "arn:aws:inspector:us-west-2:123456789012:resourcegroup/0-PyGXopAI", + "updatedAt": 1458074191.459 + } + ], + "failedItems": {} + } + +For more information, see `Amazon Inspector Assessment Targets`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Assessment Targets`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_applications.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/describe-assessment-templates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/describe-assessment-templates.rst new file mode 100644 index 000000000..c182e8dee --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/describe-assessment-templates.rst @@ -0,0 +1,29 @@ +**To describe assessment templates** + +The following ``describe-assessment-templates`` command describes the assessment template with the ARN of ``arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw``:: + + aws inspector describe-assessment-templates --assessment-template-arns arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw + +Output:: + + { + "assessmentTemplates": [ + { + "arn": "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw", + "assessmentTargetArn": "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq", + "createdAt": 1458074191.844, + "durationInSeconds": 3600, + "name": "ExampleAssessmentTemplate", + "rulesPackageArns": [ + "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-X1KXtawP" + ], + "userAttributesForFindings": [] + } + ], + "failedItems": {} + } + +For more information, see `Amazon Inspector Assessment Templates and Assessment Runs`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Assessment Templates and Assessment Runs`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_assessments.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/describe-cross-account-access-role.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/describe-cross-account-access-role.rst new file mode 100644 index 000000000..89e8ff9ba --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/describe-cross-account-access-role.rst @@ -0,0 +1,18 @@ +**To describe the cross account access role** + +The following ``describe-cross-account-access-role`` command describes the IAM role that enables Amazon Inspector to access your AWS account:: + + aws inspector describe-cross-account-access-role + +Output:: + + { + "registeredAt": 1458069182.826, + "roleArn": "arn:aws:iam::123456789012:role/inspector", + "valid": true + } + +For more information, see `Setting up Amazon Inspector`_ in the *Amazon Inspector* guide. + +.. _`Setting up Amazon Inspector`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_settingup.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/describe-findings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/describe-findings.rst new file mode 100644 index 000000000..588e2294e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/describe-findings.rst @@ -0,0 +1,44 @@ +**To describe findings** + +The following ``describe-findings`` command describes the finding with the ARN of ``arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE/finding/0-HwPnsDm4``:: + + aws inspector describe-findings --finding-arns arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE/finding/0-HwPnsDm4 + +Output:: + + { + "failedItems": {}, + "findings": [ + { + "arn": "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE/finding/0-HwPnsDm4", + "assetAttributes": { + "ipv4Addresses": [], + "schemaVersion": 1 + }, + "assetType": "ec2-instance", + "attributes": [], + "confidence": 10, + "createdAt": 1458680301.37, + "description": "Amazon Inspector did not find any potential security issues during this assessment.", + "indicatorOfCompromise": false, + "numericSeverity": 0, + "recommendation": "No remediation needed.", + "schemaVersion": 1, + "service": "Inspector", + "serviceAttributes": { + "assessmentRunArn": "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE", + "rulesPackageArn": "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-X1KXtawP", + "schemaVersion": 1 + }, + "severity": "Informational", + "title": "No potential security issues found", + "updatedAt": 1458680301.37, + "userAttributes": [] + } + ] + } + +For more information, see `Amazon Inspector Findings`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Findings`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_findings.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/describe-resource-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/describe-resource-groups.rst new file mode 100644 index 000000000..3971ec5ab --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/describe-resource-groups.rst @@ -0,0 +1,28 @@ +**To describe resource groups** + +The following ``describe-resource-groups`` command describes the resource group with the ARN of ``arn:aws:inspector:us-west-2:123456789012:resourcegroup/0-PyGXopAI``:: + + aws inspector describe-resource-groups --resource-group-arns arn:aws:inspector:us-west-2:123456789012:resourcegroup/0-PyGXopAI + +Output:: + + { + "failedItems": {}, + "resourceGroups": [ + { + "arn": "arn:aws:inspector:us-west-2:123456789012:resourcegroup/0-PyGXopAI", + "createdAt": 1458074191.098, + "tags": [ + { + "key": "Name", + "value": "example" + } + ] + } + ] + } + +For more information, see `Amazon Inspector Assessment Targets`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Assessment Targets`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_applications.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/describe-rules-packages.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/describe-rules-packages.rst new file mode 100644 index 000000000..f08b0ccf2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/describe-rules-packages.rst @@ -0,0 +1,30 @@ +**To describe rules packages** + +The following ``describe-rules-packages`` command describes the rules package with the ARN of ``arn:aws:inspector:us-west-2:758058086616:rulespackage/0-9hgA516p``:: + + aws inspector describe-rules-packages --rules-package-arns arn:aws:inspector:us-west-2:758058086616:rulespackage/0-9hgA516p + +Output:: + + { + "failedItems": {}, + "rulesPackages": [ + { + "arn": "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-9hgA516p", + "description": "The rules in this package help verify whether the EC2 instances in your application are exposed to Common Vulnerabilities and + Exposures (CVEs). Attacks can exploit unpatched vulnerabilities to compromise the confidentiality, integrity, or availability of your service + or data. The CVE system provides a reference for publicly known information security vulnerabilities and exposures. For more information, see + [https://cve.mitre.org/](https://cve.mitre.org/). If a particular CVE appears in one of the produced Findings at the end of a completed + Inspector assessment, you can search [https://cve.mitre.org/](https://cve.mitre.org/) using the CVE's ID (for example, \"CVE-2009-0021\") to + find detailed information about this CVE, its severity, and how to mitigate it. ", + "name": "Common Vulnerabilities and Exposures", + "provider": "Amazon Web Services, Inc.", + "version": "1.1" + } + ] + } + +For more information, see `Amazon Inspector Rules Packages and Rules`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Rules Packages and Rules`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_rule-packages.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/get-telemetry-metadata.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/get-telemetry-metadata.rst new file mode 100644 index 000000000..908665c24 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/get-telemetry-metadata.rst @@ -0,0 +1,158 @@ +**To get the telemetry metadata** + +The following ``get-telemetry-metadata`` command generates information about the data that is collected for the assessment run with the ARN of ``arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE``:: + + aws inspector get-telemetry-metadata --assessment-run-arn arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE + +Output:: + + { + "telemetryMetadata": [ + { + "count": 2, + "dataSize": 345, + "messageType": "InspectorDuplicateProcess" + }, + { + "count": 3, + "dataSize": 255, + "messageType": "InspectorTimeEventMsg" + }, + { + "count": 4, + "dataSize": 1082, + "messageType": "InspectorNetworkInterface" + }, + { + "count": 2, + "dataSize": 349, + "messageType": "InspectorDnsEntry" + }, + { + "count": 11, + "dataSize": 2514, + "messageType": "InspectorDirectoryInfoMsg" + }, + { + "count": 1, + "dataSize": 179, + "messageType": "InspectorTcpV6ListeningPort" + }, + { + "count": 101, + "dataSize": 10949, + "messageType": "InspectorTerminal" + }, + { + "count": 26, + "dataSize": 5916, + "messageType": "InspectorUser" + }, + { + "count": 282, + "dataSize": 32148, + "messageType": "InspectorDynamicallyLoadedCodeModule" + }, + { + "count": 18, + "dataSize": 10172, + "messageType": "InspectorCreateProcess" + }, + { + "count": 3, + "dataSize": 8001, + "messageType": "InspectorProcessPerformance" + }, + { + "count": 1, + "dataSize": 360, + "messageType": "InspectorOperatingSystem" + }, + { + "count": 6, + "dataSize": 546, + "messageType": "InspectorStopProcess" + }, + { + "count": 1, + "dataSize": 1553, + "messageType": "InspectorInstanceMetaData" + }, + { + "count": 2, + "dataSize": 434, + "messageType": "InspectorTcpV4Connection" + }, + { + "count": 474, + "dataSize": 2960322, + "messageType": "InspectorPackageInfo" + }, + { + "count": 3, + "dataSize": 2235, + "messageType": "InspectorSystemPerformance" + }, + { + "count": 105, + "dataSize": 46048, + "messageType": "InspectorCodeModule" + }, + { + "count": 1, + "dataSize": 182, + "messageType": "InspectorUdpV6ListeningPort" + }, + { + "count": 2, + "dataSize": 371, + "messageType": "InspectorUdpV4ListeningPort" + }, + { + "count": 18, + "dataSize": 8362, + "messageType": "InspectorKernelModule" + }, + { + "count": 29, + "dataSize": 48788, + "messageType": "InspectorConfigurationInfo" + }, + { + "count": 1, + "dataSize": 79, + "messageType": "InspectorMonitoringStart" + }, + { + "count": 5, + "dataSize": 0, + "messageType": "InspectorSplitMsgBegin" + }, + { + "count": 51, + "dataSize": 4593, + "messageType": "InspectorGroup" + }, + { + "count": 1, + "dataSize": 184, + "messageType": "InspectorTcpV4ListeningPort" + }, + { + "count": 1159, + "dataSize": 3146579, + "messageType": "Total" + }, + { + "count": 5, + "dataSize": 0, + "messageType": "InspectorSplitMsgEnd" + }, + { + "count": 1, + "dataSize": 612, + "messageType": "InspectorLoadImageInProcess" + } + ] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-assessment-run-agents.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-assessment-run-agents.rst new file mode 100644 index 000000000..ba4616239 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-assessment-run-agents.rst @@ -0,0 +1,168 @@ +**To list assessment run agents** + +The following ``list-assessment-run-agents`` command lists the agents of the assessment run with the specified ARN. :: + + aws inspector list-assessment-run-agents \ + --assessment-run-arn arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE + +Output:: + + { + "assessmentRunAgents": [ + { + "agentHealth": "HEALTHY", + "agentHealthCode": "HEALTHY", + "agentId": "i-49113b93", + "assessmentRunArn": "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE", + "telemetryMetadata": [ + { + "count": 2, + "dataSize": 345, + "messageType": "InspectorDuplicateProcess" + }, + { + "count": 3, + "dataSize": 255, + "messageType": "InspectorTimeEventMsg" + }, + { + "count": 4, + "dataSize": 1082, + "messageType": "InspectorNetworkInterface" + }, + { + "count": 2, + "dataSize": 349, + "messageType": "InspectorDnsEntry" + }, + { + "count": 11, + "dataSize": 2514, + "messageType": "InspectorDirectoryInfoMsg" + }, + { + "count": 1, + "dataSize": 179, + "messageType": "InspectorTcpV6ListeningPort" + }, + { + "count": 101, + "dataSize": 10949, + "messageType": "InspectorTerminal" + }, + { + "count": 26, + "dataSize": 5916, + "messageType": "InspectorUser" + }, + { + "count": 282, + "dataSize": 32148, + "messageType": "InspectorDynamicallyLoadedCodeModule" + }, + { + "count": 18, + "dataSize": 10172, + "messageType": "InspectorCreateProcess" + }, + { + "count": 3, + "dataSize": 8001, + "messageType": "InspectorProcessPerformance" + }, + { + "count": 1, + "dataSize": 360, + "messageType": "InspectorOperatingSystem" + }, + { + "count": 6, + "dataSize": 546, + "messageType": "InspectorStopProcess" + }, + { + "count": 1, + "dataSize": 1553, + "messageType": "InspectorInstanceMetaData" + }, + { + "count": 2, + "dataSize": 434, + "messageType": "InspectorTcpV4Connection" + }, + { + "count": 474, + "dataSize": 2960322, + "messageType": "InspectorPackageInfo" + }, + { + "count": 3, + "dataSize": 2235, + "messageType": "InspectorSystemPerformance" + }, + { + "count": 105, + "dataSize": 46048, + "messageType": "InspectorCodeModule" + }, + { + "count": 1, + "dataSize": 182, + "messageType": "InspectorUdpV6ListeningPort" + }, + { + "count": 2, + "dataSize": 371, + "messageType": "InspectorUdpV4ListeningPort" + }, + { + "count": 18, + "dataSize": 8362, + "messageType": "InspectorKernelModule" + }, + { + "count": 29, + "dataSize": 48788, + "messageType": "InspectorConfigurationInfo" + }, + { + "count": 1, + "dataSize": 79, + "messageType": "InspectorMonitoringStart" + }, + { + "count": 5, + "dataSize": 0, + "messageType": "InspectorSplitMsgBegin" + }, + { + "count": 51, + "dataSize": 4593, + "messageType": "InspectorGroup" + }, + { + "count": 1, + "dataSize": 184, + "messageType": "InspectorTcpV4ListeningPort" + }, + { + "count": 1159, + "dataSize": 3146579, + "messageType": "Total" + }, + { + "count": 5, + "dataSize": 0, + "messageType": "InspectorSplitMsgEnd" + }, + { + "count": 1, + "dataSize": 612, + "messageType": "InspectorLoadImageInProcess" + } + ] + } + ] + } + +For more information, see `AWS Agents `_ in the *Amazon Inspector User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-assessment-runs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-assessment-runs.rst new file mode 100644 index 000000000..a2ee0c737 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-assessment-runs.rst @@ -0,0 +1,16 @@ +**To list assessment runs** + +The following ``list-assessment-runs`` command lists all existing assessment runs. :: + + aws inspector list-assessment-runs + +Output:: + + { + "assessmentRunArns": [ + "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE", + "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-v5D6fI3v" + ] + } + +For more information, see `Amazon Inspector Assessment Templates and Assessment Runs `_ in the *Amazon Inspector User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-assessment-targets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-assessment-targets.rst new file mode 100644 index 000000000..ce44a590b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-assessment-targets.rst @@ -0,0 +1,18 @@ +**To list assessment targets** + +The following ``list-assessment-targets`` command lists all existing assessment targets:: + + aws inspector list-assessment-targets + +Output:: + + { + "assessmentTargetArns": [ + "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq" + ] + } + +For more information, see `Amazon Inspector Assessment Targets`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Assessment Targets`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_applications.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-assessment-templates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-assessment-templates.rst new file mode 100644 index 000000000..8f5160e46 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-assessment-templates.rst @@ -0,0 +1,19 @@ +**To list assessment templates** + +The following ``list-assessment-templates`` command lists all existing assessment templates:: + + aws inspector list-assessment-templates + +Output:: + + { + "assessmentTemplateArns": [ + "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw", + "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-Uza6ihLh" + ] + } + +For more information, see `Amazon Inspector Assessment Templates and Assessment Runs`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Assessment Templates and Assessment Runs`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_assessments.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-event-subscriptions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-event-subscriptions.rst new file mode 100644 index 000000000..ea6e03295 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-event-subscriptions.rst @@ -0,0 +1,27 @@ +**To list event subscriptions** + +The following ``list-event-subscriptions`` command lists all the event subscriptions for the assessment template with the ARN of ``arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-7sbz2Kz0``:: + + aws inspector list-event-subscriptions --resource-arn arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-7sbz2Kz0 + +Output:: + + { + "subscriptions": [ + { + "eventSubscriptions": [ + { + "event": "ASSESSMENT_RUN_COMPLETED", + "subscribedAt": 1459455440.867 + } + ], + "resourceArn": "arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-7sbz2Kz0", + "topicArn": "arn:aws:sns:us-west-2:123456789012:exampletopic" + } + ] + } + +For more information, see `Amazon Inspector Assessment Templates and Assessment Runs`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Assessment Templates and Assessment Runs`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_assessments.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-findings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-findings.rst new file mode 100644 index 000000000..47d5b99b6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-findings.rst @@ -0,0 +1,19 @@ +**To list findings** + +The following ``list-findings`` command lists all of the generated findings:: + + aws inspector list-findings + +Output:: + + { + "findingArns": [ + "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-MKkpXXPE/finding/0-HwPnsDm4", + "arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-4r1V2mAw/run/0-v5D6fI3v/finding/0-tyvmqBLy" + ] + } + +For more information, see `Amazon Inspector Findings`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Findings`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_findings.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-rules-packages.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-rules-packages.rst new file mode 100644 index 000000000..2e21c8bcf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-rules-packages.rst @@ -0,0 +1,20 @@ +**To list rules packages** + +The following ``list-rules-packages`` command lists all available Inspector rules packages:: + + aws inspector list-rules-packages + +Output:: + + { + "rulesPackageArns": [ + "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-9hgA516p", + "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-H5hpSawc", + "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-JJOtZiqQ", + "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-vg5GGHSD" + ] + } + +For more information, see `Amazon Inspector Rules Packages and Rules`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Rules Packages and Rules`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_rule-packages.html diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-tags-for-resource.rst new file mode 100644 index 000000000..0edf83b77 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/list-tags-for-resource.rst @@ -0,0 +1,21 @@ +**To list tags for resource** + +The following ``list-tags-for-resource`` command lists all tags associated with the assessment template with the ARN of ``arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-gcwFliYu``:: + + aws inspector list-tags-for-resource --resource-arn arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-gcwFliYu + +Output:: + + { + "tags": [ + { + "key": "Name", + "value": "Example" + } + ] + } + +For more information, see `Amazon Inspector Assessment Templates and Assessment Runs`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Assessment Templates and Assessment Runs`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_assessments.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/preview-agents.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/preview-agents.rst new file mode 100644 index 000000000..17910f7ab --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/preview-agents.rst @@ -0,0 +1,20 @@ +**To preview agents** + +The following ``preview-agents`` command previews the agents installed on the EC2 instances that are part of the assessment target with the ARN of ``arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq``:: + + aws inspector preview-agents --preview-agents-arn arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq + +Output:: + + { + "agentPreviews": [ + { + "agentId": "i-49113b93" + } + ] + } + +For more information, see `Amazon Inspector Assessment Targets`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Assessment Targets`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_applications.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/register-cross-account-access-role.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/register-cross-account-access-role.rst new file mode 100644 index 000000000..70647117e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/register-cross-account-access-role.rst @@ -0,0 +1,10 @@ +**To register the cross account access role** + +The following ``register-cross-account-access-role`` command registers the IAM role with the ARN of ``arn:aws:iam::123456789012:role/inspector`` that Amazon Inspector uses to list your EC2 instances at the start of the assessment run of when you call the preview-agents command:: + + aws inspector register-cross-account-access-role --role-arn arn:aws:iam::123456789012:role/inspector + +For more information, see `Setting up Amazon Inspector`_ in the *Amazon Inspector* guide. + +.. _`Setting up Amazon Inspector`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_settingup.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/remove-attributes-from-findings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/remove-attributes-from-findings.rst new file mode 100644 index 000000000..80e878004 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/remove-attributes-from-findings.rst @@ -0,0 +1,16 @@ +**To remove attributes from findings** + +The following ``remove-attributes-from-finding`` command removes the attribute with the key of ``Example`` and value of ``example`` from the finding with the ARN of ``arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-8l1VIE0D/run/0-Z02cjjug/finding/0-T8yM9mEU``:: + + aws inspector remove-attributes-from-findings --finding-arns arn:aws:inspector:us-west-2:123456789012:target/0-0kFIPusq/template/0-8l1VIE0D/run/0-Z02cjjug/finding/0-T8yM9mEU --attribute-keys key=Example,value=example + +Output:: + + { + "failedItems": {} + } + +For more information, see `Amazon Inspector Findings`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Findings`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_findings.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/set-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/set-tags-for-resource.rst new file mode 100644 index 000000000..60746d29d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/set-tags-for-resource.rst @@ -0,0 +1,10 @@ +**To set tags for a resource** + +The following ``set-tags-for-resource`` command sets the tag with the key of ``Example`` and value of ``example`` to the assessment template with the ARN of ``arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-7sbz2Kz0``:: + + aws inspector set-tags-for-resource --resource-arn arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-7sbz2Kz0 --tags key=Example,value=example + +For more information, see `Amazon Inspector Assessment Templates and Assessment Runs`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Assessment Templates and Assessment Runs`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_assessments.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/start-assessment-run.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/start-assessment-run.rst new file mode 100644 index 000000000..2de2c659c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/start-assessment-run.rst @@ -0,0 +1,16 @@ +**To start an assessment run** + +The following ``start-assessment-run`` command starts the assessment run named ``examplerun`` using the assessment template with the ARN of ``arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-it5r2S4T``:: + + aws inspector start-assessment-run --assessment-run-name examplerun --assessment-template-arn arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-it5r2S4T + +Output:: + + { + "assessmentRunArn": "arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-it5r2S4T/run/0-jOoroxyY" + } + +For more information, see `Amazon Inspector Assessment Templates and Assessment Runs`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Assessment Templates and Assessment Runs`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_assessments.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/stop-assessment-run.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/stop-assessment-run.rst new file mode 100644 index 000000000..79833c91b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/stop-assessment-run.rst @@ -0,0 +1,10 @@ +**To stop an assessment run** + +The following ``stop-assessment-run`` command stops the assessment run with the ARN of ``arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-it5r2S4T/run/0-jOoroxyY``:: + + aws inspector stop-assessment-run --assessment-run-arn arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-it5r2S4T/run/0-jOoroxyY + +For more information, see `Amazon Inspector Assessment Templates and Assessment Runs`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Assessment Templates and Assessment Runs`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_assessments.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/subscribe-to-event.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/subscribe-to-event.rst new file mode 100644 index 000000000..5ce69ae28 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/subscribe-to-event.rst @@ -0,0 +1,12 @@ +**To subscribe to an event** + +The following example enables the process of sending Amazon SNS notifications about the ``ASSESSMENT_RUN_COMPLETED`` event to the topic with the ARN of ``arn:aws:sns:us-west-2:123456789012:exampletopic`` :: + + aws inspector subscribe-to-event \ + --event ASSESSMENT_RUN_COMPLETED \ + --resource-arn arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-7sbz2Kz0 \ + --topic-arn arn:aws:sns:us-west-2:123456789012:exampletopic + +This command produces no output. + +For more information, see `Amazon Inspector Assessment Templates and Assessment Runs `__ in the *Amazon Inspector* guide. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/unsubscribe-from-event.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/unsubscribe-from-event.rst new file mode 100644 index 000000000..46abd68d0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/unsubscribe-from-event.rst @@ -0,0 +1,10 @@ +**To unsubscribe from an event** + +The following ``unsubscribe-from-event`` command disables the process of sending Amazon SNS notifications about the ``ASSESSMENT_RUN_COMPLETED`` event to the topic with the ARN of ``arn:aws:sns:us-west-2:123456789012:exampletopic``:: + + aws inspector unsubscribe-from-event --event ASSESSMENT_RUN_COMPLETED --resource-arn arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-7sbz2Kz0 --topic arn:aws:sns:us-west-2:123456789012:exampletopic + +For more information, see `Amazon Inspector Assessment Templates and Assessment Runs`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Assessment Templates and Assessment Runs`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_assessments.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/update-assessment-target.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/update-assessment-target.rst new file mode 100644 index 000000000..d17b8bb8c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector/update-assessment-target.rst @@ -0,0 +1,10 @@ +**To update an assessment target** + +The following ``update-assessment-target`` command updates the assessment target with the ARN of ``arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX`` and the name of ``Example``, and the resource group with the ARN of ``arn:aws:inspector:us-west-2:123456789012:resourcegroup/0-yNbgL5Pt``:: + + aws inspector update-assessment-target --assessment-target-arn arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX --assessment-target-name Example --resource-group-arn arn:aws:inspector:us-west-2:123456789012:resourcegroup/0-yNbgL5Pt + +For more information, see `Amazon Inspector Assessment Targets`_ in the *Amazon Inspector* guide. + +.. _`Amazon Inspector Assessment Targets`: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_applications.html + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/associate-member.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/associate-member.rst new file mode 100644 index 000000000..7ab28c179 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/associate-member.rst @@ -0,0 +1,14 @@ +**Example: To associate an AWS account with an Amazon Inspector delegated administrator** + +The following ``associate-member`` example associates an AWS account with an Amazon Inspector delegated administrator. :: + + aws inspector2 associate-member \ + --account-id 123456789012 + +Output:: + + { + "accountId": "123456789012" + } + +For more information, see `Managing multiple accounts in Amazon Inspector with AWS Organizations `__ in the *Amazon Inspector User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/create-filter.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/create-filter.rst new file mode 100644 index 000000000..647807f2b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/create-filter.rst @@ -0,0 +1,17 @@ +**To create a filter** + +The following ``create-filter`` example creates a suppression rule that omits ECR instance type findings. :: + + aws inspector2 create-filter \ + --name "ExampleSuppressionRuleECR" \ + --description "This suppression rule omits ECR instance type findings" \ + --action SUPPRESS \ + --filter-criteria 'resourceType=[{comparison="EQUALS", value="AWS_ECR_INSTANCE"}]' + +Output:: + + { + "arn": "arn:aws:inspector2:us-west-2:123456789012:owner/o-EXAMPLE222/filter/EXAMPLE444444444" + } + +For more information, see `Filtering Amazon Inspector findings `__ in the *Amazon Inspector User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/create-findings-report.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/create-findings-report.rst new file mode 100644 index 000000000..cfdb05092 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/create-findings-report.rst @@ -0,0 +1,16 @@ +**To create a findings report** + +The following ``create-findings-report`` example creates a finding report. :: + + aws inspector2 create-findings-report \ + --report-format CSV \ + --s3-destination bucketName=inspector-sbom-123456789012,keyPrefix=sbom-key,kmsKeyArn=arn:aws:kms:us-west-2:123456789012:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE33333 \ + --filter-criteria '{"ecrImageRepositoryName":[{"comparison":"EQUALS","value":"debian"}]}' + +Output:: + + { + "reportId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333" + } + +For more information, see `Managing findings in Amazon Inspector `__ in the *Amazon Inspector User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/create-sbom-export.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/create-sbom-export.rst new file mode 100644 index 000000000..4de14dd57 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/create-sbom-export.rst @@ -0,0 +1,16 @@ +**To create a software bill of materials (SBOM) report** + +The following ``create-sbom-export`` example creates a software bill of materials (SBOM) report. :: + + aws inspector2 create-sbom-export \ + --report-format SPDX_2_3 \ + --resource-filter-criteria 'ecrRepositoryName=[{comparison="EQUALS",value="debian"}]' \ + --s3-destination bucketName=inspector-sbom-123456789012,keyPrefix=sbom-key,kmsKeyArn=arn:aws:kms:us-west-2:123456789012:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE33333 + +Output:: + + { + "reportId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333" + } + +For more information, see `Exporting SBOMs with Amazon Inspector `__ in the *Amazon Inspector User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/delete-filter.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/delete-filter.rst new file mode 100644 index 000000000..d7543a0a2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/delete-filter.rst @@ -0,0 +1,14 @@ +**To delete a filter** + +The following ``delete-filter`` example deletes a filter. :: + + aws inspector2 delete-filter \ + --arn "arn:aws:inspector2:us-west-2:123456789012:owner/o-EXAMPLE222/filter/EXAMPLE444444444" + +Output:: + + { + "arn": "arn:aws:inspector2:us-west-2:123456789012:owner/o-EXAMPLE222/filter/EXAMPLE444444444" + } + +For more information, see `Filtering Amazon Inspector findings `__ in the *Amazon Inspector User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/disassociate-member.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/disassociate-member.rst new file mode 100644 index 000000000..cc464ac15 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/disassociate-member.rst @@ -0,0 +1,14 @@ +**Example: To disassociate a member account from an Amazon Inspector delegated administrator** + +The following ``disassociate-member`` example disassociates an AWS account from an Amazon Inspector delegated administrator. :: + + aws inspector2 disassociate-member \ + --account-id 123456789012 + +Output:: + + { + "accountId": "123456789012" + } + +For more information, see `Managing multiple accounts in Amazon Inspector with AWS Organizations `__ in the *Amazon Inspector User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/get-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/get-configuration.rst new file mode 100644 index 000000000..e8cd1790d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/get-configuration.rst @@ -0,0 +1,26 @@ +**To get the setting configuration for Inspector scans** + +The following ``get-configuration`` example gets the setting configuration for Inspector scans. :: + + aws inspector2 get-configuration + +Output:: + + { + "ec2Configuration": { + "scanModeState": { + "scanMode": "EC2_HYBRID", + "scanModeStatus": "SUCCESS" + } + }, + "ecrConfiguration": { + "rescanDurationState": { + "pullDateRescanDuration": "DAYS_90", + "rescanDuration": "DAYS_30", + "status": "SUCCESS", + "updatedAt": "2024-05-14T21:16:20.237000+00:00" + } + } + } + +For more information, see `Automated resource scanning with Amazon Inspector `__ in the *Amazon Inspector User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/get-member.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/get-member.rst new file mode 100644 index 000000000..068c3bb04 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/get-member.rst @@ -0,0 +1,17 @@ +**Example: To get member information for your organization** + + aws inspector2 get-member \ + --account-id 123456789012 + +Output:: + + { + "member": { + "accountId": "123456789012", + "delegatedAdminAccountId": "123456789012", + "relationshipStatus": "ENABLED", + "updatedAt": "2023-09-11T09:57:20.520000-07:00" + } + } + +For more information, see `Managing multiple accounts in Amazon Inspector with AWS Organizations `__ in the *Amazon Inspector User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/list-account-permissions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/list-account-permissions.rst new file mode 100644 index 000000000..23bfa449f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/list-account-permissions.rst @@ -0,0 +1,46 @@ +**To list account permissions** + +The following ``list-account-permissions`` example lists your account permissions. :: + + aws inspector2 list-account-permissions + +Output:: + + { + "permissions": [ + { + "operation": "ENABLE_SCANNING", + "service": "ECR" + }, + { + "operation": "DISABLE_SCANNING", + "service": "ECR" + }, + { + "operation": "ENABLE_REPOSITORY", + "service": "ECR" + }, + { + "operation": "DISABLE_REPOSITORY", + "service": "ECR" + }, + { + "operation": "ENABLE_SCANNING", + "service": "EC2" + }, + { + "operation": "DISABLE_SCANNING", + "service": "EC2" + }, + { + "operation": "ENABLE_SCANNING", + "service": "LAMBDA" + }, + { + "operation": "DISABLE_SCANNING", + "service": "LAMBDA" + } + ] + } + +For more information, see `Identity and Access Management for Amazon Inspector `__ in the *Amazon Inspector User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/list-coverage-statistics.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/list-coverage-statistics.rst new file mode 100644 index 000000000..a2793e82b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/list-coverage-statistics.rst @@ -0,0 +1,80 @@ +**Example 1: To list coverage statistics by groups** + +The following ``list-coverage-statistics`` example lists the coverage statistics of your AWS environment by groups. :: + + aws inspector2 list-coverage-statistics \ + --group-by RESOURCE_TYPE + +Output:: + + { + "countsByGroup": [ + { + "count": 56, + "groupKey": "AWS_LAMBDA_FUNCTION" + }, + { + "count": 27, + "groupKey": "AWS_ECR_REPOSITORY" + }, + { + "count": 18, + "groupKey": "AWS_EC2_INSTANCE" + }, + { + "count": 3, + "groupKey": "AWS_ECR_CONTAINER_IMAGE" + }, + { + "count": 1, + "groupKey": "AWS_ACCOUNT" + } + ], + "totalCounts": 105 + } + +For more information, see `Assessing Amazon Inspector coverage of your AWS environment `__ in the *Amazon Inspector User Guide*. + +**Example 2: To list coverage statistics by resource type** + +The following ``list-coverage-statistics`` example lists the coverage statistics of your AWS environment by resource type. :: + + aws inspector2 list-coverage-statistics + --filter-criteria '{"resourceType":[{"comparison":"EQUALS","value":"AWS_ECR_REPOSITORY"}]}' + --group-by SCAN_STATUS_REASON + +Output:: + + { + "countsByGroup": [ + { + "count": 27, + "groupKey": "SUCCESSFUL" + } + ], + "totalCounts": 27 + } + +For more information, see `Assessing Amazon Inspector coverage of your AWS environment `__ in the *Amazon Inspector User Guide*. + +**Example 3: To list coverage statistics by ECR repository name** + +The following ``list-coverage-statistics`` example lists the coverage statistics of your AWS environment by ECR repository name. :: + + aws inspector2 list-coverage-statistics + --filter-criteria '{"ecrRepositoryName":[{"comparison":"EQUALS","value":"debian"}]}' + --group-by SCAN_STATUS_REASON + +Output:: + + { + "countsByGroup": [ + { + "count": 3, + "groupKey": "SUCCESSFUL" + } + ], + "totalCounts": 3 + } + +For more information, see `Assessing Amazon Inspector coverage of your AWS environment `__ in the *Amazon Inspector User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/list-coverage.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/list-coverage.rst new file mode 100644 index 000000000..4271d564f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/list-coverage.rst @@ -0,0 +1,61 @@ +**Example 1: To list coverage details about your environment** + +The following ``list-coverage`` example lists your environment's coverage details. :: + + aws inspector2 list-coverage + +Output:: + + { + "coveredResources": [ + { + "accountId": "123456789012", + "lastScannedAt": "2024-05-20T16:23:20-07:00", + "resourceId": "i-EXAMPLE55555555555", + "resourceMetadata": { + "ec2": { + "amiId": "ami-EXAMPLE6666666666", + "platform": "LINUX" + } + }, + "resourceType": "AWS_EC2_INSTANCE", + "scanStatus": { + "reason": "SUCCESSFUL", + "statusCode": "ACTIVE" + }, + "scanType": "PACKAGE" + } + ] + } + +**Example 2: To list coverage details about the Lambda function resource type** + +The following ``list-coverage`` example lists your Lambda function resource type details. :: + + aws inspector2 list-coverage + --filter-criteria '{"resourceType":[{"comparison":"EQUALS","value":"AWS_LAMBDA_FUNCTION"}]}' + +Output:: + + { + "coveredResources": [ + { + "accountId": "123456789012", + "resourceId": "arn:aws:lambda:us-west-2:123456789012:function:Eval-container-scan-results:$LATEST", + "resourceMetadata": { + "lambdaFunction": { + "functionName": "Eval-container-scan-results", + "functionTags": {}, + "layers": [], + "runtime": "PYTHON_3_7" + } + }, + "resourceType": "AWS_LAMBDA_FUNCTION", + "scanStatus": { + "reason": "SUCCESSFUL", + "statusCode": "ACTIVE" + }, + "scanType": "CODE" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/list-delegated-admin-accounts.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/list-delegated-admin-accounts.rst new file mode 100644 index 000000000..fb877f34b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/list-delegated-admin-accounts.rst @@ -0,0 +1,18 @@ +**To list information about the delegated administrator account of your organization** + +The following ``list-delegated-admin-accounts`` example lists information about the delegated administrator account of your organization. :: + + aws inspector2 list-delegated-admin-accounts + +Output:: + + { + "delegatedAdminAccounts": [ + { + "accountId": "123456789012", + "status": "ENABLED" + } + ] + } + +For more information, see `Designating a delegated administrator for Amazon Inspector `__ in the *Amazon Inspector User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/list-filters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/list-filters.rst new file mode 100644 index 000000000..11da43010 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/list-filters.rst @@ -0,0 +1,50 @@ +**To list filters associated with the account that you used to activated Amazon Inspector** + +The following ``list-filters`` examples lists filters associated with the account that you used to activated Amazon Inspector. :: + + aws inspector2 list-filters + +Output:: + + { + "filters": [ + { + "action": "SUPPRESS", + "arn": "arn:aws:inspector2:us-west-2:123456789012:owner/o-EXAMPLE222/filter/EXAMPLE444444444", + "createdAt": "2024-05-15T21:11:08.602000+00:00", + "criteria": { + "resourceType": [ + { + "comparison": "EQUALS", + "value": "AWS_EC2_INSTANCE" + }, + ] + }, + "description": "This suppression rule omits EC2 instance type findings", + "name": "ExampleSuppressionRuleEC2", + "ownerId": "o-EXAMPLE222", + "tags": {}, + "updatedAt": "2024-05-15T21:11:08.602000+00:00" + }, + { + "action": "SUPPRESS", + "arn": "arn:aws:inspector2:us-east-1:813737243517:owner/o-EXAMPLE222/filter/EXAMPLE444444444", + "createdAt": "2024-05-15T21:28:27.054000+00:00", + "criteria": { + "resourceType": [ + { + "comparison": "EQUALS", + "value": "AWS_ECR_INSTANCE" + } + ] + }, + "description": "This suppression rule omits ECR instance type findings", + "name": "ExampleSuppressionRuleECR", + "ownerId": "o-EXAMPLE222", + "tags": {}, + "updatedAt": "2024-05-15T21:28:27.054000+00:00" + } + ] + } + +For more information, see `Filtering Amazon Inspector findings `__ in the *Amazon Inspector User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/list-members.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/list-members.rst new file mode 100644 index 000000000..5d5d0805c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/list-members.rst @@ -0,0 +1,83 @@ +**Example 1: To list all member accounts associated with the Amazon Inspector delegated administrator for your organization** + + aws inspector2 list-members \ + --only-associated + +Output:: + + { + { + "members": [ + { + "accountId": "123456789012", + "delegatedAdminAccountId": "123456789012", + "relationshipStatus": "ENABLED", + "updatedAt": "2023-09-11T09:57:20.520000-07:00" + }, + { + "accountId": "123456789012", + "delegatedAdminAccountId": "123456789012", + "relationshipStatus": "ENABLED", + "updatedAt": "2024-08-12T10:13:01.472000-07:00" + }, + { + "accountId": "625032911453", + "delegatedAdminAccountId": "123456789012", + "relationshipStatus": "ENABLED", + "updatedAt": "2023-09-11T09:57:20.438000-07:00" + }, + { + "accountId": "715411239211", + "delegatedAdminAccountId": "123456789012", + "relationshipStatus": "ENABLED", + "updatedAt": "2024-04-24T09:14:57.471000-07:00" + } + ] + } + +For more information, see `Managing multiple accounts in Amazon Inspector with AWS Organizations `__ in the *Amazon Inspector User Guide*. + +**Example 2: To list all member accounts associated with and disassociated from the Amazon Inspector delegated administrator for your organization** + + aws inspector2 list-members \ + --no-only-associated + +Output:: + + { + { + "members": [ + { + "accountId": "123456789012", + "delegatedAdminAccountId": "123456789012", + "relationshipStatus": "REMOVED", + "updatedAt": "2024-05-15T11:34:53.326000-07:00" + }, + { + "accountId": "123456789012", + "delegatedAdminAccountId": "123456789012", + "relationshipStatus": "ENABLED", + "updatedAt": "2023-09-11T09:57:20.520000-07:00" + }, + { + "accountId": "123456789012", + "delegatedAdminAccountId": "123456789012", + "relationshipStatus": "ENABLED", + "updatedAt": "2024-08-12T10:13:01.472000-07:00" + }, + { + "accountId": "123456789012", + "delegatedAdminAccountId": "123456789012", + "relationshipStatus": "ENABLED", + "updatedAt": "2023-09-11T09:57:20.438000-07:00" + }, + { + "accountId": "123456789012", + "delegatedAdminAccountId": "123456789012", + "relationshipStatus": "ENABLED", + "updatedAt": "2024-04-24T09:14:57.471000-07:00" + } + ] + } + +For more information, see `Managing multiple accounts in Amazon Inspector with AWS Organizations `__ in the *Amazon Inspector User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/list-usage-totals.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/list-usage-totals.rst new file mode 100644 index 000000000..ada17c6f8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/list-usage-totals.rst @@ -0,0 +1,55 @@ +**To list usage totals over the last 30 days** + +The following ``list-usage-totals`` examples lists usage totals over the last 30 days. :: + + aws inspector2 list-usage-totals + +Output:: + + { + "totals": [ + { + "accountId": "123456789012", + "usage": [ + { + "currency": "USD", + "estimatedMonthlyCost": 4.6022044647, + "total": 1893.4784083333334, + "type": "EC2_AGENTLESS_INSTANCE_HOURS" + }, + { + "currency": "USD", + "estimatedMonthlyCost": 18.892449279, + "total": 10882.050784722222, + "type": "EC2_INSTANCE_HOURS" + }, + { + "currency": "USD", + "estimatedMonthlyCost": 5.4525363736, + "total": 6543.043648333333, + "type": "LAMBDA_FUNCTION_CODE_HOURS" + }, + { + "currency": "USD", + "estimatedMonthlyCost": 3.9064080309, + "total": 9375.379274166668, + "type": "LAMBDA_FUNCTION_HOURS" + }, + { + "currency": "USD", + "estimatedMonthlyCost": 0.06, + "total": 6.0, + "type": "ECR_RESCAN" + }, + { + "currency": "USD", + "estimatedMonthlyCost": 0.09, + "total": 1.0, + "type": "ECR_INITIAL_SCAN" + } + ] + } + ] + } + +For more information, see `Monitoring usage and cost in Amazon Inspector `__ in the *Amazon Inspector User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/update-filter.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/update-filter.rst new file mode 100644 index 000000000..a3d98f10d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/inspector2/update-filter.rst @@ -0,0 +1,37 @@ +**To update a filter** + +The following ``update-filter`` example updates a filter to omit Lambda findings instead of ECR instance findings. :: + + aws inspector2 update-filter \ + --filter-arn "arn:aws:inspector2:us-west-2:123456789012:owner/o-EXAMPLE222/filter/EXAMPLE444444444" \ + --name "ExampleSuppressionRuleLambda" \ + --description "This suppression rule omits Lambda instance findings" \ + --reason "Updating filter to omit Lambda instance findings instead of ECR instance findings" + +Output:: + + { + "filters": [ + { + "action": "SUPPRESS", + "arn": "arn:aws:inspector2:us-west-2:123456789012:owner/o-EXAMPLE222/filter/EXAMPLE444444444", + "createdAt": "2024-05-15T21:28:27.054000+00:00", + "criteria": { + "resourceType": [ + { + "comparison": "EQUALS", + "value": "AWS_ECR_INSTANCE" + } + ] + }, + "description": "This suppression rule omits Lambda instance findings", + "name": "ExampleSuppressionRuleLambda", + "ownerId": "o-EXAMPLE222", + "reason": "Updating filter to omit Lambda instance findings instead of ECR instance findings", + "tags": {}, + "updatedAt": "2024-05-15T22:23:13.665000+00:00" + } + ] + } + +For more information, see `Managing findings in Amazon Inspector `__ in the *Amazon Inspector User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot-data/delete-thing-shadow.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot-data/delete-thing-shadow.rst new file mode 100644 index 000000000..9e390de71 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot-data/delete-thing-shadow.rst @@ -0,0 +1,14 @@ +**To delete a device's shadow document** + +The following ``delete-thing-shadow`` example deletes the entire shadow document for the device named ``MyRPi``. :: + + aws iot-data delete-thing-shadow \ + --thing-name MyRPi \ + "output.txt" + +The command produces no output on the display, but ``output.txt`` contains information that confirms the version and timestamp of the shadow document that you deleted. :: + + {"version":2,"timestamp":1560270384} + +For more information, see `Using Shadows `__ in the *AWS IoT Developers Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot-data/get-thing-shadow.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot-data/get-thing-shadow.rst new file mode 100644 index 000000000..cf7d1e317 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot-data/get-thing-shadow.rst @@ -0,0 +1,27 @@ +**To get a thing shadow document** + +The following ``get-thing-shadow`` example gets the thing shadow document for the specified IoT thing. :: + + aws iot-data get-thing-shadow \ + --thing-name MyRPi \ + output.txt + +The command produces no output on the display, but the following shows the contents of ``output.txt``:: + + { + "state":{ + "reported":{ + "moisture":"low" + } + }, + "metadata":{ + "reported":{ + "moisture":{ + "timestamp":1560269319 + } + } + }, + "version":1,"timestamp":1560269405 + } + +For more information, see `Device Shadow Service Data Flow `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot-data/update-thing-shadow.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot-data/update-thing-shadow.rst new file mode 100644 index 000000000..bc5ce690e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot-data/update-thing-shadow.rst @@ -0,0 +1,29 @@ +**To update a thing shadow** + +The following ``update-thing-shadow`` example modifies the current state of the device shadow for the specified thing and saves it to the file ``output.txt``. :: + + aws iot-data update-thing-shadow \ + --thing-name MyRPi \ + --payload "{"state":{"reported":{"moisture":"okay"}}}" \ + "output.txt" + +The command produces no output on the display, but the following shows the contents of ``output.txt``:: + + { + "state": { + "reported": { + "moisture": "okay" + } + }, + "metadata": { + "reported": { + "moisture": { + "timestamp": 1560270036 + } + } + }, + "version": 2, + "timestamp": 1560270036 + } + +For more information, see `Device Shadow Service Data Flow `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot-jobs-data/describe-job-execution.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot-jobs-data/describe-job-execution.rst new file mode 100644 index 000000000..14da0aaf4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot-jobs-data/describe-job-execution.rst @@ -0,0 +1,25 @@ +**To get the details of a job execution** + +The following ``describe-job-execution`` example retrieves the details of the latest execution of the specified job and thing. :: + + aws iot-jobs-data describe-job-execution \ + --job-id SampleJob \ + --thing-name MotionSensor1 \ + --endpoint-url https://1234567890abcd.jobs.iot.us-west-2.amazonaws.com + +Output:: + + { + "execution": { + "approximateSecondsBeforeTimedOut": 88, + "executionNumber": 2939653338, + "jobId": "SampleJob", + "lastUpdatedAt": 1567701875.743, + "queuedAt": 1567701902.444, + "status": "QUEUED", + "thingName": "MotionSensor1 ", + "versionNumber": 3 + } + } + +For more information, see `Devices and Jobs `__ in the *AWS IoT Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot-jobs-data/get-pending-job-executions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot-jobs-data/get-pending-job-executions.rst new file mode 100644 index 000000000..6c5be7c0f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot-jobs-data/get-pending-job-executions.rst @@ -0,0 +1,25 @@ +**To get a list of all jobs that are not in a terminal status for a thing** + +The following ``get-pending-job-executions`` example displays a list of all jobs that aren't in a terminal state for the specified thing. :: + + aws iot-jobs-data get-pending-job-executions \ + --thing-name MotionSensor1 + --endpoint-url https://1234567890abcd.jobs.iot.us-west-2.amazonaws.com + +Output:: + + { + "inProgressJobs": [ + ], + "queuedJobs": [ + { + "executionNumber": 2939653338, + "jobId": "SampleJob", + "lastUpdatedAt": 1567701875.743, + "queuedAt": 1567701902.444, + "versionNumber": 3 + } + ] + } + +For more information, see `Devices and Jobs `__ in the *AWS IoT Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot-jobs-data/start-next-pending-job-execution.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot-jobs-data/start-next-pending-job-execution.rst new file mode 100644 index 000000000..98c4d3169 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot-jobs-data/start-next-pending-job-execution.rst @@ -0,0 +1,25 @@ +**To get and start the next pending job execution for a thing** + +The following ``start-next-pending-job-execution`` example retrieves and starts the next job execution whose status is `IN_PROGRESS` or `QUEUED` for the specified thing. :: + + aws iot-jobs-data start-next-pending-job-execution \ + --thing-name MotionSensor1 + --endpoint-url https://1234567890abcd.jobs.iot.us-west-2.amazonaws.com + +Output:: + + { + "execution": { + "approximateSecondsBeforeTimedOut": 88, + "executionNumber": 2939653338, + "jobId": "SampleJob", + "lastUpdatedAt": 1567714853.743, + "queuedAt": 1567701902.444, + "startedAt": 1567714871.690, + "status": "IN_PROGRESS", + "thingName": "MotionSensor1 ", + "versionNumber": 3 + } + } + +For more information, see `Devices and Jobs `__ in the *AWS IoT Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot-jobs-data/update-job-execution.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot-jobs-data/update-job-execution.rst new file mode 100644 index 000000000..289580462 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot-jobs-data/update-job-execution.rst @@ -0,0 +1,20 @@ +**To update the status of a job execution** + +The following ``update-job-execution`` example updates the status of the specified job and thing. :: + + aws iot-jobs-data update-job-execution \ + --job-id SampleJob \ + --thing-name MotionSensor1 \ + --status REMOVED \ + --endpoint-url https://1234567890abcd.jobs.iot.us-west-2.amazonaws.com + +Output:: + + { + "executionState": { + "status": "REMOVED", + "versionNumber": 3 + }, + } + +For more information, see `Devices and Jobs `__ in the *AWS IoT Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/accept-certificate-transfer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/accept-certificate-transfer.rst new file mode 100644 index 000000000..55be64ff4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/accept-certificate-transfer.rst @@ -0,0 +1,10 @@ +**To accept a device certificate transferred from a different AWS account** + +The following ``accept-certificate-transfer`` example accepts a device certificate transferred from another AWS account. The certificate is identified by its ID. :: + + aws iot accept-certificate-transfer \ + --certificate-id 488b6a7f2acdeb00a77384e63c4e40b18bEXAMPLEe57b7272ba44c45e3448142 + +This command does not produce any output. + +For more information, see `Transfer a certificate to another account `__ in the *AWS IoT Core Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/add-thing-to-billing-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/add-thing-to-billing-group.rst new file mode 100644 index 000000000..a69dfe062 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/add-thing-to-billing-group.rst @@ -0,0 +1,21 @@ +**Example 1: To add a thing by name to a billing group** + +The following ``add-thing-to-billing-group`` example adds the thing named ``MyLightBulb`` to the billing group named ``GroupOne``. :: + + aws iot add-thing-to-billing-group \ + --billing-group-name GroupOne \ + --thing-name MyLightBulb + +This command produces no output. + +**Example 2: To add a thing by ARN to a billing group** + +The following ``add-thing-to-billing-group`` example adds a thing with a specified ARN to a billing group with the specified ARN. Specifying an ARN is helpful if you work with multiple AWS Regions or accounts. It can help ensure that you are adding to the right Region and account. :: + + aws iot add-thing-to-thing-group \ + --billing-group-arn "arn:aws:iot:us-west-2:123456789012:billinggroup/GroupOne" \ + --thing-arn "arn:aws:iot:us-west-2:123456789012:thing/MyOtherLightBulb" + +This command produces no output. + +For more information, see `Billing Groups `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/add-thing-to-thing-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/add-thing-to-thing-group.rst new file mode 100644 index 000000000..441b67b9e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/add-thing-to-thing-group.rst @@ -0,0 +1,12 @@ +**To add a thing to a group** + +The following ``add-thing-to-thing-group`` example adds the specified thing to the specified thing group. :: + + aws iot add-thing-to-thing-group \ + --thing-name MyLightBulb \ + --thing-group-name LightBulbs + +This command produces no output. + +For more information, see `Thing Groups `__ in the *AWS IoT Developers Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/associate-targets-with-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/associate-targets-with-job.rst new file mode 100644 index 000000000..f1fa1287f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/associate-targets-with-job.rst @@ -0,0 +1,17 @@ +**To associate a thing group with a continuous job** + +The following ``associate-targets-with-job`` example associates the specified thing group with the specified continuous job. :: + + aws iot associate-targets-with-job \ + --targets "arn:aws:iot:us-west-2:123456789012:thinggroup/LightBulbs" \ + --job-id "example-job-04" + +Output:: + + { + "jobArn": "arn:aws:iot:us-west-2:123456789012:job/example-job-04", + "jobId": "example-job-04", + "description": "example continuous job" + } + +For more information, see `Creating and Managing Jobs (CLI) `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/attach-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/attach-policy.rst new file mode 100644 index 000000000..710c438a4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/attach-policy.rst @@ -0,0 +1,23 @@ +**Example 1: To attach a policy to a thing group** + +The following ``attach-policy`` example attaches the specified policy to a thing group identified by its ARN. :: + + aws iot attach-policy \ + --target "arn:aws:iot:us-west-2:123456789012:thinggroup/LightBulbs" \ + --policy-name "UpdateDeviceCertPolicy" + +This command does not produce any output. + +For more information, see `Thing Groups `__ in the *AWS IoT Developers Guide*. + +**Example 2: To attach a policy to a certificate** + +The following ``attach-policy`` example attaches the policy ``UpdateDeviceCertPolicy`` to the principal specified by a certificate. :: + + aws iot attach-policy \ + --policy-name UpdateDeviceCertPolicy \ + --target "arn:aws:iot:us-west-2:123456789012:cert/4f0ba725787aa94d67d2fca420eca022242532e8b3c58e7465c7778b443fd65e" + +This command does not produce any output. + +For more information, see `Attach an AWS IoT Policy to a Device Certificate `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/attach-security-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/attach-security-profile.rst new file mode 100644 index 000000000..4e2f22c2d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/attach-security-profile.rst @@ -0,0 +1,11 @@ +**To associate a security profile with all unregistered devices** + +The following ``attach-security-profile`` example associates the AWS IoT Device Defender security profile named ``Testprofile`` with all unregistered devices in the ``us-west-2`` region for this AWS account. :: + + aws iot attach-security-profile \ + --security-profile-name Testprofile \ + --security-profile-target-arn "arn:aws:iot:us-west-2:123456789012:all/unregistered-things" + +This command produces no output. + +For more information, see `Detect Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/attach-thing-principal.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/attach-thing-principal.rst new file mode 100644 index 000000000..512ee2bea --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/attach-thing-principal.rst @@ -0,0 +1,11 @@ +**To attach a certificate to your thing** + +The following ``attach-thing-principal`` example attaches a certificate to the MyTemperatureSensor thing. The certificate is identified by an ARN. You can find the ARN for a certificate in the AWS IoT console. :: + + aws iot attach-thing-principal \ + --thing-name MyTemperatureSensor \ + --principal arn:aws:iot:us-west-2:123456789012:cert/2e1eb273792174ec2b9bf4e9b37e6c6c692345499506002a35159767055278e8 + +This command produces no output. + +For more information, see `How to Manage Things with the Registry `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/cancel-audit-mitigation-actions-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/cancel-audit-mitigation-actions-task.rst new file mode 100755 index 000000000..79df29962 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/cancel-audit-mitigation-actions-task.rst @@ -0,0 +1,10 @@ +**To cancel an audit mitigation actions task** + +The following ``cancel-audit-mitigations-action-task`` example cancels the application of mitigation actions for the specified task. You cannot cancel tasks that are already completed. :: + + aws iot cancel-audit-mitigation-actions-task + --task-id "myActionsTaskId" + +This command produces no output. + +For more information, see `CancelAuditMitigationActionsTask (Mitigation Action Commands) `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/cancel-audit-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/cancel-audit-task.rst new file mode 100644 index 000000000..f60678cc5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/cancel-audit-task.rst @@ -0,0 +1,10 @@ +**To cancel an audit task** + +The following ``cancel-audit-task`` example cancels an audit task with the specified task ID. You cannot cancel a task that is complete. :: + + aws iot cancel-audit-task \ + --task-id a3aea009955e501a31b764abe1bebd3d + +This command produces no output. + +For more information, see `Audit Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/cancel-certificate-transfer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/cancel-certificate-transfer.rst new file mode 100644 index 000000000..fd096ed7d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/cancel-certificate-transfer.rst @@ -0,0 +1,10 @@ +**To cancel the transfer a certificate to a different AWS account** + +The following ``cancel-certificate-transfer`` example cancels the transfer of the specified certificate transfer. The certificate is identified by a certificate ID. You can find the ID for a certificate in the AWS IoT console. :: + + aws iot cancel-certificate-transfer \ + --certificate-id f0f33678c7c9a046e5cc87b2b1a58dfa0beec26db78addd5e605d630e05c7fc8 + +This command produces no output. + +For more information, see `Transfer a certificate to another account `__ in the *AWS IoT Core Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/cancel-job-execution.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/cancel-job-execution.rst new file mode 100644 index 000000000..a99401b21 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/cancel-job-execution.rst @@ -0,0 +1,11 @@ +**To cancel a job execution on a device** + +The following ``cancel-job-execution`` example cancels the execution of the specified job on a device. If the job is not in the ``QUEUED`` state, you must add the ``--force`` parameter. :: + + aws iot cancel-job-execution \ + --job-id "example-job-03" \ + --thing-name "MyRPi" + +This command produces no output. + +For more information, see `Creating and Managing Jobs (CLI) `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/cancel-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/cancel-job.rst new file mode 100644 index 000000000..aab8c166e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/cancel-job.rst @@ -0,0 +1,16 @@ +**To cancel a job** + +The following ``cancel-job`` example cancels the specified job. :: + + aws iot cancel-job \ + --job-job "example-job-03" + +Output:: + + { + "jobArn": "arn:aws:iot:us-west-2:123456789012:job/example-job-03", + "jobId": "example-job-03", + "description": "example job test" + } + +For more information, see `Creating and Managing Jobs (CLI) `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/clear-default-authorizer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/clear-default-authorizer.rst new file mode 100644 index 000000000..c2e3e1222 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/clear-default-authorizer.rst @@ -0,0 +1,9 @@ +**To clear the default authorizer** + +The following ``clear-default-authorizer`` example clears the currently configured default custom authorizer. After you run this command, there is no default authorizer. When you use a custom authorizer, you must specify it by name in the HTTP request headers. :: + + aws iot clear-default-authorizer + +This command produces no output. + +For more information, see `ClearDefaultAuthorizer `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/confirm-topic-rule-destination.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/confirm-topic-rule-destination.rst new file mode 100644 index 000000000..cdb0f0ba4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/confirm-topic-rule-destination.rst @@ -0,0 +1,10 @@ +**To confirm a topic rule destination** + +The following ``confirm-topic-rule-destination`` example confirms a topic rule destination with a confirmation token received at an HTTP endpoint. :: + + aws iot confirm-topic-rule-destination \ + --confirmation-token "AYADeIcmtq-ZkxfpiWIQqHWM5ucAXwABABVhd3MtY3J5cHRvLXB1YmxpYy1rZXkAREFxY1E0UmlGeDg0V21BZWZ1VjZtZWFRVUJJUktUYXJaN09OZlJOczJhRENSZmZYL3JHZC9PR3NNcis5T3ZlSitnQT09AAEAB2F3cy1rbXMAS2Fybjphd3M6a21zOnVzLWVhc3QtMTo5ODc5NTE4NTI0OTk6a2V5L2U4YmU3ODViLTU5NWMtNDcxYi1iOWJmLWQ2Y2I4ZjQxODlmNwC4AQIBAHhwz48UWTGWE1ua0P8U1hj27nsFzEaAdf6Hs2K_7wBheAF62zwMuk_A4dPiC6eyPGuMAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQM9vtRMpf9D3CiZ8sMAgEQgDuFd0Txy-aywpPqg8YEsa1lD4B40aJ2s1wEHKMybiF1RoOZzYisI0IvslzQY5UmCkqq3tV-3f7-nKfosgIAAAAADAAAEAAAAAAAAAAAAAAAAAAi9RMgy-V19V9m6Iw2xfbw_____wAAAAEAAAAAAAAAAAAAAAEAAAB1hw4SokgUcxiJ3gTO6n50NLJVpzyQR1UmPIj5sShqXEQGcOsWmXzpYOOx_PWyPVNsIFHApyK7Cc3g4bW8VaLVwOLkC83g6YaZAh7dFEl2-iufgrzTePl8RZYOWr0O6Aj9DiVzJZx-1iD6Pu-G6PUw1kaO7Knzs2B4AD0qfrHUF4pYRTvyUgBnMGUCMQC8ZRmhKqntd_c6Kgrow3bMUDBvNqo2qZr8Z8Jm2rzgseROlAnLgFLGpGShr99oSZkCMEd1v62NBRKX9HQXnybyF3fkg__-PIetJ803Z4IlIlF8xXlcdPGP-PV1dOXFemyL8g" + +This command produces no output. + +For more information, see `Confirming a topic rule destination `__ in the *AWS IoT Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-audit-suppression.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-audit-suppression.rst new file mode 100644 index 000000000..0f644324f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-audit-suppression.rst @@ -0,0 +1,13 @@ +**To create an audit finding suppression** + +The following ``create-audit-suppression`` example creates an audit finding suppression for a policy named "virtualMachinePolicy" that has been flagged for being overly permissive. :: + + aws iot create-audit-suppression \ + --check-name IOT_POLICY_OVERLY_PERMISSIVE_CHECK \ + --resource-identifier policyVersionIdentifier={"policyName"="virtualMachinePolicy","policyVersionId"="1"} \ + --no-suppress-indefinitely \ + --expiration-date 2020-10-20 + +This command produces no output. + +For more information, see `Audit finding suppressions `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-authorizer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-authorizer.rst new file mode 100644 index 000000000..22b974b52 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-authorizer.rst @@ -0,0 +1,27 @@ +**To create a custom authorizer** + +The following ``create-authorizer`` example creates a custom authorizer that uses the specified Lambda function as part of a custom authentication service. :: + + aws iot create-authorizer \ + --authorizer-name "CustomAuthorizer" \ + --authorizer-function-arn "arn:aws:lambda:us-west-2:123456789012:function:CustomAuthorizerFunction" \ + --token-key-name "MyAuthToken" \ + --status ACTIVE \ + --token-signing-public-keys FIRST_KEY="-----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1uJOB4lQPgG/lM6ZfIwo + Z+7ENxAio9q6QD4FFqjGZsvjtYwjoe1RKK0U8Eq9xb5O3kRSmyIwTzwzm/f4Gf0Y + ZUloJ+t3PUUwHrmbYTAgTrCUgRFygjfgVwGCPs5ZAX4Eyqt5cr+AIHIiUDbxSa7p + zwOBKPeic0asNJpqT8PkBbRaKyleJh5oo81NDHHmVtbBm5A5YiJjqYXLaVAowKzZ + +GqsNvAQ9Jy1wI2VrEa1OfL8flDB/BJLm7zjpfPOHDJQgID0XnZwAlNnZcOhCwIx + 50g2LW2Oy9R/dmqtDmJiVP97Z4GykxPvwlYHrUXY0iW1R3AR/Ac1NhCTGZMwVDB1 + lQIDAQAB + -----END PUBLIC KEY-----" + +Output:: + + { + "authorizerName": "CustomAuthorizer", + "authorizerArn": "arn:aws:iot:us-west-2:123456789012:authorizer/CustomAuthorizer2" + } + +For more information, see `CreateAuthorizer `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-billing-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-billing-group.rst new file mode 100644 index 000000000..4184d7dda --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-billing-group.rst @@ -0,0 +1,16 @@ +**To create a billing group** + +The following ``create-billing-group`` example creates a simple billing group named ``GroupOne``. :: + + aws iot create-billing-group \ + --billing-group-name GroupOne + +Output:: + + { + "billingGroupName": "GroupOne", + "billingGroupArn": "arn:aws:iot:us-west-2:123456789012:billinggroup/GroupOne", + "billingGroupId": "103de383-114b-4f51-8266-18f209ef5562" + } + +For more information, see `Billing Groups `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-certificate-from-csr.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-certificate-from-csr.rst new file mode 100644 index 000000000..611d8e4ad --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-certificate-from-csr.rst @@ -0,0 +1,16 @@ +**To create a device certificate from a certificate signing request (CSR)** + +The following ``create-certificate-from-csr`` example creates a device certificate from a CSR. You can use the ``openssl`` command to create a CSR. :: + + aws iot create-certificate-from-csr \ + --certificate-signing-request=file://certificate.csr + +Output:: + + { + "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/c0c57bbc8baaf4631a9a0345c957657f5e710473e3ddbee1428d216d54d53ac9", + "certificateId": "c0c57bbc8baaf4631a9a0345c957657f5e710473e3ddbee1428d216d54d53ac9", + "certificatePem": "" + } + +For more information, see `CreateCertificateFromCSR `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-custom-metric.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-custom-metric.rst new file mode 100644 index 000000000..92e657b85 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-custom-metric.rst @@ -0,0 +1,19 @@ +**To create a custom metric published by your devices to Device Defender** + +The following ``create-custom-metric`` example creates a custom metric that measures battery percentage. :: + + aws iot create-custom-metric \ + --metric-name "batteryPercentage" \ + --metric-type "number" \ + --display-name "Remaining battery percentage." \ + --region us-east-1 \ + --client-request-token "02ccb92b-33e8-4dfa-a0c1-35b181ed26b0" + +Output:: + + { + "metricName": "batteryPercentage", + "metricArn": "arn:aws:iot:us-east-1:1234564789012:custommetric/batteryPercentage" + } + +For more information, see `Custom metrics `__ in the *AWS IoT Core Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-dimension.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-dimension.rst new file mode 100644 index 000000000..f37d4ffec --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-dimension.rst @@ -0,0 +1,17 @@ +**To create a dimension** + +The following ``create-dimension`` creates a dimension with a single topic filter called ``TopicFilterForAuthMessages``. :: + + aws iot create-dimension \ + --name TopicFilterForAuthMessages \ + --type TOPIC_FILTER \ + --string-values device/+/auth + +Output:: + + { + "name": "TopicFilterForAuthMessages", + "arn": "arn:aws:iot:eu-west-2:123456789012:dimension/TopicFilterForAuthMessages" + } + +For more information, see `Detect Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-domain-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-domain-configuration.rst new file mode 100755 index 000000000..150c5f8f9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-domain-configuration.rst @@ -0,0 +1,16 @@ +**To create a domain configuration** + +The following ``create-domain-configuration`` example creates an AWS-managed domain configuration with a service type of ``DATA``. :: + + aws iot create-domain-configuration \ + --domain-configuration-name "additionalDataDomain" \ + --service-type "DATA" + +Output:: + + { + "domainConfigurationName": "additionalDataDomain", + "domainConfigurationArn": "arn:aws:iot:us-west-2:123456789012:domainconfiguration/additionalDataDomain/dikMh" + } + +For more information, see `Configurable Endpoints `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-dynamic-thing-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-dynamic-thing-group.rst new file mode 100644 index 000000000..9ac838ad8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-dynamic-thing-group.rst @@ -0,0 +1,21 @@ +**To create a dynamic thing group** + +The following ``create-dynamic-thing-group`` example creates a dynamic thing group that contains any thing with a temperature attribute that is greater than 60 degrees. You must enable AWS IoT fleet indexing before you can use dynamic thing groups. :: + + aws iot create-dynamic-thing-group \ + --thing-group-name "RoomTooWarm" \ + --query-string "attributes.temperature>60" + +Output:: + + { + "thingGroupName": "RoomTooWarm", + "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/RoomTooWarm", + "thingGroupId": "9d52492a-fc87-43f4-b6e2-e571d2ffcad1", + "indexName": "AWS_Things", + "queryString": "attributes.temperature>60", + "queryVersion": "2017-09-30" + } + +For more information, see `Dynamic Thing Groups `__ in the *AWS IoT Developers Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-job.rst new file mode 100644 index 000000000..8c3ac7671 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-job.rst @@ -0,0 +1,38 @@ +**Example 1: To create a job** + +The following ``create-job`` example creates a simple AWS IoT job that sends a JSON document to the ``MyRaspberryPi`` device. :: + + aws iot create-job \ + --job-id "example-job-01" \ + --targets "arn:aws:iot:us-west-2:123456789012:thing/MyRaspberryPi" \ + --document file://example-job.json \ + --description "example job test" \ + --target-selection SNAPSHOT + +Output:: + + { + "jobArn": "arn:aws:iot:us-west-2:123456789012:job/example-job-01", + "jobId": "example-job-01", + "description": "example job test" + } + +**Example 2: To create a continuous job** + +The following ``create-job`` example creates a job that continues to run after the things specified as targets have completed the job. In this example, the target is a thing group, so when new devices are added to the group, the continuous job runs on those new things. + + aws iot create-job \ + --job-id "example-job-04" \ + --targets "arn:aws:iot:us-west-2:123456789012:thinggroup/DeadBulbs" \ + --document file://example-job.json --description "example continuous job" \ + --target-selection CONTINUOUS + +Output:: + + { + "jobArn": "arn:aws:iot:us-west-2:123456789012:job/example-job-04", + "jobId": "example-job-04", + "description": "example continuous job" + } + +For more information, see `Creating and Managing Jobs (CLI) `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-keys-and-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-keys-and-certificate.rst new file mode 100644 index 000000000..8f74ab5aa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-keys-and-certificate.rst @@ -0,0 +1,38 @@ +**To create an RSA key pair and issue an X.509 certificate** + +The following ``create-keys-and-certificate`` creates a 2048-bit RSA key pair and issues an X.509 certificate using the issued public key. Because this is the only time that AWS IoT provides the private key for this certificate, be sure to keep it in a secure location. :: + + aws iot create-keys-and-certificate \ + --certificate-pem-outfile "myTest.cert.pem" \ + --public-key-outfile "myTest.public.key" \ + --private-key-outfile "myTest.private.key" + +Output:: + + { + "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/9894ba17925e663f1d29c23af4582b8e3b7619c31f3fbd93adcb51ae54b83dc2", + "certificateId": "9894ba17925e663f1d29c23af4582b8e3b7619c31f3fbd93adcb51ae54b83dc2", + "certificatePem": " + -----BEGIN CERTIFICATE----- + MIICiTCCEXAMPLE6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC + VVMxCzAJBgNVBAgEXAMPLEAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 + b24xFDASBgNVBAsTC0lBTSEXAMPLE2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd + BgkqhkiG9w0BCQEWEG5vb25lQGFtYEXAMPLEb20wHhcNMTEwNDI1MjA0NTIxWhcN + MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCEXAMPLEJBgNVBAgTAldBMRAwDgYD + VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDAEXAMPLEsTC0lBTSBDb25z + b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEXAMPLE25lQGFt + YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+aEXAMPLE + EXAMPLEfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T + rDHudUZEXAMPLELG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE + Ibb3OhjZnzcvQAEXAMPLEWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 + nUhVVxYUntneD9+h8Mg9qEXAMPLEyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb + FFBjvSfpJIlJ00zbhNYS5f6GuoEDEXAMPLEBHjJnyp378OD8uTs7fLvjx79LjSTb + NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE= + -----END CERTIFICATE-----\n", + "keyPair": { + "PublicKey": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkEXAMPLEQEFAAOCAQ8AMIIBCgKCAQEAEXAMPLE1nnyJwKSMHw4h\nMMEXAMPLEuuN/dMAS3fyce8DW/4+EXAMPLEyjmoF/YVF/gHr99VEEXAMPLE5VF13\n59VK7cEXAMPLE67GK+y+jikqXOgHh/xJTwo+sGpWEXAMPLEDz18xOd2ka4tCzuWEXAMPLEahJbYkCPUBSU8opVkR7qkEXAMPLE1DR6sx2HocliOOLtu6Fkw91swQWEXAMPLE\GB3ZPrNh0PzQYvjUStZeccyNCx2EXAMPLEvp9mQOUXP6plfgxwKRX2fEXAMPLEDa\nhJLXkX3rHU2xbxJSq7D+XEXAMPLEcw+LyFhI5mgFRl88eGdsAEXAMPLElnI9EesG\nFQIDAQAB\n-----END PUBLIC KEY-----\n", + "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\nkey omittted for security reasons\n-----END RSA PRIVATE KEY-----\n" + } + } + +For more information, see `Create and Register an AWS IoT Device Certificate `__ in the **AWS IoT Developer Guide**. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-mitigation-action.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-mitigation-action.rst new file mode 100755 index 000000000..16f4df7bd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-mitigation-action.rst @@ -0,0 +1,29 @@ +**To create a mitigation action** + +The following ``create-mitigation-action`` example defines a mitigation action named ``AddThingsToQuarantineGroup1Action`` that, when applied, moves things into the thing group named ``QuarantineGroup1``. This action overrides dynamic thing groups. :: + + aws iot create-mitigation-action --cli-input-json file::params.json + +Contents of ``params.json``:: + + { + "actionName": "AddThingsToQuarantineGroup1Action", + "actionParams": { + "addThingsToThingGroupParams": { + "thingGroupNames": [ + "QuarantineGroup1" + ], + "overrideDynamicGroups": true + } + }, + "roleArn": "arn:aws:iam::123456789012:role/service-role/MoveThingsToQuarantineGroupRole" + } + +Output:: + + { + "actionArn": "arn:aws:iot:us-west-2:123456789012:mitigationaction/AddThingsToQuarantineGroup1Action", + "actionId": "992e9a63-a899-439a-aa50-4e20c52367e1" + } + +For more information, see `CreateMitigationAction (Mitigation Action Commands) `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-ota-update.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-ota-update.rst new file mode 100644 index 000000000..971e6e0e5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-ota-update.rst @@ -0,0 +1,50 @@ +**To create an OTA update for use with Amazon FreeRTOS** + +The following ``create-ota-update`` example creates an AWS IoT OTAUpdate on a target group of things or groups. This is part of an Amazon FreeRTOS over-the-air update which makes it possible for you to deploy new firmware images to a single device or a group of devices. :: + + aws iot create-ota-update \ + --cli-input-json file://create-ota-update.json + +Contents of ``create-ota-update.json``:: + + { + "otaUpdateId": "ota12345", + "description": "A critical update needed right away.", + "targets": [ + "device1", + "device2", + "device3", + "device4" + ], + "targetSelection": "SNAPSHOT", + "awsJobExecutionsRolloutConfig": { + "maximumPerMinute": 10 + }, + "files": [ + { + "fileName": "firmware.bin", + "fileLocation": { + "stream": { + "streamId": "004", + "fileId":123 + } + }, + "codeSigning": { + "awsSignerJobId": "48c67f3c-63bb-4f92-a98a-4ee0fbc2bef6" + } + } + ] + "roleArn": "arn:aws:iam:123456789012:role/service-role/my_ota_role" + } + +Output:: + + { + "otaUpdateId": "ota12345", + "awsIotJobId": "job54321", + "otaUpdateArn": "arn:aws:iot:us-west-2:123456789012:otaupdate/itsaupdate", + "awsIotJobArn": "arn:aws:iot:us-west-2:123456789012:job/itsajob", + "otaUpdateStatus": "CREATE_IN_PROGRESS" + } + +For more information, see `CreateOTAUpdate `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-policy-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-policy-version.rst new file mode 100644 index 000000000..45b31d562 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-policy-version.rst @@ -0,0 +1,32 @@ +**To update a policy with a new version** + +The following ``create-policy-version`` example updates a policy definition, creating a new policy version. This example also makes the new version the default. :: + + aws iot create-policy-version \ + --policy-name UpdateDeviceCertPolicy \ + --policy-document file://policy.json \ + --set-as-default + +Contents of ``policy.json``:: + + { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": "iot:UpdateCertificate", + "Resource": "*" + } + ] + } + +Output:: + + { + "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/UpdateDeviceCertPolicy", + "policyDocument": "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Action\": \"iot:UpdateCertificate\", \"Resource\": \"*\" } ] }", + "policyVersionId": "2", + "isDefaultVersion": true + } + +For more information, see `AWS IoT Policies `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-policy.rst new file mode 100644 index 000000000..a4389bc7b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-policy.rst @@ -0,0 +1,90 @@ +**To create an AWS IoT policy** + +The following ``create-policy`` example creates an AWS IoT policy named TemperatureSensorPolicy. The ``policy.json`` file contains statements that allow AWS IoT policy actions. :: + + aws iot create-policy \ + --policy-name TemperatureSensorPolicy \ + --policy-document file://policy.json + +Contents of ``policy.json``:: + + { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "iot:Publish", + "iot:Receive" + ], + "Resource": [ + "arn:aws:iot:us-west-2:123456789012:topic/topic_1", + "arn:aws:iot:us-west-2:123456789012:topic/topic_2" + ] + }, + { + "Effect": "Allow", + "Action": [ + "iot:Subscribe" + ], + "Resource": [ + "arn:aws:iot:us-west-2:123456789012:topicfilter/topic_1", + "arn:aws:iot:us-west-2:123456789012:topicfilter/topic_2" + ] + }, + { + "Effect": "Allow", + "Action": [ + "iot:Connect" + ], + "Resource": [ + "arn:aws:iot:us-west-2:123456789012:client/basicPubSub" + ] + } + ] + } + +Output:: + + { + "policyName": "TemperatureSensorPolicy", + "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/TemperatureSensorPolicy", + "policyDocument": "{ + \"Version\": \"2012-10-17\", + \"Statement\": [ + { + \"Effect\": \"Allow\", + \"Action\": [ + \"iot:Publish\", + \"iot:Receive\" + ], + \"Resource\": [ + \"arn:aws:iot:us-west-2:123456789012:topic/topic_1\", + \"arn:aws:iot:us-west-2:123456789012:topic/topic_2\" + ] + }, + { + \"Effect\": \"Allow\", + \"Action\": [ + \"iot:Subscribe\" + ], + \"Resource\": [ + \"arn:aws:iot:us-west-2:123456789012:topicfilter/topic_1\", + \"arn:aws:iot:us-west-2:123456789012:topicfilter/topic_2\" + ] + }, + { + \"Effect\": \"Allow\", + \"Action\": [ + \"iot:Connect\" + ], + \"Resource\": [ + \"arn:aws:iot:us-west-2:123456789012:client/basicPubSub\" + ] + } + ] + }", + "policyVersionId": "1" + } + +For more information, see `AWS IoT Policies `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-provisioning-claim.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-provisioning-claim.rst new file mode 100644 index 000000000..96ca13b9b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-provisioning-claim.rst @@ -0,0 +1,58 @@ +**To create a provisioning claim** + +The following ``create-provisioning-claim`` example creates a provisioning claim from a provisioning template. :: + + aws iot create-provisioning-claim \ + --template-name MyTestProvisioningTemplate + +Output:: + + { + "certificateId": "78de02184b2ce80cf8fb709bda59e62b19fb83513590483eb0434589476ab09f", + "certificatePem": "-----BEGIN CERTIFICATE-----\nMIIDdzCCAl+gAwIBAgIUXSZhEBLztMLZ2fHG + 14gV0NymYY0wDQYJKoZIhvcNAQEL\nBQAwfjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBg + VBAcM\nB1NlYXR0bGUxGDAWBgNVBAoMD0FtYXpvbi5jb20gSW5jLjEgMB4GA1UECwwXQW1h\nem9uIElvVCBQcm9 + 2aXNpb25pbmcxDDAKBgNVBAUTAzEuMDAeFw0yMDA3MjgxNjQ0\nMDZaFw0yMDA3MjgxNjUxMDZaMEsxSTBHBgNVB + AMMQDFhNDEyM2VkNmIxYjU3MzE3\nZTgzMTJmY2MzN2FiNTdhY2MzYTZkZGVjOGQ5OGY3NzUwMWRlMjc0YjhmYTQ + xN2Iw\nggEiMA0GCSqGSIb3EXAMPLEAA4IBDwAwggEKAoIBAQDBhKI94ktKLqTwnj+ayOq1\nTAJt/N6s6IJDZvl + rYjkC0E7wzaeY3TprWk03S29vUzVuEOXHXQXZbihgpg2m6fza\nkWm9/wpjzE9ny5+xkPGVH4Wnwz7yK5m8S0agL + T96cRBSWnWmonOWdY0GKVzni0CA\n+iyGudgrFKm7Eae/v18oXrf82KtOAGO4xG0KE2WKYHsT1fx3c9xZhlXP/eX + Lhv00\n+lGp0WVw9PbhKfrxliKJ5q6sL5nVUaUHq6hlQPYwsATeOvAp3u0ak5zgTyL0fg7Y\nPyKk6VYwLW62r+V + YBSForEMOAhkq3LsP/rjxpEKmi2W4lPVS6oFZRKcD+H1Kyil5\nAgMBAAGjIDAeMAwGA1UdEwEB/wQCMAAwDgYDV + R0PAQH/BAQDAgeAMA0GCSqGSIb3\nDQEBCwUAA4IBAQAGgix2k6nVqbZFKq97/fZBzLGS0dyz5rT/E41cDIRX+1j + EPW41\nw0D+2sXheCZLZZnSkvIiP74IToNeXDrjdcaodeGFVHIElRjhMIq+4ZebPbRLtidF\nRc2hfcTAlqq9Z6v + 5Vk6BeM1tu0RqH1wPoVUccLPya8EjNCbnJZUmGdOfrN/Y9pho\n5ikV+HPeZhG/k6dhE2GsQJyKFVHL/uBgKSily + 1bRyWU1r6qcpWBNBHjUoD7HgOwD\nnzMh4XRb2FQDsqFalkCSYmeL8IVC49sgPD9Otyp5uteGMTy62usAAUQdq/f + ZvrWg\nOkFpwMVnGKVKT7Kg0kKOLzKWOBB2Jm4/gmrJ\n-----END CERTIFICATE-----\n", + "keyPair": { + "PublicKey": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCg + KCAQEAwYSiPeJLSi6k8J4/msjq\ntUwCbfzerOiCQ2b5a2I5AtBO8M2nmN06a1pNN0tvb1M1bhDlx10F2W4oYKYN + pun8\n2pFpvf8KY8xPZ8ufsZDxlR+Fp8M+8iuZvEtGoC0/enEQUlp1pqJzlnWNBilc54tA\ngPoshrnYKxSpuxGn + v79fKF63/NirTgBjuMRtChNlimEXAMPLE3PcWYZVz/3ly4b9\nNPpRqdFlcPT24Sn68ZYiieaurC+Z1VGlB6uoZU + D2MLAE3jrwKd7tGpOc4E8i9H4O\n2D8ipOlWMC1utq/lWAUhaKxDDgIZKty7D/648aRCpotluJT1UuqBWUSnA/h9 + Ssop\neQIDAQAB\n-----END PUBLIC KEY-----\n", + "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwYSiPeJLSi6k8J4/ + msjqtUwCbfzerOiCQ2b5a2I5AtBO8M2n\nmN06a1pNN0tvb1M1bhDlx10F2W4oYKYNpun82pFpvf8KY8xPZ8ufsZ + DxlR+Fp8M+\n8iuZvEtGoC0/enEQUlp1pqJzlnWNBilc54tAgPoshrnYKxSpuxGnv79fKF63/Nir\nTgBjuMRtCh + NlimB7E9X8d3PcWYZVz/3ly4b9NPpRqdFlcPT24Sn68ZYiieaurC+Z\n1VGlB6uoZUD2MLAE3jrwKd7tGpOc4E8i + 9H4O2D8ipOlWMC1utq/lWAUhaKxDDgIZ\nKty7D/648aRCpotluJT1UuqBWUSnA/h9SsopeQIDAQABAoIBAEAybN + QUtx9T2/nK\ntZT2pA4iugecxI4dz+DmT0XVXs5VJmrx/nBSq6ejXExEpSIMO4RY7LE3ZdJcnd56\nF7tQkkY7yR + VzfxHeXFU1krOIPuxWebNOrRoPZr+1RSer+wv2aBC525+88pVuR6tM\nm3pgkrR2ycCj9FdOUoQxdjHBHaM5PDmJ + 9aSxCKdg3nReepeGwsR2TQA+m2vVxWk7\nou0+91eTOP+/QfP7P8ZjOIkO2XivlRcVDyN/E4QXPKuIkM/8vS8VK+ + E9pATQ0MtB\n2lw8R/YU5AJd6jlEXAMPLEGU2UzRzInNWiLtkPPPqgqXXhxOf+mxByjcMalVJk0L\nhOG2ROUCgY + EA+ROcHNHy/XbsP7FihOhEh+6Q2QxQ2ncBUPYbBazrR8Hn+7SCICQK\nVyYfd8Ajfq3e7RsKVL5SlMBp7Slidxak + bIn28fKfPn62DaemGCIoyDgLpF+eUxBx\ngzbCiBZga8brfurza43UZjKZLpg3hq721+FeAiXi1Nma4Yr9YWEHEN + 8CgYEAxuWt\npzdWWmsiFzfsAw0sy9ySDA/xr5WRWzJyAqUsjsks6rxNzWebpufnYHcmtW7pLdqM\nkboHwN2pXa + kmZvrk2nKkEMq5brBYGDXuxDe+V369Bianx8aZFyIsckA7OwXW1w1h\ngRC5rQ4XOgp3+Jmw7eAO8LRYDjaN846+ + QbtO2KcCgYAWS0UL51bijQR0ZwI0dz27\nFQVuCAYsp748aurcRTACCj8jbnK/QbqTNlxWsaH7ssBjZKo2D5sAqY + BRtASWODab\naHXsDhVm2Jye+ESLoHMaCLoyCkT3ll8yqXIcEDStMO7fO1Ryag164EiJvSIrMfny\nNL/fXVjCSH + /udCxdzPt+7QKBgQC+LAD7rxdr4J9538hTqpc4XK9vxRbrMXEH55XH\nHbMa2xONZXpmeTgEQBukyohCVceyRhK9 + i0e6irZTjVXghOeoTpC8VXkzcnzouTiQ\neFQQSGfnp7Ioe6UIz23715pKduzSNkMSKrG924ktv7CyDBF1gBQI5g + aDoHnddJBJ\nPRTIZQKBgA8MASXtTxQntRwXXzR92U0vAighiuRkB/mx9jQpUcK1qiqHbkAMqgNF\nPFCBYIUbFT + iYKKKeJNbyJQvjfsJCkAnaFJ+RnTxk0Q6Wjm20peJ/ii4QiDdnigoE\nvdlc5cFQewWb4/zqAtPdinkPlN94ileI + 79XQdc7RlJ0jpgTimL+V\n-----END RSA PRIVATE KEY-----\n" + }, + "expiration": 1595955066.0 + } + +For more information, see `Provisioning by trusted user `__ in the *AWS IoT Core Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-provisioning-template-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-provisioning-template-version.rst new file mode 100644 index 000000000..b691c8a15 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-provisioning-template-version.rst @@ -0,0 +1,81 @@ +**To create a provisioning template version** + +The following example creates a version for the specified provisioning template. The body of the new version is supplied in the file ``template.json``. :: + + aws iot create-provisioning-template-version \ + --template-name widget-template \ + --template-body file://template.json + +Contents of ``template.json``:: + + { + "Parameters" : { + "DeviceLocation": { + "Type": "String" + } + }, + "Mappings": { + "LocationTable": { + "Seattle": { + "LocationUrl": "https://example.aws" + } + } + }, + "Resources" : { + "thing" : { + "Type" : "AWS::IoT::Thing", + "Properties" : { + "AttributePayload" : { + "version" : "v1", + "serialNumber" : "serialNumber" + }, + "ThingName" : {"Fn::Join":["",["ThingPrefix_",{"Ref":"SerialNumber"}]]}, + "ThingTypeName" : {"Fn::Join":["",["ThingTypePrefix_",{"Ref":"SerialNumber"}]]}, + "ThingGroups" : ["widgets", "WA"], + "BillingGroup": "BillingGroup" + }, + "OverrideSettings" : { + "AttributePayload" : "MERGE", + "ThingTypeName" : "REPLACE", + "ThingGroups" : "DO_NOTHING" + } + }, + "certificate" : { + "Type" : "AWS::IoT::Certificate", + "Properties" : { + "CertificateId": {"Ref": "AWS::IoT::Certificate::Id"}, + "Status" : "Active" + } + }, + "policy" : { + "Type" : "AWS::IoT::Policy", + "Properties" : { + "PolicyDocument" : { + "Version": "2012-10-17", + "Statement": [{ + "Effect": "Allow", + "Action":["iot:Publish"], + "Resource": ["arn:aws:iot:us-east-1:123456789012:topic/foo/bar"] + }] + } + } + } + }, + "DeviceConfiguration": { + "FallbackUrl": "https://www.example.com/test-site", + "LocationUrl": { + "Fn::FindInMap": ["LocationTable",{"Ref": "DeviceLocation"}, "LocationUrl"]} + } + } + } + +Output:: + + { + "templateArn": "arn:aws:iot:us-east-1:123456789012:provisioningtemplate/widget-template", + "templateName": "widget-template", + "versionId": 2, + "isDefaultVersion": false + } + +For more information, see `AWS IoT Secure Tunneling `__ in the *AWS IoT Core Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-provisioning-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-provisioning-template.rst new file mode 100644 index 000000000..dfe60a9c9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-provisioning-template.rst @@ -0,0 +1,82 @@ +**To create a provisioning template** + +The following ``create-provisioning-template`` example creates a provisioning template as defined by the file ``template.json``. :: + + aws iot create-provisioning-template \ + --template-name widget-template \ + --description "A provisioning template for widgets" \ + --provisioning-role-arn arn:aws:iam::123456789012:role/Provision_role \ + --template-body file://template.json + +Contents of ``template.json``:: + + { + "Parameters" : { + "DeviceLocation": { + "Type": "String" + } + }, + "Mappings": { + "LocationTable": { + "Seattle": { + "LocationUrl": "https://example.aws" + } + } + }, + "Resources" : { + "thing" : { + "Type" : "AWS::IoT::Thing", + "Properties" : { + "AttributePayload" : { + "version" : "v1", + "serialNumber" : "serialNumber" + }, + "ThingName" : {"Fn::Join":["",["ThingPrefix_",{"Ref":"SerialNumber"}]]}, + "ThingTypeName" : {"Fn::Join":["",["ThingTypePrefix_",{"Ref":"SerialNumber"}]]}, + "ThingGroups" : ["widgets", "WA"], + "BillingGroup": "BillingGroup" + }, + "OverrideSettings" : { + "AttributePayload" : "MERGE", + "ThingTypeName" : "REPLACE", + "ThingGroups" : "DO_NOTHING" + } + }, + "certificate" : { + "Type" : "AWS::IoT::Certificate", + "Properties" : { + "CertificateId": {"Ref": "AWS::IoT::Certificate::Id"}, + "Status" : "Active" + } + }, + "policy" : { + "Type" : "AWS::IoT::Policy", + "Properties" : { + "PolicyDocument" : { + "Version": "2012-10-17", + "Statement": [{ + "Effect": "Allow", + "Action":["iot:Publish"], + "Resource": ["arn:aws:iot:us-east-1:504350838278:topic/foo/bar"] + }] + } + } + } + }, + "DeviceConfiguration": { + "FallbackUrl": "https://www.example.com/test-site", + "LocationUrl": { + "Fn::FindInMap": ["LocationTable",{"Ref": "DeviceLocation"}, "LocationUrl"]} + } + } + } + +Output:: + + { + "templateArn": "arn:aws:iot:us-east-1:123456789012:provisioningtemplate/widget-template", + "templateName": "widget-template", + "defaultVersionId": 1 + } + +For more information, see `AWS IoT Secure Tunneling `__ in the *AWS IoT Core Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-role-alias.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-role-alias.rst new file mode 100644 index 000000000..37ffc41c4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-role-alias.rst @@ -0,0 +1,16 @@ +**To create a role alias** + +The following ``create-role-alias`` example creates a role alias called ``LightBulbRole`` for the specified role. :: + + aws iot create-role-alias \ + --role-alias LightBulbRole \ + --role-arn arn:aws:iam::123456789012:role/lightbulbrole-001 + +Output:: + + { + "roleAlias": "LightBulbRole", + "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/LightBulbRole" + } + +For more information, see `CreateRoleAlias `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-scheduled-audit.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-scheduled-audit.rst new file mode 100644 index 000000000..4c9062de6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-scheduled-audit.rst @@ -0,0 +1,17 @@ +**To create a scheduled audit** + +The following ``create-scheduled-audit`` example creates a scheduled audit that runs weekly, on Wednesday, to check if CA certificates or device certificates are expiring. :: + + aws iot create-scheduled-audit \ + --scheduled-audit-name WednesdayCertCheck \ + --frequency WEEKLY \ + --day-of-week WED \ + --target-check-names CA_CERTIFICATE_EXPIRING_CHECK DEVICE_CERTIFICATE_EXPIRING_CHECK + +Output:: + + { + "scheduledAuditArn": "arn:aws:iot:us-west-2:123456789012:scheduledaudit/WednesdayCertCheck" + } + +For more information, see `Audit Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-security-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-security-profile.rst new file mode 100755 index 000000000..48538908c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-security-profile.rst @@ -0,0 +1,17 @@ +**To create a security profile** + +The following ``create-security-profile`` example creates a security profile that checks if cellular bandwidth exceeds a threshold or if more than 10 authorization failures occur within a five-minute period. :: + + aws iot create-security-profile \ + --security-profile-name PossibleIssue \ + --security-profile-description "Check to see if authorization fails 10 times in 5 minutes or if cellular bandwidth exceeds 128" \ + --behaviors "[{\"name\":\"CellularBandwidth\",\"metric\":\"aws:message-byte-size\",\"criteria\":{\"comparisonOperator\":\"greater-than\",\"value\":{\"count\":128},\"consecutiveDatapointsToAlarm\":1,\"consecutiveDatapointsToClear\":1}},{\"name\":\"Authorization\",\"metric\":\"aws:num-authorization-failures\",\"criteria\":{\"comparisonOperator\":\"less-than\",\"value\":{\"count\":10},\"durationSeconds\":300,\"consecutiveDatapointsToAlarm\":1,\"consecutiveDatapointsToClear\":1}}]" + +Output:: + + { + "securityProfileName": "PossibleIssue", + "securityProfileArn": "arn:aws:iot:us-west-2:123456789012:securityprofile/PossibleIssue" + } + +For more information, see `Detect Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-stream.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-stream.rst new file mode 100644 index 000000000..1e7db3b6d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-stream.rst @@ -0,0 +1,34 @@ +**To create a stream for delivering one or more large files in chunks over MQTT** + +The following ``create-stream`` example creates a stream for delivering one or more large files in chunks over MQTT. A stream transports data bytes in chunks or blocks packaged as MQTT messages from a source like S3. You can have one or more files associated with a stream. :: + + aws iot create-stream \ + --cli-input-json file://create-stream.json + +Contents of ``create-stream.json``:: + + { + "streamId": "stream12345", + "description": "This stream is used for Amazon FreeRTOS OTA Update 12345.", + "files": [ + { + "fileId": 123, + "s3Location": { + "bucket":"codesign-ota-bucket", + "key":"48c67f3c-63bb-4f92-a98a-4ee0fbc2bef6" + } + } + ], + "roleArn": "arn:aws:iam:123456789012:role/service-role/my_ota_stream_role" + } + +Output:: + + { + "streamId": "stream12345", + "streamArn": "arn:aws:iot:us-west-2:123456789012:stream/stream12345", + "description": "This stream is used for Amazon FreeRTOS OTA Update 12345.", + "streamVersion": "1" + } + +For more information, see `CreateStream `__ in the *AWS IoT API Reference*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-thing-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-thing-group.rst new file mode 100644 index 000000000..9200a89f0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-thing-group.rst @@ -0,0 +1,33 @@ +**Example 1: To create a thing group** + +The following ``create-thing-group`` example creates a thing group named ``LightBulbs`` with a description and two attributes. :: + + aws iot create-thing-group \ + --thing-group-name LightBulbs \ + --thing-group-properties "thingGroupDescription=\"Generic bulb group\", attributePayload={attributes={Manufacturer=AnyCompany,wattage=60}}" + +Output:: + + { + "thingGroupName": "LightBulbs", + "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/LightBulbs", + "thingGroupId": "9198bf9f-1e76-4a88-8e8c-e7140142c331" + } + +**Example 2: To create a thing group that's part of a parent group** + +The following ``create-thing-group`` creates a thing group named ``HalogenBulbs`` that has a parent thing group named ``LightBulbs``. :: + + aws iot create-thing-group \ + --thing-group-name HalogenBulbs \ + --parent-group-name LightBulbs + +Output:: + + { + "thingGroupName": "HalogenBulbs", + "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/HalogenBulbs", + "thingGroupId": "f4ec6b84-b42b-499d-9ce1-4dbd4d4f6f6e" + } + +For more information, see `Thing Groups `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-thing-type.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-thing-type.rst new file mode 100644 index 000000000..4a644d732 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-thing-type.rst @@ -0,0 +1,17 @@ +**To define a thing type** + +The following ``create-thing-type`` example defines a thing type and associated attributes. :: + + aws iot create-thing-type \ + --thing-type-name "LightBulb" \ + --thing-type-properties "thingTypeDescription=light bulb type, searchableAttributes=wattage,model" + +Output:: + + { + "thingTypeName": "LightBulb", + "thingTypeArn": "arn:aws:iot:us-west-2:123456789012:thingtype/LightBulb", + "thingTypeId": "ce3573b0-0a3c-45a7-ac93-4e0ce14cd190" + } + +For more information, see `Thing Types `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-thing.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-thing.rst new file mode 100644 index 000000000..4469bf104 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-thing.rst @@ -0,0 +1,33 @@ +**Example 1: To create a thing record in the registry** + +The following ``create-thing`` example creates an entry for a device in the AWS IoT thing registry. :: + + aws iot create-thing \ + --thing-name SampleIoTThing + +Output:: + + { + "thingName": "SampleIoTThing", + "thingArn": "arn:aws:iot:us-west-2: 123456789012:thing/SampleIoTThing", + "thingId": " EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE " + } + +**Example 2: To define a thing that is associated with a thing type** + +The following ``create-thing`` example create a thing that has the specified thing type and its attributes. :: + + aws iot create-thing \ + --thing-name "MyLightBulb" \ + --thing-type-name "LightBulb" \ + --attribute-payload "{"attributes": {"wattage":"75", "model":"123"}}" + +Output:: + + { + "thingName": "MyLightBulb", + "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyLightBulb", + "thingId": "40da2e73-c6af-406e-b415-15acae538797" + } + +For more information, see `How to Manage Things with the Registry `__ and `Thing Types `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-topic-rule-destination.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-topic-rule-destination.rst new file mode 100644 index 000000000..2f628a6a2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-topic-rule-destination.rst @@ -0,0 +1,21 @@ +**To create a topic rule destination** + +The following ``create-topic-rule-destination`` example creates a topic rule destination for an HTTP endpoint. :: + + aws iot create-topic-rule-destination \ + --destination-configuration httpUrlConfiguration={confirmationUrl=https://example.com} + +Output:: + + { + "topicRuleDestination": { + "arn": "arn:aws:iot:us-west-2:123456789012:ruledestination/http/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", + "status": "IN_PROGRESS", + "statusReason": "Awaiting confirmation. Confirmation message sent on 2020-07-09T22:47:54.154Z; no response received from the endpoint.", + "httpUrlProperties": { + "confirmationUrl": "https://example.com" + } + } + } + +For more information, see `Creating a topic rule destination `__ in the *AWS IoT Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-topic-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-topic-rule.rst new file mode 100644 index 000000000..475bccd96 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/create-topic-rule.rst @@ -0,0 +1,28 @@ +**To create a rule that sends an Amazon SNS alert** + +The following ``create-topic-rule`` example creates a rule that sends an Amazon SNS message when soil moisture level readings, as found in a device shadow, are low. :: + + aws iot create-topic-rule \ + --rule-name "LowMoistureRule" \ + --topic-rule-payload file://plant-rule.json + +The example requires the following JSON code to be saved to a file named ``plant-rule.json``:: + + { + "sql": "SELECT * FROM '$aws/things/MyRPi/shadow/update/accepted' WHERE state.reported.moisture = 'low'\n", + "description": "Sends an alert whenever soil moisture level readings are too low.", + "ruleDisabled": false, + "awsIotSqlVersion": "2016-03-23", + "actions": [{ + "sns": { + "targetArn": "arn:aws:sns:us-west-2:123456789012:MyRPiLowMoistureTopic", + "roleArn": "arn:aws:iam::123456789012:role/service-role/MyRPiLowMoistureTopicRole", + "messageFormat": "RAW" + } + }] + } + +This command produces no output. + +For more information, see `Creating an AWS IoT Rule `__ in the *AWS IoT Developers Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-account-audit-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-account-audit-configuration.rst new file mode 100644 index 000000000..cafe5b57d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-account-audit-configuration.rst @@ -0,0 +1,10 @@ +**To disable all audit checks for your AWS account** + +The following ``delete-account-audit-configuration`` example restores the default settings for AWS IoT Device Defender for this account, disabling all audit checks and clearing configuration data. It also deletes any scheduled audits for this account. **Use this command with caution.** :: + + aws iot delete-account-audit-configuration \ + --delete-scheduled-audits + +This command produces no output. + +For more information, see `Audit Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-audit-suppression.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-audit-suppression.rst new file mode 100644 index 000000000..5fc268a76 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-audit-suppression.rst @@ -0,0 +1,11 @@ +**To delete an audit finding suppression** + +The following ``delete-audit-suppression`` example deletes an audit finding suppression for DEVICE_CERTIFICATE_EXPIRING_CHECK. :: + + aws iot delete-audit-suppression \ + --check-name DEVICE_CERTIFICATE_EXPIRING_CHECK \ + --resource-identifier deviceCertificateId="c7691e" + +This command produces no output. + +For more information, see `Audit finding suppressions `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-authorizer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-authorizer.rst new file mode 100644 index 000000000..ea59d53bb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-authorizer.rst @@ -0,0 +1,10 @@ +**To delete a custom authorizer** + +The following ``delete-authorizer`` example deletes the authorizer named ``CustomAuthorizer``. A custom authorizer must be in the ``INACTIVE`` state before you can delete it. :: + + aws iot delete-authorizer \ + --authorizer-name CustomAuthorizer + +This command produces no output. + +For more information, see `DeleteAuthorizer `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-billing-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-billing-group.rst new file mode 100644 index 000000000..25aac126f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-billing-group.rst @@ -0,0 +1,11 @@ +**To delete a billing group** + +The following ``delete-billing-group`` example deletes the specified billing group. You can delete a billing group even if it contains one or more things. :: + + aws iot delete-billing-group \ + --billing-group-name BillingGroupTwo + +This command does not produce any output. + +For more information, see `Billing Groups `__ in the *AWS IoT Developers Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-ca-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-ca-certificate.rst new file mode 100644 index 000000000..06861351e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-ca-certificate.rst @@ -0,0 +1,10 @@ +**To delete a CA certificate** + +The following ``delete-ca-certificate`` example deletes the CA certificate with the specified certificate ID. :: + + aws iot delete-ca-certificate \ + --certificate-id f4efed62c0142f16af278166f61962501165c4f0536295207426460058cd1467 + +This command produces no output. + +For more information, see `DeleteCACertificate `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-certificate.rst new file mode 100644 index 000000000..a5dfeb0de --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-certificate.rst @@ -0,0 +1,10 @@ +**To delete a device certificate** + +The following ``delete-certificate`` example deletes the device certificate with the specified ID. :: + + aws iot delete-certificate \ + --certificate-id c0c57bbc8baaf4631a9a0345c957657f5e710473e3ddbee1428d216d54d53ac9 + +This command produces no output. + +For more information, see `DeleteCertificate `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-custom-metric.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-custom-metric.rst new file mode 100644 index 000000000..75c39a73c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-custom-metric.rst @@ -0,0 +1,13 @@ +**To delete a custom metric** + +The following ``delete-custom-metric`` example deletes a custom metric. :: + + aws iot delete-custom-metric \ + --metric-name batteryPercentage \ + --region us-east-1 + +Output:: + + HTTP 200 + +For more information, see `Custom metrics `__ in the *AWS IoT Core Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-dimension.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-dimension.rst new file mode 100644 index 000000000..f317ec0df --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-dimension.rst @@ -0,0 +1,10 @@ +**To delete a dimension** + +The following ``delete-dimension`` example deletes a dimension called ``TopicFilterForAuthMessages``. :: + + aws iot delete-dimension \ + --name TopicFilterForAuthMessages + +This command produces no output. + +For more information, see `Detect Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-domain-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-domain-configuration.rst new file mode 100755 index 000000000..51edb1a45 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-domain-configuration.rst @@ -0,0 +1,11 @@ +**To delete a domain configuration** + +The following ``delete-domain-configuration`` example deletes a domain configuration named ``additionalDataDomain`` from your AWS account. :: + + aws iot delete-domain-configuration \ + --domain-configuration-name "additionalDataDomain" \ + --domain-configuration-status "OK" + +This command produces no output. + +For more information, see `Configurable Endpoints `__ in the *AWS IoT Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-dynamic-thing-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-dynamic-thing-group.rst new file mode 100644 index 000000000..41fc2344c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-dynamic-thing-group.rst @@ -0,0 +1,10 @@ +**To delete a dynamic thing group** + +The following ``delete-dynamic-thing-group`` example deletes the specified dynamic thing group. :: + + aws iot delete-dynamic-thing-group \ + --thing-group-name "RoomTooWarm" + +This command produces no output. + +For more information, see `Dynamic Thing Groups `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-job-execution.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-job-execution.rst new file mode 100644 index 000000000..3d3cb1c65 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-job-execution.rst @@ -0,0 +1,12 @@ +**To delete a job execution** + +The following ``delete-job-execution`` example deletes the job execution of the specified job on a device. Use ``describe-job-execution`` to get the execution number. :: + + aws iot delete-job-execution + --job-id "example-job-02" + --thing-name "MyRaspberryPi" + --execution-number 1 + +This command produces no output. + +For more information, see `Creating and Managing Jobs (CLI) `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-job.rst new file mode 100644 index 000000000..07eb3c955 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-job.rst @@ -0,0 +1,11 @@ +**To delete a job** + +The following ``delete-job`` example deletes the specified job. By specifying the ``--force`` option, the job is deleted even if the status is ``IN_PROGRESS``. :: + + aws iot delete-job \ + --job-id "example-job-04" \ + --force + +This command produces no output. + +For more information, see `Creating and Managing Jobs (CLI) `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-mitigation-action.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-mitigation-action.rst new file mode 100755 index 000000000..9deca4818 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-mitigation-action.rst @@ -0,0 +1,10 @@ +**To delete a mitigation action** + +The following ``delete-mitigation-action`` example deletes the specified mitigation action. :: + + aws iot delete-mitigation-action \ + --action-name AddThingsToQuarantineGroup1Action + +This command produces no output. + +For more information, see `DeleteMitigationAction (Mitigation Action Commands) `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-ota-update.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-ota-update.rst new file mode 100644 index 000000000..5df1162e0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-ota-update.rst @@ -0,0 +1,12 @@ +**To delete an OTA update** + +The following ``delete-ota-update`` example deletes the specified OTA update. :: + + aws iot delete-ota-update \ + --ota-update-id ota12345 \ + --delete-stream \ + --force-delete-aws-job + +This command produces no output. + +For more information, see `DeleteOTAUpdate `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-policy-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-policy-version.rst new file mode 100644 index 000000000..e2aefae53 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-policy-version.rst @@ -0,0 +1,11 @@ +**To delete a version of policy** + +The following ``delete-policy-version`` example deletes version 2 of the specified policy from your AWS account. :: + + aws iot delete-policy-version \ + --policy-name UpdateDeviceCertPolicy \ + --policy-version-id 2 + +This command produces no output. + +For more information, see `AWS IoT Policies `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-policy.rst new file mode 100644 index 000000000..ec4b9c8ce --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-policy.rst @@ -0,0 +1,9 @@ +**To delete a policy** + +The following ``delete-policy`` example deletes the specified policy from your AWS account. :: + + aws iot delete-policy --policy-name UpdateDeviceCertPolicy + +This command produces no output. + +For more information, see `AWS IoT Policies `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-provisioning-template-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-provisioning-template-version.rst new file mode 100644 index 000000000..ebf4496f6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-provisioning-template-version.rst @@ -0,0 +1,11 @@ +**To delete a provisioning template version** + +The following ``delete-provisioning-template-version`` example deletes version 2 of the specified provisioning template. :: + + aws iot delete-provisioning-template-version \ + --version-id 2 \ + --template-name "widget-template" + +This command produces no output. + +For more information, see `AWS IoT Secure Tunneling `__ in the *AWS IoT Core Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-provisioning-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-provisioning-template.rst new file mode 100644 index 000000000..08795d46a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-provisioning-template.rst @@ -0,0 +1,10 @@ +**To delete a provisioning template** + +The following ``delete-provisioning-template`` example deletes the specified provisioning template. :: + + aws iot delete-provisioning-template \ + --template-name widget-template + +This command produces no output. + +For more information, see `AWS IoT Secure Tunneling `__ in the *AWS IoT Core Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-registration-code.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-registration-code.rst new file mode 100644 index 000000000..491d507c0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-registration-code.rst @@ -0,0 +1,9 @@ +**To delete your registration cod** + +The following ``delete-registration-code`` example deletes an AWS IoT account-specific registration code. :: + + aws iot delete-registration-code + +This command produces no output. + +For more information, see `Use Your Own Certificate `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-role-alias.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-role-alias.rst new file mode 100644 index 000000000..d02203344 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-role-alias.rst @@ -0,0 +1,10 @@ +**To delete an AWS IoT role alias** + +The following ``delete-role-alias`` example deletes an AWS IoT role alias named ``LightBulbRole``. :: + + aws iot delete-role-alias \ + --role-alias LightBulbRole + +This command produces no output. + +For more information, see `Authorizing Direct Calls to AWS Services `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-scheduled-audit.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-scheduled-audit.rst new file mode 100644 index 000000000..0b6d9c079 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-scheduled-audit.rst @@ -0,0 +1,10 @@ +**To delete a scheduled audit** + +The following ``delete-scheduled-audit`` example deletes the AWS IoT Device Defender scheduled audit named ``AWSIoTDeviceDefenderDailyAudit``. :: + + aws iot delete-scheduled-audit \ + --scheduled-audit-name AWSIoTDeviceDefenderDailyAudit + +This command produces no output. + +For more information, see `Audit Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-security-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-security-profile.rst new file mode 100644 index 000000000..c051ef2f5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-security-profile.rst @@ -0,0 +1,10 @@ +**To delete a security profile** + +The following ``delete-security-profile`` example deletes a security profile named ``PossibleIssue``. :: + + aws iot delete-security-profile \ + --security-profile-name PossibleIssue + +This command produces no output. + +For more information, see `Detect Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-stream.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-stream.rst new file mode 100644 index 000000000..fe53ac1f7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-stream.rst @@ -0,0 +1,10 @@ +**To delete a stream** + +The following ``delete-stream`` example deletes the specified stream. :: + + aws iot delete-stream \ + --stream-id stream12345 + +This command produces no output. + +For more information, see `DeleteStream `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-thing-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-thing-group.rst new file mode 100644 index 000000000..7bea74e7c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-thing-group.rst @@ -0,0 +1,10 @@ +**To delete a thing group** + +The following ``delete-thing-group`` example deletes the specified thing group. You cannot delete a thing group if it contains child thing groups. :: + + aws iot delete-thing-group \ + --thing-group-name DefectiveBulbs + +This command produces no output. + +For more information, see `Thing Groups `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-thing-type.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-thing-type.rst new file mode 100644 index 000000000..1e56f6d8b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-thing-type.rst @@ -0,0 +1,11 @@ +**Example 1: To delete a thing type** + +The following ``delete-thing-type`` example deletes a deprecated thing type. :: + + aws iot delete-thing-type \ + --thing-type-name "obsoleteThingType" + +This command produces no output. + +For more information, see `Thing Types `__ in the *AWS IoT Developers Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-thing.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-thing.rst new file mode 100644 index 000000000..04668cd1a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-thing.rst @@ -0,0 +1,9 @@ +**To display detailed information about a thing** + +The following ``delete-thing`` example deletes a thing from the AWS IoT registry for your AWS account. + + aws iot delete-thing --thing-name "FourthBulb" + +This command produces no output. + +For more information, see `How to Manage Things with the Registry `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-topic-rule-destination.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-topic-rule-destination.rst new file mode 100644 index 000000000..f87b0813b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-topic-rule-destination.rst @@ -0,0 +1,10 @@ +**To delete a topic rule destination** + +The following ``delete-topic-rule-destination`` example deletes the specified topic rule destination. :: + + aws iot delete-topic-rule-destination \ + --arn "arn:aws:iot:us-west-2:123456789012:ruledestination/http/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" + +This command produces no output. + +For more information, see `Deleting a topic rule destination `__ in the *AWS IoT Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-topic-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-topic-rule.rst new file mode 100644 index 000000000..ccac8c915 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-topic-rule.rst @@ -0,0 +1,11 @@ +**To delete a rule** + +The following ``delete-topic-rule`` example deletes the specified rule. :: + + aws iot delete-topic-rule \ + --rule-name "LowMoistureRule" + +This command produces no output. + +For more information, see `Deleting a Rule `__ in the *AWS IoT Developers Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-v2-logging-level.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-v2-logging-level.rst new file mode 100644 index 000000000..c8dd279c8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/delete-v2-logging-level.rst @@ -0,0 +1,9 @@ +**To delete the logging level for a thing group** + +The following ``delete-v2-logging-level`` example deletes the logging level for the specified thing group. :: + + aws iot delete-v2-logging-level \ + --target-type THING_GROUP \ + --target-name LightBulbs + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/deprecate-thing-type.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/deprecate-thing-type.rst new file mode 100644 index 000000000..333f5f5ec --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/deprecate-thing-type.rst @@ -0,0 +1,21 @@ +**Example 1: To deprecate a thing type** + +The following ``deprecate-thing-type`` example deprecates a thing type so that users can't associate any new things with it. :: + + aws iot deprecate-thing-type \ + --thing-type-name "obsoleteThingType" + +This command produces no output. + +**Example 2: To reverse the deprecation of a thing type** + +The following ``deprecate-thing-type`` example reverses the deprecation of a thing type, which makes it possible for users to associate new things with it again. :: + + aws iot deprecate-thing-type \ + --thing-type-name "obsoleteThingType" \ + --undo-deprecate + +This command produces no output. + +For more information, see `Thing Types `__ in the *AWS IoT Developers Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-account-audit-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-account-audit-configuration.rst new file mode 100644 index 000000000..d7ef5469f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-account-audit-configuration.rst @@ -0,0 +1,52 @@ +**To view current audit configuration settings** + +The following ``describe-account-audit-configuration`` example lists the current settings for your AWS IoT Device Defender audit configuration. :: + + aws iot describe-account-audit-configuration + +Output:: + + { + "roleArn": "arn:aws:iam::123456789012:role/service-role/AWSIoTDeviceDefenderAudit_1551201085996", + "auditNotificationTargetConfigurations": { + "SNS": { + "targetArn": "arn:aws:sns:us-west-2:123456789012:ddaudits", + "roleArn": "arn:aws:iam::123456789012:role/service-role/AWSIoTDeviceDefenderAudit", + "enabled": true + } + }, + "auditCheckConfigurations": { + "AUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK": { + "enabled": true + }, + "CA_CERTIFICATE_EXPIRING_CHECK": { + "enabled": true + }, + "CONFLICTING_CLIENT_IDS_CHECK": { + "enabled": true + }, + "DEVICE_CERTIFICATE_EXPIRING_CHECK": { + "enabled": true + }, + "DEVICE_CERTIFICATE_SHARED_CHECK": { + "enabled": true + }, + "IOT_POLICY_OVERLY_PERMISSIVE_CHECK": { + "enabled": true + }, + "LOGGING_DISABLED_CHECK": { + "enabled": true + }, + "REVOKED_CA_CERTIFICATE_STILL_ACTIVE_CHECK": { + "enabled": true + }, + "REVOKED_DEVICE_CERTIFICATE_STILL_ACTIVE_CHECK": { + "enabled": true + }, + "UNAUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK": { + "enabled": true + } + } + } + +For more information, see `Audit Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-audit-finding.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-audit-finding.rst new file mode 100755 index 000000000..3cea6afd6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-audit-finding.rst @@ -0,0 +1,32 @@ +**To list details for an audit finding** + +The following ``describe-audit-finding`` example lists the details for the specified AWS IoT Device Defender audit finding. An audit can produce multiple findings. Use the ``list-audit-findings`` command to get a list of the findings from an audit to get the ``findingId``. :: + + aws iot describe-audit-finding \ + --finding-id "ef4826b8-e55a-44b9-b460-5c485355371b" + +Output:: + + { + "finding": { + "findingId": "ef4826b8-e55a-44b9-b460-5c485355371b", + "taskId": "873ed69c74a9ec8fa9b8e88e9abc4661", + "checkName": "IOT_POLICY_OVERLY_PERMISSIVE_CHECK", + "taskStartTime": 1576012045.745, + "findingTime": 1576012046.168, + "severity": "CRITICAL", + "nonCompliantResource": { + "resourceType": "IOT_POLICY", + "resourceIdentifier": { + "policyVersionIdentifier": { + "policyName": "smp-ggrass-group_Core-policy", + "policyVersionId": "1" + } + } + }, + "reasonForNonCompliance": "Policy allows broad access to IoT data plane actions: [iot:Subscribe, iot:Connect, iot:GetThingShadow, iot:DeleteThingShadow, iot:UpdateThingShadow, iot:Publish].", + "reasonForNonComplianceCode": "ALLOWS_BROAD_ACCESS_TO_IOT_DATA_PLANE_ACTIONS" + } + } + +For more information, see `Check Audit Results (Audit Commands) `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-audit-mitigation-actions-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-audit-mitigation-actions-task.rst new file mode 100755 index 000000000..3bf816cd6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-audit-mitigation-actions-task.rst @@ -0,0 +1,47 @@ +**To show the details of an audit mitigation actions task** + +The following ``describe-audit-mitigation-actions-task`` example shows the details for the specified task, where the ``ResetPolicyVersionAction`` was applied to a finding. The results include when the task started and ended, how many findings were targeted (and the outcome), and the definition of the action that is applied as part of this task. :: + + aws iot describe-audit-mitigation-actions-task \ + --task-id ResetPolicyTask01 + +Output:: + + { + "taskStatus": "COMPLETED", + "startTime": "2019-12-10T15:13:19.457000-08:00", + "endTime": "2019-12-10T15:13:19.947000-08:00", + "taskStatistics": { + "IOT_POLICY_OVERLY_PERMISSIVE_CHECK": { + "totalFindingsCount": 1, + "failedFindingsCount": 0, + "succeededFindingsCount": 1, + "skippedFindingsCount": 0, + "canceledFindingsCount": 0 + } + }, + "target": { + "findingIds": [ + "ef4826b8-e55a-44b9-b460-5c485355371b" + ] + }, + "auditCheckToActionsMapping": { + "IOT_POLICY_OVERLY_PERMISSIVE_CHECK": [ + "ResetPolicyVersionAction" + ] + }, + "actionsDefinition": [ + { + "name": "ResetPolicyVersionAction", + "id": "1ea0b415-bef1-4a01-bd13-72fb63c59afb", + "roleArn": "arn:aws:iam::123456789012:role/service-role/ReplacePolicyVersionRole", + "actionParams": { + "replaceDefaultPolicyVersionParams": { + "templateName": "BLANK_POLICY" + } + } + } + ] + } + +For more information, see `DescribeAuditMitigationActionsTask (Mitigation Action Commands) `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-audit-suppression.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-audit-suppression.rst new file mode 100644 index 000000000..563f9bf9e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-audit-suppression.rst @@ -0,0 +1,34 @@ +**To get details about an audit finding suppression** + +The following ``describe-audit-suppression`` example lists details about an audit finding suppression. :: + + aws iot describe-audit-task \ + --task-id "787ed873b69cb4d6cdbae6ddd06996c5" + +Output:: + + { + "taskStatus": "COMPLETED", + "taskType": "SCHEDULED_AUDIT_TASK", + "taskStartTime": 1596168096.157, + "taskStatistics": { + "totalChecks": 1, + "inProgressChecks": 0, + "waitingForDataCollectionChecks": 0, + "compliantChecks": 0, + "nonCompliantChecks": 1, + "failedChecks": 0, + "canceledChecks": 0 + }, + "scheduledAuditName": "AWSIoTDeviceDefenderDailyAudit", + "auditDetails": { + "DEVICE_CERTIFICATE_EXPIRING_CHECK": { + "checkRunStatus": "COMPLETED_NON_COMPLIANT", + "checkCompliant": false, + "totalResourcesCount": 195, + "nonCompliantResourcesCount": 2 + } + } + } + +For more information, see `Audit finding suppressions `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-audit-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-audit-task.rst new file mode 100644 index 000000000..3ee2f4d3a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-audit-task.rst @@ -0,0 +1,45 @@ +**To get information about an audit instance** + +The following ``describe-audit-task`` example gets information about an instance of an AWS IoT Device Defender audit. If the audit is complete, summary statistics for the run are included in the results. :: + + aws iot describe-audit-task \ + --task-id a3aea009955e501a31b764abe1bebd3d + +Output:: + + { + "taskStatus": "COMPLETED", + "taskType": "ON_DEMAND_AUDIT_TASK", + "taskStartTime": 1560356923.434, + "taskStatistics": { + "totalChecks": 3, + "inProgressChecks": 0, + "waitingForDataCollectionChecks": 0, + "compliantChecks": 3, + "nonCompliantChecks": 0, + "failedChecks": 0, + "canceledChecks": 0 + }, + "auditDetails": { + "CA_CERTIFICATE_EXPIRING_CHECK": { + "checkRunStatus": "COMPLETED_COMPLIANT", + "checkCompliant": true, + "totalResourcesCount": 0, + "nonCompliantResourcesCount": 0 + }, + "DEVICE_CERTIFICATE_EXPIRING_CHECK": { + "checkRunStatus": "COMPLETED_COMPLIANT", + "checkCompliant": true, + "totalResourcesCount": 6, + "nonCompliantResourcesCount": 0 + }, + "REVOKED_CA_CERTIFICATE_STILL_ACTIVE_CHECK": { + "checkRunStatus": "COMPLETED_COMPLIANT", + "checkCompliant": true, + "totalResourcesCount": 0, + "nonCompliantResourcesCount": 0 + } + } + } + +For more information, see `Audit Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-authorizer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-authorizer.rst new file mode 100644 index 000000000..eb36c9a2e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-authorizer.rst @@ -0,0 +1,25 @@ +**To get information about a custom authorizer** + +The following ``describe-authorizer`` example displays details for the specified custom authorizer. :: + + aws iot describe-authorizer \ + --authorizer-name CustomAuthorizer + +Output:: + + { + "authorizerDescription": { + "authorizerName": "CustomAuthorizer", + "authorizerArn": "arn:aws:iot:us-west-2:123456789012:authorizer/CustomAuthorizer", + "authorizerFunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:CustomAuthorizerFunction", + "tokenKeyName": "MyAuthToken", + "tokenSigningPublicKeys": { + "FIRST_KEY": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1uJOB4lQPgG/lM6ZfIwo\nZ+7ENxAio9q6QD4FFqjGZsvjtYwjoe1RKK0U8Eq9xb5O3kRSmyIwTzwzm/f4Gf0Y\nZUloJ+t3PUUwHrmbYTAgTrCUgRFygjfgVwGCPs5ZAX4Eyqt5cr+AIHIiUDbxSa7p\nzwOBKPeic0asNJpqT8PkBbRaKyleJh5oo81NDHHmVtbBm5A5YiJjqYXLaVAowKzZ\n+GqsNvAQ9Jy1wI2VrEa1OfL8flDB/BJLm7zjpfPOHDJQgID0XnZwAlNnZcOhCwIx\n50g2LW2Oy9R/dmqtDmJiVP97Z4GykxPvwlYHrUXY0iW1R3AR/Ac1NhCTGZMwVDB1\nlQIDAQAB\n-----END PUBLIC KEY-----" + }, + "status": "ACTIVE", + "creationDate": 1571245658.069, + "lastModifiedDate": 1571245658.069 + } + } + +For more information, see `DescribeAuthorizer `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-billing-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-billing-group.rst new file mode 100644 index 000000000..b7516324b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-billing-group.rst @@ -0,0 +1,20 @@ +**To get information about a billing group** + +The following ``describe-billing-group`` example gets information for the specified billing group. :: + + aws iot describe-billing-group --billing-group-name GroupOne + +Output:: + + { + "billingGroupName": "GroupOne", + "billingGroupId": "103de383-114b-4f51-8266-18f209ef5562", + "billingGroupArn": "arn:aws:iot:us-west-2:123456789012:billinggroup/GroupOne", + "version": 1, + "billingGroupProperties": {}, + "billingGroupMetadata": { + "creationDate": 1560199355.378 + } + } + +For more information, see `Billing Groups `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-ca-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-ca-certificate.rst new file mode 100644 index 000000000..b7b8a0002 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-ca-certificate.rst @@ -0,0 +1,29 @@ +**To get details about a CA certificate** + +The following ``describe-ca-certificate`` example displays the details for the specified CA certificate. :: + + aws iot describe-ca-certificate \ + --certificate-id f4efed62c0142f16af278166f61962501165c4f0536295207426460058cd1467 + +Output:: + + { + "certificateDescription": { + "certificateArn": "arn:aws:iot:us-west-2:123456789012:cacert/f4efed62c0142f16af278166f61962501165c4f0536295207426460058cd1467", + "certificateId": "f4efed62c0142f16af278166f61962501165c4f0536295207426460058cd1467", + "status": "INACTIVE", + "certificatePem": "-----BEGIN CERTIFICATE-----\nMIICzzCCAbegEXAMPLEJANVEPWXl8taPMA0GCSqGSIb3DQEBBQUAMB4xCzAJBgNV\nBAYTAlVTMQ8wDQYDVQQKDAZBbWF6b24wHhcNMTkwOTI0MjEzMTE1WhcNMjkwOTIx\nMjEzMTE1WjAeMQswCQYDVQQGEwJVUzEPMA0GA1UECgwGQW1hem9uMIIBIjANBgkq\nhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzd3R3ioalCS0MhFWfBrVGR036EK07UAf\nVdz9EXAMPLE1VczICbADnATK522kEIB51/18VzlFtAhQL5V5eybXKnB7QebNer5m\n4Yibx7shR5oqNzFsrXWxuugN5+w5gEfqNMawOjhF4LsculKG49yuqjcDU19/13ua\n3B2gxs1Pe7TiWWvUskzxnbO1F2WCshbEJvqY8fIWtGYCjTeJAgQ9hvZx/69XhKen\nwV9LJwOQxrsUS0Ty8IHwbB8fRy72VM3u7fJoaU+nO4jD5cqaoEPtzoeFUEXAMPLE\nyVAJpqHwgbYbcUfn7V+AB6yh1+0Fa1rEQGuZDPGyJslxwr5vh8nRewIDAQABoxAw\nDjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQA+3a5CV3IJgOnd0AgI\nBgVMtmYzTvqAngx26aG9/spvCjXckh2SBF+EcBlCFwH1yakwjJL1dR4yarnrfxgI\nEqP4AOYVimAVoQ5FBwnloHe16+3qtDiblU9DeXBUCtS55EcfrEXAMPLEYtXdqU5C\nU9ia4KAjV0dxW1+EFYMwX5eGeb0gDTNHBylV6B/fOSZiQAwDYp4x3B+gAP+a/bWB\nu1umOqtBdWe6L6/83L+JhaTByqV25iVJ4c/UZUnG8926wUlDM9zQvEXuEVvzZ7+m\n4PSNqst/nVOvnLpoG4e0WgcJgANuB33CSWtjWSuYsbhmqQRknGhREXAMPLEZT4fm\nfo0e\n-----END CERTIFICATE-----\n", + "ownedBy": "123456789012", + "creationDate": 1569365372.053, + "autoRegistrationStatus": "DISABLE", + "lastModifiedDate": 1569365372.053, + "customerVersion": 1, + "generationId": "c5c2eb95-140b-4f49-9393-6aaac85b2a90", + "validity": { + "notBefore": 1569360675.0, + "notAfter": 1884720675.0 + } + } + } + +For more information, see `DescribeCACertificate `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-certificate.rst new file mode 100644 index 000000000..3506f1aa6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-certificate.rst @@ -0,0 +1,44 @@ +**To get information about a certificate** + +The following ``describe-certificate`` example displays the details for the specified certificate. :: + + aws iot describe-certificate \ + --certificate-id "4f0ba725787aa94d67d2fca420eca022242532e8b3c58e7465c7778b443fd65e" + +Output:: + + { + "certificateDescription": { + "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/4f0ba725787aa94d67d2fca420eca022242532e8b3c58e7465c7778b443fd65e", + "certificateId": "4f0ba725787aa94d67d2fca420eca022242532e8b3c58e7465c7778b443fd65e", + "status": "ACTIVE", + "certificatePem": "-----BEGIN CERTIFICATE----- + MIICiTEXAMPLEQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC + VVMxCzAJBgNVBEXAMPLEMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 + b24xFDASBgNVBAsTC0lBTSBDEXAMPLElMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd + BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5EXAMPLEcNMTEwNDI1MjA0NTIxWhcN + MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNEXAMPLEdBMRAwDgYD + VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBEXAMPLEz + b2xEXAMPLEYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt + YXpvbi5jb20wgZ8EXAMPLEZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ + 21uUSfwfEvySWtC2XADZ4nB+BLYEXAMPLEpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T + rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7EXAMPLEGBzZswY6786m86gpE + Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFEXAMPLEAtCu4 + nUhVVxYUnEXAMPLE8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb + FFBjvSfpJIlJ00zbhNYS5f6GEXAMPLEl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb + NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE= + -----END CERTIFICATE-----", + "ownedBy": "123456789012", + "creationDate": 1541022751.983, + "lastModifiedDate": 1541022751.983, + "customerVersion": 1, + "transferData": {}, + "generationId": "6974fbed-2e61-4114-bc5e-4204cc79b045", + "validity": { + "notBefore": 1541022631.0, + "notAfter": 2524607999.0 + } + } + } + +For more information, see `DescribeCertificate `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-custom-metric.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-custom-metric.rst new file mode 100644 index 000000000..45a75be73 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-custom-metric.rst @@ -0,0 +1,19 @@ +**To get information about a Device Defender custom metric** + +The following ``describe-custom-metric`` example gets information about a custom metric named ``myCustomMetric``. :: + + aws iot describe-custom-metric \ + --metric-name myCustomMetric + +Output:: + + { + "metricName": "myCustomMetric", + "metricArn": "arn:aws:iot:us-east-1:1234564789012:custommetric/myCustomMetric", + "metricType": "number", + "displayName": "My custom metric", + "creationDate": 2020-11-17T23:02:12.879000-09:00, + "lastModifiedDate": 2020-11-17T23:02:12.879000-09:00 + } + +For more information, see `Custom metrics `__ in the *AWS IoT Core Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-default-authorizer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-default-authorizer.rst new file mode 100644 index 000000000..3645d2ca5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-default-authorizer.rst @@ -0,0 +1,14 @@ +**To get information about the default custom authorizer** + +The following ``describe-default-authorizer`` example displays details for the default custom authorizer. :: + + aws iot describe-default-authorizer + +Output:: + + { + "authorizerName": "CustomAuthorizer", + "authorizerArn": "arn:aws:iot:us-west-2:123456789012:authorizer/CustomAuthorizer" + } + +For more information, see `DescribeDefaultAuthorizer `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-dimension.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-dimension.rst new file mode 100644 index 000000000..7f91b65ef --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-dimension.rst @@ -0,0 +1,21 @@ +**To get information about a dimension** + +The following ``describe-dimension`` example gets information about a dimension named ``TopicFilterForAuthMessages``. :: + + aws iot describe-dimension \ + --name TopicFilterForAuthMessages + +Output:: + + { + "name": "TopicFilterForAuthMessages", + "arn": "arn:aws:iot:eu-west-2:123456789012:dimension/TopicFilterForAuthMessages", + "type": "TOPIC_FILTER", + "stringValues": [ + "device/+/auth" + ], + "creationDate": 1578620223.255, + "lastModifiedDate": 1578620223.255 + } + +For more information, see `Detect Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-domain-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-domain-configuration.rst new file mode 100755 index 000000000..19a8ecab3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-domain-configuration.rst @@ -0,0 +1,21 @@ +**To describe a domain configuration** + +The following ``describe-domain-configuration`` example displays details about the specified domain configuration. :: + + aws iot describe-domain-configuration \ + --domain-configuration-name "additionalDataDomain" + +Output:: + + { + "domainConfigurationName": "additionalDataDomain", + "domainConfigurationArn": "arn:aws:iot:us-east-1:758EXAMPLE143:domainconfiguration/additionalDataDomain/norpw", + "domainName": "d055exampleed74y71zfd-ats.beta.us-east-1.iot.amazonaws.com", + "serverCertificates": [], + "domainConfigurationStatus": "ENABLED", + "serviceType": "DATA", + "domainType": "AWS_MANAGED", + "lastStatusChangeDate": 1601923783.774 + } + +For more information, see `Configurable Endpoints `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-endpoint.rst new file mode 100644 index 000000000..c79ebff5f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-endpoint.rst @@ -0,0 +1,28 @@ +**Example 1: To get your current AWS endpoint** + +The following ``describe-endpoint`` example retrieves the default AWS endpoint to which all commands are applied. :: + + aws iot describe-endpoint + +Output:: + + { + "endpointAddress": "abc123defghijk.iot.us-west-2.amazonaws.com" + } + +For more information, see `DescribeEndpoint `__ in the *AWS IoT Developer Guide*. + +**Example 2: To get your ATS endpoint** + +The following ``describe-endpoint`` example retrieves the Amazon Trust Services (ATS) endpoint. :: + + aws iot describe-endpoint \ + --endpoint-type iot:Data-ATS + +Output:: + + { + "endpointAddress": "abc123defghijk-ats.iot.us-west-2.amazonaws.com" + } + +For more information, see `X.509 Certificates and AWS IoT `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-event-configurations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-event-configurations.rst new file mode 100644 index 000000000..aca5f906f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-event-configurations.rst @@ -0,0 +1,47 @@ +**To show which event types are published** + +The following ``describe-event-configurations`` example lists the configuration that controls which events are generated when something is added, updated, or deleted. :: + + aws iot describe-event-configurations + +Output:: + + { + "eventConfigurations": { + "CA_CERTIFICATE": { + "Enabled": false + }, + "CERTIFICATE": { + "Enabled": false + }, + "JOB": { + "Enabled": false + }, + "JOB_EXECUTION": { + "Enabled": false + }, + "POLICY": { + "Enabled": false + }, + "THING": { + "Enabled": false + }, + "THING_GROUP": { + "Enabled": false + }, + "THING_GROUP_HIERARCHY": { + "Enabled": false + }, + "THING_GROUP_MEMBERSHIP": { + "Enabled": false + }, + "THING_TYPE": { + "Enabled": false + }, + "THING_TYPE_ASSOCIATION": { + "Enabled": false + } + } + } + +For more information, see `Event Messages `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-index.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-index.rst new file mode 100644 index 000000000..adeaef81f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-index.rst @@ -0,0 +1,16 @@ +**To retrieve the current status of the thing index** + +The following ``describe-index`` example retrieves the current status of the thing index. :: + + aws iot describe-index \ + --index-name "AWS_Things" + +Output:: + + { + "indexName": "AWS_Things", + "indexStatus": "ACTIVE", + "schema": "REGISTRY_AND_SHADOW_AND_CONNECTIVITY_STATUS" + } + +For more information, see `Managing Thing Indexing `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-job-execution.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-job-execution.rst new file mode 100644 index 000000000..a025a1f33 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-job-execution.rst @@ -0,0 +1,24 @@ +**To get execution details for a job on a device** + +The following ``describe-job-execution`` example gets execution details for the specified job. :: + + aws iot describe-job-execution \ + --job-id "example-job-01" \ + --thing-name "MyRaspberryPi" + +Output:: + + { + "execution": { + "jobId": "example-job-01", + "status": "QUEUED", + "statusDetails": {}, + "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyRaspberryPi", + "queuedAt": 1560787023.636, + "lastUpdatedAt": 1560787023.636, + "executionNumber": 1, + "versionNumber": 1 + } + } + +For more information, see `Creating and Managing Jobs (CLI) `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-job.rst new file mode 100644 index 000000000..98b5aa54a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-job.rst @@ -0,0 +1,38 @@ +**To get detailed status for a job** + +The following ``describe-job`` example gets detailed status for the job whose ID is ``example-job-01``. :: + + aws iot describe-job \ + --job-id "example-job-01" + +Output:: + + { + "job": { + "jobArn": "arn:aws:iot:us-west-2:123456789012:job/example-job-01", + "jobId": "example-job-01", + "targetSelection": "SNAPSHOT", + "status": "IN_PROGRESS", + "targets": [ + "arn:aws:iot:us-west-2:123456789012:thing/MyRaspberryPi" + ], + "description": "example job test", + "presignedUrlConfig": {}, + "jobExecutionsRolloutConfig": {}, + "createdAt": 1560787022.733, + "lastUpdatedAt": 1560787026.294, + "jobProcessDetails": { + "numberOfCanceledThings": 0, + "numberOfSucceededThings": 0, + "numberOfFailedThings": 0, + "numberOfRejectedThings": 0, + "numberOfQueuedThings": 1, + "numberOfInProgressThings": 0, + "numberOfRemovedThings": 0, + "numberOfTimedOutThings": 0 + }, + "timeoutConfig": {} + } + } + +For more information, see `Creating and Managing Jobs (CLI) `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-mitigation-action.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-mitigation-action.rst new file mode 100755 index 000000000..854a4ebae --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-mitigation-action.rst @@ -0,0 +1,28 @@ +**To view the details for a defined mitigation action** + +The following ``describe-mitigation-action`` example displays details for the specified mitigation action. :: + + aws iot describe-mitigation-action \ + --action-name AddThingsToQuarantineGroupAction + +Output:: + + { + "actionName": "AddThingsToQuarantineGroupAction", + "actionType": "ADD_THINGS_TO_THING_GROUP", + "actionArn": "arn:aws:iot:us-west-2:123456789012:mitigationaction/AddThingsToQuarantineGroupAction", + "actionId": "2fd2726d-98e1-4abf-b10f-09465ccd6bfa", + "roleArn": "arn:aws:iam::123456789012:role/service-role/MoveThingsToQuarantineGroupRole", + "actionParams": { + "addThingsToThingGroupParams": { + "thingGroupNames": [ + "QuarantineGroup1" + ], + "overrideDynamicGroups": true + } + }, + "creationDate": "2019-12-10T11:09:35.999000-08:00", + "lastModifiedDate": "2019-12-10T11:09:35.999000-08:00" + } + +For more information, see `DescribeMitigationAction (Mitigation Action Commands) `__ in the *AWS IoT Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-provisioning-template-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-provisioning-template-version.rst new file mode 100644 index 000000000..7af3ed3d1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-provisioning-template-version.rst @@ -0,0 +1,66 @@ +**To describe a provisioning template version** + +The following ``describe-provisioning-template-version`` example describes a provisioning template version. :: + + aws iot describe-provisioning-template-version \ + --template-name MyTestProvisioningTemplate \ + --version-id 1 + +Output:: + + { + "versionId": 1, + "creationDate": 1589308310.574, + "templateBody": "{ + \"Parameters\":{ + \"SerialNumber\":{ + \"Type\":\"String\" + }, + \"AWS::IoT::Certificate::Id\":{ + \"Type\":\"String\" + } + }, + \"Resources\":{ + \"certificate\":{ + \"Properties\":{ + \"CertificateId\":{ + \"Ref\":\"AWS::IoT::Certificate::Id\" + }, + \"Status\":\"Active\" + }, + \"Type\":\"AWS::IoT::Certificate\" + }, + \"policy\":{ + \"Properties\":{ + \"PolicyName\":\"MyIotPolicy\" + }, + \"Type\":\"AWS::IoT::Policy\" + }, + \"thing\":{ + \"OverrideSettings\":{ + \"AttributePayload\":\"MERGE\", + \"ThingGroups\":\"DO_NOTHING\", + \"ThingTypeName\":\"REPLACE\" + }, + \"Properties\":{ + \"AttributePayload\":{}, + \"ThingGroups\":[], + \"ThingName\":{ + \"Fn::Join\":[ + \"\", + [ + \"DemoGroup_\", + {\"Ref\":\"SerialNumber\"} + ] + ] + }, + \"ThingTypeName\":\"VirtualThings\" + }, + \"Type\":\"AWS::IoT::Thing\" + } + } + }", + "isDefaultVersion": true + } + +For more information, see `Provisioning devices that don't have device certificates using fleet provisioning `__ in the *AWS IoT Core Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-provisioning-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-provisioning-template.rst new file mode 100644 index 000000000..8b403d5a0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-provisioning-template.rst @@ -0,0 +1,69 @@ +**To describe a provisioning template** + +The following ``describe-provisioning-template`` example describes a provisioning template. :: + + aws iot describe-provisioning-template \ + --template-name MyTestProvisioningTemplate + +Output:: + + { + "templateArn": "arn:aws:iot:us-west-2:57EXAMPLE833:provisioningtemplate/MyTestProvisioningTemplate", + "templateName": "MyTestProvisioningTemplate", + "creationDate": 1589308310.574, + "lastModifiedDate": 1589308345.539, + "defaultVersionId": 1, + "templateBody": "{ + \"Parameters\":{ + \"SerialNumber\":{ + \"Type\":\"String\" + }, + \"AWS::IoT::Certificate::Id\":{ + \"Type\":\"String\" + } + }, + \"Resources\":{ + \"certificate\":{ + \"Properties\":{ + \"CertificateId\":{ + \"Ref\":\"AWS::IoT::Certificate::Id\" + }, + \"Status\":\"Active\" + }, + \"Type\":\"AWS::IoT::Certificate\" + }, + \"policy\":{ + \"Properties\":{ + \"PolicyName\":\"MyIotPolicy\" + }, + \"Type\":\"AWS::IoT::Policy\" + }, + \"thing\":{ + \"OverrideSettings\":{ + \"AttributePayload\":\"MERGE\", + \"ThingGroups\":\"DO_NOTHING\", + \"ThingTypeName\":\"REPLACE\" + }, + \"Properties\":{ + \"AttributePayload\":{}, + \"ThingGroups\":[], + \"ThingName\":{ + \"Fn::Join\":[ + \"\", + [ + \"DemoGroup_\", + {\"Ref\":\"SerialNumber\"} + ] + ] + }, + \"ThingTypeName\":\"VirtualThings\" + }, + \"Type\":\"AWS::IoT::Thing\" + } + } + }", + "enabled": true, + "provisioningRoleArn": "arn:aws:iam::571032923833:role/service-role/IoT_access" + } + +For more information, see `Provisioning devices that don't have device certificates using fleet provisioning `__ in the *AWS IoT Core Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-role-alias.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-role-alias.rst new file mode 100644 index 000000000..ad7868234 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-role-alias.rst @@ -0,0 +1,22 @@ +**To get information about an AWS IoT role alias** + +The following ``describe-role-alias`` example displays details for the specified role alias. :: + + aws iot describe-role-alias \ + --role-alias LightBulbRole + +Output:: + + { + "roleAliasDescription": { + "roleAlias": "LightBulbRole", + "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/LightBulbRole", + "roleArn": "arn:aws:iam::123456789012:role/light_bulb_role_001", + "owner": "123456789012", + "credentialDurationSeconds": 3600, + "creationDate": 1570558643.221, + "lastModifiedDate": 1570558643.221 + } + } + +For more information, see `DescribeRoleAlias `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-scheduled-audit.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-scheduled-audit.rst new file mode 100644 index 000000000..528fec164 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-scheduled-audit.rst @@ -0,0 +1,24 @@ +**To get information about a scheduled audit** + +The following ``describe-scheduled-audit`` example gets detailed information about an AWS IOT Device Defender scheduled audit named ``AWSIoTDeviceDefenderDailyAudit``. :: + + aws iot describe-scheduled-audit \ + --scheduled-audit-name AWSIoTDeviceDefenderDailyAudit + +Output:: + + { + "frequency": "DAILY", + "targetCheckNames": [ + "AUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK", + "CONFLICTING_CLIENT_IDS_CHECK", + "DEVICE_CERTIFICATE_SHARED_CHECK", + "IOT_POLICY_OVERLY_PERMISSIVE_CHECK", + "REVOKED_CA_CERTIFICATE_STILL_ACTIVE_CHECK", + "UNAUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK" + ], + "scheduledAuditName": "AWSIoTDeviceDefenderDailyAudit", + "scheduledAuditArn": "arn:aws:iot:us-west-2:123456789012:scheduledaudit/AWSIoTDeviceDefenderDailyAudit" + } + +For more information, see `Audit Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-security-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-security-profile.rst new file mode 100644 index 000000000..cd8da51ad --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-security-profile.rst @@ -0,0 +1,46 @@ +**To get information about a security profile** + +The following ``describe-security-profile`` example gets information about the AWS IoT Device Defender security profile named ``PossibleIssue.`` :: + + aws iot describe-security-profile \ + --security-profile-name PossibleIssue + +Output:: + + { + "securityProfileName": "PossibleIssue", + "securityProfileArn": "arn:aws:iot:us-west-2:123456789012:securityprofile/PossibleIssue", + "securityProfileDescription": "check to see if authorization fails 10 times in 5 minutes or if cellular bandwidth exceeds 128", + "behaviors": [ + { + "name": "CellularBandwidth", + "metric": "aws:message-byte-size", + "criteria": { + "comparisonOperator": "greater-than", + "value": { + "count": 128 + }, + "consecutiveDatapointsToAlarm": 1, + "consecutiveDatapointsToClear": 1 + } + }, + { + "name": "Authorization", + "metric": "aws:num-authorization-failures", + "criteria": { + "comparisonOperator": "greater-than", + "value": { + "count": 10 + }, + "durationSeconds": 300, + "consecutiveDatapointsToAlarm": 1, + "consecutiveDatapointsToClear": 1 + } + } + ], + "version": 1, + "creationDate": 1560278102.528, + "lastModifiedDate": 1560278102.528 + } + +For more information, see `Detect Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-stream.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-stream.rst new file mode 100644 index 000000000..1f1d59799 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-stream.rst @@ -0,0 +1,31 @@ +**To get information about a stream** + +The following ``describe-stream`` example displays the details about the specified stream. :: + + aws iot describe-stream \ + --stream-id stream12345 + +Output:: + + { + "streamInfo": { + "streamId": "stream12345", + "streamArn": "arn:aws:iot:us-west-2:123456789012:stream/stream12345", + "streamVersion": 1, + "description": "This stream is used for Amazon FreeRTOS OTA Update 12345.", + "files": [ + { + "fileId": "123", + "s3Location": { + "bucket":"codesign-ota-bucket", + "key":"48c67f3c-63bb-4f92-a98a-4ee0fbc2bef6" + } + } + ], + "createdAt": 1557863215.995, + "lastUpdatedAt": 1557863215.995, + "roleArn": "arn:aws:iam:123456789012:role/service-role/my_ota_stream_role" + } + } + +For more information, see `DescribeStream `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-thing-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-thing-group.rst new file mode 100644 index 000000000..ddb93cb1f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-thing-group.rst @@ -0,0 +1,29 @@ +**To get information about a thing group** + +The following ``describe-thing-group`` example gets information about the thing group named ``HalogenBulbs``. :: + + aws iot describe-thing-group \ + --thing-group-name HalogenBulbs + +Output:: + + { + "thingGroupName": "HalogenBulbs", + "thingGroupId": "f4ec6b84-b42b-499d-9ce1-4dbd4d4f6f6e", + "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/HalogenBulbs", + "version": 1, + "thingGroupProperties": {}, + "thingGroupMetadata": { + "parentGroupName": "LightBulbs", + "rootToParentThingGroups": [ + { + "groupName": "LightBulbs", + "groupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/LightBulbs" + } + ], + "creationDate": 1559927609.897 + } + } + +For more information, see `Thing Groups `__ in the *AWS IoT Developers Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-thing-type.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-thing-type.rst new file mode 100644 index 000000000..4f429c463 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-thing-type.rst @@ -0,0 +1,27 @@ +**To get information about a thing type** + +The following ``describe-thing-type`` example display information about the specified thing type defined in your AWS account. :: + + aws iot describe-thing-type \ + --thing-type-name "LightBulb" + +Output:: + + { + "thingTypeName": "LightBulb", + "thingTypeId": "ce3573b0-0a3c-45a7-ac93-4e0ce14cd190", + "thingTypeArn": "arn:aws:iot:us-west-2:123456789012:thingtype/LightBulb", + "thingTypeProperties": { + "thingTypeDescription": "light bulb type", + "searchableAttributes": [ + "model", + "wattage" + ] + }, + "thingTypeMetadata": { + "deprecated": false, + "creationDate": 1559772562.498 + } + } + +For more information, see `Thing Types `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-thing.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-thing.rst new file mode 100644 index 000000000..2fa247c19 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/describe-thing.rst @@ -0,0 +1,23 @@ +**To display detailed information about a thing** + +The following ``describe-thing`` example display information about a thing (device) that is defined in the AWS IoT registry for your AWS account. + + aws iot describe-thing \ + --thing-name "MyLightBulb" + +Output:: + + { + "defaultClientId": "MyLightBulb", + "thingName": "MyLightBulb", + "thingId": "40da2e73-c6af-406e-b415-15acae538797", + "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyLightBulb", + "thingTypeName": "LightBulb", + "attributes": { + "model": "123", + "wattage": "75" + }, + "version": 1 + } + +For more information, see `How to Manage Things with the Registry `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/detach-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/detach-policy.rst new file mode 100644 index 000000000..68d630c7c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/detach-policy.rst @@ -0,0 +1,21 @@ +**Example 1: To detach an AWS IoT policy from a thing group** + +The following ``detach-policy`` example detaches the specified policy from a thing group and, by extension, from all things in that group and any of the group's child groups. :: + + aws iot detach-policy \ + --target "arn:aws:iot:us-west-2:123456789012:thinggroup/LightBulbs" \ + --policy-name "MyFirstGroup_Core-policy" + +This command produces no output. + +For more information, see `Thing Groups `__ in the *AWS IoT Developers Guide*. + +**Example 2: To detach an AWS IoT policy from a device certificate** + +The following ``detach-policy`` example detaches the TemperatureSensorPolicy policy from a device certificate identified by ARN. :: + + aws iot detach-policy \ + --policy-name TemperatureSensorPolicy \ + --target arn:aws:iot:us-west-2:123456789012:cert/488b6a7f2acdeb00a77384e63c4e40b18b1b3caaae57b7272ba44c45e3448142 + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/detach-security-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/detach-security-profile.rst new file mode 100644 index 000000000..41115b3b4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/detach-security-profile.rst @@ -0,0 +1,11 @@ +**To disassociate a security profile from a target** + +The following ``detach-security-profile`` example removes the association between the AWS IoT Device Defender security profile named ``Testprofile`` and the all registered things target. :: + + aws iot detach-security-profile \ + --security-profile-name Testprofile \ + --security-profile-target-arn "arn:aws:iot:us-west-2:123456789012:all/registered-things" + +This command produces no output. + +For more information, see `Detect Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/detach-thing-principal.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/detach-thing-principal.rst new file mode 100644 index 000000000..eac2b9287 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/detach-thing-principal.rst @@ -0,0 +1,11 @@ +**To detach a certificate/principal from a thing** + +The following ``detach-thing-principal`` example removes a certificate that represents a principal from the specified thing. :: + + aws iot detach-thing-principal \ + --thing-name "MyLightBulb" \ + --principal "arn:aws:iot:us-west-2:123456789012:cert/604c48437a57b7d5fc5d137c5be75011c6ee67c9a6943683a1acb4b1626bac36" + +This command produces no output. + +For more information, see `How to Manage Things with the Registry `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/disable-topic-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/disable-topic-rule.rst new file mode 100644 index 000000000..086c78e15 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/disable-topic-rule.rst @@ -0,0 +1,11 @@ +**To disable a topic rule** + +The following ``disable-topic-rule`` example disables the specified topic rule. :: + + aws iot disable-topic-rule \ + --rule-name "MyPlantPiMoistureAlertRule" + +This command produces no output. + + +For more information, see `Viewing Your Rules `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/enable-topic-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/enable-topic-rule.rst new file mode 100644 index 000000000..d657ffaee --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/enable-topic-rule.rst @@ -0,0 +1,10 @@ +**To enable a topic rule** + +The following ``enable-topic-rule`` example enables (or re-enables) the specified topic rule. :: + + aws iot enable-topic-rule \ + --rule-name "MyPlantPiMoistureAlertRule" + +This command produces no output. + +For more information, see `Viewing Your Rules `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-behavior-model-training-summaries.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-behavior-model-training-summaries.rst new file mode 100644 index 000000000..1526c12b0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-behavior-model-training-summaries.rst @@ -0,0 +1,51 @@ +**To list a Device Defender's ML Detect Security Profile training model's status** + +The following ``get-behavior-model-training-summaries`` example lists model training status for the configured behaviors in the chosen Security Profile. For each behavior, the name, model status, and percentage of datapoints collected are listed. :: + + aws iot get-behavior-model-training-summaries \ + --security-profile-name MySecuirtyProfileName + +Output:: + + { + "summaries": [ + { + "securityProfileName": "MySecuirtyProfileName", + "behaviorName": "Messages_sent_ML_behavior", + "modelStatus": "PENDING_BUILD", + "datapointsCollectionPercentage": 0.0 + }, + { + "securityProfileName": "MySecuirtyProfileName", + "behaviorName": "Messages_received_ML_behavior", + "modelStatus": "PENDING_BUILD", + "datapointsCollectionPercentage": 0.0 + }, + { + "securityProfileName": "MySecuirtyProfileName", + "behaviorName": "Authorization_failures_ML_behavior", + "modelStatus": "PENDING_BUILD", + "datapointsCollectionPercentage": 0.0 + }, + { + "securityProfileName": "MySecuirtyProfileName", + "behaviorName": "Message_size_ML_behavior", + "modelStatus": "PENDING_BUILD", + "datapointsCollectionPercentage": 0.0 + }, + { + "securityProfileName": "MySecuirtyProfileName", + "behaviorName": "Connection_attempts_ML_behavior", + "modelStatus": "PENDING_BUILD", + "datapointsCollectionPercentage": 0.0 + }, + { + "securityProfileName": "MySPNoALerts", + "behaviorName": "Disconnects_ML_behavior", + "modelStatus": "PENDING_BUILD", + "datapointsCollectionPercentage": 0.0 + } + ] + } + +For more information, see `GetBehaviorModelTrainingSummaries (Detect Commands) `__ in the *AWS IoT Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-cardinality.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-cardinality.rst new file mode 100755 index 000000000..4e7524105 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-cardinality.rst @@ -0,0 +1,42 @@ +**To return the approximate count of unique values that match the query** + +You can use the following setup script to create 10 things representing 10 temperature sensors. Each new thing has 3 attributes. :: + + # Bash script. If in other shells, type `bash` before running + Temperatures=(70 71 72 73 74 75 47 97 98 99) + Racks=(Rack1 Rack1 Rack2 Rack2 Rack3 Rack4 Rack5 Rack6 Rack6 Rack6) + IsNormal=(true true true true true true false false false false) + for ((i=0; i<10 ; i++)) + do + thing=$(aws iot create-thing --thing-name "TempSensor$i" --attribute-payload attributes="{temperature=${Temperatures[i]},rackId=${Racks[i]},stateNormal=${IsNormal[i]}}") + aws iot describe-thing --thing-name "TempSensor$i" + done + +Example output of the setup script:: + + { + "version": 1, + "thingName": "TempSensor0", + "defaultClientId": "TempSensor0", + "attributes": { + "rackId": "Rack1", + "stateNormal": "true", + "temperature": "70" + }, + "thingArn": "arn:aws:iot:us-east-1:123456789012:thing/TempSensor0", + "thingId": "example1-90ab-cdef-fedc-ba987example" + } + +The following ``get-cardinality`` example queries the 10 sensors created by the setup script and returns the number of racks that have temperature sensors reporting abnormal temperature values. If the temperature value is below 60 or above 80, the temperature sensor is in an abnormal state. :: + + aws iot get-cardinality \ + --aggregation-field "attributes.rackId" \ + --query-string "thingName:TempSensor* AND attributes.stateNormal:false" + +Output:: + + { + "cardinality": 2 + } + +For more information, see `Querying for Aggregate Data`__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-effective-policies.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-effective-policies.rst new file mode 100644 index 000000000..ac591a878 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-effective-policies.rst @@ -0,0 +1,55 @@ +**To list the policies that effect a thing** + +The following ``get-effective-policies`` example lists the policies that effect the specified thing, including policies attached to any groups to which it belongs. :: + + aws iot get-effective-policies \ + --thing-name TemperatureSensor-001 \ + --principal arn:aws:iot:us-west-2:123456789012:cert/488b6a7f2acdeb00a77384e63c4e40b18b1b3caaae57b7272ba44c45e3448142 + +Output:: + + { + "effectivePolicies": [ + { + "policyName": "TemperatureSensorPolicy", + "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/TemperatureSensorPolicy", + "policyDocument": "{ + \"Version\": \"2012-10-17\", + \"Statement\": [ + { + \"Effect\": \"Allow\", + \"Action\": [ + \"iot:Publish\", + \"iot:Receive\" + ], + \"Resource\": [ + \"arn:aws:iot:us-west-2:123456789012:topic/topic_1\", + \"arn:aws:iot:us-west-2:123456789012:topic/topic_2\" + ] + }, + { + \"Effect\": \"Allow\", + \"Action\": [ + \"iot:Subscribe\" + ], + \"Resource\": [ + \"arn:aws:iot:us-west-2:123456789012:topicfilter/topic_1\", + \"arn:aws:iot:us-west-2:123456789012:topicfilter/topic_2\" + ] + }, + { + \"Effect\": \"Allow\", + \"Action\": [ + \"iot:Connect\" + ], + \"Resource\": [ + \"arn:aws:iot:us-west-2:123456789012:client/basicPubSub\" + ] + } + ] + }" + } + ] + } + +For more information, see `Get Effective Policies for a Thing `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-indexing-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-indexing-configuration.rst new file mode 100644 index 000000000..3388dd772 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-indexing-configuration.rst @@ -0,0 +1,20 @@ +**To get the thing indexing configuration** + +The following ``get-indexing-configuration`` example gets the current configuration data for AWS IoT fleet indexing. :: + + aws iot get-indexing-configuration + +Output:: + + { + "thingIndexingConfiguration": { + "thingIndexingMode": "OFF", + "thingConnectivityIndexingMode": "OFF" + }, + "thingGroupIndexingConfiguration": { + "thingGroupIndexingMode": "OFF" + } + } + +For more information, see `Managing Thing Indexing `__ in the *AWS IoT Developers Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-job-document.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-job-document.rst new file mode 100644 index 000000000..ac5676973 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-job-document.rst @@ -0,0 +1,14 @@ +**To retrieve the document for a job** + +The following ``get-job-document`` example displays details about the document for the job whose ID is ``example-job-01``. :: + + aws iot get-job-document \ + --job-id "example-job-01" + +Output:: + + { + "document": "\n{\n \"operation\":\"customJob\",\n \"otherInfo\":\"someValue\"\n}\n" + } + +For more information, see `Creating and Managing Jobs (CLI) `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-logging-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-logging-options.rst new file mode 100644 index 000000000..f0532187c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-logging-options.rst @@ -0,0 +1,14 @@ +**To get the logging options** + +The following ``get-logging-options`` example gets the current logging options for your AWS account. :: + + aws iot get-logging-options + +Output:: + + { + "roleArn": "arn:aws:iam::123456789012:role/service-role/iotLoggingRole", + "logLevel": "ERROR" + } + +For more information, see `title `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-ota-update.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-ota-update.rst new file mode 100644 index 000000000..c48279a77 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-ota-update.rst @@ -0,0 +1,51 @@ +**To retrieve information about an OTA Update** + +The following ``get-ota-update`` example displays details about the specified OTA Update. :: + + aws iot get-ota-update \ + --ota-update-id ota12345 + +Output:: + + { + "otaUpdateInfo": { + "otaUpdateId": "ota12345", + "otaUpdateArn": "arn:aws:iot:us-west-2:123456789012:otaupdate/itsaupdate", + "creationDate": 1557863215.995, + "lastModifiedDate": 1557863215.995, + "description": "A critical update needed right away.", + "targets": [ + "device1", + "device2", + "device3", + "device4" + ], + "targetSelection": "SNAPSHOT", + "protocols": ["HTTP"], + "awsJobExecutionsRolloutConfig": { + "maximumPerMinute": 10 + }, + "otaUpdateFiles": [ + { + "fileName": "firmware.bin", + "fileLocation": { + "stream": { + "streamId": "004", + "fileId":123 + } + }, + "codeSigning": { + "awsSignerJobId": "48c67f3c-63bb-4f92-a98a-4ee0fbc2bef6" + } + } + ], + "roleArn": "arn:aws:iam:123456789012:role/service-role/my_ota_role" + "otaUpdateStatus": "CREATE_COMPLETE", + "awsIotJobId": "job54321", + "awsIotJobArn": "arn:aws:iot:us-west-2:123456789012:job/job54321", + "errorInfo": { + } + } + } + +For more information, see `GetOTAUpdate `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-percentiles.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-percentiles.rst new file mode 100755 index 000000000..0d469ad4a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-percentiles.rst @@ -0,0 +1,60 @@ +**To group the aggregated values that match the query into percentile groupings** + +You can use the following setup script to create 10 things representing 10 temperature sensors. Each new thing has 1 attribute. :: + + # Bash script. If in other shells, type `bash` before running + Temperatures=(70 71 72 73 74 75 47 97 98 99) + for ((i=0; i<10 ; i++)) + do + thing=$(aws iot create-thing --thing-name "TempSensor$i" --attribute-payload attributes="{temperature=${Temperatures[i]}}") + aws iot describe-thing --thing-name "TempSensor$i" + done + +Example output of the setup script:: + + { + "version": 1, + "thingName": "TempSensor0", + "defaultClientId": "TempSensor0", + "attributes": { + "temperature": "70" + }, + "thingArn": "arn:aws:iot:us-east-1:123456789012:thing/TempSensor0", + "thingId": "example1-90ab-cdef-fedc-ba987example" + } + +The following ``get-percentiles`` example queries the 10 sensors created by the setup script and returns a value for each percentile group specified. The percentile group "10" contains the aggregated field value that occurs in approximately 10 percent of the values that match the query. In the following output, {"percent": 10.0, "value": 67.7} means approximately 10.0% of the temperature values are below 67.7. :: + + aws iot get-percentiles \ + --aggregation-field "attributes.temperature" \ + --query-string "thingName:TempSensor*" \ + --percents 10 25 50 75 90 + +Output:: + + { + "percentiles": [ + { + "percent": 10.0, + "value": 67.7 + }, + { + "percent": 25.0, + "value": 71.25 + }, + { + "percent": 50.0, + "value": 73.5 + }, + { + "percent": 75.0, + "value": 91.5 + }, + { + "percent": 90.0, + "value": 98.1 + } + ] + } + +For more information, see `Querying for Aggregate Data `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-policy-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-policy-version.rst new file mode 100644 index 000000000..4a8c1da7a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-policy-version.rst @@ -0,0 +1,23 @@ +**To get information about a specific version of a policy** + +The following ``get-policy-version`` example gets information about the first version of the specified policy. :: + + aws iot get-policy \ + --policy-name UpdateDeviceCertPolicy + --policy-version-id "1" + +Output:: + + { + "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/UpdateDeviceCertPolicy", + "policyName": "UpdateDeviceCertPolicy", + "policyDocument": "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Action\": \"iot:UpdateCertificate\", \"Resource\": \"*\" } ] }", + "policyVersionId": "1", + "isDefaultVersion": false, + "creationDate": 1559925941.924, + "lastModifiedDate": 1559926175.458, + "generationId": "5066f1b6712ce9d2a1e56399771649a272d6a921762fead080e24fe52f24e042" + } + +For more information, see `AWS IoT Policies `__ in the *AWS IoT Developers Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-policy.rst new file mode 100644 index 000000000..7540de71a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-policy.rst @@ -0,0 +1,21 @@ +**To get information about the default version of a policy** + +The following ``get-policy`` example retrieves information about the default version of the specified policy. :: + + aws iot get-policy \ + --policy-name UpdateDeviceCertPolicy + +Output:: + + { + "policyName": "UpdateDeviceCertPolicy", + "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/UpdateDeviceCertPolicy", + "policyDocument": "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Action\": \"iot:UpdateCertificate\", \"Resource\": \"*\" } ] }", + "defaultVersionId": "2", + "creationDate": 1559925941.924, + "lastModifiedDate": 1559925941.924, + "generationId": "5066f1b6712ce9d2a1e56399771649a272d6a921762fead080e24fe52f24e042" + } + +For more information, see `AWS IoT Policies `__ in the *AWS IoT Developers Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-registration-code.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-registration-code.rst new file mode 100644 index 000000000..9db54e9d2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-registration-code.rst @@ -0,0 +1,13 @@ +**To get your AWS account-specific registration code** + +The following ``get-registration-code`` example retrieves your AWS account-specific registration code. :: + + aws iot get-registration-code + +Output:: + + { + "registrationCode": "15c51ae5e36ba59ba77042df1115862076bea4bd15841c838fcb68d5010a614c" + } + +For more information, see `Use Your Own Certificate `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-statistics.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-statistics.rst new file mode 100644 index 000000000..015045a23 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-statistics.rst @@ -0,0 +1,17 @@ +**To search the device index for aggregate data** + +The following ``get-statistics`` example returns the number of things that have a property called ``connectivity.connected`` set to ``false`` (that is, the number of devices that are not connected) in their device shadow. :: + + aws iot get-statistics \ + --index-name AWS_Things \ + --query-string "connectivity.connected:false" + +Output:: + + { + "statistics": { + "count": 6 + } + } + +For more information, see `Getting Statistics About Your Device Fleet `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-topic-rule-destination.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-topic-rule-destination.rst new file mode 100644 index 000000000..0f62a4efb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-topic-rule-destination.rst @@ -0,0 +1,20 @@ +**To get a topic rule destination** + +The following ``get-topic-rule-destination`` example gets information about a topic rule destination. :: + + aws iot get-topic-rule-destination \ + --arn "arn:aws:iot:us-west-2:123456789012:ruledestination/http/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" + +Output:: + + { + "topicRuleDestination": { + "arn": "arn:aws:iot:us-west-2:123456789012:ruledestination/http/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", + "status": "DISABLED", + "httpUrlProperties": { + "confirmationUrl": "https://example.com" + } + } + } + +For more information, see `Working with topic rule destinations `__ in the *AWS IoT Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-topic-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-topic-rule.rst new file mode 100644 index 000000000..90292b335 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-topic-rule.rst @@ -0,0 +1,32 @@ +**To get information about a rule** + +The following ``get-topic-rule`` example gets information about the specified rule. :: + + aws iot get-topic-rule \ + --rule-name MyRPiLowMoistureAlertRule + +Output:: + + { + "ruleArn": "arn:aws:iot:us-west-2:123456789012:rule/MyRPiLowMoistureAlertRule", + "rule": { + "ruleName": "MyRPiLowMoistureAlertRule", + "sql": "SELECT * FROM '$aws/things/MyRPi/shadow/update/accepted' WHERE state.reported.moisture = 'low'\n ", + "description": "Sends an alert whenever soil moisture level readings are too low.", + "createdAt": 1558624363.0, + "actions": [ + { + "sns": { + "targetArn": "arn:aws:sns:us-west-2:123456789012:MyRPiLowMoistureTopic", + "roleArn": "arn:aws:iam::123456789012:role/service-role/MyRPiLowMoistureTopicRole", + "messageFormat": "RAW" + } + } + ], + "ruleDisabled": false, + "awsIotSqlVersion": "2016-03-23" + } + } + +For more information, see `Viewing Your Rules `__ in the *AWS IoT Developers Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-v2-logging-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-v2-logging-options.rst new file mode 100644 index 000000000..6ae5214db --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/get-v2-logging-options.rst @@ -0,0 +1,15 @@ +**To list the current logging options** + +The following ``get-v2-logging-options`` example lists the current logging options for AWS IoT. :: + + aws iot get-v2-logging-options + +Output:: + + { + "roleArn": "arn:aws:iam::094249569039:role/service-role/iotLoggingRole", + "defaultLogLevel": "WARN", + "disableAllLogs": false + } + +For more information, see `title `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-active-violations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-active-violations.rst new file mode 100644 index 000000000..d95d66047 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-active-violations.rst @@ -0,0 +1,104 @@ +**To list the active violations** + +The following ``list-active-violations`` example lists all violations for the specified security profile. :: + + aws iot list-active-violations \ + --security-profile-name Testprofile + +Output:: + + { + "activeViolations": [ + { + "violationId": "174db59167fa474c80a652ad1583fd44", + "thingName": "iotconsole-1560269126751-1", + "securityProfileName": "Testprofile", + "behavior": { + "name": "Authorization", + "metric": "aws:num-authorization-failures", + "criteria": { + "comparisonOperator": "greater-than", + "value": { + "count": 10 + }, + "durationSeconds": 300, + "consecutiveDatapointsToAlarm": 1, + "consecutiveDatapointsToClear": 1 + } + }, + "lastViolationValue": { + "count": 0 + }, + "lastViolationTime": 1560293700.0, + "violationStartTime": 1560279000.0 + }, + { + "violationId": "c8a9466a093d3b7b35cd44ca58bdbeab", + "thingName": "TvnQoEoU", + "securityProfileName": "Testprofile", + "behavior": { + "name": "CellularBandwidth", + "metric": "aws:message-byte-size", + "criteria": { + "comparisonOperator": "greater-than", + "value": { + "count": 128 + }, + "consecutiveDatapointsToAlarm": 1, + "consecutiveDatapointsToClear": 1 + } + }, + "lastViolationValue": { + "count": 110 + }, + "lastViolationTime": 1560369000.0, + "violationStartTime": 1560276600.0 + }, + { + "violationId": "74aa393adea02e6648f3ac362beed55e", + "thingName": "iotconsole-1560269232412-2", + "securityProfileName": "Testprofile", + "behavior": { + "name": "Authorization", + "metric": "aws:num-authorization-failures", + "criteria": { + "comparisonOperator": "greater-than", + "value": { + "count": 10 + }, + "durationSeconds": 300, + "consecutiveDatapointsToAlarm": 1, + "consecutiveDatapointsToClear": 1 + } + }, + "lastViolationValue": { + "count": 0 + }, + "lastViolationTime": 1560276600.0, + "violationStartTime": 1560276600.0 + }, + { + "violationId": "1e6ab5f7cf39a1466fcd154e1377e406", + "thingName": "TvnQoEoU", + "securityProfileName": "Testprofile", + "behavior": { + "name": "Authorization", + "metric": "aws:num-authorization-failures", + "criteria": { + "comparisonOperator": "greater-than", + "value": { + "count": 10 + }, + "durationSeconds": 300, + "consecutiveDatapointsToAlarm": 1, + "consecutiveDatapointsToClear": 1 + } + }, + "lastViolationValue": { + "count": 0 + }, + "lastViolationTime": 1560369000.0, + "violationStartTime": 1560276600.0 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-attached-policies.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-attached-policies.rst new file mode 100644 index 000000000..2382431ae --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-attached-policies.rst @@ -0,0 +1,39 @@ +**Example 1: To list the policies attached to a group** + +The following ``list-attached-policies`` example lists the policies that are attached to the specified group. :: + + aws iot list-attached-policies \ + --target "arn:aws:iot:us-west-2:123456789012:thinggroup/LightBulbs" + +Output:: + + { + "policies": [ + { + "policyName": "UpdateDeviceCertPolicy", + "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/UpdateDeviceCertPolicy" + } + ] + } + +For more information, see `Thing Groups `__ in the *AWS IoT Developers Guide*. + +**Example 2: To list the policies attached to a device certificate** + +The following ``list-attached-policies`` example lists the AWS IoT policies attached to the device certificate. The certificate is identified by its ARN. :: + + aws iot list-attached-policies \ + --target arn:aws:iot:us-west-2:123456789012:cert/488b6a7f2acdeb00a77384e63c4e40b18b1b3caaae57b7272ba44c45e3448142 + +Output:: + + { + "policies": [ + { + "policyName": "TemperatureSensorPolicy", + "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/TemperatureSensorPolicy" + } + ] + } + +For more information, see `Thing Groups `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-audit-findings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-audit-findings.rst new file mode 100644 index 000000000..4297bb0e5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-audit-findings.rst @@ -0,0 +1,149 @@ +**Example 1: To list all findings from an audit** + +The following ``list-audit-findings`` example lists all findings from an AWS IoT Device Defender audit with a specified task ID. :: + + aws iot list-audit-findings \ + --task-id a3aea009955e501a31b764abe1bebd3d + +Output:: + + { + "findings": [] + } + +**Example 2: To list findings for an audit check type** + +The following ``list-audit-findings`` example shows findings from AWS IoT Device Defender audits that ran between June 5, 2019 and June 19, 2019 in which devices are sharing a device certificate. When you specify a check name, you must provide a start and end time. :: + + aws iot list-audit-findings \ + --check-name DEVICE_CERTIFICATE_SHARED_CHECK \ + --start-time 1559747125 \ + --end-time 1560962028 + +Output:: + + { + "findings": [ + { + "taskId": "eeef61068b0eb03c456d746c5a26ee04", + "checkName": "DEVICE_CERTIFICATE_SHARED_CHECK", + "taskStartTime": 1560161017.172, + "findingTime": 1560161017.592, + "severity": "CRITICAL", + "nonCompliantResource": { + "resourceType": "DEVICE_CERTIFICATE", + "resourceIdentifier": { + "deviceCertificateId": "b193ab7162c0fadca83246d24fa090300a1236fe58137e121b011804d8ac1d6b" + } + }, + "relatedResources": [ + { + "resourceType": "CLIENT_ID", + "resourceIdentifier": { + "clientId": "ZipxgAIl" + }, + "additionalInfo": { + "CONNECTION_TIME": "1560086374068" + } + }, + { + "resourceType": "CLIENT_ID", + "resourceIdentifier": { + "clientId": "ZipxgAIl" + }, + "additionalInfo": { + "CONNECTION_TIME": "1560081552187", + "DISCONNECTION_TIME": "1560086371552" + } + }, + { + "resourceType": "CLIENT_ID", + "resourceIdentifier": { + "clientId": "ZipxgAIl" + }, + "additionalInfo": { + "CONNECTION_TIME": "1559289863631", + "DISCONNECTION_TIME": "1560081532716" + } + } + ], + "reasonForNonCompliance": "Certificate shared by one or more devices.", + "reasonForNonComplianceCode": "CERTIFICATE_SHARED_BY_MULTIPLE_DEVICES" + }, + { + "taskId": "bade6b5efd2e1b1569822f6021b39cf5", + "checkName": "DEVICE_CERTIFICATE_SHARED_CHECK", + "taskStartTime": 1559988217.27, + "findingTime": 1559988217.655, + "severity": "CRITICAL", + "nonCompliantResource": { + "resourceType": "DEVICE_CERTIFICATE", + "resourceIdentifier": { + "deviceCertificateId": "b193ab7162c0fadca83246d24fa090300a1236fe58137e121b011804d8ac1d6b" + } + }, + "relatedResources": [ + { + "resourceType": "CLIENT_ID", + "resourceIdentifier": { + "clientId": "xShGENLW" + }, + "additionalInfo": { + "CONNECTION_TIME": "1559972350825" + } + }, + { + "resourceType": "CLIENT_ID", + "resourceIdentifier": { + "clientId": "xShGENLW" + }, + "additionalInfo": { + "CONNECTION_TIME": "1559255062002", + "DISCONNECTION_TIME": "1559972350616" + } + } + ], + "reasonForNonCompliance": "Certificate shared by one or more devices.", + "reasonForNonComplianceCode": "CERTIFICATE_SHARED_BY_MULTIPLE_DEVICES" + }, + { + "taskId": "c23f6233ba2d35879c4bb2810fb5ffd6", + "checkName": "DEVICE_CERTIFICATE_SHARED_CHECK", + "taskStartTime": 1559901817.31, + "findingTime": 1559901817.767, + "severity": "CRITICAL", + "nonCompliantResource": { + "resourceType": "DEVICE_CERTIFICATE", + "resourceIdentifier": { + "deviceCertificateId": "b193ab7162c0fadca83246d24fa090300a1236fe58137e121b011804d8ac1d6b" + } + }, + "relatedResources": [ + { + "resourceType": "CLIENT_ID", + "resourceIdentifier": { + "clientId": "TvnQoEoU" + }, + "additionalInfo": { + "CONNECTION_TIME": "1559826729768" + } + }, + { + "resourceType": "CLIENT_ID", + "resourceIdentifier": { + "clientId": "TvnQoEoU" + }, + "additionalInfo": { + "CONNECTION_TIME": "1559345920964", + "DISCONNECTION_TIME": "1559826728402" + } + } + ], + "reasonForNonCompliance": "Certificate shared by one or more devices.", + "reasonForNonComplianceCode": "CERTIFICATE_SHARED_BY_MULTIPLE_DEVICES" + } + ] + } + +For more information, see `Audit Commands `__ in the *AWS IoT Developer Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-audit-mitigation-actions-executions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-audit-mitigation-actions-executions.rst new file mode 100755 index 000000000..bd105c3db --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-audit-mitigation-actions-executions.rst @@ -0,0 +1,27 @@ +**To list the details of an audit mitigation action execution** + +An audit mitigation action task applies a mitigation action to one or more findings from an AWS IoT Device +Defender audit. The following ``list-audit-mitigation-actions-executions`` example lists the details for the +mitigation action task with the specified ``taskId`` and for the specified finding. :: + + aws iot list-audit-mitigation-actions-executions \ + --task-id myActionsTaskId \ + --finding-id 0edbaaec-2fe1-4cf5-abc9-d4c3e51f7464 + +Output:: + + { + "actionsExecutions": [ + { + "taskId": "myActionsTaskId", + "findingId": "0edbaaec-2fe1-4cf5-abc9-d4c3e51f7464", + "actionName": "ResetPolicyVersionAction", + "actionId": "1ea0b415-bef1-4a01-bd13-72fb63c59afb", + "status": "COMPLETED", + "startTime": "2019-12-10T15:19:13.279000-08:00", + "endTime": "2019-12-10T15:19:13.337000-08:00" + } + ] + } + +For more information, see `ListAuditMitigationActionsExecutions (Mitigation Action Commands) `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-audit-mitigation-actions-tasks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-audit-mitigation-actions-tasks.rst new file mode 100644 index 000000000..c43a9f906 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-audit-mitigation-actions-tasks.rst @@ -0,0 +1,21 @@ +**To list audit mitigation action tasks** + +The following ``list-audit-mitigation-actions-tasks`` example lists the mitigation actions that were applied to findings within the specified time period. :: + + aws iot list-audit-mitigation-actions-tasks \ + --start-time 1594157400 \ + --end-time 1594157430 + +Output:: + + { + "tasks": [ + { + "taskId": "0062f2d6-3999-488f-88c7-bef005414103", + "startTime": "2020-07-07T14:30:15.172000-07:00", + "taskStatus": "COMPLETED" + } + ] + } + +For more information, see `ListAuditMitigationActionsTasks (Mitigation Action Commands) `__ in the *AWS IoT Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-audit-suppressions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-audit-suppressions.rst new file mode 100644 index 000000000..eda04a243 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-audit-suppressions.rst @@ -0,0 +1,22 @@ +**To list all audit finding suppressions** + +The following ``list-audit-suppressions`` example lists all active audit finding suppressions. :: + + aws iot list-audit-suppressions + +Output:: + + { + "suppressions": [ + { + "checkName": "DEVICE_CERTIFICATE_EXPIRING_CHECK", + "resourceIdentifier": { + "deviceCertificateId": "c7691e" + }, + "expirationDate": 1597881600.0, + "suppressIndefinitely": false + } + ] + } + +For more information, see `Audit finding suppressions `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-audit-tasks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-audit-tasks.rst new file mode 100644 index 000000000..36d5fe534 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-audit-tasks.rst @@ -0,0 +1,61 @@ +**To list all findings from an audit** + +The following ``list-audit-tasks`` example lists the audit tasks that ran between June 5, 2019 and June 12, 2019. :: + + aws iot list-audit-tasks \ + --start-time 1559747125 \ + --end-time 1560357228 + +Output:: + + { + "tasks": [ + { + "taskId": "a3aea009955e501a31b764abe1bebd3d", + "taskStatus": "COMPLETED", + "taskType": "ON_DEMAND_AUDIT_TASK" + }, + { + "taskId": "f76b4b5102b632cd9ae38a279c266da1", + "taskStatus": "COMPLETED", + "taskType": "SCHEDULED_AUDIT_TASK" + }, + { + "taskId": "51d9967d9f9ff4d26529505f6d2c444a", + "taskStatus": "COMPLETED", + "taskType": "SCHEDULED_AUDIT_TASK" + }, + { + "taskId": "eeef61068b0eb03c456d746c5a26ee04", + "taskStatus": "COMPLETED", + "taskType": "SCHEDULED_AUDIT_TASK" + }, + { + "taskId": "041c49557b7c7b04c079a49514b55589", + "taskStatus": "COMPLETED", + "taskType": "SCHEDULED_AUDIT_TASK" + }, + { + "taskId": "82c7f2afac1562d18a4560be73998acc", + "taskStatus": "COMPLETED", + "taskType": "SCHEDULED_AUDIT_TASK" + }, + { + "taskId": "bade6b5efd2e1b1569822f6021b39cf5", + "taskStatus": "COMPLETED", + "taskType": "SCHEDULED_AUDIT_TASK" + }, + { + "taskId": "c23f6233ba2d35879c4bb2810fb5ffd6", + "taskStatus": "COMPLETED", + "taskType": "SCHEDULED_AUDIT_TASK" + }, + { + "taskId": "ac9086b7222a2f5e2e17bb6fd30b3aeb", + "taskStatus": "COMPLETED", + "taskType": "SCHEDULED_AUDIT_TASK" + } + ] + } + +For more information, see `Audit Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-authorizers.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-authorizers.rst new file mode 100644 index 000000000..ca975e3e0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-authorizers.rst @@ -0,0 +1,26 @@ +**To list your custom authorizer** + +The following ``list-authorizers`` example lists the custom authorizers in your AWS account. :: + + aws iot list-authorizers + +Output:: + + { + "authorizers": [ + { + "authorizerName": "CustomAuthorizer", + "authorizerArn": "arn:aws:iot:us-west-2:123456789012:authorizer/CustomAuthorizer" + }, + { + "authorizerName": "CustomAuthorizer2", + "authorizerArn": "arn:aws:iot:us-west-2:123456789012:authorizer/CustomAuthorizer2" + }, + { + "authorizerName": "CustomAuthorizer3", + "authorizerArn": "arn:aws:iot:us-west-2:123456789012:authorizer/CustomAuthorizer3" + } + ] + } + +For more information, see `ListAuthorizers `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-billing-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-billing-groups.rst new file mode 100644 index 000000000..1f7f18062 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-billing-groups.rst @@ -0,0 +1,18 @@ +**To list the billing groups for your AWS account and region** + +The following ``list-billing-groups`` example lists all billing groups that are defined for your AWS account and AWS Region. :: + + aws iot list-billing-groups + +Output:: + + { + "billingGroups": [ + { + "groupName": "GroupOne", + "groupArn": "arn:aws:iot:us-west-2:123456789012:billinggroup/GroupOne" + } + ] + } + +For more information, see `Billing Groups `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-ca-certificates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-ca-certificates.rst new file mode 100644 index 000000000..32258589e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-ca-certificates.rst @@ -0,0 +1,20 @@ +**To list the CA certificates registered in your AWS account** + +The following ``list-ca-certificates`` example lists the CA certificates registered in your AWS account. :: + + aws iot list-ca-certificates + +Output:: + + { + "certificates": [ + { + "certificateArn": "arn:aws:iot:us-west-2:123456789012:cacert/f4efed62c0142f16af278166f61962501165c4f0536295207426460058cd1467", + "certificateId": "f4efed62c0142f16af278166f61962501165c4f0536295207426460058cd1467", + "status": "INACTIVE", + "creationDate": 1569365372.053 + } + ] + } + +For more information, see `Use Your Own Certificate `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-certificates-by-ca.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-certificates-by-ca.rst new file mode 100644 index 000000000..22ea895f9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-certificates-by-ca.rst @@ -0,0 +1,21 @@ +**To list all device certificates signed with a CA certificate** + +The following ``list-certificates-by-ca`` example lists all device certificates in your AWS account that are signed with the specified CA certificate. :: + + aws iot list-certificates-by-ca \ + --ca-certificate-id f4efed62c0142f16af278166f61962501165c4f0536295207426460058cd1467 + +Output:: + + { + "certificates": [ + { + "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/488b6a7f2acdeb00a77384e63c4e40b18b1b3caaae57b7272ba44c45e3448142", + "certificateId": "488b6a7f2acdeb00a77384e63c4e40b18b1b3caaae57b7272ba44c45e3448142", + "status": "ACTIVE", + "creationDate": 1569363250.557 + } + ] + } + +For more information, see `ListCertificatesByCA `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-certificates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-certificates.rst new file mode 100644 index 000000000..1084fe922 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-certificates.rst @@ -0,0 +1,49 @@ +**Example 1: To list the certificates registered in your AWS account** + +The following ``list-certificates`` example lists all certificates registered in your account. If you have more than the default paging limit of 25, you can use the ``nextMarker`` response value from this command and supply it to the next command to get the next batch of results. Repeat until ``nextMarker`` returns without a value. :: + + aws iot list-certificates + +Output:: + + { + "certificates": [ + { + "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/604c48437a57b7d5fc5d137c5be75011c6ee67c9a6943683a1acb4b1626bac36", + "certificateId": "604c48437a57b7d5fc5d137c5be75011c6ee67c9a6943683a1acb4b1626bac36", + "status": "ACTIVE", + "creationDate": 1556810537.617 + }, + { + "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/262a1ac8a7d8aa72f6e96e365480f7313aa9db74b8339ec65d34dc3074e1c31e", + "certificateId": "262a1ac8a7d8aa72f6e96e365480f7313aa9db74b8339ec65d34dc3074e1c31e", + "status": "ACTIVE", + "creationDate": 1546447050.885 + }, + { + "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/b193ab7162c0fadca83246d24fa090300a1236fe58137e121b011804d8ac1d6b", + "certificateId": "b193ab7162c0fadca83246d24fa090300a1236fe58137e121b011804d8ac1d6b", + "status": "ACTIVE", + "creationDate": 1546292258.322 + }, + { + "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/7aebeea3845d14a44ec80b06b8b78a89f3f8a706974b8b34d18f5adf0741db42", + "certificateId": "7aebeea3845d14a44ec80b06b8b78a89f3f8a706974b8b34d18f5adf0741db42", + "status": "ACTIVE", + "creationDate": 1541457693.453 + }, + { + "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/54458aa39ebb3eb39c91ffbbdcc3a6ca1c7c094d1644b889f735a6fc2cd9a7e3", + "certificateId": "54458aa39ebb3eb39c91ffbbdcc3a6ca1c7c094d1644b889f735a6fc2cd9a7e3", + "status": "ACTIVE", + "creationDate": 1541113568.611 + }, + { + "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/4f0ba725787aa94d67d2fca420eca022242532e8b3c58e7465c7778b443fd65e", + "certificateId": "4f0ba725787aa94d67d2fca420eca022242532e8b3c58e7465c7778b443fd65e", + "status": "ACTIVE", + "creationDate": 1541022751.983 + } + ] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-custom-metrics.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-custom-metrics.rst new file mode 100644 index 000000000..8534a4fe3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-custom-metrics.rst @@ -0,0 +1,16 @@ +**To list your custom metrics** + +The following ``list-custom-metrics`` example lists all of your custom metrics. :: + + aws iot list-custom-metrics \ + --region us-east-1 + +Output:: + + { + "metricNames": [ + "batteryPercentage" + ] + } + +For more information, see `Custom metrics `__ in the *AWS IoT Core Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-dimensions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-dimensions.rst new file mode 100644 index 000000000..580cdba6b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-dimensions.rst @@ -0,0 +1,16 @@ +**To list the dimensions for your AWS account** + +The following ``list-dimensions`` example lists all AWS IoT Device Defender dimensions that are defined in your AWS account. :: + + aws iot list-dimensions + +Output:: + + { + "dimensionNames": [ + "TopicFilterForAuthMessages", + "TopicFilterForActivityMessages" + ] + } + +For more information, see `Detect Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-domain-configurations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-domain-configurations.rst new file mode 100755 index 000000000..14b9ae506 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-domain-configurations.rst @@ -0,0 +1,37 @@ +**To list domain configurations** + +The following ``list-domain-configurations`` example lists the domain configurations in your AWS account that have the specified service type. :: + + aws iot list-domain-configurations \ + --service-type "DATA" + +Output:: + + { + "domainConfigurations": + [ + { + "domainConfigurationName": "additionalDataDomain", + "domainConfigurationArn": "arn:aws:iot:us-west-2:123456789012:domainconfiguration/additionalDataDomain/dikMh", + "serviceType": "DATA" + }, + + { + "domainConfigurationName": "iot:Jobs", + "domainConfigurationArn": "arn:aws:iot:us-west-2:123456789012:domainconfiguration/iot:Jobs", + "serviceType": "JOBS" + }, + { + "domainConfigurationName": "iot:Data-ATS", + "domainConfigurationArn": "arn:aws:iot:us-west-2:123456789012:domainconfiguration/iot:Data-ATS", + "serviceType": "DATA" + }, + { + "domainConfigurationName": "iot:CredentialProvider", + "domainConfigurationArn": "arn:aws:iot:us-west-2:123456789012:domainconfiguration/iot:CredentialProvider", + "serviceType": "CREDENTIAL_PROVIDER" + } + ] + } + +For more information, see `Configurable Endpoints `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-indices.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-indices.rst new file mode 100644 index 000000000..9f5d24e31 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-indices.rst @@ -0,0 +1,15 @@ +**To list the configured search indices** + +The following ``list-indices`` example lists all configured search indices in your AWS account. If you have not enabled thing indexing, you might not have any indices. :: + + aws iot list-indices + +Output:: + + { + "indexNames": [ + "AWS_Things" + ] + } + +For more information, see `Managing Thing Indexing `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-job-executions-for-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-job-executions-for-job.rst new file mode 100644 index 000000000..1a5b97f20 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-job-executions-for-job.rst @@ -0,0 +1,25 @@ +**To list the jobs in your AWS account** + +The following ``list-job-executions-for-job`` example lists all job executions for a job in your AWS account, specified by the jobId. :: + + aws iot list-job-executions-for-job \ + --job-id my-ota-job + +Output:: + + { + "executionSummaries": [ + { + "thingArn": "arn:aws:iot:us-east-1:123456789012:thing/my_thing", + "jobExecutionSummary": { + "status": "QUEUED", + "queuedAt": "2022-03-07T15:58:42.195000-08:00", + "lastUpdatedAt": "2022-03-07T15:58:42.195000-08:00", + "executionNumber": 1, + "retryAttempt": 0 + } + } + ] + } + +For more information, see `Creating and Managing Jobs (CLI) `__ in the *AWS IoT Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-job-executions-for-thing.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-job-executions-for-thing.rst new file mode 100644 index 000000000..9c6c77f69 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-job-executions-for-thing.rst @@ -0,0 +1,24 @@ +**To list the jobs that were executed for a thing** + +The following ``list-job-executions-for-thing`` example lists all jobs that were executed for the thing named ``MyRaspberryPi``. :: + + aws iot list-job-executions-for-thing \ + --thing-name "MyRaspberryPi" + +Output:: + + { + "executionSummaries": [ + { + "jobId": "example-job-01", + "jobExecutionSummary": { + "status": "QUEUED", + "queuedAt": 1560787023.636, + "lastUpdatedAt": 1560787023.636, + "executionNumber": 1 + } + } + ] + } + +For more information, see `Creating and Managing Jobs (CLI) `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-jobs.rst new file mode 100644 index 000000000..fd99082fe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-jobs.rst @@ -0,0 +1,22 @@ +**To list the jobs in your AWS account** + +The following ``list-jobs`` example lists all jobs in your AWS account, sorted by the job status. :: + + aws iot list-jobs + +Output:: + + { + "jobs": [ + { + "jobArn": "arn:aws:iot:us-west-2:123456789012:job/example-job-01", + "jobId": "example-job-01", + "targetSelection": "SNAPSHOT", + "status": "IN_PROGRESS", + "createdAt": 1560787022.733, + "lastUpdatedAt": 1560787026.294 + } + ] + } + +For more information, see `Creating and Managing Jobs (CLI) `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-mitigation-actions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-mitigation-actions.rst new file mode 100644 index 000000000..92bcbc3de --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-mitigation-actions.rst @@ -0,0 +1,44 @@ +**To list all defined mitigation actions** + +The following ``list-mitigation-actions`` example lists all defined mitigation actions for your AWS account and Region. For each action, the name, ARN, and creation date are listed. :: + + aws iot list-mitigation-actions + +Output:: + + { + "actionIdentifiers": [ + { + "actionName": "DeactivateCACertAction", + "actionArn": "arn:aws:iot:us-west-2:123456789012:mitigationaction/DeactivateCACertAction", + "creationDate": "2019-12-10T11:12:47.574000-08:00" + }, + { + "actionName": "ResetPolicyVersionAction", + "actionArn": "arn:aws:iot:us-west-2:123456789012:mitigationaction/ResetPolicyVersionAction", + "creationDate": "2019-12-10T11:11:48.920000-08:00" + }, + { + "actionName": "PublishFindingToSNSAction", + "actionArn": "arn:aws:iot:us-west-2:123456789012:mitigationaction/PublishFindingToSNSAction", + "creationDate": "2019-12-10T11:10:49.546000-08:00" + }, + { + "actionName": "AddThingsToQuarantineGroupAction", + "actionArn": "arn:aws:iot:us-west-2:123456789012:mitigationaction/AddThingsToQuarantineGroupAction", + "creationDate": "2019-12-10T11:09:35.999000-08:00" + }, + { + "actionName": "UpdateDeviceCertAction", + "actionArn": "arn:aws:iot:us-west-2:123456789012:mitigationaction/UpdateDeviceCertAction", + "creationDate": "2019-12-10T11:08:44.263000-08:00" + }, + { + "actionName": "SampleMitigationAction", + "actionArn": "arn:aws:iot:us-west-2:123456789012:mitigationaction/SampleMitigationAction", + "creationDate": "2019-12-10T11:03:41.840000-08:00" + } + ] + } + +For more information, see `ListMitigationActions (Mitigation Action Commands) `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-mitigations-actions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-mitigations-actions.rst new file mode 100755 index 000000000..27f128eed --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-mitigations-actions.rst @@ -0,0 +1,44 @@ +**To list all defined mitigation actions** + +The following ``list-mitigations-actions`` example lists all defined mitigation actions for your AWS account and Region. For each action, the name, ARN, and creation date are listed. :: + + aws iot list-mitigation-actions + +Output:: + + { + "actionIdentifiers": [ + { + "actionName": "DeactivateCACertAction", + "actionArn": "arn:aws:iot:us-west-2:123456789012:mitigationaction/DeactivateCACertAction", + "creationDate": "2019-12-10T11:12:47.574000-08:00" + }, + { + "actionName": "ResetPolicyVersionAction", + "actionArn": "arn:aws:iot:us-west-2:123456789012:mitigationaction/ResetPolicyVersionAction", + "creationDate": "2019-12-10T11:11:48.920000-08:00" + }, + { + "actionName": "PublishFindingToSNSAction", + "actionArn": "arn:aws:iot:us-west-2:123456789012:mitigationaction/PublishFindingToSNSAction", + "creationDate": "2019-12-10T11:10:49.546000-08:00" + }, + { + "actionName": "AddThingsToQuarantineGroupAction", + "actionArn": "arn:aws:iot:us-west-2:123456789012:mitigationaction/AddThingsToQuarantineGroupAction", + "creationDate": "2019-12-10T11:09:35.999000-08:00" + }, + { + "actionName": "UpdateDeviceCertAction", + "actionArn": "arn:aws:iot:us-west-2:123456789012:mitigationaction/UpdateDeviceCertAction", + "creationDate": "2019-12-10T11:08:44.263000-08:00" + }, + { + "actionName": "SampleMitigationAction", + "actionArn": "arn:aws:iot:us-west-2:123456789012:mitigationaction/SampleMitigationAction", + "creationDate": "2019-12-10T11:03:41.840000-08:00" + } + ] + } + +For more information, see `ListMitigationActions (Mitigation Action Commands) `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-ota-updates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-ota-updates.rst new file mode 100644 index 000000000..e216881f9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-ota-updates.rst @@ -0,0 +1,19 @@ +**To list OTA Updates for the account** + +The following ``list-ota-updates`` example lists the available OTA updates. :: + + aws iot list-ota-updates + +Output:: + + { + "otaUpdates": [ + { + "otaUpdateId": "itsaupdate", + "otaUpdateArn": "arn:aws:iot:us-west-2:123456789012:otaupdate/itsaupdate", + "creationDate": 1557863215.995 + } + ] + } + +For more information, see `ListOTAUpdates `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-outgoing-certificates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-outgoing-certificates.rst new file mode 100644 index 000000000..dc1d51ef9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-outgoing-certificates.rst @@ -0,0 +1,21 @@ +**To list certificates being transferred to a different AWS account** + +The following ``list-outgoing-certificates`` example lists all device certificates that are in the process of being transferred to a different AWS account using the ``transfer-certificate`` command. :: + + aws iot list-outgoing-certificates + +Output:: + + { + "outgoingCertificates": [ + { + "certificateArn": "arn:aws:iot:us-west-2:030714055129:cert/488b6a7f2acdeb00a77384e63c4e40b18b1b3caaae57b7272ba44c45e3448142", + "certificateId": "488b6a7f2acdeb00a77384e63c4e40b18b1b3caaae57b7272ba44c45e3448142", + "transferredTo": "030714055129", + "transferDate": 1569427780.441, + "creationDate": 1569363250.557 + } + ] + } + +For more information, see `ListOutgoingCertificates `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-policies.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-policies.rst new file mode 100644 index 000000000..e02f1dbf4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-policies.rst @@ -0,0 +1,27 @@ +**To list the policies defined in your AWS account** + +The following ``list-policies`` example lists all policies defined in your AWS account. :: + + aws iot list-policies + +Output:: + + { + "policies": [ + { + "policyName": "UpdateDeviceCertPolicy", + "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/UpdateDeviceCertPolicy" + }, + { + "policyName": "PlantIoTPolicy", + "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/PlantIoTPolicy" + }, + { + "policyName": "MyPiGroup_Core-policy", + "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/MyPiGroup_Core-policy" + } + ] + } + +For more information, see `AWS IoT Policies `__ in the *AWS IoT Developers Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-policy-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-policy-versions.rst new file mode 100644 index 000000000..5b48867fe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-policy-versions.rst @@ -0,0 +1,25 @@ +**Example 1: To see all versions of a policy** + +The following ``list-policy-versions`` example lists all versions of the specified policy and their creation dates. :: + + aws iot list-policy-versions \ + --policy-name LightBulbPolicy + +Output:: + + { + "policyVersions": [ + { + "versionId": "2", + "isDefaultVersion": true, + "createDate": 1559925941.924 + }, + { + "versionId": "1", + "isDefaultVersion": false, + "createDate": 1559925941.924 + } + ] + } + +For more information, see `AWS IoT Policies `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-principal-things.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-principal-things.rst new file mode 100644 index 000000000..1d8f53d70 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-principal-things.rst @@ -0,0 +1,17 @@ +**To list the things attached with a principal** + +The following ``list-principal-things`` example lists the things attached to the principal specified by an ARN. :: + + aws iot list-principal-things \ + --principal arn:aws:iot:us-west-2:123456789012:cert/2e1eb273792174ec2b9bf4e9b37e6c6c692345499506002a35159767055278e8 + +Output:: + + { + "things": [ + "DeskLamp", + "TableLamp" + ] + } + +For more information, see `ListPrincipalThings `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-provisioning-template-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-provisioning-template-versions.rst new file mode 100644 index 000000000..cf29e6109 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-provisioning-template-versions.rst @@ -0,0 +1,25 @@ +**To list provisioning template versions** + +The following ``list-provisioning-template-versions`` example lists the available versions of the specified provisioning template. :: + + aws iot list-provisioning-template-versions \ + --template-name "widget-template" + +Output:: + + { + "versions": [ + { + "versionId": 1, + "creationDate": 1574800471.339, + "isDefaultVersion": true + }, + { + "versionId": 2, + "creationDate": 1574801192.317, + "isDefaultVersion": false + } + ] + } + +For more information, see `AWS IoT Secure Tunneling `__ in the *AWS IoT Core Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-provisioning-templates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-provisioning-templates.rst new file mode 100644 index 000000000..023bb6383 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-provisioning-templates.rst @@ -0,0 +1,22 @@ +**To list provisioning templates** + +The following ``list-provisioning-templates`` example lists all of the provisioning templates in your AWS account. :: + + aws iot list-provisioning-templates + +Output:: + + { + "templates": [ + { + "templateArn": "arn:aws:iot:us-east-1:123456789012:provisioningtemplate/widget-template", + "templateName": "widget-template", + "description": "A provisioning template for widgets", + "creationDate": 1574800471.367, + "lastModifiedDate": 1574801192.324, + "enabled": false + } + ] + } + +For more information, see `AWS IoT Secure Tunneling `__ in the *AWS IoT Core Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-role-aliases.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-role-aliases.rst new file mode 100644 index 000000000..c6bf93b2d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-role-aliases.rst @@ -0,0 +1,16 @@ +**To list the AWS IoT role aliases in your AWS account** + +The following ``list-role-aliases`` example lists the AWS IoT role aliases in your AWS account. :: + + aws iot list-role-aliases + +Output:: + + { + "roleAliases": [ + "ResidentAlias", + "ElectricianAlias" + ] + } + +For more information, see `ListRoleAliases `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-scheduled-audits.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-scheduled-audits.rst new file mode 100644 index 000000000..15e1efbab --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-scheduled-audits.rst @@ -0,0 +1,25 @@ +**To list the scheduled audits for your AWS account** + +The following ``list-scheduled-audits`` example lists any audits scheduled for your AWS account. :: + + aws iot list-scheduled-audits + +Output:: + + { + "scheduledAudits": [ + { + "scheduledAuditName": "AWSIoTDeviceDefenderDailyAudit", + "scheduledAuditArn": "arn:aws:iot:us-west-2:123456789012:scheduledaudit/AWSIoTDeviceDefenderDailyAudit", + "frequency": "DAILY" + }, + { + "scheduledAuditName": "AWSDeviceDefenderWeeklyAudit", + "scheduledAuditArn": "arn:aws:iot:us-west-2:123456789012:scheduledaudit/AWSDeviceDefenderWeeklyAudit", + "frequency": "WEEKLY", + "dayOfWeek": "SUN" + } + ] + } + +For more information, see `Audit Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-security-profiles-for-target.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-security-profiles-for-target.rst new file mode 100644 index 000000000..a364d7653 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-security-profiles-for-target.rst @@ -0,0 +1,24 @@ +**To list the security profiles attached to a target** + +The following ``list-security-profiles-for-target`` example lists the AWS IoT Device Defender security profiles that are attached to unregistered devices. :: + + aws iot list-security-profiles-for-target \ + --security-profile-target-arn "arn:aws:iot:us-west-2:123456789012:all/unregistered-things" + +Output:: + + { + "securityProfileTargetMappings": [ + { + "securityProfileIdentifier": { + "name": "Testprofile", + "arn": "arn:aws:iot:us-west-2:123456789012:securityprofile/Testprofile" + }, + "target": { + "arn": "arn:aws:iot:us-west-2:123456789012:all/unregistered-things" + } + } + ] + } + +For more information, see `Detect Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-security-profiles.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-security-profiles.rst new file mode 100644 index 000000000..c0afac12f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-security-profiles.rst @@ -0,0 +1,18 @@ +**To list the security profiles for your AWS account** + +The following ``list-security-profiles`` example lists all AWS IoT Device Defender security profiles that are defined in your AWS account. :: + + aws iot list-security-profiles + +Output:: + + { + "securityProfileIdentifiers": [ + { + "name": "Testprofile", + "arn": "arn:aws:iot:us-west-2:123456789012:securityprofile/Testprofile" + } + ] + } + +For more information, see `Detect Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-streams.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-streams.rst new file mode 100644 index 000000000..a491154d8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-streams.rst @@ -0,0 +1,26 @@ +**To list the streams in the account** + +The following ``list-streams`` example lists all of the streams in your AWS account. :: + + aws iot list-streams + +Output:: + + { + "streams": [ + { + "streamId": "stream12345", + "streamArn": "arn:aws:iot:us-west-2:123456789012:stream/stream12345", + "streamVersion": 1, + "description": "This stream is used for Amazon FreeRTOS OTA Update 12345." + }, + { + "streamId": "stream54321", + "streamArn": "arn:aws:iot:us-west-2:123456789012:stream/stream54321", + "streamVersion": 1, + "description": "This stream is used for Amazon FreeRTOS OTA Update 54321." + } + ] + } + +For more information, see `ListStreams `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-tags-for-resource.rst new file mode 100644 index 000000000..e1ba39066 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-tags-for-resource.rst @@ -0,0 +1,23 @@ +**To display the tags and their values associated with a resource** + +The following ``list-tags-for-resource`` example displays the tags and values associated with the thing group ``LightBulbs``. :: + + aws iot list-tags-for-resource \ + --resource-arn "arn:aws:iot:us-west-2:094249569039:thinggroup/LightBulbs" + +Output:: + + { + "tags": [ + { + "Key": "Assembly", + "Value": "Fact1NW" + }, + { + "Key": "MyTag", + "Value": "777" + } + ] + } + +For more information, see `Tagging Your AWS IoT Resources `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-targets-for-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-targets-for-policy.rst new file mode 100644 index 000000000..2553c6bf8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-targets-for-policy.rst @@ -0,0 +1,17 @@ +**To list the principals associated with an AWS IoT policy** + +The following ``list-targets-for-policy`` example lists the device certificates to which the specified policy is attached. :: + + aws iot list-targets-for-policy \ + --policy-name UpdateDeviceCertPolicy + +Output:: + + { + "targets": [ + "arn:aws:iot:us-west-2:123456789012:cert/488b6a7f2acdeb00a77384e63c4e40b18b1b3caaae57b7272ba44c45e3448142", + "arn:aws:iot:us-west-2:123456789012:cert/d1eb269fb55a628552143c8f96eb3c258fcd5331ea113e766ba0c82bf225f0be" + ] + } + +For more information, see `Thing Groups `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-targets-for-security-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-targets-for-security-profile.rst new file mode 100644 index 000000000..9187001cc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-targets-for-security-profile.rst @@ -0,0 +1,21 @@ +**To list the targets to which a security profile is applied** + +The following ``list-targets-for-security-profile`` example lists the targets to which the AWS IoT Device Defender security profile named ``PossibleIssue`` is applied. :: + + aws iot list-targets-for-security-profile \ + --security-profile-name Testprofile + +Output:: + + { + "securityProfileTargets": [ + { + "arn": "arn:aws:iot:us-west-2:123456789012:all/unregistered-things" + }, + { + "arn": "arn:aws:iot:us-west-2:123456789012:all/registered-things" + } + ] + } + +For more information, see `Detect Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-thing-groups-for-thing.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-thing-groups-for-thing.rst new file mode 100644 index 000000000..69748ceec --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-thing-groups-for-thing.rst @@ -0,0 +1,24 @@ +**To list the groups that a thing belongs to** + +The following ``list-thing-groups-for-thing`` example lists the groups to which the specified thing belongs. :: + + aws iot list-thing-groups-for-thing \ + --thing-name MyLightBulb + +Output:: + + { + "thingGroups": [ + { + "groupName": "DeadBulbs", + "groupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/DeadBulbs" + }, + { + "groupName": "LightBulbs", + "groupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/LightBulbs" + } + ] + } + +For more information, see `Thing Groups `__ in the *AWS IoT Developers Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-thing-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-thing-groups.rst new file mode 100644 index 000000000..5585985c1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-thing-groups.rst @@ -0,0 +1,23 @@ +**To list the thing groups defined in your AWS account** + +The following ``describe-thing-group`` example lists all thing groups defined in your AWS account. :: + + aws iot list-thing-groups + +Output:: + + { + "thingGroups": [ + { + "groupName": "HalogenBulbs", + "groupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/HalogenBulbs" + }, + { + "groupName": "LightBulbs", + "groupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/LightBulbs" + } + ] + } + +For more information, see `Thing Groups `__ in the *AWS IoT Developers Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-thing-principals.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-thing-principals.rst new file mode 100644 index 000000000..d74606e57 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-thing-principals.rst @@ -0,0 +1,16 @@ +**To list the principals associated with a thing** + +The following ``list-thing-principals`` example lists the principals (X.509 certificates, IAM users, groups, roles, Amazon Cognito identities, or federated identities) associated with the specified thing. :: + + aws iot list-thing-principals \ + --thing-name MyRaspberryPi + +Output:: + + { + "principals": [ + "arn:aws:iot:us-west-2:123456789012:cert/33475ac865079a5ffd5ecd44240640349293facc760642d7d8d5dbb6b4c86893" + ] + } + +For more information, see `ListThingPrincipals `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-thing-types.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-thing-types.rst new file mode 100644 index 000000000..5cb2299ce --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-thing-types.rst @@ -0,0 +1,29 @@ +**To list the defined thing types** + +The following ``list-thing-types`` example displays a list of thing types defined in your AWS account. :: + + aws iot list-thing-types + +Output:: + + { + "thingTypes": [ + { + "thingTypeName": "LightBulb", + "thingTypeArn": "arn:aws:iot:us-west-2:123456789012:thingtype/LightBulb", + "thingTypeProperties": { + "thingTypeDescription": "light bulb type", + "searchableAttributes": [ + "model", + "wattage" + ] + }, + "thingTypeMetadata": { + "deprecated": false, + "creationDate": 1559772562.498 + } + } + ] + } + +For more information, see `Thing Types `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-things-in-billing-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-things-in-billing-group.rst new file mode 100644 index 000000000..2ba350f4f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-things-in-billing-group.rst @@ -0,0 +1,17 @@ +**To list the things in a billing group** + +The following ``list-things-in-billing-group`` example lists the things that are in the specified billing group. :: + + aws iot list-things-in-billing-group \ + --billing-group-name GroupOne + +Output:: + + { + "things": [ + "MyOtherLightBulb", + "MyLightBulb" + ] + } + +For more information, see `Billing Groups `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-things-in-thing-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-things-in-thing-group.rst new file mode 100644 index 000000000..4ac5b1fe7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-things-in-thing-group.rst @@ -0,0 +1,16 @@ +**To list the things that belong to a group** + +The following ``list-things-in-thing-group`` example lists the things that belong to the specified thing group. :: + + aws iot list-things-in-thing-group \ + --thing-group-name LightBulbs + +Output:: + + { + "things": [ + "MyLightBulb" + ] + } + +For more information, see `Thing Groups `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-things.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-things.rst new file mode 100644 index 000000000..4a62e0480 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-things.rst @@ -0,0 +1,84 @@ +**Example 1: To list all things in the registry** + +The following ``list-things`` example lists the things (devices) that are defined in the AWS IoT registry for your AWS account. :: + + aws iot list-things + +Output:: + + { + "things": [ + { + "thingName": "ThirdBulb", + "thingTypeName": "LightBulb", + "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/ThirdBulb", + "attributes": { + "model": "123", + "wattage": "75" + }, + "version": 2 + }, + { + "thingName": "MyOtherLightBulb", + "thingTypeName": "LightBulb", + "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyOtherLightBulb", + "attributes": { + "model": "123", + "wattage": "75" + }, + "version": 3 + }, + { + "thingName": "MyLightBulb", + "thingTypeName": "LightBulb", + "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyLightBulb", + "attributes": { + "model": "123", + "wattage": "75" + }, + "version": 1 + }, + { + "thingName": "SampleIoTThing", + "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/SampleIoTThing", + "attributes": {}, + "version": 1 + } + ] + } + +**Example 2: To list the defined things that have a specific attribute** + +The following ``list-things`` example displays a list of things that have an attribute named ``wattage``. :: + + aws iot list-things \ + --attribute-name wattage + +Output:: + + { + "things": [ + { + "thingName": "MyLightBulb", + "thingTypeName": "LightBulb", + "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyLightBulb", + "attributes": { + "model": "123", + "wattage": "75" + }, + "version": 1 + }, + { + "thingName": "MyOtherLightBulb", + "thingTypeName": "LightBulb", + "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyOtherLightBulb", + "attributes": { + "model": "123", + "wattage": "75" + }, + "version": 3 + } + ] + } + +For more information, see `How to Manage Things with the Registry `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-topic-rule-destinations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-topic-rule-destinations.rst new file mode 100644 index 000000000..745feaeb9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-topic-rule-destinations.rst @@ -0,0 +1,21 @@ +**To list your topic rule destinations** + +The following ``list-topic-rule-destinations`` example lists all topic rule destinations that you have defined in the current AWS Region. :: + + aws iot list-topic-rule-destinations + +Output:: + + { + "destinationSummaries": [ + { + "arn": "arn:aws:iot:us-west-2:123456789012:ruledestination/http/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", + "status": "ENABLED", + "httpUrlSummary": { + "confirmationUrl": "https://example.com" + } + } + ] + } + +For more information, see `Working with topic rule destinations `__ in the *AWS IoT Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-topic-rules.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-topic-rules.rst new file mode 100644 index 000000000..7207956c6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-topic-rules.rst @@ -0,0 +1,28 @@ +**To list your rules** + +The following ``list-topic-rules`` example lists all rules that you have defined. :: + + aws iot list-topic-rules + +Output:: + + { + "rules": [ + { + "ruleArn": "arn:aws:iot:us-west-2:123456789012:rule/MyRPiLowMoistureAlertRule", + "ruleName": "MyRPiLowMoistureAlertRule", + "topicPattern": "$aws/things/MyRPi/shadow/update/accepted", + "createdAt": 1558624363.0, + "ruleDisabled": false + }, + { + "ruleArn": "arn:aws:iot:us-west-2:123456789012:rule/MyPlantPiMoistureAlertRule", + "ruleName": "MyPlantPiMoistureAlertRule", + "topicPattern": "$aws/things/MyPlantPi/shadow/update/accepted", + "createdAt": 1541458459.0, + "ruleDisabled": false + } + ] + } + +For more information, see `Viewing Your Rules `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-v2-logging-levels.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-v2-logging-levels.rst new file mode 100644 index 000000000..7700af33d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-v2-logging-levels.rst @@ -0,0 +1,18 @@ +**To list logging levels** + +The following ``list-v2-logging-levels`` example lists the configured logging levels. If logging levels were not set, a ``NotConfiguredException`` occurs when you run this command. :: + + aws iot list-v2-logging-levels + +Output:: + + { + "logTargetConfigurations": [ + { + "logTarget": { + "targetType": "DEFAULT" + }, + "logLevel": "ERROR" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-violation-events.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-violation-events.rst new file mode 100644 index 000000000..27fc197cc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/list-violation-events.rst @@ -0,0 +1,107 @@ +**To list the security profile violations during a time period** + +The following ``list-violation-events`` example lists violations that occurred between June 5, 2019 and June 12, 2019 for all AWS IoT Device Defender security profiles for the current AWS account and AWS Region. :: + + aws iot list-violation-events \ + --start-time 1559747125 \ + --end-time 1560351925 + +Output:: + + { + "violationEvents": [ + { + "violationId": "174db59167fa474c80a652ad1583fd44", + "thingName": "iotconsole-1560269126751-1", + "securityProfileName": "Testprofile", + "behavior": { + "name": "Authorization", + "metric": "aws:num-authorization-failures", + "criteria": { + "comparisonOperator": "greater-than", + "value": { + "count": 10 + }, + "durationSeconds": 300, + "consecutiveDatapointsToAlarm": 1, + "consecutiveDatapointsToClear": 1 + } + }, + "metricValue": { + "count": 0 + }, + "violationEventType": "in-alarm", + "violationEventTime": 1560279000.0 + }, + { + "violationId": "c8a9466a093d3b7b35cd44ca58bdbeab", + "thingName": "TvnQoEoU", + "securityProfileName": "Testprofile", + "behavior": { + "name": "CellularBandwidth", + "metric": "aws:message-byte-size", + "criteria": { + "comparisonOperator": "greater-than", + "value": { + "count": 128 + }, + "consecutiveDatapointsToAlarm": 1, + "consecutiveDatapointsToClear": 1 + } + }, + "metricValue": { + "count": 110 + }, + "violationEventType": "in-alarm", + "violationEventTime": 1560276600.0 + }, + { + "violationId": "74aa393adea02e6648f3ac362beed55e", + "thingName": "iotconsole-1560269232412-2", + "securityProfileName": "Testprofile", + "behavior": { + "name": "Authorization", + "metric": "aws:num-authorization-failures", + "criteria": { + "comparisonOperator": "greater-than", + "value": { + "count": 10 + }, + "durationSeconds": 300, + "consecutiveDatapointsToAlarm": 1, + "consecutiveDatapointsToClear": 1 + } + }, + "metricValue": { + "count": 0 + }, + "violationEventType": "in-alarm", + "violationEventTime": 1560276600.0 + }, + { + "violationId": "1e6ab5f7cf39a1466fcd154e1377e406", + "thingName": "TvnQoEoU", + "securityProfileName": "Testprofile", + "behavior": { + "name": "Authorization", + "metric": "aws:num-authorization-failures", + "criteria": { + "comparisonOperator": "greater-than", + "value": { + "count": 10 + }, + "durationSeconds": 300, + "consecutiveDatapointsToAlarm": 1, + "consecutiveDatapointsToClear": 1 + } + }, + "metricValue": { + "count": 0 + }, + "violationEventType": "in-alarm", + "violationEventTime": 1560276600.0 + } + ] + } + +For more information, see `Detect Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/register-ca-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/register-ca-certificate.rst new file mode 100644 index 000000000..a529da58a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/register-ca-certificate.rst @@ -0,0 +1,16 @@ +**To register a certificate authority (CA) certificate** + +The following ``register-ca-certificate`` example registers a CA certificate. The command supplies the CA certificate and a key verification certificate that proves you own the private key associated with the CA certificate. :: + + aws iot register-ca-certificate \ + --ca-certificate file://rootCA.pem \ + --verification-cert file://verificationCert.pem + +Output:: + + { + "certificateArn": "arn:aws:iot:us-west-2:123456789012:cacert/f4efed62c0142f16af278166f61962501165c4f0536295207426460058cd1467", + "certificateId": "f4efed62c0142f16af278166f61962501165c4f0536295207426460058cd1467" + } + +For more information, see `RegisterCACertificate `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/register-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/register-certificate.rst new file mode 100644 index 000000000..f63e3de21 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/register-certificate.rst @@ -0,0 +1,16 @@ +**To register a self signed device certificate** + +The following ``register-certificate`` example registers the ``deviceCert.pem`` device certificate signed by the ``rootCA.pem`` CA certificate. The CA certificate must be registered before you use it to register a self-signed device certificate. The self-signed certificate must be signed by the same CA certificate you pass to this command. :: + + aws iot register-certificate \ + --certificate-pem file://deviceCert.pem \ + --ca-certificate-pem file://rootCA.pem + +Output:: + + { + "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/488b6a7f2acdeb00a77384e63c4e40b18b1b3caaae57b7272ba44c45e3448142", + "certificateId": "488b6a7f2acdeb00a77384e63c4e40b18b1b3caaae57b7272ba44c45e3448142" + } + +For more information, see `RegisterCertificate `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/register-thing.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/register-thing.rst new file mode 100644 index 000000000..2cb10eb13 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/register-thing.rst @@ -0,0 +1,33 @@ +**To register a thing** + +The following ``register-thing`` example registers a thing using a provisioning template. :: + + aws iot register-thing \ + --template-body '{"Parameters":{"ThingName":{"Type":"String"},"AWS::IoT::Certificate::Id":{"Type":"String"}},"Resources": {"certificate":{"Properties":{"CertificateId":{"Ref":"AWS::IoT::Certificate::Id"},"Status":"Active"},"Type":"AWS::IoT::Certificate"},"policy":{"Properties":{"PolicyName":"MyIotPolicy"},"Type":"AWS::IoT::Policy"},"thing":{"OverrideSettings":{"AttributePayload":"MERGE","ThingGroups":"DO_NOTHING","ThingTypeName":"REPLACE"},"Properties":{"AttributePayload":{},"ThingGroups":[],"ThingName":{"Ref":"ThingName"},"ThingTypeName":"VirtualThings"},"Type":"AWS::IoT::Thing"}}}' \ + --parameters '{"ThingName":"Register-thing-trial-1","AWS::IoT::Certificate::Id":"799a9ea048a1e6aea42b55EXAMPLEf8697b4bafcd77a318a3068e30404b9233c"}' + +Output:: + + { + "certificatePem": "-----BEGIN CERTIFICATE-----\nMIIDWTCCAkGgAwIBAgIUYLk81I35cIppobpw + HiOJ2jNjboIwDQYJKoZIhvcNAQEL\nBQAwTTFLMEkGA1UECwxCQW1hem9uIFdlYiBTZXJ2aWNlcyBPPUFtYXpvbi + 5jb20g\nSW5jLiBMPVNlYXR0bGUgU1Q9V2FzaGluZ3RvbiBDPVVTMB4XDTIwMDcyMzE2NDUw\nOVoXDTQ5MTIzMT + IzNTk1OVowHjEcMBoGA1UEAwwTQVdTIElvVCBDZXJ0aWZpY2F0\nZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC + AQoCggEBAO71uADhdBajqTmgrMV5\nmCFfBZQRMo1MdtVoZr2X+M4MzL+RARrtUzH9a2SMAckeX8KeblIOTKzORI + RDXnyE\n6lVOwjgAsd0ku22rFxex4eG2ikha7pYYkvuToqA7L3TxItRvfKrxRI4ZfJoFPip4\nKqiuBJVNOGKTcQ + Hd1RNOrddwwu6kFJLeKDmEXAMPLEdUF0N+qfR9yKnZQkm+g6Q2\nGXu7u0W3hn6nlRN8qVoka0uW12p53xM7oHVz + Gf+cxKBxlbOhGkp6yCfTSkUBm3Sp\n9zLw35kiHXVm4EVpwgNlnk6XcIGIkw8a/iy4pzmvuGAANY1/uU/zgCjymw + ZT5S30\nBV0CAwEAAaNgMF4wHwYDVR0jBBgwFoAUGx0tCcU3q2n1WXAuUCv6hugXjKswHQYD\nVR0OBBYEFOVtvZ + 9Aj2RYFnkX7Iu01XTRUdxgMAwGA1UdEwEB/wQCMAAwDgYDVR0P\nAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4IB + AQCXCQcpOtubS5ftOsDMTcpP/jNX\nDHyArxmjpSc2aCdmm7WX59lTKWyAdxGAvqaDVWqTo0oXI7tZ8w7aINlGi5 + pXnifx\n3SBebMUoBbTktrC97yUaeL025mCFv8emDnTR/fE7PTsBKjW0g/rrfpwBxZLXDFwN\nnqkQjy3EDfifj2 + 6j0xYIqqWMPogyn4srOCKynS5wMJuQZlHQOnabVwnwK4Y0Mflp\np9+4susFUR9aT3BT1AcIwqSpzhlKhh4Iz7ND + kRn4amsUT210jg/zOO1Ow+BTHcVQ\nJly8XDu0CWSu04q6SnaBzHmlySIajxuRTP/AdfRouP1OXe+qlbPOBcvVvF + 8o\n-----END CERTIFICATE-----\n", + "resourceArns": { + "certificate": "arn:aws:iot:us-west-2:571032923833:cert/799a9ea048a1e6aea42b55EXAMPLEf8697b4bafcd77a318a3068e30404b9233c", + "thing": "arn:aws:iot:us-west-2:571032923833:thing/Register-thing-trial-1" + } + } + +For more information, see `Provisioning by trusted user `__ in the *AWS IoT Core Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/reject-certificate-transfer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/reject-certificate-transfer.rst new file mode 100644 index 000000000..f2402c67e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/reject-certificate-transfer.rst @@ -0,0 +1,10 @@ +**To reject a certificate transfer** + +The following ``reject-certificate-transfer`` example rejects the transfer of the specified device certificate from another AWS account. :: + + aws iot reject-certificate-transfer \ + --certificate-id f0f33678c7c9a046e5cc87b2b1a58dfa0beec26db78addd5e605d630e05c7fc8 + +This command produces no output. + +For more information, see `Transfer a certificate to another account `__ in the *AWS IoT Core Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/remove-thing-from-billing-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/remove-thing-from-billing-group.rst new file mode 100644 index 000000000..448b62d6a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/remove-thing-from-billing-group.rst @@ -0,0 +1,12 @@ +**To remove a thing from a billing group** + +The following ``remove-thing-from-billing-group`` example removes the specified thing from a billing group. :: + + aws iot remove-thing-from-billing-group \ + --billing-group-name GroupOne \ + --thing-name MyOtherLightBulb + +This command produces no output. + +For more information, see `Billing Groups `__ in the *AWS IoT Developers Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/remove-thing-from-thing-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/remove-thing-from-thing-group.rst new file mode 100644 index 000000000..00581f79e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/remove-thing-from-thing-group.rst @@ -0,0 +1,12 @@ +**To remove a thing from a thing group** + +The following ``remove-thing-from-thing-group`` example removes the specified thing from a thing group. :: + + aws iot remove-thing-from-thing-group \ + --thing-name bulb7 \ + --thing-group-name DeadBulbs + +This command produces no output. + +For more information, see `Thing Groups `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/replace-topic-rule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/replace-topic-rule.rst new file mode 100644 index 000000000..3a355b953 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/replace-topic-rule.rst @@ -0,0 +1,11 @@ +**To update a topic's rule definition** + +The following ``replace-topic-rule`` example updates the specified rule to send an SNS alert when soil moisture level readings are too low. :: + + aws iot replace-topic-rule \ + --rule-name MyRPiLowMoistureAlertRule \ + --topic-rule-payload "{\"sql\": \"SELECT * FROM '$aws/things/MyRPi/shadow/update/accepted' WHERE state.reported.moisture = 'low'\", \"description\": \"Sends an alert when soil moisture level readings are too low.\",\"actions\": [{\"sns\":{\"targetArn\":\"arn:aws:sns:us-west-2:123456789012:MyRPiLowMoistureTopic\",\"roleArn\":\"arn:aws:iam::123456789012:role/service-role/MyRPiLowMoistureTopicRole\",\"messageFormat\": \"RAW\"}}],\"ruleDisabled\": false,\"awsIotSqlVersion\":\"2016-03-23\"}" + +This command produces no output. + +For more information, see `Creating an AWS IoT Rule `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/search-index.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/search-index.rst new file mode 100644 index 000000000..092341faf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/search-index.rst @@ -0,0 +1,56 @@ +**To query the thing index** + +The following ``search-index`` example queries the ``AWS_Things`` index for things that have a type of ``LightBulb``. :: + + aws iot search-index \ + --index-name "AWS_Things" \ + --query-string "thingTypeName:LightBulb" + +Output:: + + { + "things": [ + { + "thingName": "MyLightBulb", + "thingId": "40da2e73-c6af-406e-b415-15acae538797", + "thingTypeName": "LightBulb", + "thingGroupNames": [ + "LightBulbs", + "DeadBulbs" + ], + "attributes": { + "model": "123", + "wattage": "75" + }, + "connectivity": { + "connected": false + } + }, + { + "thingName": "ThirdBulb", + "thingId": "615c8455-33d5-40e8-95fd-3ee8b24490af", + "thingTypeName": "LightBulb", + "attributes": { + "model": "123", + "wattage": "75" + }, + "connectivity": { + "connected": false + } + }, + { + "thingName": "MyOtherLightBulb", + "thingId": "6dae0d3f-40c1-476a-80c4-1ed24ba6aa11", + "thingTypeName": "LightBulb", + "attributes": { + "model": "123", + "wattage": "75" + }, + "connectivity": { + "connected": false + } + } + ] + } + +For more information, see `Managing Thing Indexing `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/set-default-authorizer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/set-default-authorizer.rst new file mode 100644 index 000000000..da50e5d5b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/set-default-authorizer.rst @@ -0,0 +1,15 @@ +**To set a default authorizer** + +The following ``set-default-authorizer`` example sets the custom authorizer named ``CustomAuthorizer`` as the default authorizer. :: + + aws iot set-default-authorizer \ + --authorizer-name CustomAuthorizer + +Output:: + + { + "authorizerName": "CustomAuthorizer", + "authorizerArn": "arn:aws:iot:us-west-2:123456789012:authorizer/CustomAuthorizer" + } + +For more information, see `CreateDefaultAuthorizer `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/set-default-policy-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/set-default-policy-version.rst new file mode 100644 index 000000000..9d39a69e4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/set-default-policy-version.rst @@ -0,0 +1,9 @@ +**To set the default version for a policy** + +The following ``set-default-policy-version`` example sets the default version to ``2`` for the policy named ``UpdateDeviceCertPolicy``. :: + + aws iot set-default-policy-version \ + --policy-name UpdateDeviceCertPolicy \ + --policy-version-id 2 + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/set-v2-logging-level.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/set-v2-logging-level.rst new file mode 100644 index 000000000..6217535e4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/set-v2-logging-level.rst @@ -0,0 +1,10 @@ +**To set the logging level for a thing group** + +The following ``set-v2-logging-level`` example sets the logging level to log warnings for the specified thing group. :: + + aws iot set-v2-logging-level \ + --log-target "{\"targetType\":\"THING_GROUP\",\"targetName\":\"LightBulbs\"}" \ + --log-level WARN + + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/set-v2-logging-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/set-v2-logging-options.rst new file mode 100644 index 000000000..ee83196d2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/set-v2-logging-options.rst @@ -0,0 +1,9 @@ +**To set the logging options** + +The following ``set-v2-logging-options`` example sets the default logging verbosity level to ERROR and specifies the ARN to use for logging. :: + + aws iot set-v2-logging-options \ + --default-log-level ERROR \ + --role-arn "arn:aws:iam::094249569039:role/service-role/iotLoggingRole" + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/start-audit-mitigation-actions-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/start-audit-mitigation-actions-task.rst new file mode 100755 index 000000000..12056225b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/start-audit-mitigation-actions-task.rst @@ -0,0 +1,17 @@ +**To apply a mitigation action to the findings from an audit** + +The following ``start-audit-mitigation-actions-task`` example applies the ``ResetPolicyVersionAction`` action (which clears the policy) to the specified single finding. :: + + aws iot start-audit-mitigation-actions-task \ + --task-id "myActionsTaskId" \ + --target "findingIds=[\"0edbaaec-2fe1-4cf5-abc9-d4c3e51f7464\"]" \ + --audit-check-to-actions-mapping "IOT_POLICY_OVERLY_PERMISSIVE_CHECK=[\"ResetPolicyVersionAction\"]" \ + --client-request-token "adhadhahda" + +Output:: + + { + "taskId": "myActionsTaskId" + } + +For more information, see `StartAuditMitigationActionsTask (Mitigation Action Commands) `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/start-on-demand-audit-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/start-on-demand-audit-task.rst new file mode 100644 index 000000000..d85687e40 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/start-on-demand-audit-task.rst @@ -0,0 +1,14 @@ +**To start an audit right away** + +The following ``start-on-demand-audit-task`` example starts an AWS IoT Device Defender audit and performs three certificate checks. :: + + aws iot start-on-demand-audit-task \ + --target-check-names CA_CERTIFICATE_EXPIRING_CHECK DEVICE_CERTIFICATE_EXPIRING_CHECK REVOKED_CA_CERTIFICATE_STILL_ACTIVE_CHECK + +Output:: + + { + "taskId": "a3aea009955e501a31b764abe1bebd3d" + } + +For more information, see `Audit Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/tag-resource.rst new file mode 100644 index 000000000..555b7a62d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/tag-resource.rst @@ -0,0 +1,11 @@ +**To specify a tag key and value for a resource** + +The following ``tag-resource`` example applies the tag with a key ``Assembly`` and the value ``Fact1NW`` to the thing group ``LightBulbs``. :: + + aws iot tag-resource \ + --tags Key=Assembly,Value="Fact1NW" \ + --resource-arn "arn:aws:iot:us-west-2:094249569039:thinggroup/LightBulbs" + +This command produces no output. + +For more information, see `Tagging Your AWS IoT Resources `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/test-authorization.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/test-authorization.rst new file mode 100644 index 000000000..deb41afeb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/test-authorization.rst @@ -0,0 +1,52 @@ +**To test your AWS IoT policies** + +The following ``test-authorization`` example tests the AWS IoT policies associated with the specified principal. :: + + aws iot test-authorization \ + --auth-infos actionType=CONNECT,resources=arn:aws:iot:us-east-1:123456789012:client/client1 \ + --principal arn:aws:iot:us-west-2:123456789012:cert/aab1068f7f43ac3e3cae4b3a8aa3f308d2a750e6350507962e32c1eb465d9775 + +Output:: + + { + "authResults": [ + { + "authInfo": { + "actionType": "CONNECT", + "resources": [ + "arn:aws:iot:us-east-1:123456789012:client/client1" + ] + }, + "allowed": { + "policies": [ + { + "policyName": "TestPolicyAllowed", + "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/TestPolicyAllowed" + } + ] + }, + "denied": { + "implicitDeny": { + "policies": [ + { + "policyName": "TestPolicyDenied", + "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/TestPolicyDenied" + } + ] + }, + "explicitDeny": { + "policies": [ + { + "policyName": "TestPolicyExplicitDenied", + "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/TestPolicyExplicitDenied" + } + ] + } + }, + "authDecision": "IMPLICIT_DENY", + "missingContextValues": [] + } + ] + } + +For more information, see `TestAuthorization `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/test-invoke-authorizer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/test-invoke-authorizer.rst new file mode 100644 index 000000000..5a25f55c2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/test-invoke-authorizer.rst @@ -0,0 +1,22 @@ +**To test your custom authorizer** + +The following ``test-invoke-authorizer`` example testS your custom authorizer. :: + + aws iot test-invoke-authorizer \ + --authorizer-name IoTAuthorizer \ + --token allow \ + --token-signature "mE0GvaHqy9nER/FdgtJX5lXYEJ3b3vE7t1gEszc0TKGgLKWXTnPkb2AbKnOAZ8lGyoN5dVtWDWVmr25m7++zjbYIMk2TBvyGXhOmvKFBPkdgyA43KL6SiZy0cTqlPMcQDsP7VX2rXr7CTowCxSNKphGXdQe0/I5dQ+JO6KUaHwCmupt0/MejKtaNwiia064j6wprOAUwG5S1IYFuRd0X+wfo8pb0DubAIX1Ua705kuhRUcTx4SxUShEYKmN4IDEvLB6FsIr0B2wvB7y4iPmcajxzGl02ExvyCUNctCV9dYlRRGJj0nsGzBIXOI4sGytPfqlA7obdgmN22pkDzYvwjQ==" + +Output:: + + { + "isAuthenticated": true, + "principalId": "principalId", + "policyDocuments": [ + "{"Version":"2012-10-17","Statement":[{"Action":"iot:Publish","Effect":"Allow","Resource":"arn:aws:iot:us-west-2:123456789012:topic/customauthtesting"}]}" + ], + "refreshAfterInSeconds": 600, + "disconnectAfterInSeconds": 3600 + } + +For more information, see `TestInvokeAuthorizer `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/transfer-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/transfer-certificate.rst new file mode 100644 index 000000000..efa090e8b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/transfer-certificate.rst @@ -0,0 +1,15 @@ +**To transfer a device certificate to a different AWS account** + +The following ``transfer-certificate`` example transfers a device certificate to another AWS account. The certificate and AWS account are identified by ID. :: + + aws iot transfer-certificate \ + --certificate-id 488b6a7f2acdeb00a77384e63c4e40b18b1b3caaae57b7272ba44c45e3448142 \ + --target-aws-account 030714055129 + +Output:: + + { + "transferredCertificateArn": "arn:aws:iot:us-west-2:030714055129:cert/488b6a7f2acdeb00a77384e63c4e40b18b1b3caaae57b7272ba44c45e3448142" + } + +For more information, see `Transfer a certificate to another account `__ in the *AWS IoT Core Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/untag-resource.rst new file mode 100644 index 000000000..0ddf1e00c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/untag-resource.rst @@ -0,0 +1,9 @@ +**To remove a tag key from a resource** + +The following ``untag-resource`` example removes the tag ``MyTag`` and its value from the thing group ``LightBulbs``. :: + + command + +This command produces no output. + +For more information, see `Tagging Your AWS IoT Resources `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-account-audit-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-account-audit-configuration.rst new file mode 100644 index 000000000..79f8e1100 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-account-audit-configuration.rst @@ -0,0 +1,19 @@ +**Example 1: To enable Amazon SNS notifications for audit notifications** + +The following ``update-account-audit-configuration`` example enables Amazon SNS notifications for AWS IoT Device Defender audit notifications, specifying a target and the role used to write to that target. :: + + aws iot update-account-audit-configuration \ + --audit-notification-target-configurations "SNS={targetArn=\"arn:aws:sns:us-west-2:123456789012:ddaudits\",roleArn=\"arn:aws:iam::123456789012:role/service-role/AWSIoTDeviceDefenderAudit\",enabled=true}" + +This command produces no output. + +**Example 2: To enable an audit check** + +The following ``update-account-audit-configuration`` example enables the AWS IoT Device Defender audit check named ``AUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK``. You cannot disable an audit check if it is part of the ``targetCheckNames`` for one or more scheduled audits for the AWS account. :: + + aws iot update-account-audit-configuration \ + --audit-check-configurations "{\"AUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK\":{\"enabled\":true}}" + +This command produces no output. + +For more information, see `Audit Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-audit-suppression.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-audit-suppression.rst new file mode 100644 index 000000000..780f80b10 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-audit-suppression.rst @@ -0,0 +1,13 @@ +**To update an audit finding suppression** + +The following ``update-audit-suppression`` example updates an audit finding suppression's expiration date to 2020-09-21. :: + + aws iot update-audit-suppression \ + --check-name DEVICE_CERTIFICATE_EXPIRING_CHECK \ + --resource-identifier deviceCertificateId=c7691e \ + --no-suppress-indefinitely \ + --expiration-date 2020-09-21 + +This command produces no output. + +For more information, see `Audit finding suppressions `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-authorizer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-authorizer.rst new file mode 100644 index 000000000..b8470b041 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-authorizer.rst @@ -0,0 +1,16 @@ +**To update a custom authorizer** + +The following ``update-authorizer`` example he state of ``CustomAuthorizer2`` to ``INACTIVE``. :: + + aws iot update-authorizer \ + --authorizer-name CustomAuthorizer2 \ + --status INACTIVE + +Output:: + + { + "authorizerName": "CustomAuthorizer2", + "authorizerArn": "arn:aws:iot:us-west-2:123456789012:authorizer/CustomAuthorizer2" + } + +For more information, see `UpdateAuthorizer `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-billing-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-billing-group.rst new file mode 100644 index 000000000..625c40ac7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-billing-group.rst @@ -0,0 +1,15 @@ +**To update information about a billing group** + +The following ``update-billing-group`` example updates the description for the specified billing group. :: + + aws iot update-billing-group \ + --billing-group-name GroupOne \ + --billing-group-properties "billingGroupDescription=\"Primary bulb billing group\"" + +Output:: + + { + "version": 2 + } + +For more information, see `Billing Groups `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-ca-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-ca-certificate.rst new file mode 100644 index 000000000..bb0e95545 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-ca-certificate.rst @@ -0,0 +1,11 @@ +**To update a certificate authority (CA) certificate** + +The following ``update-ca-certificate`` example sets the specified CA certificate to ACTIVE status. :: + + aws iot update-ca-certificate \ + --certificate-id f4efed62c0142f16af278166f61962501165c4f0536295207426460058cd1467 \ + --new-status ACTIVE + +This command produces no output. + +For more information, see `UpdateCACertificate `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-certificate.rst new file mode 100644 index 000000000..ba5a81955 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-certificate.rst @@ -0,0 +1,11 @@ +**To update a device certificate** + +The following ``update-certificate`` example sets the specified device certificate to INACTIVE status. :: + + aws iot update-certificate \ + --certificate-id d1eb269fb55a628552143c8f96eb3c258fcd5331ea113e766ba0c82bf225f0be \ + --new-status INACTIVE + +This command produces no output. + +For more information, see `UpdateCertificate `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-custom-metric.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-custom-metric.rst new file mode 100644 index 000000000..5d12be56f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-custom-metric.rst @@ -0,0 +1,21 @@ +**To update a custom metric** + +The following ``update-custom-metric`` example updates a custom metric to have a new ``display-name``. :: + + aws iot update-custom-metric \ + --metric-name batteryPercentage \ + --display-name 'remaining battery percentage on device' \ + --region us-east-1 + +Output:: + + { + "metricName": "batteryPercentage", + "metricArn": "arn:aws:iot:us-east-1:1234564789012:custommetric/batteryPercentage", + "metricType": "number", + "displayName": "remaining battery percentage on device", + "creationDate": "2020-11-17T23:01:35.110000-08:00", + "lastModifiedDate": "2020-11-17T23:02:12.879000-08:00" + } + +For more information, see `Custom metrics `__ in the *AWS IoT Core Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-dimension.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-dimension.rst new file mode 100644 index 000000000..27ce94dae --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-dimension.rst @@ -0,0 +1,22 @@ +**To update a dimension** + +The following ``update-dimension`` example updates a dimension. :: + + aws iot update-dimension \ + --name TopicFilterForAuthMessages \ + --string-values device/${iot:ClientId}/auth + +Output:: + + { + "name": "TopicFilterForAuthMessages", + "lastModifiedDate": 1585866222.317, + "stringValues": [ + "device/${iot:ClientId}/auth" + ], + "creationDate": 1585854500.474, + "type": "TOPIC_FILTER", + "arn": "arn:aws:iot:us-west-2:1234564789012:dimension/TopicFilterForAuthMessages" + } + +For more information, see `Scoping metrics in security profiles using dimensions `__ in the *AWS IoT Core Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-domain-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-domain-configuration.rst new file mode 100755 index 000000000..0ad7d3413 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-domain-configuration.rst @@ -0,0 +1,16 @@ +**To update a domain configuration** + +The following ``update-domain-configuration`` example disables the specified domain configuration. :: + + aws iot update-domain-configuration \ + --domain-configuration-name "additionalDataDomain" \ + --domain-configuration-status "DISABLED" + +Output:: + + { + "domainConfigurationName": "additionalDataDomain", + "domainConfigurationArn": "arn:aws:iot:us-west-2:123456789012:domainconfiguration/additionalDataDomain/dikMh" + } + +For more information, see `Configurable Endpoints `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-dynamic-thing-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-dynamic-thing-group.rst new file mode 100644 index 000000000..b5757468b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-dynamic-thing-group.rst @@ -0,0 +1,16 @@ +**To update a dynamic thing group** + +The following ``update-dynamic-thing-group`` example updates the specified dynamic thing group. It provides a description and updates the query string to change the group membership criteria. :: + + aws iot update-dynamic-thing-group \ + --thing-group-name "RoomTooWarm" + --thing-group-properties "thingGroupDescription=\"This thing group contains rooms warmer than 65F.\"" \ + --query-string "attributes.temperature>65" + +Output:: + + { + "version": 2 + } + +For more information, see `Dynamic Thing Groups `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-event-configurations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-event-configurations.rst new file mode 100644 index 000000000..d20a38871 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-event-configurations.rst @@ -0,0 +1,10 @@ +**To show which event types are published** + +The following ``update-event-configurations`` example updates the configuration to enable messages when the CA certificate is added, updated, or deleted. :: + + aws iot update-event-configurations \ + --event-configurations "{\"CA_CERTIFICATE\":{\"Enabled\":true}}" + +This command produces no output. + +For more information, see `Event Messages `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-indexing-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-indexing-configuration.rst new file mode 100644 index 000000000..c1fe36cba --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-indexing-configuration.rst @@ -0,0 +1,11 @@ +**To enable thing indexing** + +The following ``update-indexing-configuration`` example enables thing indexing to support searching registry data, shadow data, and thing connectivity status using the AWS_Things index. :: + + aws iot update-indexing-configuration + --thing-indexing-configuration thingIndexingMode=REGISTRY_AND_SHADOW,thingConnectivityIndexingMode=STATUS + +This command produces no output. + +For more information, see `Managing Thing Indexing `__ in the *AWS IoT Developers Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-job.rst new file mode 100644 index 000000000..e6002d430 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-job.rst @@ -0,0 +1,38 @@ +**To get detailed status for a job** + +The following ``update-job`` example gets detailed status for the job whose ID is ``example-job-01``. :: + + aws iot describe-job \ + --job-id "example-job-01" + +Output:: + + { + "job": { + "jobArn": "arn:aws:iot:us-west-2:123456789012:job/example-job-01", + "jobId": "example-job-01", + "targetSelection": "SNAPSHOT", + "status": "IN_PROGRESS", + "targets": [ + "arn:aws:iot:us-west-2:123456789012:thing/MyRaspberryPi" + ], + "description": "example job test", + "presignedUrlConfig": {}, + "jobExecutionsRolloutConfig": {}, + "createdAt": 1560787022.733, + "lastUpdatedAt": 1560787026.294, + "jobProcessDetails": { + "numberOfCanceledThings": 0, + "numberOfSucceededThings": 0, + "numberOfFailedThings": 0, + "numberOfRejectedThings": 0, + "numberOfQueuedThings": 1, + "numberOfInProgressThings": 0, + "numberOfRemovedThings": 0, + "numberOfTimedOutThings": 0 + }, + "timeoutConfig": {} + } + } + +For more information, see `Creating and Managing Jobs (CLI) `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-mitigation-action.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-mitigation-action.rst new file mode 100755 index 000000000..291dd14e4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-mitigation-action.rst @@ -0,0 +1,15 @@ +**To update a mitigation action** + +The following ``update-mitigation-action`` example updates the specified mitigation action named ``AddThingsToQuarantineGroupAction``, changes the thing group name, and sets ``overrideDynamicGroups`` to ``false``. You can verify your changes by using the ``describe-mitigation-action`` command. :: + + aws iot update-mitigation-action \ + --cli-input-json "{ \"actionName\": \"AddThingsToQuarantineGroupAction\", \"actionParams\": { \"addThingsToThingGroupParams\": {\"thingGroupNames\":[\"QuarantineGroup2\"],\"overrideDynamicGroups\": false}}}" + +Output:: + + { + "actionArn": "arn:aws:iot:us-west-2:123456789012:mitigationaction/AddThingsToQuarantineGroupAction", + "actionId": "2fd2726d-98e1-4abf-b10f-09465ccd6bfa" + } + +For more information, see `UpdateMitigationAction (Mitigation Action Commands) `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-provisioning-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-provisioning-template.rst new file mode 100644 index 000000000..3994d2485 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-provisioning-template.rst @@ -0,0 +1,13 @@ +**To update a provisioning template** + +The following ``update-provisioning-template`` example modifies the description and role arn for the specified provisioning template and enables the template. :: + + aws iot update-provisioning-template \ + --template-name widget-template \ + --enabled \ + --description "An updated provisioning template for widgets" \ + --provisioning-role-arn arn:aws:iam::504350838278:role/Provision_role + +This command produces no output. + +For more information, see `AWS IoT Secure Tunneling `__ in the *AWS IoT Core Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-role-alias.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-role-alias.rst new file mode 100644 index 000000000..342f1ed46 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-role-alias.rst @@ -0,0 +1,16 @@ +**To update a role alias** + +The following ``update-role-alias`` example updates the ``LightBulbRole`` role alias. :: + + aws iot update-role-alias \ + --role-alias LightBulbRole \ + --role-arn arn:aws:iam::123456789012:role/lightbulbrole-001 + +Output:: + + { + "roleAlias": "LightBulbRole", + "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/LightBulbRole" + } + +For more information, see `UpdateRoleAlias `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-scheduled-audit.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-scheduled-audit.rst new file mode 100644 index 000000000..b160fbb35 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-scheduled-audit.rst @@ -0,0 +1,15 @@ +**To update a scheduled audit definition** + +The following ``update-scheduled-audit`` example changes the target check names for an AWS IoT Device Defender scheduled audit. :: + + aws iot update-scheduled-audit \ + --scheduled-audit-name WednesdayCertCheck \ + --target-check-names CA_CERTIFICATE_EXPIRING_CHECK DEVICE_CERTIFICATE_EXPIRING_CHECK REVOKED_CA_CERTIFICATE_STILL_ACTIVE_CHECK + +Output:: + + { + "scheduledAuditArn": "arn:aws:iot:us-west-2:123456789012:scheduledaudit/WednesdayCertCheck" + } + +For more information, see `Audit Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-security-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-security-profile.rst new file mode 100755 index 000000000..9634bf8e4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-security-profile.rst @@ -0,0 +1,48 @@ +**To change a security profile** + +The following ``update-security-profile`` example updates both the description and the behaviors for an AWS IoT Device Defender security profile. :: + + aws iot update-security-profile \ + --security-profile-name PossibleIssue \ + --security-profile-description "Check to see if authorization fails 12 times in 5 minutes or if cellular bandwidth exceeds 128" \ + --behaviors "[{\"name\":\"CellularBandwidth\",\"metric\":\"aws:message-byte-size\",\"criteria\":{\"comparisonOperator\":\"greater-than\",\"value\":{\"count\":128},\"consecutiveDatapointsToAlarm\":1,\"consecutiveDatapointsToClear\":1}},{\"name\":\"Authorization\",\"metric\":\"aws:num-authorization-failures\",\"criteria\":{\"comparisonOperator\":\"less-than\",\"value\":{\"count\":12},\"durationSeconds\":300,\"consecutiveDatapointsToAlarm\":1,\"consecutiveDatapointsToClear\":1}}]" + +Output:: + + { + "securityProfileName": "PossibleIssue", + "securityProfileArn": "arn:aws:iot:us-west-2:123456789012:securityprofile/PossibleIssue", + "securityProfileDescription": "check to see if authorization fails 12 times in 5 minutes or if cellular bandwidth exceeds 128", + "behaviors": [ + { + "name": "CellularBandwidth", + "metric": "aws:message-byte-size", + "criteria": { + "comparisonOperator": "greater-than", + "value": { + "count": 128 + }, + "consecutiveDatapointsToAlarm": 1, + "consecutiveDatapointsToClear": 1 + } + }, + { + "name": "Authorization", + "metric": "aws:num-authorization-failures", + "criteria": { + "comparisonOperator": "less-than", + "value": { + "count": 12 + }, + "durationSeconds": 300, + "consecutiveDatapointsToAlarm": 1, + "consecutiveDatapointsToClear": 1 + } + } + ], + "version": 2, + "creationDate": 1560278102.528, + "lastModifiedDate": 1560352711.207 + } + +For more information, see `Detect Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-stream.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-stream.rst new file mode 100644 index 000000000..cacd396b1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-stream.rst @@ -0,0 +1,34 @@ +**To update a stream** + +The following ``update-stream`` example updates an existing stream. The stream version is incremented by one. :: + + aws iot update-stream \ + --cli-input-json file://update-stream.json + +Contents of ``update-stream.json``:: + + { + "streamId": "stream12345", + "description": "This stream is used for Amazon FreeRTOS OTA Update 12345.", + "files": [ + { + "fileId": 123, + "s3Location": { + "bucket":"codesign-ota-bucket", + "key":"48c67f3c-63bb-4f92-a98a-4ee0fbc2bef6" + } + } + ] + "roleArn": "arn:aws:iam:us-west-2:123456789012:role/service-role/my_ota_stream_role" + } + +Output:: + + { + "streamId": "stream12345", + "streamArn": "arn:aws:iot:us-west-2:123456789012:stream/stream12345", + "description": "This stream is used for Amazon FreeRTOS OTA Update 12345.", + "streamVersion": 2 + } + +For more information, see `UpdateStream `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-thing-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-thing-group.rst new file mode 100644 index 000000000..0a42a4668 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-thing-group.rst @@ -0,0 +1,16 @@ +**To update the definition for a thing group** + +The following ``update-thing-group`` example updates the definition for the specified thing group, changing the description and two attributes. :: + + aws iot update-thing-group \ + --thing-group-name HalogenBulbs \ + --thing-group-properties "thingGroupDescription=\"Halogen bulb group\", attributePayload={attributes={Manufacturer=AnyCompany,wattage=60}}" + +Output:: + + { + "version": 2 + } + +For more information, see `Thing Groups `__ in the *AWS IoT Developers Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-thing-groups-for-thing.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-thing-groups-for-thing.rst new file mode 100644 index 000000000..02c54a208 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-thing-groups-for-thing.rst @@ -0,0 +1,12 @@ +**To change the groups to which a thing belongs** + +The following ``update-thing-groups-for-thing`` example removes the thing named ``MyLightBulb`` from the group named ``DeadBulbs`` and adds it to the group named ``replaceableItems`` at the same time. :: + + aws iot update-thing-groups-for-thing \ + --thing-name MyLightBulb \ + --thing-groups-to-add "replaceableItems" \ + --thing-groups-to-remove "DeadBulbs" + +This command produces no output. + +For more information, see `Thing Groups `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-thing.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-thing.rst new file mode 100644 index 000000000..085e334df --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-thing.rst @@ -0,0 +1,12 @@ +**To associate a thing with a thing type** + +The following ``update-thing`` example associates a thing in the AWS IoT registry with a thing type. When you make the association, you provide values for the attributes defined by the thing type. :: + + aws iot update-thing \ + --thing-name "MyOtherLightBulb" \ + --thing-type-name "LightBulb" \ + --attribute-payload "{"attributes": {"wattage":"75", "model":"123"}}" + +This command does not produce output. Use the ``describe-thing`` command to see the result. + +For more information, see `Thing Types `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-topic-rule-destination.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-topic-rule-destination.rst new file mode 100644 index 000000000..18fdd0d03 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/update-topic-rule-destination.rst @@ -0,0 +1,35 @@ +**Example 1: To enable a topic rule destination** + +The following ``update-topic-rule-destination`` example enables traffic to a topic rule destination. :: + + aws iot update-topic-rule-destination \ + --arn "arn:aws:iot:us-west-2:123456789012:ruledestination/http/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" \ + --status ENABLED + +This command produces no output. + +For more information, see `Enabling a topic rule destination `__ in the *AWS IoT Developer Guide*. + +**Example 2: To disable a topic rule destination** + +The following ``update-topic-rule-destination`` example disables traffic to a topic rule destination. :: + + aws iot update-topic-rule-destination \ + --arn "arn:aws:iot:us-west-2:123456789012:ruledestination/http/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" \ + --status DISABLED + +This command produces no output. + +For more information, see `Disabling a topic rule destination `__ in the *AWS IoT Developer Guide*. + +**Example 3: To send a new confirmation message** + +The following ``update-topic-rule-destination`` example sends a new confirmation message for a topic rule destination. :: + + aws iot update-topic-rule-destination \ + --arn "arn:aws:iot:us-west-2:123456789012:ruledestination/http/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" \ + --status IN_PROGRESS + +This command produces no output. + +For more information, see `Sending a new confirmation message `__ in the *AWS IoT Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/validate-security-profile-behaviors.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/validate-security-profile-behaviors.rst new file mode 100644 index 000000000..e9a87ee34 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iot/validate-security-profile-behaviors.rst @@ -0,0 +1,33 @@ +**Example 1: To validate the behaviors parameters for a security profile** + +The following ``validate-security-profile-behaviors`` example validates a well-formed and correct set of behaviors for an AWS IoT Device Defender security profile. :: + + aws iot validate-security-profile-behaviors \ + --behaviors "[{\"name\":\"CellularBandwidth\",\"metric\":\"aws:message-byte-size\",\"criteria\":{\"comparisonOperator\":\"greater-than\",\"value\":{\"count\":128},\"consecutiveDatapointsToAlarm\":1,\"consecutiveDatapointsToClear\":1}},{\"name\":\"Authorization\",\"metric\":\"aws:num-authorization-failures\",\"criteria\":{\"comparisonOperator\":\"greater-than\",\"value\":{\"count\":12},\"durationSeconds\":300,\"consecutiveDatapointsToAlarm\":1,\"consecutiveDatapointsToClear\":1}}]" + +Output:: + + { + "valid": true, + "validationErrors": [] + } + +**Example 2: To validate incorrect behaviors parameters for a security profile** + +The following ``validate-security-profile-behaviors`` example validates a set of behaviors that contains an error for an AWS IoT Device Defender security profile. :: + + aws iot validate-security-profile-behaviors \ + --behaviors "[{\"name\":\"CellularBandwidth\",\"metric\":\"aws:message-byte-size\",\"criteria\":{\"comparisonOperator\":\"greater-than\",\"value\":{\"count\":128},\"consecutiveDatapointsToAlarm\":1,\"consecutiveDatapointsToClear\":1}},{\"name\":\"Authorization\",\"metric\":\"aws:num-authorization-failures\",\"criteria\":{\"comparisonOperator\":\"greater-than\",\"value\":{\"count\":12},\"durationSeconds\":300,\"consecutiveDatapointsToAlarm\":100000,\"consecutiveDatapointsToClear\":1}}]" + +Output:: + + { + "valid": false, + "validationErrors": [ + { + "errorMessage": "Behavior Authorization is malformed. consecutiveDatapointsToAlarm 100000 should be in range[1,10]" + } + ] + } + +For more information, see `Detect Commands `__ in the *AWS IoT Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/create-suite-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/create-suite-definition.rst new file mode 100644 index 000000000..ee6cf83fa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/create-suite-definition.rst @@ -0,0 +1,45 @@ +**Example 1: To create an IoT Device Advisor test suite** + +The following ``create-suite-definition`` example creates a device advisor test suite in the AWS IoT with the specified suite definition configuration. :: + + aws iotdeviceadvisor create-suite-definition \ + --suite-definition-configuration '{ \ + "suiteDefinitionName": "TestSuiteName", \ + "devices": [{"thingArn":"arn:aws:iot:us-east-1:123456789012:thing/MyIotThing"}], \ + "intendedForQualification": false, \ + "rootGroup": "{\"configuration\":{},\"tests\":[{\"name\":\"MQTT Connect\",\"configuration\":{\"EXECUTION_TIMEOUT\":120},\"tests\":[{\"name\":\"MQTT_Connect\",\"configuration\":{},\"test\":{\"id\":\"MQTT_Connect\",\"testCase\":null,\"version\":\"0.0.0\"}}]}]}", \ + "devicePermissionRoleArn": "arn:aws:iam::123456789012:role/Myrole"}' + +Output:: + + { + "suiteDefinitionId": "0jtsgio7yenu", + "suiteDefinitionArn": "arn:aws:iotdeviceadvisor:us-east-1:123456789012:suitedefinition/0jtsgio7yenu", + "suiteDefinitionName": "TestSuiteName", + "createdAt": "2022-12-02T11:38:13.263000-05:00" + } + +For more information, see `Create a test suite definition `__ in the *AWS IoT Core Developer Guide*. + +**Example 2: To create an IoT Device Advisor Latest Qualification test suite** + +The following ``create-suite-definition`` example creates a device advisor qualification test suite with the latest version in the AWS IoT with the specified suite definition configuration. :: + + aws iotdeviceadvisor create-suite-definition \ + --suite-definition-configuration '{ \ + "suiteDefinitionName": "TestSuiteName", \ + "devices": [{"thingArn":"arn:aws:iot:us-east-1:123456789012:thing/MyIotThing"}], \ + "intendedForQualification": true, \ + "rootGroup": "", \ + "devicePermissionRoleArn": "arn:aws:iam::123456789012:role/Myrole"}' + +Output:: + + { + "suiteDefinitionId": "txgsuolk2myj", + "suiteDefinitionArn": "arn:aws:iotdeviceadvisor:us-east-1:123456789012:suitedefinition/txgsuolk2myj", + "suiteDefinitionName": "TestSuiteName", + "createdAt": "2022-12-02T11:38:13.263000-05:00" + } + +For more information, see `Create a test suite definition `__ in the *AWS IoT Core Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/delete-suite-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/delete-suite-definition.rst new file mode 100644 index 000000000..db9919e19 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/delete-suite-definition.rst @@ -0,0 +1,10 @@ +**To delete the IoT Device Advisor test suite** + +The following ``delete-suite-definition`` example deletes the device advisor test suite with the specified suite definition ID. :: + + aws iotdeviceadvisor delete-suite-definition \ + --suite-definition-id 0jtsgio7yenu + +This command produces no output. + +For more information, see `DeleteSuiteDefinition `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/get-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/get-endpoint.rst new file mode 100644 index 000000000..4c013fe60 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/get-endpoint.rst @@ -0,0 +1,26 @@ +**Example 1: To get the information about an IoT Device Advisor Account-level endpoint** + +The following ``get-endpoint`` example gets the information about a device advisor Account-level test endpoint. :: + + aws iotdeviceadvisor get-endpoint + +Output:: + + { + "endpoint": "t6y4c143x9sfo.deviceadvisor.iot.us-east-1.amazonaws.com" + } + +**Example 2: To get the information about an IoT Device Advisor Device-level endpoint** + +The following ``get-endpoint`` example gets the information about a device advisor device-level test endpoint with the specified thing-arn or certificate-arn. :: + + aws iotdeviceadvisor get-endpoint \ + --thing-arn arn:aws:iot:us-east-1:123456789012:thing/MyIotThing + +Output:: + + { + "endpoint": "tdb7719be5t6y4c143x9sfo.deviceadvisor.iot.us-east-1.amazonaws.com" + } + +For more information, see `Get a test endpoint `__ in the *AWS IoT Core Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/get-suite-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/get-suite-definition.rst new file mode 100644 index 000000000..53ef7840b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/get-suite-definition.rst @@ -0,0 +1,29 @@ +**To get the information about an IoT Device Advisor test suite** + +The following ``get-suite-definition`` example get the information about a aevice advisor test suite with the specified suite definition ID. :: + + aws iotdeviceadvisor get-suite-definition \ + --suite-definition-id qqcsmtyyjabl + +Output:: + + { + "suiteDefinitionId": "qqcsmtyyjabl", + "suiteDefinitionArn": "arn:aws:iotdeviceadvisor:us-east-1:123456789012:suitedefinition/qqcsmtyyjabl", + "suiteDefinitionVersion": "v1", + "latestVersion": "v1", + "suiteDefinitionConfiguration": { + "suiteDefinitionName": "MQTT connection", + "devices": [], + "intendedForQualification": false, + "isLongDurationTest": false, + "rootGroup": "{\"configuration\":{},\"tests\":[{\"id\":\"uta5d9j1kvwc\",\"name\":\"Test group 1\",\"configuration\":{},\"tests\":[{\"id\":\"awr8pq5vc9yp\",\"name\":\"MQTT Connect\",\"configuration\":{},\"test\":{\"id\":\"MQTT_Connect\",\"testCase\":null,\"version\":\"0.0.0\"}}]}]}", + "devicePermissionRoleArn": "arn:aws:iam::123456789012:role/Myrole", + "protocol": "MqttV3_1_1" + }, + "createdAt": "2022-11-11T22:28:52.389000-05:00", + "lastModifiedAt": "2022-11-11T22:28:52.389000-05:00", + "tags": {} + } + +For more information, see `Get a test suite definition `__ in the *AWS IoT Core Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/get-suite-run-report.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/get-suite-run-report.rst new file mode 100644 index 000000000..ab84cf942 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/get-suite-run-report.rst @@ -0,0 +1,15 @@ +**To get the information about an IoT Device Advisor qualifying test suite run report** + +The following ``get-suite-run-report`` example gets the report download link for a successful device advisor qualifying test suite run with the specified suite definition ID and suite run ID. :: + + aws iotdeviceadvisor get-suite-run-report \ + --suite-definition-id ztvb5aek4w4x \ + --suite-run-id p6awv83nre6v + +Output:: + + { + "qualificationReportDownloadUrl": "https://senate-apn-reports-us-east-1-prod.s3.amazonaws.com/report.downloadlink" + } + +For more information, see `Get a qualification report for a successful qualification test suite run `__ in the *AWS IoT Core Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/get-suite-run.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/get-suite-run.rst new file mode 100644 index 000000000..8b932d7b1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/get-suite-run.rst @@ -0,0 +1,50 @@ +**To get the information about an IoT Device Advisor test suite run status** + +The following ``get-suite-run`` example gets the information about a device advisor test suite run status with the specified suite definition ID and suite run ID. :: + + aws iotdeviceadvisor get-suite-run \ + --suite-definition-id qqcsmtyyjabl \ + --suite-run-id nzlfyhaa18oa + +Output:: + + { + "suiteDefinitionId": "qqcsmtyyjabl", + "suiteDefinitionVersion": "v1", + "suiteRunId": "nzlfyhaa18oa", + "suiteRunArn": "arn:aws:iotdeviceadvisor:us-east-1:123456789012:suiterun/qqcsmtyyjabl/nzlfyhaa18oa", + "suiteRunConfiguration": { + "primaryDevice": { + "thingArn": "arn:aws:iot:us-east-1:123456789012:thing/MyIotThing", + "certificateArn": "arn:aws:iot:us-east-1:123456789012:cert/certFile" + }, + "parallelRun": false + }, + "testResult": { + "groups": [ + { + "groupId": "uta5d9j1kvwc", + "groupName": "Test group 1", + "tests": [ + { + "testCaseRunId": "2ve2twrqyr0s", + "testCaseDefinitionId": "awr8pq5vc9yp", + "testCaseDefinitionName": "MQTT Connect", + "status": "PASS", + "startTime": "2022-11-12T00:01:53.693000-05:00", + "endTime": "2022-11-12T00:02:15.443000-05:00", + "logUrl": "https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#logEventViewer:group=/aws/iot/deviceadvisor/qqcsmtyyjabl;stream=nzlfyhaa18oa_2ve2twrqyr0s", + "warnings": "null", + "failure": "null" + } + ] + } + ] + }, + "startTime": "2022-11-12T00:01:52.673000-05:00", + "endTime": "2022-11-12T00:02:16.496000-05:00", + "status": "PASS", + "tags": {} + } + +For more information, see `Get a test suite run `__ in the *AWS IoT Core Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/list-suite-definitions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/list-suite-definitions.rst new file mode 100644 index 000000000..14bd5b803 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/list-suite-definitions.rst @@ -0,0 +1,56 @@ +**Example 1: To list the IoT Device Advisor test suites you created** + +The following ``list-suite-definitions`` example lists up to 25 device advisor test suites you created in AWS IoT. If you have more than 25 test suites, the "nextToken" will be shown in the output. You can use this "nextToken" to show the rest of the test suites you created. :: + + aws iotdeviceadvisor list-suite-definitions + +Output:: + + { + "suiteDefinitionInformationList": [ + { + "suiteDefinitionId": "3hsn88h4p2g5", + "suiteDefinitionName": "TestSuite1", + "defaultDevices": [ + { + "thingArn": "arn:aws:iot:us-east-1:123456789012:thing/MyIotThing" + } + ], + "intendedForQualification": false, + "isLongDurationTest": false, + "protocol": "MqttV3_1_1", + "createdAt": "2022-11-17T14:15:56.830000-05:00" + }, + { + ...... + } + ], + "nextToken": "nextTokenValue" + } + +**Example 2: To list the IoT Device Advisor test suites you created with the specified settings** + +The following ``list-suite-definitions`` example lists device advisor test suites you created in AWS IoT with the specified max-result number. If you have more test suites than the max number, the "nextToken" will be shown in the output. If you have "nextToken", you can use "nextToken" to show the test suites you created that weren't shown before. :: + + aws iotdeviceadvisor list-suite-definitions \ + --max-result 1 \ + --next-token "nextTokenValue" + +Output:: + + { + "suiteDefinitionInformationList": [ + { + "suiteDefinitionId": "ztvb5aew4w4x", + "suiteDefinitionName": "TestSuite2", + "defaultDevices": [], + "intendedForQualification": true, + "isLongDurationTest": false, + "protocol": "MqttV3_1_1", + "createdAt": "2022-11-17T14:15:56.830000-05:00" + } + ], + "nextToken": "nextTokenValue" + } + +For more information, see `ListSuiteDefinitions `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/list-suite-runs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/list-suite-runs.rst new file mode 100644 index 000000000..1af6fa933 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/list-suite-runs.rst @@ -0,0 +1,56 @@ +**Example 1: To list all information about the specified IoT Device Advisor test suite runs status** + +The following ``list-suite-runs`` example lists all information about a device advisor test suite runs status with the specified suite definition ID. If you have more than 25 test suite runs, the "nextToken" will be shown in the output. You can use this "nextToken" to show the rest of the test suite runs. :: + + aws iotdeviceadvisor list-suite-runs \ + --suite-definition-id ztvb5aew4w4x + +Output:: + + { + "suiteRunsList": [ + { + "suiteDefinitionId": "ztvb5aew4w4x", + "suiteDefinitionVersion": "v1", + "suiteDefinitionName": "TestSuite", + "suiteRunId": "p6awv89nre6v", + "createdAt": "2022-12-01T16:33:14.212000-05:00", + "startedAt": "2022-12-01T16:33:15.710000-05:00", + "endAt": "2022-12-01T16:42:03.323000-05:00", + "status": "PASS", + "passed": 6, + "failed": 0 + } + ] + } + +**Example 2: To list information about the specified IoT Device Advisor test suite runs status with the specified settings** + +The following ``list-suite-runs`` example lists information about a device advisor test suite runs status with the specified suite definition ID and the specified max-result number. If you have more test suite runs than the max number, the "nextToken" will be shown in the output. If you have "nextToken", you can use "nextToken" to show the test suite runs that weren't shown before. :: + + aws iotdeviceadvisor list-suite-runs \ + --suite-definition-id qqcsmtyyjaml \ + --max-result 1 \ + --next-token "nextTokenValue" + +Output:: + + { + "suiteRunsList": [ + { + "suiteDefinitionId": "qqcsmtyyjaml", + "suiteDefinitionVersion": "v1", + "suiteDefinitionName": "MQTT connection", + "suiteRunId": "gz9vm2s6d2jy", + "createdAt": "2022-12-01T20:10:27.079000-05:00", + "startedAt": "2022-12-01T20:10:28.003000-05:00", + "endAt": "2022-12-01T20:10:45.084000-05:00", + "status": "STOPPED", + "passed": 0, + "failed": 0 + } + ], + "nextToken": "nextTokenValue" + } + +For more information, see `ListSuiteRuns `__ in the *AWS IoT API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/list-tags-for-resource.rst new file mode 100644 index 000000000..3051b3c5b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/list-tags-for-resource.rst @@ -0,0 +1,16 @@ +**To list the tags attached to an IoT Device Advisor resource** + +The following ``list-tags-for-resource`` example lists the tags attached to a device advisor resource. The device advisor resource can be a Suitedefinition-Arn or a Suiterun-Arn. :: + + aws iotdeviceadvisor list-tags-for-resource \ + --resource-arn arn:aws:iotdeviceadvisor:us-east-1:123456789012:suitedefinition/ba0uyjpg38ny + +Output:: + + { + "tags": { + "TestTagKey": "TestTagValue" + } + } + +For more information, see `ListTagsForResource `__ in the *AWS IoT API Reference* and `Resource types defined by AWS IoT Core Device Advisor `__ in the *Service Authorization Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/start-suite-run.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/start-suite-run.rst new file mode 100644 index 000000000..d4df1639c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/start-suite-run.rst @@ -0,0 +1,18 @@ +**To start an IoT Device Advisor test suite run** + +The following ``start-suite-run`` example lists the available widgets in your AWS account. :: + + aws iotdeviceadvisor start-suite-run \ + --suite-definition-id qqcsmtyyjabl \ + --suite-definition-version v1 \ + --suite-run-configuration '{"primaryDevice":{"thingArn": "arn:aws:iot:us-east-1:123456789012:thing/MyIotThing","certificateArn":"arn:aws:iot:us-east-1:123456789012:cert/certFile"}}' + +Output:: + + { + "suiteRunId": "pwmucgw7lt9s", + "suiteRunArn": "arn:aws:iotdeviceadvisor:us-east-1:123456789012:suiterun/qqcsmtyyjabl/pwmucgw7lk9s", + "createdAt": "2022-12-02T15:43:05.581000-05:00" + } + +For more information, see `Start a test suite run `__ in the *AWS IoT Core Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/stop-suite-run.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/stop-suite-run.rst new file mode 100644 index 000000000..84fc99f11 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/stop-suite-run.rst @@ -0,0 +1,11 @@ +**To stop an IoT Device Advisor test suite that is currently running** + +The following ``stop-suite-run`` example stops a device advisor test suite that is currently running with the specified suite definition ID and suite run ID. :: + + aws iotdeviceadvisor stop-suite-run \ + --suite-definition-id qqcsmtyyjabl \ + --suite-run-id nzlfyhaa18oa + +This command produces no output. + +For more information, see `Stop a test suite run `__ in the *AWS IoT Core Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/tag-resource.rst new file mode 100644 index 000000000..25e8ad768 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/tag-resource.rst @@ -0,0 +1,11 @@ +**To add to and modify the existing tags of an IoT Device Advisor resource** + +The following ``tag-resource`` example adds to and modifies the existing tags of a device advisor resource with the specified resource arn and tags. The device advisor resource can be a Suitedefinition-Arn or a Suiterun-Arn. :: + + aws iotdeviceadvisor tag-resource \ + --resource-arn arn:aws:iotdeviceadvisor:us-east-1:123456789012:suitedefinition/ba0uyjpg38ny \ + --tags '{"TagKey": "TagValue"}' + +This command produces no output. + +For more information, see `TagResource `__ in the *AWS IoT API Reference* and `Resource types defined by AWS IoT Core Device Advisor `__ in the *Service Authorization Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/untag-resource.rst new file mode 100644 index 000000000..2755d3121 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove the existing tags from an IoT Device Advisor resource** + +The following ``untag-resource`` example removes the existing tags from a device advisor resource with the specified resource arn and tag key. The device advisor resource can be a Suitedefinition-Arn or a Suiterun-Arn. :: + + aws iotdeviceadvisor untag-resource \ + --resource-arn arn:aws:iotdeviceadvisor:us-east-1:123456789012:suitedefinition/ba0uyjpg38ny \ + --tag-keys "TagKey" + +This command produces no output. + +For more information, see `UntagResource `__ in the *AWS IoT API Reference* and `Resource types defined by AWS IoT Core Device Advisor `__ in the *Service Authorization Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/update-suite-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/update-suite-definition.rst new file mode 100644 index 000000000..c0c1af77a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotdeviceadvisor/update-suite-definition.rst @@ -0,0 +1,47 @@ +**Example 1: To update an IoT Device Advisor test suite** + +The following ``update-suite-definition`` example updates a device advisor test suite in the AWS IoT with the specified suite definition ID and suite definition configuration. :: + + aws iotdeviceadvisor update-suite-definition \ + --suite-definition-id 3hsn88h4p2g5 \ + --suite-definition-configuration '{ \ + "suiteDefinitionName": "TestSuiteName", \ + "devices": [{"thingArn":"arn:aws:iot:us-east-1:123456789012:thing/MyIotThing"}], \ + "intendedForQualification": false, \ + "rootGroup": "{\"configuration\":{},\"tests\":[{\"name\":\"MQTT Connect\",\"configuration\":{\"EXECUTION_TIMEOUT\":120},\"tests\":[{\"name\":\"MQTT_Connect\",\"configuration\":{},\"test\":{\"id\":\"MQTT_Connect\",\"testCase\":null,\"version\":\"0.0.0\"}}]}]}", \ + "devicePermissionRoleArn": "arn:aws:iam::123456789012:role/Myrole"}' + +Output:: + + { + "suiteDefinitionId": "3hsn88h4p2g5", + "suiteDefinitionName": "TestSuiteName", + "suiteDefinitionVersion": "v3", + "createdAt": "2022-11-17T14:15:56.830000-05:00", + "lastUpdatedAt": "2022-12-02T16:02:45.857000-05:00" + } + +**Example 2: To update an IoT Device Advisor Qualification test suite** + +The following ``update-suite-definition`` example updates a device advisor qualification test suite in the AWS IoT with the specified suite definition ID and suite definition configuration. :: + + aws iotdeviceadvisor update-suite-definition \ + --suite-definition-id txgsuolk2myj \ + --suite-definition-configuration '{ + "suiteDefinitionName": "TestSuiteName", \ + "devices": [{"thingArn":"arn:aws:iot:us-east-1:123456789012:thing/MyIotThing"}], \ + "intendedForQualification": true, \ + "rootGroup": "", \ + "devicePermissionRoleArn": "arn:aws:iam::123456789012:role/Myrole"}' + +Output:: + + { + "suiteDefinitionId": "txgsuolk2myj", + "suiteDefinitionName": "TestSuiteName", + "suiteDefinitionVersion": "v3", + "createdAt": "2022-11-17T14:15:56.830000-05:00", + "lastUpdatedAt": "2022-12-02T16:02:45.857000-05:00" + } + +For more information, see `UpdateSuiteDefinition `__ in the *AWS IoT API Reference*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/batch-put-message.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/batch-put-message.rst new file mode 100644 index 000000000..258b48c65 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/batch-put-message.rst @@ -0,0 +1,27 @@ +**To send messages (inputs) to AWS IoT Events** + +The following ``batch-put-message`` example sends a set of messages to the AWS IoT Events system. Each message payload is transformed into the input you specify ( ``inputName`` ) and ingested into any detectors that monitor that input. If multiple messages are sent, the order in which the messages are processed isn't guaranteed. To guarantee ordering, you must send messages one at a time and wait for a successful response. :: + + aws iotevents-data batch-put-message \ + --cli-binary-format raw-in-base64-out \ + --cli-input-json file://highPressureMessage.json + +Contents of ``highPressureMessage.json``:: + + { + "messages": [ + { + "messageId": "00001", + "inputName": "PressureInput", + "payload": "{\"motorid\": \"Fulton-A32\", \"sensorData\": {\"pressure\": 80, \"temperature\": 39} }" + } + ] + } + +Output:: + + { + "BatchPutMessageErrorEntries": [] + } + +For more information, see `BatchPutMessage `__ in the *AWS IoT Events Developer Guide**. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/batch-update-detector.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/batch-update-detector.rst new file mode 100644 index 000000000..5151b42f4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/batch-update-detector.rst @@ -0,0 +1,38 @@ +**To update a detector (instance)** + +The following ``batch-update-detector`` example updates the state, variable values, and timer settings of one or more detectors (instances) of a specified detector model. :: + + aws iotevents-data batch-update-detector \ + --cli-input-json file://budFulton-A32.json + +Contents of ``budFulton-A32.json``:: + + { + "detectors": [ + { + "messageId": "00001", + "detectorModelName": "motorDetectorModel", + "keyValue": "Fulton-A32", + "state": { + "stateName": "Normal", + "variables": [ + { + "name": "pressureThresholdBreached", + "value": "0" + } + ], + "timers": [ + ] + } + } + ] + } + +Output:: + + { + "batchUpdateDetectorErrorEntries": [] + } + +For more information, see `BatchUpdateDetector `__ in the *AWS IoT Events Developer Guide**. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/create-detector-model.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/create-detector-model.rst new file mode 100644 index 000000000..a95ceec3b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/create-detector-model.rst @@ -0,0 +1,141 @@ +**To create a detector model** + +The following ``create-detector-model`` example creates a detector model. :: + + aws iotevents create-detector-model \ + --cli-input-json file://motorDetectorModel.json + +Contents of ``motorDetectorModel.json``:: + + { + "detectorModelName": "motorDetectorModel", + "detectorModelDefinition": { + "states": [ + { + "stateName": "Normal", + "onEnter": { + "events": [ + { + "eventName": "init", + "condition": "true", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "0" + } + } + ] + } + ] + }, + "onInput": { + "transitionEvents": [ + { + "eventName": "Overpressurized", + "condition": "$input.PressureInput.sensorData.pressure > 70", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "$variable.pressureThresholdBreached + 3" + } + } + ], + "nextState": "Dangerous" + } + ] + } + }, + { + "stateName": "Dangerous", + "onEnter": { + "events": [ + { + "eventName": "Pressure Threshold Breached", + "condition": "$variable.pressureThresholdBreached > 1", + "actions": [ + { + "sns": { + "targetArn": "arn:aws:sns:us-east-1:123456789012:underPressureAction" + } + } + ] + } + ] + }, + "onInput": { + "events": [ + { + "eventName": "Overpressurized", + "condition": "$input.PressureInput.sensorData.pressure > 70", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "3" + } + } + ] + }, + { + "eventName": "Pressure Okay", + "condition": "$input.PressureInput.sensorData.pressure <= 70", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "$variable.pressureThresholdBreached - 1" + } + } + ] + } + ], + "transitionEvents": [ + { + "eventName": "BackToNormal", + "condition": "$input.PressureInput.sensorData.pressure <= 70 && $variable.pressureThresholdBreached <= 1", + "nextState": "Normal" + } + ] + }, + "onExit": { + "events": [ + { + "eventName": "Normal Pressure Restored", + "condition": "true", + "actions": [ + { + "sns": { + "targetArn": "arn:aws:sns:us-east-1:123456789012:pressureClearedAction" + } + } + ] + } + ] + } + } + ], + "initialStateName": "Normal" + }, + "key": "motorid", + "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole" + } + +Output:: + + { + "detectorModelConfiguration": { + "status": "ACTIVATING", + "lastUpdateTime": 1560796816.077, + "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", + "creationTime": 1560796816.077, + "detectorModelArn": "arn:aws:iotevents:us-west-2:123456789012:detectorModel/motorDetectorModel", + "key": "motorid", + "detectorModelName": "motorDetectorModel", + "detectorModelVersion": "1" + } + } + +For more information, see `CreateDetectorModel `__ in the *AWS IoT Events Developer Guide**. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/create-input.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/create-input.rst new file mode 100644 index 000000000..5069e1447 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/create-input.rst @@ -0,0 +1,34 @@ +**To create an input** + +The following ``create-input`` example creates an input. :: + + aws iotevents create-input \ + --cli-input-json file://pressureInput.json + +Contents of ``pressureInput.json``:: + + { + "inputName": "PressureInput", + "inputDescription": "Pressure readings from a motor", + "inputDefinition": { + "attributes": [ + { "jsonPath": "sensorData.pressure" }, + { "jsonPath": "motorid" } + ] + } + } + +Output:: + + { + "inputConfiguration": { + "status": "ACTIVE", + "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", + "lastUpdateTime": 1560795312.542, + "creationTime": 1560795312.542, + "inputName": "PressureInput", + "inputDescription": "Pressure readings from a motor" + } + } + +For more information, see `CreateInput `__ in the *AWS IoT Events Developer Guide**. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/delete-detector-model.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/delete-detector-model.rst new file mode 100644 index 000000000..5bd5cb8c4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/delete-detector-model.rst @@ -0,0 +1,11 @@ +**To delete a detector model** + +The following ``delete-detector-model`` example deletes a detector model. Any active instances of the detector model are also deleted. :: + + aws iotevents delete-detector-model \ + --detector-model-name motorDetectorModel* + +This command produces no output. + +For more information, see `DeleteDetectorModel `__ in the *AWS IoT Events Developer Guide**. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/delete-input.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/delete-input.rst new file mode 100644 index 000000000..811e4bfae --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/delete-input.rst @@ -0,0 +1,10 @@ +**To delete an input** + +The following ``delete-input`` example deletes an input. :: + + aws iotevents delete-input \ + --input-name PressureInput + +This command produces no output. + +For more information, see `DeleteInput `__ in the *AWS IoT Events Developer Guide**. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/describe-detector-model.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/describe-detector-model.rst new file mode 100644 index 000000000..890d92c34 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/describe-detector-model.rst @@ -0,0 +1,140 @@ +**To get information about a detector model** + +The following ``describe-detector-model`` example describes a detector model. If the ``version`` parameter is not specified, the command returns information about the latest version. :: + + aws iotevents describe-detector-model \ + --detector-model-name motorDetectorModel + +Output:: + + { + "detectorModel": { + "detectorModelConfiguration": { + "status": "ACTIVE", + "lastUpdateTime": 1560796816.077, + "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", + "creationTime": 1560796816.077, + "detectorModelArn": "arn:aws:iotevents:us-west-2:123456789012:detectorModel/motorDetectorModel", + "key": "motorid", + "detectorModelName": "motorDetectorModel", + "detectorModelVersion": "1" + }, + "detectorModelDefinition": { + "states": [ + { + "onInput": { + "transitionEvents": [ + { + "eventName": "Overpressurized", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "$variable.pressureThresholdBreached + 3" + } + } + ], + "condition": "$input.PressureInput.sensorData.pressure > 70", + "nextState": "Dangerous" + } + ], + "events": [] + }, + "stateName": "Normal", + "onEnter": { + "events": [ + { + "eventName": "init", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "0" + } + } + ], + "condition": "true" + } + ] + }, + "onExit": { + "events": [] + } + }, + { + "onInput": { + "transitionEvents": [ + { + "eventName": "BackToNormal", + "actions": [], + "condition": "$input.PressureInput.sensorData.pressure <= 70 && $variable.pressureThresholdBreached <= 1", + "nextState": "Normal" + } + ], + "events": [ + { + "eventName": "Overpressurized", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "3" + } + } + ], + "condition": "$input.PressureInput.sensorData.pressure > 70" + }, + { + "eventName": "Pressure Okay", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "$variable.pressureThresholdBreached - 1" + } + } + ], + "condition": "$input.PressureInput.sensorData.pressure <= 70" + } + ] + }, + "stateName": "Dangerous", + "onEnter": { + "events": [ + { + "eventName": "Pressure Threshold Breached", + "actions": [ + { + "sns": { + "targetArn": "arn:aws:sns:us-east-1:123456789012:underPressureAction" + } + } + ], + "condition": "$variable.pressureThresholdBreached > 1" + } + ] + }, + "onExit": { + "events": [ + { + "eventName": "Normal Pressure Restored", + "actions": [ + { + "sns": { + "targetArn": "arn:aws:sns:us-east-1:123456789012:pressureClearedAction" + } + } + ], + "condition": "true" + } + ] + } + } + ], + "initialStateName": "Normal" + } + } + } + +For more information, see `DescribeDetectorModel `__ in the *AWS IoT Events Developer Guide**. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/describe-detector.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/describe-detector.rst new file mode 100644 index 000000000..dff89b0c6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/describe-detector.rst @@ -0,0 +1,31 @@ +**To get information about a detector (instance)** + +The following ``describe-detector`` example returns information about the specified detector (instance). :: + + aws iotevents-data describe-detector \ + --detector-model-name motorDetectorModel \ + --key-value "Fulton-A32" + +Output:: + + { + "detector": { + "lastUpdateTime": 1560797852.776, + "creationTime": 1560797852.775, + "state": { + "variables": [ + { + "name": "pressureThresholdBreached", + "value": "3" + } + ], + "stateName": "Dangerous", + "timers": [] + }, + "keyValue": "Fulton-A32", + "detectorModelName": "motorDetectorModel", + "detectorModelVersion": "1" + } + } + +For more information, see `DescribeDetector `__ in the *AWS IoT Events Developer Guide**. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/describe-input.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/describe-input.rst new file mode 100644 index 000000000..ab15dadb7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/describe-input.rst @@ -0,0 +1,33 @@ +**To get information about an input** + +The following ``describe-input`` example retrieves the details of an input. :: + + aws iotevents describe-input \ + --input-name PressureInput + +Output:: + + { + "input": { + "inputConfiguration": { + "status": "ACTIVE", + "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", + "lastUpdateTime": 1560795312.542, + "creationTime": 1560795312.542, + "inputName": "PressureInput", + "inputDescription": "Pressure readings from a motor" + }, + "inputDefinition": { + "attributes": [ + { + "jsonPath": "sensorData.pressure" + }, + { + "jsonPath": "motorid" + } + ] + } + } + } + +For more information, see `DescribeInput `__ in the *AWS IoT Events Developer Guide**. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/describe-logging-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/describe-logging-options.rst new file mode 100644 index 000000000..d3be9fa2c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/describe-logging-options.rst @@ -0,0 +1,17 @@ +**To get information about logging settings** + +The following ``describe-logging-options`` example retrieves the current AWS IoT Events logging options. :: + + aws iotevents describe-logging-options + +Output:: + + { + "loggingOptions": { + "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", + "enabled": false, + "level": "ERROR" + } + } + +For more information, see `DescribeLoggingOptions `__ in the *AWS IoT Events Developer Guide**. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/list-detector-model-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/list-detector-model-versions.rst new file mode 100644 index 000000000..699a21045 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/list-detector-model-versions.rst @@ -0,0 +1,24 @@ +**To get information about versions of a detector model** + +The following ``list-detector-model-versions`` example lists all the versions of a detector model. Only the metadata associated with each detector model version is returned. :: + + aws iotevents list-detector-model-versions \ + --detector-model-name motorDetectorModel + +Output:: + + { + "detectorModelVersionSummaries": [ + { + "status": "ACTIVE", + "lastUpdateTime": 1560796816.077, + "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", + "creationTime": 1560796816.077, + "detectorModelArn": "arn:aws:iotevents:us-west-2:123456789012:detectorModel/motorDetectorModel", + "detectorModelName": "motorDetectorModel", + "detectorModelVersion": "1" + } + ] + } + +For more information, see `ListDetectorModelVersions `__ in the *AWS IoT Events Developer Guide**. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/list-detector-models.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/list-detector-models.rst new file mode 100644 index 000000000..d3f19ae75 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/list-detector-models.rst @@ -0,0 +1,20 @@ +**To get a list of your detector models** + +The following ``list-detector-models`` example lists the detector models you have created. Only the metadata associated with each detector model is returned. :: + + aws iotevents list-detector-models + +Output:: + + { + "detectorModelSummaries": [ + { + "detectorModelName": "motorDetectorModel", + "creationTime": 1552072424.212 + "detectorModelDescription": "Detect overpressure in a motor." + } + ] + } + +For more information, see `ListDetectorModels `__ in the *AWS IoT Events Developer Guide**. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/list-detectors.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/list-detectors.rst new file mode 100644 index 000000000..3ca492109 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/list-detectors.rst @@ -0,0 +1,26 @@ +**To get a list of detectors for a detector model** + +The following ``list-detectors`` example lists detectors (the instances of a detector model). :: + + aws iotevents-data list-detectors \ + --detector-model-name motorDetectorModel + +Output:: + + { + "detectorSummaries": [ + { + "lastUpdateTime": 1558129925.2, + "creationTime": 1552073155.527, + "state": { + "stateName": "Normal" + }, + "keyValue": "Fulton-A32", + "detectorModelName": "motorDetectorModel", + "detectorModelVersion": "1" + } + ] + } + +For more information, see `ListDetectors `__ in the *AWS IoT Events Developer Guide**. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/list-inputs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/list-inputs.rst new file mode 100644 index 000000000..a82f797c0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/list-inputs.rst @@ -0,0 +1,19 @@ +**To list inputs** + +The following ``list-inputs`` example lists the inputs that you've created. :: + + aws iotevents list-inputs + +Output:: + + { + "status": "ACTIVE", + "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", + "lastUpdateTime": 1551742986.768, + "creationTime": 1551742986.768, + "inputName": "PressureInput", + "inputDescription": "Pressure readings from a motor" + } + +For more information, see `ListInputs `__ in the *AWS IoT Events Developer Guide**. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/list-tags-for-resource.rst new file mode 100644 index 000000000..1d5c2883c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/list-tags-for-resource.rst @@ -0,0 +1,20 @@ +**To list tags assigned to a resource** + +The following ``list-tags-for-resource`` example lists the tags (metadata) you have assigned to the resource. :: + + aws iotevents list-tags-for-resource \ + --resource-arn "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput" + +Output:: + + { + "tags": [ + { + "value": "motor", + "key": "deviceType" + } + ] + } + +For more information, see `ListTagsForResource `__ in the *AWS IoT Events Developer Guide**. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/put-logging-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/put-logging-options.rst new file mode 100644 index 000000000..6b46ad7d1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/put-logging-options.rst @@ -0,0 +1,27 @@ +**To set logging options** + +The following ``list-tags-for-resource`` example sets or updates the AWS IoT Events logging options. If you update the value of any ``loggingOptions`` field, it takes up to one minute for the change to take effect. Also, if you change the policy attached to the role you specified in the ``roleArn`` field (for example, to correct an invalid policy) it takes up to five minutes for that change to take effect. :: + + aws iotevents put-logging-options \ + --cli-input-json file://logging-options.json + +Contents of ``logging-options.json``:: + + { + "loggingOptions": { + "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", + "level": "DEBUG", + "enabled": true, + "detectorDebugOptions": [ + { + "detectorModelName": "motorDetectorModel", + "keyValue": "Fulton-A32" + } + ] + } + } + +This command produces no output. + +For more information, see `PutLoggingOptions `__ in the *AWS IoT Events Developer Guide**. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/tag-resource.rst new file mode 100644 index 000000000..497956e6a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/tag-resource.rst @@ -0,0 +1,24 @@ +**To add tags to a resource** + +The following ``tag-resource`` example adds to or modifies the tags of the given resource. Tags are metadata that can be used to manage a resource. :: + + aws iotevents tag-resource \ + --cli-input-json file://pressureInput.tag.json + + +Contents of ``pressureInput.tag.json``:: + + { + "resourceArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", + "tags": [ + { + "key": "deviceType", + "value": "motor" + } + ] + } + +This command produces no output. + +For more information, see `TagResource `__ in the *AWS IoT Events Developer Guide**. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/untag-resource.rst new file mode 100644 index 000000000..d5f4d02e5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/untag-resource.rst @@ -0,0 +1,21 @@ +**To remove tags from a resource** + +The following ``untag-resource`` example removes the specified tags from the resource. :: + + aws iotevents untag-resource \ + --cli-input-json file://pressureInput.untag.json + + +Contents of ``pressureInput.untag.json``:: + + { + "resourceArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", + "tagKeys": [ + "deviceType" + ] + } + +This command produces no output. + +For more information, see `UntagResource `__ in the *AWS IoT Events Developer Guide**. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/update-detector-model.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/update-detector-model.rst new file mode 100644 index 000000000..35034fea0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/update-detector-model.rst @@ -0,0 +1,140 @@ +**To update a detector model** + +The following ``update-detector-model`` example updates a detector model. Detectors (instances) spawned by the previous version are deleted and then re-created as new inputs arrive. :: + + aws iotevents update-detector-model \ + --cli-input-json file://motorDetectorModel.update.json + +Contents of motorDetectorModel.update.json:: + + { + "detectorModelName": "motorDetectorModel", + "detectorModelDefinition": { + "states": [ + { + "stateName": "Normal", + "onEnter": { + "events": [ + { + "eventName": "init", + "condition": "true", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "0" + } + } + ] + } + ] + }, + "onInput": { + "transitionEvents": [ + { + "eventName": "Overpressurized", + "condition": "$input.PressureInput.sensorData.pressure > 70", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "$variable.pressureThresholdBreached + 3" + } + } + ], + "nextState": "Dangerous" + } + ] + } + }, + { + "stateName": "Dangerous", + "onEnter": { + "events": [ + { + "eventName": "Pressure Threshold Breached", + "condition": "$variable.pressureThresholdBreached > 1", + "actions": [ + { + "sns": { + "targetArn": "arn:aws:sns:us-east-1:123456789012:underPressureAction" + } + } + ] + } + ] + }, + "onInput": { + "events": [ + { + "eventName": "Overpressurized", + "condition": "$input.PressureInput.sensorData.pressure > 70", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "3" + } + } + ] + }, + { + "eventName": "Pressure Okay", + "condition": "$input.PressureInput.sensorData.pressure <= 70", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "$variable.pressureThresholdBreached - 1" + } + } + ] + } + ], + "transitionEvents": [ + { + "eventName": "BackToNormal", + "condition": "$input.PressureInput.sensorData.pressure <= 70 && $variable.pressureThresholdBreached <= 1", + "nextState": "Normal" + } + ] + }, + "onExit": { + "events": [ + { + "eventName": "Normal Pressure Restored", + "condition": "true", + "actions": [ + { + "sns": { + "targetArn": "arn:aws:sns:us-east-1:123456789012:pressureClearedAction" + } + } + ] + } + ] + } + } + ], + "initialStateName": "Normal" + }, + "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole" + } + +Output:: + + { + "detectorModelConfiguration": { + "status": "ACTIVATING", + "lastUpdateTime": 1560799387.719, + "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", + "creationTime": 1560799387.719, + "detectorModelArn": "arn:aws:iotevents:us-west-2:123456789012:detectorModel/motorDetectorModel", + "key": "motorid", + "detectorModelName": "motorDetectorModel", + "detectorModelVersion": "2" + } + } + +For more information, see `UpdateDetectorModel `__ in the *AWS IoT Events Developer Guide**. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/update-input.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/update-input.rst new file mode 100644 index 000000000..2783b31a0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents-data/update-input.rst @@ -0,0 +1,35 @@ +**To update an input** + +The following ``update-input`` example updates an input. :: + + aws iotevents update-input \ + --cli-input-json file://pressureInput.json + +Contents of ``pressureInput.json``:: + + { + "inputName": "PressureInput", + "inputDescription": "Pressure readings from a motor", + "inputDefinition": { + "attributes": [ + { "jsonPath": "sensorData.pressure" }, + { "jsonPath": "motorid" } + ] + } + } + +Output:: + + { + "inputConfiguration": { + "status": "ACTIVE", + "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", + "lastUpdateTime": 1560795976.458, + "creationTime": 1560795312.542, + "inputName": "PressureInput", + "inputDescription": "Pressure readings from a motor" + } + } + +For more information, see `UpdateInput `__ in the *AWS IoT Events Developer Guide**. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/batch-put-message.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/batch-put-message.rst new file mode 100644 index 000000000..eb9263705 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/batch-put-message.rst @@ -0,0 +1,26 @@ +**To send messages (inputs) to AWS IoT Events** + +The following ``batch-put-message`` example sends a set of messages to the AWS IoT Events system. Each message payload is transformed into the input you specify ( ``inputName`` ) and ingested into any detectors that monitor that input. If multiple messages are sent, the order in which the messages are processed isn't guaranteed. To guarantee ordering, you must send messages one at a time and wait for a successful response. :: + + aws iotevents-data batch-put-message \ + --cli-input-json file://highPressureMessage.json + +Contents of ``highPressureMessage.json``:: + + { + "messages": [ + { + "messageId": "00001", + "inputName": "PressureInput", + "payload": "{\"motorid\": \"Fulton-A32\", \"sensorData\": {\"pressure\": 80, \"temperature\": 39} }" + } + ] + } + +Output:: + + { + "BatchPutMessageErrorEntries": [] + } + +For more information, see `BatchPutMessage `__ in the *AWS IoT Events API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/batch-update-detector.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/batch-update-detector.rst new file mode 100644 index 000000000..a931d3a00 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/batch-update-detector.rst @@ -0,0 +1,38 @@ +**To update a detector (instance)** + +The following ``batch-update-detector`` example updates the state, variable values, and timer settings of one or more detectors (instances) of a specified detector model. :: + + aws iotevents-data batch-update-detector \ + --cli-input-json file://budFulton-A32.json + +Contents of ``budFulton-A32.json``:: + + { + "detectors": [ + { + "messageId": "00001", + "detectorModelName": "motorDetectorModel", + "keyValue": "Fulton-A32", + "state": { + "stateName": "Normal", + "variables": [ + { + "name": "pressureThresholdBreached", + "value": "0" + } + ], + "timers": [ + ] + } + } + ] + } + +Output:: + + { + "batchUpdateDetectorErrorEntries": [] + } + + +For more information, see `BatchUpdateDetector `__ in the *AWS IoT Events API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/create-detector-model.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/create-detector-model.rst new file mode 100644 index 000000000..bb8747ccc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/create-detector-model.rst @@ -0,0 +1,140 @@ +**To create a detector model** + +The following ``create-detector-model`` example creates a detector model with its configuration specified by a parameter file. :: + + aws iotevents create-detector-model \ + --cli-input-json file://motorDetectorModel.json + +Contents of ``motorDetectorModel.json``:: + + { + "detectorModelName": "motorDetectorModel", + "detectorModelDefinition": { + "states": [ + { + "stateName": "Normal", + "onEnter": { + "events": [ + { + "eventName": "init", + "condition": "true", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "0" + } + } + ] + } + ] + }, + "onInput": { + "transitionEvents": [ + { + "eventName": "Overpressurized", + "condition": "$input.PressureInput.sensorData.pressure > 70", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "$variable.pressureThresholdBreached + 3" + } + } + ], + "nextState": "Dangerous" + } + ] + } + }, + { + "stateName": "Dangerous", + "onEnter": { + "events": [ + { + "eventName": "Pressure Threshold Breached", + "condition": "$variable.pressureThresholdBreached > 1", + "actions": [ + { + "sns": { + "targetArn": "arn:aws:sns:us-east-1:123456789012:underPressureAction" + } + } + ] + } + ] + }, + "onInput": { + "events": [ + { + "eventName": "Overpressurized", + "condition": "$input.PressureInput.sensorData.pressure > 70", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "3" + } + } + ] + }, + { + "eventName": "Pressure Okay", + "condition": "$input.PressureInput.sensorData.pressure <= 70", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "$variable.pressureThresholdBreached - 1" + } + } + ] + } + ], + "transitionEvents": [ + { + "eventName": "BackToNormal", + "condition": "$input.PressureInput.sensorData.pressure <= 70 && $variable.pressureThresholdBreached <= 1", + "nextState": "Normal" + } + ] + }, + "onExit": { + "events": [ + { + "eventName": "Normal Pressure Restored", + "condition": "true", + "actions": [ + { + "sns": { + "targetArn": "arn:aws:sns:us-east-1:123456789012:pressureClearedAction" + } + } + ] + } + ] + } + } + ], + "initialStateName": "Normal" + }, + "key": "motorid", + "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole" + } + +Output:: + + { + "detectorModelConfiguration": { + "status": "ACTIVATING", + "lastUpdateTime": 1560796816.077, + "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", + "creationTime": 1560796816.077, + "detectorModelArn": "arn:aws:iotevents:us-west-2:123456789012:detectorModel/motorDetectorModel", + "key": "motorid", + "detectorModelName": "motorDetectorModel", + "detectorModelVersion": "1" + } + } + +For more information, see `CreateDetectorModel `__ in the *AWS IoT Events API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/create-input.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/create-input.rst new file mode 100644 index 000000000..64c3bba6f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/create-input.rst @@ -0,0 +1,34 @@ +**To create an input** + +The following ``create-input`` example creates an input. :: + + aws iotevents create-input \ + --cli-input-json file://pressureInput.json + +Contents of ``pressureInput.json``:: + + { + "inputName": "PressureInput", + "inputDescription": "Pressure readings from a motor", + "inputDefinition": { + "attributes": [ + { "jsonPath": "sensorData.pressure" }, + { "jsonPath": "motorid" } + ] + } + } + +Output:: + + { + "inputConfiguration": { + "status": "ACTIVE", + "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", + "lastUpdateTime": 1560795312.542, + "creationTime": 1560795312.542, + "inputName": "PressureInput", + "inputDescription": "Pressure readings from a motor" + } + } + +For more information, see `CreateInput `__ in the *AWS IoT Events API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/delete-detector-model.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/delete-detector-model.rst new file mode 100644 index 000000000..724f0e637 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/delete-detector-model.rst @@ -0,0 +1,10 @@ +**To delete a detector model** + +The following ``delete-detector-model`` example deletes the specified detector model. Any active instances of the detector model are also deleted. :: + + aws iotevents delete-detector-model \ + --detector-model-name motorDetectorModel + +This command produces no output. + +For more information, see `DeleteDetectorModel `__ in the *AWS IoT Events API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/delete-input.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/delete-input.rst new file mode 100644 index 000000000..5d99ab0e2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/delete-input.rst @@ -0,0 +1,10 @@ +**To delete an input** + +The following ``delete-input`` example deletes the specified input. :: + + aws iotevents delete-input \ + --input-name PressureInput + +This command produces no output. + +For more information, see `DeleteInput `__ in the *AWS IoT Events API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/describe-detector-model.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/describe-detector-model.rst new file mode 100644 index 000000000..edc1aa595 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/describe-detector-model.rst @@ -0,0 +1,139 @@ +**To get information about a detector model** + +The following ``describe-detector-model`` example displays details for the specified detector model. Because the ``version`` parameter is not specified, information about the latest version is returned. :: + + aws iotevents describe-detector-model \ + --detector-model-name motorDetectorModel + +Output:: + + { + "detectorModel": { + "detectorModelConfiguration": { + "status": "ACTIVE", + "lastUpdateTime": 1560796816.077, + "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", + "creationTime": 1560796816.077, + "detectorModelArn": "arn:aws:iotevents:us-west-2:123456789012:detectorModel/motorDetectorModel", + "key": "motorid", + "detectorModelName": "motorDetectorModel", + "detectorModelVersion": "1" + }, + "detectorModelDefinition": { + "states": [ + { + "onInput": { + "transitionEvents": [ + { + "eventName": "Overpressurized", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "$variable.pressureThresholdBreached + 3" + } + } + ], + "condition": "$input.PressureInput.sensorData.pressure > 70", + "nextState": "Dangerous" + } + ], + "events": [] + }, + "stateName": "Normal", + "onEnter": { + "events": [ + { + "eventName": "init", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "0" + } + } + ], + "condition": "true" + } + ] + }, + "onExit": { + "events": [] + } + }, + { + "onInput": { + "transitionEvents": [ + { + "eventName": "BackToNormal", + "actions": [], + "condition": "$input.PressureInput.sensorData.pressure <= 70 && $variable.pressureThresholdBreached <= 1", + "nextState": "Normal" + } + ], + "events": [ + { + "eventName": "Overpressurized", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "3" + } + } + ], + "condition": "$input.PressureInput.sensorData.pressure > 70" + }, + { + "eventName": "Pressure Okay", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "$variable.pressureThresholdBreached - 1" + } + } + ], + "condition": "$input.PressureInput.sensorData.pressure <= 70" + } + ] + }, + "stateName": "Dangerous", + "onEnter": { + "events": [ + { + "eventName": "Pressure Threshold Breached", + "actions": [ + { + "sns": { + "targetArn": "arn:aws:sns:us-east-1:123456789012:underPressureAction" + } + } + ], + "condition": "$variable.pressureThresholdBreached > 1" + } + ] + }, + "onExit": { + "events": [ + { + "eventName": "Normal Pressure Restored", + "actions": [ + { + "sns": { + "targetArn": "arn:aws:sns:us-east-1:123456789012:pressureClearedAction" + } + } + ], + "condition": "true" + } + ] + } + } + ], + "initialStateName": "Normal" + } + } + } + +For more information, see `DescribeDetectorModel `__ in the *AWS IoT Events API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/describe-detector.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/describe-detector.rst new file mode 100644 index 000000000..1c540ae13 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/describe-detector.rst @@ -0,0 +1,31 @@ +**To get information about a detector (instance).** + +The following ``describe-detector`` example displays details for the specified detector (instance). :: + + aws iotevents-data describe-detector \ + --detector-model-name motorDetectorModel \ + --key-value "Fulton-A32" + +Output:: + + { + "detector": { + "lastUpdateTime": 1560797852.776, + "creationTime": 1560797852.775, + "state": { + "variables": [ + { + "name": "pressureThresholdBreached", + "value": "3" + } + ], + "stateName": "Dangerous", + "timers": [] + }, + "keyValue": "Fulton-A32", + "detectorModelName": "motorDetectorModel", + "detectorModelVersion": "1" + } + } + +For more information, see `DescribeDetector `__ in the *AWS IoT Events API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/describe-input.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/describe-input.rst new file mode 100644 index 000000000..56e07da9c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/describe-input.rst @@ -0,0 +1,34 @@ +**To get information about an input** + +The following ``describe-input`` example displays details for the specified input. :: + + aws iotevents describe-input \ + --input-name PressureInput + +Output:: + + { + "input": { + "inputConfiguration": { + "status": "ACTIVE", + "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", + "lastUpdateTime": 1560795312.542, + "creationTime": 1560795312.542, + "inputName": "PressureInput", + "inputDescription": "Pressure readings from a motor" + }, + "inputDefinition": { + "attributes": [ + { + "jsonPath": "sensorData.pressure" + }, + { + "jsonPath": "motorid" + } + ] + } + } + } + + +For more information, see `DescribeInput `__ in the *AWS IoT Events API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/describe-logging-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/describe-logging-options.rst new file mode 100644 index 000000000..aba34c934 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/describe-logging-options.rst @@ -0,0 +1,17 @@ +**To get information about logging settings** + +The following ``describe-logging-options`` example retrieves the current settings of the AWS IoT Events logging options. :: + + aws iotevents describe-logging-options + +Output:: + + { + "loggingOptions": { + "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", + "enabled": false, + "level": "ERROR" + } + } + +For more information, see `DescribeLoggingOptions `__ in the *AWS IoT Events API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/list-detector-model-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/list-detector-model-versions.rst new file mode 100644 index 000000000..575c0c98f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/list-detector-model-versions.rst @@ -0,0 +1,24 @@ +**To get information about versions of a detector model** + +The following ``list-detector-model-versions`` example Lists all the versions of a detector model. Only the metadata associated with each detector model version is returned. :: + + aws iotevents list-detector-model-versions \ + --detector-model-name motorDetectorModel + +Output:: + + { + "detectorModelVersionSummaries": [ + { + "status": "ACTIVE", + "lastUpdateTime": 1560796816.077, + "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", + "creationTime": 1560796816.077, + "detectorModelArn": "arn:aws:iotevents:us-west-2:123456789012:detectorModel/motorDetectorModel", + "detectorModelName": "motorDetectorModel", + "detectorModelVersion": "1" + } + ] + } + +For more information, see `ListDetectorModelVersions `__ in the *AWS IoT Events API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/list-detector-models.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/list-detector-models.rst new file mode 100644 index 000000000..8859d550f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/list-detector-models.rst @@ -0,0 +1,19 @@ +**To get a list of your detector models** + +The following ``list-detector-models`` example Lists the detector models you have created. Only the metadata associated with each detector model is returned. :: + + aws iotevents list-detector-models + +Output:: + + { + "detectorModelSummaries": [ + { + "detectorModelName": "motorDetectorModel", + "creationTime": 1552072424.212 + "detectorModelDescription": "Detect overpressure in a motor." + } + ] + } + +For more information, see `ListDetectorModels `__ in the *AWS IoT Events API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/list-detectors.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/list-detectors.rst new file mode 100644 index 000000000..3b04abf85 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/list-detectors.rst @@ -0,0 +1,25 @@ +**To get a list of detectors for a detector model** + +The following ``list-detectors`` example lists the detectors (the instances of a detector model) in your account. :: + + aws iotevents-data list-detectors \ + --detector-model-name motorDetectorModel + +Output:: + + { + "detectorSummaries": [ + { + "lastUpdateTime": 1558129925.2, + "creationTime": 1552073155.527, + "state": { + "stateName": "Normal" + }, + "keyValue": "Fulton-A32", + "detectorModelName": "motorDetectorModel", + "detectorModelVersion": "1" + } + ] + } + +For more information, see `ListDetectors `__ in the *AWS IoT Events API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/list-inputs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/list-inputs.rst new file mode 100644 index 000000000..aa1e63918 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/list-inputs.rst @@ -0,0 +1,21 @@ +**To list inputs** + +The following ``list-inputs`` example lists the inputs you have created in your account. :: + + aws iotevents list-inputs + +This command produces no output. +Output:: + + { + { + "status": "ACTIVE", + "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", + "lastUpdateTime": 1551742986.768, + "creationTime": 1551742986.768, + "inputName": "PressureInput", + "inputDescription": "Pressure readings from a motor" + } + } + +For more information, see `ListInputs `__ in the *AWS IoT Events API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/list-tags-for-resource.rst new file mode 100644 index 000000000..7cd45a706 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/list-tags-for-resource.rst @@ -0,0 +1,19 @@ +**To list tags assigned to a resource.** + +The following ``list-tags-for-resource`` example lists the tag key names and values you have assigned to the resource. :: + + aws iotevents list-tags-for-resource \ + --resource-arn "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput" + +Output:: + + { + "tags": [ + { + "value": "motor", + "key": "deviceType" + } + ] + } + +For more information, see `ListTagsForResource `__ in the *AWS IoT Events API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/put-logging-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/put-logging-options.rst new file mode 100644 index 000000000..2813aae8d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/put-logging-options.rst @@ -0,0 +1,26 @@ +**To set logging options** + +The following ``put-logging-options`` example sets or updates the AWS IoT Events logging options. If you update the value of any ``loggingOptions` field, it can take up to one minute for the change to take effect. Also, if you change the policy attached to the role you specified in the ``roleArn`` field (for example, to correct an invalid policy) it can take up to five minutes for that change to take effect. :: + + aws iotevents put-logging-options \ + --cli-input-json file://logging-options.json + +Contents of ``logging-options.json``:: + + { + "loggingOptions": { + "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", + "level": "DEBUG", + "enabled": true, + "detectorDebugOptions": [ + { + "detectorModelName": "motorDetectorModel", + "keyValue": "Fulton-A32" + } + ] + } + } + +This command produces no output. + +For more information, see `PutLoggingOptions `__ in the *AWS IoT Events API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/tag-resource.rst new file mode 100644 index 000000000..6ad5f48b5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/tag-resource.rst @@ -0,0 +1,22 @@ +**To add tags to a resource** + +The following ``tag-resource`` example adds or modifies (if key ``deviceType`` already exists) the tag attached the specified resource. :: + + aws iotevents tag-resource \ + --cli-input-json file://pressureInput.tag.json + +Contents of ``pressureInput.tag.json``:: + + { + "resourceArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", + "tags": [ + { + "key": "deviceType", + "value": "motor" + } + ] + } + +This command produces no output. + +For more information, see `TagResource `__ in the *AWS IoT Events API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/untag-resource.rst new file mode 100644 index 000000000..3c2cdce77 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove tags from a resource** + +The following ``untag-resource`` example removes the tag with the specified key name from the specified resource. :: + + aws iotevents untag-resource \ + --resource-arn arn:aws:iotevents:us-west-2:123456789012:input/PressureInput \ + --tagkeys deviceType + +This command produces no output. + +For more information, see `UntagResource `__ in the *AWS IoT Events API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/update-detector-model.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/update-detector-model.rst new file mode 100644 index 000000000..f29296280 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/update-detector-model.rst @@ -0,0 +1,139 @@ +**To update a detector model** + +The following ``update-detector-model`` example updates the specified detector model. Detectors (instances) spawned by the previous version are deleted and then re-created as new inputs arrive. :: + + aws iotevents update-detector-model \ + --cli-input-json file://motorDetectorModel.update.json + +Contents of ``motorDetectorModel.update.json``:: + + { + "detectorModelName": "motorDetectorModel", + "detectorModelDefinition": { + "states": [ + { + "stateName": "Normal", + "onEnter": { + "events": [ + { + "eventName": "init", + "condition": "true", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "0" + } + } + ] + } + ] + }, + "onInput": { + "transitionEvents": [ + { + "eventName": "Overpressurized", + "condition": "$input.PressureInput.sensorData.pressure > 70", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "$variable.pressureThresholdBreached + 3" + } + } + ], + "nextState": "Dangerous" + } + ] + } + }, + { + "stateName": "Dangerous", + "onEnter": { + "events": [ + { + "eventName": "Pressure Threshold Breached", + "condition": "$variable.pressureThresholdBreached > 1", + "actions": [ + { + "sns": { + "targetArn": "arn:aws:sns:us-east-1:123456789012:underPressureAction" + } + } + ] + } + ] + }, + "onInput": { + "events": [ + { + "eventName": "Overpressurized", + "condition": "$input.PressureInput.sensorData.pressure > 70", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "3" + } + } + ] + }, + { + "eventName": "Pressure Okay", + "condition": "$input.PressureInput.sensorData.pressure <= 70", + "actions": [ + { + "setVariable": { + "variableName": "pressureThresholdBreached", + "value": "$variable.pressureThresholdBreached - 1" + } + } + ] + } + ], + "transitionEvents": [ + { + "eventName": "BackToNormal", + "condition": "$input.PressureInput.sensorData.pressure <= 70 && $variable.pressureThresholdBreached <= 1", + "nextState": "Normal" + } + ] + }, + "onExit": { + "events": [ + { + "eventName": "Normal Pressure Restored", + "condition": "true", + "actions": [ + { + "sns": { + "targetArn": "arn:aws:sns:us-east-1:123456789012:pressureClearedAction" + } + } + ] + } + ] + } + } + ], + "initialStateName": "Normal" + }, + "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole" + } + +Output:: + + { + "detectorModelConfiguration": { + "status": "ACTIVATING", + "lastUpdateTime": 1560799387.719, + "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", + "creationTime": 1560799387.719, + "detectorModelArn": "arn:aws:iotevents:us-west-2:123456789012:detectorModel/motorDetectorModel", + "key": "motorid", + "detectorModelName": "motorDetectorModel", + "detectorModelVersion": "2" + } + } + +For more information, see `UpdateDetectorModel `__ in the *AWS IoT Events API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/update-input.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/update-input.rst new file mode 100644 index 000000000..0045d5619 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotevents/update-input.rst @@ -0,0 +1,34 @@ +**To update an input** + +The following ``update-input`` example updates the specified input with a new description and definition. :: + + aws iotevents update-input \ + --cli-input-json file://pressureInput.json + +Contents of ``pressureInput.json``:: + + { + "inputName": "PressureInput", + "inputDescription": "Pressure readings from a motor", + "inputDefinition": { + "attributes": [ + { "jsonPath": "sensorData.pressure" }, + { "jsonPath": "motorid" } + ] + } + } + +Output:: + + { + "inputConfiguration": { + "status": "ACTIVE", + "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", + "lastUpdateTime": 1560795976.458, + "creationTime": 1560795312.542, + "inputName": "PressureInput", + "inputDescription": "Pressure readings from a motor" + } + } + +For more information, see `UpdateInput `__ in the *AWS IoT Events API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/associate-assets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/associate-assets.rst new file mode 100644 index 000000000..5092afee2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/associate-assets.rst @@ -0,0 +1,12 @@ +**To associate a child asset to a parent asset** + +The following ``associate-assets`` example associates a wind turbine asset to a wind farm asset, where the wind turbine asset model exists as a hierarchy in the wind farm asset model. :: + + aws iotsitewise associate-assets \ + --asset-id a1b2c3d4-5678-90ab-cdef-44444EXAMPLE \ + --hierarchy-id a1b2c3d4-5678-90ab-cdef-77777EXAMPLE \ + --child-asset-id a1b2c3d4-5678-90ab-cdef-33333EXAMPLE + +This command produces no output. + +For more information, see `Associating assets `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/batch-associate-project-assets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/batch-associate-project-assets.rst new file mode 100644 index 000000000..db66fa252 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/batch-associate-project-assets.rst @@ -0,0 +1,11 @@ +**To associate an asset to a project** + +The following ``batch-associate-project-assets`` example associates a wind farm asset to a project. :: + + aws iotsitewise batch-associate-project-assets \ + --project-id a1b2c3d4-5678-90ab-cdef-eeeeeEXAMPLE \ + --asset-ids a1b2c3d4-5678-90ab-cdef-44444EXAMPLE + +This command produces no output. + +For more information, see `Adding assets to projects `__ in the *AWS IoT SiteWise Monitor Application Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/batch-disassociate-project-assets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/batch-disassociate-project-assets.rst new file mode 100644 index 000000000..7daebc3ba --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/batch-disassociate-project-assets.rst @@ -0,0 +1,11 @@ +**To disassociate an asset from a project** + +The following ``batch-disassociate-project-assets`` example disassociates a wind farm asset from a project. :: + + aws iotsitewise batch-disassociate-project-assets \ + --project-id a1b2c3d4-5678-90ab-cdef-eeeeeEXAMPLE \ + --asset-ids a1b2c3d4-5678-90ab-cdef-44444EXAMPLE + +This command produces no output. + +For more information, see `Adding assets to projects `__ in the *AWS IoT SiteWise Monitor Application Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/batch-put-asset-property-value.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/batch-put-asset-property-value.rst new file mode 100644 index 000000000..8d346c631 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/batch-put-asset-property-value.rst @@ -0,0 +1,50 @@ +**To send data to asset properties** + +The following ``batch-put-asset-property-value`` example sends power and temperature data to the asset properties identified by property aliases. :: + + aws iotsitewise batch-put-asset-property-value \ + --cli-input-json file://batch-put-asset-property-value.json + +Contents of ``batch-put-asset-property-value.json``:: + + { + "entries": [ + { + "entryId": "1575691200-company-windfarm-3-turbine-7-power", + "propertyAlias": "company-windfarm-3-turbine-7-power", + "propertyValues": [ + { + "value": { + "doubleValue": 4.92 + }, + "timestamp": { + "timeInSeconds": 1575691200 + }, + "quality": "GOOD" + } + ] + }, + { + "entryId": "1575691200-company-windfarm-3-turbine-7-temperature", + "propertyAlias": "company-windfarm-3-turbine-7-temperature", + "propertyValues": [ + { + "value": { + "integerValue": 38 + }, + "timestamp": { + "timeInSeconds": 1575691200 + } + } + ] + } + ] + } + +Output:: + + { + "errorEntries": [] + } + +For more information, see `Ingesting data using the AWS IoT SiteWise API `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/create-access-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/create-access-policy.rst new file mode 100644 index 000000000..f1b31324b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/create-access-policy.rst @@ -0,0 +1,63 @@ +**Example 1: To grant a user administrative access to a portal** + +The following ``create-access-policy`` example creates an access policy that grants a user administrative access to a web portal for a wind farm company. :: + + aws iotsitewise create-access-policy \ + --cli-input-json file://create-portal-administrator-access-policy.json + +Contents of ``create-portal-administrator-access-policy.json``:: + + { + "accessPolicyIdentity": { + "user": { + "id": "a1b2c3d4e5-a1b2c3d4-5678-90ab-cdef-bbbbbEXAMPLE" + } + }, + "accessPolicyPermission": "ADMINISTRATOR", + "accessPolicyResource": { + "portal": { + "id": "a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE" + } + } + } + +Output:: + + { + "accessPolicyId": "a1b2c3d4-5678-90ab-cdef-cccccEXAMPLE", + "accessPolicyArn": "arn:aws:iotsitewise:us-west-2:123456789012:access-policy/a1b2c3d4-5678-90ab-cdef-cccccEXAMPLE" + } + +For more information, see `Adding or removing portal administrators `__ in the *AWS IoT SiteWise User Guide*. + +**Example 2: To grant a user read-only access to a project** + +The following ``create-access-policy`` example creates an access policy that grants a user read-only access to a wind farm project. :: + + aws iotsitewise create-access-policy \ + --cli-input-json file://create-project-viewer-access-policy.json + +Contents of ``create-project-viewer-access-policy.json``:: + + { + "accessPolicyIdentity": { + "user": { + "id": "a1b2c3d4e5-a1b2c3d4-5678-90ab-cdef-bbbbbEXAMPLE" + } + }, + "accessPolicyPermission": "VIEWER", + "accessPolicyResource": { + "project": { + "id": "a1b2c3d4-5678-90ab-cdef-eeeeeEXAMPLE" + } + } + } + +Output:: + + { + "accessPolicyId": "a1b2c3d4-5678-90ab-cdef-dddddEXAMPLE", + "accessPolicyArn": "arn:aws:iotsitewise:us-west-2:123456789012:access-policy/a1b2c3d4-5678-90ab-cdef-dddddEXAMPLE" + } + +For more information, see `Assigning project viewers `__ in the *AWS IoT SiteWise Monitor Application Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/create-asset-model.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/create-asset-model.rst new file mode 100644 index 000000000..7afdf39a1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/create-asset-model.rst @@ -0,0 +1,98 @@ +**To create an asset model** + +The following ``create-asset-model`` example creates an asset model that defines a wind turbine with the following properties: + +- Serial number - The serial number of a wind turbine +- Generated power - The generated power data stream from a wind turbine +- Temperature C - The temperature data stream from a wind turbine in Celsius +- Temperature F - The mapped temperature data points from Celsius to Fahrenheit + +:: + + aws iotsitewise create-asset-model \ + --cli-input-json file://create-wind-turbine-model.json + +Contents of ``create-wind-turbine-model.json``:: + + { + "assetModelName": "Wind Turbine Model", + "assetModelDescription": "Represents a wind turbine", + "assetModelProperties": [ + { + "name": "Serial Number", + "dataType": "STRING", + "type": { + "attribute": {} + } + }, + { + "name": "Generated Power", + "dataType": "DOUBLE", + "unit": "kW", + "type": { + "measurement": {} + } + }, + { + "name": "Temperature C", + "dataType": "DOUBLE", + "unit": "Celsius", + "type": { + "measurement": {} + } + }, + { + "name": "Temperature F", + "dataType": "DOUBLE", + "unit": "Fahrenheit", + "type": { + "transform": { + "expression": "temp_c * 9 / 5 + 32", + "variables": [ + { + "name": "temp_c", + "value": { + "propertyId": "Temperature C" + } + } + ] + } + } + }, + { + "name": "Total Generated Power", + "dataType": "DOUBLE", + "unit": "kW", + "type": { + "metric": { + "expression": "sum(power)", + "variables": [ + { + "name": "power", + "value": { + "propertyId": "Generated Power" + } + } + ], + "window": { + "tumbling": { + "interval": "1h" + } + } + } + } + } + ] + } + +Output:: + + { + "assetModelId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", + "assetModelArn": "arn:aws:iotsitewise:us-west-2:123456789012:asset-model/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", + "assetModelStatus": { + "state": "CREATING" + } + } + +For more information, see `Defining asset models `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/create-asset.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/create-asset.rst new file mode 100644 index 000000000..3d12f150e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/create-asset.rst @@ -0,0 +1,19 @@ +**To create an asset** + +The following ``create-asset`` example creates a wind turbine asset from a wind turbine asset model. :: + + aws iotsitewise create-asset \ + --asset-model-id a1b2c3d4-5678-90ab-cdef-11111EXAMPLE \ + --asset-name "Wind Turbine 1" + +Output:: + + { + "assetId": "a1b2c3d4-5678-90ab-cdef-33333EXAMPLE", + "assetArn": "arn:aws:iotsitewise:us-west-2:123456789012:asset/a1b2c3d4-5678-90ab-cdef-33333EXAMPLE", + "assetStatus": { + "state": "CREATING" + } + } + +For more information, see `Creating assets `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/create-dashboard.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/create-dashboard.rst new file mode 100644 index 000000000..5c62011f6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/create-dashboard.rst @@ -0,0 +1,40 @@ +**To create a dashboard** + +The following ``create-dashboard`` example creates a dashboard with a line chart that displays total generated power for a wind farm. :: + + aws iotsitewise create-dashboard \ + --project-id a1b2c3d4-5678-90ab-cdef-eeeeeEXAMPLE \ + --dashboard-name "Wind Farm" \ + --dashboard-definition file://create-wind-farm-dashboard.json + +Contents of ``create-wind-farm-dashboard.json``:: + + { + "widgets": [ + { + "type": "monitor-line-chart", + "title": "Generated Power", + "x": 0, + "y": 0, + "height": 3, + "width": 3, + "metrics": [ + { + "label": "Power", + "type": "iotsitewise", + "assetId": "a1b2c3d4-5678-90ab-cdef-44444EXAMPLE", + "propertyId": "a1b2c3d4-5678-90ab-cdef-99999EXAMPLE" + } + ] + } + ] + } + +Output:: + + { + "dashboardId": "a1b2c3d4-5678-90ab-cdef-fffffEXAMPLE", + "dashboardArn": "arn:aws:iotsitewise:us-west-2:123456789012:dashboard/a1b2c3d4-5678-90ab-cdef-fffffEXAMPLE" + } + +For more information, see `Creating dashboards (CLI) `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/create-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/create-gateway.rst new file mode 100644 index 000000000..dd39b5303 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/create-gateway.rst @@ -0,0 +1,16 @@ +**To create a gateway** + +The following ``create-gateway`` example creates a gateway that runs on AWS IoT Greengrass. :: + + aws iotsitewise create-gateway \ + --gateway-name ExampleCorpGateway \ + --gateway-platform greengrass={groupArn=arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/a1b2c3d4-5678-90ab-cdef-1b1b1EXAMPLE} + +Output:: + + { + "gatewayId": "a1b2c3d4-5678-90ab-cdef-1a1a1EXAMPLE", + "gatewayArn": "arn:aws:iotsitewise:us-west-2:123456789012:gateway/a1b2c3d4-5678-90ab-cdef-1a1a1EXAMPLE" + } + +For more information, see `Configuring a gateway `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/create-portal.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/create-portal.rst new file mode 100644 index 000000000..5f5fada43 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/create-portal.rst @@ -0,0 +1,23 @@ +**To create a portal** + +The following ``create-portal`` example creates a web portal for a wind farm company. You can create portals only in the same Region where you enabled AWS Single Sign-On. :: + + aws iotsitewise create-portal \ + --portal-name WindFarmPortal \ + --portal-description "A portal that contains wind farm projects for Example Corp." \ + --portal-contact-email support@example.com \ + --role-arn arn:aws:iam::123456789012:role/service-role/MySiteWiseMonitorServiceRole + +Output:: + + { + "portalId": "a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE", + "portalArn": "arn:aws:iotsitewise:us-west-2:123456789012:portal/a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE", + "portalStartUrl": "https://a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE.app.iotsitewise.aws", + "portalStatus": { + "state": "CREATING" + }, + "ssoApplicationId": "ins-a1b2c3d4-EXAMPLE" + } + +For more information, see `Getting started with AWS IoT SiteWise Monitor `__ in the *AWS IoT SiteWise User Guide* and `Enabling AWS SSO `__ in the *AWS IoT SiteWise User Guide*.. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/create-project.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/create-project.rst new file mode 100644 index 000000000..8a5242306 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/create-project.rst @@ -0,0 +1,17 @@ +**To create a project** + +The following ``create-project`` example creates a wind farm project. :: + + aws iotsitewise create-project \ + --portal-id a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE \ + --project-name "Wind Farm 1" \ + --project-description "Contains asset visualizations for Wind Farm #1 for Example Corp." + +Output:: + + { + "projectId": "a1b2c3d4-5678-90ab-cdef-eeeeeEXAMPLE", + "projectArn": "arn:aws:iotsitewise:us-west-2:123456789012:project/a1b2c3d4-5678-90ab-cdef-eeeeeEXAMPLE" + } + +For more information, see `Creating projects `__ in the *AWS IoT SiteWise Monitor Application Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/delete-access-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/delete-access-policy.rst new file mode 100644 index 000000000..ac794e38f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/delete-access-policy.rst @@ -0,0 +1,10 @@ +**To revoke a user's access to a project or portal** + +The following ``delete-access-policy`` example deletes an access policy that grants a user administrative access to a portal. :: + + aws iotsitewise delete-access-policy \ + --access-policy-id a1b2c3d4-5678-90ab-cdef-cccccEXAMPLE + +This command produces no output. + +For more information, see `Adding or removing portal administrators `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/delete-asset-model.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/delete-asset-model.rst new file mode 100644 index 000000000..c4a061198 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/delete-asset-model.rst @@ -0,0 +1,16 @@ +**To delete an asset model** + +The following ``delete-asset-model`` example deletes a wind turbine asset model. :: + + aws iotsitewise delete-asset-model \ + --asset-model-id a1b2c3d4-5678-90ab-cdef-11111EXAMPLE + +Output:: + + { + "assetModelStatus": { + "state": "DELETING" + } + } + +For more information, see `Deleting asset models `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/delete-asset.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/delete-asset.rst new file mode 100644 index 000000000..bdbab28a4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/delete-asset.rst @@ -0,0 +1,16 @@ +**To delete an asset** + +The following ``delete-asset`` example deletes a wind turbine asset. :: + + aws iotsitewise delete-asset \ + --asset-id a1b2c3d4-5678-90ab-cdef-33333EXAMPLE + +Output:: + + { + "assetStatus": { + "state": "DELETING" + } + } + +For more information, see `Deleting assets `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/delete-dashboard.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/delete-dashboard.rst new file mode 100644 index 000000000..a41a1da0c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/delete-dashboard.rst @@ -0,0 +1,10 @@ +**To delete a dashboard** + +The following ``delete-dashboard`` example deletes a wind turbine dashboard. :: + + aws iotsitewise delete-dashboard \ + --dashboard-id a1b2c3d4-5678-90ab-cdef-fffffEXAMPLE + +This command produces no output. + +For more information, see `Deleting dashboards `__ in the *AWS IoT SiteWise Monitor Application Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/delete-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/delete-gateway.rst new file mode 100644 index 000000000..e694319b5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/delete-gateway.rst @@ -0,0 +1,10 @@ +**To delete a gateway** + +The following ``delete-gateway`` example deletes a gateway. :: + + aws iotsitewise delete-gateway \ + --gateway-id a1b2c3d4-5678-90ab-cdef-1a1a1EXAMPLE + +This command produces no output. + +For more information, see `Ingesting data using a gateway `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/delete-portal.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/delete-portal.rst new file mode 100644 index 000000000..40a01da87 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/delete-portal.rst @@ -0,0 +1,16 @@ +**To delete a portal** + +The following ``delete-portal`` example deletes a web portal for a wind farm company. :: + + aws iotsitewise delete-portal \ + --portal-id a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE + +Output:: + + { + "portalStatus": { + "state": "DELETING" + } + } + +For more information, see `Deleting a portal `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/delete-project.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/delete-project.rst new file mode 100644 index 000000000..bd0db8f87 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/delete-project.rst @@ -0,0 +1,10 @@ +**To delete a project** + +The following ``delete-project`` example deletes a wind farm project. :: + + aws iotsitewise delete-project \ + --project-id a1b2c3d4-5678-90ab-cdef-eeeeeEXAMPLE + +This command produces no output. + +For more information, see `Deleting projects `__ in the *AWS IoT SiteWise Monitor Application Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-access-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-access-policy.rst new file mode 100644 index 000000000..77d5c4c1c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-access-policy.rst @@ -0,0 +1,28 @@ +**To describe an access policy** + +The following ``describe-access-policy`` example describes an access policy that grants a user administrative access to a web portal for a wind farm company. :: + + aws iotsitewise describe-access-policy \ + --access-policy-id a1b2c3d4-5678-90ab-cdef-cccccEXAMPLE + +Output:: + + { + "accessPolicyId": "a1b2c3d4-5678-90ab-cdef-cccccEXAMPLE", + "accessPolicyArn": "arn:aws:iotsitewise:us-west-2:123456789012:access-policy/a1b2c3d4-5678-90ab-cdef-cccccEXAMPLE", + "accessPolicyIdentity": { + "user": { + "id": "a1b2c3d4e5-a1b2c3d4-5678-90ab-cdef-bbbbbEXAMPLE" + } + }, + "accessPolicyResource": { + "portal": { + "id": "a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE" + } + }, + "accessPolicyPermission": "ADMINISTRATOR", + "accessPolicyCreationDate": "2020-02-20T22:35:15.552880124Z", + "accessPolicyLastUpdateDate": "2020-02-20T22:35:15.552880124Z" + } + +For more information, see `Adding or removing portal administrators `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-asset-model.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-asset-model.rst new file mode 100644 index 000000000..e0e54b301 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-asset-model.rst @@ -0,0 +1,66 @@ +**To describe an asset model** + +The following ``describe-asset-model`` example describes a wind farm asset model. :: + + aws iotsitewise describe-asset-model \ + --asset-model-id a1b2c3d4-5678-90ab-cdef-22222EXAMPLE + +Output:: + + { + "assetModelId": "a1b2c3d4-5678-90ab-cdef-22222EXAMPLE", + "assetModelArn": "arn:aws:iotsitewise:us-west-2:123456789012:asset-model/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE", + "assetModelName": "Wind Farm Model", + "assetModelDescription": "Represents a wind farm that comprises many wind turbines", + "assetModelProperties": [ + { + "id": "a1b2c3d4-5678-90ab-cdef-99999EXAMPLE", + "name": "Total Generated Power", + "dataType": "DOUBLE", + "unit": "kW", + "type": { + "metric": { + "expression": "sum(power)", + "variables": [ + { + "name": "power", + "value": { + "propertyId": "a1b2c3d4-5678-90ab-cdef-66666EXAMPLE", + "hierarchyId": "a1b2c3d4-5678-90ab-cdef-77777EXAMPLE" + } + } + ], + "window": { + "tumbling": { + "interval": "1h" + } + } + } + } + }, + { + "id": "a1b2c3d4-5678-90ab-cdef-88888EXAMPLE", + "name": "Region", + "dataType": "STRING", + "type": { + "attribute": { + "defaultValue": " " + } + } + } + ], + "assetModelHierarchies": [ + { + "id": "a1b2c3d4-5678-90ab-cdef-77777EXAMPLE", + "name": "Wind Turbines", + "childAssetModelId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" + } + ], + "assetModelCreationDate": 1575671284.0, + "assetModelLastUpdateDate": 1575671988.0, + "assetModelStatus": { + "state": "ACTIVE" + } + } + +For more information, see `Describing a specific asset model `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-asset-property.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-asset-property.rst new file mode 100644 index 000000000..b33e9a63f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-asset-property.rst @@ -0,0 +1,46 @@ +**To describe an asset property** + +The following ``describe-asset-property`` example describes a wind farm asset's total generated power property. :: + + aws iotsitewise describe-asset-property \ + --asset-id a1b2c3d4-5678-90ab-cdef-44444EXAMPLE \ + --property-id a1b2c3d4-5678-90ab-cdef-99999EXAMPLE + +Output:: + + { + "assetId": "a1b2c3d4-5678-90ab-cdef-44444EXAMPLE", + "assetName": "Wind Farm 1", + "assetModelId": "a1b2c3d4-5678-90ab-cdef-22222EXAMPLE", + "assetProperty": { + "id": "a1b2c3d4-5678-90ab-cdef-99999EXAMPLE", + "name": "Total Generated Power", + "notification": { + "topic": "$aws/sitewise/asset-models/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE/assets/a1b2c3d4-5678-90ab-cdef-44444EXAMPLE/properties/a1b2c3d4-5678-90ab-cdef-99999EXAMPLE", + "state": "DISABLED" + }, + "dataType": "DOUBLE", + "unit": "kW", + "type": { + "metric": { + "expression": "sum(power)", + "variables": [ + { + "name": "power", + "value": { + "propertyId": "a1b2c3d4-5678-90ab-cdef-66666EXAMPLE", + "hierarchyId": "a1b2c3d4-5678-90ab-cdef-77777EXAMPLE" + } + } + ], + "window": { + "tumbling": { + "interval": "1h" + } + } + } + } + } + } + +For more information, see `Describing a specific asset property `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-asset.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-asset.rst new file mode 100644 index 000000000..b41c094e4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-asset.rst @@ -0,0 +1,41 @@ +**To describe an asset** + +The following ``describe-asset`` example describes a wind farm asset. :: + + aws iotsitewise describe-asset \ + --asset-id a1b2c3d4-5678-90ab-cdef-44444EXAMPLE + +Output:: + + { + "assetId": "a1b2c3d4-5678-90ab-cdef-44444EXAMPLE", + "assetArn": "arn:aws:iotsitewise:us-west-2:123456789012:asset/a1b2c3d4-5678-90ab-cdef-44444EXAMPLE", + "assetName": "Wind Farm 1", + "assetModelId": "a1b2c3d4-5678-90ab-cdef-22222EXAMPLE", + "assetProperties": [ + { + "id": "a1b2c3d4-5678-90ab-cdef-88888EXAMPLE", + "name": "Region", + "dataType": "STRING" + }, + { + "id": "a1b2c3d4-5678-90ab-cdef-99999EXAMPLE", + "name": "Total Generated Power", + "dataType": "DOUBLE", + "unit": "kW" + } + ], + "assetHierarchies": [ + { + "id": "a1b2c3d4-5678-90ab-cdef-77777EXAMPLE", + "name": "Wind Turbines" + } + ], + "assetCreationDate": 1575672453.0, + "assetLastUpdateDate": 1575672453.0, + "assetStatus": { + "state": "ACTIVE" + } + } + +For more information, see `Describing a specific asset `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-dashboard.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-dashboard.rst new file mode 100644 index 000000000..cc96c5755 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-dashboard.rst @@ -0,0 +1,20 @@ +**To describe a dashboard** + +The following ``describe-dashboard`` example describes the specified wind farm dashboard. :: + + aws iotsitewise describe-dashboard \ + --dashboard-id a1b2c3d4-5678-90ab-cdef-fffffEXAMPLE + +Output:: + + { + "dashboardId": "a1b2c3d4-5678-90ab-cdef-fffffEXAMPLE", + "dashboardArn": "arn:aws:iotsitewise:us-west-2:123456789012:dashboard/a1b2c3d4-5678-90ab-cdef-fffffEXAMPLE", + "dashboardName": "Wind Farm", + "projectId": "a1b2c3d4-5678-90ab-cdef-eeeeeEXAMPLE", + "dashboardDefinition": "{\"widgets\":[{\"type\":\"monitor-line-chart\",\"title\":\"Generated Power\",\"x\":0,\"y\":0,\"height\":3,\"width\":3,\"metrics\":[{\"label\":\"Power\",\"type\":\"iotsitewise\",\"assetId\":\"a1b2c3d4-5678-90ab-cdef-44444EXAMPLE\",\"propertyId\":\"a1b2c3d4-5678-90ab-cdef-99999EXAMPLE\"}]}]}", + "dashboardCreationDate": "2020-05-01T20:32:12.228476348Z", + "dashboardLastUpdateDate": "2020-05-01T20:32:12.228476348Z" + } + +For more information, see `Viewing dashboards `__ in the *AWS IoT SiteWise Monitor Application Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-gateway-capability-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-gateway-capability-configuration.rst new file mode 100644 index 000000000..a3c1a7704 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-gateway-capability-configuration.rst @@ -0,0 +1,18 @@ +**To describe a gateway capability** + +The following ``describe-gateway-capability-configuration`` example describes an OPC-UA source capability. :: + + aws iotsitewise describe-gateway-capability-configuration \ + --gateway-id a1b2c3d4-5678-90ab-cdef-1a1a1EXAMPLE \ + --capability-namespace "iotsitewise:opcuacollector:1" + +Output:: + + { + "gatewayId": "a1b2c3d4-5678-90ab-cdef-1a1a1EXAMPLE", + "capabilityNamespace": "iotsitewise:opcuacollector:1", + "capabilityConfiguration": "{\"sources\":[{\"name\":\"Wind Farm #1\",\"endpoint\":{\"certificateTrust\":{\"type\":\"TrustAny\"},\"endpointUri\":\"opc.tcp://203.0.113.0:49320\",\"securityPolicy\":\"BASIC256\",\"messageSecurityMode\":\"SIGN_AND_ENCRYPT\",\"identityProvider\":{\"type\":\"Username\",\"usernameSecretArn\":\"arn:aws:secretsmanager:us-east-1:123456789012:secret:greengrass-factory1-auth-3QNDmM\"},\"nodeFilterRules\":[]},\"measurementDataStreamPrefix\":\"\"}]}", + "capabilitySyncStatus": "IN_SYNC" + } + +For more information, see `Configuring data sources `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-gateway.rst new file mode 100644 index 000000000..c333c96d0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-gateway.rst @@ -0,0 +1,29 @@ +**To describe a gateway** + +The following ``describe-gateway`` example describes a gateway. :: + + aws iotsitewise describe-gateway \ + --gateway-id a1b2c3d4-5678-90ab-cdef-1a1a1EXAMPLE + +Output:: + + { + "gatewayId": "a1b2c3d4-5678-90ab-cdef-1a1a1EXAMPLE", + "gatewayName": "ExampleCorpGateway", + "gatewayArn": "arn:aws:iotsitewise:us-west-2:123456789012:gateway/a1b2c3d4-5678-90ab-cdef-1a1a1EXAMPLE", + "gatewayPlatform": { + "greengrass": { + "groupArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/a1b2c3d4-5678-90ab-cdef-1b1b1EXAMPLE" + } + }, + "gatewayCapabilitySummaries": [ + { + "capabilityNamespace": "iotsitewise:opcuacollector:1", + "capabilitySyncStatus": "IN_SYNC" + } + ], + "creationDate": 1588369971.457, + "lastUpdateDate": 1588369971.457 + } + +For more information, see `Ingesting data using a gateway `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-logging-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-logging-options.rst new file mode 100644 index 000000000..c87ec31c0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-logging-options.rst @@ -0,0 +1,15 @@ +**To retrieve the current AWS IoT SiteWise logging options** + +The following ``describe-logging-options`` example retrieves the current AWS IoT SiteWise logging options for your AWS account in the current Region. :: + + aws iotsitewise describe-logging-options + +Output:: + + { + "loggingOptions": { + "level": "INFO" + } + } + +For more information, see `Monitoring AWS IoT SiteWise with Amazon CloudWatch Logs `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-portal.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-portal.rst new file mode 100644 index 000000000..9c3645ce0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-portal.rst @@ -0,0 +1,26 @@ +**To describe a portal** + +The following ``describe-portal`` example describes a web portal for a wind farm company. :: + + aws iotsitewise describe-portal \ + --portal-id a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE + +Output:: + + { + "portalId": "a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE", + "portalArn": "arn:aws:iotsitewise:us-west-2:123456789012:portal/a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE", + "portalName": "WindFarmPortal", + "portalDescription": "A portal that contains wind farm projects for Example Corp.", + "portalClientId": "E-a1b2c3d4e5f6_a1b2c3d4e5f6EXAMPLE", + "portalStartUrl": "https://a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE.app.iotsitewise.aws", + "portalContactEmail": "support@example.com", + "portalStatus": { + "state": "ACTIVE" + }, + "portalCreationDate": "2020-02-04T23:01:52.90248068Z", + "portalLastUpdateDate": "2020-02-04T23:01:52.90248078Z", + "roleArn": "arn:aws:iam::123456789012:role/MySiteWiseMonitorServiceRole" + } + +For more information, see `Administering your portals `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-project.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-project.rst new file mode 100644 index 000000000..768f1e45a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/describe-project.rst @@ -0,0 +1,20 @@ +**To describe a project** + +The following ``describe-project`` example describes a wind farm project. :: + + aws iotsitewise describe-project \ + --project-id a1b2c3d4-5678-90ab-cdef-eeeeeEXAMPLE + +Output:: + + { + "projectId": "a1b2c3d4-5678-90ab-cdef-eeeeeEXAMPLE", + "projectArn": "arn:aws:iotsitewise:us-west-2:123456789012:project/a1b2c3d4-5678-90ab-cdef-eeeeeEXAMPLE", + "projectName": "Wind Farm 1", + "portalId": "a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE", + "projectDescription": "Contains asset visualizations for Wind Farm #1 for Example Corp.", + "projectCreationDate": "2020-02-20T21:58:43.362246001Z", + "projectLastUpdateDate": "2020-02-20T21:58:43.362246095Z" + } + +For more information, see `Viewing project details `__ in the *AWS IoT SiteWise Monitor Application Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/disassociate-assets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/disassociate-assets.rst new file mode 100644 index 000000000..4a67caff6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/disassociate-assets.rst @@ -0,0 +1,12 @@ +**To disassociate a child asset from a parent asset** + +The following ``disassociate-assets`` example disassociates a wind turbine asset from a wind farm asset. :: + + aws iotsitewise disassociate-assets \ + --asset-id a1b2c3d4-5678-90ab-cdef-44444EXAMPLE \ + --hierarchy-id a1b2c3d4-5678-90ab-cdef-77777EXAMPLE \ + --child-asset-id a1b2c3d4-5678-90ab-cdef-33333EXAMPLE + +This command produces no output. + +For more information, see `Associating assets `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/get-asset-property-aggregates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/get-asset-property-aggregates.rst new file mode 100644 index 000000000..a13533239 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/get-asset-property-aggregates.rst @@ -0,0 +1,28 @@ +**To retrieve an asset property's aggregated average and count values** + +The following ``get-asset-property-aggregates`` example retrieves a wind turbine asset's average total power and count of total power data points for a 1 hour period in time. :: + + aws iotsitewise get-asset-property-aggregates \ + --asset-id a1b2c3d4-5678-90ab-cdef-33333EXAMPLE \ + --property-id a1b2c3d4-5678-90ab-cdef-66666EXAMPLE \ + --start-date 1580849400 \ + --end-date 1580853000 \ + --aggregate-types AVERAGE COUNT \ + --resolution 1h + +Output:: + + { + "aggregatedValues": [ + { + "timestamp": 1580850000.0, + "quality": "GOOD", + "value": { + "average": 8723.46538886233, + "count": 12.0 + } + } + ] + } + +For more information, see `Querying asset property aggregates `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/get-asset-property-value-history.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/get-asset-property-value-history.rst new file mode 100644 index 000000000..4d7b2f788 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/get-asset-property-value-history.rst @@ -0,0 +1,58 @@ +**To retrieve an asset property's historical values** + +The following ``get-asset-property-value-history`` example retrieves a wind turbine asset's total power values for a 20 minute period in time. :: + + aws iotsitewise get-asset-property-value-history \ + --asset-id a1b2c3d4-5678-90ab-cdef-33333EXAMPLE \ + --property-id a1b2c3d4-5678-90ab-cdef-66666EXAMPLE \ + --start-date 1580851800 \ + --end-date 1580853000 + +Output:: + + { + "assetPropertyValueHistory": [ + { + "value": { + "doubleValue": 7217.787046814844 + }, + "timestamp": { + "timeInSeconds": 1580852100, + "offsetInNanos": 0 + }, + "quality": "GOOD" + }, + { + "value": { + "doubleValue": 6941.242811875451 + }, + "timestamp": { + "timeInSeconds": 1580852400, + "offsetInNanos": 0 + }, + "quality": "GOOD" + }, + { + "value": { + "doubleValue": 6976.797662266717 + }, + "timestamp": { + "timeInSeconds": 1580852700, + "offsetInNanos": 0 + }, + "quality": "GOOD" + }, + { + "value": { + "doubleValue": 6890.8677520453875 + }, + "timestamp": { + "timeInSeconds": 1580853000, + "offsetInNanos": 0 + }, + "quality": "GOOD" + } + ] + } + +For more information, see `Querying historical asset property values `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/get-asset-property-value.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/get-asset-property-value.rst new file mode 100644 index 000000000..f37508f36 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/get-asset-property-value.rst @@ -0,0 +1,24 @@ +**To retrieve an asset property's current value** + +The following ``get-asset-property-value`` example retrieves a wind turbine asset's current total power. :: + + aws iotsitewise get-asset-property-value \ + --asset-id a1b2c3d4-5678-90ab-cdef-33333EXAMPLE \ + --property-id a1b2c3d4-5678-90ab-cdef-66666EXAMPLE + +Output:: + + { + "propertyValue": { + "value": { + "doubleValue": 6890.8677520453875 + }, + "timestamp": { + "timeInSeconds": 1580853000, + "offsetInNanos": 0 + }, + "quality": "GOOD" + } + } + +For more information, see `Querying current asset property values `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-access-policies.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-access-policies.rst new file mode 100644 index 000000000..0e32eb0b7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-access-policies.rst @@ -0,0 +1,30 @@ +**To list all access policies** + +The following ``list-access-policies`` example lists all access policies for a user who is a portal administrator. :: + + aws iotsitewise list-access-policies \ + --identity-type USER \ + --identity-id a1b2c3d4e5-a1b2c3d4-5678-90ab-cdef-bbbbbEXAMPLE + +Output:: + + { + "accessPolicySummaries": [ + { + "id": "a1b2c3d4-5678-90ab-cdef-cccccEXAMPLE", + "identity": { + "user": { + "id": "a1b2c3d4e5-a1b2c3d4-5678-90ab-cdef-bbbbbEXAMPLE" + } + }, + "resource": { + "portal": { + "id": "a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE" + } + }, + "permission": "ADMINISTRATOR" + } + ] + } + +For more information, see `Administering your portals `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-asset-models.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-asset-models.rst new file mode 100644 index 000000000..8ae0b86a5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-asset-models.rst @@ -0,0 +1,36 @@ +**To list all asset models** + +The following ``list-asset-models`` example lists all asset models that are defined in your AWS account in the current Region. :: + + aws iotsitewise list-asset-models + +Output:: + + { + "assetModelSummaries": [ + { + "id": "a1b2c3d4-5678-90ab-cdef-22222EXAMPLE", + "arn": "arn:aws:iotsitewise:us-west-2:123456789012:asset-model/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE", + "name": "Wind Farm Model", + "description": "Represents a wind farm that comprises many wind turbines", + "creationDate": 1575671284.0, + "lastUpdateDate": 1575671988.0, + "status": { + "state": "ACTIVE" + } + }, + { + "id": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", + "arn": "arn:aws:iotsitewise:us-west-2:123456789012:asset-model/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", + "name": "Wind Turbine Model", + "description": "Represents a wind turbine manufactured by Example Corp", + "creationDate": 1575671207.0, + "lastUpdateDate": 1575686273.0, + "status": { + "state": "ACTIVE" + } + } + ] + } + +For more information, see `Listing all asset models `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-assets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-assets.rst new file mode 100644 index 000000000..6d6b5c755 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-assets.rst @@ -0,0 +1,60 @@ +**Example 1: To list all top-level assets** + +The following ``list-assets`` example lists all assets that are top-level in the asset hierarchy tree and defined in your AWS account in the current Region. :: + + aws iotsitewise list-assets \ + --filter TOP_LEVEL + +Output:: + + { + "assetSummaries": [ + { + "id": "a1b2c3d4-5678-90ab-cdef-44444EXAMPLE", + "arn": "arn:aws:iotsitewise:us-west-2:123456789012:asset/a1b2c3d4-5678-90ab-cdef-44444EXAMPLE", + "name": "Wind Farm 1", + "assetModelId": "a1b2c3d4-5678-90ab-cdef-22222EXAMPLE", + "creationDate": 1575672453.0, + "lastUpdateDate": 1575672453.0, + "status": { + "state": "ACTIVE" + }, + "hierarchies": [ + { + "id": "a1b2c3d4-5678-90ab-cdef-77777EXAMPLE", + "name": "Wind Turbines" + } + ] + } + ] + } + +For more information, see `Listing assets `__ in the *AWS IoT SiteWise User Guide*. + +**Example 2: To list all assets based on an asset model** + +The following ``list-assets`` example lists all assets based on an asset model and defined in your AWS account in the current Region. :: + + aws iotsitewise list-assets \ + --asset-model-id a1b2c3d4-5678-90ab-cdef-11111EXAMPLE + +Output:: + + { + "assetSummaries": [ + { + "id": "a1b2c3d4-5678-90ab-cdef-33333EXAMPLE", + "arn": "arn:aws:iotsitewise:us-west-2:123456789012:asset/a1b2c3d4-5678-90ab-cdef-33333EXAMPLE", + "name": "Wind Turbine 1", + "assetModelId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", + "creationDate": 1575671550.0, + "lastUpdateDate": 1575686308.0, + "status": { + "state": "ACTIVE" + }, + "hierarchies": [] + } + ] + } + +For more information, see `Listing assets `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-associated-assets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-associated-assets.rst new file mode 100644 index 000000000..75ef006a4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-associated-assets.rst @@ -0,0 +1,28 @@ +**To list all assets associated to an asset in a specific hierarchy** + +The following ``list-associated-assets`` example lists all wind turbine assets associated to the specified wind farm asset. :: + + aws iotsitewise list-associated-assets \ + --asset-id a1b2c3d4-5678-90ab-cdef-44444EXAMPLE \ + --hierarchy-id a1b2c3d4-5678-90ab-cdef-77777EXAMPLE + +Output:: + + { + "assetSummaries": [ + { + "id": "a1b2c3d4-5678-90ab-cdef-33333EXAMPLE", + "arn": "arn:aws:iotsitewise:us-west-2:123456789012:asset/a1b2c3d4-5678-90ab-cdef-33333EXAMPLE", + "name": "Wind Turbine 1", + "assetModelId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", + "creationDate": 1575671550.0, + "lastUpdateDate": 1575686308.0, + "status": { + "state": "ACTIVE" + }, + "hierarchies": [] + } + ] + } + +For more information, see `Listing assets associated to a specific asset `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-dashboards.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-dashboards.rst new file mode 100644 index 000000000..3fb67ba2e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-dashboards.rst @@ -0,0 +1,21 @@ +**To list all dashboards in a project** + +The following ``list-dashboards`` example lists all dashboards that are defined in a project. :: + + aws iotsitewise list-dashboards \ + --project-id a1b2c3d4-5678-90ab-cdef-eeeeeEXAMPLE + +Output:: + + { + "dashboardSummaries": [ + { + "id": "a1b2c3d4-5678-90ab-cdef-fffffEXAMPLE", + "name": "Wind Farm", + "creationDate": "2020-05-01T20:32:12.228476348Z", + "lastUpdateDate": "2020-05-01T20:32:12.228476348Z" + } + ] + } + +For more information, see `Viewing dashboards `__ in the *AWS IoT SiteWise Monitor Application Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-gateways.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-gateways.rst new file mode 100644 index 000000000..6fcade28a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-gateways.rst @@ -0,0 +1,26 @@ +**To list all gateways** + +The following ``list-gateways`` example lists all gateways that are defined in your AWS account in the current Region. :: + + aws iotsitewise list-gateways + +Output:: + + { + "gatewaySummaries": [ + { + "gatewayId": "a1b2c3d4-5678-90ab-cdef-1a1a1EXAMPLE", + "gatewayName": "ExampleCorpGateway", + "gatewayCapabilitySummaries": [ + { + "capabilityNamespace": "iotsitewise:opcuacollector:1", + "capabilitySyncStatus": "IN_SYNC" + } + ], + "creationDate": 1588369971.457, + "lastUpdateDate": 1588369971.457 + } + ] + } + +For more information, see `Ingesting data using a gateway `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-portals.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-portals.rst new file mode 100644 index 000000000..7c1c5a291 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-portals.rst @@ -0,0 +1,23 @@ +**To list all portals** + +The following ``list-portals`` example lists all portals that are defined in your AWS account in the current Region. :: + + aws iotsitewise list-portals + +Output:: + + { + "portalSummaries": [ + { + "id": "a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE", + "name": "WindFarmPortal", + "description": "A portal that contains wind farm projects for Example Corp.", + "startUrl": "https://a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE.app.iotsitewise.aws", + "creationDate": "2020-02-04T23:01:52.90248068Z", + "lastUpdateDate": "2020-02-04T23:01:52.90248078Z", + "roleArn": "arn:aws:iam::123456789012:role/service-role/MySiteWiseMonitorServiceRole" + } + ] + } + +For more information, see `Administering your portals `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-project-assets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-project-assets.rst new file mode 100644 index 000000000..11a2e61a8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-project-assets.rst @@ -0,0 +1,16 @@ +**To list all assets associated to a project** + +The following ``list-project-assets`` example lists all assets that are associated to a wind farm project. :: + + aws iotsitewise list-projects \ + --project-id a1b2c3d4-5678-90ab-cdef-eeeeeEXAMPLE + +Output:: + + { + "assetIds": [ + "a1b2c3d4-5678-90ab-cdef-44444EXAMPLE" + ] + } + +For more information, see `Adding assets to projects `__ in the *AWS IoT SiteWise Monitor Application Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-projects.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-projects.rst new file mode 100644 index 000000000..8ad47ad85 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-projects.rst @@ -0,0 +1,22 @@ +**To list all projects in a portal** + +The following ``list-projects`` example lists all projects that are defined in a portal. :: + + aws iotsitewise list-projects \ + --portal-id a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE + +Output:: + + { + "projectSummaries": [ + { + "id": "a1b2c3d4-5678-90ab-cdef-eeeeeEXAMPLE", + "name": "Wind Farm 1", + "description": "Contains asset visualizations for Wind Farm #1 for Example Corp.", + "creationDate": "2020-02-20T21:58:43.362246001Z", + "lastUpdateDate": "2020-02-20T21:58:43.362246095Z" + } + ] + } + +For more information, see `Viewing project details `__ in the *AWS IoT SiteWise Monitor Application Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-tags-for-resource.rst new file mode 100644 index 000000000..0b23f6308 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/list-tags-for-resource.rst @@ -0,0 +1,16 @@ +**To list all tags for a resource** + +The following ``list-tags-for-resource`` example lists all tags for a wind turbine asset. :: + + aws iotsitewise list-tags-for-resource \ + --resource-arn arn:aws:iotsitewise:us-west-2:123456789012:asset/a1b2c3d4-5678-90ab-cdef-33333EXAMPLE + +Output:: + + { + "tags": { + "Owner": "richard-roe" + } + } + +For more information, see `Tagging your resources `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/put-logging-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/put-logging-options.rst new file mode 100644 index 000000000..7c233c6dc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/put-logging-options.rst @@ -0,0 +1,10 @@ +**To specify the level of logging** + +The following ``put-logging-options`` example enables ``INFO`` level logging in AWS IoT SiteWise. Other levels include ``DEBUG`` and ``OFF``. :: + + aws iotsitewise put-logging-options \ + --logging-options level=INFO + +This command produces no output. + +For more information, see `Monitoring AWS IoT SiteWise with Amazon CloudWatch Logs `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/tag-resource.rst new file mode 100644 index 000000000..5b3a5e214 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/tag-resource.rst @@ -0,0 +1,11 @@ +**To add a tag to a resource** + +The following ``tag-resource`` example adds an owner tag to a wind turbine asset. This lets you control access to the asset based on who owns it. :: + + aws iotsitewise tag-resource \ + --resource-arn arn:aws:iotsitewise:us-west-2:123456789012:asset/a1b2c3d4-5678-90ab-cdef-33333EXAMPLE \ + --tags Owner=richard-roe + +This command produces no output. + +For more information, see `Tagging your resources `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/untag-resource.rst new file mode 100644 index 000000000..43ab265e6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove a tag from a resource** + +The following ``untag-resource`` example removes an owner tag from a wind turbine asset. :: + + aws iotsitewise untag-resource \ + --resource-arn arn:aws:iotsitewise:us-west-2:123456789012:asset/a1b2c3d4-5678-90ab-cdef-33333EXAMPLE \ + --tag-keys Owner + +This command produces no output. + +For more information, see `Tagging your resources `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-access-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-access-policy.rst new file mode 100644 index 000000000..0651e90d8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-access-policy.rst @@ -0,0 +1,27 @@ +**To grant a project viewer ownership of a project** + +The following ``update-access-policy`` example updates an access policy that grants a project viewer ownership of a project. :: + + aws iotsitewise update-access-policy \ + --access-policy-id a1b2c3d4-5678-90ab-cdef-dddddEXAMPLE \ + --cli-input-json file://update-project-viewer-access-policy.json + +Contents of ``update-project-viewer-access-policy.json``:: + + { + "accessPolicyIdentity": { + "user": { + "id": "a1b2c3d4e5-a1b2c3d4-5678-90ab-cdef-bbbbbEXAMPLE" + } + }, + "accessPolicyPermission": "ADMINISTRATOR", + "accessPolicyResource": { + "project": { + "id": "a1b2c3d4-5678-90ab-cdef-eeeeeEXAMPLE" + } + } + } + +This command produces no output. + +For more information, see `Assigning project owners `__ in the *AWS IoT SiteWise Monitor Application Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-asset-model.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-asset-model.rst new file mode 100644 index 000000000..acab05b1b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-asset-model.rst @@ -0,0 +1,67 @@ +**To update an asset model** + +The following ``update-asset-model`` example updates a wind farm asset model's description. This example includes the model's existing IDs and definitions, because ``update-asset-model`` overwrites the existing model with the new model. :: + + aws iotsitewise update-asset-model \ + --cli-input-json file://update-wind-farm-model.json + +Contents of ``update-wind-farm-model.json``:: + + { + "assetModelName": "Wind Farm Model", + "assetModelDescription": "Represents a wind farm that comprises many wind turbines", + "assetModelProperties": [ + { + "id": "a1b2c3d4-5678-90ab-cdef-88888EXAMPLE", + "name": "Region", + "dataType": "STRING", + "type": { + "attribute": {} + } + }, + { + "id": "a1b2c3d4-5678-90ab-cdef-99999EXAMPLE", + "name": "Total Generated Power", + "dataType": "DOUBLE", + "unit": "kW", + "type": { + "metric": { + "expression": "sum(power)", + "variables": [ + { + "name": "power", + "value": { + "hierarchyId": "a1b2c3d4-5678-90ab-cdef-77777EXAMPLE", + "propertyId": "a1b2c3d4-5678-90ab-cdef-66666EXAMPLE" + } + } + ], + "window": { + "tumbling": { + "interval": "1h" + } + } + } + } + } + ], + "assetModelHierarchies": [ + { + "id": "a1b2c3d4-5678-90ab-cdef-77777EXAMPLE", + "name": "Wind Turbines", + "childAssetModelId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" + } + ] + } + +Output:: + + { + "assetModelId": "a1b2c3d4-5678-90ab-cdef-22222EXAMPLE", + "assetModelArn": "arn:aws:iotsitewise:us-west-2:123456789012:asset-model/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE", + "assetModelStatus": { + "state": "CREATING" + } + } + +For more information, see `Updating asset models `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-asset-property.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-asset-property.rst new file mode 100644 index 000000000..d2447670d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-asset-property.rst @@ -0,0 +1,27 @@ +**Example 1: To update an asset property's alias** + +The following ``update-asset-property`` example updates a wind turbine asset's power property alias. :: + + aws iotsitewise update-asset-property \ + --asset-id a1b2c3d4-5678-90ab-cdef-33333EXAMPLE \ + --property-id a1b2c3d4-5678-90ab-cdef-55555EXAMPLE \ + --property-alias "/examplecorp/windfarm/1/turbine/1/power" \ + --property-notification-state DISABLED + +This command produces no output. + +For more information, see `Mapping industrial data streams to asset properties `__ in the *AWS IoT SiteWise User Guide*. + +**Example 2: To enable asset property notifications** + +The following ``update-asset-property`` example enables asset property update notifications for a wind turbine asset's power property. Property value updates are published to the MQTT topic ``$aws/sitewise/asset-models//assets//properties/``, where each ID is replaced by the property, asset, and model ID of the asset property. :: + + aws iotsitewise update-asset-property \ + --asset-id a1b2c3d4-5678-90ab-cdef-33333EXAMPLE \ + --property-id a1b2c3d4-5678-90ab-cdef-66666EXAMPLE \ + --property-notification-state ENABLED \ + --property-alias "/examplecorp/windfarm/1/turbine/1/power" + +This command produces no output. + +For more information, see `Interacting with other services `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-asset.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-asset.rst new file mode 100644 index 000000000..d6fe8aaef --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-asset.rst @@ -0,0 +1,17 @@ +**To update an asset's name** + +The following ``update-asset`` example updates a wind turbine asset's name. :: + + aws iotsitewise update-asset \ + --asset-id a1b2c3d4-5678-90ab-cdef-33333EXAMPLE \ + --asset-name "Wind Turbine 2" + +Output:: + + { + "assetStatus": { + "state": "UPDATING" + } + } + +For more information, see `Updating assets `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-dashboard.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-dashboard.rst new file mode 100644 index 000000000..212d0be1f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-dashboard.rst @@ -0,0 +1,35 @@ +**To update a dashboard** + +The following ``update-dashboard`` example changes the title of a dashboard's line chart that displays total generated power for a wind farm. :: + + aws iotsitewise update-dashboard \ + --project-id a1b2c3d4-5678-90ab-cdef-fffffEXAMPLE \ + --dashboard-name "Wind Farm" \ + --dashboard-definition file://update-wind-farm-dashboard.json + +Contents of ``update-wind-farm-dashboard.json``:: + + { + "widgets": [ + { + "type": "monitor-line-chart", + "title": "Total Generated Power", + "x": 0, + "y": 0, + "height": 3, + "width": 3, + "metrics": [ + { + "label": "Power", + "type": "iotsitewise", + "assetId": "a1b2c3d4-5678-90ab-cdef-44444EXAMPLE", + "propertyId": "a1b2c3d4-5678-90ab-cdef-99999EXAMPLE" + } + ] + } + ] + } + +This command produces no output. + +For more information, see `Creating dashboards (CLI) `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-gateway-capability-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-gateway-capability-configuration.rst new file mode 100644 index 000000000..b41238683 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-gateway-capability-configuration.rst @@ -0,0 +1,48 @@ +**To update a gateway capability** + +The following ``update-gateway-capability-configuration`` example configures an OPC-UA source with the following properties: + +- Trusts any certificate. +- Uses the Basic256 algorithm to secure messages. +- Uses the SignAndEncrypt mode to secure connections. +- Uses authentication credentials stored in an AWS Secrets Manager secret. + +:: + + aws iotsitewise update-gateway-capability-configuration \ + --gateway-id a1b2c3d4-5678-90ab-cdef-1a1a1EXAMPLE \ + --capability-namespace "iotsitewise:opcuacollector:1" \ + --capability-configuration file://opc-ua-capability-configuration.json + +Contents of ``opc-ua-capability-configuration.json``:: + + { + "sources": [ + { + "name": "Wind Farm #1", + "endpoint": { + "certificateTrust": { + "type": "TrustAny" + }, + "endpointUri": "opc.tcp://203.0.113.0:49320", + "securityPolicy": "BASIC256", + "messageSecurityMode": "SIGN_AND_ENCRYPT", + "identityProvider": { + "type": "Username", + "usernameSecretArn": "arn:aws:secretsmanager:us-west-2:123456789012:secret:greengrass-windfarm1-auth-1ABCDE" + }, + "nodeFilterRules": [] + }, + "measurementDataStreamPrefix": "" + } + ] + } + +Output:: + + { + "capabilityNamespace": "iotsitewise:opcuacollector:1", + "capabilitySyncStatus": "OUT_OF_SYNC" + } + +For more information, see `Configuring data sources `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-gateway.rst new file mode 100644 index 000000000..cda728c78 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-gateway.rst @@ -0,0 +1,11 @@ +**To update a gateway's name** + +The following ``update-gateway`` example updates a gateway's name. :: + + aws iotsitewise update-gateway \ + --gateway-id a1b2c3d4-5678-90ab-cdef-1a1a1EXAMPLE \ + --gateway-name ExampleCorpGateway1 + +This command produces no output. + +For more information, see `Ingesting data using a gateway `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-portal.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-portal.rst new file mode 100644 index 000000000..cf6b4ddf7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-portal.rst @@ -0,0 +1,20 @@ +**To update a portal's details** + +The following ``update-portal`` example updates a web portal for a wind farm company. :: + + aws iotsitewise update-portal \ + --portal-id a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE \ + --portal-name WindFarmPortal \ + --portal-description "A portal that contains wind farm projects for Example Corp." \ + --portal-contact-email support@example.com \ + --role-arn arn:aws:iam::123456789012:role/MySiteWiseMonitorServiceRole + +Output:: + + { + "portalStatus": { + "state": "UPDATING" + } + } + +For more information, see `Administering your portals `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-project.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-project.rst new file mode 100644 index 000000000..95c54263f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/update-project.rst @@ -0,0 +1,12 @@ +**To update a project's details** + +The following ``update-project`` example updates a wind farm project. :: + + aws iotsitewise update-project \ + --project-id a1b2c3d4-5678-90ab-cdef-eeeeeEXAMPLE \ + --project-name "Wind Farm 1" \ + --project-description "Contains asset visualizations for Wind Farm #1 for Example Corp." + +This command produces no output. + +For more information, see `Changing project details `__ in the *AWS IoT SiteWise Monitor Application Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/wait/asset-active.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/wait/asset-active.rst new file mode 100644 index 000000000..aca7475ab --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/wait/asset-active.rst @@ -0,0 +1,10 @@ +**To wait for an asset to be active** + +The following ``wait asset-active`` example pauses and resumes only after it can confirm that the specified asset is active. :: + + aws iotsitewise wait asset-active \ + --asset-id a1b2c3d4-5678-90ab-cdef-33333EXAMPLE + +This command produces no output. + +For more information, see `Asset and model states `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/wait/asset-model-active.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/wait/asset-model-active.rst new file mode 100644 index 000000000..ab1b13bc1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/wait/asset-model-active.rst @@ -0,0 +1,10 @@ +**To wait for an asset model to be active** + +The following ``wait asset-model-active`` example pauses and resumes only after it can confirm that the specified asset model is active. :: + + aws iotsitewise wait asset-model-active \ + --asset-model-id a1b2c3d4-5678-90ab-cdef-11111EXAMPLE + +This command produces no output. + +For more information, see `Asset and model states `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/wait/asset-model-not-exists.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/wait/asset-model-not-exists.rst new file mode 100644 index 000000000..8d3b8d7ad --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/wait/asset-model-not-exists.rst @@ -0,0 +1,10 @@ +**To wait for an asset model to not exist** + +The following ``wait asset-model-not-exists`` example pauses and resumes only after it can confirm that the specified asset model doesn't exist. :: + + aws iotsitewise wait asset-model-not-exists \ + --asset-model-id a1b2c3d4-5678-90ab-cdef-11111EXAMPLE + +This command produces no output. + +For more information, see `Deleting asset models `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/wait/asset-not-exists.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/wait/asset-not-exists.rst new file mode 100644 index 000000000..76a9ee206 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/wait/asset-not-exists.rst @@ -0,0 +1,10 @@ +**To wait for an asset to not exist** + +The following ``wait asset-not-exists`` example pauses and resumes only after it can confirm that the specified asset doesn't exist. :: + + aws iotsitewise wait asset-not-exists \ + --asset-id a1b2c3d4-5678-90ab-cdef-33333EXAMPLE + +This command produces no output. + +For more information, see `Deleting assets `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/wait/portal-active.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/wait/portal-active.rst new file mode 100644 index 000000000..ae3b80a4b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/wait/portal-active.rst @@ -0,0 +1,10 @@ +**To wait for a portal to be active** + +The following ``wait portal-active`` example pauses and resumes only after it can confirm that the specified portal is active. :: + + aws iotsitewise wait portal-active \ + --portal-id a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE + +This command produces no output. + +For more information, see `Administering your portals `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/wait/portal-not-exists.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/wait/portal-not-exists.rst new file mode 100644 index 000000000..9e6e452e5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotsitewise/wait/portal-not-exists.rst @@ -0,0 +1,10 @@ +**To wait for a portal to not exist** + +The following ``wait portal-not-exists`` example pauses and resumes only after it can confirm that the specified portal doesn't exist. :: + + aws iotsitewise wait portal-not-exists \ + --portal-id a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE + +This command produces no output. + +For more information, see `Administering your portals `__ in the *AWS IoT SiteWise User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/associate-entity-to-thing.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/associate-entity-to-thing.rst new file mode 100644 index 000000000..5831a34b3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/associate-entity-to-thing.rst @@ -0,0 +1,11 @@ +**To associate a thing with a device** + +The following ``associate-entity-to-thing`` example associates a thing with a device. The example uses a motion sensor device that is in the public namespace. :: + + aws iotthingsgraph associate-entity-to-thing \ + --thing-name "MotionSensorName" \ + --entity-id "urn:tdm:aws/examples:Device:HCSR501MotionSensor" + +This command produces no output. + +For more information, see `Creating and Uploading Models `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/create-flow-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/create-flow-template.rst new file mode 100644 index 000000000..6107b2908 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/create-flow-template.rst @@ -0,0 +1,18 @@ +**To create a flow** + +The following ``create-flow-template`` example creates a flow (workflow). The value of ``MyFlowDefinition`` is the GraphQL that models the flow. :: + + aws iotthingsgraph create-flow-template \ + --definition language=GRAPHQL,text="MyFlowDefinition" + +Output:: + + { + "summary": { + "createdAt": 1559248067.545, + "id": "urn:tdm:us-west-2/123456789012/default:Workflow:MyFlow", + "revisionNumber": 1 + } + } + +For more information, see `Working with Flows `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/create-system-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/create-system-instance.rst new file mode 100644 index 000000000..dceb91adf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/create-system-instance.rst @@ -0,0 +1,23 @@ +**To create a system instance** + +The following ``create-system-instance`` example creates a system instance. The value of ``MySystemInstanceDefinition`` is the GraphQL that models the system instance. :: + + aws iotthingsgraph create-system-instance -\ + -definition language=GRAPHQL,text="MySystemInstanceDefinition" \ + --target CLOUD \ + --flow-actions-role-arn myRoleARN + +Output:: + + { + "summary": { + "id": "urn:tdm:us-west-2/123456789012/default:Deployment:Room218", + "arn": "arn:aws:iotthingsgraph:us-west-2:123456789012:Deployment/default/Room218", + "status": "NOT_DEPLOYED", + "target": "CLOUD", + "createdAt": 1559249315.208, + "updatedAt": 1559249315.208 + } + } + +For more information, see `Working with Systems and Flow Configurations `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/create-system-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/create-system-template.rst new file mode 100644 index 000000000..6ffde18b1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/create-system-template.rst @@ -0,0 +1,19 @@ +**To create a system** + +The following ``create-system-template`` example creates a system. The value of MySystemDefinition is the GraphQL that models the system. :: + + aws iotthingsgraph create-system-template \ + --definition language=GRAPHQL,text="MySystemDefinition" + +Output:: + + { + "summary": { + "createdAt": 1559249776.254, + "id": "urn:tdm:us-west-2/123456789012/default:System:MySystem", + "arn": "arn:aws:iotthingsgraph:us-west-2:123456789012:System/default/MySystem", + "revisionNumber": 1 + } + } + +For more information, see `Creating Systems `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/delete-flow-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/delete-flow-template.rst new file mode 100644 index 000000000..14c295458 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/delete-flow-template.rst @@ -0,0 +1,10 @@ +**To delete a flow** + +The following ``delete-flow-template`` example deletes a flow (workflow). :: + + aws iotthingsgraph delete-flow-template \ + --id "urn:tdm:us-west-2/123456789012/default:Workflow:MyFlow" + +This command produces no output. + +For more information, see `Lifecycle Management for AWS IoT Things Graph Entities, Flows, Systems, and Deployments `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/delete-namespace.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/delete-namespace.rst new file mode 100644 index 000000000..10dbc4c0f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/delete-namespace.rst @@ -0,0 +1,14 @@ +**To delete a namespace** + +The following ``delete-namespace`` example deletes a namespace. :: + + aws iotthingsgraph delete-namespace + +Output:: + + { + "namespaceArn": "arn:aws:iotthingsgraph:us-west-2:123456789012", + "namespaceName": "us-west-2/123456789012/default" + } + +For more information, see `Lifecycle Management for AWS IoT Things Graph Entities, Flows, Systems, and Deployments `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/delete-system-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/delete-system-instance.rst new file mode 100644 index 000000000..91c75d72b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/delete-system-instance.rst @@ -0,0 +1,10 @@ +**To delete a system instance** + +The following ``delete-system-instance`` example deletes a system instance. :: + + aws iotthingsgraph delete-system-instance \ + --id "urn:tdm:us-west-2/123456789012/default:Deployment:Room218" + +This command produces no output. + +For more information, see `Lifecycle Management for AWS IoT Things Graph Entities, Flows, Systems, and Deployments `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/delete-system-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/delete-system-template.rst new file mode 100644 index 000000000..54da0749f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/delete-system-template.rst @@ -0,0 +1,10 @@ +**To delete a system** + +The following ``delete-system-template`` example deletes a system. :: + + aws iotthingsgraph delete-system-template \ + --id "urn:tdm:us-west-2/123456789012/default:System:MySystem" + +This command produces no output. + +For more information, see `Lifecycle Management for AWS IoT Things Graph Entities, Flows, Systems, and Deployments `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/deploy-system-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/deploy-system-instance.rst new file mode 100644 index 000000000..46a94969d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/deploy-system-instance.rst @@ -0,0 +1,21 @@ +**To deploy a system instance** + +The following ``delete-system-template`` example deploys a system instance. :: + + aws iotthingsgraph deploy-system-instance \ + --id "urn:tdm:us-west-2/123456789012/default:Deployment:Room218" + +Output:: + + { + "summary": { + "arn": "arn:aws:iotthingsgraph:us-west-2:123456789012:Deployment:Room218", + "createdAt": 1559249776.254, + "id": "urn:tdm:us-west-2/123456789012/default:Deployment:Room218", + "status": "DEPLOYED_IN_TARGET", + "target": "CLOUD", + "updatedAt": 1559249776.254 + } + } + +For more information, see `Working with Systems and Flow Configurations `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/deprecate-flow-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/deprecate-flow-template.rst new file mode 100644 index 000000000..4260768f6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/deprecate-flow-template.rst @@ -0,0 +1,10 @@ +**To deprecate a flow** + +The following ``deprecate-flow-template`` example deprecates a flow (workflow). :: + + aws iotthingsgraph deprecate-flow-template \ + --id "urn:tdm:us-west-2/123456789012/default:Workflow:MyFlow" + +This command produces no output. + +For more information, see `Lifecycle Management for AWS IoT Things Graph Entities, Flows, Systems, and Deployments `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/deprecate-system-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/deprecate-system-template.rst new file mode 100644 index 000000000..d2ca79b6a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/deprecate-system-template.rst @@ -0,0 +1,10 @@ +**To deprecate a system** + +The following ``deprecate-system-template`` example deprecates a system. :: + + aws iotthingsgraph deprecate-system-template \ + --id "urn:tdm:us-west-2/123456789012/default:System:MySystem" + +This command produces no output. + +For more information, see `Lifecycle Management for AWS IoT Things Graph Entities, Flows, Systems, and Deployments `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/describe-namespace.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/describe-namespace.rst new file mode 100644 index 000000000..806eab56f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/describe-namespace.rst @@ -0,0 +1,16 @@ +**To get a description of your namespace** + +The following ``describe-namespace`` example gets a description of your namespace. :: + + aws iotthingsgraph describe-namespace + +Output:: + + { + "namespaceName": "us-west-2/123456789012/default", + "trackingNamespaceName": "aws", + "trackingNamespaceVersion": 1, + "namespaceVersion": 5 + } + +For more information, see `Namespaces `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/dissociate-entity-from-thing.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/dissociate-entity-from-thing.rst new file mode 100644 index 000000000..46bdeff73 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/dissociate-entity-from-thing.rst @@ -0,0 +1,11 @@ +**To dissociate a thing from a device** + +The following ``dissociate-entity-from-thing`` example dissociates a thing from a device. :: + + aws iotthingsgraph dissociate-entity-from-thing \ + --thing-name "MotionSensorName" \ + --entity-type "DEVICE" + +This command produces no output. + +For more information, see `Creating and Uploading Models `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-entities.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-entities.rst new file mode 100644 index 000000000..6361006c8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-entities.rst @@ -0,0 +1,24 @@ +**To get definitions for entities** + +The following ``get-entities`` example gets a definition for a device model. :: + + aws iotthingsgraph get-entities \ + --ids "urn:tdm:aws/examples:DeviceModel:MotionSensor" + +Output:: + + { + "descriptions": [ + { + "id": "urn:tdm:aws/examples:DeviceModel:MotionSensor", + "type": "DEVICE_MODEL", + "createdAt": 1559256190.599, + "definition": { + "language": "GRAPHQL", + "text": "##\n# Specification of motion sensor devices interface.\n##\ntype MotionSensor @deviceModel(id: \"urn:tdm:aws/examples:deviceModel:MotionSensor\",\n capability: \"urn:tdm:aws/examples:capability:MotionSensorCapability\") {ignore:void}" + } + } + ] + } + +For more information, see `Creating and Uploading Models `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-flow-template-revisions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-flow-template-revisions.rst new file mode 100644 index 000000000..df44b612a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-flow-template-revisions.rst @@ -0,0 +1,20 @@ +**To get revision information about a flow** + +The following ``get-flow-template-revisions`` example gets revision information about a flow (workflow). :: + + aws iotthingsgraph get-flow-template-revisions \ + --id urn:tdm:us-west-2/123456789012/default:Workflow:MyFlow + +Output:: + + { + "summaries": [ + { + "id": "urn:tdm:us-west-2/123456789012/default:Workflow:MyFlow", + "revisionNumber": 1, + "createdAt": 1559247540.292 + } + ] + } + +For more information, see `Working with Flows `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-flow-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-flow-template.rst new file mode 100644 index 000000000..770947d6b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-flow-template.rst @@ -0,0 +1,25 @@ +**To get a flow definition** + +The following ``get-flow-template`` example gets a definition for a flow (workflow). :: + + aws iotthingsgraph get-flow-template \ + --id "urn:tdm:us-west-2/123456789012/default:Workflow:MyFlow" + +Output:: + + { + "description": { + "summary": { + "id": "urn:tdm:us-west-2/123456789012/default:Workflow:MyFlow", + "revisionNumber": 1, + "createdAt": 1559247540.292 + }, + "definition": { + "language": "GRAPHQL", + "text": "{\nquery MyFlow($camera: string!, $screen: string!) @workflowType(id: \"urn:tdm:us-west-2/123456789012/default:Workflow:MyFlow\") @annotation(type: \"tgc:FlowEvent\", id: \"sledged790c1b2bcd949e09da0c9bfc077f79d\", x: 1586, y: 653) @triggers(definition: \"{MotionSensor(description: \\\"\\\") @position(x: 1045, y: 635.6666564941406) {\\n condition(expr: \\\"devices[name == \\\\\\\"motionSensor\\\\\\\"].events[name == \\\\\\\"StateChanged\\\\\\\"].lastEvent\\\")\\n action(expr: \\\"\\\")\\n}}\") {\n variables {\n cameraResult @property(id: \"urn:tdm:aws/examples:property:CameraStateProperty\")\n }\n steps {\n step(name: \"Camera\", outEvent: [\"sledged790c1b2bcd949e09da0c9bfc077f79d\"]) @position(x: 1377, y: 638.6666564941406) {\n DeviceActivity(deviceModel: \"urn:tdm:aws/examples:deviceModel:Camera\", out: \"cameraResult\", deviceId: \"${camera}\") {\n capture\n }\n }\n step(name: \"Screen\", inEvent: [\"sledged790c1b2bcd949e09da0c9bfc077f79d\"]) @position(x: 1675.6666870117188, y: 637.9999847412109) {\n DeviceActivity(deviceModel: \"urn:tdm:aws/examples:deviceModel:Screen\", deviceId: \"${screen}\") {\n display(imageUrl: \"${cameraResult.lastClickedImage}\")\n }\n }\n }\n}\n}" + }, + "validatedNamespaceVersion": 5 + } + } + +For more information, see `Working with Flows `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-namespace-deletion-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-namespace-deletion-status.rst new file mode 100644 index 000000000..c584f39d1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-namespace-deletion-status.rst @@ -0,0 +1,15 @@ +**To get the status of the namespace deletion task** + +The following ``get-namespace-deletion-status`` example gets the status of the namespace deletion task. :: + + aws iotthingsgraph get-namespace-deletion-status + +Output:: + + { + "namespaceArn": "arn:aws:iotthingsgraph:us-west-2:123456789012", + "namespaceName": "us-west-2/123456789012/default" + "status": "SUCCEEDED " + } + +For more information, see `Namespaces `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-system-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-system-instance.rst new file mode 100644 index 000000000..254f29cec --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-system-instance.rst @@ -0,0 +1,32 @@ +**To get a system instance** + +The following ``get-system-instance`` example gets a definition for a system instance. :: + + aws iotthingsgraph get-system-instance \ + --id "urn:tdm:us-west-2/123456789012/default:Deployment:Room218" + +Output:: + + { + "description": { + "summary": { + "id": "urn:tdm:us-west-2/123456789012/default:Deployment:Room218", + "arn": "arn:aws:iotthingsgraph:us-west-2:123456789012:Deployment/default/Room218", + "status": "NOT_DEPLOYED", + "target": "CLOUD", + "createdAt": 1559249315.208, + "updatedAt": 1559249315.208 + }, + "definition": { + "language": "GRAPHQL", + "text": "{\r\nquery Room218 @deployment(id: \"urn:tdm:us-west-2/123456789012/default:Deployment:Room218\", systemId: \"urn:tdm:us-west-2/123456789012/default:System:SecurityFlow\") {\r\n motionSensor(deviceId: \"MotionSensorName\")\r\n screen(deviceId: \"ScreenName\")\r\n camera(deviceId: \"CameraName\") \r\n triggers {MotionEventTrigger(description: \"a trigger\") { \r\n condition(expr: \"devices[name == 'motionSensor'].events[name == 'StateChanged'].lastEvent\") \r\n action(expr: \"ThingsGraph.startFlow('SecurityFlow', bindings[name == 'camera'].deviceId, bindings[name == 'screen'].deviceId)\")\r\n }\r\n }\r\n }\r\n }" + }, + "metricsConfiguration": { + "cloudMetricEnabled": false + }, + "validatedNamespaceVersion": 5, + "flowActionsRoleArn": "arn:aws:iam::123456789012:role/ThingsGraphRole" + } + } + +For more information, see `Working with Systems and Flow Configurations `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-system-template-revisions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-system-template-revisions.rst new file mode 100644 index 000000000..a23b4f94a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-system-template-revisions.rst @@ -0,0 +1,21 @@ +**To get revision information about a system** + +The following ``get-system-template-revisions`` example gets revision information about a system. :: + + aws iotthingsgraph get-system-template-revisions \ + --id "urn:tdm:us-west-2/123456789012/default:System:MySystem" + +Output:: + + { + "summaries": [ + { + "id": "urn:tdm:us-west-2/123456789012/default:System:MySystem", + "arn": "arn:aws:iotthingsgraph:us-west-2:123456789012:System/default/MySystem", + "revisionNumber": 1, + "createdAt": 1559247540.656 + } + ] + } + +For more information, see `Working with Systems and Flow Configurations `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-system-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-system-template.rst new file mode 100644 index 000000000..a9ebe6ddd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-system-template.rst @@ -0,0 +1,26 @@ +**To get a system** + +The following ``get-system-template`` example gets a definition for a system. :: + + aws iotthingsgraph get-system-template \ + --id "urn:tdm:us-west-2/123456789012/default:System:MySystem" + +Output:: + + { + "description": { + "summary": { + "id": "urn:tdm:us-west-2/123456789012/default:System:MySystem", + "arn": "arn:aws:iotthingsgraph:us-west-2:123456789012:System/default/MyFlow", + "revisionNumber": 1, + "createdAt": 1559247540.656 + }, + "definition": { + "language": "GRAPHQL", + "text": "{\ntype MySystem @systemType(id: \"urn:tdm:us-west-2/123456789012/default:System:MySystem\", description: \"\") {\n camera: Camera @thing(id: \"urn:tdm:aws/examples:deviceModel:Camera\")\n screen: Screen @thing(id: \"urn:tdm:aws/examples:deviceModel:Screen\")\n motionSensor: MotionSensor @thing(id: \"urn:tdm:aws/examples:deviceModel:MotionSensor\")\n MyFlow: MyFlow @workflow(id: \"urn:tdm:us-west-2/123456789012/default:Workflow:MyFlow\")\n}\n}" + }, + "validatedNamespaceVersion": 5 + } + } + +For more information, see `Working with Systems and Flow Configurations `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-upload-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-upload-status.rst new file mode 100644 index 000000000..b7a7fd4c7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/get-upload-status.rst @@ -0,0 +1,17 @@ +**To get the status of your entity upload** + +The following ``get-upload-status`` example gets the status of your entity upload operation. The value of ``MyUploadId`` is the ID value returned by the ``upload-entity-definitions`` operation. :: + + aws iotthingsgraph get-upload-status \ + --upload-id "MyUploadId" + +Output:: + + { + "namespaceName": "us-west-2/123456789012/default", + "namespaceVersion": 5, + "uploadId": "f6294f1e-b109-4bbe-9073-f451a2dda2da", + "uploadStatus": "SUCCEEDED" + } + +For more information, see `Modeling Entities `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/list-flow-execution-messages.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/list-flow-execution-messages.rst new file mode 100644 index 000000000..44b291427 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/list-flow-execution-messages.rst @@ -0,0 +1,21 @@ +**To get information about events in a flow execution** + +The following ``list-flow-execution-messages`` example gets information about events in a flow execution. :: + + aws iotthingsgraph list-flow-execution-messages \ + --flow-execution-id "urn:tdm:us-west-2/123456789012/default:Workflow:SecurityFlow_2019-05-11T19:39:55.317Z_MotionSensor_69b151ad-a611-42f5-ac21-fe537f9868ad" + +Output:: + + { + "messages": [ + { + "eventType": "EXECUTION_STARTED", + "messageId": "f6294f1e-b109-4bbe-9073-f451a2dda2da", + "payload": "Flow execution started", + "timestamp": 1559247540.656 + } + ] + } + +For more information, see `Working with Flows `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/list-tags-for-resource.rst new file mode 100644 index 000000000..02e454d30 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/list-tags-for-resource.rst @@ -0,0 +1,19 @@ +**To list all tags for a resource** + +The following ``list-tags-for-resource`` example list all tags for an AWS IoT Things Graph resource. :: + + aws iotthingsgraph list-tags-for-resource \ + --resource-arn "arn:aws:iotthingsgraph:us-west-2:123456789012:Deployment/default/Room218" + +Output:: + + { + "tags": [ + { + "key": "Type", + "value": "Residential" + } + ] + } + +For more information, see `Tagging Your AWS IoT Things Graph Resources `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/search-entities.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/search-entities.rst new file mode 100644 index 000000000..8c5a674d3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/search-entities.rst @@ -0,0 +1,40 @@ +**To search for entities** + +The following ``search-entities`` example searches for all entities of type ``EVENT``. :: + + aws iotthingsgraph search-entities \ + --entity-types "EVENT" + +Output:: + + { + "descriptions": [ + { + "id": "urn:tdm:aws/examples:Event:MotionSensorEvent", + "type": "EVENT", + "definition": { + "language": "GRAPHQL", + "text": "##\n# Description of events emitted by motion sensor.\n##\ntype MotionSensorEvent @eventType(id: \"urn:tdm:aws/examples:event:MotionSensorEvent\",\n payload: \"urn:tdm:aws/examples:property:MotionSensorStateProperty\") {ignore:void}" + } + }, + { + "id": "urn:tdm:us-west-2/123456789012/default:Event:CameraClickedEventV2", + "type": "EVENT", + "definition": { + "language": "GRAPHQL", + "text": "type CameraClickedEventV2 @eventType(id: \"urn:tdm:us-west-2/123456789012/default:event:CameraClickedEventV2\",\r\npayload: \"urn:tdm:aws:Property:Boolean\"){ignore:void}" + } + }, + { + "id": "urn:tdm:us-west-2/123456789012/default:Event:MotionSensorEventV2", + "type": "EVENT", + "definition": { + "language": "GRAPHQL", + "text": "# Event emitted by the motion sensor.\r\ntype MotionSensorEventV2 @eventType(id: \"urn:tdm:us-west-2/123456789012/default:event:MotionSensorEventV2\",\r\npayload: \"urn:tdm:us-west-2/123456789012/default:property:MotionSensorStateProperty2\") {ignore:void}" + } + } + ], + "nextToken": "urn:tdm:us-west-2/123456789012/default:Event:MotionSensorEventV2" + } + +For more information, see `AWS IoT Things Graph Data Model Reference `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/search-flow-executions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/search-flow-executions.rst new file mode 100644 index 000000000..9057dd568 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/search-flow-executions.rst @@ -0,0 +1,23 @@ +**To search for flow executions** + +The following ``search-flow-executions`` example search for all executions of a flow in a specified system instance. :: + + aws iotthingsgraph search-flow-executions \ + --system-instance-id "urn:tdm:us-west-2/123456789012/default:Deployment:Room218" + +Output:: + + { + "summaries": [ + { + "createdAt": 1559247540.656, + "flowExecutionId": "f6294f1e-b109-4bbe-9073-f451a2dda2da", + "flowTemplateId": "urn:tdm:us-west-2/123456789012/default:Workflow:MyFlow", + "status": "RUNNING ", + "systemInstanceId": "urn:tdm:us-west-2/123456789012/default:System:MySystem", + "updatedAt": 1559247540.656 + } + ] + } + +For more information, see `Working with Systems and Flow Configurations `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/search-flow-templates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/search-flow-templates.rst new file mode 100644 index 000000000..3e8aec05b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/search-flow-templates.rst @@ -0,0 +1,25 @@ +**To search for flows (or workflows)** + +The following ``search-flow-templates`` example searches for all flows (workflows) that contain the Camera device model. :: + + aws iotthingsgraph search-flow-templates \ + --filters name="DEVICE_MODEL_ID",value="urn:tdm:aws/examples:DeviceModel:Camera" + +Output:: + + { + "summaries": [ + { + "id": "urn:tdm:us-west-2/123456789012/default:Workflow:MyFlow", + "revisionNumber": 1, + "createdAt": 1559247540.292 + }, + { + "id": "urn:tdm:us-west-2/123456789012/default:Workflow:SecurityFlow", + "revisionNumber": 3, + "createdAt": 1548283099.27 + } + ] + } + +For more information, see `Working with Flows `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/search-system-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/search-system-instances.rst new file mode 100644 index 000000000..50b2fb96c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/search-system-instances.rst @@ -0,0 +1,63 @@ +**To search for system instances** + +The following ``search-system-instances`` example searches for all system instances that contain the specified system. :: + + aws iotthingsgraph search-system-instances \ + --filters name="SYSTEM_TEMPLATE_ID",value="urn:tdm:us-west-2/123456789012/default:System:SecurityFlow" + +Output:: + + { + "summaries": [ + { + "id": "urn:tdm:us-west-2/123456789012/default:Deployment:DeploymentForSample", + "arn": "arn:aws:iotthingsgraph:us-west-2:123456789012:Deployment/default/DeploymentForSample", + "status": "NOT_DEPLOYED", + "target": "GREENGRASS", + "greengrassGroupName": "ThingsGraphGrnGr", + "createdAt": 1555716314.707, + "updatedAt": 1555716314.707 + }, + { + "id": "urn:tdm:us-west-2/123456789012/default:Deployment:MockDeployment", + "arn": "arn:aws:iotthingsgraph:us-west-2:123456789012:Deployment/default/MockDeployment", + "status": "DELETED_IN_TARGET", + "target": "GREENGRASS", + "greengrassGroupName": "ThingsGraphGrnGr", + "createdAt": 1549416462.049, + "updatedAt": 1549416722.361, + "greengrassGroupId": "01d04b07-2a51-467f-9d03-0c90b3cdcaaf", + "greengrassGroupVersionId": "7365aed7-2d3e-4d13-aad8-75443d45eb05" + }, + { + "id": "urn:tdm:us-west-2/123456789012/default:Deployment:MockDeployment2", + "arn": "arn:aws:iotthingsgraph:us-west-2:123456789012:Deployment/default/MockDeployment2", + "status": "DEPLOYED_IN_TARGET", + "target": "GREENGRASS", + "greengrassGroupName": "ThingsGraphGrnGr", + "createdAt": 1549572385.774, + "updatedAt": 1549572418.408, + "greengrassGroupId": "01d04b07-2a51-467f-9d03-0c90b3cdcaaf", + "greengrassGroupVersionId": "bfa70ab3-2bf7-409c-a4d4-bc8328ae5b86" + }, + { + "id": "urn:tdm:us-west-2/123456789012/default:Deployment:Room215", + "arn": "arn:aws:iotthingsgraph:us-west-2:123456789012:Deployment/default/Room215", + "status": "NOT_DEPLOYED", + "target": "GREENGRASS", + "greengrassGroupName": "ThingsGraphGG", + "createdAt": 1547056918.413, + "updatedAt": 1547056918.413 + }, + { + "id": "urn:tdm:us-west-2/123456789012/default:Deployment:Room218", + "arn": "arn:aws:iotthingsgraph:us-west-2:123456789012:Deployment/default/Room218", + "status": "NOT_DEPLOYED", + "target": "CLOUD", + "createdAt": 1559249315.208, + "updatedAt": 1559249315.208 + } + ] + } + +For more information, see `Working with Systems and Flow Configurations `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/search-system-templates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/search-system-templates.rst new file mode 100644 index 000000000..5c570f526 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/search-system-templates.rst @@ -0,0 +1,21 @@ +**To search for system** + +The following ``search-system-templates`` example searches for all systems that contain the specified flow. :: + + aws iotthingsgraph search-system-templates \ + --filters name="FLOW_TEMPLATE_ID",value="urn:tdm:us-west-2/123456789012/default:Workflow:SecurityFlow" + +Output:: + + { + "summaries": [ + { + "id": "urn:tdm:us-west-2/123456789012/default:System:SecurityFlow", + "arn": "arn:aws:iotthingsgraph:us-west-2:123456789012:System/default/SecurityFlow", + "revisionNumber": 1, + "createdAt": 1548283099.433 + } + ] + } + +For more information, see `Working with Flows `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/search-things.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/search-things.rst new file mode 100644 index 000000000..c403f6d0a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/search-things.rst @@ -0,0 +1,23 @@ +**To search for things associated with devices and device models** + +The following ``search-things`` example searches for all things that are associated with the HCSR501MotionSensor device. :: + + aws iotthingsgraph search-things \ + --entity-id "urn:tdm:aws/examples:Device:HCSR501MotionSensor" + +Output:: + + { + "things": [ + { + "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MotionSensor1", + "thingName": "MotionSensor1" + }, + { + "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/TG_MS", + "thingName": "TG_MS" + } + ] + } + +For more information, see `Creating and Uploading Models `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/tag-resource.rst new file mode 100644 index 000000000..68824e0e5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/tag-resource.rst @@ -0,0 +1,11 @@ +**To create a tag for a resource** + +The following ``tag-resource`` example creates a tag for the specified resource. :: + + aws iotthingsgraph tag-resource \ + --resource-arn "arn:aws:iotthingsgraph:us-west-2:123456789012:Deployment/default/Room218" \ + --tags key="Type",value="Residential" + +This command produces no output. + +For more information, see `Tagging Your AWS IoT Things Graph Resources `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/undeploy-system-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/undeploy-system-instance.rst new file mode 100644 index 000000000..7413a37e7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/undeploy-system-instance.rst @@ -0,0 +1,24 @@ +**To undeploy a system instance from its target** + +The following ``undeploy-system-instance`` example removes a system instance from its target. :: + + aws iotthingsgraph undeploy-system-instance \ + --id "urn:tdm:us-west-2/123456789012/default:Deployment:Room215" + +Output:: + + { + "summary": { + "id": "urn:tdm:us-west-2/123456789012/default:Deployment:Room215", + "arn": "arn:aws:iotthingsgraph:us-west-2:123456789012:Deployment/default/Room215", + "status": "PENDING_DELETE", + "target": "GREENGRASS", + "greengrassGroupName": "ThingsGraphGrnGr", + "createdAt": 1553189694.255, + "updatedAt": 1559344549.601, + "greengrassGroupId": "01d04b07-2a51-467f-9d03-0c90b3cdcaaf", + "greengrassGroupVersionId": "731b371d-d644-4b67-ac64-3934e99b75d7" + } + } + +For more information, see `Lifecycle Management for AWS IoT Things Graph Entities, Flows, Systems, and Deployments `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/untag-resource.rst new file mode 100644 index 000000000..028eca1e6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove a tag for a resource** + +The following ``untag-resource`` example removes a tag for the specified resource. :: + + aws iotthingsgraph untag-resource \ + --resource-arn "arn:aws:iotthingsgraph:us-west-2:123456789012:Deployment/default/Room218" \ + --tag-keys "Type" + +This command produces no output. + +For more information, see `Tagging Your AWS IoT Things Graph Resources `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/update-flow-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/update-flow-template.rst new file mode 100644 index 000000000..3cdec5146 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/update-flow-template.rst @@ -0,0 +1,19 @@ +**To update a flow** + +The following ``update-flow-template`` example updates a flow (workflow). The value of ``MyFlowDefinition`` is the GraphQL that models the flow. :: + + aws iotthingsgraph update-flow-template \ + --id "urn:tdm:us-west-2/123456789012/default:Workflow:MyFlow" \ + --definition language=GRAPHQL,text="MyFlowDefinition" + +Output:: + + { + "summary": { + "createdAt": 1559248067.545, + "id": "urn:tdm:us-west-2/123456789012/default:Workflow:MyFlow", + "revisionNumber": 2 + } + } + +For more information, see `Working with Flows `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/update-system-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/update-system-template.rst new file mode 100644 index 000000000..7a6fcbdf4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/update-system-template.rst @@ -0,0 +1,20 @@ +**To update a system** + +The following ``update-system-template`` example updates a system. The value of ``MySystemDefinition`` is the GraphQL that models the system. :: + + aws iotthingsgraph update-system-template \ + --id "urn:tdm:us-west-2/123456789012/default:System:MySystem" \ + --definition language=GRAPHQL,text="MySystemDefinition" + +Output:: + + { + "summary": { + "createdAt": 1559249776.254, + "id": "urn:tdm:us-west-2/123456789012/default:System:MySystem", + "arn": "arn:aws:iotthingsgraph:us-west-2:123456789012:System/default/MySystem", + "revisionNumber": 2 + } + } + +For more information, see `Creating Systems `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/upload-entity-definitions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/upload-entity-definitions.rst new file mode 100644 index 000000000..e99f5de7d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotthingsgraph/upload-entity-definitions.rst @@ -0,0 +1,14 @@ +**To upload entity definitions** + +The following ``upload-entity-definitions`` example uploads entity definitions to your namespace. The value of ``MyEntityDefinitions`` is the GraphQL that models the entities. :: + + aws iotthingsgraph upload-entity-definitions \ + --document language=GRAPHQL,text="MyEntityDefinitions" + +Output:: + + { + "uploadId": "f6294f1e-b109-4bbe-9073-f451a2dda2da" + } + +For more information, see `Modeling Entities `__ in the *AWS IoT Things Graph User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/associate-aws-account-with-partner-account.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/associate-aws-account-with-partner-account.rst new file mode 100644 index 000000000..78abe5825 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/associate-aws-account-with-partner-account.rst @@ -0,0 +1,17 @@ +**To associate a partner account with your AWS account** + +The following ``associate-aws-account-with-partner-account`` example associates the following Sidewalk account credentials with your AWS account. :: + + aws iotwireless associate-aws-account-with-partner-account \ + --sidewalk AmazonId="12345678901234",AppServerPrivateKey="a123b45c6d78e9f012a34cd5e6a7890b12c3d45e6f78a1b234c56d7e890a1234" + +Output:: + + { + "Sidewalk": { + "AmazonId": "12345678901234", + "AppServerPrivateKey": "a123b45c6d78e9f012a34cd5e6a7890b12c3d45e6f78a1b234c56d7e890a1234" + } + } + +For more information, see `Amazon Sidewalk Integration for AWS IoT Core `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/associate-wireless-device-with-thing.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/associate-wireless-device-with-thing.rst new file mode 100644 index 000000000..f20c37b57 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/associate-wireless-device-with-thing.rst @@ -0,0 +1,11 @@ +**To associate a thing to a wireless device** + +The following ``associate-wireless-device-with-thing`` example associates a thing to your wireless device that has the specified ID. :: + + aws iotwireless associate-wireless-device-with-thing \ + --id "12345678-a1b2-3c45-67d8-e90fa1b2c34d" \ + --thing-arn "arn:aws:iot:us-east-1:123456789012:thing/MyIoTWirelessThing" + +This command produces no output. + +For more information, see `Add your gateways and wireless devices to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/associate-wireless-gateway-with-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/associate-wireless-gateway-with-certificate.rst new file mode 100644 index 000000000..e8001de67 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/associate-wireless-gateway-with-certificate.rst @@ -0,0 +1,15 @@ +**To associate the certificate with the wireless gateway** + +The following ``associate-wireless-gateway-with-certificate`` associates a wireless gateway with a certificate. :: + + aws iotwireless associate-wireless-gateway-with-certificate \ + --id "12345678-a1b2-3c45-67d8-e90fa1b2c34d" \ + --iot-certificate-id "a123b45c6d78e9f012a34cd5e6a7890b12c3d45e6f78a1b234c56d7e890a1234" + +Output:: + + { + "IotCertificateId": "a123b45c6d78e9f012a34cd5e6a7890b12c3d45e6f78a1b234c56d7e890a1234" + } + +For more information, see `Add your gateways and wireless devices to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/associate-wireless-gateway-with-thing.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/associate-wireless-gateway-with-thing.rst new file mode 100644 index 000000000..cc79c37c7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/associate-wireless-gateway-with-thing.rst @@ -0,0 +1,11 @@ +**To associate a thing to a wireless gateway** + +The following ``associate-wireless-gateway-with-thing`` example associates a thing to a wireless gateway. :: + + aws iotwireless associate-wireless-gateway-with-thing \ + --id "12345678-a1b2-3c45-67d8-e90fa1b2c34d" \ + --thing-arn "arn:aws:iot:us-east-1:123456789012:thing/MyIoTWirelessThing" + +This command produces no output. + +For more information, see `Add your gateways and wireless devices to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/create-destination.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/create-destination.rst new file mode 100644 index 000000000..b1148af63 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/create-destination.rst @@ -0,0 +1,18 @@ +**To create an IoT wireless destination** + +The following ``create-destination`` example creates a destination for mapping a device message to an AWS IoT rule. Before you run this command, you must have created an IAM role that gives AWS IoT Core for LoRaWAN the permissions necessary to send data to the AWS IoT rule. :: + + aws iotwireless create-destination \ + --name IoTWirelessDestination \ + --expression-type RuleName \ + --expression IoTWirelessRule \ + --role-arn arn:aws:iam::123456789012:role/IoTWirelessDestinationRole + +Output:: + + { + "Arn": "arn:aws:iotwireless:us-east-1:123456789012:Destination/IoTWirelessDestination", + "Name": "IoTWirelessDestination" + } + +For more information, see `Add destinations to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/create-device-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/create-device-profile.rst new file mode 100644 index 000000000..b4bbcfec1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/create-device-profile.rst @@ -0,0 +1,14 @@ +**To create a new device profile** + +The following ``create-device-profile`` example creates a new IoT wireless device profile. :: + + aws iotwireless create-device-profile + +Output:: + + { + "Arn": "arn:aws:iotwireless:us-east-1:123456789012:DeviceProfile/12345678-a1b2-3c45-67d8-e90fa1b2c34d", + "Id": "12345678-a1b2-3c45-67d8-e90fa1b2c34d" + } + +For more information, see `Add profiles to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/create-service-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/create-service-profile.rst new file mode 100644 index 000000000..8d532e433 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/create-service-profile.rst @@ -0,0 +1,14 @@ +**To create a new service profile** + +The following ``create-service-profile`` example creates a new IoT wireless service profile. :: + + aws iotwireless create-service-profile + +Output:: + + { + "Arn": "arn:aws:iotwireless:us-east-1:123456789012:ServiceProfile/12345678-a1b2-3c45-67d8-e90fa1b2c34d", + "Id": "12345678-a1b2-3c45-67d8-e90fa1b2c34d" + } + +For more information, see `Add profiles to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/create-wireless-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/create-wireless-device.rst new file mode 100644 index 000000000..f41cfa1fb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/create-wireless-device.rst @@ -0,0 +1,34 @@ +**To create an IoT wireless device** + +The following ``create-wireless-device`` example creates a wireless device resource of the type LoRaWAN. :: + + aws iotwireless create-wireless-device \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "Description": "My LoRaWAN wireless device" + "DestinationName": "IoTWirelessDestination" + "LoRaWAN": { + "DeviceProfileId": "ab0c23d3-b001-45ef-6a01-2bc3de4f5333", + "ServiceProfileId": "fe98dc76-cd12-001e-2d34-5550432da100", + "OtaaV1_1": { + "AppKey": "3f4ca100e2fc675ea123f4eb12c4a012", + "JoinEui": "b4c231a359bc2e3d", + "NwkKey": "01c3f004a2d6efffe32c4eda14bcd2b4" + }, + "DevEui": "ac12efc654d23fc2" + }, + "Name": "SampleIoTWirelessThing" + "Type": LoRaWAN + } + +Output:: + + { + "Arn": "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/1ffd32c8-8130-4194-96df-622f072a315f", + "Id": "1ffd32c8-8130-4194-96df-622f072a315f" + } + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/create-wireless-gateway-task-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/create-wireless-gateway-task-definition.rst new file mode 100644 index 000000000..0d7369ebe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/create-wireless-gateway-task-definition.rst @@ -0,0 +1,37 @@ +**To create a wireless gateway task definition** + +The following ``create-wireless-gateway-task-definition`` automatically creates tasks using this task definition for all gateways with the specified current version. :: + + aws iotwireless create-wireless-gateway-task-definition \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "AutoCreateTasks": true, + "Name": "TestAutoUpdate", + "Update":{ + "UpdateDataSource" : "s3://cupsalphagafirmwarebin/station", + "UpdateDataRole" : "arn:aws:iam::001234567890:role/SDK_Test_Role", + "LoRaWAN" :{ + "CurrentVersion" :{ + "PackageVersion" : "1.0.0", + "Station" : "2.0.5", + "Model" : "linux" + }, + "UpdateVersion" :{ + "PackageVersion" : "1.0.1", + "Station" : "2.0.5", + "Model" : "minihub" + } + } + } + } + +Output:: + + { + "Id": "b7d3baad-25c7-35e7-a4e1-1683a0d61da9" + } + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/create-wireless-gateway-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/create-wireless-gateway-task.rst new file mode 100644 index 000000000..93af7c82d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/create-wireless-gateway-task.rst @@ -0,0 +1,16 @@ +**To create the task for a wireless gateway** + +The following ``create-wireless-gateway-task`` example creates a task for a wireless gateway. :: + + aws iotwireless create-wireless-gateway-task \ + --id "12345678-a1b2-3c45-67d8-e90fa1b2c34d" \ + --wireless-gateway-task-definition-id "aa000102-0304-b0cd-ef56-a1b23cde456a" + +Output:: + + { + "WirelessGatewayTaskDefinitionId": "aa204003-0604-30fb-ac82-a4f95aaf450a", + "Status": "Success" + } + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/create-wireless-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/create-wireless-gateway.rst new file mode 100644 index 000000000..b398ee95f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/create-wireless-gateway.rst @@ -0,0 +1,18 @@ +**To create a wireless gateway** + +The following ``create-wireless-gateway`` example creates a wireless LoRaWAN device gateway. :: + + aws iotwireless create-wireless-gateway \ + --lorawan GatewayEui="a1b2c3d4567890ab",RfRegion="US915" \ + --name "myFirstLoRaWANGateway" \ + --description "Using my first LoRaWAN gateway" + +Output:: + + { + "Arn": "arn:aws:iotwireless:us-east-1:123456789012:WirelessGateway/12345678-a1b2-3c45-67d8-e90fa1b2c34d", + "Id": "12345678-a1b2-3c45-67d8-e90fa1b2c34d" + } + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/delete-destination.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/delete-destination.rst new file mode 100644 index 000000000..90ff36792 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/delete-destination.rst @@ -0,0 +1,10 @@ +**To delete an IoT wireless destination** + +The following ``delete-destination`` example deletes the wireless destination resource with the name ``IoTWirelessDestination`` that you created. :: + + aws iotwireless delete-destination \ + --name "IoTWirelessDestination" + +This command produces no output. + +For more information, see `Add destinations to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/delete-device-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/delete-device-profile.rst new file mode 100644 index 000000000..008ab7a74 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/delete-device-profile.rst @@ -0,0 +1,10 @@ +**To delete a device profile** + +The following ``delete-device-profile`` example deletes a device profile with the specified ID that you created. :: + + aws iotwireless delete-device-profile \ + --id "12345678-a1b2-3c45-67d8-e90fa1b2c34d" + +This command produces no output. + +For more information, see `Add profiles to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/delete-service-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/delete-service-profile.rst new file mode 100644 index 000000000..ec1d72141 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/delete-service-profile.rst @@ -0,0 +1,10 @@ +**To delete a service profile** + +The following ``delete-service-profile`` example deletes a service profile with the specified ID that you created. :: + + aws iotwireless delete-service-profile \ + --id "12345678-a1b2-3c45-67d8-e90fa1b2c34d" + +This command produces no output. + +For more information, see `Add profiles to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/delete-wireless-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/delete-wireless-device.rst new file mode 100644 index 000000000..e054ccc6b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/delete-wireless-device.rst @@ -0,0 +1,10 @@ +**To delete a wireless device** + +The following ``delete-wireless-device`` example deletes a wireless device that has the specified ID. :: + + aws iotwireless delete-wireless-device \ + --id "12345678-a1b2-3c45-67d8-e90fa1b2c34d" + +This command produces no output. + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/delete-wireless-gateway-task-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/delete-wireless-gateway-task-definition.rst new file mode 100644 index 000000000..40de5748c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/delete-wireless-gateway-task-definition.rst @@ -0,0 +1,10 @@ +**To delete a wireless gateway task definition** + +The following ``delete-wireless-gateway-task-definition`` example deletes the wireless gateway task definition that you created with the following ID. :: + + aws iotwireless delete-wireless-gateway-task-definition \ + --id "12345678-a1b2-3c45-67d8-e90fa1b2c34d" + +This command produces no output. + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/delete-wireless-gateway-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/delete-wireless-gateway-task.rst new file mode 100644 index 000000000..bc9366190 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/delete-wireless-gateway-task.rst @@ -0,0 +1,10 @@ +**To delete a wireless gateway task** + +The following ``delete-wireless-gateway-task`` example deletes the wireless gateway task that has the specified ID. :: + + aws iotwireless delete-wireless-gateway-task \ + --id "12345678-a1b2-3c45-67d8-e90fa1b2c34d" + +This command produces no output. + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/delete-wireless-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/delete-wireless-gateway.rst new file mode 100644 index 000000000..3065bdfe1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/delete-wireless-gateway.rst @@ -0,0 +1,10 @@ +**To delete a wireless gateway** + +The following ``delete-wireless-gateway`` example deletes a wireless gateway that has the specified ID. :: + + aws iotwireless delete-wireless-gateway \ + --id "12345678-a1b2-3c45-67d8-e90fa1b2c34d" + +This command produces no output. + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/disassociate-aws-account-from-partner-account.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/disassociate-aws-account-from-partner-account.rst new file mode 100644 index 000000000..c3415eeae --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/disassociate-aws-account-from-partner-account.rst @@ -0,0 +1,11 @@ +**To disassociate the partner account from the AWS account** + +The following ``disassociate-aws-account-from-partner-account`` example disassociates a partner account from your currently associated AWS account. :: + + aws iotwireless disassociate-aws-account-from-partner-account \ + --partner-account-id "12345678901234" \ + --partner-type "Sidewalk" + +This command produces no output. + +For more information, see `Add your gateways and wireless devices to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/disassociate-wireless-device-from-thing.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/disassociate-wireless-device-from-thing.rst new file mode 100644 index 000000000..f35159a51 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/disassociate-wireless-device-from-thing.rst @@ -0,0 +1,10 @@ +**To disassociate the thing from the wireless device** + +The following ``disassociate-wireless-device-from-thing`` example disassociates a wireless device from its currently associated thing. :: + + aws iotwireless disassociate-wireless-device-from-thing \ + --id "12345678-a1b2-3c45-67d8-e90fa1b2c34d" + +This command produces no output. + +For more information, see `Add your gateways and wireless devices to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/disassociate-wireless-gateway-from-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/disassociate-wireless-gateway-from-certificate.rst new file mode 100644 index 000000000..be1d2b040 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/disassociate-wireless-gateway-from-certificate.rst @@ -0,0 +1,10 @@ +**To disassociate the certificate from the wireless gateway** + +The following ``disassociate-wireless-gateway-from-certificate`` disassociates a wireless gateway from its currently associated certificate. :: + + aws iotwireless disassociate-wireless-gateway-from-certificate \ + --id "12345678-a1b2-3c45-67d8-e90fa1b2c34d" + +This command produces no output. + +For more information, see `Add your gateways and wireless devices to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/disassociate-wireless-gateway-from-thing.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/disassociate-wireless-gateway-from-thing.rst new file mode 100644 index 000000000..521df4e2f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/disassociate-wireless-gateway-from-thing.rst @@ -0,0 +1,10 @@ +**To disassociate the thing from the wireless gateway** + +The following ``disassociate-wireless-gateway-from-thing`` example disassociates a wireless gateway from its currently associated thing. :: + + aws iotwireless disassociate-wireless-gateway-from-thing \ + --id "12345678-a1b2-3c45-67d8-e90fa1b2c34d" + +This command produces no output. + +For more information, see `Add your gateways and wireless devices to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-destination.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-destination.rst new file mode 100644 index 000000000..125bc27b3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-destination.rst @@ -0,0 +1,18 @@ +**To get information about an IoT wireless destination** + +The following ``get-destination`` example gets information about the destination resource with the name ``IoTWirelessDestination`` that you created. :: + + aws iotwireless get-destination \ + --name "IoTWirelessDestination" + +Output:: + + { + "Arn": "arn:aws:iotwireless:us-east-1:123456789012:Destination/IoTWirelessDestination", + "Name": "IoTWirelessDestination", + "Expression": "IoTWirelessRule", + "ExpressionType": "RuleName", + "RoleArn": "arn:aws:iam::123456789012:role/IoTWirelessDestinationRole" + } + +For more information, see `Add destinations to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-device-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-device-profile.rst new file mode 100644 index 000000000..2e5373fb5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-device-profile.rst @@ -0,0 +1,26 @@ +**To get information about a device profile** + +The following ``get-device-profile`` example gets information about the device profile with the specified ID that you created. :: + + aws iotwireless get-device-profile \ + --id "12345678-a1b2-3c45-67d8-e90fa1b2c34d" + +Output:: + + { + "Arn": "arn:aws:iotwireless:us-east-1:123456789012:DeviceProfile/12345678-a1b2-3c45-67d8-e90fa1b2c34d", + "Id": "12345678-a1b2-3c45-67d8-e90fa1b2c34d", + "LoRaWAN": { + "MacVersion": "1.0.3", + "MaxDutyCycle": 10, + "Supports32BitFCnt": false, + "RegParamsRevision": "RP002-1.0.1", + "SupportsJoin": true, + "RfRegion": "US915", + "MaxEirp": 13, + "SupportsClassB": false, + "SupportsClassC": false + } + } + +For more information, see `Add profiles to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-partner-account.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-partner-account.rst new file mode 100644 index 000000000..6fe1cdcc4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-partner-account.rst @@ -0,0 +1,19 @@ +**To get the partner account information** + +The following ``get-partner-account`` example gets information about your Sidewalk account that has the following ID. :: + + aws iotwireless get-partner-account \ + --partner-account-id "12345678901234" \ + --partner-type "Sidewalk" + +Output:: + + { + "Sidewalk": { + "AmazonId": "12345678901234", + "Fingerprint": "a123b45c6d78e9f012a34cd5e6a7890b12c3d45e6f78a1b234c56d7e890a1234" + }, + "AccountLinked": false + } + +For more information, see `Amazon Sidewalk Integration for AWS IoT Core `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-service-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-service-endpoint.rst new file mode 100644 index 000000000..6b9402359 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-service-endpoint.rst @@ -0,0 +1,39 @@ +**To get the service endpoint** + +The following ``get-service-endpoint`` example gets the account-specific endpoint for CUPS protocol. :: + + aws iotwireless get-service-endpoint + +Output:: + + { + "ServiceType": "CUPS", + "ServiceEndpoint": "https://A1RMKZ37ACAGOT.cups.lorawan.us-east-1.amazonaws.com:443", + "ServerTrust": "-----BEGIN CERTIFICATE-----\n + MIIESTCCAzGgAwIBAgITBn+UV4WH6Kx33rJTMlu8mYtWDTANBgkqhkiG9w0BAQsF\n + ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6\n + b24gUm9vdCBDQSAxMB4XDTE1MTAyMjAwMDAwMFoXDTI1MTAxOTAwMDAwMFowRjEL\n + MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEVMBMGA1UECxMMU2VydmVyIENB\n + IDFCMQ8wDQYDVQQDEwZBbWF6b24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\n + AoIBAQDCThZn3c68asg3Wuw6MLAd5tES6BIoSMzoKcG5blPVo+sDORrMd4f2AbnZ\n + cMzPa43j4wNxhplty6aUKk4T1qe9BOwKFjwK6zmxxLVYo7bHViXsPlJ6qOMpFge5\n + blDP+18x+B26A0piiQOuPkfyDyeR4xQghfj66Yo19V+emU3nazfvpFA+ROz6WoVm\n + B5x+F2pV8xeKNR7u6azDdU5YVX1TawprmxRC1+WsAYmz6qP+z8ArDITC2FMVy2fw\n + 0IjKOtEXc/VfmtTFch5+AfGYMGMqqvJ6LcXiAhqG5TI+Dr0RtM88k+8XUBCeQ8IG\n + KuANaL7TiItKZYxK1MMuTJtV9IblAgMBAAGjggE7MIIBNzASBgNVHRMBAf8ECDAG\n + AQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUWaRmBlKge5WSPKOUByeW\n + dFv5PdAwHwYDVR0jBBgwFoAUhBjMhTTsvAyUlC4IWZzHshBOCggwewYIKwYBBQUH\n + AQEEbzBtMC8GCCsGAQUFBzABhiNodHRwOi8vb2NzcC5yb290Y2ExLmFtYXpvbnRy\n + dXN0LmNvbTA6BggrBgEFBQcwAoYuaHR0cDovL2NydC5yb290Y2ExLmFtYXpvbnRy\n + dXN0LmNvbS9yb290Y2ExLmNlcjA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3Js\n + LnJvb3RjYTEuYW1hem9udHJ1c3QuY29tL3Jvb3RjYTEuY3JsMBMGA1UdIAQMMAow\n + CAYGZ4EMAQIBMA0GCSqGSIb3DQEBCwUAA4IBAQCFkr41u3nPo4FCHOTjY3NTOVI1\n + 59Gt/a6ZiqyJEi+752+a1U5y6iAwYfmXss2lJwJFqMp2PphKg5625kXg8kP2CN5t\n + 6G7bMQcT8C8xDZNtYTd7WPD8UZiRKAJPBXa30/AbwuZe0GaFEQ8ugcYQgSn+IGBI\n + 8/LwhBNTZTUVEWuCUUBVV18YtbAiPq3yXqMB48Oz+ctBWuZSkbvkNodPLamkB2g1\n + upRyzQ7qDn1X8nn8N8V7YJ6y68AtkHcNSRAnpTitxBKjtKPISLMVCx7i4hncxHZS\n + yLyKQXhw2W2Xs0qLeC1etA+jTGDK4UfLeC0SF7FSi8o5LL21L8IzApar2pR/\n + -----END CERTIFICATE-----\n" + } + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-service-profile.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-service-profile.rst new file mode 100644 index 000000000..593a0bd5d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-service-profile.rst @@ -0,0 +1,33 @@ +**To get information about a service profile** + +The following ``get-service-profile`` example gets information about the service profile with the specified ID that you created. :: + + aws iotwireless get-service-profile \ + --id "12345678-a1b2-3c45-67d8-e90fa1b2c34d" + +Output:: + + { + "Arn": "arn:aws:iotwireless:us-east-1:651419225604:ServiceProfile/538185bb-d7e7-4b95-96a0-c51aa4a5b9a0", + "Id": "12345678-a1b2-3c45-67d8-e90fa1b2c34d", + "LoRaWAN": { + "HrAllowed": false, + "NwkGeoLoc": false, + "DrMax": 15, + "UlBucketSize": 4096, + "PrAllowed": false, + "ReportDevStatusBattery": false, + "DrMin": 0, + "DlRate": 60, + "AddGwMetadata": false, + "ReportDevStatusMargin": false, + "MinGwDiversity": 1, + "RaAllowed": false, + "DlBucketSize": 4096, + "DevStatusReqFreq": 24, + "TargetPer": 5, + "UlRate": 60 + } + } + +For more information, see `Add profiles to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-device-statistics.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-device-statistics.rst new file mode 100644 index 000000000..50e9825db --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-device-statistics.rst @@ -0,0 +1,14 @@ +**To get operating information about a wireless device** + +The following ``get-wireless-device-statistics`` example gets operating information about a wireless device. :: + + aws iotwireless get-wireless-device-statistics \ + --wireless-device-id "1ffd32c8-8130-4194-96df-622f072a315f" + +Output:: + + { + "WirelessDeviceId": "1ffd32c8-8130-4194-96df-622f072a315f" + } + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-device.rst new file mode 100644 index 000000000..5df810479 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-device.rst @@ -0,0 +1,32 @@ +**To get information about the wireless device** + +The following ``get-wireless-device`` example lists the available widgets in your AWS account. :: + + aws iotwireless get-wireless-device \ + --identifier "1ffd32c8-8130-4194-96df-622f072a315f" \ + --identifier-type WirelessDeviceID + +Output:: + + { + "Name": "myLoRaWANDevice", + "ThingArn": "arn:aws:iot:us-east-1:123456789012:thing/44b87eb4-9bce-423d-b5fc-973f5ecc358b", + "DestinationName": "IoTWirelessDestination", + "Id": "1ffd32c8-8130-4194-96df-622f072a315f", + "ThingName": "44b87eb4-9bce-423d-b5fc-973f5ecc358b", + "Type": "LoRaWAN", + "LoRaWAN": { + "DeviceProfileId": "ab0c23d3-b001-45ef-6a01-2bc3de4f5333", + "ServiceProfileId": "fe98dc76-cd12-001e-2d34-5550432da100", + "OtaaV1_1": { + "AppKey": "3f4ca100e2fc675ea123f4eb12c4a012", + "JoinEui": "b4c231a359bc2e3d", + "NwkKey": "01c3f004a2d6efffe32c4eda14bcd2b4" + }, + "DevEui": "ac12efc654d23fc2" + }, + "Arn": "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/1ffd32c8-8130-4194-96df-622f072a315f", + "Description": "My LoRaWAN wireless device" + } + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-gateway-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-gateway-certificate.rst new file mode 100644 index 000000000..f38e6e327 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-gateway-certificate.rst @@ -0,0 +1,14 @@ +**To get the ID of a certificate associated with a wireless gateway** + +The following ``get-wireless-gateway-certificate`` example gets the certificate ID associated with a wireless gateway that has the specified ID. :: + + aws iotwireless get-wireless-gateway-certificate \ + --id "6c44ab31-8b4d-407a-bed3-19b6c7cda551" + +Output:: + + { + "IotCertificateId": "8ea4aeae3db34c78cce75d9abd830356869ead6972997e0603e5fd032c804b6f" + } + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-gateway-firmware-information.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-gateway-firmware-information.rst new file mode 100644 index 000000000..e01408b96 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-gateway-firmware-information.rst @@ -0,0 +1,21 @@ +**To get firmware information about a wireless gateway** + +The following ``get-wireless-gateway-firmware-information`` example gets firmware version and other information about a wireless gateway. :: + + aws iotwireless get-wireless-gateway-firmware-information \ + --id "3039b406-5cc9-4307-925b-9948c63da25b" + + +Output:: + + { + "LoRaWAN" :{ + "CurrentVersion" :{ + "PackageVersion" : "1.0.0", + "Station" : "2.0.5", + "Model" : "linux" + } + } + } + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-gateway-statistics.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-gateway-statistics.rst new file mode 100644 index 000000000..f13f91e0f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-gateway-statistics.rst @@ -0,0 +1,14 @@ +**To get operating information about a wireless gateway** + +The following ``get-wireless-gateway-statistics`` example gets operating information about a wireless gateway. :: + + aws iotwireless get-wireless-gateway-statistics \ + --wireless-gateway-id "3039b406-5cc9-4307-925b-9948c63da25b" + +Output:: + + { + "WirelessGatewayId": "3039b406-5cc9-4307-925b-9948c63da25b" + } + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-gateway-task-definition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-gateway-task-definition.rst new file mode 100644 index 000000000..673069c1c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-gateway-task-definition.rst @@ -0,0 +1,31 @@ +**To get information about a wireless gateway task definition** + +The following ``get-wireless-gateway-task-definition`` example gets information about the wireless task definition with the specified ID. :: + + aws iotwireless get-wireless-gateway-task-definition \ + --id "b7d3baad-25c7-35e7-a4e1-1683a0d61da9" + +Output:: + + { + "AutoCreateTasks": true, + "Name": "TestAutoUpdate", + "Update":{ + "UpdateDataSource" : "s3://cupsalphagafirmwarebin/station", + "UpdateDataRole" : "arn:aws:iam::001234567890:role/SDK_Test_Role", + "LoRaWAN" :{ + "CurrentVersion" :{ + "PackageVersion" : "1.0.0", + "Station" : "2.0.5", + "Model" : "linux" + }, + "UpdateVersion" :{ + "PackageVersion" : "1.0.1", + "Station" : "2.0.5", + "Model" : "minihub" + } + } + } + } + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-gateway-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-gateway-task.rst new file mode 100644 index 000000000..93c431342 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-gateway-task.rst @@ -0,0 +1,16 @@ +**To get information about the wireless gateway task** + +The following ``get-wireless-gateway-task`` example gets information about the wireless gateway task with the specified ID. :: + + aws iotwireless get-wireless-gateway-task \ + --id "11693a46-6866-47c3-a031-c9a616e7644b" + +Output:: + + { + "WirelessGatewayId": "6c44ab31-8b4d-407a-bed3-19b6c7cda551", + "WirelessGatewayTaskDefinitionId": "b7d3baad-25c7-35e7-a4e1-1683a0d61da9", + "Status": "Success" + } + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-gateway.rst new file mode 100644 index 000000000..18e9ad2e5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/get-wireless-gateway.rst @@ -0,0 +1,24 @@ +**To get information about a wireless gateway** + +The following ``get-wireless-gateway`` example gets information about the wireless gateway ``myFirstLoRaWANGateway``. :: + + aws iotwireless get-wireless-gateway \ + --identifier "12345678-a1b2-3c45-67d8-e90fa1b2c34d" \ + --identifier-type WirelessGatewayId + +Output:: + + { + "Description": "My first LoRaWAN gateway", + "ThingArn": "arn:aws:iot:us-east-1:123456789012:thing/a1b2c3d4-5678-90ab-cdef-12ab345c67de", + "LoRaWAN": { + "RfRegion": "US915", + "GatewayEui": "a1b2c3d4567890ab" + }, + "ThingName": "a1b2c3d4-5678-90ab-cdef-12ab345c67de", + "Id": "12345678-a1b2-3c45-67d8-e90fa1b2c34d", + "Arn": "arn:aws:iotwireless:us-east-1:123456789012:WirelessGateway/6c44ab31-8b4d-407a-bed3-19b6c7cda551", + "Name": "myFirstLoRaWANGateway" + } + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-destinations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-destinations.rst new file mode 100644 index 000000000..c610f8d7f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-destinations.rst @@ -0,0 +1,27 @@ +**To list the wireless destinations** + +The following ``list-destinations`` example lists the available destinations registered to your AWS account. :: + + aws iotwireless list-destinations + +Output:: + + { + "DestinationList": [ + { + "Arn": "arn:aws:iotwireless:us-east-1:123456789012:Destination/IoTWirelessDestination", + "Name": "IoTWirelessDestination", + "Expression": "IoTWirelessRule", + "Description": "Destination for messages processed using IoTWirelessRule", + "RoleArn": "arn:aws:iam::123456789012:role/IoTWirelessDestinationRole" + }, + { + "Arn": "arn:aws:iotwireless:us-east-1:123456789012:Destination/IoTWirelessDestination2", + "Name": "IoTWirelessDestination2", + "Expression": "IoTWirelessRule2", + "RoleArn": "arn:aws:iam::123456789012:role/IoTWirelessDestinationRole" + } + ] + } + +For more information, see `Add destinations to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-device-profiles.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-device-profiles.rst new file mode 100644 index 000000000..554a628ae --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-device-profiles.rst @@ -0,0 +1,22 @@ +**To list the device profiles** + +The following ``list-device-profiles`` example lists the available device profiles registered to your AWS account. :: + + aws iotwireless list-device-profiles + +Output:: + + { + "DeviceProfileList": [ + { + "Id": "12345678-a1b2-3c45-67d8-e90fa1b2c34d", + "Arn": "arn:aws:iotwireless:us-east-1:123456789012:DeviceProfile/12345678-a1b2-3c45-67d8-e90fa1b2c34d" + }, + { + "Id": "a1b2c3d4-5678-90ab-cdef-12ab345c67de", + "Arn": "arn:aws:iotwireless:us-east-1:123456789012:DeviceProfile/a1b2c3d4-5678-90ab-cdef-12ab345c67de" + } + ] + } + +For more information, see `Add profiles to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-partner-accounts.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-partner-accounts.rst new file mode 100644 index 000000000..bc01baac1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-partner-accounts.rst @@ -0,0 +1,22 @@ +**To list the partner accounts** + +The following ``list-partner-accounts`` example lists the available partner accounts associated with your AWS account. :: + + aws iotwireless list-partner-accounts + +Output:: + + { + "Sidewalk": [ + { + "AmazonId": "78965678771228", + "Fingerprint": "bd96d8ef66dbfd2160eb60e156849e82ad7018b8b73c1ba0b4fc65c32498ee35" + }, + { + "AmazonId": "89656787651228", + "Fingerprint": "bc5e99e151c07be14be7e6603e4489c53f858b271213a36ebe3370777ba06e9b" + } + ] + } + +For more information, see `Amazon Sidewalk Integration for AWS IoT Core `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-service-profiles.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-service-profiles.rst new file mode 100644 index 000000000..d200ec9d1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-service-profiles.rst @@ -0,0 +1,22 @@ +**To list the service profiles** + +The following ``list-service-profiles`` example lists the available service profiles registered to your AWS account. :: + + aws iotwireless list-service-profiles + +Output:: + + { + "ServiceProfileList": [ + { + "Id": "12345678-a1b2-3c45-67d8-e90fa1b2c34d", + "Arn": "arn:aws:iotwireless:us-east-1:123456789012:ServiceProfile/538185bb-d7e7-4b95-96a0-c51aa4a5b9a0" + }, + { + "Id": "a1b2c3d4-5678-90ab-cdef-12ab345c67de", + "Arn": "arn:aws:iotwireless:us-east-1:123456789012:ServiceProfile/ea8bc823-5d13-472e-8d26-9550737d8100" + } + ] + } + +For more information, see `Add profiles to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-tags-for-resource.rst new file mode 100644 index 000000000..6fcb6ad97 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-tags-for-resource.rst @@ -0,0 +1,19 @@ +**To list the tags assigned to the resource** + +The following ``list-tags-for-resource`` example lists the tags assigned to a wireless destination resource. :: + + aws iotwireless list-tags-for-resource \ + --resource-arn "arn:aws:iotwireless:us-east-1:123456789012:Destination/IoTWirelessDestination" + +Output:: + + { + "Tags": [ + { + "Value": "MyValue", + "Key": "MyTag" + } + ] + } + +For more information, see `Describe your AWS IoT Core for LoRaWAN resources `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-wireless-devices.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-wireless-devices.rst new file mode 100644 index 000000000..243f2863c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-wireless-devices.rst @@ -0,0 +1,24 @@ +**To list the available wireless devices** + +The following ``list-wireless-devices`` example lists the available wireless devices registered to your AWS account. :: + + aws iotwireless list-wireless-devices + +Output:: + + { + "WirelessDeviceList": [ + { + "Name": "myLoRaWANDevice", + "DestinationName": "IoTWirelessDestination", + "Id": "1ffd32c8-8130-4194-96df-622f072a315f", + "Type": "LoRaWAN", + "LoRaWAN": { + "DevEui": "ac12efc654d23fc2" + }, + "Arn": "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/1ffd32c8-8130-4194-96df-622f072a315f" + } + ] + } + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-wireless-gateway-task-definitions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-wireless-gateway-task-definitions.rst new file mode 100644 index 000000000..54bad29be --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-wireless-gateway-task-definitions.rst @@ -0,0 +1,30 @@ +**To list the wireless gateway task definitions** + +The following ``list-wireless-gateway-task-definitions`` example lists the available wireless gateway task definitions registered to your AWS account. :: + + aws iotwireless list-wireless-gateway-task-definitions + +Output:: + + { + "TaskDefinitions": [ + { + "Id": "b7d3baad-25c7-35e7-a4e1-1683a0d61da9", + "LoRaWAN" : + { + "CurrentVersion" :{ + "PackageVersion" : "1.0.0", + "Station" : "2.0.5", + "Model" : "linux" + }, + "UpdateVersion" :{ + "PackageVersion" : "1.0.1", + "Station" : "2.0.5", + "Model" : "minihub" + } + } + } + ] + } + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-wireless-gateways.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-wireless-gateways.rst new file mode 100644 index 000000000..a598fe104 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/list-wireless-gateways.rst @@ -0,0 +1,34 @@ +**To list the wireless gateways** + +The following ``list-wireless-gateways`` example lists the available wireless gateways in your AWS account. :: + + aws iotwireless list-wireless-gateways + +Output:: + + { + "WirelessGatewayList": [ + { + "Description": "My first LoRaWAN gateway", + "LoRaWAN": { + "RfRegion": "US915", + "GatewayEui": "dac632ebc01d23e4" + }, + "Id": "3039b406-5cc9-4307-925b-9948c63da25b", + "Arn": "arn:aws:iotwireless:us-east-1:123456789012:WirelessGateway/3039b406-5cc9-4307-925b-9948c63da25b", + "Name": "myFirstLoRaWANGateway" + }, + { + "Description": "My second LoRaWAN gateway", + "LoRaWAN": { + "RfRegion": "US915", + "GatewayEui": "cda123fffe92ecd2" + }, + "Id": "3285bdc7-5a12-4991-84ed-dadca65e342e", + "Arn": "arn:aws:iotwireless:us-east-1:123456789012:WirelessGateway/3285bdc7-5a12-4991-84ed-dadca65e342e", + "Name": "mySecondLoRaWANGateway" + } + ] + } + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/send-data-to-wireless-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/send-data-to-wireless-device.rst new file mode 100644 index 000000000..23031909c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/send-data-to-wireless-device.rst @@ -0,0 +1,17 @@ +**To send data to the wireless device** + +The following ``send-data-to-wireless-device`` example sends a decrypted application data frame to the wireless device. :: + + aws iotwireless send-data-to-wireless-device \ + --id "11aa5eae-2f56-4b8e-a023-b28d98494e49" \ + --transmit-mode "1" \ + --payload-data "SGVsbG8gVG8gRGV2c2lt" \ + --wireless-metadata LoRaWAN={FPort=1} + +Output:: + + { + MessageId: "6011dd36-0043d6eb-0072-0008" + } + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/tag-resource.rst new file mode 100644 index 000000000..e97604457 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/tag-resource.rst @@ -0,0 +1,11 @@ +**To specify a tag key and value for a resource** + +The following ``tag-resource`` example tags the wireless destination ``IoTWirelessDestination`` with the key ``MyTag`` and value ``MyValue``. :: + + aws iotwireless tag-resource \ + --resource-arn "arn:aws:iotwireless:us-east-1:651419225604:Destination/IoTWirelessDestination" \ + --tags Key="MyTag",Value="MyValue" + +This command produces no output. + +For more information, see `Describe your AWS IoT Core for LoRaWAN resources `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/test-wireless-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/test-wireless-device.rst new file mode 100644 index 000000000..79030238c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/test-wireless-device.rst @@ -0,0 +1,14 @@ +**To test the wireless device** + +The following ``test-wireless-device`` example sends uplink data of ``Hello`` to a device with specified ID. :: + + aws iotwireless test-wireless-device \ + --id "11aa5eae-2f56-4b8e-a023-b28d98494e49" + +Output:: + + { + Result: "Test succeeded. one message is sent with payload: hello" + } + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/untag-resource.rst new file mode 100644 index 000000000..70f24e44b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove one or more tags from a resource** + +The following ``untag-resource`` example removes the tag ``MyTag`` and its value from the wireless destination ``IoTWirelessDestination``. :: + + aws iotwireless untag-resource \ + --resource-arn "arn:aws:iotwireless:us-east-1:123456789012:Destination/IoTWirelessDestination" \ + --tag-keys "MyTag" + +This command produces no output. + +For more information, see `Describe your AWS IoT Core for LoRaWAN resources `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/update-destination.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/update-destination.rst new file mode 100644 index 000000000..54adbc6c2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/update-destination.rst @@ -0,0 +1,11 @@ +**To update the properties of a destination** + +The following ``update-destination`` example updates the description property of a wireless destination. :: + + aws iotwireless update-destination \ + --name "IoTWirelessDestination" \ + --description "Destination for messages processed using IoTWirelessRule" + +This command produces no output. + +For more information, see `Add destinations to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/update-partner-account.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/update-partner-account.rst new file mode 100644 index 000000000..416aeac31 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/update-partner-account.rst @@ -0,0 +1,12 @@ +**To update the properties of a partner account** + +The following ``update-partner-account`` updates the ``AppServerPrivateKey`` for the account that has the specified ID. :: + + aws iotwireless update-partner-account \ + --partner-account-id "78965678771228" \ + --partner-type "Sidewalk" \ + --sidewalk AppServerPrivateKey="f798ab4899346a88599180fee9e14fa1ada7b6df989425b7c6d2146dd6c815bb" + +This command produces no output. + +For more information, see `Amazon Sidewalk Integration for AWS IoT Core `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/update-wireless-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/update-wireless-device.rst new file mode 100644 index 000000000..1cb9df927 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/update-wireless-device.rst @@ -0,0 +1,12 @@ +**To update the properties of a wireless device** + +The following ``update-wireless-device`` example updates the properties of a wireless device registered to your AWS account. :: + + aws iotwireless update-wireless-device \ + --id "1ffd32c8-8130-4194-96df-622f072a315f" \ + --destination-name IoTWirelessDestination2 \ + --description "Using my first LoRaWAN device" + +This command produces no output. + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/update-wireless-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/update-wireless-gateway.rst new file mode 100644 index 000000000..2e38f76ea --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/iotwireless/update-wireless-gateway.rst @@ -0,0 +1,11 @@ +**To update the wireless gateway** + +The following ``update-wireless-gateway`` example updates the description of your wireless gateway. :: + + aws iotwireless update-wireless-gateway \ + --id "3285bdc7-5a12-4991-84ed-dadca65e342e" \ + --description "Using my LoRaWAN gateway" + +This command produces no output. + +For more information, see `Connecting devices and gateways to AWS IoT Core for LoRaWAN `__ in the *AWS IoT Developers Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/create-encoder-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/create-encoder-configuration.rst new file mode 100644 index 000000000..9ec953bae --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/create-encoder-configuration.rst @@ -0,0 +1,24 @@ +**To create a composition encoder configuration** + +The following ``create-encoder-configuration`` example creates a composition encoder configuration with the specified properties. :: + + aws ivs-realtime create-encoder-configuration \ + --name test-ec --video bitrate=3500000,framerate=30.0,height=1080,width=1920 + +Output:: + + { + "encoderConfiguration": { + "arn": "arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef", + "name": "test-ec", + "tags": {}, + "video": { + "bitrate": 3500000, + "framerate": 30, + "height": 1080, + "width": 1920 + } + } + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/create-ingest-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/create-ingest-configuration.rst new file mode 100644 index 000000000..6baf24dbe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/create-ingest-configuration.rst @@ -0,0 +1,25 @@ +**To create an ingest configuration** + +The following ``create-ingest-configuration`` example creates an ingest configuration using RTMPS protocol. :: + + aws ivs-realtime create-ingest-configuration \ + --name ingest1 \ + --ingest-protocol rtmps + +Output:: + + { + "ingestConfiguration": { + "name": "ingest1", + "arn": "arn:aws:ivs:us-west-2:123456789012:ingest-configuration/AbCdEfGh1234", + "ingestProtocol": "RTMPS", + "streamKey": "rt_123456789012_us-west-2_AbCdEfGh1234_abcd1234efgh5678ijkl9012MNOP34", + "stageArn": "", + "participantId": "xyZ654abC321", + "state": "INACTIVE", + "userId": "", + "tags": {} + } + } + +For more information, see `IVS Stream Ingest | Real-Time Streaming `__ in the *Amazon Interactive Video Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/create-participant-token.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/create-participant-token.rst new file mode 100644 index 000000000..641b7537e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/create-participant-token.rst @@ -0,0 +1,19 @@ +**To create a stage participant token** + +The following ``create-participant-token`` example creates a participant toke for the specified stage. :: + + aws ivs-realtime create-participant-token \ + --stage-arn arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh \ + --user-id bob + +Output:: + + { + "participantToken": { + "expirationTime": "2023-03-07T09:47:43+00:00", + "participantId": "ABCDEfghij01234KLMN6789", + "token": "abcd1234defg5678" + } + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/create-stage.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/create-stage.rst new file mode 100644 index 000000000..c799ee4df --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/create-stage.rst @@ -0,0 +1,143 @@ +**Example 1: To create a stage** + +The following ``create-stage`` example creates a stage and stage participant token for a specified user. :: + + aws ivs-realtime create-stage \ + --name stage1 \ + --participant-token-configurations userId=alice + +Output:: + + { + "participantTokens": [ + { + "participantId": "ABCDEfghij01234KLMN5678", + "token": "a1b2c3d4567890ab", + "userId": "alice" + } + ], + "stage": { + "activeSessionId": "st-a1b2c3d4e5f6g", + "arn": "arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh", + "autoParticipantRecordingConfiguration": { + "storageConfigurationArn": "", + "mediaTypes": [ + "AUDIO_VIDEO" + ], + "thumbnailConfiguration": { + "targetIntervalSeconds": 60, + "storage": [ + "SEQUENTIAL" + ], + "recordingMode": "DISABLED" + }, + "recordingReconnectWindowSeconds": 0, + "hlsConfiguration": { + "targetSegmentDurationSeconds": 6 + }, + "recordParticipantReplicas": true + }, + "endpoints": { + "events": "wss://global.events.live-video.net", + "rtmp": "rtmp://9x0y8z7s6t5u.global-contribute-staging.live-video.net/app/", + "rtmps": "rtmps://9x0y8z7s6t5u.global-contribute-staging.live-video.net:443/app/", + "whip": "https://9x0y8z7s6t5u.global-bm.whip.live-video.net" + }, + "name": "stage1", + "tags": {} + } + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon IVS Low-Latency Streaming User Guide*. + +**Example 2: To create a stage and configure individual participant recording** + +The following ``create-stage`` example creates a stage and configures individual participant recording. :: + + aws ivs-realtime create-stage \ + --name stage1 \ + --auto-participant-recording-configuration '{"mediaTypes": ["AUDIO_VIDEO"],"storageConfigurationArn": "arn:aws:ivs:us-west-2:123456789012:storage-configuration/abcdABCDefgh", "recordingReconnectWindowSeconds": 100, \ + "hlsConfiguration": {"targetSegmentDurationSeconds": 5}}' + +Output:: + + { + "stage": { + "activeSessionId": "st-a1b2c3d4e5f6g", + "arn": "arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh", + "autoParticipantRecordingConfiguration": { + "storageConfigurationArn": "arn:aws:ivs:us-west-2:123456789012:storage-configuration/abcdABCDefgh" + "mediaTypes": [ + "AUDIO_VIDEO" + ], + "thumbnailConfiguration": { + "targetIntervalSeconds": 60, + "storage": [ + "SEQUENTIAL" + ], + "recordingMode": "DISABLED" + }, + "recordingReconnectWindowSeconds": 100, + "hlsConfiguration": { + "targetSegmentDurationSeconds": 5 + }, + "recordParticipantReplicas": true + }, + "endpoints": { + "events": "wss://global.events.live-video.net", + "rtmp": "rtmp://9x0y8z7s6t5u.global-contribute-staging.live-video.net/app/", + "rtmps": "rtmps://9x0y8z7s6t5u.global-contribute-staging.live-video.net:443/app/", + "whip": "https://9x0y8z7s6t5u.global-bm.whip.live-video.net" + }, + "name": "stage1", + "tags": {} + } + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon IVS Low-Latency Streaming User Guide*. + +**Example 3: To create a stage and configure individual participant recording with thumbnail recording enabled** + +The following ``create-stage`` example creates a stage and configures individual participant recording with thumbnail recording enabled. :: + + aws ivs-realtime create-stage \ + --name stage1 \ + --auto-participant-recording-configuration '{"mediaTypes": ["AUDIO_VIDEO"],"storageConfigurationArn": "arn:aws:ivs:us-west-2:123456789012:storage-configuration/abcdABCDefgh", \ + "thumbnailConfiguration": {"recordingMode": "INTERVAL","storage": ["SEQUENTIAL"],"targetIntervalSeconds": 60}}' + +Output:: + + { + "stage": { + "activeSessionId": "st-a1b2c3d4e5f6g", + "arn": "arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh", + "autoParticipantRecordingConfiguration": { + "storageConfigurationArn": "arn:aws:ivs:us-west-2:123456789012:storage-configuration/abcdABCDefgh", + "mediaTypes": [ + "AUDIO_VIDEO" + ], + "thumbnailConfiguration": { + "targetIntervalSeconds": 60, + "storage": [ + "SEQUENTIAL" + ], + "recordingMode": "INTERVAL" + }, + "recordingReconnectWindowSeconds": 0, + "hlsConfiguration": { + "targetSegmentDurationSeconds": 6 + }, + "recordParticipantReplicas": true + }, + "endpoints": { + "events": "wss://global.events.live-video.net", + "rtmp": "rtmp://9x0y8z7s6t5u.global-contribute-staging.live-video.net/app/", + "rtmps": "rtmps://9x0y8z7s6t5u.global-contribute-staging.live-video.net:443/app/", + "whip": "https://9x0y8z7s6t5u.global-bm.whip.live-video.net" + }, + "name": "stage1", + "tags": {} + } + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon IVS Low-Latency Streaming User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/create-storage-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/create-storage-configuration.rst new file mode 100644 index 000000000..904e02a7b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/create-storage-configuration.rst @@ -0,0 +1,21 @@ +**To create a composition storage configuration** + +The following ``create-storage-configuration`` example creates a composition storage configuration with the specified properties. :: + + aws ivs-realtime create-storage-configuration \ + --name "test-sc" --s3 "bucketName=amzn-s3-demo-bucket" + +Output:: + + { + "storageConfiguration": { + "arn": "arn:aws:ivs:ap-northeast-1:123456789012:storage-configuration/ABabCDcdEFef", + "name": "test-sc", + "s3": { + "bucketName": "amzn-s3-demo-bucket" + }, + "tags": {} + } + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/delete-encoder-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/delete-encoder-configuration.rst new file mode 100644 index 000000000..0826c5e30 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/delete-encoder-configuration.rst @@ -0,0 +1,10 @@ +**To delete a composition encoder configuration** + +The following ``delete-encoder-configuration`` deletes the composition encoder configuration specified by the given ARN (Amazon Resource Name). :: + + aws ivs-realtime delete-encoder-configuration \ + --arn "arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef" + +This command produces no output. + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/delete-ingest-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/delete-ingest-configuration.rst new file mode 100644 index 000000000..daa3e0eec --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/delete-ingest-configuration.rst @@ -0,0 +1,22 @@ +**Example 1: To delete an inactive ingest configuration** + +The following ``delete-ingest-configuration`` example deletes the inactive ingest configuration for a specified ingest-configuration ARN (Amazon Resource Name). :: + + aws ivs-realtime delete-ingest-configuration \ + --arn arn:aws:ivs:us-west-2:123456789012:ingest-configuration/AbCdEfGh1234 + +This command produces no output. + +For more information, see `IVS Stream Ingest | Real-Time Streaming `__ in the *Amazon Interactive Video Service User Guide*. + +**Example 2: To force delete an active ingest configuration** + +The following ``delete-ingest-configuration`` example forces deletion of the active ingest configuration for a specified ingest-configuration ARN (Amazon Resource Name). :: + + aws ivs-realtime delete-ingest-configuration \ + --arn arn:aws:ivs:us-west-2:123456789012:ingest-configuration/AbCdEfGh1234 \ + --force + +This command produces no output. + +For more information, see `IVS Stream Ingest | Real-Time Streaming `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/delete-public-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/delete-public-key.rst new file mode 100644 index 000000000..b4764d74b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/delete-public-key.rst @@ -0,0 +1,10 @@ +**To delete a public key** + +The following ``delete-public-key`` deletes the specified public key. :: + + aws ivs-realtime delete-public-key \ + --arn arn:aws:ivs:us-west-2:123456789012:public-key/abcdABC1efg2 + +This command produces no output. + +For more information, see `Distribute Participant Tokens `__ in the *Amazon IVS Real-Time Streaming User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/delete-stage.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/delete-stage.rst new file mode 100644 index 000000000..845f30904 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/delete-stage.rst @@ -0,0 +1,10 @@ +**To delete a stage** + +The following ``delete-stage`` example deletes the specified stage. :: + + aws ivs-realtime delete-stage \ + --arn arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh + +This command produces no output. + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/delete-storage-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/delete-storage-configuration.rst new file mode 100644 index 000000000..fc5321780 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/delete-storage-configuration.rst @@ -0,0 +1,10 @@ +**To delete a composition storage configuration** + +The following ``delete-storage-configuration`` deletes the composition storage configuration specified by the given ARN (Amazon Resource Name). :: + + aws ivs-realtime delete-storage-configuration \ + --arn "arn:aws:ivs:ap-northeast-1:123456789012:storage-configuration/ABabCDcdEFef" + +This command produces no output. + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/disconnect-participant.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/disconnect-participant.rst new file mode 100644 index 000000000..ce6e8d03e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/disconnect-participant.rst @@ -0,0 +1,11 @@ +**To disconnect a stage participant** + +The following ``disconnect-participant`` example disconnects the specified participant from the specified stage. :: + + aws ivs-realtime disconnect-participant \ + --stage-arn arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh \ + --participant-id ABCDEfghij01234KLMN5678 + +This command produces no output. + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-composition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-composition.rst new file mode 100644 index 000000000..dc2a8ebbf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-composition.rst @@ -0,0 +1,219 @@ +**Example 1: To get a composition with default layout settings** + +The following ``get-composition`` example gets the composition for the ARN (Amazon Resource Name) specified. :: + + aws ivs-realtime get-composition \ + --arn "arn:aws:ivs:ap-northeast-1:123456789012:composition/abcdABCDefgh" + +Output:: + + { + "composition": { + "arn": "arn:aws:ivs:ap-northeast-1:123456789012:composition/abcdABCDefgh", + "destinations": [ + { + "configuration": { + "channel": { + "channelArn": "arn:aws:ivs:ap-northeast-1:123456789012:channel/abcABCdefDEg", + "encoderConfigurationArn": "arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef" + }, + "name": "" + }, + "id": "AabBCcdDEefF", + "startTime": "2023-10-16T23:26:00+00:00", + "state": "ACTIVE" + }, + { + "configuration": { + "name": "", + "s3": { + "encoderConfigurationArns": [ + "arn:aws:ivs:arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef" + ], + "recordingConfiguration": { + "format": "HLS", + "hlsConfiguration": { + "targetSegmentDurationSeconds": 2 + } + }, + "storageConfigurationArn": "arn:arn:aws:ivs:ap-northeast-1:123456789012:storage-configuration/FefABabCDcdE", + } + }, + "detail": { + "s3": { + "recordingPrefix": "aBcDeFgHhGfE/AbCdEfGhHgFe/GHFabcgefABC/composite" + } + }, + "id": "GHFabcgefABC", + "startTime": "2023-10-16T23:26:00+00:00", + "state": "STARTING" + } + ], + "layout": { + "grid": { + "featuredParticipantAttribute": "", + "gridGap": 2, + "omitStoppedVideo": false, + "participantOrderAttribute": "", + "videoAspectRatio": "VIDEO", + "videoFillMode": "" + } + }, + "stageArn": "arn:aws:ivs:ap-northeast-1:123456789012:stage/defgABCDabcd", + "startTime": "2023-10-16T23:24:00+00:00", + "state": "ACTIVE", + "tags": {} + } + } + +For more information, see `IVS Composite Recording | Real-Time Streaming `__ in the *Amazon Interactive Video Service User Guide*. + +**Example 2: To get a composition with PiP layout** + +The following ``get-composition`` example gets the composition for the ARN (Amazon Resource Name) specified, which uses PiP layout. :: + + aws ivs-realtime get-composition \ + --arn "arn:aws:ivs:ap-northeast-1:123456789012:composition/wxyzWXYZpqrs" + +Output:: + + { + "composition": { + "arn": "arn:aws:ivs:ap-northeast-1:123456789012:composition/wxyzWXYZpqrs", + "destinations": [ + { + "configuration": { + "channel": { + "channelArn": "arn:aws:ivs:ap-northeast-1:123456789012:channel/abcABCdefDEg", + "encoderConfigurationArn": "arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef" + }, + "name": "" + }, + "id": "AabBCcdDEefF", + "startTime": "2023-10-16T23:26:00+00:00", + "state": "ACTIVE" + }, + { + "configuration": { + "name": "", + "s3": { + "encoderConfigurationArns": [ + "arn:aws:ivs:arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef" + ], + "recordingConfiguration": { + "format": "HLS", + "hlsConfiguration": { + "targetSegmentDurationSeconds": 2 + } + }, + "storageConfigurationArn": "arn:arn:aws:ivs:ap-northeast-1:123456789012:storage-configuration/FefABabCDcdE" + } + }, + "detail": { + "s3": { + "recordingPrefix": "aBcDeFgHhGfE/AbCdEfGhHgFe/GHFabcgefABC/composite" + } + }, + "id": "GHFabcgefABC", + "startTime": "2023-10-16T23:26:00+00:00", + "state": "STARTING" + } + ], + "layout": { + "pip": { + "featuredParticipantAttribute": "abcdefg", + "gridGap": 0, + "omitStoppedVideo": false, + "participantOrderAttribute": "", + "pipBehavior": "STATIC", + "pipOffset": 0, + "pipParticipantAttribute": "", + "pipPosition": "BOTTOM_RIGHT", + "videoFillMode": "COVER" + } + }, + "stageArn": "arn:aws:ivs:ap-northeast-1:123456789012:stage/defgABCDabcd", + "startTime": "2023-10-16T23:24:00+00:00", + "state": "ACTIVE", + "tags": {} + } + } + +For more information, see `IVS Composite Recording | Real-Time Streaming `__ in the *Amazon Interactive Video Service User Guide*. + +**Example 3: To get a composition with thumbnail recording enabled** + +The following ``get-composition`` example gets the composition for the ARN (Amazon Resource Name) specified, which has thumbnail recording enabled with default settings. :: + + aws ivs-realtime get-composition \ + --arn "arn:aws:ivs:ap-northeast-1:123456789012:composition/abcdABCDefgh" + +Output:: + + { + "composition": { + "arn": "arn:aws:ivs:ap-northeast-1:123456789012:composition/abcdABCDefgh", + "destinations": [ + { + "configuration": { + "channel": { + "channelArn": "arn:aws:ivs:ap-northeast-1:123456789012:channel/abcABCdefDEg", + "encoderConfigurationArn": "arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef" + }, + "name": "" + }, + "id": "AabBCcdDEefF", + "startTime": "2023-10-16T23:26:00+00:00", + "state": "ACTIVE" + }, + { + "configuration": { + "name": "", + "s3": { + "encoderConfigurationArns": [ + "arn:aws:ivs:arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef" + ], + "recordingConfiguration": { + "format": "HLS", + "hlsConfiguration": { + "targetSegmentDurationSeconds": 2 + } + }, + "storageConfigurationArn": "arn:arn:aws:ivs:ap-northeast-1:123456789012:storage-configuration/FefABabCDcdE", + "thumbnailConfigurations": [ + { + "targetIntervalSeconds": 60, + "storage": [ + "SEQUENTIAL" + ], + } + ] + } + }, + "detail": { + "s3": { + "recordingPrefix": "aBcDeFgHhGfE/AbCdEfGhHgFe/GHFabcgefABC/composite" + } + }, + "id": "GHFabcgefABC", + "startTime": "2023-10-16T23:26:00+00:00", + "state": "STARTING" + } + ], + "layout": { + "grid": { + "featuredParticipantAttribute": "" + "gridGap": 2, + "omitStoppedVideo": false, + "participantOrderAttribute": "", + "videoAspectRatio": "VIDEO", + "videoFillMode": "" } + }, + "stageArn": "arn:aws:ivs:ap-northeast-1:123456789012:stage/defgABCDabcd", + "startTime": "2023-10-16T23:24:00+00:00", + "state": "ACTIVE", + "tags": {} + } + } + +For more information, see `IVS Composite Recording | Real-Time Streaming `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-encoder-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-encoder-configuration.rst new file mode 100644 index 000000000..b89901998 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-encoder-configuration.rst @@ -0,0 +1,24 @@ +**To get a composition encoder configuration** + +The following ``get-encoder-configuration`` example gets the composition encoder configuration specified by the given ARN (Amazon Resource Name). :: + + aws ivs-realtime get-encoder-configuration \ + --arn "arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/abcdABCDefgh" + +Output:: + + { + "encoderConfiguration": { + "arn": "arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/abcdABCDefgh", + "name": "test-ec", + "tags": {}, + "video": { + "bitrate": 3500000, + "framerate": 30, + "height": 1080, + "width": 1920 + } + } + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-ingest-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-ingest-configuration.rst new file mode 100644 index 000000000..f38753d06 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-ingest-configuration.rst @@ -0,0 +1,24 @@ +**To get ingest configuration information** + +The following ``get-ingest-configuration`` example gets the ingest configuration for a specified ingest-configuration ARN (Amazon Resource Name). :: + + aws ivs-realtime get-ingest-configuration \ + --arn arn:aws:ivs:us-west-2:123456789012:ingest-configuration/AbCdEfGh1234 + +Output:: + + { + "ingestConfiguration": { + "name": "ingest1", + "arn": "arn:aws:ivs:us-west-2:123456789012:ingest-configuration/AbCdEfGh1234", + "ingestProtocol": "RTMPS", + "streamKey": "rt_123456789012_us-west-2_AbCdEfGh1234_abcd1234efgh5678ijkl9012MNOP34", + "stageArn": "", + "participantId": "xyZ654abC321", + "state": "INACTIVE", + "userId": "", + "tags": {} + } + } + +For more information, see `IVS Stream Ingest | Real-Time Streaming `__ in the *Amazon Interactive Video Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-participant.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-participant.rst new file mode 100644 index 000000000..3ae76c18f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-participant.rst @@ -0,0 +1,99 @@ +**Example 1: To get a stage participant** + +The following ``get-participant`` example gets the stage participant for a specified participant ID and session ID in the specified stage ARN (Amazon Resource Name). :: + + aws ivs-realtime get-participant \ + --stage-arn arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh \ + --session-id st-a1b2c3d4e5f6g \ + --participant-id abCDEf12GHIj + +Output:: + + { + "participant": { + "browserName": "Google Chrome", + "browserVersion": "116", + "firstJoinTime": "2023-04-26T20:30:34+00:00", + "ispName": "Comcast", + "osName": "Microsoft Windows 10 Pro", + "osVersion": "10.0.19044", + "participantId": "abCDEf12GHIj", + "published": true, + "recordingS3BucketName": "bucket-name", + "recordingS3Prefix": "abcdABCDefgh/st-a1b2c3d4e5f6g/abCDEf12GHIj/1234567890", + "recordingState": "ACTIVE", + "sdkVersion": "", + "state": "CONNECTED", + "userId": "" + } + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon IVS Low-Latency Streaming User Guide*. + +**Example 2: To get a stage participant that has been replicated to another stage** + +The following ``get-participant`` example gets the stage participant for a specified participant ID and session ID in the specified stage ARN (Amazon Resource Name), when the participant has also been replicated to another stage. :: + + aws ivs-realtime get-participant \ + --stage-arn arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh \ + --session-id st-a1b2c3d4e5f6g \ + --participant-id abCDEf12GHIj + +Output:: + + { + "participant": { + "browserName": "Google Chrome", + "browserVersion": "116", + "firstJoinTime": "2023-04-26T20:30:34+00:00", + "ispName": "Comcast", + "osName": "Microsoft Windows 10 Pro", + "osVersion": "10.0.19044", + "participantId": "abCDEf12GHIj", + "published": true, + "recordingS3BucketName": "bucket-name", + "recordingS3Prefix": "abcdABCDefgh/st-a1b2c3d4e5f6g/abCDEf12GHIj/1234567890", + "recordingState": "ACTIVE", + "replicationState": "ACTIVE", + "replicationType": "SOURCE", + "sdkVersion": "", + "state": "CONNECTED", + "userId": "" + } + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon IVS Low-Latency Streaming User Guide*. + +**Example 3: To get a stage participant that has been replicated from another stage** + +The following ``get-participant`` example gets the stage participant for a specified participant ID and session ID in the specified stage ARN (Amazon Resource Name), when the participant has been replicated from another stage. :: + + aws ivs-realtime get-participant \ + --stage-arn arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh \ + --session-id st-a1b2c3d4e5f6g \ + --participant-id abCDEf12GHIj + +Output:: + + { + "participant": { + "browserName": "Google Chrome", + "browserVersion": "116", + "firstJoinTime": "2023-04-26T20:30:34+00:00", + "ispName": "Comcast", + "osName": "Microsoft Windows 10 Pro", + "osVersion": "10.0.19044", + "participantId": "abCDEf12GHIj", + "published": true, + "recordingS3BucketName": "bucket-name", + "recordingS3Prefix": "abcdABCDefgh/st-a1b2c3d4e5f6g/abCDEf12GHIj/1234567890", + "recordingState": "ACTIVE", + "replicationState": "ACTIVE", + "replicationType": "REPLICA", + "sdkVersion": "", + "state": "CONNECTED", + "userId": "" + } + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon IVS Low-Latency Streaming User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-public-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-public-key.rst new file mode 100644 index 000000000..642d0fb4c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-public-key.rst @@ -0,0 +1,20 @@ +**To get an existing public key used to sign stage participant tokens** + +The following ``get-public-key`` example gets a public key specified by the provided ARN, for sigining stage participant tokens. :: + + aws ivs-realtime get-public-key \ + --arn arn:aws:ivs:us-west-2:123456789012:public-key/abcdABC1efg2 + +Output:: + + { + "publicKey": { + "arn": "arn:aws:ivs:us-west-2:123456789012:public-key/abcdABC1efg2", + "name": "", + "publicKeyMaterial": "-----BEGIN PUBLIC KEY-----\nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEqVWUtqs6EktQMR1sCYmEzGvRwtaycI16\n9pmzcpiWu/uhNStGlteJ5odRfRwVkoQUMnSZXTCcbn9bBTTmiWo4mJcFOOAzsthH\n0UAb8NdD4tUE0At4a9hYP9IETEXAMPLE\n-----END PUBLIC KEY-----", + "fingerprint": "12:a3:44:56:bc:7d:e8:9f:10:2g:34:hi:56:78:90:12", + "tags": {} + } + } + +For more information, see `Distribute Participant Tokens `__ in the *Amazon IVS Real-Time Streaming User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-stage-session.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-stage-session.rst new file mode 100644 index 000000000..1e8aef282 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-stage-session.rst @@ -0,0 +1,19 @@ +**To get a stage session** + +The following ``get-stage-session`` example gets the stage session for a specified session ID of a specified stage ARN (Amazon Resource Name). :: + + aws ivs-realtime get-stage-session \ + --stage-arn arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh \ + --session-id st-a1b2c3d4e5f6g + +Output:: + + { + "stageSession": { + "endTime": "2023-04-26T20:36:29+00:00", + "sessionId": "st-a1b2c3d4e5f6g", + "startTime": "2023-04-26T20:30:29.602000+00:00" + } + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-stage.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-stage.rst new file mode 100644 index 000000000..c6198ef65 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-stage.rst @@ -0,0 +1,43 @@ +**To get a stage's configuration information** + +The following ``get-stage`` example gets the stage configuration for a specified stage ARN (Amazon Resource Name). :: + + aws ivs-realtime get-stage \ + --arn arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh + +Output:: + + { + "stage": { + "activeSessionId": "st-a1b2c3d4e5f6g", + "arn": "arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh", + "autoParticipantRecordingConfiguration": { + "storageConfigurationArn": "", + "mediaTypes": [ + "AUDIO_VIDEO" + ], + "thumbnailConfiguration": { + "targetIntervalSeconds": 60, + "storage": [ + "SEQUENTIAL" + ], + "recordingMode": "DISABLED" + }, + "recordingReconnectWindowSeconds": 0, + "hlsConfiguration": { + "targetSegmentDurationSeconds": 6 + }, + "recordParticipantReplicas": true + }, + "endpoints": { + "events": "wss://global.events.live-video.net", + "rtmp": "rtmp://9x0y8z7s6t5u.global-contribute-staging.live-video.net/app/", + "rtmps": "rtmps://9x0y8z7s6t5u.global-contribute-staging.live-video.net:443/app/", + "whip": "https://9x0y8z7s6t5u.global-bm.whip.live-video.net" + }, + "name": "test", + "tags": {} + } + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon IVS Low-Latency Streaming User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-storage-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-storage-configuration.rst new file mode 100644 index 000000000..c04c3c2cf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/get-storage-configuration.rst @@ -0,0 +1,21 @@ +**To get a composition storage configuration** + +The following ``get-storage-configuration`` example gets the composition storage configuration specified by the given ARN (Amazon Resource Name). :: + + aws ivs-realtime get-storage-configuration \ + --name arn "arn:aws:ivs:ap-northeast-1:123456789012:storage-configuration/abcdABCDefgh" + +Output:: + + { + "storageConfiguration": { + "arn": "arn:aws:ivs:ap-northeast-1:123456789012:storage-configuration/abcdABCDefgh", + "name": "test-sc", + "s3": { + "bucketName": "amzn-s3-demo-bucket" + }, + "tags": {} + } + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/import-public-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/import-public-key.rst new file mode 100644 index 000000000..ff6e78fee --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/import-public-key.rst @@ -0,0 +1,20 @@ +**To import an existing public key to be used to sign stage participant tokens** + +The following ``import-public-key`` example imports a public key from a material file, to be used for sigining stage participant tokens. :: + + aws ivs-realtime import-public-key \ + --public-key-material="`cat public.pem`" + +Output:: + + { + "publicKey": { + "arn": "arn:aws:ivs:us-west-2:123456789012:public-key/abcdABC1efg2", + "name": "", + "publicKeyMaterial": "-----BEGIN PUBLIC KEY-----\nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEqVWUtqs6EktQMR1sCYmEzGvRwtaycI16\n9pmzcpiWu/uhNStGlteJ5odRfRwVkoQUMnSZXTCcbn9bBTTmiWo4mJcFOOAzsthH\n0UAb8NdD4tUE0At4a9hYP9IETEXAMPLE\n-----END PUBLIC KEY-----", + "fingerprint": "12:a3:44:56:bc:7d:e8:9f:10:2g:34:hi:56:78:90:12", + "tags": {} + } + } + +For more information, see `Distribute Participant Tokens `__ in the *Amazon IVS Real-Time Streaming User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-compositions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-compositions.rst new file mode 100644 index 000000000..9a0409bce --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-compositions.rst @@ -0,0 +1,50 @@ +**To get a list of compositions** + +The following ``list-compositions`` lists all compositions for your AWS account, in the AWS region where the API request is processed. :: + + aws ivs-realtime list-compositions + +Output:: + + { + "compositions": [ + { + "arn": "arn:aws:ivs:ap-northeast-1:123456789012:composition/abcdABCDefgh", + "destinations": [ + { + "id": "AabBCcdDEefF", + "startTime": "2023-10-16T23:25:23+00:00", + "state": "ACTIVE" + } + ], + "stageArn": "arn:aws:ivs:ap-northeast-1:123456789012:stage/defgABCDabcd", + "startTime": "2023-10-16T23:25:21+00:00", + "state": "ACTIVE", + "tags": {} + }, + { + "arn": "arn:aws:ivs:ap-northeast-1:123456789012:composition/ABcdabCDefgh", + "destinations": [ + { + "endTime": "2023-10-16T23:25:00.786512+00:00", + "id": "aABbcCDdeEFf", + "startTime": "2023-10-16T23:24:01+00:00", + "state": "STOPPED" + }, + { + "endTime": "2023-10-16T23:25:00.786512+00:00", + "id": "deEFfaABbcCD", + "startTime": "2023-10-16T23:24:01+00:00", + "state": "STOPPED" + } + ], + "endTime": "2023-10-16T23:25:00+00:00", + "stageArn": "arn:aws:ivs:ap-northeast-1:123456789012:stage/efghabcdABCD", + "startTime": "2023-10-16T23:24:00+00:00", + "state": "STOPPED", + "tags": {} + } + ] + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-encoder-configurations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-encoder-configurations.rst new file mode 100644 index 000000000..3bbcbe265 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-encoder-configurations.rst @@ -0,0 +1,24 @@ +**To list composition encoder configurations** + +The following ``list-encoder-configurations`` lists all composition encoder configurations for your AWS account, in the AWS region where the API request is processed. :: + + aws ivs-realtime list-encoder-configurations + +Output:: + + { + "encoderConfigurations": [ + { + "arn": "arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/abcdABCDefgh", + "name": "test-ec-1", + "tags": {} + }, + { + "arn": "arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABCefgEFGabc", + "name": "test-ec-2", + "tags": {} + } + ] + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-ingest-configurations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-ingest-configurations.rst new file mode 100644 index 000000000..842348c03 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-ingest-configurations.rst @@ -0,0 +1,23 @@ +**To get summary information about all ingest configurations** + +The following ``list-ingest-configurations`` example lists all ingest configurations for your AWS account, in the AWS region where the API request is processed. :: + + aws ivs-realtime list-ingest-configurations + +Output:: + + { + "ingestConfigurations": [ + { + "name": "", + "arn": "arn:aws:ivs:us-west-2:123456789012:ingest-configuration/XYZuvwSt4567", + "ingestProtocol": "RTMPS", + "stageArn": "arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh", + "participnatId": "abC789Xyz456", + "state": "INACTIVE" + "userId": "", + } + ] + } + +For more information, see `IVS Stream Ingest | Real-Time Streaming `__ in the *Amazon Interactive Video Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-participant-events.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-participant-events.rst new file mode 100644 index 000000000..b3061aa97 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-participant-events.rst @@ -0,0 +1,89 @@ +**Example 1: To get a list of stage participant events** + +The following ``list-participant-events`` example lists all participant events for a specified participant ID and session ID of a specified stage ARN (Amazon Resource Name). :: + + aws ivs-realtime list-participant-events \ + --stage-arn arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh \ + --session-id st-a1b2c3d4e5f6g \ + --participant-id abCDEf12GHIj + +Output:: + + { + "events": [ + { + "eventTime": "2023-04-26T20:36:28+00:00", + "name": "LEFT", + "participantId": "abCDEf12GHIj" + }, + { + "eventTime": "2023-04-26T20:36:28+00:00", + "name": "PUBLISH_STOPPED", + "participantId": "abCDEf12GHIj" + }, + { + "eventTime": "2023-04-26T20:30:34+00:00", + "name": "JOINED", + "participantId": "abCDEf12GHIj" + }, + { + "eventTime": "2023-04-26T20:30:34+00:00", + "name": "PUBLISH_STARTED", + "participantId": "abCDEf12GHIj" + } + ] + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon IVS Low-Latency Streaming User Guide*. + +**Example 2: To get a list of stage participant events, including participant replication stop and start** + +The following ``list-participant-events`` example lists all participant events for a specified session ID of a specified stage ARN (Amazon Resource Name), where a participant is replicated to another stage. :: + + aws ivs-realtime list-participant-events \ + --stage-arn arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh \ + --session-id st-a1b2c3d4e5f6g \ + --participant-id abCDEf12GHIj + +Output:: + + { + "events": [ + { + "eventTime": "2025-04-26T20:36:28+00:00", + "name": "LEFT", + "participantId": "abCDEf12GHIj" + }, + { + "eventTime": "2025-04-26T20:36:28+00:00", + "name": "PUBLISH_STOPPED", + "participantId": "abCDEf12GHIj" + }, + { + "eventTime": "2025-04-26T20:30:34+00:00", + "name": "JOINED", + "participantId": "abCDEf12GHIj" + }, + { + "eventTime": "2025-04-26T20:30:34+00:00", + "name": "PUBLISH_STARTED", + "participantId": "abCDEf12GHIj" + }, + { + "name": "REPLICATION_STARTED", + "participantId": "abCDEf12GHIj", + "eventTime": "2025-04-26T20:30:34+00:00", + "destinationStageArn": "arn:aws:ivs:us-west-2:12345678901:stage/ABCDabcdefgh", + "destinationSessionId": "st-b1c2d3e4f5g6a" + }, + { + "name": "REPLICATION_STOPPED", + "participantId": "abCDEf12GHIj", + "eventTime": "2025-04-26T20:32:34+00:00", + "destinationStageArn": "arn:aws:ivs:us-west-2:12345678901:stage/ABCDabcdefgh", + "destinationSessionId": "st-b1c2d3e4f5g6a" + } + ] + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon IVS Low-Latency Streaming User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-participant-replicas.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-participant-replicas.rst new file mode 100644 index 000000000..771e8d653 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-participant-replicas.rst @@ -0,0 +1,24 @@ +**To get a list of stage participant replicas** + +The following ``list-participant-replicas`` example lists all stage participants replicated from the specified source stage ARN (Amazon Resource Name) to another stage. :: + + aws ivs-realtime list-participant-replicas \ + --source-stage-arn arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh \ + --participant-id abCDEf12GHIj + +Output:: + + { + "replicas": [ + { + "sourceStageArn": "arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh", + "participantId": "abCDEf12GHIj", + "sourceSessionId": "st-a1b2c3d4e5f6g", + "destinationStageArn": "arn:aws:ivs:us-west-2:012345678901:stage/ABCDabcdefgh", + "destinationSessionId": "st-b1c2d3e4f5g6a", + "replicationState": "ACTIVE" + } + ] + } + +For more information, see `IVS Participant Replication `__ in the *Amazon IVS Real-Time Streaming User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-participants.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-participants.rst new file mode 100644 index 000000000..366e6924c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-participants.rst @@ -0,0 +1,82 @@ +**Example 1: To get a list of stage participants** + +The following ``list-participants`` example lists all participants for a specified session ID of a specified stage ARN (Amazon Resource Name). :: + + aws ivs-realtime list-participants \ + --stage-arn arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh \ + --session-id st-a1b2c3d4e5f6g + +Output:: + + { + "participants": [ + { + "firstJoinTime": "2023-04-26T20:30:34+00:00", + "participantId": "abCDEf12GHIj", + "published": true, + "recordingState": "STOPPED", + "state": "DISCONNECTED", + "userId": "" + } + ] + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon IVS Low-Latency Streaming User Guide*. + +**Example 2: To get a list of stage participants, when a participant has been replicated to another stage** + +The following ``list-participants`` example lists all participants for a specified session ID of a specified stage ARN (Amazon Resource Name), when a participant has been replicated to another stage. :: + + aws ivs-realtime list-participants \ + --stage-arn arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh \ + --session-id st-a1b2c3d4e5f6g + +Output:: + + { + "participants": [ + { + "firstJoinTime": "2023-04-26T20:30:34+00:00", + "participantId": "abCDEf12GHIj", + "published": true, + "recordingState": "STOPPED", + "state": "DISCONNECTED", + "userId": "", + "replicationState": "ACTIVE", + "replicationType": "SOURCE", + "sourceStageArn": "", + "sourceSessionId": "" + } + ] + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon IVS Low-Latency Streaming User Guide*. + +**Example 3: To get a list of stage participants, when a participant has been replicated from another stage** + +The following ``list-participants`` example lists all participants for a specified session ID of a specified stage ARN (Amazon Resource Name), when a participant has been replicated from another stage. :: + + aws ivs-realtime list-participants \ + --stage-arn arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh \ + --session-id st-a1b2c3d4e5f6g + +Output:: + + { + "participants": [ + { + "firstJoinTime": "2023-04-26T20:30:34+00:00", + "participantId": "abCDEf12GHIj", + "published": true, + "recordingState": "STOPPED", + "state": "DISCONNECTED", + "userId": "", + "replicationState": "ACTIVE", + "replicationType": "REPLICA", + "sourceStageArn": "arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh", + "sourceSessionId": "st-a1b2c3d4e5f6g" + } + ] + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon IVS Low-Latency Streaming User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-public-keys.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-public-keys.rst new file mode 100644 index 000000000..c2d45027e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-public-keys.rst @@ -0,0 +1,24 @@ +**To list existing public keys available to sign stage participant tokens** + +The following ``list-public-keys`` example lists all public keys available for sigining stage participant tokens, in the AWS region where the API request is processed. :: + + aws ivs-realtime list-public-keys + +Output:: + + { + "publicKeys": [ + { + "arn": "arn:aws:ivs:us-west-2:123456789012:public-key/abcdABC1efg2", + "name": "", + "tags": {} + }, + { + "arn": "arn:aws:ivs:us-west-2:123456789012:public-key/3bcdABCDefg4", + "name": "", + "tags": {} + } + ] + } + +For more information, see `Distribute Participant Tokens `__ in the *Amazon IVS Real-Time Streaming User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-stage-sessions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-stage-sessions.rst new file mode 100644 index 000000000..d986cc47f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-stage-sessions.rst @@ -0,0 +1,20 @@ +**To get a list of stage sessions** + +The following ``list-stage-sessions`` example lists all sessions for a specified stage ARN (Amazon Resource Name). :: + + aws ivs-realtime list-stage-sessions \ + --stage-arn arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh + +Output:: + + { + "stageSessions": [ + { + "endTime": "2023-04-26T20:36:29+00:00", + "sessionId": "st-a1b2c3d4e5f6g", + "startTime": "2023-04-26T20:30:29.602000+00:00" + } + ] + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-stages.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-stages.rst new file mode 100644 index 000000000..4aa41e517 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-stages.rst @@ -0,0 +1,32 @@ +**To get summary information about all stages** + +The following ``list-stages`` example lists all stages for your AWS account, in the AWS region where the API request is processed. :: + + aws ivs-realtime list-stages + +Output:: + + { + "stages": [ + { + "activeSessionId": "st-a1b2c3d4e5f6g", + "arn": "arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh", + "name": "stage1", + "tags": {} + }, + { + "activeSessionId": "st-a123bcd456efg", + "arn": "arn:aws:ivs:us-west-2:123456789012:stage/abcd1234ABCD", + "name": "stage2", + "tags": {} + }, + { + "activeSessionId": "st-abcDEF1234ghi", + "arn": "arn:aws:ivs:us-west-2:123456789012:stage/ABCD1234efgh", + "name": "stage3", + "tags": {} + } + ] + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-storage-configurations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-storage-configurations.rst new file mode 100644 index 000000000..11bd1f872 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/list-storage-configurations.rst @@ -0,0 +1,30 @@ +**To list composition storage configurations** + +The following ``list-storage-configurations`` lists all composition storage configurations for your AWS account, in the AWS region where the API request is processed. :: + + aws ivs-realtime list-storage-configurations + +Output:: + + { + "storageConfigurations": [ + { + "arn": "arn:aws:ivs:ap-northeast-1:123456789012:storage-configuration/abcdABCDefgh", + "name": "test-sc-1", + "s3": { + "bucketName": "amzn-s3-demo-bucket-1" + }, + "tags": {} + }, + { + "arn": "arn:aws:ivs:ap-northeast-1:123456789012:storage-configuration/ABCefgEFGabc", + "name": "test-sc-2", + "s3": { + "bucketName": "amzn-s3-demo-bucket-2" + }, + "tags": {} + } + ] + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/start-composition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/start-composition.rst new file mode 100644 index 000000000..48814ca68 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/start-composition.rst @@ -0,0 +1,311 @@ +**Example 1: To start a composition with default layout settings** + +The following ``start-composition`` example starts a composition for the specified stage to be streamed to the specified locations. :: + + aws ivs-realtime start-composition \ + --stage-arn arn:aws:ivs:ap-northeast-1:123456789012:stage/defgABCDabcd \ + --destinations '[{"channel": {"channelArn": "arn:aws:ivs:ap-northeast-1:123456789012:channel/abcABCdefDEg", \ + "encoderConfigurationArn": "arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef"}}, \ + {"s3":{"encoderConfigurationArns":["arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef"], \ + "recordingConfiguration": {"hlsConfiguration": {"targetSegmentDurationSeconds": 5}}, \ + "storageConfigurationArn":"arn:aws:ivs:ap-northeast-1:123456789012:storage-configuration/FefABabCDcdE"}}]' + +Output:: + + { + "composition": { + "arn": "arn:aws:ivs:ap-northeast-1:123456789012:composition/abcdABCDefgh", + "destinations": [ + { + "configuration": { + "channel": { + "channelArn": "arn:aws:ivs:ap-northeast-1:123456789012:channel/abcABCdefDEg", + "encoderConfigurationArn": "arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef" + }, + "name": "" + }, + "id": "AabBCcdDEefF", + "state": "STARTING" + }, + { + "configuration": { + "name": "", + "s3": { + "encoderConfigurationArns": [ + "arn:aws:ivs:arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef" + ], + "recordingConfiguration": { + "format": "HLS", + "hlsConfiguration": { + "targetSegmentDurationSeconds": 5 + } + }, + "storageConfigurationArn": "arn:arn:aws:ivs:ap-northeast-1:123456789012:storage-configuration/FefABabCDcdE" + } + }, + "detail": { + "s3": { + "recordingPrefix": "aBcDeFgHhGfE/AbCdEfGhHgFe/GHFabcgefABC/composite" + } + }, + "id": "GHFabcgefABC", + "state": "STARTING" + } + ], + "layout": { + "grid": { + "featuredParticipantAttribute": "" + "gridGap": 2, + "omitStoppedVideo": false, + "participantOrderAttribute": "", + "videoAspectRatio": "VIDEO", + "videoFillMode": "" + } + }, + "stageArn": "arn:aws:ivs:ap-northeast-1:123456789012:stage/defgABCDabcd", + "startTime": "2023-10-16T23:24:00+00:00", + "state": "STARTING", + "tags": {} + } + } + +For more information, see `IVS Composite Recording | Real-Time Streaming `__ in the *Amazon Interactive Video Service User Guide*. + +**Example 2: To start a composition with PiP layout** + +The following ``start-composition`` example starts a composition for the specified stage to be streamed to the specified locations using PiP layout. :: + + aws ivs-realtime start-composition \ + --stage-arn arn:aws:ivs:ap-northeast-1:123456789012:stage/defgABCDabcd \ + --destinations '[{"channel": {"channelArn": "arn:aws:ivs:ap-northeast-1:123456789012:channel/abcABCdefDEg", \ + "encoderConfigurationArn": "arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef"}}, \ + {"s3":{"encoderConfigurationArns":["arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef"], \ + "storageConfigurationArn":"arn:aws:ivs:ap-northeast-1:123456789012:storage-configuration/FefABabCDcdE"}}]' \ + --layout pip='{featuredParticipantAttribute="abcdefg"}' + +Output:: + + { + "composition": { + "arn": "arn:aws:ivs:ap-northeast-1:123456789012:composition/wxyzWXYZpqrs", + "destinations": [ + { + "configuration": { + "channel": { + "channelArn": "arn:aws:ivs:ap-northeast-1:123456789012:channel/abcABCdefDEg", + "encoderConfigurationArn": "arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef" + }, + "name": "" + }, + "id": "AabBCcdDEefF", + "state": "STARTING" + }, + { + "configuration": { + "name": "", + "s3": { + "encoderConfigurationArns": [ + "arn:aws:ivs:arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef" + ], + "recordingConfiguration": { + "format": "HLS", + "hlsConfiguration": { + "targetSegmentDurationSeconds": 2 + } + }, + "storageConfigurationArn": "arn:arn:aws:ivs:ap-northeast-1:123456789012:storage-configuration/FefABabCDcdE" + } + }, + "detail": { + "s3": { + "recordingPrefix": "aBcDeFgHhGfE/AbCdEfGhHgFe/GHFabcgefABC/composite" + } + }, + "id": "GHFabcgefABC", + "state": "STARTING" + } + ], + "layout": { + "pip": { + "featuredParticipantAttribute": "abcdefg", + "gridGap": 0, + "omitStoppedVideo": false, + "participantOrderAttribute": "", + "pipBehavior": "STATIC", + "pipOffset": 0, + "pipParticipantAttribute": "", + "pipPosition": "BOTTOM_RIGHT", + "videoFillMode": "COVER" + } + }, + "stageArn": "arn:aws:ivs:ap-northeast-1:123456789012:stage/defgABCDabcd", + "startTime": "2023-10-16T23:24:00+00:00", + "state": "STARTING", + "tags": {} + } + } + +For more information, see `IVS Composite Recording | Real-Time Streaming `__ in the *Amazon Interactive Video Service User Guide*. + +**Example 3: To start a composition with thumbnail recording enabled** + +The following ``start-composition`` example starts a composition for the specified stage to be streamed to the specified locations with thumbnail recording enabled. :: + + aws ivs-realtime start-composition \ + --stage-arn arn:aws:ivs:ap-northeast-1:123456789012:stage/defgABCDabcd \ + --destinations '[{"channel": {"channelArn": "arn:aws:ivs:ap-northeast-1:123456789012:channel/abcABCdefDEg", \ + "encoderConfigurationArn": "arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef"}}, \ + {"s3": {"encoderConfigurationArns": ["arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef"], \ + "storageConfigurationArn": "arn:aws:ivs:ap-northeast-1:123456789012:storage-configuration/FefABabCDcdE", \ + "thumbnailConfigurations": [{"storage": ["SEQUENTIAL"],"targetIntervalSeconds": 60}]}}]' + +Output:: + + { + "composition": { + "arn": "arn:aws:ivs:ap-northeast-1:123456789012:composition/abcdABCDefgh", + "destinations": [ + { + "configuration": { + "channel": { + "channelArn": "arn:aws:ivs:ap-northeast-1:123456789012:channel/abcABCdefDEg", + "encoderConfigurationArn": "arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef" + }, + "name": "" + }, + "id": "AabBCcdDEefF", + "state": "STARTING" + }, + { + "configuration": { + "name": "", + "s3": { + "encoderConfigurationArns": [ + "arn:aws:ivs:arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef" + ], + "recordingConfiguration": { + "format": "HLS", + "hlsConfiguration": { + "targetSegmentDurationSeconds": 2 + } + }, + "storageConfigurationArn": "arn:arn:aws:ivs:ap-northeast-1:123456789012:storage-configuration/FefABabCDcdE", + "thumbnailConfigurations": [ + { + "targetIntervalSeconds": 60, + "storage": [ + "SEQUENTIAL" + ] + } + ] + } + }, + "detail": { + "s3": { + "recordingPrefix": "aBcDeFgHhGfE/AbCdEfGhHgFe/GHFabcgefABC/composite" + } + }, + "id": "GHFabcgefABC", + "state": "STARTING" + } + ], + "layout": { + "grid": { + "featuredParticipantAttribute": "" + "gridGap": 2, + "omitStoppedVideo": false, + "participantOrderAttribute": "", + "videoAspectRatio": "VIDEO", + "videoFillMode": "" + } + }, + "stageArn": "arn:aws:ivs:ap-northeast-1:123456789012:stage/defgABCDabcd", + "startTime": "2023-10-16T23:24:00+00:00", + "state": "STARTING", + "tags": {} + } + } + +For more information, see `Composite Recording (Real-Time Streaming) `__ in the *Amazon Interactive Video Service User Guide*. + +**Example 4: To start a composition using grid layout with custom participant ordering** + +The following ``start-composition`` example starts a composition for the specified stage to be streamed to the specified locations using grid layout with custom participant ordering. :: + + aws ivs-realtime start-composition \ + --stage-arn arn:aws:ivs:ap-northeast-1:123456789012:stage/defgABCDabcd \ + --destinations '[{"channel": {"channelArn": "arn:aws:ivs:ap-northeast-1:123456789012:channel/abcABCdefDEg", \ + "encoderConfigurationArn": "arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef"}}, \ + {"s3": {"encoderConfigurationArns": ["arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef"], \ + "storageConfigurationArn": "arn:aws:ivs:ap-northeast-1:123456789012:storage-configuration/FefABabCDcdE", \ + "thumbnailConfigurations": [{"storage": ["SEQUENTIAL"],"targetIntervalSeconds": 60}]}}]' \ + --layout grid='{participantOrderAttribute="abcdefg"}' + +Output:: + + { + "composition": { + "arn": "arn:aws:ivs:ap-northeast-1:123456789012:composition/abcdABCDefgh", + "destinations": [ + { + "configuration": { + "channel": { + "channelArn": "arn:aws:ivs:ap-northeast-1:123456789012:channel/abcABCdefDEg", + "encoderConfigurationArn": "arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef" + }, + "name": "" + }, + "id": "AabBCcdDEefF", + "state": "STARTING" + }, + { + "configuration": { + "name": "", + "s3": { + "encoderConfigurationArns": [ + "arn:aws:ivs:arn:aws:ivs:ap-northeast-1:123456789012:encoder-configuration/ABabCDcdEFef" + ], + "recordingConfiguration": { + "format": "HLS", + "hlsConfiguration": { + "targetSegmentDurationSeconds": 2 + } + }, + "storageConfigurationArn": "arn:arn:aws:ivs:ap-northeast-1:123456789012:storage-configuration/FefABabCDcdE", + "thumbnailConfigurations": [ + { + "targetIntervalSeconds": 60, + "storage": [ + "SEQUENTIAL" + ] + } + ] + } + }, + "detail": { + "s3": { + "recordingPrefix": "aBcDeFgHhGfE/AbCdEfGhHgFe/GHFabcgefABC/composite" + } + }, + "id": "GHFabcgefABC", + "state": "STARTING" + } + ], + "layout": { + "grid": { + "featuredParticipantAttribute": "" + "gridGap": 2, + "omitStoppedVideo": false, + "participantOrderAttribute": "abcdefg", + "videoAspectRatio": "VIDEO", + "videoFillMode": "" + } + }, + "stageArn": "arn:aws:ivs:ap-northeast-1:123456789012:stage/defgABCDabcd", + "startTime": "2023-10-16T23:24:00+00:00", + "state": "STARTING", + "tags": {} + } + } + +For more information, see `IVS Composite Recording | Real-Time Streaming `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/start-participant-replication.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/start-participant-replication.rst new file mode 100644 index 000000000..379d8dbd9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/start-participant-replication.rst @@ -0,0 +1,24 @@ +**To start replicating a participant from one stage to another stage** + +The following ``start-participant-replication`` example replicates a participant from a source stage to a destination stage, with each stage specified by its ARN (Amazon Resource Name). :: + + aws ivs-realtime start-participant-replication \ + --source-stage-arn arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh \ + --destination-stage-arn arn:aws:ivs:us-west-2:234567890123:stage/bcdABCDefghi \ + --participant-id abCDEf12GHIj + +Output:: + + { + "accessControlAllowOrigin": "*", + "accessControlExposeHeaders": "Access-Control-Allow-Origin,Access-Control-Expose-Headers,Cache-Control,Content-Length, \ + Content-Security-Policy,Content-Type,date,Strict-Transport-Security,x-amz-apigw-id,x-amzn-errormessage,x-amzn-errortype, \ + x-amzn-requestid,x-amzn-trace-id,X-Content-Type-Options,X-Frame-Options", + "cacheControl": "no-store, no-cache", + "contentSecurityPolicy": "default-src 'self'; upgrade-insecure-requests;", + "strictTransportSecurity": "max-age:47304000; includeSubDomains", + "xContentTypeOptions": "nosniff", + "xFrameOptions": "DENY" + } + +For more information, see `IVS Participant Replication `__ in the *Amazon IVS Real-Time Streaming User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/stop-composition.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/stop-composition.rst new file mode 100644 index 000000000..e88e78bdc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/stop-composition.rst @@ -0,0 +1,10 @@ +**To stop a composition** + +The following ``stop-composition`` stops the composition specified by the given ARN (Amazon Resource Name). :: + + aws ivs-realtime stop-composition \ + --arn "arn:aws:ivs:ap-northeast-1:123456789012:composition/abcdABCDefgh" + +This command produces no output. + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/stop-participant-replication.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/stop-participant-replication.rst new file mode 100644 index 000000000..b88134883 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/stop-participant-replication.rst @@ -0,0 +1,24 @@ +**To stop replicating a participant from one stage to another stage** + +The following ``stop-participant-replication`` example stops replicating a participant from a source stage to a destination stage, with each stage specified by its ARN (Amazon Resource Name). :: + + aws ivs-realtime stop-participant-replication \ + --source-stage-arn arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh \ + --destination-stage-arn arn:aws:ivs:us-west-2:234567890123:stage/bcdABCDefghi \ + --participant-id abCDEf12GHIj + +Output:: + + { + "accessControlAllowOrigin": "*", + "accessControlExposeHeaders": "Access-Control-Allow-Origin,Access-Control-Expose-Headers,Cache-Control,Content-Length, \ + Content-Security-Policy,Content-Type,date,Strict-Transport-Security,x-amz-apigw-id,x-amzn-errormessage,x-amzn-errortype, \ + x-amzn-requestid,x-amzn-trace-id,X-Content-Type-Options,X-Frame-Options", + "cacheControl": "no-store, no-cache", + "contentSecurityPolicy": "default-src 'self'; upgrade-insecure-requests;", + "strictTransportSecurity": "max-age:47304000; includeSubDomains", + "xContentTypeOptions": "nosniff", + "xFrameOptions": "DENY" + } + +For more information, see `IVS Participant Replication `__ in the *Amazon IVS Real-Time Streaming User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/update-ingest-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/update-ingest-configuration.rst new file mode 100644 index 000000000..990416099 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/update-ingest-configuration.rst @@ -0,0 +1,25 @@ +**To update an ingest configuration** + +The following ``update-inegst-configuration`` example updates an ingest configuration to attach it to a stage. :: + + aws ivs-realtime update-ingest-configuration \ + --arn arn:aws:ivs:us-west-2:123456789012:ingest-configuration/AbCdEfGh1234 \ + --stage-arn arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh + +Output:: + + { + "ingestConfiguration": { + "name": "ingest1", + "arn": "arn:aws:ivs:us-west-2:123456789012:ingest-configuration/AbCdEfGh1234", + "ingestProtocol": "RTMPS", + "streamKey": "rt_123456789012_us-west-2_AbCdEfGh1234_abcd1234efgh5678ijkl9012MNOP34", + "stageArn": "arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh", + "participantId": "xyZ654abC321", + "state": "INACTIVE", + "userId": "", + "tags": {} + } + } + +For more information, see `IVS Stream Ingest | Real-Time Streaming `__ in the *Amazon Interactive Video Service User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/update-stage.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/update-stage.rst new file mode 100644 index 000000000..3a4050c57 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs-realtime/update-stage.rst @@ -0,0 +1,93 @@ +**Example 1: To update a stage's configuration** + +The following ``update-stage`` example updates a stage for a specified stage ARN to update the stage name and configure individual participant recording with thumbnail recording enabled. :: + + aws ivs-realtime update-stage \ + --arn arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh \ + --auto-participant-recording-configuration '{"mediaTypes": ["AUDIO_VIDEO"],"storageConfigurationArn": "arn:aws:ivs:us-west-2:123456789012:storage-configuration/abcdABCDefgh", "recordingReconnectWindowSeconds": 100, \ + "thumbnailConfiguration": {"recordingMode": "INTERVAL","storage": ["SEQUENTIAL"],"targetIntervalSeconds": 60}} \ + "hlsConfiguration": {"targetSegmentDurationSeconds": 5}}' \ + --name stage1a + +Output:: + + { + "stage": { + "arn": "arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh", + "autoParticipantRecordingConfiguration": { + "mediaTypes": [ + "AUDIO_VIDEO" + ], + "storageConfigurationArn": "arn:aws:ivs:us-west-2:123456789012:storage-configuration/abcdABCDefgh", + "thumbnailConfiguration": { + "targetIntervalSeconds": 60, + "storage": [ + "SEQUENTIAL" + ], + "recordingMode": "INTERVAL" + }, + "recordingReconnectWindowSeconds": 100, + "hlsConfiguration": { + "targetSegmentDurationSeconds": 5 + }, + "recordParticipantReplicas": true + }, + "endpoints": { + "events": "wss://global.events.live-video.net", + "rtmp": "rtmp://9x0y8z7s6t5u.global-contribute-staging.live-video.net/app/", + "rtmps": "rtmps://9x0y8z7s6t5u.global-contribute-staging.live-video.net:443/app/", + "whip": "https://1a2b3c4d5e6f.global-bm.whip.live-video.net" + }, + "name": "stage1a", + "tags": {} + } + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon IVS Low-Latency Streaming User Guide*. + +**Example 2: To update a stage's configuration, including disabling participant replica recording** + +The following ``update-stage`` example updates a stage for a specified stage ARN to update the stage name and configure individual participant recording with thumbnail recording enabled and participant replica recording disabled. :: + + aws ivs-realtime update-stage \ + --arn arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh \ + --auto-participant-recording-configuration '{"mediaTypes": ["AUDIO_VIDEO"],"storageConfigurationArn": "arn:aws:ivs:us-west-2:123456789012:storage-configuration/abcdABCDefgh", "recordingReconnectWindowSeconds": 100, \ + "thumbnailConfiguration": {"recordingMode": "INTERVAL","storage": ["SEQUENTIAL"],"targetIntervalSeconds": 60}, "recordParticipantReplicas":false} \ + "hlsConfiguration": {"targetSegmentDurationSeconds": 5}}' \ + --name stage1a + +Output:: + + { + "stage": { + "arn": "arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh", + "autoParticipantRecordingConfiguration": { + "mediaTypes": [ + "AUDIO_VIDEO" + ], + "storageConfigurationArn": "arn:aws:ivs:us-west-2:123456789012:storage-configuration/abcdABCDefgh", + "thumbnailConfiguration": { + "targetIntervalSeconds": 60, + "storage": [ + "SEQUENTIAL" + ], + "recordingMode": "INTERVAL" + }, + "recordingReconnectWindowSeconds": 100, + "hlsConfiguration": { + "targetSegmentDurationSeconds": 5 + }, + "recordParticipantReplicas": false + }, + "endpoints": { + "events": "wss://global.events.live-video.net", + "rtmp": "rtmp://9x0y8z7s6t5u.global-contribute-staging.live-video.net/app/", + "rtmps": "rtmps://9x0y8z7s6t5u.global-contribute-staging.live-video.net:443/app/", + "whip": "https://1a2b3c4d5e6f.global-bm.whip.live-video.net" + }, + "name": "stage1a", + "tags": {} + } + } + +For more information, see `Enabling Multiple Hosts on an Amazon IVS Stream `__ in the *Amazon IVS Low-Latency Streaming User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/batch-get-channel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/batch-get-channel.rst new file mode 100644 index 000000000..9c97daf96 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/batch-get-channel.rst @@ -0,0 +1,64 @@ +**To get channel configuration information about multiple channels** + +The following ``batch-get-channel`` example lists information about the specified channels. :: + + aws ivs batch-get-channel \ + --arns arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh \ + arn:aws:ivs:us-west-2:123456789012:channel/efghEFGHijkl + +Output:: + + { + "channels": [ + { + "arn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "authorized": false, + "containerFormat": "TS", + "ingestEndpoint": "a1b2c3d4e5f6.global-contribute.live-video.net", + "insecureIngest": false, + "latencyMode": "LOW", + "multitrackInputConfiguration": { + "enabled": false, + "maximumResolution": "FULL_HD", + "policy": "ALLOW" + }, + "name": "channel-1", + "playbackUrl": "https://a1b2c3d4e5f6.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel-1.abcdEFGH.m3u8", + "preset": "", + "playbackRestrictionPolicyArn": "", + "recordingConfigurationArn": "arn:aws:ivs:us-west-2:123456789012:recording-configuration/ABCD12cdEFgh", + "srt": { + "endpoint": "a1b2c3d4e5f6.srt.live-video.net", + "passphrase": "AB1C2defGHijkLMNo3PqQRstUvwxyzaBCDEfghh4ijklMN5opqrStuVWxyzAbCDEfghIJ" + }, + "tags": {}, + "type": "STANDARD" + }, + { + "arn": "arn:aws:ivs:us-west-2:123456789012:channel/efghEFGHijkl", + "authorized": false, + "containerFormat": "FRAGMENTED_MP4", + "ingestEndpoint": "a1b2c3d4e5f6.global-contribute.live-video.net", + "insecureIngest": false, + "latencyMode": "LOW", + "multitrackInputConfiguration": { + "enabled": true, + "maximumResolution": "FULL_HD", + "policy": "ALLOW" + }, + "name": "channel-2", + "playbackUrl": "https://a1b2c3d4e5f6.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel-2.abcdEFGH.m3u8", + "preset": "", + "playbackRestrictionPolicyArn": "arn:aws:ivs:us-west-2:123456789012:playback-restriction-policy/ABcdef34ghIJ"", + "recordingConfigurationArn": "", + "srt": { + "endpoint": "a1b2c3d4e5f6.srt.live-video.net", + "passphrase": "BA1C2defGHijkLMNo3PqQRstUvwxyzaBCDEfghh4ijklMN5opqrStuVWxyzAbCDEfghIJ" + }, + "tags": {}, + "type": "STANDARD" + } + ] + } + +For more information, see `Create a Channel `__ in the *IVS Low-Latency User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/batch-get-stream-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/batch-get-stream-key.rst new file mode 100644 index 000000000..226e83c4c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/batch-get-stream-key.rst @@ -0,0 +1,28 @@ +**To get information about multiple stream keys** + +The following ``batch-get-stream-key`` example gets information about the specified stream keys. :: + + aws ivs batch-get-stream-key \ + --arns arn:aws:ivs:us-west-2:123456789012:stream-key/skSKABCDefgh \ + arn:aws:ivs:us-west-2:123456789012:stream-key/skSKIJKLmnop + +Output:: + + { + "streamKeys": [ + { + "arn": "arn:aws:ivs:us-west-2:123456789012:stream-key/skSKABCDefgh", + "value": "sk_us-west-2_abcdABCDefgh_567890abcdef", + "channelArn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "tags": {} + }, + { + "arn": "arn:aws:ivs:us-west-2:123456789012:stream-key/skSKIJKLmnop", + "value": "sk_us-west-2_abcdABCDefgh_567890ghijkl", + "channelArn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "tags": {} + } + ] + } + +For more information, see `Create a Channel `__ in the *IVS Low-Latency User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/batch-start-viewer-session-revocation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/batch-start-viewer-session-revocation.rst new file mode 100644 index 000000000..e0d8b8e32 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/batch-start-viewer-session-revocation.rst @@ -0,0 +1,28 @@ +**To revoke viewer sessions for multiple channel-ARN and viewer-ID pairs** + +The following ``batch-start-viewer-session-revocation`` example performs session revocation on multiple channel-ARN and viewer-ID pairs simultaneously. The request may complete normally but return values in the errors field if the caller does not have permission to revoke specified session. :: + + aws ivs batch-start-viewer-session-revocation \ + --viewer-sessions '[{"channelArn":"arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh1","viewerId":"abcdefg1","viewerSessionVersionsLessThanOrEqualTo":1234567890}, \ + {"channelArn":"arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh2","viewerId":"abcdefg2","viewerSessionVersionsLessThanOrEqualTo":1234567890}]' + +Output:: + + { + "errors": [ + { + "channelArn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh1", + "viewerId": "abcdefg1", + "code": "403", + "message": "not authorized", + }, + { + "channelArn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh2", + "viewerId": "abcdefg2", + "code": "403", + "message": "not authorized", + } + ] + } + +For more information, see `Setting Up Private Channels `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/create-channel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/create-channel.rst new file mode 100644 index 000000000..1248f54a7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/create-channel.rst @@ -0,0 +1,185 @@ +**Example 1: To create a channel with no recording** + +The following ``create-channel`` example creates a new channel and an associated stream key to start streaming. :: + + aws ivs create-channel \ + --name 'test-channel' \ + --no-insecure-ingest + +Output:: + + { + "channel": { + "arn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "authorized": false, + "containerFormat": "TS", + "name": "test-channel", + "latencyMode": "LOW", + "multitrackInputConfiguration": { + "enabled": false, + "maximumResolution": "FULL_HD", + "policy": "ALLOW" + }, + "playbackRestrictionPolicyArn": "", + "recordingConfigurationArn": "", + "srt": { + "endpoint": "a1b2c3d4e5f6.srt.live-video.net", + "passphrase": "AB1C2defGHijkLMNo3PqQRstUvwxyzaBCDEfghh4ijklMN5opqrStuVWxyzAbCDEfghIJ" + }, + "ingestEndpoint": "a1b2c3d4e5f6.global-contribute.live-video.net", + "insecureIngest": false, + "playbackUrl": "https://a1b2c3d4e5f6.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel.abcdEFGH.m3u8", + "preset": "", + "tags": {}, + "type": "STANDARD" + }, + "streamKey": { + "arn": "arn:aws:ivs:us-west-2:123456789012:stream-key/g1H2I3j4k5L6", + "value": "sk_us-west-2_abcdABCDefgh_567890abcdef", + "channelArn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "tags": {} + } + } + +For more information, see `Create a Channel `__ in the *IVS Low-Latency User Guide*. + +**Example 2: To create a channel with recording enabled, using the RecordingConfiguration resource specified by its ARN** + +The following ``create-channel`` example creates a new channel and an associated stream key to start streaming, and sets up recording for the channel:: + + aws ivs create-channel \ + --name test-channel-with-recording \ + --insecure-ingest \ + --recording-configuration-arn 'arn:aws:ivs:us-west-2:123456789012:recording-configuration/ABCD12cdEFgh' + +Output:: + + { + "channel": { + "arn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "containerFormat": "TS", + "name": "test-channel-with-recording", + "latencyMode": "LOW", + "multitrackInputConfiguration": { + "enabled": false, + "maximumResolution": "FULL_HD", + "policy": "ALLOW" + }, + "type": "STANDARD", + "playbackRestrictionPolicyArn": "", + "recordingConfigurationArn": "arn:aws:ivs:us-west-2:123456789012:recording-configuration/ABCD12cdEFgh", + "srt": { + "endpoint": "a1b2c3d4e5f6.srt.live-video.net", + "passphrase": "BA1C2defGHijkLMNo3PqQRstUvwxyzaBCDEfghh4ijklMN5opqrStuVWxyzAbCDEfghIJ" + }, + "ingestEndpoint": "a1b2c3d4e5f6.global-contribute.live-video.net", + "insecureIngest": true, + "playbackUrl": "https://a1b2c3d4e5f6.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel.abcdEFGH.m3u8", + "preset": "", + "authorized": false, + "tags": {}, + "type": "STANDARD" + }, + "streamKey": { + "arn": "arn:aws:ivs:us-west-2:123456789012:stream-key/abcdABCDefgh", + "value": "sk_us-west-2_abcdABCDefgh_567890abcdef", + "channelArn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "tags": {} + } + } + +For more information, see `Record to Amazon S3 `__ in the *IVS Low-Latency User Guide*. + +**Example 3: To create a channel with a playback restriction policy specified by its ARN** + +The following ``create-channel`` example creates a new channel and an associated stream key to start streaming, and sets up a playback restriction policy for the channel:: + + aws ivs create-channel \ + --name test-channel-with-playback-restriction-policy\ + --insecure-ingest \ + --playback-restriction-policy-arn 'arn:aws:ivs:us-west-2:123456789012:playback-restriction-policy/ABcdef34ghIJ' + +Output:: + + { + "channel": { + "arn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "containerFormat": "TS", + "name": "test-channel-with-playback-restriction-policy", + "latencyMode": "LOW", + "multitrackInputConfiguration": { + "enabled": false, + "maximumResolution": "FULL_HD", + "policy": "ALLOW" + }, + "type": "STANDARD", + "playbackRestrictionPolicyArn": "arn:aws:ivs:us-west-2:123456789012:playback-restriction-policy/ABcdef34ghIJ", + "recordingConfigurationArn": "", + "srt": { + "endpoint": "a1b2c3d4e5f6.srt.live-video.net", + "passphrase": "AB1C2edfGHijkLMNo3PqQRstUvwxyzaBCDEfghh4ijklMN5opqrStuVWxyzAbCDEfghIJ" + }, + "ingestEndpoint": "a1b2c3d4e5f6.global-contribute.live-video.net", + "insecureIngest": true, + "playbackUrl": "https://a1b2c3d4e5f6.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel.abcdEFGH.m3u8", + "preset": "", + "authorized": false, + "tags": {}, + "type": "STANDARD" + }, + "streamKey": { + "arn": "arn:aws:ivs:us-west-2:123456789012:stream-key/abcdABCDefgh", + "value": "sk_us-west-2_abcdABCDefgh_567890abcdef", + "channelArn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "tags": {} + } + } + +For more information, see `Undesired Content and Viewers `__ in the *IVS Low-Latency User Guide*. + +**Example 4: To create a channel with multitrack enabled** + +The following ``create-channel`` example creates a new channel and an associated stream key to start streaming, and enables multitrack. :: + + aws ivs create-channel \ + --name 'test-channel' \ + --no-insecure-ingest \ + --container-format 'FRAGMENTED_MP4' \ + --multitrack-input-configuration '{"enabled": true,"maximumResolution": "FULL_HD","policy": "ALLOW"}' + +Output:: + + { + "channel": { + "arn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "authorized": false, + "containerFormat": "FRAGMENTED_MP4", + "name": "test-channel", + "latencyMode": "LOW", + "multitrackInputConfiguration": { + "enabled": true, + "maximumResolution": "FULL_HD", + "policy": "ALLOW" + }, + "playbackRestrictionPolicyArn": "", + "recordingConfigurationArn": "", + "srt": { + "endpoint": "a1b2c3d4e5f6.srt.live-video.net", + "passphrase": "AB1C2defGHijkLMNo3PqQRstUvwxyzaBCDEfghh4ijklMN5opqrStuVWxyzAbCDEfghIJ" + }, + "ingestEndpoint": "a1b2c3d4e5f6.global-contribute.live-video.net", + "insecureIngest": false, + "playbackUrl": "https://a1b2c3d4e5f6.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel.abcdEFGH.m3u8", + "preset": "", + "tags": {}, + "type": "STANDARD" + }, + "streamKey": { + "arn": "arn:aws:ivs:us-west-2:123456789012:stream-key/g1H2I3j4k5L6", + "value": "sk_us-west-2_abcdABCDefgh_567890abcdef", + "channelArn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "tags": {} + } + } + +For more information, see `Create a Channel `__ in the *IVS Low-Latency User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/create-playback-restriction-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/create-playback-restriction-policy.rst new file mode 100644 index 000000000..7179e20d6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/create-playback-restriction-policy.rst @@ -0,0 +1,35 @@ +**To create a playback restriction policy** + +The following ``create-playback-restriction-policy`` example creates a new playback resriction policy. :: + + aws ivs create-playback-restriction-policy \ + --name "test-playback-restriction-policy" \ + --enable-strict-origin-enforcement \ + --tags "key1=value1, key2=value2" \ + --allowed-countries US MX \ + --allowed-origins https://www.website1.com https://www.website2.com + +Output:: + + { + "playbackRestrictionPolicy": { + "arn": "arn:aws:ivs:us-west-2:123456789012:playback-restriction-policy/ABcdef34ghIJ", + "allowedCountries": [ + "US", + "MX" + ], + "allowedOrigins": [ + "https://www.website1.com", + "https://www.website2.com" + ], + "enableStrictOriginEnforcement": true, + "name": "test-playback-restriction-policy", + "tags": { + "key1": "value1", + "key2": "value2" + } + } + } + +For more information, see `Undesired Content and Viewers `__ in the *IVS Low-Latency User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/create-recording-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/create-recording-configuration.rst new file mode 100644 index 000000000..55837f9e3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/create-recording-configuration.rst @@ -0,0 +1,47 @@ +**To create a RecordingConfiguration resource** + +The following ``create-recording-configuration`` example creates a RecordingConfiguration resource to enable recording to Amazon S3. :: + + aws ivs create-recording-configuration \ + --name "test-recording-config" \ + --recording-reconnect-window-seconds 60 \ + --tags "key1=value1, key2=value2" \ + --rendition-configuration renditionSelection="CUSTOM",renditions="HD" \ + --thumbnail-configuration recordingMode="INTERVAL",targetIntervalSeconds=1,storage="LATEST",resolution="LOWEST_RESOLUTION" \ + --destination-configuration s3={bucketName=demo-recording-bucket} + +Output:: + + { + "recordingConfiguration": { + "arn": "arn:aws:ivs:us-west-2:123456789012:recording-configuration/ABcdef34ghIJ", + "name": "test-recording-config", + "destinationConfiguration": { + "s3": { + "bucketName": "demo-recording-bucket" + } + }, + "state": "CREATING", + "tags": { + "key1": "value1", + "key2": "value2" + }, + "thumbnailConfiguration": { + "recordingMode": "INTERVAL", + "targetIntervalSeconds": 1, + "resolution": "LOWEST_RESOLUTION", + "storage": [ + "LATEST" + ] + }, + "recordingReconnectWindowSeconds": 60, + "renditionConfiguration": { + "renditionSelection": "CUSTOM", + "renditions": [ + "HD" + ] + } + } + } + +For more information, see `Record to Amazon S3 `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/create-stream-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/create-stream-key.rst new file mode 100644 index 000000000..29bcb27c6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/create-stream-key.rst @@ -0,0 +1,19 @@ +**To create a stream key** + +The following ``create-stream-key`` example creates a stream key for a specified ARN (Amazon Resource Name). :: + + aws ivs create-stream-key \ + --channel-arn arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh + +Output:: + + { + "streamKey": { + "arn": "arn:aws:ivs:us-west-2:123456789012:stream-key/abcdABCDefgh", + "value": "sk_us-west-2_abcdABCDefgh_567890abcdef", + "channelArn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "tags": {} + } + } + +For more information, see `Create a Channel `__ in the *IVS Low-Latency User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/delete-channel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/delete-channel.rst new file mode 100644 index 000000000..e8cab7dff --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/delete-channel.rst @@ -0,0 +1,10 @@ +**To delete a channel and its associated stream keys** + +The following ``delete-channel`` example deletes the channel with the specified ARN (Amazon Resource Name). :: + + aws ivs delete-channel \ + --arn arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh + +This command produces no output. + +For more information, see `Create a Channel `__ in the *IVS Low-Latency User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/delete-playback-key-pair.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/delete-playback-key-pair.rst new file mode 100644 index 000000000..8217caed8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/delete-playback-key-pair.rst @@ -0,0 +1,10 @@ +**To delete a specified playback key pair** + +The following ``delete-playback-key-pair`` example returns the fingerprint of the specified key pair. :: + + aws ivs delete-playback-key-pair \ + --arn arn:aws:ivs:us-west-2:123456789012:playback-key/abcd1234efgh + +This command produces no output. + +For more information, see `Setting Up Private Channels `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/delete-playback-restriction-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/delete-playback-restriction-policy.rst new file mode 100644 index 000000000..89478972d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/delete-playback-restriction-policy.rst @@ -0,0 +1,10 @@ +**To delete a playback restriction policy** + +The following ``delete-playback-restriction-policy`` example deletes the playback resriction policy with the specified policy ARN (Amazon Resource Name). :: + + aws ivs delete-playback-restriction-policy \ + --arn "arn:aws:ivs:us-west-2:123456789012:playback-restriction-policy/ABcdef34ghIJ" + +This command produces no output. + +For more information, see `Undesired Content and Viewers `__ in the *IVS Low-Latency User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/delete-recording-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/delete-recording-configuration.rst new file mode 100644 index 000000000..36cf82f24 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/delete-recording-configuration.rst @@ -0,0 +1,10 @@ +**To delete the RecordingConfiguration resource specified by its ARN** + +The following ``delete-recording-configuration`` example deletes the RecordingConfiguration resource with the specified ARN. :: + + aws ivs delete-recording-configuration \ + --arn "arn:aws:ivs:us-west-2:123456789012:recording-configuration/ABcdef34ghIJ" + +This command produces no output. + +For more information, see `Record to Amazon S3 `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/delete-stream-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/delete-stream-key.rst new file mode 100644 index 000000000..657c11c8f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/delete-stream-key.rst @@ -0,0 +1,10 @@ +**To delete a stream key** + +The following ``delete-stream-key`` example deletes the stream key for a specified ARN (Amazon Resource Name), so it can no longer be used to stream. :: + + aws ivs delete-stream-key \ + --arn arn:aws:ivs:us-west-2:123456789012:stream-key/g1H2I3j4k5L6 + +This command produces no output. + +For more information, see `Create a Channel `__ in the *IVS Low-Latency User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/get-channel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/get-channel.rst new file mode 100644 index 000000000..40e43b644 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/get-channel.rst @@ -0,0 +1,37 @@ +**To get a channel's configuration information** + +The following ``get-channel`` example gets the channel configuration for a specified channel ARN (Amazon Resource Name). :: + + aws ivs get-channel \ + --arn 'arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh' + +Output:: + + { + "channel": { + "arn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "authorized": false, + "containerFormat": "TS", + "ingestEndpoint": "a1b2c3d4e5f6.global-contribute.live-video.net", + "insecureIngest": false, + "latencyMode": "LOW", + "multitrackInputConfiguration": { + "enabled": false, + "maximumResolution": "FULL_HD", + "policy": "ALLOW" + }, + "name": "channel-1", + "playbackRestrictionPolicyArn": "", + "playbackUrl": "https://a1b2c3d4e5f6.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel.abcdEFGH.m3u8", + "preset": "", + "recordingConfigurationArn": "", + "srt": { + "endpoint": "a1b2c3d4e5f6.srt.live-video.net", + "passphrase": "AB1C2defGHijkLMNo3PqQRstUvwxyzaBCDEfghh4ijklMN5opqrStuVWxyzAbCDEfghIJ" + }, + "tags": {} + "type": "STANDARD", + } + } + +For more information, see `Create a Channel `__ in the *IVS Low-Latency User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/get-playback-key-pair.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/get-playback-key-pair.rst new file mode 100644 index 000000000..9b0272690 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/get-playback-key-pair.rst @@ -0,0 +1,19 @@ +**To get a specified playback key pair** + +The following ``get-playback-key-pair`` example returns the fingerprint of the specified key pair. :: + + aws ivs get-playback-key-pair \ + --arn arn:aws:ivs:us-west-2:123456789012:playback-key/abcd1234efgh + +Output:: + + { + "keyPair": { + "arn": "arn:aws:ivs:us-west-2:123456789012:playback-key/abcd1234efgh", + "name": "my-playback-key", + "fingerprint": "0a:1b:2c:ab:cd:ef:34:56:70:b1:b2:71:01:2a:a3:72", + "tags": {} + } + } + +For more information, see `Setting Up Private Channels `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/get-playback-restriction-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/get-playback-restriction-policy.rst new file mode 100644 index 000000000..30b01f1a1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/get-playback-restriction-policy.rst @@ -0,0 +1,30 @@ +**To get a playback restriction policy's configuration information** + +The following ``get-playback-restriction-policy`` example gets the playback restriciton policy configuration with the specified policy ARN (Amazon Resource Name). :: + + aws ivs get-playback-restriction-policy \ + --arn "arn:aws:ivs:us-west-2:123456789012:playback-restriction-policy/ABcdef34ghIJ" + +Output:: + + { + "playbackRestrictionPolicy": { + "arn": "arn:aws:ivs:us-west-2:123456789012:playback-restriction-policy/ABcdef34ghIJ", + "allowedCountries": [ + "US", + "MX" + ], + "allowedOrigins": [ + "https://www.website1.com", + "https://www.website2.com" + ], + "enableStrictOriginEnforcement": true, + "name": "test-playback-restriction-policy", + "tags": { + "key1": "value1", + "key2": "value2" + } + } + } + +For more information, see `Undesired Content and Viewers `__ in the *IVS Low-Latency User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/get-recording-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/get-recording-configuration.rst new file mode 100644 index 000000000..a3c9fe2ef --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/get-recording-configuration.rst @@ -0,0 +1,42 @@ +**To get information about a RecordingConfiguration resource** + +The following ``get-recording-configuration`` example gets information about the RecordingConfiguration resource for the specified ARN. :: + + aws ivs get-recording-configuration \ + --arn "arn:aws:ivs:us-west-2:123456789012:recording-configuration/ABcdef34ghIJ" + +Output:: + + { + "recordingConfiguration": { + "arn": "arn:aws:ivs:us-west-2:123456789012:recording-configuration/ABcdef34ghIJ", + "destinationConfiguration": { + "s3": { + "bucketName": "demo-recording-bucket" + } + }, + "name": "test-recording-config", + "recordingReconnectWindowSeconds": 60, + "state": "ACTIVE", + "tags": { + "key1" : "value1", + "key2" : "value2" + }, + "thumbnailConfiguration": { + "recordingMode": "INTERVAL", + "targetIntervalSeconds": 1, + "resolution": "LOWEST_RESOLUTION", + "storage": [ + "LATEST" + ] + }, + "renditionConfiguration": { + "renditionSelection": "CUSTOM", + "renditions": [ + "HD" + ] + } + } + } + +For more information, see `Record to Amazon S3 `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/get-stream-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/get-stream-key.rst new file mode 100644 index 000000000..1b0a851b6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/get-stream-key.rst @@ -0,0 +1,19 @@ +**To get information about a stream** + +The following ``get-stream-key`` example gets information about the specified stream key. :: + + aws ivs get-stream-key \ + --arn arn:aws:ivs:us-west-2:123456789012:stream-key/skSKABCDefgh --region=us-west-2 + +Output:: + + { + "streamKey": { + "arn": "arn:aws:ivs:us-west-2:123456789012:stream-key/skSKABCDefgh", + "value": "sk_us-west-2_abcdABCDefgh_567890abcdef", + "channelArn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "tags": {} + } + } + +For more information, see `Create a Channel `__ in the *IVS Low-Latency User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/get-stream-session.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/get-stream-session.rst new file mode 100644 index 000000000..fe270b5ec --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/get-stream-session.rst @@ -0,0 +1,133 @@ +**To get metadata for a specified stream** + +The following ``get-stream-session`` example gets the metadata configuration for the specified channel ARN (Amazon Resource Name) and the specified stream; if ``streamId`` is not provided, the most recent stream for the channel is selected. :: + + aws ivs get-stream-session \ + --channel-arn 'arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh' \ + --stream-id 'mystream' + +Output:: + + { + "streamSession": { + "streamId": "mystream1", + "startTime": "2023-06-26T19:09:28+00:00", + "channel": { + "arn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "name": "mychannel", + "latencyMode": "LOW", + "type": "STANDARD", + "recordingConfigurationArn": "arn:aws:ivs:us-west-2:123456789012:recording-configuration/ABcdef34ghIJ", + "ingestEndpoint": "a1b2c3d4e5f6.global-contribute.live-video.net", + "playbackUrl": "url-string", + "authorized": false, + "insecureIngest": false, + "preset": "" + }, + "ingestConfiguration": { + "audio": { + "channels": 2, + "codec": "mp4a.40.2", + "sampleRate": 8000, + "targetBitrate": 46875, + "track": "Track0" + }, + "video": { + "avcProfile": "Baseline", + "avcLevel": "4.2", + "codec": "avc1.42C02A", + "encoder": "Lavf58.45.100", + "level": "4.2", + "profile": "Baseline", + "targetBitrate": 8789062, + "targetFramerate": 60, + "track": "Track0", + "videoHeight": 1080, + "videoWidth": 1920 + } + }, + "ingestConfigurations": { + "audioConfigurations": [ + { + "channels": 2, + "codec": "mp4a.40.2", + "sampleRate": 8000, + "targetBitrate": 46875, + "track": "Track0" + } + ], + "videoConfigurations": [ + { + "codec": "avc1.42C02A", + "encoder": "Lavf58.45.100", + "level": "4.2", + "profile": "Baseline", + "targetBitrate": 8789062, + "targetFramerate": 60, + "track": "Track0", + "videoHeight": 1080, + "videoWidth": 1920 + } + ] + }, + "recordingConfiguration": { + "arn": "arn:aws:ivs:us-west-2:123456789012:recording-configuration/ABcdef34ghIJ", + "name": "test-recording-config", + "destinationConfiguration": { + "s3": { + "bucketName": "demo-recording-bucket" + } + }, + "state": "ACTIVE", + "tags": { + "key1": "value1", + "key2": "value2" + }, + "thumbnailConfiguration": { + "recordingMode": "INTERVAL", + "targetIntervalSeconds": 1, + "resolution": "LOWEST_RESOLUTION", + "storage": [ + "LATEST" + ] + }, + "recordingReconnectWindowSeconds": 60, + "renditionConfiguration": { + "renditionSelection": "CUSTOM", + "renditions": [ + "HD" + ] + } + }, + "truncatedEvents": [ + { + "code": "StreamTakeoverInvalidPriority", + "name": "Stream Takeover Failure", + "type": "IVS Stream State Change", + "eventTime": "2023-06-26T19:09:48+00:00" + }, + { + "name": "Stream Takeover", + "type": "IVS Stream State Change", + "eventTime": "2023-06-26T19:09:47+00:00" + }, + { + "name": "Recording Start", + "type": "IVS Recording State Change", + "eventTime": "2023-06-26T19:09:35+00:00" + }, + { + "name": "Stream Start", + "type": "IVS Stream State Change", + "eventTime": "2023-06-26T19:09:34+00:00" + }, + { + "name": "Session Created", + "type": "IVS Stream State Change", + "eventTime": "2023-06-26T19:09:28+00:00" + } + ] + } + } + +For more information, see `Create a Channel `__ in the *IVS Low-Latency User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/get-stream.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/get-stream.rst new file mode 100644 index 000000000..f5a294c88 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/get-stream.rst @@ -0,0 +1,22 @@ +**To get information about a stream** + +The following ``get-stream`` example gets information about the stream for the specified channel. :: + + aws ivs get-stream \ + --channel-arn arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh + +Output:: + + { + "stream": { + "channelArn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "playbackUrl": "https://a1b2c3d4e5f6.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel.abcdEFGH.m3u8", + "startTime": "2020-05-05T21:55:38Z", + "state": "LIVE", + "health": "HEALTHY", + "streamId": "st-ABCDEfghij01234KLMN5678", + "viewerCount": 1 + } + } + +For more information, see `Create a Channel `__ in the *IVS Low-Latency User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/import-playback-key-pair.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/import-playback-key-pair.rst new file mode 100644 index 000000000..dac50e8fd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/import-playback-key-pair.rst @@ -0,0 +1,20 @@ +**To import the public portion of a new key pair** + +The following ``import-playback-key-pair`` example imports the specified public key (specified as a string in PEM format) and returns the arn and fingerprint of the new key pair. :: + + aws ivs import-playback-key-pair \ + --name "my-playback-key" \ + --public-key-material "G1lbnQxOTA3BgNVBAMMMFdoeSBhcmUgeW91IGRl..." + +Output:: + + { + "keyPair": { + "arn": "arn:aws:ivs:us-west-2:123456789012:playback-key/abcd1234efgh", + "name": "my-playback-key", + "fingerprint": "0a:1b:2c:ab:cd:ef:34:56:70:b1:b2:71:01:2a:a3:72", + "tags": {} + } + } + +For more information, see `Setting Up Private Channels `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-channels.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-channels.rst new file mode 100644 index 000000000..7d7eff433 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-channels.rst @@ -0,0 +1,92 @@ +**Example 1: To get summary information about all channels** + +The following ``list-channels`` example lists all channels for your AWS account. :: + + aws ivs list-channels + +Output:: + + { + "channels": [ + { + "arn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "name": "channel-1", + "latencyMode": "LOW", + "authorized": false, + "insecureIngest": false, + "preset": "", + "playbackRestrictionPolicyArn": "", + "recordingConfigurationArn": "arn:aws:ivs:us-west-2:123456789012:recording-configuration/ABCD12cdEFgh", + "tags": {}, + "type": "STANDARD" + }, + { + "arn": "arn:aws:ivs:us-west-2:123456789012:channel/efghEFGHijkl", + "name": "channel-2", + "latencyMode": "LOW", + "authorized": false, + "preset": "", + "playbackRestrictionPolicyArn": "arn:aws:ivs:us-west-2:123456789012:playback-restriction-policy/ABcdef34ghIJ", + "recordingConfigurationArn": "", + "tags": {}, + "type": "STANDARD" + } + ] + } + +For more information, see `Create a Channel `__ in the *IVS Low-Latency User Guide*. + +**Example 2: To get summary information about all channels, filtered by the specified RecordingConfiguration ARN** + +The following ``list-channels`` example lists all channels for your AWS account, that are associated with the specified RecordingConfiguration ARN. :: + + aws ivs list-channels \ + --filter-by-recording-configuration-arn "arn:aws:ivs:us-west-2:123456789012:recording-configuration/ABCD12cdEFgh" + +Output:: + + { + "channels": [ + { + "arn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "name": "channel-1", + "latencyMode": "LOW", + "authorized": false, + "insecureIngest": false, + "preset": "", + "playbackRestrictionPolicyArn": "", + "recordingConfigurationArn": "arn:aws:ivs:us-west-2:123456789012:recording-configuration/ABCD12cdEFgh", + "tags": {}, + "type": "STANDARD" + } + ] + } + +For more information, see `Record to Amazon S3 `__ in the *IVS Low-Latency User Guide*. + +**Example 3: To get summary information about all channels, filtered by the specified PlaybackRestrictionPolicy ARN** + +The following ``list-channels`` example lists all channels for your AWS account, that are associated with the specified PlaybackRestrictionPolicy ARN. :: + + aws ivs list-channels \ + --filter-by-playback-restriction-policy-arn "arn:aws:ivs:us-west-2:123456789012:playback-restriction-policy/ABcdef34ghIJ" + +Output:: + + { + "channels": [ + { + "arn": "arn:aws:ivs:us-west-2:123456789012:channel/efghEFGHijkl", + "name": "channel-2", + "latencyMode": "LOW", + "authorized": false, + "preset": "", + "playbackRestrictionPolicyArn": "arn:aws:ivs:us-west-2:123456789012:playback-restriction-policy/ABcdef34ghIJ", + "recordingConfigurationArn": "", + "tags": {}, + "type": "STANDARD" + } + ] + } + +For more information, see `Undesired Content and Viewers `__ in the *IVS Low-Latency User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-playback-key-pairs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-playback-key-pairs.rst new file mode 100644 index 000000000..903e36417 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-playback-key-pairs.rst @@ -0,0 +1,24 @@ +**To get summary information about all playback key pairs** + +The following ``list-playback-key-pairs`` example returns information about all key pairs. :: + + aws ivs list-playback-key-pairs + +Output:: + + { + "keyPairs": [ + { + "arn": "arn:aws:ivs:us-west-2:123456789012:playback-key/abcd1234efgh", + "name": "test-key-0", + "tags": {} + }, + { + "arn": "arn:aws:ivs:us-west-2:123456789012:playback-key/ijkl5678mnop", + "name": "test-key-1", + "tags": {} + } + ] + } + +For more information, see `Setting Up Private Channels `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-playback-restriction-policies.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-playback-restriction-policies.rst new file mode 100644 index 000000000..9fa1440ca --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-playback-restriction-policies.rst @@ -0,0 +1,31 @@ +**To get summary information about all playback restriction policies** + +The following ``list-playback-restriction-policies`` example lists all playback restriction policies for your AWS account. :: + + aws ivs list-playback-restriction-policies + +Output:: + + { + "playbackRestrictionPolicies": [ + { + "arn": "arn:aws:ivs:us-west-2:123456789012:playback-restriction-policy/ABcdef34ghIJ", + "allowedCountries": [ + "US", + "MX" + ], + "allowedOrigins": [ + "https://www.website1.com", + "https://www.website2.com" + ], + "enableStrictOriginEnforcement": true, + "name": "test-playback-restriction-policy", + "tags": { + "key1": "value1", + "key2": "value2" + } + } + ] + } + +For more information, see `Undesired Content and Viewers `__ in the *IVS Low-Latency User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-recording-configurations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-recording-configurations.rst new file mode 100644 index 000000000..976b27186 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-recording-configurations.rst @@ -0,0 +1,36 @@ +**To list all the RecordingConfiguration resources created in this account** + +The following ``list-recording-configurations`` example gets information about all RecordingConfiguration resources in your account. :: + + aws ivs list-recording-configurations + +Output:: + + { + "recordingConfigurations": [ + { + "arn": "arn:aws:ivs:us-west-2:123456789012:recording-configuration/ABcdef34ghIJ", + "name": "test-recording-config-1", + "destinationConfiguration": { + "s3": { + "bucketName": "demo-recording-bucket-1" + } + }, + "state": "ACTIVE", + "tags": {} + }, + { + "arn": "arn:aws:ivs:us-west-2:123456789012:recording-configuration/CD12abcdGHIJ", + "name": "test-recording-config-2", + "destinationConfiguration": { + "s3": { + "bucketName": "demo-recording-bucket-2" + } + }, + "state": "ACTIVE", + "tags": {} + } + ] + } + +For more information, see `Record to Amazon S3 `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-stream-keys.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-stream-keys.rst new file mode 100644 index 000000000..e4faf1791 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-stream-keys.rst @@ -0,0 +1,20 @@ +**To get a list of stream keys** + +The following ``list-stream-keys`` example lists all stream keys for a specified ARN (Amazon Resource Name). :: + + aws ivs list-stream-keys \ + --channel-arn arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh + +Output:: + + { + "streamKeys": [ + { + "arn": "arn:aws:ivs:us-west-2:123456789012:stream-key/abcdABCDefgh", + "channelArn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "tags": {} + } + ] + } + +FFor more information, see `Create a Channel `__ in the *IVS Low-Latency User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-stream-sessions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-stream-sessions.rst new file mode 100644 index 000000000..bce4444f7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-stream-sessions.rst @@ -0,0 +1,25 @@ +**To get a summary of current and previous streams for a specified channel in the current AWS region** + +The following ``list-stream-sessions`` example reports summary information for streams for a specified channel ARN (Amazon Resource Name). :: + + aws ivs list-stream-sessions \ + --channel-arn arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh \ + --max-results 25 \ + --next-token "" + +Output:: + + { + "nextToken": "set-2", + "streamSessions": [ + { + "startTime": 1641578182, + "endTime": 1641579982, + "hasErrorEvent": false, + "streamId": "mystream" + } + ... + ] + } + +For more information, see `Create a Channel `__ in the *IVS Low-Latency User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-streams.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-streams.rst new file mode 100644 index 000000000..927ac2177 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-streams.rst @@ -0,0 +1,21 @@ +**To get a list of live streams and their state** + +The following ``list-streams`` example lists all live streams for your AWS account. :: + + aws ivs list-streams + +Output:: + + { + "streams": [ + { + "channelArn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "state": "LIVE", + "health": "HEALTHY", + "streamId": "st-ABCDEfghij01234KLMN5678", + "viewerCount": 1 + } + ] + } + +For more information, see `Create a Channel `__ in the *IVS Low-Latency User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-tags-for-resource.rst new file mode 100644 index 000000000..4adccb7b7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/list-tags-for-resource.rst @@ -0,0 +1,18 @@ +**To list all tags for an AWS resource (for example: channel, stream key)** + +The following ``list-tags-for-resource`` example lists all tags for a specified resource ARN (Amazon Resource Name). :: + + aws ivs list-tags-for-resource \ + --resource-arn arn:aws:ivs:us-west-2:12345689012:channel/abcdABCDefgh + +Output:: + + { + "tags": + { + "key1": "value1", + "key2": "value2" + } + } + +For more information, see `Tagging `__ in the *Amazon Interactive Video Service API Reference*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/put-metadata.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/put-metadata.rst new file mode 100644 index 000000000..8d8232c0b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/put-metadata.rst @@ -0,0 +1,11 @@ +**To insert metadata into the active stream for a specified channel** + +The following ``put-metadata`` example inserts the given metadata into the stream for the specified channel. :: + + aws ivs put-metadata \ + --channel-arn arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh \ + --metadata '{"my": "metadata"}' + +This command produces no output. + +For more information, see `Create a Channel `__ in the *IVS Low-Latency User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/start-viewer-session-revocation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/start-viewer-session-revocation.rst new file mode 100644 index 000000000..feb47fb8d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/start-viewer-session-revocation.rst @@ -0,0 +1,12 @@ +**To revoke a viewer session for a given multiple channel-ARN and viewer-ID pair** + +The following ``start-viewer-session-revocation`` example starts the process of revoking the viewer session associated with a specified channel ARN and viewer ID, up to and including the specified session version number. If the version is not provided, it defaults to 0. :: + + aws ivs batch-start-viewer-session-revocation \ + --channel-arn arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh \ + --viewer-id abcdefg \ + --viewer-session-versions-less-than-or-equal-to 1234567890 + +This command produces no output. + +For more information, see `Setting Up Private Channels `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/stop-stream.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/stop-stream.rst new file mode 100644 index 000000000..e1838ed5f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/stop-stream.rst @@ -0,0 +1,10 @@ +**To stop a specified stream** + +The following ``stop-stream`` example stops the stream on the specified channel. :: + + aws ivs stop-stream \ + --channel-arn arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh + +This command produces no output. + +For more information, see `Create a Channel `__ in the *IVS Low-Latency User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/tag-resource.rst new file mode 100644 index 000000000..f126723a9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/tag-resource.rst @@ -0,0 +1,11 @@ +**To add or update tags for an AWS resource (for example: channel, stream key)** + +The following ``tag-resource`` example adds or updates tags for a specified resource ARN (Amazon Resource Name). :: + + aws ivs tag-resource \ + --resource-arn arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh \ + --tags "tagkey1=tagvalue1, tagkey2=tagvalue2" + +This command produces no output. + +For more information, see `Tagging `__ in the *Amazon Interactive Video Service API Reference*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/untag-resource.rst new file mode 100644 index 000000000..f9b4a6411 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove tags for an AWS resource (for example: channel, stream key)** + +The following ``untag-resource`` example removes the specified tags for a specified resource ARN (Amazon Resource Name). :: + + aws ivs untag-resource \ + --resource-arn arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh \ + --tag-keys "tagkey1, tagkey2" + +This command produces no output. + +For more information, see `Tagging `__ in the *Amazon Interactive Video Service API Reference*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/update-channel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/update-channel.rst new file mode 100644 index 000000000..e5fd733ef --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/update-channel.rst @@ -0,0 +1,276 @@ +**Example 1: To update a channel's configuration information** + +The following ``update-channel`` example updates the channel configuration for a specified channel ARN to change the channel name. This does not affect an ongoing stream of this channel; you must stop and restart the stream for the changes to take effect. :: + + aws ivs update-channel \ + --arn 'arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh' \ + --name 'channel-1' \ + --insecure-ingest + +Output:: + + { + "channel": { + "arn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "name": "channel-1", + "latencyMode": "LOW", + "containerFormat": "TS", + "multitrackInputConfiguration": { + "enabled": false, + "maximumResolution": "FULL_HD", + "policy": "ALLOW" + }, + "type": "STANDARD", + "playbackRestrictionPolicyArn": "", + "recordingConfigurationArn": "", + "srt": { + "endpoint": "a1b2c3d4e5f6.srt.live-video.net", + "passphrase": "AB1C2defGHijkLMNo3PqQRstUvwxyzaBCDEfghh4ijklMN5opqrStuVWxyzAbCDEfghIJ" + }, + "ingestEndpoint": "a1b2c3d4e5f6.global-contribute.live-video.net", + "insecureIngest": true, + "playbackUrl": "https://a1b2c3d4e5f6.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel.abcdEFGH.m3u8", + "preset": "", + "authorized": false, + "tags": {} + } + +For more information, see `Create a Channel `__ in the *IVS Low-Latency User Guide*. + +**Example 2: To update a channel's configuration to enable recording** + +The following ``update-channel`` example updates the channel configuration for a specified channel ARN to enable recording. This does not affect an ongoing stream of this channel; you must stop and restart the stream for the changes to take effect. :: + + aws ivs update-channel \ + --arn 'arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh' \ + --no-insecure-ingest \ + --recording-configuration-arn 'arn:aws:ivs:us-west-2:123456789012:recording-configuration/ABCD12cdEFgh' + +Output:: + + { + "channel": { + "arn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "name": "test-channel-with-recording", + "latencyMode": "LOW", + "containerFormat": "TS", + "multitrackInputConfiguration": { + "enabled": false, + "maximumResolution": "FULL_HD", + "policy": "ALLOW" + }, + "type": "STANDARD", + "playbackRestrictionPolicyArn": "", + "recordingConfigurationArn": "arn:aws:ivs:us-west-2:123456789012:recording-configuration/ABCD12cdEFgh", + "srt": { + "endpoint": "a1b2c3d4e5f6.srt.live-video.net", + "passphrase": "BA1C2defGHijkLMNo3PqQRstUvwxyzaBCDEfghh4ijklMN5opqrStuVWxyzAbCDEfghIJ" + }, + "ingestEndpoint": "a1b2c3d4e5f6.global-contribute.live-video.net", + "insecureIngest": false, + "playbackUrl": "https://a1b2c3d4e5f6.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel.abcdEFGH.m3u8", + "preset": "", + "authorized": false, + "tags": {} + } + } + +For more information, see `Record to Amazon S3 `__ in the *IVS Low-Latency User Guide*. + +**Example 3: To update a channel's configuration to disable recording** + +The following ``update-channel`` example updates the channel configuration for a specified channel ARN to disable recording. This does not affect an ongoing stream of this channel; you must stop and restart the stream for the changes to take effect. :: + + aws ivs update-channel \ + --arn 'arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh' \ + --recording-configuration-arn '' + +Output:: + + { + "channel": { + "arn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "name": "test-channel-with-recording", + "latencyMode": "LOW", + "containerFormat": "TS", + "multitrackInputConfiguration": { + "enabled": false, + "maximumResolution": "FULL_HD", + "policy": "ALLOW" + }, + "type": "STANDARD", + "playbackRestrictionPolicyArn": "", + "recordingConfigurationArn": "", + "srt": { + "endpoint": "a1b2c3d4e5f6.srt.live-video.net", + "passphrase": "AB1C2edfGHijkLMNo3PqQRstUvwxyzaBCDEfghh4ijklMN5opqrStuVWxyzAbCDEfghIJ" + }, + "ingestEndpoint": "a1b2c3d4e5f6.global-contribute.live-video.net", + "insecureIngest": false, + "playbackUrl": "https://a1b2c3d4e5f6.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel.abcdEFGH.m3u8", + "preset": "", + "authorized": false, + "tags": {} + } + } + +For more information, see `Record to Amazon S3 `__ in the *IVS Low-Latency User Guide*. + +**Example 4: To update a channel's configuration to enable playback restriction** + +The following ``update-channel`` example updates the channel configuration for a specified channel ARN to apply a playback restriction policy. This does not affect an ongoing stream of this channel; you must stop and restart the stream for the changes to take effect. :: + + aws ivs update-channel \ + --arn 'arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh' \ + --no-insecure-ingest \ + --playback-restriction-policy-arn 'arn:aws:ivs:us-west-2:123456789012:playback-restriction-policy/ABcdef34ghIJ' + +Output:: + + { + "channel": { + "arn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "name": "test-channel-with-playback-restriction-policy", + "latencyMode": "LOW", + "containerFormat": "TS", + "multitrackInputConfiguration": { + "enabled": false, + "maximumResolution": "FULL_HD", + "policy": "ALLOW" + }, + "type": "STANDARD", + "playbackRestrictionPolicyArn": "arn:aws:ivs:us-west-2:123456789012:playback-restriction-policy/ABcdef34ghIJ", + "recordingConfigurationArn": "", + "srt": { + "endpoint": "a1b2c3d4e5f6.srt.live-video.net", + "passphrase": "AB1C2defGHijkLMNo3PqQRstUvwxyzaCBDEfghh4ijklMN5opqrStuVWxyzAbCDEfghIJ" + }, + "ingestEndpoint": "a1b2c3d4e5f6.global-contribute.live-video.net", + "insecureIngest": false, + "playbackUrl": "https://a1b2c3d4e5f6.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel.abcdEFGH.m3u8", + "preset": "", + "authorized": false, + "tags": {} + } + } + +For more information, see `Undesired Content and Viewers `__ in the *IVS Low-Latency User Guide*. + +**Example 5: To update a channel's configuration to disable playback restriction** + +The following ``update-channel`` example updates the channel configuration for a specified channel ARN to disable playback restriction. This does not affect an ongoing stream of this channel; you must stop and restart the stream for the changes to take effect. :: + + aws ivs update-channel \ + --arn 'arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh' \ + --playback-restriction-policy-arn '' + +Output:: + + { + "channel": { + "arn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "name": "test-channel-with-playback-restriction-policy", + "latencyMode": "LOW", + "containerFormat": "TS", + "multitrackInputConfiguration": { + "enabled": false, + "maximumResolution": "FULL_HD", + "policy": "ALLOW" + }, + "type": "STANDARD", + "playbackRestrictionPolicyArn": "", + "recordingConfigurationArn": "", + "srt": { + "endpoint": "a1b2c3d4e5f6.srt.live-video.net", + "passphrase": "AB1C2defGHijkLMNo3PqQRstUvwxyzaBCDeFghh4ijklMN5opqrStuVWxyzAbCDEfghIJ" + }, + "ingestEndpoint": "a1b2c3d4e5f6.global-contribute.live-video.net", + "insecureIngest": false, + "playbackUrl": "https://a1b2c3d4e5f6.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel.abcdEFGH.m3u8", + "preset": "", + "authorized": false, + "tags": {} + } + } + +For more information, see `Undesired Content and Viewers `__ in the *IVS Low-Latency User Guide*. + +**Example 6: To update a channel's configuration to enable multitrack** + +The following ``update-channel`` example updates the channel configuration for a specified channel ARN to enable multitrack. This does not affect an ongoing stream of this channel; you must stop and restart the stream for the changes to take effect. :: + + aws ivs update-channel \ + --arn 'arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh' \ + --container-format 'FRAGMENTED_MP4' \ + --multitrack-input-configuration '{"enabled": true,"maximumResolution": "FULL_HD","policy": "ALLOW"}' + +Output:: + + { + "channel": { + "arn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "containerFormat": "FRAGMENTED_MP4", + "name": "test-channel-with-multitrack", + "latencyMode": "LOW", + "multitrackInputConfiguration": { + "enabled": true, + "maximumResolution": "FULL_HD", + "policy": "ALLOW" + }, + "type": "STANDARD", + "playbackRestrictionPolicyArn": "", + "recordingConfigurationArn": "", + "srt": { + "endpoint": "a1b2c3d4e5f6.srt.live-video.net", + "passphrase": "AB1C2defGHijkLMNo3PqQRstUvwxyzaCBDEfghh4ijklMN5opqrStuVWxyzAbCDEfghIJ" + }, + "ingestEndpoint": "a1b2c3d4e5f6.global-contribute.live-video.net", + "insecureIngest": false, + "playbackUrl": "https://a1b2c3d4e5f6.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel.abcdEFGH.m3u8", + "preset": "", + "authorized": false, + "tags": {} + } + } + +For more information, see `Undesired Content and Viewers `__ in the *IVS Low-Latency User Guide*. + +**Example 7: To update a channel's configuration to disable playback restriction** + +The following ``update-channel`` example updates the channel configuration for a specified channel ARN to disable multitrack. This does not affect an ongoing stream of this channel; you must stop and restart the stream for the changes to take effect. :: + + aws ivs update-channel \ + --arn 'arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh' \ + --container-format 'TS' \ + --multitrack-input-configuration '{"enabled": false}' + +Output:: + + { + "channel": { + ""arn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", + "containerFormat": "TS", + "name": "test-channel-with-multitrack", + "latencyMode": "LOW", + "multitrackInputConfiguration": { + "enabled": false, + "maximumResolution": "FULL_HD", + "policy": "ALLOW" + }, + "type": "STANDARD", + "playbackRestrictionPolicyArn": "", + "recordingConfigurationArn": "", + "srt": { + "endpoint": "a1b2c3d4e5f6.srt.live-video.net", + "passphrase": "AB1C2defGHijkLMNo3PqQRstUvwxyzaCBDEfghh4ijklMN5opqrStuVWxyzAbCDEfghIJ" + }, + "ingestEndpoint": "a1b2c3d4e5f6.global-contribute.live-video.net", + "insecureIngest": false, + "playbackUrl": "https://a1b2c3d4e5f6.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel.abcdEFGH.m3u8", + "preset": "", + "authorized": false, + "tags": {} + } + } + +For more information, see `Undesired Content and Viewers `__ in the *IVS Low-Latency User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/update-playback-restriction-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/update-playback-restriction-policy.rst new file mode 100644 index 000000000..34f440f5f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivs/update-playback-restriction-policy.rst @@ -0,0 +1,31 @@ +**To update a playback restriction policy** + +The following ``update-playback-restriction-policy`` example updates the playback restriction policy with the specified policy ARN to disable strict origin enforcement. This does not affect an ongoing stream of the associated channel; you must stop and restart the stream for the changes to take effect. :: + + aws ivs update-playback-restriction-policy \ + --arn "arn:aws:ivs:us-west-2:123456789012:playback-restriction-policy/ABcdef34ghIJ" \ + --no-enable-strict-origin-enforcement + +Output:: + + { + "playbackRestrictionPolicy": { + "arn": "arn:aws:ivs:us-west-2:123456789012:playback-restriction-policy/ABcdef34ghIJ", + "allowedCountries": [ + "US", + "MX" + ], + "allowedOrigins": [ + "https://www.website1.com", + "https://www.website2.com" + ], + "enableStrictOriginEnforcement": false, + "name": "test-playback-restriction-policy", + "tags": { + "key1": "value1", + "key2": "value2" + } + } + } + +For more information, see `Undesired Content and Viewers `__ in the *IVS Low-Latency User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/create-chat-token.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/create-chat-token.rst new file mode 100644 index 000000000..f4a140528 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/create-chat-token.rst @@ -0,0 +1,20 @@ +**To create a chat token** + +The following ``create-chat-token`` example creates an encrypted chat token that is used to establish an individual WebSocket connection to a room. The token is valid for one minute, and a connection (session) established with the token is valid for the specified duration. :: + + aws ivschat create-chat-token \ + --roomIdentifier "arn:aws:ivschat:us-west-2:12345689012:room/g1H2I3j4k5L6", \ + --userId" "11231234" \ + --capabilities "SEND_MESSAGE", \ + --sessionDurationInMinutes" 30 + +Output:: + + { + "token": "ACEGmnoq#1rstu2...BDFH3vxwy!4hlm!#5", + "sessionExpirationTime": "2022-03-16T04:44:09+00:00" + "state": "CREATING", + "tokenExpirationTime": "2022-03-16T03:45:09+00:00" + } + +For more information, see `Step 3: Authenticate and Authorize Chat Clients `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/create-logging-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/create-logging-configuration.rst new file mode 100644 index 000000000..edcfcad7b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/create-logging-configuration.rst @@ -0,0 +1,28 @@ +**To create a chat LoggingConfiguration resource** + +The following ``create-logging-configuration`` example creates a LoggingConfiguration resource that allows clients to store and record sent messages. :: + + aws ivschat create-logging-configuration \ + --destination-configuration s3={bucketName=demo-logging-bucket} \ + --name "test-logging-config" \ + --tags "key1=value1, key2=value2" + + +Output:: + + { + "arn": "arn:aws:ivschat:us-west-2:123456789012:logging-configuration/ABcdef34ghIJ", + "createTime": "2022-09-14T17:48:00.653000+00:00", + "destinationConfiguration": { + "s3": { + "bucketName": "demo-logging-bucket" + } + }, + "id": "ABcdef34ghIJ", + "name": "test-logging-config", + "state": "ACTIVE", + "tags": { "key1" : "value1", "key2" : "value2" }, + "updateTime": "2022-09-14T17:48:01.104000+00:00" + } + +For more information, see `Getting Started with Amazon IVS Chat `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/create-room.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/create-room.rst new file mode 100644 index 000000000..45b116380 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/create-room.rst @@ -0,0 +1,25 @@ +**To create a room** + +The following ``create-room`` example creates a new room. :: + + aws ivschat create-room \ + --name "test-room-1" \ + --logging-configuration-identifiers "arn:aws:ivschat:us-west-2:123456789012:logging-configuration/ABcdef34ghIJ" \ + --maximum-message-length 256 \ + --maximum-message-rate-per-second 5 + +Output:: + + { + "arn": "arn:aws:ivschat:us-west-2:12345689012:room/g1H2I3j4k5L6", + "id": "g1H2I3j4k5L6", + "createTime": "2022-03-16T04:44:09+00:00", + "loggingConfigurationIdentifiers": ["arn:aws:ivschat:us-west-2:123456789012:logging-configuration/ABcdef34ghIJ"], + "maximumMessageLength": 256, + "maximumMessageRatePerSecond": 5, + "name": "test-room-1", + "tags": {} + "updateTime": "2022-03-16T07:22:09+00:00" + } + +For more information, see `Step 2: Create a Chat Room `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/delete-logging-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/delete-logging-configuration.rst new file mode 100644 index 000000000..2be93b162 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/delete-logging-configuration.rst @@ -0,0 +1,10 @@ +**To delete a chat LoggingConfiguration resource** + +The following ``delete-logging-configuration`` example deletes the LoggingConfiguration resource for the specified ARN. :: + + aws ivschat delete-logging-configuration \ + --identifier "arn:aws:ivschat:us-west-2:123456789012:logging-configuration/ABcdef34ghIJ" + +This command produces no output. + +For more information, see `Getting Started with Amazon IVS Chat `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/delete-message.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/delete-message.rst new file mode 100644 index 000000000..20bbc8a98 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/delete-message.rst @@ -0,0 +1,16 @@ +**To delete messages from a specified room** + +The following ``delete-message`` example sends an even to the specified room, which directs clients to delete the specified message: that is, unrender it from view and delete it from the client's chat history. :: + + aws ivschat delete-message \ + --roomIdentifier "arn:aws:ivschat:us-west-2:12345689012:room/g1H2I3j4k5L6" \ + --id "ABC123def456" \ + --reason "Message contains profanity" + +Output:: + + { + "id": "12345689012" + } + +For more information, see `Getting Started with Amazon IVS Chat `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/delete-room.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/delete-room.rst new file mode 100644 index 000000000..9341d18f0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/delete-room.rst @@ -0,0 +1,10 @@ +**To delete a room** + +The following ``delete-room`` example deletes the specified room. Connected clients are disconnected. On success it returns HTTP 204 with an empty response body. :: + + aws ivschat delete-room \ + --identifier "arn:aws:ivschat:us-west-2:12345689012:room/g1H2I3j4k5L6" + +This command produces no output. + +For more information, see `Getting Started with Amazon IVS Chat `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/disconnect-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/disconnect-user.rst new file mode 100644 index 000000000..a6c881bd5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/disconnect-user.rst @@ -0,0 +1,12 @@ +**To disconnect a user from a room** + +The following ``disconnect-user`` example disconnects all connections for the specified user from the specified room. On success it returns HTTP 200 with an empty response body. :: + + aws ivschat disconnect-user \ + --roomIdentifier "arn:aws:ivschat:us-west-2:12345689012:room/g1H2I3j4k5L6" \ + --userId "ABC123def456" \ + --reason "Violated terms of service" + +This command produces no output. + +For more information, see `Getting Started with Amazon IVS Chat `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/get-logging-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/get-logging-configuration.rst new file mode 100644 index 000000000..35ff707ba --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/get-logging-configuration.rst @@ -0,0 +1,25 @@ +**To get information about a LoggingConfiguration resource** + +The following ``get-logging-configuration`` example gets information about the LoggingConfiguration resource for the specified ARN. :: + + aws ivschat get-logging-configuration \ + --identifier "arn:aws:ivschat:us-west-2:123456789012:logging-configuration/ABcdef34ghIJ" + +Output:: + + { + "arn": "arn:aws:ivschat:us-west-2:123456789012:logging-configuration/ABcdef34ghIJ", + "createTime": "2022-09-14T17:48:00.653000+00:00", + "destinationConfiguration": { + "s3": { + "bucketName": "demo-logging-bucket" + } + }, + "id": "ABcdef34ghIJ", + "name": "test-logging-config", + "state": "ACTIVE", + "tags": { "key1" : "value1", "key2" : "value2" }, + "updateTime": "2022-09-14T17:48:01.104000+00:00" + } + +For more information, see `Getting Started with Amazon IVS Chat `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/get-room.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/get-room.rst new file mode 100644 index 000000000..cb75c391f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/get-room.rst @@ -0,0 +1,22 @@ +**To get the specified room** + +The following ``get-room`` example gets information about the specified room. :: + + aws ivschat get-room \ + --identifier "arn:aws:ivschat:us-west-2:12345689012:room/g1H2I3j4k5L6" + +Output:: + + { + "arn": "arn:aws:ivschat:us-west-2:12345689012:room/g1H2I3j4k5L6", + "createTime": "2022-03-16T04:44:09+00:00", + "id": "g1H2I3j4k5L6", + "loggingConfigurationIdentifiers": ["arn:aws:ivschat:us-west-2:123456789012:logging-configuration/ABcdef34ghIJ"], + "maximumMessageLength": 256, + "maximumMessageRatePerSecond": 5, + "name": "test-room-1", + "tags": {}, + "updateTime": "2022-03-16T07:22:09+00:00" + } + +For more information, see `Getting Started with Amazon IVS Chat `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/list-logging-configurations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/list-logging-configurations.rst new file mode 100644 index 000000000..8780fa9f7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/list-logging-configurations.rst @@ -0,0 +1,32 @@ +**To get summary information about all logging configurations for the user in the AWS region where the API request is processed** + +The following ``list-logging-configurations`` example lists information about all LoggingConfiguration resources for the user in the AWS region where the API request is processed. :: + + aws ivschat list-logging-configurations \ + --max-results 2 \ + --next-token "" + +Output:: + + { + "nextToken": "set-2", + "loggingConfigurations": [ + { + "arn": "arn:aws:ivschat:us-west-2:123456789012:logging-configuration/ABcdef34ghIJ", + "createTime": "2022-09-14T17:48:00.653000+00:00", + "destinationConfiguration": { + "s3": { + "bucketName": "demo-logging-bucket" + } + }, + "id": "ABcdef34ghIJ", + "name": "test-logging-config", + "state": "ACTIVE", + "tags": { "key1" : "value1", "key2" : "value2" }, + "updateTime": "2022-09-14T17:48:01.104000+00:00" + } + ... + ] + } + +For more information, see `Getting Started with Amazon IVS Chat `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/list-rooms.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/list-rooms.rst new file mode 100644 index 000000000..92d5f8cf3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/list-rooms.rst @@ -0,0 +1,27 @@ +**To get summary information about all your rooms in the current region** + +The following ``list-rooms`` example gets summary information about all the rooms in the AWS region where the request is processed. Results are sorted in descending order of updateTime. :: + + aws ivschat list-rooms \ + --logging-configuration-identifier "arn:aws:ivschat:us-west-2:123456789012:logging-configuration/ABcdef34ghIJ" \ + --max-results 10 \ + --next-token "" + +Output:: + + { + "nextToken": "page3", + "rooms": [ + { + "arn:aws:ivschat:us-west-2:12345689012:room/g1H2I3j4k5L6", + "createTime": "2022-03-16T04:44:09+00:00", + "id": "g1H2I3j4k5L6", + "loggingConfigurationIdentifiers": ["arn:aws:ivschat:us-west-2:123456789012:logging-configuration/ABcdef34ghIJ"], + "name": "test-room-1", + "tags": {}, + "updateTime": "2022-03-16T07:22:09+00:00" + } + ] + } + +For more information, see `Getting Started with Amazon IVS Chat `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/list-tags-for-resource.rst new file mode 100644 index 000000000..bdf7560d5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/list-tags-for-resource.rst @@ -0,0 +1,18 @@ +**To list all tags for an AWS resource (for example: Room)** + +The following ``list-tags-for-resource`` example lists all tags for a specified resource ARN (Amazon Resource Name). :: + + aws ivschat list-tags-for-resource \ + --resource-arn arn:aws:ivschat:us-west-2:12345689012:room/g1H2I3j4k5L6 + +Output:: + + { + "tags": + { + "key1": "value1", + "key2": "value2" + } + } + +For more information, see `Tagging `__ in the *Amazon Interactive Video Service API Reference*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/send-event.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/send-event.rst new file mode 100644 index 000000000..c6ff874c9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/send-event.rst @@ -0,0 +1,18 @@ +**To send an event to a room** + +The following ``send-event`` example sends the given event to the specified room. :: + + aws ivschat send-event \ + --roomIdentifier "arn:aws:ivschat:us-west-2:12345689012:room/g1H2I3j4k5L6" \ + --eventName "SystemMessage" \ + --attributes \ + "msgType"="user-notification", \ + "msgText"="This chat room will close in 15 minutes." + +Output:: + + { + "id": "12345689012" + } + +For more information, see `Getting Started with Amazon IVS Chat `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/tag-resource.rst new file mode 100644 index 000000000..4a5407a01 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/tag-resource.rst @@ -0,0 +1,11 @@ +**To add or update tags for an AWS resource (for example: Room)** + +The following ``tag-resource`` example adds or updates tags for a specified resource ARN (Amazon Resource Name). On success it returns HTTP 200 with an empty response body. :: + + aws ivschat tag-resource \ + --resource-arn arn:aws:ivschat:us-west-2:12345689012:room/g1H2I3j4k5L6 \ + --tags "tagkey1=tagkeyvalue1, tagkey2=tagkeyvalue2" + +This command produces no output. + +For more information, see `Tagging `__ in the *Amazon Interactive Video Service API Reference*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/untag-resource.rst new file mode 100644 index 000000000..83f9d14b9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove tags for an AWS resource (for example: Room)** + +The following ``untag-resource`` example removes the specified tags for a specified resource ARN (Amazon Resource Name). On success it returns HTTP 200 with an empty response body. :: + + aws ivschat untag-resource \ + --resource-arn arn:aws:ivschat:us-west-2:12345689012:room/g1H2I3j4k5L6 \ + --tag-keys "tagkey1, tagkey2" + +This command produces no output. + +For more information, see `Tagging `__ in the *Amazon Interactive Video Service API Reference*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/update-logging-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/update-logging-configuration.rst new file mode 100644 index 000000000..bdde57eaf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/update-logging-configuration.rst @@ -0,0 +1,27 @@ +**To update a room's logging configuration** + +The following ``update-logging-configuration`` example updates a LoggingConfiguration resource with the given data. :: + + aws ivschat update-logging-configuration \ + --destination-configuration s3={bucketName=demo-logging-bucket} \ + --identifier "arn:aws:ivschat:us-west-2:123456789012:logging-configuration/ABcdef34ghIJ" \ + --name "test-logging-config" + +Output:: + + { + "arn": "arn:aws:ivschat:us-west-2:123456789012:logging-configuration/ABcdef34ghIJ", + "createTime": "2022-09-14T17:48:00.653000+00:00", + "destinationConfiguration": { + "s3": { + "bucketName": "demo-logging-bucket" + } + }, + "id": "ABcdef34ghIJ", + "name": "test-logging-config", + "state": "ACTIVE", + "tags": { "key1" : "value1", "key2" : "value2" }, + "updateTime": "2022-09-14T17:48:01.104000+00:00" + } + +For more information, see `Getting Started with Amazon IVS Chat `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/update-room.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/update-room.rst new file mode 100644 index 000000000..464179132 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ivschat/update-room.rst @@ -0,0 +1,26 @@ +**To update a room's configuration** + +The following ``update-room`` example updates the specified room's configuration with the given data. :: + + aws ivschat update-room \ + --identifier "arn:aws:ivschat:us-west-2:12345689012:room/g1H2I3j4k5L6" \ + --logging-configuration-identifiers "arn:aws:ivschat:us-west-2:123456789012:logging-configuration/ABcdef34ghIJ" \ + --name "chat-room-a" \ + --maximum-message-length 256 \ + --maximum-message-rate-per-second 5 + +Output:: + + { + "arn": "arn:aws:ivschat:us-west-2:12345689012:room/g1H2I3j4k5L6", + "createTime": "2022-03-16T04:44:09+00:00", + "id": "g1H2I3j4k5L6", + "loggingConfigurationIdentifiers": ["arn:aws:ivschat:us-west-2:123456789012:logging-configuration/ABcdef34ghIJ"], + "maximumMessageLength": 256, + "maximumMessageRatePerSecond": 5, + "name": "chat-room-a", + "tags": {}, + "updateTime": "2022-03-16T07:22:09+00:00" + } + +For more information, see `Getting Started with Amazon IVS Chat `__ in the *Amazon Interactive Video Service User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kafka/create-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kafka/create-cluster.rst new file mode 100644 index 000000000..65726b640 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kafka/create-cluster.rst @@ -0,0 +1,31 @@ +**To create an Amazon MSK cluster** + +The following ``create-cluster`` example creates an MSK cluster named ``MessagingCluster`` with three broker nodes. A JSON file named ``brokernodegroupinfo.json`` specifies the three subnets over which you want Amazon MSK to distribute the broker nodes. This example doesn't specify the monitoring level, so the cluster gets the ``DEFAULT`` level. :: + + aws kafka create-cluster \ + --cluster-name "MessagingCluster" \ + --broker-node-group-info file://brokernodegroupinfo.json \ + --kafka-version "2.2.1" \ + --number-of-broker-nodes 3 + +Contents of ``brokernodegroupinfo.json``:: + + { + "InstanceType": "kafka.m5.xlarge", + "BrokerAZDistribution": "DEFAULT", + "ClientSubnets": [ + "subnet-0123456789111abcd", + "subnet-0123456789222abcd", + "subnet-0123456789333abcd" + ] + } + +Output:: + + { + "ClusterArn": "arn:aws:kafka:us-west-2:123456789012:cluster/MessagingCluster/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE-2", + "ClusterName": "MessagingCluster", + "State": "CREATING" + } + +For more information, see `Create an Amazon MSK Cluster `__ in the *Amazon Managed Streaming for Apache Kafka*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kafka/create-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kafka/create-configuration.rst new file mode 100644 index 000000000..d19742313 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kafka/create-configuration.rst @@ -0,0 +1,32 @@ +**To create a custom Amazon MSK configuration** + +The following ``create-configuration`` example creates a custom MSK configuration with the server properties that are specified in the input file. :: + + aws kafka create-configuration \ + --name "CustomConfiguration" \ + --description "Topic autocreation enabled; Apache ZooKeeper timeout 2000 ms; Log rolling 604800000 ms." \ + --kafka-versions "2.2.1" \ + --server-properties file://configuration.txt + +Contents of ``configuration.txt``:: + + auto.create.topics.enable = true + zookeeper.connection.timeout.ms = 2000 + log.roll.ms = 604800000 + +This command produces no output. +Output:: + + { + "Arn": "arn:aws:kafka:us-west-2:123456789012:configuration/CustomConfiguration/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE-2", + "CreationTime": "2019-10-09T15:26:05.548Z", + "LatestRevision": + { + "CreationTime": "2019-10-09T15:26:05.548Z", + "Description": "Topic autocreation enabled; Apache ZooKeeper timeout 2000 ms; Log rolling 604800000 ms.", + "Revision": 1 + }, + "Name": "CustomConfiguration" + } + +For more information, see `Amazon MSK Configuration Operations `__ in the *Amazon Managed Streaming for Apache Kafka Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kafka/describe-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kafka/describe-cluster.rst new file mode 100644 index 000000000..3f5f042ca --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kafka/describe-cluster.rst @@ -0,0 +1,62 @@ +**To describe a cluster** + +The following ``describe-cluster`` example describes an Amazon MSK cluster. :: + + aws kafka describe-cluster \ + --cluster-arn arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5 + +Output:: + + { + "ClusterInfo": { + "BrokerNodeGroupInfo": { + "BrokerAZDistribution": "DEFAULT", + "ClientSubnets": [ + "subnet-cbfff283", + "subnet-6746046b" + ], + "InstanceType": "kafka.m5.large", + "SecurityGroups": [ + "sg-f839b688" + ], + "StorageInfo": { + "EbsStorageInfo": { + "VolumeSize": 100 + } + } + }, + "ClusterArn": "arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5", + "ClusterName": "demo-cluster-1", + "CreationTime": "2020-07-09T02:31:36.223000+00:00", + "CurrentBrokerSoftwareInfo": { + "KafkaVersion": "2.2.1" + }, + "CurrentVersion": "K3AEGXETSR30VB", + "EncryptionInfo": { + "EncryptionAtRest": { + "DataVolumeKMSKeyId": "arn:aws:kms:us-east-1:123456789012:key/a7ca56d5-0768-4b64-a670-339a9fbef81c" + }, + "EncryptionInTransit": { + "ClientBroker": "TLS_PLAINTEXT", + "InCluster": true + } + }, + "EnhancedMonitoring": "DEFAULT", + "OpenMonitoring": { + "Prometheus": { + "JmxExporter": { + "EnabledInBroker": false + }, + "NodeExporter": { + "EnabledInBroker": false + } + } + }, + "NumberOfBrokerNodes": 2, + "State": "ACTIVE", + "Tags": {}, + "ZookeeperConnectString": "z-2.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:2181,z-1.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:2181,z-3.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:2181" + } + } + +For more information, see `Listing Amazon MSK Clusters `__ in the *Amazon Managed Streaming for Apache Kafka Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kafka/get-bootstrap-brokers.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kafka/get-bootstrap-brokers.rst new file mode 100644 index 000000000..67b65f06d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kafka/get-bootstrap-brokers.rst @@ -0,0 +1,18 @@ +**To get bootstrap brokers** + +The following ``get-bootstrap-brokers`` example retrieves the bootstrap broker information for an Amazon MSK cluster. :: + + aws kafka get-bootstrap-brokers \ + --cluster-arn arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5 + +Output:: + + { + "BootstrapBrokerString": "b-1.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:9092,b-2.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:9092", + "BootstrapBrokerStringTls": "b-1.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:9094,b-2.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:9094" + } + +For more information, see `Getting the Bootstrap Brokers `__ in the *Amazon Managed Streaming for Apache Kafka Developer Guide*. + + + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kafka/list-clusters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kafka/list-clusters.rst new file mode 100644 index 000000000..7bcf28d1a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kafka/list-clusters.rst @@ -0,0 +1,63 @@ +**To list the available clusters** + +The following ``list-clusters`` example lists the Amazon MSK clusters in your AWS account. :: + + aws kafka list-clusters + +Output:: + + { + "ClusterInfoList": [ + { + "BrokerNodeGroupInfo": { + "BrokerAZDistribution": "DEFAULT", + "ClientSubnets": [ + "subnet-cbfff283", + "subnet-6746046b" + ], + "InstanceType": "kafka.m5.large", + "SecurityGroups": [ + "sg-f839b688" + ], + "StorageInfo": { + "EbsStorageInfo": { + "VolumeSize": 100 + } + } + }, + "ClusterArn": "arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5", + "ClusterName": "demo-cluster-1", + "CreationTime": "2020-07-09T02:31:36.223000+00:00", + "CurrentBrokerSoftwareInfo": { + "KafkaVersion": "2.2.1" + }, + "CurrentVersion": "K3AEGXETSR30VB", + "EncryptionInfo": { + "EncryptionAtRest": { + "DataVolumeKMSKeyId": "arn:aws:kms:us-east-1:123456789012:key/a7ca56d5-0768-4b64-a670-339a9fbef81c" + }, + "EncryptionInTransit": { + "ClientBroker": "TLS_PLAINTEXT", + "InCluster": true + } + }, + "EnhancedMonitoring": "DEFAULT", + "OpenMonitoring": { + "Prometheus": { + "JmxExporter": { + "EnabledInBroker": false + }, + "NodeExporter": { + "EnabledInBroker": false + } + } + }, + "NumberOfBrokerNodes": 2, + "State": "ACTIVE", + "Tags": {}, + "ZookeeperConnectString": "z-2.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:2181,z-1.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:2181,z-3.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:2181" + } + ] + } + +For more information, see `Listing Amazon MSK Clusters `__ in the *Amazon Managed Streaming for Apache Kafka Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kafka/update-broker-storage.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kafka/update-broker-storage.rst new file mode 100644 index 000000000..771aa404c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kafka/update-broker-storage.rst @@ -0,0 +1,18 @@ +**To update the EBS storage for brokers** + +The following ``update-broker-storage`` example updates the amount of EBS storage for all the brokers in the cluster. Amazon MSK sets the target storage amount for each broker to the amount specified in the example. You can get the current version of the cluster by describing the cluster or by listing all of the clusters. :: + + + aws kafka update-broker-storage \ + --cluster-arn "arn:aws:kafka:us-west-2:123456789012:cluster/MessagingCluster/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE-2" \ + --current-version "K21V3IB1VIZYYH" \ + --target-broker-ebs-volume-info "KafkaBrokerNodeId=ALL,VolumeSizeGB=1100" + +The output returns an ARN for this ``update-broker-storage`` operation. To determine if this operation is complete, use the ``describe-cluster-operation`` command with this ARN as input. :: + + { + "ClusterArn": "arn:aws:kafka:us-west-2:123456789012:cluster/MessagingCluster/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE-2", + "ClusterOperationArn": "arn:aws:kafka:us-west-2:123456789012:cluster-operation/V123450123/a1b2c3d4-1234-abcd-cdef-22222EXAMPLE-2/a1b2c3d4-abcd-1234-bcde-33333EXAMPLE" + } + +For more information, see `Update the EBS Storage for Brokers `__ in the *Amazon Managed Streaming for Apache Kafka Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kafka/update-cluster-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kafka/update-cluster-configuration.rst new file mode 100644 index 000000000..bb9ee3571 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kafka/update-cluster-configuration.rst @@ -0,0 +1,25 @@ +**To update the configuration of an Amazon MSK cluster** + +The following ``update-cluster-configuration`` example updates the configuration of the specified existing MSK cluster. It uses a custom MSK configuration. :: + + + aws kafka update-cluster-configuration \ + --cluster-arn "arn:aws:kafka:us-west-2:123456789012:cluster/MessagingCluster/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE-2" \ + --configuration-info file://configuration-info.json \ + --current-version "K21V3IB1VIZYYH" + +Contents of ``configuration-info.json``:: + + { + "Arn": "arn:aws:kafka:us-west-2:123456789012:configuration/CustomConfiguration/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE-2", + "Revision": 1 + } + +The output returns an ARN for this ``update-cluster-configuration`` operation. To determine if this operation is complete, use the ``describe-cluster-operation`` command with this ARN as input. :: + + { + "ClusterArn": "arn:aws:kafka:us-west-2:123456789012:cluster/MessagingCluster/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE-2", + "ClusterOperationArn": "arn:aws:kafka:us-west-2:123456789012:cluster-operation/V123450123/a1b2c3d4-1234-abcd-cdef-22222EXAMPLE-2/a1b2c3d4-abcd-1234-bcde-33333EXAMPLE" + } + +For more information, see `Update the Configuration of an Amazon MSK Cluster `__ in the *Amazon Managed Streaming for Apache Kafka Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kendra/create-data-source.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kendra/create-data-source.rst new file mode 100644 index 000000000..e1020f24d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kendra/create-data-source.rst @@ -0,0 +1,24 @@ +**To create an Amazon Kendra data source connector** + +The following ``create-data-source`` creates and configures an Amazon Kendra data source connector. You can use ``describe-data-source`` to view the status of a data source connector, and read any error messages if the status shows a data source connector "FAILED" to completely create. :: + + aws kendra create-data-source \ + --name "example data source 1" \ + --description "Example data source 1 for example index 1 contains the first set of example documents" \ + --tags '{"Key": "test resources", "Value": "kendra"}, {"Key": "test resources", "Value": "aws"}' \ + --role-arn "arn:aws:iam::my-account-id:role/KendraRoleForS3TemplateConfigDataSource" \ + --index-id exampleindex1 \ + --language-code "es" \ + --schedule "0 0 18 ? * TUE,MON,WED,THU,FRI,SAT *" \ + --configuration '{"TemplateConfiguration": {"Template": file://s3schemaconfig.json}}' \ + --type "TEMPLATE" \ + --custom-document-enrichment-configuration '{"PostExtractionHookConfiguration": {"LambdaArn": "arn:aws:iam::my-account-id:function/my-function-ocr-docs", "S3Bucket": "s3://amzn-s3-demo-bucket/scanned-image-text-example-docs"}, "RoleArn": "arn:aws:iam:my-account-id:role/KendraRoleForCDE"}' \ + --vpc-configuration '{"SecurityGroupIds": ["sg-1234567890abcdef0"], "SubnetIds": ["subnet-1c234","subnet-2b134"]}' + +Output:: + + { + "Id": "exampledatasource1" + } + +For more information, see `Getting started with an Amazon Kendra index and data source connector `__ in the *Amazon Kendra Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kendra/create-index.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kendra/create-index.rst new file mode 100644 index 000000000..422a9c398 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kendra/create-index.rst @@ -0,0 +1,21 @@ +**To create an Amazon Kendra index** + +The following ``create-index`` creates and configures an Amazon Kendra index. You can use ``describe-index`` to view the status of an index, and read any error messages if the status shows an index "FAILED" to completely create. :: + + aws kendra create-index \ + --name "example index 1" \ + --description "Example index 1 contains the first set of example documents" \ + --tags '{"Key": "test resources", "Value": "kendra"}, {"Key": "test resources", "Value": "aws"}' \ + --role-arn "arn:aws:iam::my-account-id:role/KendraRoleForExampleIndex" \ + --edition "DEVELOPER_EDITION" \ + --server-side-encryption-configuration '{"KmsKeyId": "my-kms-key-id"}' \ + --user-context-policy "USER_TOKEN" \ + --user-token-configurations '{"JsonTokenTypeConfiguration": {"GroupAttributeField": "groupNameField", "UserNameAttributeField": "userNameField"}}' + +Output:: + + { + "Id": index1 + } + +For more information, see `Getting started with an Amazon Kendra index and data source connector `__ in the *Amazon Kendra Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kendra/describe-data-source.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kendra/describe-data-source.rst new file mode 100644 index 000000000..949a18dd2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kendra/describe-data-source.rst @@ -0,0 +1,84 @@ +**To get information about an Amazon Kendra data source connector** + +The following ``describe-data-source`` gets information about an Amazon Kendra data source connector. You can view the configuration of a data source connector, and read any error messages if the status shows a data source connector "FAILED" to completely create. :: + + aws kendra describe-data-source \ + --id exampledatasource1 \ + --index-id exampleindex1 + +Output:: + + { + "Configuration": { + "TemplateConfiguration": { + "Template": { + "connectionConfiguration": { + "repositoryEndpointMetadata": { + "BucketName": "amzn-s3-demo-bucket" + } + }, + "repositoryConfigurations": { + "document":{ + "fieldMappings": [ + { + "indexFieldName":"_document_title", + "indexFieldType":"STRING", + "dataSourceFieldName": "title" + }, + { + "indexFieldName":"_last_updated_at", + "indexFieldType":"DATE", + "dataSourceFieldName": "modified_date" + } + ] + } + }, + "additionalProperties": { + "inclusionPatterns": [ + "*.txt", + "*.doc", + "*.docx" + ], + "exclusionPatterns": [ + "*.json" + ], + "inclusionPrefixes": [ + "PublicExampleDocsFolder" + ], + "exclusionPrefixes": [ + "PrivateDocsFolder/private" + ], + "aclConfigurationFilePath": "ExampleDocsFolder/AclConfig.json", + "metadataFilesPrefix": "metadata" + }, + "syncMode": "FULL_CRAWL", + "type" : "S3", + "version": "1.0.0" + } + } + }, + "CreatedAt": 2024-02-25T13:30:10+00:00, + "CustomDocumentEnrichmentConfiguration": { + "PostExtractionHookConfiguration": { + "LambdaArn": "arn:aws:iam::my-account-id:function/my-function-ocr-docs", + "S3Bucket": "s3://amzn-s3-demo-bucket/scanned-image-text-example-docs/function" + }, + "RoleArn": "arn:aws:iam:my-account-id:role/KendraRoleForCDE" + } + "Description": "Example data source 1 for example index 1 contains the first set of example documents", + "Id": exampledatasource1, + "IndexId": exampleindex1, + "LanguageCode": "en", + "Name": "example data source 1", + "RoleArn": "arn:aws:iam::my-account-id:role/KendraRoleForS3TemplateConfigDataSource", + "Schedule": "0 0 18 ? * TUE,MON,WED,THU,FRI,SAT *", + "Status": "ACTIVE", + "Type": "TEMPLATE", + "UpdatedAt": 1709163615, + "VpcConfiguration": { + "SecurityGroupIds": ["sg-1234567890abcdef0"], + "SubnetIds": ["subnet-1c234","subnet-2b134"] + } + } + +For more information, see `Getting started with an Amazon Kendra index and data source connector `__ in the *Amazon Kendra Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kendra/describe-index.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kendra/describe-index.rst new file mode 100644 index 000000000..e2a659245 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kendra/describe-index.rst @@ -0,0 +1,108 @@ +**To get information about an Amazon Kendra index** + +The following ``describe-index`` gets information about an Amazon Kendra index. You can view the configuration of an index, and read any error messages if the status shows an index "FAILED" to completely create. :: + + aws kendra describe-index \ + --id exampleindex1 + +Output:: + + { + "CapacityUnits": { + "QueryCapacityUnits": 0, + "StorageCapacityUnits": 0 + }, + "CreatedAt": 2024-02-25T12:30:10+00:00, + "Description": "Example index 1 contains the first set of example documents", + "DocumentMetadataConfigurations": [ + { + "Name": "_document_title", + "Relevance": { + "Importance": 8 + }, + "Search": { + "Displayable": true, + "Facetable": false, + "Searchable": true, + "Sortable": false + }, + "Type": "STRING_VALUE" + }, + { + "Name": "_document_body", + "Relevance": { + "Importance": 5 + }, + "Search": { + "Displayable": true, + "Facetable": false, + "Searchable": true, + "Sortable": false + }, + "Type": "STRING_VALUE" + }, + { + "Name": "_last_updated_at", + "Relevance": { + "Importance": 6, + "Duration": "2628000s", + "Freshness": true + }, + "Search": { + "Displayable": true, + "Facetable": false, + "Searchable": true, + "Sortable": true + }, + "Type": "DATE_VALUE" + }, + { + "Name": "department_custom_field", + "Relevance": { + "Importance": 7, + "ValueImportanceMap": { + "Human Resources" : 4, + "Marketing and Sales" : 2, + "Research and innvoation" : 3, + "Admin" : 1 + } + }, + "Search": { + "Displayable": true, + "Facetable": true, + "Searchable": true, + "Sortable": true + }, + "Type": "STRING_VALUE" + } + ], + "Edition": "DEVELOPER_EDITION", + "Id": "index1", + "IndexStatistics": { + "FaqStatistics": { + "IndexedQuestionAnswersCount": 10 + }, + "TextDocumentStatistics": { + "IndexedTextBytes": 1073741824, + "IndexedTextDocumentsCount": 1200 + } + }, + "Name": "example index 1", + "RoleArn": "arn:aws:iam::my-account-id:role/KendraRoleForExampleIndex", + "ServerSideEncryptionConfiguration": { + "KmsKeyId": "my-kms-key-id" + }, + "Status": "ACTIVE", + "UpdatedAt": 1709163615, + "UserContextPolicy": "USER_TOKEN", + "UserTokenConfigurations": [ + { + "JsonTokenTypeConfiguration": { + "GroupAttributeField": "groupNameField", + "UserNameAttributeField": "userNameField" + } + } + ] + } + +For more information, see `Getting started with an Amazon Kendra index and data source connector `__ in the *Amazon Kendra Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kendra/update-data-source.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kendra/update-data-source.rst new file mode 100644 index 000000000..68146e9d0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kendra/update-data-source.rst @@ -0,0 +1,19 @@ +**To update an Amazon Kendra data source connector** + +The following ``update-data-source`` updates the configuration of an Amazon Kendra data source connector. If the action is successful, the service either sends back no output, the HTTP status code 200, or the AWS CLI return code 0. You can use ``describe-data-source`` to view the configuration and status of a data source connector. :: + + aws kendra update-data-source \ + --id exampledatasource1 \ + --index-id exampleindex1 \ + --name "new name for example data source 1" \ + --description "new description for example data source 1" \ + --role-arn arn:aws:iam::my-account-id:role/KendraNewRoleForExampleDataSource \ + --configuration '{"TemplateConfiguration": {"Template": file://s3schemanewconfig.json}}' \ + --custom-document-enrichment-configuration '{"PostExtractionHookConfiguration": {"LambdaArn": "arn:aws:iam::my-account-id:function/my-function-ocr-docs", "S3Bucket": "s3://amzn-s3-demo-bucket/scanned-image-text-example-docs"}, "RoleArn": "arn:aws:iam:my-account-id:role/KendraNewRoleForCDE"}' \ + --language-code "es" \ + --schedule "0 0 18 ? * MON,WED,FRI *" \ + --vpc-configuration '{"SecurityGroupIds": ["sg-1234567890abcdef0"], "SubnetIds": ["subnet-1c234","subnet-2b134"]}' + +This command produces no output. + +For more information, see `Getting started with an Amazon Kendra index and data source connector `__ in the *Amazon Kendra Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kendra/update-index.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kendra/update-index.rst new file mode 100644 index 000000000..c89b3ccac --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kendra/update-index.rst @@ -0,0 +1,17 @@ +**To update an Amazon Kendra index** + +The following ``update-index`` updates the configuration of an Amazon Kendra index. If the action is successful, the service either sends back no output, the HTTP status code 200, or the AWS CLI return code 0. You can use ``describe-index`` to view the configuration and status of an index. :: + + aws kendra update-index \ + --id enterpriseindex1 \ + --name "new name for Enterprise Edition index 1" \ + --description "new description for Enterprise Edition index 1" \ + --role-arn arn:aws:iam::my-account-id:role/KendraNewRoleForEnterpriseIndex \ + --capacity-units '{"QueryCapacityUnits": 2, "StorageCapacityUnits": 1}' \ + --document-metadata-configuration-updates '{"Name": "_document_title", "Relevance": {"Importance": 6}}, {"Name": "_last_updated_at", "Relevance": {"Importance": 8}}' \ + --user-context-policy "USER_TOKEN" \ + --user-token-configurations '{"JsonTokenTypeConfiguration": {"GroupAttributeField": "groupNameField", "UserNameAttributeField": "userNameField"}}' + +This command produces no output. + +For more information, see `Getting started with an Amazon Kendra index and data source connector `__ in the *Amazon Kendra Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/add-tags-to-stream.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/add-tags-to-stream.rst new file mode 100644 index 000000000..0489093a1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/add-tags-to-stream.rst @@ -0,0 +1,11 @@ +**To add tags to a data stream** + +The following ``add-tags-to-stream`` example assigns a tag with the key ``samplekey`` and value ``example`` to the specified stream. :: + + aws kinesis add-tags-to-stream \ + --stream-name samplestream \ + --tags samplekey=example + +This command produces no output. + +For more information, see `Tagging Your Streams `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/create-stream.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/create-stream.rst new file mode 100644 index 000000000..841325754 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/create-stream.rst @@ -0,0 +1,11 @@ +**To create a data stream** + +The following ``create-stream`` example creates a data stream named samplestream with 3 shards. :: + + aws kinesis create-stream \ + --stream-name samplestream \ + --shard-count 3 + +This command produces no output. + +For more information, see `Creating a Stream `__ in the *Amazon Kinesis Data Streams Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/decrease-stream-retention-period.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/decrease-stream-retention-period.rst new file mode 100644 index 000000000..48dbc01e3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/decrease-stream-retention-period.rst @@ -0,0 +1,11 @@ +**To decrease data stream retention period** + +The following ``decrease-stream-retention-period`` example decreases the retention period (the length of time data records are accessible after they are added to the stream) of a stream named samplestream to 48 hours. :: + + aws kinesis decrease-stream-retention-period \ + --stream-name samplestream \ + --retention-period-hours 48 + +This command produces no output. + +For more information, see `Changing the Data Retention Period `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/delete-stream.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/delete-stream.rst new file mode 100644 index 000000000..afb8c9276 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/delete-stream.rst @@ -0,0 +1,10 @@ +**To delete a data stream** + +The following ``delete-stream`` example deletes the specified data stream. :: + + aws kinesis delete-stream \ + --stream-name samplestream + +This command produces no output. + +For more information, see `Deleting a Stream `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/deregister-stream-consumer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/deregister-stream-consumer.rst new file mode 100644 index 000000000..f0397e778 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/deregister-stream-consumer.rst @@ -0,0 +1,11 @@ +**To deregister a data stream consumer** + +The following ``deregister-stream-consumer`` example deregisters the specified consumer from the specified data stream. :: + + aws kinesis deregister-stream-consumer \ + --stream-arn arn:aws:kinesis:us-west-2:123456789012:stream/samplestream \ + --consumer-name KinesisConsumerApplication + +This command produces no output. + +For more information, see `Developing Consumers with Enhanced Fan-Out Using the Kinesis Data Streams API `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/describe-limits.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/describe-limits.rst new file mode 100644 index 000000000..2f8cfa5c3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/describe-limits.rst @@ -0,0 +1,14 @@ +**To describe shard limits** + +The following ``describe-limits`` example displays the shard limits and usage for the current AWS account. :: + + aws kinesis describe-limits + +Output:: + + { + "ShardLimit": 500, + "OpenShardCount": 29 + } + +For more information, see `Resharding a Stream `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/describe-stream-consumer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/describe-stream-consumer.rst new file mode 100644 index 000000000..b5ce6492d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/describe-stream-consumer.rst @@ -0,0 +1,21 @@ +**To describe a data stream consumer** + +The following ``describe-stream-consumer`` example returns the description of the specified consumer, registered with the specified data stream. :: + + aws kinesis describe-stream-consumer \ + --stream-arn arn:aws:kinesis:us-west-2:012345678912:stream/samplestream \ + --consumer-name KinesisConsumerApplication + +Output:: + + { + "ConsumerDescription": { + "ConsumerName": "KinesisConsumerApplication", + "ConsumerARN": "arn:aws:kinesis:us-west-2:123456789012:stream/samplestream/consumer/KinesisConsumerApplication:1572383852", + "ConsumerStatus": "ACTIVE", + "ConsumerCreationTimestamp": 1572383852.0, + "StreamARN": "arn:aws:kinesis:us-west-2:123456789012:stream/samplestream" + } + } + +For more information, see `Reading Data from Amazon Kinesis Data Streams `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/describe-stream-summary.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/describe-stream-summary.rst new file mode 100644 index 000000000..b549a3b75 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/describe-stream-summary.rst @@ -0,0 +1,28 @@ +**To describe a data stream summary** + +The following ``describe-stream-summary`` example provides a summarized description (without the shard list) of the specified data stream. :: + + aws kinesis describe-stream-summary \ + --stream-name samplestream + +Output:: + + { + "StreamDescriptionSummary": { + "StreamName": "samplestream", + "StreamARN": "arn:aws:kinesis:us-west-2:123456789012:stream/samplestream", + "StreamStatus": "ACTIVE", + "RetentionPeriodHours": 48, + "StreamCreationTimestamp": 1572297168.0, + "EnhancedMonitoring": [ + { + "ShardLevelMetrics": [] + } + ], + "EncryptionType": "NONE", + "OpenShardCount": 3, + "ConsumerCount": 0 + } + } + +For more information, see `Creating and Managing Streams `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/describe-stream.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/describe-stream.rst new file mode 100644 index 000000000..ed797e9c6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/describe-stream.rst @@ -0,0 +1,60 @@ +**To describe a data stream** + +The following ``describe-stream`` example returns the details of the specified data stream. :: + + aws kinesis describe-stream \ + --stream-name samplestream + +Output:: + + { + "StreamDescription": { + "Shards": [ + { + "ShardId": "shardId-000000000000", + "HashKeyRange": { + "StartingHashKey": "0", + "EndingHashKey": "113427455640312821154458202477256070484" + }, + "SequenceNumberRange": { + "StartingSequenceNumber": "49600871682957036442365024926191073437251060580128653314" + } + }, + { + "ShardId": "shardId-000000000001", + "HashKeyRange": { + "StartingHashKey": "113427455640312821154458202477256070485", + "EndingHashKey": "226854911280625642308916404954512140969" + }, + "SequenceNumberRange": { + "StartingSequenceNumber": "49600871682979337187563555549332609155523708941634633746" + } + }, + { + "ShardId": "shardId-000000000002", + "HashKeyRange": { + "StartingHashKey": "226854911280625642308916404954512140970", + "EndingHashKey": "340282366920938463463374607431768211455" + }, + "SequenceNumberRange": { + "StartingSequenceNumber": "49600871683001637932762086172474144873796357303140614178" + } + } + ], + "StreamARN": "arn:aws:kinesis:us-west-2:123456789012:stream/samplestream", + "StreamName": "samplestream", + "StreamStatus": "ACTIVE", + "RetentionPeriodHours": 24, + "EnhancedMonitoring": [ + { + "ShardLevelMetrics": [] + } + ], + "EncryptionType": "NONE", + "KeyId": null, + "StreamCreationTimestamp": 1572297168.0 + } + } + + +For more information, see `Creating and Managing Streams `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/disable-enhanced-monitoring.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/disable-enhanced-monitoring.rst new file mode 100644 index 000000000..518f51d56 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/disable-enhanced-monitoring.rst @@ -0,0 +1,24 @@ +**To disable enhanced monitoring for shard-level metrics** + +The following ``disable-enhanced-monitoring`` example disables enhanced Kinesis data stream monitoring for shard-level metrics. :: + + aws kinesis disable-enhanced-monitoring \ + --stream-name samplestream --shard-level-metrics ALL + +Output:: + + { + "StreamName": "samplestream", + "CurrentShardLevelMetrics": [ + "IncomingBytes", + "OutgoingRecords", + "IteratorAgeMilliseconds", + "IncomingRecords", + "ReadProvisionedThroughputExceeded", + "WriteProvisionedThroughputExceeded", + "OutgoingBytes" + ], + "DesiredShardLevelMetrics": [] + } + +For more information, see `Monitoring Streams in Amazon Kinesis Data Streams `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/enable-enhanced-monitoring.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/enable-enhanced-monitoring.rst new file mode 100644 index 000000000..53102c94a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/enable-enhanced-monitoring.rst @@ -0,0 +1,25 @@ +**To enable enhanced monitoring for shard-level metrics** + +The following ``enable-enhanced-monitoring`` example enables enhanced Kinesis data stream monitoring for shard-level metrics. :: + + aws kinesis enable-enhanced-monitoring \ + --stream-name samplestream \ + --shard-level-metrics ALL + +Output:: + + { + "StreamName": "samplestream", + "CurrentShardLevelMetrics": [], + "DesiredShardLevelMetrics": [ + "IncomingBytes", + "OutgoingRecords", + "IteratorAgeMilliseconds", + "IncomingRecords", + "ReadProvisionedThroughputExceeded", + "WriteProvisionedThroughputExceeded", + "OutgoingBytes" + ] + } + +For more information, see `Monitoring Streams in Amazon Kinesis Data Streams `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/get-records.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/get-records.rst new file mode 100644 index 000000000..4bae19f0e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/get-records.rst @@ -0,0 +1,15 @@ +**To obtain records from a shard** + +The following ``get-records`` example gets data records from a Kinesis data stream's shard using the specified shard iterator. :: + + aws kinesis get-records \ + --shard-iterator AAAAAAAAAAF7/0mWD7IuHj1yGv/TKuNgx2ukD5xipCY4cy4gU96orWwZwcSXh3K9tAmGYeOZyLZrvzzeOFVf9iN99hUPw/w/b0YWYeehfNvnf1DYt5XpDJghLKr3DzgznkTmMymDP3R+3wRKeuEw6/kdxY2yKJH0veaiekaVc4N2VwK/GvaGP2Hh9Fg7N++q0Adg6fIDQPt4p8RpavDbk+A4sL9SWGE1 + +Output:: + + { + "Records": [], + "MillisBehindLatest": 80742000 + } + +For more information, see `Developing Consumers Using the Kinesis Data Streams API with the AWS SDK for Java `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/get-shard-iterator.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/get-shard-iterator.rst new file mode 100644 index 000000000..26daf4911 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/get-shard-iterator.rst @@ -0,0 +1,16 @@ +**To obtain a shard iterator** + +The following ``get-shard-iterator`` example uses the ``AT_SEQUENCE_NUMBER`` shard iterator type and generates a shard iterator to start reading data records exactly from the position denoted by the specified sequence number. :: + + aws kinesis get-shard-iterator \ + --stream-name samplestream \ + --shard-id shardId-000000000001 \ + --shard-iterator-type LATEST + +Output:: + + { + "ShardIterator": "AAAAAAAAAAFEvJjIYI+3jw/4aqgH9FifJ+n48XWTh/IFIsbILP6o5eDueD39NXNBfpZ10WL5K6ADXk8w+5H+Qhd9cFA9k268CPXCz/kebq1TGYI7Vy+lUkA9BuN3xvATxMBGxRY3zYK05gqgvaIRn94O8SqeEqwhigwZxNWxID3Ej7YYYcxQi8Q/fIrCjGAy/n2r5Z9G864YpWDfN9upNNQAR/iiOWKs" + } + +For more information, see `Developing Consumers Using the Kinesis Data Streams API with the AWS SDK for Java `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/increase-stream-retention-period.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/increase-stream-retention-period.rst new file mode 100644 index 000000000..57972a11e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/increase-stream-retention-period.rst @@ -0,0 +1,11 @@ +**To increase data stream retention period** + +The following ``increase-stream-retention-period`` example increases the retention period (the length of time data records are accessible after they are added to the stream) of the specified stream to 168 hours. :: + + aws kinesis increase-stream-retention-period \ + --stream-name samplestream \ + --retention-period-hours 168 + +This command produces no output. + +For more information, see `Changing the Data Retention Period `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/list-shards.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/list-shards.rst new file mode 100644 index 000000000..251d50d27 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/list-shards.rst @@ -0,0 +1,36 @@ +**To list shards in a data stream** + +The following ``list-shards`` example lists all shards in the specified stream starting with the shard whose ID immediately follows the specified ``exclusive-start-shard-id`` of ``shardId-000000000000``. :: + + aws kinesis list-shards \ + --stream-name samplestream \ + --exclusive-start-shard-id shardId-000000000000 + +Output:: + + { + "Shards": [ + { + "ShardId": "shardId-000000000001", + "HashKeyRange": { + "StartingHashKey": "113427455640312821154458202477256070485", + "EndingHashKey": "226854911280625642308916404954512140969" + }, + "SequenceNumberRange": { + "StartingSequenceNumber": "49600871682979337187563555549332609155523708941634633746" + } + }, + { + "ShardId": "shardId-000000000002", + "HashKeyRange": { + "StartingHashKey": "226854911280625642308916404954512140970", + "EndingHashKey": "340282366920938463463374607431768211455" + }, + "SequenceNumberRange": { + "StartingSequenceNumber": "49600871683001637932762086172474144873796357303140614178" + } + } + ] + } + +For more information, see `Listing Shards `__ in the *Amazon Kinesis Data Streams Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/list-streams.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/list-streams.rst new file mode 100644 index 000000000..ae76efc38 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/list-streams.rst @@ -0,0 +1,16 @@ +**To list data streams** + +The following ``list-streams`` example lists all active data streams in the current account and region. :: + + aws kinesis list-streams + +Output:: + + { + "StreamNames": [ + "samplestream", + "samplestream1" + ] + } + +For more information, see `Listing Streams `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/list-tags-for-stream.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/list-tags-for-stream.rst new file mode 100644 index 000000000..47ebfd75a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/list-tags-for-stream.rst @@ -0,0 +1,20 @@ +**To list tags for a data stream** + +The following ``list-tags-for-stream`` example lists the tags attached to the specified data stream. :: + + aws kinesis list-tags-for-stream \ + --stream-name samplestream + +Output:: + + { + "Tags": [ + { + "Key": "samplekey", + "Value": "example" + } + ], + "HasMoreTags": false + } + +For more information, see `Tagging Your Streams `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/merge-shards.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/merge-shards.rst new file mode 100644 index 000000000..9195e36e4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/merge-shards.rst @@ -0,0 +1,12 @@ +**To merge shards** + +The following ``merge-shards`` example merges two adjacent shards with IDs of shardId-000000000000 and shardId-000000000001 in the specified data stream and combines them into a single shard. :: + + aws kinesis merge-shards \ + --stream-name samplestream \ + --shard-to-merge shardId-000000000000 \ + --adjacent-shard-to-merge shardId-000000000001 + +This command produces no output. + +For more information, see `Merging Two Shards `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/put-record.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/put-record.rst new file mode 100644 index 000000000..4795241fc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/put-record.rst @@ -0,0 +1,18 @@ +**To write a record into a data stream** + +The following ``put-record`` example writes a single data record into the specified data stream using the specified partition key. :: + + aws kinesis put-record \ + --stream-name samplestream \ + --data sampledatarecord \ + --partition-key samplepartitionkey + +Output:: + + { + "ShardId": "shardId-000000000009", + "SequenceNumber": "49600902273357540915989931256901506243878407835297513618", + "EncryptionType": "KMS" + } + +For more information, see `Developing Producers Using the Amazon Kinesis Data Streams API with the AWS SDK for Java `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/put-records.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/put-records.rst new file mode 100644 index 000000000..0b9bee4f4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/put-records.rst @@ -0,0 +1,26 @@ +**To write multiple records into a data stream** + +The following ``put-records`` example writes a data record using the specified partition key and another data record using a different partition key in a single call. :: + + aws kinesis put-records \ + --stream-name samplestream \ + --records Data=blob1,PartitionKey=partitionkey1 Data=blob2,PartitionKey=partitionkey2 + +Output:: + + { + "FailedRecordCount": 0, + "Records": [ + { + "SequenceNumber": "49600883331171471519674795588238531498465399900093808706", + "ShardId": "shardId-000000000004" + }, + { + "SequenceNumber": "49600902273357540915989931256902715169698037101720764562", + "ShardId": "shardId-000000000009" + } + ], + "EncryptionType": "KMS" + } + +For more information, see `Developing Producers Using the Amazon Kinesis Data Streams API with the AWS SDK for Java `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/register-stream-consumer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/register-stream-consumer.rst new file mode 100644 index 000000000..4c9e30626 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/register-stream-consumer.rst @@ -0,0 +1,20 @@ +**To register a data stream consumer** + +The following ``register-stream-consumer`` example registers a consumer called ``KinesisConsumerApplication`` with the specified data stream. :: + + aws kinesis register-stream-consumer \ + --stream-arn arn:aws:kinesis:us-west-2:012345678912:stream/samplestream \ + --consumer-name KinesisConsumerApplication + +Output:: + + { + "Consumer": { + "ConsumerName": "KinesisConsumerApplication", + "ConsumerARN": "arn:aws:kinesis:us-west-2: 123456789012:stream/samplestream/consumer/KinesisConsumerApplication:1572383852", + "ConsumerStatus": "CREATING", + "ConsumerCreationTimestamp": 1572383852.0 + } + } + +For more information, see `Developing Consumers with Enhanced Fan-Out Using the Kinesis Data Streams API `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/remove-tags-from-stream.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/remove-tags-from-stream.rst new file mode 100644 index 000000000..69e3facd4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/remove-tags-from-stream.rst @@ -0,0 +1,11 @@ +**To remove tags from a data stream** + +The following ``remove-tags-from-stream`` example removes the tag with the specified key from the specified data stream. :: + + aws kinesis remove-tags-from-stream \ + --stream-name samplestream \ + --tag-keys samplekey + +This command produces no output. + +For more information, see `Tagging Your Streams `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/split-shard.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/split-shard.rst new file mode 100644 index 000000000..10ef05792 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/split-shard.rst @@ -0,0 +1,12 @@ +**To split shards** + +The following ``split-shard`` example splits the specified shard into two new shards using a new starting hash key of 10. :: + + aws kinesis split-shard \ + --stream-name samplestream \ + --shard-to-split shardId-000000000000 \ + --new-starting-hash-key 10 + +This command produces no output. + +For more information, see `Splitting a Shard `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/start-stream-encryption.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/start-stream-encryption.rst new file mode 100644 index 000000000..c99cc37ec --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/start-stream-encryption.rst @@ -0,0 +1,12 @@ +**To enable data stream encryption** + +The following ``start-stream-encryption`` example enables server-side encryption for the specified stream, using the specified AWS KMS key. :: + + aws kinesis start-stream-encryption \ + --encryption-type KMS \ + --key-id arn:aws:kms:us-west-2:012345678912:key/a3c4a7cd-728b-45dd-b334-4d3eb496e452 \ + --stream-name samplestream + +This command produces no output. + +For more information, see `Data Protection in Amazon Kinesis Data Streams `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/stop-stream-encryption.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/stop-stream-encryption.rst new file mode 100644 index 000000000..5ef4856a0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/stop-stream-encryption.rst @@ -0,0 +1,12 @@ +**To disable data stream encryption** + +The following ``stop-stream-encryption`` example disables server-side encryption for the specified stream, using the specified AWS KMS key. :: + + aws kinesis start-stream-encryption \ + --encryption-type KMS \ + --key-id arn:aws:kms:us-west-2:012345678912:key/a3c4a7cd-728b-45dd-b334-4d3eb496e452 \ + --stream-name samplestream + +This command produces no output. + +For more information, see `Data Protection in Amazon Kinesis Data Streams `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/update-shard-count.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/update-shard-count.rst new file mode 100644 index 000000000..ff0131d40 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kinesis/update-shard-count.rst @@ -0,0 +1,18 @@ +**To update the shard count in a data stream** + +The following ``update-shard-count`` example updates the shard count of the specified data stream to 6. This example uses uniform scaling, which creates shards of equal size. :: + + aws kinesis update-shard-count \ + --stream-name samplestream \ + --scaling-type UNIFORM_SCALING \ + --target-shard-count 6 + +Output:: + + { + "StreamName": "samplestream", + "CurrentShardCount": 3, + "TargetShardCount": 6 + } + +For more information, see `Resharding a Stream `__ in the *Amazon Kinesis Data Streams Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/cancel-key-deletion.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/cancel-key-deletion.rst new file mode 100644 index 000000000..ec848e778 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/cancel-key-deletion.rst @@ -0,0 +1,16 @@ +**To cancel the scheduled deletion of a customer managed KMS key** + +The following ``cancel-key-deletion`` example cancels the scheduled deletion of a customer managed KMS key. :: + + aws kms cancel-key-deletion \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab + +Output:: + + { + "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" + } + +When the ``cancel-key-deletion`` command succeeds, the scheduled deletion is canceled. However, the key state of the KMS key is ``Disabled``, so you can't use the KMS key in cryptographic operations. To restore its functionality, use the ``enable-key`` command . + +For more information, see `Scheduling and canceling key deletion `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/connect-custom-key-store.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/connect-custom-key-store.rst new file mode 100755 index 000000000..2a16ddcca --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/connect-custom-key-store.rst @@ -0,0 +1,14 @@ +**To connect a custom key store** + +The following ``connect-custom-key-store`` example reconnects the specified custom key store. You can use a command like this one to connect a custom key store for the first time or to reconnect a key store that was disconnected. + +You can use this command to connect an AWS CloudHSM key store or an external key store. :: + + aws kms connect-custom-key-store \ + --custom-key-store-id cks-1234567890abcdef0 + +This command does not return any output. To verify that the command was effective, use the ``describe-custom-key-stores`` command. + +For information about connecting an AWS CloudHSM key store, see `Connecting and disconnecting an AWS CloudHSM key store `__ in the *AWS Key Management Service Developer Guide*. + +For information about connecting an external key store, see `Connecting and disconnecting an external key store `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/create-alias.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/create-alias.rst new file mode 100644 index 000000000..931049747 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/create-alias.rst @@ -0,0 +1,13 @@ +**To create an alias for a KMS key** + +The following ``create-alias`` command creates an alias named ``example-alias`` for the KMS key identified by key ID ``1234abcd-12ab-34cd-56ef-1234567890ab``. + +Alias names must begin with ``alias/``. Do not use alias names that begin with ``alias/aws``; these are reserved for use by AWS. :: + + aws kms create-alias \ + --alias-name alias/example-alias \ + --target-key-id 1234abcd-12ab-34cd-56ef-1234567890ab + +This command doesn't return any output. To see the new alias, use the ``list-aliases`` command. + +For more information, see `Using aliases `__ in the *AWS Key Management Service Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/create-custom-key-store.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/create-custom-key-store.rst new file mode 100755 index 000000000..02e5bb890 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/create-custom-key-store.rst @@ -0,0 +1,75 @@ +**Example 1: To create an AWS CloudHSM key store** + +The following ``create-custom-key-store`` example creates an AWS CloudHSM key store backed by an AWS CloudHSM cluster using the required parameters. You can also add the ``custom-key-store-type``parameter with the default value: ``AWS_CLOUDHSM``. + +To specify the file input for the ``trust-anchor-certificate`` command in the AWS CLI, the ``file://`` prefix is required. :: + + aws kms create-custom-key-store \ + --custom-key-store-name ExampleCloudHSMKeyStore \ + --cloud-hsm-cluster-id cluster-1a23b4cdefg \ + --key-store-password kmsPswd \ + --trust-anchor-certificate file://customerCA.crt + +Output:: + + { + "CustomKeyStoreId": cks-1234567890abcdef0 + } + +For more information, see `Creating an AWS CloudHSM key store `__ in the *AWS Key Management Service Developer Guide*. + +**Example 2: To create an external key store with public endpoint connectivity** + +The following ``create-custom-key-store`` example creates an external key store (XKS) that communicates with AWS KMS over the internet. + +In this example, the ``XksProxyUriPath`` uses an optional prefix of ``example-prefix``. + +NOTE: If you use AWS CLI version 1.0, run the following command before specifying a parameter with an HTTP or HTTPS value, such as the XksProxyUriEndpoint parameter. :: + + aws configure set cli_follow_urlparam false + +Otherwise, AWS CLI version 1.0 replaces the parameter value with the content found at that URI address. :: + + aws kms create-custom-key-store \ + --custom-key-store-name ExamplePublicEndpointXKS \ + --custom-key-store-type EXTERNAL_KEY_STORE \ + --xks-proxy-connectivity PUBLIC_ENDPOINT \ + --xks-proxy-uri-endpoint "https://myproxy.xks.example.com" \ + --xks-proxy-uri-path "/example-prefix/kms/xks/v1" \ + --xks-proxy-authentication-credential "AccessKeyId=ABCDE12345670EXAMPLE, RawSecretAccessKey=DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo=" + + +Output:: + + { + "CustomKeyStoreId": cks-2234567890abcdef0 + } + +For more information, see `Creating an external key store `__ in the *AWS Key Management Service Developer Guide*. + +**Example 3: To create an external key store with VPC endpoint service connectivity** + +The following ``create-custom-key-store`` example creates an external key store (XKS) that uses an Amazon VPC endpoint service to communicate with AWS KMS. + +NOTE: If you use AWS CLI version 1.0, run the following command before specifying a parameter with an HTTP or HTTPS value, such as the XksProxyUriEndpoint parameter. :: + + aws configure set cli_follow_urlparam false + +Otherwise, AWS CLI version 1.0 replaces the parameter value with the content found at that URI address. :: + + aws kms create-custom-key-store \ + --custom-key-store-name ExampleVPCEndpointXKS \ + --custom-key-store-type EXTERNAL_KEY_STORE \ + --xks-proxy-connectivity VPC_ENDPOINT_SERVICE \ + --xks-proxy-uri-endpoint "https://myproxy-private.xks.example.com" \ + --xks-proxy-uri-path "/kms/xks/v1" \ + --xks-proxy-vpc-endpoint-service-name "com.amazonaws.vpce.us-east-1.vpce-svc-example1" \ + --xks-proxy-authentication-credential "AccessKeyId=ABCDE12345670EXAMPLE, RawSecretAccessKey=DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo=" + +Output:: + + { + "CustomKeyStoreId": cks-3234567890abcdef0 + } + +For more information, see `Creating an external key store `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/create-grant.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/create-grant.rst new file mode 100755 index 000000000..a0f34b0a4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/create-grant.rst @@ -0,0 +1,21 @@ +**To create a grant** + +The following ``create-grant`` example creates a grant that allows the ``exampleUser`` user to use the ``decrypt`` command on the ``1234abcd-12ab-34cd-56ef-1234567890ab`` example KMS key. The retiring principal is the ``adminRole`` role. The grant uses the ``EncryptionContextSubset`` grant constraint to allow this permission only when the encryption context in the ``decrypt`` request includes the ``"Department": "IT"`` key-value pair. :: + + aws kms create-grant \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --grantee-principal arn:aws:iam::123456789012:user/exampleUser \ + --operations Decrypt \ + --constraints EncryptionContextSubset={Department=IT} \ + --retiring-principal arn:aws:iam::123456789012:role/adminRole + +Output:: + + { + "GrantId": "1a2b3c4d2f5e69f440bae30eaec9570bb1fb7358824f9ddfa1aa5a0dab1a59b2", + "GrantToken": "" + } + +To view detailed information about the grant, use the ``list-grants`` command. + +For more information, see `Grants in AWS KMS `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/create-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/create-key.rst new file mode 100644 index 000000000..0dda6cdf8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/create-key.rst @@ -0,0 +1,333 @@ +**Example 1: To create a customer managed KMS key in AWS KMS** + +The following ``create-key`` example creates a symmetric encryption KMS key. + +To create the basic KMS key, a symmetric encryption key, you do not need to specify any parameters. The default values for those parameters create a symmetric encryption key. + +Because this command doesn't specify a key policy, the KMS key gets the `default key policy `__ for programmatically created KMS keys. To view the key policy, use the ``get-key-policy`` command. To change the key policy, use the ``put-key-policy`` command. :: + + aws kms create-key + +The ``create-key`` command returns the key metadata, including the key ID and ARN of the new KMS key. You can use these values to identify the KMS key in other AWS KMS operations. The output does not include the tags. To view the tags for a KMS key, use the ``list-resource-tags command``. + +Output:: + + { + "KeyMetadata": { + "AWSAccountId": "111122223333", + "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "CreationDate": "2017-07-05T14:04:55-07:00", + "CurrentKeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", + "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", + "Description": "", + "Enabled": true, + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyManager": "CUSTOMER", + "KeySpec": "SYMMETRIC_DEFAULT", + "KeyState": "Enabled", + "KeyUsage": "ENCRYPT_DECRYPT", + "MultiRegion": false, + "Origin": "AWS_KMS" + "EncryptionAlgorithms": [ + "SYMMETRIC_DEFAULT" + ] + } + } + +Note: The ``create-key`` command does not let you specify an alias, To create an alias for the new KMS key, use the ``create-alias`` command. + +For more information, see `Creating keys `__ in the *AWS Key Management Service Developer Guide*. + + +**Example 2: To create an asymmetric RSA KMS key for encryption and decryption** + +The following ``create-key`` example creates a KMS key that contains an asymmetric RSA key pair for encryption and decryption. The key spec and key usage can't be changed after the key is created.:: + + aws kms create-key \ + --key-spec RSA_4096 \ + --key-usage ENCRYPT_DECRYPT + +Output:: + + { + "KeyMetadata": { + "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "AWSAccountId": "111122223333", + "CreationDate": "2021-04-05T14:04:55-07:00", + "CustomerMasterKeySpec": "RSA_4096", + "Description": "", + "Enabled": true, + "EncryptionAlgorithms": [ + "RSAES_OAEP_SHA_1", + "RSAES_OAEP_SHA_256" + ], + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyManager": "CUSTOMER", + "KeySpec": "RSA_4096", + "KeyState": "Enabled", + "KeyUsage": "ENCRYPT_DECRYPT", + "MultiRegion": false, + "Origin": "AWS_KMS" + } + } + +For more information, see `Asymmetric keys in AWS KMS `__ in the *AWS Key Management Service Developer Guide*. + + +**Example 3: To create an asymmetric elliptic curve KMS key for signing and verification** + +To create an asymmetric KMS key that contains an asymmetric elliptic curve (ECC) key pair for signing and verification. The ``--key-usage`` parameter is required even though ``SIGN_VERIFY`` is the only valid value for ECC KMS keys. The key spec and key usage can't be changed after the key is created.:: + + aws kms create-key \ + --key-spec ECC_NIST_P521 \ + --key-usage SIGN_VERIFY + +Output:: + + { + "KeyMetadata": { + "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "AWSAccountId": "111122223333", + "CreationDate": "2019-12-02T07:48:55-07:00", + "CustomerMasterKeySpec": "ECC_NIST_P521", + "Description": "", + "Enabled": true, + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyManager": "CUSTOMER", + "KeySpec": "ECC_NIST_P521", + "KeyState": "Enabled", + "KeyUsage": "SIGN_VERIFY", + "MultiRegion": false, + "Origin": "AWS_KMS", + "SigningAlgorithms": [ + "ECDSA_SHA_512" + ] + } + } + + +For more information, see `Asymmetric keys in AWS KMS `__ in the *AWS Key Management Service Developer Guide*. + +**Example 4: To create an asymmetric ML-DSA KMS key for signing and verification** + +This example creates a module-lattice digital signature algorithm (ML-DSA) key for signing and verification. The key-usage parameter is required even though ``SIGN_VERIFY`` is the only valid value for ML-DSA keys. :: + + aws kms create-key \ + --key-spec ML_DSA_65 \ + --key-usage SIGN_VERIFY + +Output:: + + { + "KeyMetadata": { + "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "AWSAccountId": "111122223333", + "CreationDate": "2019-12-02T07:48:55-07:00", + "Description": "", + "Enabled": true, + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyManager": "CUSTOMER", + "KeySpec": "ML_DSA_65", + "KeyState": "Enabled", + "KeyUsage": "SIGN_VERIFY", + "MultiRegion": false, + "Origin": "AWS_KMS", + "SigningAlgorithms": [ + "ML_DSA_SHAKE_256" + ] + } + } + + +For more information, see `Asymmetric keys in AWS KMS `__ in the *AWS Key Management Service Developer Guide*. + + +**Example 5: To create an HMAC KMS key** + +The following ``create-key`` example creates a 384-bit HMAC KMS key. The ``GENERATE_VERIFY_MAC`` value for the ``--key-usage`` parameter is required even though it's the only valid value for HMAC KMS keys. :: + + aws kms create-key \ + --key-spec HMAC_384 \ + --key-usage GENERATE_VERIFY_MAC + +Output:: + + { + "KeyMetadata": { + "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "AWSAccountId": "111122223333", + "CreationDate": "2022-04-05T14:04:55-07:00", + "CustomerMasterKeySpec": "HMAC_384", + "Description": "", + "Enabled": true, + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyManager": "CUSTOMER", + "KeySpec": "HMAC_384", + "KeyState": "Enabled", + "KeyUsage": "GENERATE_VERIFY_MAC", + "MacAlgorithms": [ + "HMAC_SHA_384" + ], + "MultiRegion": false, + "Origin": "AWS_KMS" + } + } + +For more information, see `HMAC keys in AWS KMS `__ in the *AWS Key Management Service Developer Guide*. + + +**Example 6: To create a multi-Region primary KMS key** + +The following ``create-key`` example creates a multi-Region primary symmetric encryption key. Because the default values for all parameters create a symmetric encryption key, only the ``--multi-region`` parameter is required for this KMS key. In the AWS CLI, to indicate that a Boolean parameter is true, just specify the parameter name. :: + + aws kms create-key \ + --multi-region + +Output:: + + { + "KeyMetadata": { + "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef12345678990ab", + "AWSAccountId": "111122223333", + "CreationDate": "2021-09-02T016:15:21-09:00", + "CurrentKeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", + "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", + "Description": "", + "Enabled": true, + "EncryptionAlgorithms": [ + "SYMMETRIC_DEFAULT" + ], + "KeyId": "mrk-1234abcd12ab34cd56ef12345678990ab", + "KeyManager": "CUSTOMER", + "KeySpec": "SYMMETRIC_DEFAULT", + "KeyState": "Enabled", + "KeyUsage": "ENCRYPT_DECRYPT", + "MultiRegion": true, + "MultiRegionConfiguration": { + "MultiRegionKeyType": "PRIMARY", + "PrimaryKey": { + "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef12345678990ab", + "Region": "us-west-2" + }, + "ReplicaKeys": [] + }, + "Origin": "AWS_KMS" + } + } + +For more information, see `Asymmetric keys in AWS KMS `__ in the *AWS Key Management Service Developer Guide*. + + +**Example 7: To create a KMS key for imported key material** + +The following ``create-key`` example creates a creates a KMS key with no key material. When the operation is complete, you can import your own key material into the KMS key. To create this KMS key, set the ``--origin`` parameter to ``EXTERNAL``. :: + + aws kms create-key \ + --origin EXTERNAL + +Output:: + + { + "KeyMetadata": { + "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "AWSAccountId": "111122223333", + "CreationDate": "2019-12-02T07:48:55-07:00", + "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", + "Description": "", + "Enabled": false, + "EncryptionAlgorithms": [ + "SYMMETRIC_DEFAULT" + ], + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyManager": "CUSTOMER", + "KeySpec": "SYMMETRIC_DEFAULT", + "KeyState": "PendingImport", + "KeyUsage": "ENCRYPT_DECRYPT", + "MultiRegion": false, + "Origin": "EXTERNAL" + } + } + +For more information, see `Importing key material in AWS KMS keys `__ in the *AWS Key Management Service Developer Guide*. + + +**Example 6: To create a KMS key in an AWS CloudHSM key store** + +The following ``create-key`` example creates a creates a KMS key in the specified AWS CloudHSM key store. The operation creates the KMS key and its metadata in AWS KMS and creates the key material in the AWS CloudHSM cluster associated with the custom key store. The ``--custom-key-store-id`` and ``--origin`` parameters are required. :: + + aws kms create-key \ + --origin AWS_CLOUDHSM \ + --custom-key-store-id cks-1234567890abcdef0 + +Output:: + + { + "KeyMetadata": { + "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "AWSAccountId": "111122223333", + "CloudHsmClusterId": "cluster-1a23b4cdefg", + "CreationDate": "2019-12-02T07:48:55-07:00", + "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", + "CustomKeyStoreId": "cks-1234567890abcdef0", + "Description": "", + "Enabled": true, + "EncryptionAlgorithms": [ + "SYMMETRIC_DEFAULT" + ], + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyManager": "CUSTOMER", + "KeySpec": "SYMMETRIC_DEFAULT", + "KeyState": "Enabled", + "KeyUsage": "ENCRYPT_DECRYPT", + "MultiRegion": false, + "Origin": "AWS_CLOUDHSM" + } + } + + +For more information, see `AWS CloudHSM key stores `__ in the *AWS Key Management Service Developer Guide*. + + +**Example 8: To create a KMS key in an external key store** + +The following ``create-key`` example creates a creates a KMS key in the specified external key store. The ``--custom-key-store-id``, ``--origin``, and ``--xks-key-id`` parameters are required in this command. + +* The ``--xks-key-id`` parameter specifies the ID of an existing symmetric encryption key in your external key manager. This key serves as the external key material for the KMS key. + +* The value of the ``--origin`` parameter must be ``EXTERNAL_KEY_STORE``. + +* The ``custom-key-store-id`` parameter must identify an external key store that is connected to its external key store proxy. :: + + aws kms create-key \ + --origin EXTERNAL_KEY_STORE \ + --custom-key-store-id cks-9876543210fedcba9 \ + --xks-key-id bb8562717f809024 + +Output:: + + { + "KeyMetadata": { + "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "AWSAccountId": "111122223333", + "CreationDate": "2022-12-02T07:48:55-07:00", + "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", + "CustomKeyStoreId": "cks-9876543210fedcba9", + "Description": "", + "Enabled": true, + "EncryptionAlgorithms": [ + "SYMMETRIC_DEFAULT" + ], + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyManager": "CUSTOMER", + "KeySpec": "SYMMETRIC_DEFAULT", + "KeyState": "Enabled", + "KeyUsage": "ENCRYPT_DECRYPT", + "MultiRegion": false, + "Origin": "EXTERNAL_KEY_STORE", + "XksKeyConfiguration": { + "Id": "bb8562717f809024" + } + } + } + +For more information, see `External key stores `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/decrypt.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/decrypt.rst new file mode 100644 index 000000000..4ed141d7a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/decrypt.rst @@ -0,0 +1,76 @@ +**Example 1: To decrypt an encrypted message with a symmetric KMS key (Linux and macOS)** + +The following ``decrypt`` command example demonstrates the recommended way to decrypt data with the AWS CLI. This version shows how to decrypt data under a symmetric KMS key. + +* Provide the ciphertext in a file. + + In the value of the ``--ciphertext-blob`` parameter, use the ``fileb://`` prefix, which tells the CLI to read the data from a binary file. If the file is not in the current directory, type the full path to file. For more information about reading AWS CLI parameter values from a file, see `Loading AWS CLI parameters from a file ` in the *AWS Command Line Interface User Guide* and `Best Practices for Local File Parameters` in the *AWS Command Line Tool Blog*. + +* Specify the KMS key to decrypt the ciphertext. + + The ``--key-id`` parameter is not required when decrypting with a symmetric KMS key. AWS KMS can get the key ID of the KMS key that was used to encrypt the data from the metadata in the ciphertext. But it's always a best practice to specify the KMS key you are using. This practice ensures that you use the KMS key that you intend, and prevents you from inadvertently decrypting a ciphertext using a KMS key you do not trust. + +* Request the plaintext output as a text value. + + The ``--query`` parameter tells the CLI to get only the value of the ``Plaintext`` field from the output. The ``--output`` parameter returns the output as text. + +* Base64-decode the plaintext and save it in a file. + + The following example pipes (|) the value of the ``Plaintext`` parameter to the Base64 utility, which decodes it. Then, it redirects (>) the decoded output to the ``ExamplePlaintext`` file. + +Before running this command, replace the example key ID with a valid key ID from your AWS account. :: + + aws kms decrypt \ + --ciphertext-blob fileb://ExampleEncryptedFile \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --output text \ + --query Plaintext | base64 \ + --decode > ExamplePlaintextFile + +This command produces no output. The output from the ``decrypt`` command is base64-decoded and saved in a file. + +For more information, see `Decrypt `__ in the *AWS Key Management Service API Reference*. + +**Example 2: To decrypt an encrypted message with a symmetric KMS key (Windows command prompt)** + +The following example is the same as the previous one except that it uses the ``certutil`` utility to Base64-decode the plaintext data. This procedure requires two commands, as shown in the following examples. + +Before running this command, replace the example key ID with a valid key ID from your AWS account. :: + + aws kms decrypt ^ + --ciphertext-blob fileb://ExampleEncryptedFile ^ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab ^ + --output text ^ + --query Plaintext > ExamplePlaintextFile.base64 + +Run the ``certutil`` command. :: + + certutil -decode ExamplePlaintextFile.base64 ExamplePlaintextFile + +Output:: + + Input Length = 18 + Output Length = 12 + CertUtil: -decode command completed successfully. + +For more information, see `Decrypt `__ in the *AWS Key Management Service API Reference*. + +**Example 3: To decrypt an encrypted message with an asymmetric KMS key (Linux and macOS)** + +The following ``decrypt`` command example shows how to decrypt data encrypted under an RSA asymmetric KMS key. + +When using an asymmetric KMS key, the ``encryption-algorithm`` parameter, which specifies the algorithm used to encrypt the plaintext, is required. + +Before running this command, replace the example key ID with a valid key ID from your AWS account. :: + + aws kms decrypt \ + --ciphertext-blob fileb://ExampleEncryptedFile \ + --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \ + --encryption-algorithm RSAES_OAEP_SHA_256 \ + --output text \ + --query Plaintext | base64 \ + --decode > ExamplePlaintextFile + +This command produces no output. The output from the ``decrypt`` command is base64-decoded and saved in a file. + +For more information, see `Asymmetric keys in AWS KMS `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/delete-alias.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/delete-alias.rst new file mode 100644 index 000000000..22dc62925 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/delete-alias.rst @@ -0,0 +1,10 @@ +**To delete an AWS KMS alias** + +The following ``delete-alias`` example deletes the alias ``alias/example-alias``. The alias name must begin with `alias/`. :: + + aws kms delete-alias \ + --alias-name alias/example-alias + +This command produces no output. To find the alias, use the ``list-aliases`` command. + +For more information, see `Deleting an alias `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/delete-custom-key-store.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/delete-custom-key-store.rst new file mode 100755 index 000000000..69382f300 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/delete-custom-key-store.rst @@ -0,0 +1,17 @@ +**To delete a custom key store** + +The following ``delete-custom-key-store`` example deletes the specified custom key store. + +Deleting an AWS CloudHSM key store has no effect on the associated CloudHSM cluster. Deleting an external key store has no effect on the associated external key store proxy, external key manager, or external keys. + +**NOTE:** Before you can delete a custom key store, you must schedule the deletion of all KMS keys in the custom key store and then wait for those KMS keys to be deleted. Then, you must disconnect the custom key store. +For help finding the KMS keys in your custom key store, see `Delete an AWS CloudHSM key store (API) `__ in the *AWS Key Management Service Developer Guide*. :: + + delete-custom-key-store \ + --custom-key-store-id cks-1234567890abcdef0 + +This command does not return any output. To verify that the custom key store is deleted, use the ``describe-custom-key-stores`` command. + +For information about deleting an AWS CloudHSM key stores, see `Deleting an AWS CloudHSM key store `__ in the *AWS Key Management Service Developer Guide*. + +For information about deleting external key stores, see `Deleting an external key store `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/delete-imported-key-material.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/delete-imported-key-material.rst new file mode 100644 index 000000000..35902e6bb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/delete-imported-key-material.rst @@ -0,0 +1,16 @@ +**To delete imported key material from a KMS key** + +The following ``delete-imported-key-material`` example deletes key material that had been imported into a KMS key. :: + + aws kms delete-imported-key-material \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab + + +Output:: + + { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6" + } + +For more information, see `Deleting imported key material `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/derive-shared-secret.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/derive-shared-secret.rst new file mode 100644 index 000000000..80f9ccc66 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/derive-shared-secret.rst @@ -0,0 +1,21 @@ +**To derive a shared secret** + +The following ``derive-shared-secret`` example derives a shared secret using a key agreement algorithm. + +You must use an asymmetric NIST-recommended elliptic curve (ECC) or SM2 (China Regions only) KMS key pair with a ``KeyUsage`` value of ``KEY_AGREEMENT`` to call DeriveSharedSecret. :: + + aws kms derive-shared-secret \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --key-agreement-algorithm ECDH \ + --public-key "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvH3Yj0wbkLEpUl95Cv1cJVjsVNSjwGq3tCLnzXfhVwVvmzGN8pYj3U8nKwgouaHbBWNJYjP5VutbbkKS4Kv4GojwZBJyHN17kmxo8yTjRmjR15SKIQ8cqRA2uaERMLnpztIXdZp232PQPbWGxDyXYJ0aJ5EFSag" + +Output:: + + { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "SharedSecret": "MEYCIQCKZLWyTk5runarx6XiAkU9gv3lbwPO/pHa+DXFehzdDwIhANwpsIV2g/9SPWLLsF6p/hiSskuIXMTRwqrMdVKWTMHG", + "KeyAgreementAlgorithm": "ECDH", + "KeyOrigin": "AWS_KMS" + } + +For more information, see `DeriveSharedSecret `__ in the *AWS Key Management Service API Reference*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/describe-custom-key-stores.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/describe-custom-key-stores.rst new file mode 100755 index 000000000..c3ec1d99b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/describe-custom-key-stores.rst @@ -0,0 +1,94 @@ +**Example 1: To get details about an AWS CloudHSM key store** + +The following ``describe-custom-key-store`` example displays details about the specified AWS CloudHSM key store. The command is the same for all types of custom key stores, but the output differs with the key store type and, for an external key store, its connectivity option. + +By default, this command displays information about all custom key stores in the account and Region. To display information about a particular custom key store, use the ``custom-key-store-name`` or ``custom-key-store-id`` parameter. :: + + aws kms describe-custom-key-stores \ + --custom-key-store-name ExampleCloudHSMKeyStore + +The output of this command includes useful details about the AWS CloudHSM key store including its connection state (``ConnectionState``). If the connection state is ``FAILED``, the output includes a ``ConnectionErrorCode`` field that describes the problem. + +Output:: + + { + "CustomKeyStores": [ + { + "CloudHsmClusterId": "cluster-1a23b4cdefg", + "ConnectionState": "CONNECTED", + "CreationDate": "2022-04-05T14:04:55-07:00", + "CustomKeyStoreId": "cks-1234567890abcdef0", + "CustomKeyStoreName": "ExampleExternalKeyStore", + "TrustAnchorCertificate": "" + } + ] + } + +For more information, see `Viewing an AWS CloudHSM key store `__ in the *AWS Key Management Service Developer Guide*. + +**Example 2: To get details about an external key store with public endpoint connectivity** + +The following ``describe-custom-key-store`` example displays details about the specified external key store. The command is the same for all types of custom key stores, but the output differs with the key store type and, for an external key store, its connectivity option. + +By default, this command displays information about all custom key stores in the account and Region. To display information about a particular custom key store, use the ``custom-key-store-name`` or ``custom-key-store-id`` parameter. :: + + aws kms describe-custom-key-stores \ + --custom-key-store-id cks-9876543210fedcba9 + +The output of this command includes useful details about the external key store including its connection state (``ConnectionState``). If the connection state is ``FAILED``, the output includes a ``ConnectionErrorCode`` field that describes the problem. + +Output:: + + { + "CustomKeyStores": [ + { + "CustomKeyStoreId": "cks-9876543210fedcba9", + "CustomKeyStoreName": "ExampleXKS", + "ConnectionState": "CONNECTED", + "CreationDate": "2022-12-02T07:48:55-07:00", + "CustomKeyStoreType": "EXTERNAL_KEY_STORE", + "XksProxyConfiguration": { + "AccessKeyId": "ABCDE12345670EXAMPLE", + "Connectivity": "PUBLIC_ENDPOINT", + "UriEndpoint": "https://myproxy.xks.example.com", + "UriPath": "/example-prefix/kms/xks/v1" + } + } + ] + } + +For more information, see `Viewing an external key store `__ in the *AWS Key Management Service Developer Guide*. + +**Example 3: To get details about an external key store with VPC endpoint service connectivity** + +The following ``describe-custom-key-store`` example displays details about the specified external key store. The command is the same for all types of custom key stores, but the output differs with the key store type and, for an external key store, its connectivity option. + +By default, this command displays information about all custom key stores in the account and Region. To display information about a particular custom key store, use the ``custom-key-store-name`` or ``custom-key-store-id`` parameter. :: + + aws kms describe-custom-key-stores \ + --custom-key-store-id cks-2234567890abcdef0 + +The output of this command includes useful details about the external key store including its connection state (``ConnectionState``). If the connection state is ``FAILED``, the output includes a ``ConnectionErrorCode`` field that describes the problem. + +Output:: + + { + "CustomKeyStores": [ + { + "CustomKeyStoreId": "cks-3234567890abcdef0", + "CustomKeyStoreName": "ExampleVPCExternalKeyStore", + "ConnectionState": "CONNECTED", + "CreationDate": "2022-12-22T07:48:55-07:00", + "CustomKeyStoreType": "EXTERNAL_KEY_STORE", + "XksProxyConfiguration": { + "AccessKeyId": "ABCDE12345670EXAMPLE", + "Connectivity": "VPC_ENDPOINT_SERVICE", + "UriEndpoint": "https://myproxy-private.xks.example.com", + "UriPath": "/kms/xks/v1", + "VpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-example1" + } + } + ] + } + +For more information, see `Viewing an external key store `__ in the *AWS Key Management Service Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/describe-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/describe-key.rst new file mode 100644 index 000000000..29bf66aa1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/describe-key.rst @@ -0,0 +1,147 @@ +**Example 1: To find detailed information about a KMS key** + +The following ``describe-key`` example gets detailed information about the AWS managed key for Amazon S3 in the example account and Region. You can use this command to find details about AWS managed keys and customer managed keys. + +To specify the KMS key, use the ``key-id`` parameter. This example uses an alias name value, but you can use a key ID, key ARN, alias name, or alias ARN in this command. :: + + aws kms describe-key \ + --key-id alias/aws/s3 + +Output:: + + { + "KeyMetadata": { + "AWSAccountId": "846764612917", + "KeyId": "b8a9477d-836c-491f-857e-07937918959b", + "Arn": "arn:aws:kms:us-west-2:846764612917:key/b8a9477d-836c-491f-857e-07937918959b", + "CurrentKeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", + "CreationDate": 2017-06-30T21:44:32.140000+00:00, + "Enabled": true, + "Description": "Default KMS key that protects my S3 objects when no other key is defined", + "KeyUsage": "ENCRYPT_DECRYPT", + "KeyState": "Enabled", + "Origin": "AWS_KMS", + "KeyManager": "AWS", + "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", + "EncryptionAlgorithms": [ + "SYMMETRIC_DEFAULT" + ] + } + } + +For more information, see `Viewing keys `__ in the *AWS Key Management Service Developer Guide*. + +**Example 2: To get details about an RSA asymmetric KMS key** + +The following ``describe-key`` example gets detailed information about an asymmetric RSA KMS key used for signing and verification. :: + + aws kms describe-key \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab + +Output:: + + { + "KeyMetadata": { + "AWSAccountId": "111122223333", + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "CreationDate": "2019-12-02T19:47:14.861000+00:00", + "CustomerMasterKeySpec": "RSA_2048", + "Enabled": false, + "Description": "", + "KeyState": "Disabled", + "Origin": "AWS_KMS", + "MultiRegion": false, + "KeyManager": "CUSTOMER", + "KeySpec": "RSA_2048", + "KeyUsage": "SIGN_VERIFY", + "SigningAlgorithms": [ + "RSASSA_PKCS1_V1_5_SHA_256", + "RSASSA_PKCS1_V1_5_SHA_384", + "RSASSA_PKCS1_V1_5_SHA_512", + "RSASSA_PSS_SHA_256", + "RSASSA_PSS_SHA_384", + "RSASSA_PSS_SHA_512" + ] + } + } + +**Example 3: To get details about a multi-Region replica key** + +The following ``describe-key`` example gets metadata for a multi-Region replica key. This multi-Region key is a symmetric encryption key. The output of a ``describe-key`` command for any multi-Region key returns information about the primary key and all of its replicas. :: + + aws kms describe-key \ + --key-id arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab + +Output:: + + { + "KeyMetadata": { + "MultiRegion": true, + "AWSAccountId": "111122223333", + "Arn": "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", + "CreationDate": "2021-06-28T21:09:16.114000+00:00", + "CurrentKeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", + "Description": "", + "Enabled": true, + "KeyId": "mrk-1234abcd12ab34cd56ef1234567890ab", + "KeyManager": "CUSTOMER", + "KeyState": "Enabled", + "KeyUsage": "ENCRYPT_DECRYPT", + "Origin": "AWS_KMS", + "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", + "EncryptionAlgorithms": [ + "SYMMETRIC_DEFAULT" + ], + "MultiRegionConfiguration": { + "MultiRegionKeyType": "PRIMARY", + "PrimaryKey": { + "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", + "Region": "us-west-2" + }, + "ReplicaKeys": [ + { + "Arn": "arn:aws:kms:eu-west-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", + "Region": "eu-west-1" + }, + { + "Arn": "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", + "Region": "ap-northeast-1" + }, + { + "Arn": "arn:aws:kms:sa-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", + "Region": "sa-east-1" + } + ] + } + } + } + +**Example 4: To get details about an HMAC KMS key** + +The following ``describe-key`` example gets detailed information about an HMAC KMS key. :: + + aws kms describe-key \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab + +Output:: + + { + "KeyMetadata": { + "AWSAccountId": "123456789012", + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "Arn": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "CreationDate": "2022-04-03T22:23:10.194000+00:00", + "Enabled": true, + "Description": "Test key", + "KeyUsage": "GENERATE_VERIFY_MAC", + "KeyState": "Enabled", + "Origin": "AWS_KMS", + "KeyManager": "CUSTOMER", + "CustomerMasterKeySpec": "HMAC_256", + "MacAlgorithms": [ + "HMAC_SHA_256" + ], + "MultiRegion": false + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/disable-key-rotation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/disable-key-rotation.rst new file mode 100644 index 000000000..bec2912c7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/disable-key-rotation.rst @@ -0,0 +1,10 @@ +**To disable automatic rotation of a KMS key** + +The following ``disable-key-rotation`` example disables automatic rotation of a customer managed KMS key. To reenable automatic rotation, use the ``enable-key-rotation`` command. :: + + aws kms disable-key-rotation \ + --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + +This command produces no output. To verify that automatic rotation is disable for the KMS key, use the ``get-key-rotation-status`` command. + +For more information, see `Rotating keys `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/disable-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/disable-key.rst new file mode 100644 index 000000000..de5ef1d9b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/disable-key.rst @@ -0,0 +1,10 @@ +**To temporarily disable a KMS key** + +The following ``disable-key`` command disables a customer managed KMS key. To re-enable the KMS key, use the ``enable-key`` command. :: + + aws kms disable-key \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab + +This command produces no output. + +For more information, see `Enabling and Disabling Keys `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/disconnect-custom-key-store.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/disconnect-custom-key-store.rst new file mode 100644 index 000000000..fd3decbfa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/disconnect-custom-key-store.rst @@ -0,0 +1,16 @@ +**To disconnect a custom key store** + +The following ``disconnect-custom-key-store`` example disconnects a custom key store from its AWS CloudHSM cluster. You might disconnect a key store to troubleshoot a problem, to update its settings, or to prevent KMS keys in the keystore from being used in cryptographic operations. + +This command is the same for all custom key stores, including AWS CloudHSM key stores and external key stores. + +Before running this command, replace the example custom key store ID with a valid one. :: + + $ aws kms disconnect-custom-key-store \ + --custom-key-store-id cks-1234567890abcdef0 + +This command produces no output. verify that the command was effective, use the ``describe-custom-key-stores`` command. + +For more information about disconnecting an AWS CloudHSM key store, see `Connecting and disconnecting an AWS CloudHSM key store `__ in the *AWS Key Management Service Developer Guide*. + +For more information about disconnecting an external key store, see `Connecting and disconnecting an external key store `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/enable-key-rotation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/enable-key-rotation.rst new file mode 100644 index 000000000..2d391bfb8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/enable-key-rotation.rst @@ -0,0 +1,16 @@ +**To enable automatic rotation of a KMS key** + +The following ``enable-key-rotation`` example enables automatic rotation of a customer managed KMS key with a rotation period of 180 days. The KMS key will be rotated one year (approximate 365 days) from the date that this command completes and every year thereafter. + +* The ``--key-id`` parameter identifies the KMS key. This example uses a key ARN value, but you can use either the key ID or the ARN of the KMS key. +* The ``--rotation-period-in-days`` parameter specifies the number of days between each rotation date. Specify a value between 90 and 2560 days. If no value is specified, the default value is 365 days. + +:: + + aws kms enable-key-rotation \ + --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab \ + --rotation-period-in-days 180 + +This command produces no output. To verify that the KMS key is enabled, use the ``get-key-rotation-status`` command. + +For more information, see `Rotating keys `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/enable-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/enable-key.rst new file mode 100644 index 000000000..45673cc61 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/enable-key.rst @@ -0,0 +1,14 @@ +**To enable a KMS key** + +The following ``enable-key`` example enables a customer managed key. You can use a command like this one to enable a KMS key that you temporarily disabled by using the ``disable-key`` command. You can also use it to enable a KMS key that is disabled because it was scheduled for deletion and the deletion was canceled. + +To specify the KMS key, use the ``key-id`` parameter. This example uses an key ID value, but you can use a key ID or key ARN value in this command. + +Before running this command, replace the example key ID with a valid one. :: + + aws kms enable-key \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab + +This command produces no output. To verify that the KMS key is enabled, use the ``describe-key`` command. See the values of the ``KeyState`` and ``Enabled`` fields in the ``describe-key`` output. + +For more information, see `Enabling and Disabling Keys `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/encrypt.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/encrypt.rst new file mode 100644 index 000000000..365e4524c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/encrypt.rst @@ -0,0 +1,58 @@ +**Example 1: To encrypt the contents of a file on Linux or MacOS** + +The following ``encrypt`` command demonstrates the recommended way to encrypt data with the AWS CLI. :: + + aws kms encrypt \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --plaintext fileb://ExamplePlaintextFile \ + --output text \ + --query CiphertextBlob | base64 \ + --decode > ExampleEncryptedFile + +The command does several things: + +#. Uses the ``--plaintext`` parameter to indicate the data to encrypt. This parameter value must be base64-encoded. + + The value of the ``plaintext`` parameter must be base64-encoded, or you must use the ``fileb://`` prefix, which tells the AWS CLI to read binary data from the file. + + If the file is not in the current directory, type the full path to file. For example: ``fileb:///var/tmp/ExamplePlaintextFile`` or ``fileb://C:\Temp\ExamplePlaintextFile``. For more information about reading AWS CLI parameter values from a file, see `Loading Parameters from a File `__ in the *AWS Command Line Interface User Guide* and `Best Practices for Local File Parameters `__ on the AWS Command Line Tool Blog. + +#. Uses the ``--output`` and ``--query`` parameters to control the command's output. + + These parameters extract the encrypted data, called the *ciphertext*, from the command's output. + + For more information about controlling output, see `Controlling Command Output `__ in the *AWS Command Line Interface User Guide*. + +#. Uses the ``base64`` utility to decode the extracted output into binary data. + + The ciphertext that is returned by a successful ``encrypt`` command is base64-encoded text. You must decode this text before you can use the AWS CLI to decrypt it. + +#. Saves the binary ciphertext to a file. + + The final part of the command (``> ExampleEncryptedFile``) saves the binary ciphertext to a file to make decryption easier. For an example command that uses the AWS CLI to decrypt data, see the `decrypt examples `_. + +**Example 2: Using the AWS CLI to encrypt data on Windows** + +This example is the same as the previous one, except that it uses the ``certutil`` tool instead of ``base64``. This procedure requires two commands, as shown in the following example. :: + + aws kms encrypt \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --plaintext fileb://ExamplePlaintextFile \ + --output text \ + --query CiphertextBlob > C:\Temp\ExampleEncryptedFile.base64 + + certutil -decode C:\Temp\ExampleEncryptedFile.base64 C:\Temp\ExampleEncryptedFile + +**Example 3: Encrypting with an asymmetric KMS key** + +The following ``encrypt`` command shows how to encrypt plaintext with an asymmetric KMS key. The ``--encryption-algorithm`` parameter is required. As in all ``encrypt`` CLI commands, the ``plaintext`` parameter must be base64-encoded, or you must use the ``fileb://`` prefix, which tells the AWS CLI to read binary data from the file. :: + + aws kms encrypt \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --encryption-algorithm RSAES_OAEP_SHA_256 \ + --plaintext fileb://ExamplePlaintextFile \ + --output text \ + --query CiphertextBlob | base64 \ + --decode > ExampleEncryptedFile + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/generate-data-key-pair-without-plaintext.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/generate-data-key-pair-without-plaintext.rst new file mode 100644 index 000000000..ca0aee78b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/generate-data-key-pair-without-plaintext.rst @@ -0,0 +1,29 @@ +**To generate an ECC NIST P384 asymmetric data key pair** + +The following ``generate-data-key-pair-without-plaintext`` example requests an ECC NIST P384 key pair for use outside of AWS. + +The command returns a plaintext public key and a copy of the private key encrypted under the specified KMS key. It does not return a plaintext private key. You can safely store the encrypted private key with the encrypted data, and call AWS KMS to decrypt the private key when you need to use it. + +To request an ECC NIST P384 asymmetric data key pair, use the ``key-pair-spec`` parameter with a value of ``ECC_NIST_P384``. + +The KMS key you specify must be a symmetric encryption KMS key, that is, a KMS key with a ``KeySpec`` value of ``SYMMETRIC_DEFAULT``. + +NOTE: The values in the output of this example are truncated for display. :: + + aws kms generate-data-key-pair-without-plaintext \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --key-pair-spec ECC_NIST_P384 + +Output:: + + { + "PrivateKeyCiphertextBlob": "AQIDAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAFFxmiD134doUDzMGmfCEtcAAAHaTCCB2UGCSqGSIb3DQEHBqCCB1...", + "PublicKey": "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA3A3eGMyPrvSn7+LdlJE1oUoQV5HpEuHAVbdOyND+NmYDH/mL1OSIEuLrcdZ5hrMH4pk83r40l...", + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", + "KeyPairSpec": "ECC_NIST_P384" + } + +The ``PublicKey`` and ``PrivateKeyCiphertextBlob`` are returned in base64-encoded format. + +For more information, see `Data key pairs `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/generate-data-key-pair.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/generate-data-key-pair.rst new file mode 100644 index 000000000..55d350583 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/generate-data-key-pair.rst @@ -0,0 +1,28 @@ +**To generate an 2048-bit RSA asymmetric data key pair** + +The following ``generate-data-key-pair`` example requests a 2048-bit RSA asymmetric data key pair for use outside of AWS. The command returns a plaintext public key and a plaintext private key for immediate use and deletion, and a copy of the private key encrypted under the specified KMS key. You can safely store the encrypted private key with the encrypted data. + +To request a 2048-bit RSA asymmetric data key pair, use the ``key-pair-spec`` parameter with a value of ``RSA_2048``. + +The KMS key you specify must be a symmetric encryption KMS key, that is, a KMS key with a ``KeySpec`` value of ``SYMMETRIC_DEFAULT``. + +NOTE: The values in the output of this example are truncated for display. :: + + aws kms generate-data-key-pair \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --key-pair-spec RSA_2048 + +Output:: + + { + "PrivateKeyCiphertextBlob": "AQIDAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAFFxmiD134doUDzMGmfCEtcAAAHaTCCB2UGCSqGSIb3DQEHBqCCB1...", + "PrivateKeyPlaintext": "MIIG/QIBADANBgkqhkiG9w0BAQEFAASCBucwggbjAgEAAoIBgQDcDd4YzI+u9Kfv4t2UkTWhShBXkekS4cBVt07I0P42ZgMf+YvU5IgS4ut...", + "PublicKey": "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA3A3eGMyPrvSn7+LdlJE1oUoQV5HpEuHAVbdOyND+NmYDH/mL1OSIEuLrcdZ5hrMH4pk83r40l...", + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6" + "KeyPairSpec": "RSA_2048" + } + +The ``PublicKey``, ``PrivateKeyPlaintext``, and ``PrivateKeyCiphertextBlob`` are returned in base64-encoded format. + +For more information, see `Data key pairs `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/generate-data-key-without-plaintext.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/generate-data-key-without-plaintext.rst new file mode 100644 index 000000000..f41d4584f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/generate-data-key-without-plaintext.rst @@ -0,0 +1,23 @@ +**To generate a 256-bit symmetric data key without a plaintext key** + +The following ``generate-data-key-without-plaintext`` example requests an encrypted copy of a 256-bit symmetric data key for use outside of AWS. You can call AWS KMS to decrypt the data key when you are ready to use it. + +To request a 256-bit data key, use the ``key-spec`` parameter with a value of ``AES_256``. To request a 128-bit data key, use the ``key-spec`` parameter with a value of ``AES_128``. For all other data key lengths, use the ``number-of-bytes`` parameter. + +The KMS key you specify must be a symmetric encryption KMS key, that is, a KMS key with a key spec value of SYMMETRIC_DEFAULT. :: + + aws kms generate-data-key-without-plaintext \ + --key-id "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" \ + --key-spec AES_256 + +Output:: + + { + "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogL", + "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6" + } + +The ``CiphertextBlob`` (encrypted data key) is returned in base64-encoded format. + +For more information, see `Data keys `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/generate-data-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/generate-data-key.rst new file mode 100644 index 000000000..632a829ab --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/generate-data-key.rst @@ -0,0 +1,50 @@ +**Example 1: To generate a 256-bit symmetric data key** + +The following ``generate-data-key`` example requests a 256-bit symmetric data key for use outside of AWS. The command returns a plaintext data key for immediate use and deletion, and a copy of that data key encrypted under the specified KMS key. You can safely store the encrypted data key with the encrypted data. + +To request a 256-bit data key, use the ``key-spec`` parameter with a value of ``AES_256``. To request a 128-bit data key, use the ``key-spec`` parameter with a value of ``AES_128``. For all other data key lengths, use the ``number-of-bytes`` parameter. + +The KMS key you specify must be a symmetric encryption KMS key, that is, a KMS key with a key spec value of SYMMETRIC_DEFAULT. :: + + aws kms generate-data-key \ + --key-id alias/ExampleAlias \ + --key-spec AES_256 + +Output:: + + { + "Plaintext": "VdzKNHGzUAzJeRBVY+uUmofUGGiDzyB3+i9fVkh3piw=", + "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", + "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogLqPWZconQhwHAIBEIA7d9AC7GeJJM34njQvg4Wf1d5sw0NIo1MrBqZa+YdhV8MrkBQPeac0ReRVNDt9qleAt+SHgIRF8P0H+7U=" + } + +The ``Plaintext`` (plaintext data key) and the ``CiphertextBlob`` (encrypted data key) are returned in base64-encoded format. + +For more information, see `Data keys `__ in the *AWS Key Management Service Developer Guide*. +**Example 2: To generate a 512-bit symmetric data key** + +The following ``generate-data-key`` example requests a 512-bit symmetric data key for encryption and decryption. The command returns a plaintext data key for immediate use and deletion, and a copy of that data key encrypted under the specified KMS key. You can safely store the encrypted data key with the encrypted data. + +To request a key length other than 128 or 256 bits, use the ``number-of-bytes`` parameter. To request a 512-bit data key, the following example uses the ``number-of-bytes`` parameter with a value of 64 (bytes). + +The KMS key you specify must be a symmetric encryption KMS key, that is, a KMS key with a key spec value of SYMMETRIC_DEFAULT. + +NOTE: The values in the output of this example are truncated for display. :: + + aws kms generate-data-key \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --number-of-bytes 64 + +Output:: + + { + "CiphertextBlob": "AQIBAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAEnX/QQNmMwDfg2korNMEc8AAACaDCCAmQGCSqGSIb3DQEHBqCCAlUwggJRAgEAMIICSgYJKoZ...", + "Plaintext": "ty8Lr0Bk6OF07M2BWt6qbFdNB+G00ZLtf5MSEb4al3R2UKWGOp06njAwy2n72VRm2m7z/Pm9Wpbvttz6a4lSo9hgPvKhZ5y6RTm4OovEXiVfBveyX3DQxDzRSwbKDPk/...", + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6" + } + +The ``Plaintext`` (plaintext data key) and ``CiphertextBlob`` (encrypted data key) are returned in base64-encoded format. + +For more information, see `Data keys `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/generate-mac.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/generate-mac.rst new file mode 100644 index 000000000..b18bfe17e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/generate-mac.rst @@ -0,0 +1,45 @@ +**Example 1: To generate an HMAC for a message** + +The following ``generate-mac`` command generates an HMAC for a message, an HMAC KMS key, and a MAC algorithm. The algorithm must be supported by the specified HMAC KMS key. + +In AWS CLI v2, the value of the ``message`` parameter must be Base64-encoded. Or, you can save the message in a file and use the ``fileb://`` prefix, which tells the AWS CLI to read binary data from the file. + +Before running this command, replace the example key ID with a valid key ID from your AWS account. The key ID must represent a HMAC KMS key with a key usage of ``GENERATE_VERIFY_MAC``. :: + + msg=(echo 'Hello World' | base64) + + aws kms generate-mac \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --message fileb://Message \ + --mac-algorithm HMAC_SHA_384 + +Output:: + + { + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "Mac": "", + "MacAlgorithm": "HMAC_SHA_384" + } + +For more information about using HMAC KMS keys in AWS KMS, see `HMAC keys in AWS KMS `__ in the *AWS Key Management Service Developer Guide*. + +**Example 2: To save an HMAC in a file (Linux and macOs)** + +The following ``generate-mac`` example generates an HMAC for a short message stored in a local file. The command also gets the ``Mac`` property from the response, Base64-decodes it and saves it in the ExampleMac file. You can use the MAC file in a ``verify-mac`` command that verifies the MAC. + +The ``generate-mac`` command requires a Base64-encoded message and a MAC algorithm that your HMAC KMS key supports. To get the MAC algorithms that your KMS key supports, use the ``describe-key`` command. + +Before running this command, replace the example key ID with a valid key ID from your AWS account. The key ID must represent an asymmetric KMS key with a key usage of GENERATE_VERIFY_MAC. :: + + echo 'hello world' | base64 > EncodedMessage + + aws kms generate-mac \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --message fileb://EncodedMessage \ + --mac-algorithm HMAC_SHA_384 \ + --output text \ + --query Mac | base64 --decode > ExampleMac + +This command produces no output. This example extracts the ``Mac`` property of the output and saves it in a file. + +For more information about using HMAC KMS keys in AWS KMS, see `HMAC keys in AWS KMS `__ in the *AWS Key Management Service Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/generate-random.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/generate-random.rst new file mode 100644 index 000000000..00df06da9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/generate-random.rst @@ -0,0 +1,52 @@ +**Example 1: To generate a 256-bit random byte string (Linux or macOs)** + +The following ``generate-random`` example generates a 256-bit (32-byte), base64-encoded random byte string. The example decodes the byte string and saves it in the `random` file. + +When you run this command, you must use the ``number-of-bytes`` parameter to specify the length of the random value in bytes. + +You don't specify a KMS key when you run this command. The random byte string is unrelated to any KMS key. + +By default, AWS KMS generates the random number. However, if you specify a `custom key store `__, the random byte string is generated in the AWS CloudHSM cluster associated with the custom key store. + +This example uses the following parameters and values: + +* It uses the required ``--number-of-bytes`` parameter with a value of ``32`` to request a 32-byte (256-bit) string. +* It uses the ``--output`` parameter with a value of ``text`` to direct the AWS CLI to return the output as text, instead of JSON. +* It uses the ``--query parameter`` to extract the value of the ``Plaintext`` property from the response. +* It pipes ( | ) the output of the command to the ``base64`` utility, which decodes the extracted output. +* It uses the redirection operator ( > ) to save decoded byte string to the ``ExampleRandom`` file. +* It uses the redirection operator ( > ) to save the binary ciphertext to a file. :: + + aws kms generate-random \ + --number-of-bytes 32 \ + --output text \ + --query Plaintext | base64 --decode > ExampleRandom + +This command produces no output. + +For more information, see `GenerateRandom `__ in the *AWS Key Management Service API Reference*. + +**Example 2: To generate a 256-bit random number (Windows Command Prompt)** + +The following example uses the ``generate-random`` command to generate a 256-bit (32-byte), base64-encoded random byte string. The example decodes the byte string and saves it in the `random` file. This example is the same as the previous example, except that it uses the ``certutil`` utility in Windows to base64-decode the random byte string before saving it in a file. + +First, generate a base64-encoded random byte string and saves it in a temporary file, ``ExampleRandom.base64``. :: + + aws kms generate-random \ + --number-of-bytes 32 \ + --output text \ + --query Plaintext > ExampleRandom.base64 + +Because the output of the ``generate-random`` command is saved in a file, this example produces no output. + +Now use the ``certutil -decode`` command to decode the base64-encoded byte string in the ``ExampleRandom.base64`` file. Then, it saves the decoded byte string in the ``ExampleRandom`` file. :: + + certutil -decode ExampleRandom.base64 ExampleRandom + +Output:: + + Input Length = 18 + Output Length = 12 + CertUtil: -decode command completed successfully. + +For more information, see `GenerateRandom `__ in the *AWS Key Management Service API Reference*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/get-key-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/get-key-policy.rst new file mode 100644 index 000000000..6b56eb793 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/get-key-policy.rst @@ -0,0 +1,20 @@ +**To copy a key policy from one KMS key to another KMS key** + +The following ``get-key-policy`` example gets the key policy from one KMS key and saves it in a text file. Then, it replaces the policy of a different KMS key using the text file as the policy input. + +Because the ``--policy`` parameter of ``put-key-policy`` requires a string, you must use the ``--output text`` option to return the output as a text string instead of JSON. :: + + aws kms get-key-policy \ + --policy-name default \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --query Policy \ + --output text > policy.txt + + aws kms put-key-policy \ + --policy-name default \ + --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \ + --policy file://policy.txt + +This command produces no output. + +For more information, see `PutKeyPolicy `__ in the *AWS KMS API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/get-key-rotation-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/get-key-rotation-status.rst new file mode 100644 index 000000000..c9e0cf654 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/get-key-rotation-status.rst @@ -0,0 +1,17 @@ +**To retrieve the rotation status for a KMS key.** + +The following ``get-key-rotation-status`` example returns information about the rotation status of the specified KMS key, including whether automatic rotation is enabled, the rotation period, and the next scheduled rotation date. You can use this command on customer managed KMS keys and AWS managed KMS keys. However, all AWS managed KMS keys are automatically rotated every year. :: + + aws kms get-key-rotation-status \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab + +Output:: + + { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyRotationEnabled": true, + "NextRotationDate": "2024-02-14T18:14:33.587000+00:00", + "RotationPeriodInDays": 365 + } + +For more information, see `Rotating keys `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/get-parameters-for-import.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/get-parameters-for-import.rst new file mode 100644 index 000000000..076f7452d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/get-parameters-for-import.rst @@ -0,0 +1,21 @@ +**To get the items required to import key material into a KMS key** + +The following ``get-parameters-for-import`` example gets the public key and import token that you need to import key material into a KMS key. When you use the ``import-key-material`` command, be sure to use the import token and key material encrypted by the public key that were returned in the same ``get-parameters-for-import`` command. Also, the wrapping algorithm that you specify in this command must be one that you use to encrypt the key material with the public key. + +To specify the KMS key, use the ``key-id`` parameter. This example uses an key ID, but you can use a key ID or key ARN in this command. :: + + aws kms get-parameters-for-import \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --wrapping-algorithm RSAES_OAEP_SHA_256 \ + --wrapping-key-spec RSA_2048 + +Output:: + + { + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "PublicKey": "", + "ImportToken": "", + "ParametersValidTo": 1593893322.32 + } + +For more information, see `Download the public key and import token `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/get-public-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/get-public-key.rst new file mode 100644 index 000000000..a97799d6f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/get-public-key.rst @@ -0,0 +1,39 @@ +**Example 1: To download the public key of an asymmetric KMS key** + +The following ``get-public-key`` example downloads the public key of an asymmetric KMS key. + +In addition to returning the public key, the output includes information that you need to use the public key safely outside of AWS KMS, including the key usage and supported encryption algorithms. :: + + aws kms get-public-key \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab + +Output:: + + { + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "PublicKey": "jANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAl5epvg1/QtJhxSi2g9SDEVg8QV/...", + "CustomerMasterKeySpec": "RSA_4096", + "KeyUsage": "ENCRYPT_DECRYPT", + "EncryptionAlgorithms": [ + "RSAES_OAEP_SHA_1", + "RSAES_OAEP_SHA_256" + ] + } + +For more information about using asymmetric KMS keys in AWS KMS, see `Asymmetric keys in AWS KMS `__ in the *AWS Key Management Service Developer Guide*. +**Example 2: To convert a public key to DER format (Linux and macOS)** + +The following ``get-public-key`` example downloads the public key of an asymmetric KMS key and saves it in a DER file. + +When you use the ``get-public-key`` command in the AWS CLI, it returns a DER-encoded X.509 public key that is Base64-encoded. This example gets the value of the ``PublicKey`` property as text. It Base64-decodes the ``PublicKey`` and saves it in the ``public_key.der`` file. The ``output`` parameter returns the output as text, instead of JSON. The ``--query`` parameter gets only the ``PublicKey`` property, not the properties that you need to use the public key safely outside of AWS KMS. + +Before running this command, replace the example key ID with a valid key ID from your AWS account. :: + + aws kms get-public-key \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --output text \ + --query PublicKey | base64 --decode > public_key.der + +This command produces no output. + +For more information about using asymmetric KMS keys in AWS KMS, see `Asymmetric keys in AWS KMS `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/import-key-material.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/import-key-material.rst new file mode 100644 index 000000000..e52716a7c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/import-key-material.rst @@ -0,0 +1,25 @@ +**To import key material into a KMS key** + +The following ``import-key-material`` example uploads key material into a KMS key that was created with no key material. The key state of the KMS key must be ``PendingImport``. + +This command uses key material that you encrypted with the public key that the ``get-parameters-for-import`` command returned. It also uses the import token from the same ``get-parameters-for-import`` command. + +The ``expiration-model`` parameter indicates that the key material automatically expires on the date and time specified by the ``valid-to`` parameter. When the key material expires, AWS KMS deletes the key material, the key state of the KMS key changes to ``Pending import`` and the KMS key becomes unusable. To restore the KMS key, you must reimport the same key material. To use different key material, you must create a new KMS key. + +Before running this command, replace the example key ID with a valid key ID or key ARN from your AWS account. :: + + aws kms import-key-material \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --encrypted-key-material fileb://EncryptedKeyMaterial.bin \ + --import-token fileb://ImportToken.bin \ + --expiration-model KEY_MATERIAL_EXPIRES \ + --valid-to 2021-09-21T19:00:00Z + +Output:: + + { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6" + } + +For more information about importing key material, see `Importing Key Material `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/list-aliases.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/list-aliases.rst new file mode 100755 index 000000000..caec19995 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/list-aliases.rst @@ -0,0 +1,62 @@ +**Example 1: To list all aliases in an AWS account and Region** + +The following example uses the ``list-aliases`` command to list all aliases in the default Region of the AWS account. The output includes aliases associated with AWS managed KMS keys and customer managed KMS keys. :: + + aws kms list-aliases + +Output:: + + { + "Aliases": [ + { + "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/testKey", + "AliasName": "alias/testKey", + "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" + }, + { + "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/FinanceDept", + "AliasName": "alias/FinanceDept", + "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321" + }, + { + "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/dynamodb", + "AliasName": "alias/aws/dynamodb", + "TargetKeyId": "1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d" + }, + { + "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/ebs", + "AliasName": "alias/aws/ebs", + "TargetKeyId": "0987ab65-43cd-21ef-09ab-87654321cdef" + }, + ... + ] + } + +**Example 2: To list all aliases for a particular KMS key** + +The following example uses the ``list-aliases`` command and its ``key-id`` parameter to list all aliases that are associated with a particular KMS key. + +Each alias is associated with only one KMS key, but a KMS key can have multiple aliases. This command is very useful because the AWS KMS console lists only one alias for each KMS key. To find all aliases for a KMS key, you must use the ``list-aliases`` command. + +This example uses the key ID of the KMS key for the ``--key-id`` parameter, but you can use a key ID, key ARN, alias name, or alias ARN in this command. :: + + aws kms list-aliases --key-id 1234abcd-12ab-34cd-56ef-1234567890ab + +Output:: + + { + "Aliases": [ + { + "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/oregon-test-key", + "AliasName": "alias/oregon-test-key" + }, + { + "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/project121-test", + "AliasName": "alias/project121-test" + } + ] + } + +For more information, see `Working with Aliases `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/list-grants.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/list-grants.rst new file mode 100755 index 000000000..1bcc25fee --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/list-grants.rst @@ -0,0 +1,41 @@ +**To view the grants on an AWS KMS key** + +The following ``list-grants`` example displays all of the grants on the specified AWS managed KMS key for Amazon DynamoDB in your account. This grant allows DynamoDB to use the KMS key on your behalf to encrypt a DynamoDB table before writing it to disk. You can use a command like this one to view the grants on the AWS managed KMS keys and customer managed KMS keys in the AWS account and Region. + +This command uses the ``key-id`` parameter with a key ID to identify the KMS key. You can use a key ID or key ARN to identify the KMS key. To get the key ID or key ARN of an AWS managed KMS key, use the ``list-keys`` or ``list-aliases`` command. :: + + aws kms list-grants \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab + +The output shows that the grant gives Amazon DynamoDB permission to use the KMS key for cryptographic operations, and gives it permission to view details about the KMS key (``DescribeKey``) and to retire grants (``RetireGrant``). The ``EncryptionContextSubset`` constraint limits these permission to requests that include the specified encryption context pairs. As a result, the permissions in the grant are effective only on specified account and DynamoDB table. :: + + { + "Grants": [ + { + "Constraints": { + "EncryptionContextSubset": { + "aws:dynamodb:subscriberId": "123456789012", + "aws:dynamodb:tableName": "Services" + } + }, + "IssuingAccount": "arn:aws:iam::123456789012:root", + "Name": "8276b9a6-6cf0-46f1-b2f0-7993a7f8c89a", + "Operations": [ + "Decrypt", + "Encrypt", + "GenerateDataKey", + "ReEncryptFrom", + "ReEncryptTo", + "RetireGrant", + "DescribeKey" + ], + "GrantId": "1667b97d27cf748cf05b487217dd4179526c949d14fb3903858e25193253fe59", + "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "RetiringPrincipal": "dynamodb.us-west-2.amazonaws.com", + "GranteePrincipal": "dynamodb.us-west-2.amazonaws.com", + "CreationDate": "2021-05-13T18:32:45.144000+00:00" + } + ] + } + +For more information, see `Grants in AWS KMS `__ in the *AWS Key Management Service Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/list-key-policies.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/list-key-policies.rst new file mode 100644 index 000000000..613e38b4d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/list-key-policies.rst @@ -0,0 +1,20 @@ +**To get the names of key policies for a KMS key** + +The following ``list-key-policies`` example gets the names of the key policies for a customer managed key in the example account and Region. You can use this command to find the names of key policies for AWS managed keys and customer managed keys. + +Because the only valid key policy name is ``default``, this command is not useful. + +To specify the KMS key, use the ``key-id`` parameter. This example uses a key ID value, but you can use a key ID or key ARN in this command. :: + + aws kms list-key-policies \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab + +Output:: + + { + "PolicyNames": [ + "default" + ] + } + +For more information about AWS KMS key policies, see `Using Key Policies in AWS KMS `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/list-key-rotations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/list-key-rotations.rst new file mode 100644 index 000000000..403e2d218 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/list-key-rotations.rst @@ -0,0 +1,26 @@ +**To retrieve information about all completed key material rotations** + +The following ``list-key-rotations`` example lists information about all completed key material rotations for the specified KMS key. :: + + aws kms list-key-rotations \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab + +Output:: + + { + "Rotations": [ + { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "RotationDate": "2024-03-02T10:11:36.564000+00:00", + "RotationType": "AUTOMATIC" + }, + { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "RotationDate": "2024-04-05T15:14:47.757000+00:00", + "RotationType": "ON_DEMAND" + } + ], + "Truncated": false + } + +For more information, see `Rotating keys `__ in the *AWS Key Management Service Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/list-keys.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/list-keys.rst new file mode 100644 index 000000000..b9aa70e30 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/list-keys.rst @@ -0,0 +1,26 @@ +**To get the KMS keys in an account and Region** + +The following ``list-keys`` example gets the KMS keys in an account and Region. This command returns both AWS managed keys and customer managed keys. :: + + aws kms list-keys + +Output:: + + { + "Keys": [ + { + "KeyArn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" + }, + { + "KeyArn": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", + "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321" + }, + { + "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d", + "KeyId": "1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d" + } + ] + } + +For more information, see `Viewing Keys `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/list-resource-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/list-resource-tags.rst new file mode 100644 index 000000000..786e5c898 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/list-resource-tags.rst @@ -0,0 +1,26 @@ +**To get the tags on a KMS key** + +The following ``list-resource-tags`` example gets the tags for a KMS key. To add or replace resource tags on KMS keys, use the ``tag-resource`` command. The output shows that this KMS key has two resource tags, each of which has a key and value. + +To specify the KMS key, use the ``key-id`` parameter. This example uses a key ID value, but you can use a key ID or key ARN in this command. :: + + aws kms list-resource-tags \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab + +Output:: + + { + "Tags": [ + { + "TagKey": "Dept", + "TagValue": "IT" + }, + { + "TagKey": "Purpose", + "TagValue": "Test" + } + ], + "Truncated": false + } + +For more information about using tags in AWS KMS, see `Tagging keys `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/list-retirable-grants.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/list-retirable-grants.rst new file mode 100644 index 000000000..f6ae86052 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/list-retirable-grants.rst @@ -0,0 +1,56 @@ +**To view the grants that a principal can retire** + +The following ``list-retirable-grants`` example displays all of the grants that the ``ExampleAdmin`` user can retire on the KMS keys in an AWS account and Region. You can use a command like this one to view the grants that any account principal can retire on KMS keys in the AWS account and Region. + +The value of the required ``retiring-principal`` parameter must be the Amazon Resource Name (ARN) of an account, user, or role. + +You cannot specify a service for the value of ``retiring-principal`` in this command, even though a service can be the retiring principal. To find the grants in which a particular service is the retiring principal, use the ``list-grants`` command. + +The output shows that ``ExampleAdmin`` user has permission to retire grants on two different KMS keys in the account and region. In addition to the retiring principal, the account has permission to retire any grant in the account. :: + + aws kms list-retirable-grants \ + --retiring-principal arn:aws:iam::111122223333:user/ExampleAdmin + +Output:: + + { + "Grants": [ + { + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "GrantId": "156b69c63cb154aa21f59929ff19760717be8d9d82b99df53e18b94a15a5e88e", + "Name": "", + "CreationDate": 2021-01-14T20:17:36.419000+00:00, + "GranteePrincipal": "arn:aws:iam::111122223333:user/ExampleUser", + "RetiringPrincipal": "arn:aws:iam::111122223333:user/ExampleAdmin", + "IssuingAccount": "arn:aws:iam::111122223333:root", + "Operations": [ + "Encrypt" + ], + "Constraints": { + "EncryptionContextSubset": { + "Department": "IT" + } + } + }, + { + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", + "GrantId": "8c94d1f12f5e69f440bae30eaec9570bb1fb7358824f9ddfa1aa5a0dab1a59b2", + "Name": "", + "CreationDate": "2021-02-02T19:49:49.638000+00:00", + "GranteePrincipal": "arn:aws:iam::111122223333:role/ExampleRole", + "RetiringPrincipal": "arn:aws:iam::111122223333:user/ExampleAdmin", + "IssuingAccount": "arn:aws:iam::111122223333:root", + "Operations": [ + "Decrypt" + ], + "Constraints": { + "EncryptionContextSubset": { + "Department": "IT" + } + } + } + ], + "Truncated": false + } + +For more information, see `Grants in AWS KMS `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/put-key-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/put-key-policy.rst new file mode 100755 index 000000000..2964b95dc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/put-key-policy.rst @@ -0,0 +1,80 @@ +**To change the key policy for a KMS key** + +The following ``put-key-policy`` example changes the key policy for a customer managed key. + +To begin, create a key policy and save it in a local JSON file. In this example, the file is ``key_policy.json``. You can also specify the key policy as a string value of the ``policy`` parameter. + +The first statement in this key policy gives the AWS account permission to use IAM policies to control access to the KMS key. The second statement gives the ``test-user`` user permission to run the ``describe-key`` and ``list-keys`` commands on the KMS key. + +Contents of ``key_policy.json``:: + + { + "Version" : "2012-10-17", + "Id" : "key-default-1", + "Statement" : [ + { + "Sid" : "Enable IAM User Permissions", + "Effect" : "Allow", + "Principal" : { + "AWS" : "arn:aws:iam::111122223333:root" + }, + "Action" : "kms:*", + "Resource" : "*" + }, + { + "Sid" : "Allow Use of Key", + "Effect" : "Allow", + "Principal" : { + "AWS" : "arn:aws:iam::111122223333:user/test-user" + }, + "Action" : [ + "kms:DescribeKey", + "kms:ListKeys" + ], + "Resource" : "*" + } + ] + } + +To identify the KMS key, this example uses the key ID, but you can also use a key ARN. To specify the key policy, the command uses the ``policy`` parameter. To indicate that the policy is in a file, it uses the required ``file://`` prefix. This prefix is required to identify files on all supported operating systems. Finally, the command uses the ``policy-name`` parameter with a value of ``default``. If no policy name is specified, the default value is ``default``. The only valid value is ``default``. :: + + aws kms put-key-policy \ + --policy-name default \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --policy file://key_policy.json + +This command does not produce any output. To verify that the command was effective, use the ``get-key-policy`` command. The following example command gets the key policy for the same KMS key. The ``output`` parameter with a value of ``text`` returns a text format that is easy to read. :: + + aws kms get-key-policy \ + --policy-name default \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --output text + +Output:: + + { + "Version" : "2012-10-17", + "Id" : "key-default-1", + "Statement" : [ + { + "Sid" : "Enable IAM User Permissions", + "Effect" : "Allow", + "Principal" : { + "AWS" : "arn:aws:iam::111122223333:root" + }, + "Action" : "kms:*", + "Resource" : "*" + }, + { + "Sid" : "Allow Use of Key", + "Effect" : "Allow", + "Principal" : { + "AWS" : "arn:aws:iam::111122223333:user/test-user" + }, + "Action" : [ "kms:Describe", "kms:List" ], + "Resource" : "*" + } + ] + } + +For more information, see `Changing a Key Policy `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/re-encrypt.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/re-encrypt.rst new file mode 100644 index 000000000..2cc892fb9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/re-encrypt.rst @@ -0,0 +1,62 @@ +**Example 1: To re-encrypt an encrypted message under a different symmetric KMS key (Linux and macOS).** + +The following ``re-encrypt`` command example demonstrates the recommended way to re-encrypt data with the AWS CLI. + +* Provide the ciphertext in a file. + + In the value of the ``--ciphertext-blob`` parameter, use the ``fileb://`` prefix, which tells the CLI to read the data from a binary file. If the file is not in the current directory, type the full path to file. For more information about reading AWS CLI parameter values from a file, see `Loading AWS CLI parameters from a file `__ in the *AWS Command Line Interface User Guide* and `Best Practices for Local File Parameters `__ in the *AWS Command Line Tool Blog*. + +* Specify the source KMS key, which decrypts the ciphertext. + + The ``--source-key-id`` parameter is not required when decrypting with symmetric encryption KMS keys. AWS KMS can get the KMS key that was used to encrypt the data from the metadata in the ciphertext blob. But it's always a best practice to specify the KMS key you are using. This practice ensures that you use the KMS key that you intend, and prevents you from inadvertently decrypting a ciphertext using a KMS key you do not trust. + +* Specify the destination KMS key, which re-encrypts the data. + + The ``--destination-key-id`` parameter is always required. This example uses a key ARN, but you can use any valid key identifier. + +* Request the plaintext output as a text value. + + The ``--query`` parameter tells the CLI to get only the value of the ``Plaintext`` field from the output. The ``--output`` parameter returns the output as text. + +* Base64-decode the plaintext and save it in a file. + + + The following example pipes (|) the value of the ``Plaintext`` parameter to the Base64 utility, which decodes it. Then, it redirects (>) the decoded output to the ``ExamplePlaintext`` file. + +Before running this command, replace the example key IDs with valid key identifiers from your AWS account. :: + + aws kms re-encrypt \ + --ciphertext-blob fileb://ExampleEncryptedFile \ + --source-key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --destination-key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \ + --query CiphertextBlob \ + --output text | base64 --decode > ExampleReEncryptedFile + +This command produces no output. The output from the ``re-encrypt`` command is base64-decoded and saved in a file. + +For more information, see `ReEncrypt `__ in the *AWS Key Management Service API Reference*. + +**Example 2: To re-encrypt an encrypted message under a different symmetric KMS key (Windows command prompt).** + +The following ``re-encrypt`` command example is the same as the previous one except that it uses the ``certutil`` utility to Base64-decode the plaintext data. This procedure requires two commands, as shown in the following examples. + +Before running this command, replace the example key ID with a valid key ID from your AWS account. :: + + aws kms re-encrypt ^ + --ciphertext-blob fileb://ExampleEncryptedFile ^ + --source-key-id 1234abcd-12ab-34cd-56ef-1234567890ab ^ + --destination-key-id 0987dcba-09fe-87dc-65ba-ab0987654321 ^ + --query CiphertextBlob ^ + --output text > ExampleReEncryptedFile.base64 + +Then use the ``certutil`` utility :: + + certutil -decode ExamplePlaintextFile.base64 ExamplePlaintextFile + +Output:: + + Input Length = 18 + Output Length = 12 + CertUtil: -decode command completed successfully. + +For more information, see `ReEncrypt `__ in the *AWS Key Management Service API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/retire-grant.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/retire-grant.rst new file mode 100644 index 000000000..cafdda639 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/retire-grant.rst @@ -0,0 +1,13 @@ +**To retire a grant on a customer master key** + +The following ``retire-grant`` example deletes a grant from a KMS key. + +The following example command specifies the ``grant-id`` and the ``key-id`` parameters. The value of the ``key-id`` parameter must be the key ARN of the KMS key. :: + + aws kms retire-grant \ + --grant-id 1234a2345b8a4e350500d432bccf8ecd6506710e1391880c4f7f7140160c9af3 \ + --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + +This command produces no output. To confirm that the grant was retired, use the ``list-grants`` command. + +For more information, see `Retiring and revoking grants `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/revoke-grant.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/revoke-grant.rst new file mode 100644 index 000000000..a27b74718 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/revoke-grant.rst @@ -0,0 +1,11 @@ +**To revoke a grant on a customer master key** + +The following ``revoke-grant`` example deletes a grant from a KMS key. The following example command specifies the ``grant-id`` and the ``key-id`` parameters. The value of the ``key-id`` parameter can be the key ID or key ARN of the KMS key. :: + + aws kms revoke-grant \ + --grant-id 1234a2345b8a4e350500d432bccf8ecd6506710e1391880c4f7f7140160c9af3 \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab + +This command produces no output. To confirm that the grant was revoked, use the ``list-grants`` command. + +For more information, see `Retiring and revoking grants `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/rotate-key-on-demand.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/rotate-key-on-demand.rst new file mode 100644 index 000000000..6d1eb7375 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/rotate-key-on-demand.rst @@ -0,0 +1,14 @@ +**To perform on-demand rotation of a KMS key** + +The following ``rotate-key-on-demand`` example immediately initiates rotation of the key material for the specified KMS key. :: + + aws kms rotate-key-on-demand \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab + +Output:: + + { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" + } + +For more information, see `How to perform on-demand key rotation `__ in the *AWS Key Management Service Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/schedule-key-deletion.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/schedule-key-deletion.rst new file mode 100644 index 000000000..51b301702 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/schedule-key-deletion.rst @@ -0,0 +1,22 @@ +**To schedule the deletion of a customer managed KMS key.** + +The following ``schedule-key-deletion`` example schedules the specified customer managed KMS key to be deleted in 15 days. + +* The ``--key-id`` parameter identifies the KMS key. This example uses a key ARN value, but you can use either the key ID or the ARN of the KMS key. +* The ``--pending-window-in-days`` parameter specifies the length of the 7-30 day waiting period. By default, the waiting period is 30 days. This example specifies a value of 15, which tells AWS to permanently delete the KMS key 15 days after the command completes. :: + + aws kms schedule-key-deletion \ + --key-id arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab \ + --pending-window-in-days 15 + +The response includes the key ARN, key state, waiting period (``PendingWindowInDays``), and the deletion date in Unix time. To view the deletion date in local time, use the AWS KMS console. +KMS keys in the ``PendingDeletion`` key state cannot be used in cryptographic operations. :: + + { + "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "DeletionDate": "2022-06-18T23:43:51.272000+00:00", + "KeyState": "PendingDeletion", + "PendingWindowInDays": 15 + } + +For more information, see `Deleting keys `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/sign.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/sign.rst new file mode 100644 index 000000000..6c9a600f5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/sign.rst @@ -0,0 +1,49 @@ +**Example 1: To generate a digital signature for a message** + +The following ``sign`` example generates a cryptographic signature for a short message. The output of the command includes a base-64 encoded ``Signature`` field that you can verify by using the ``verify`` command. + +You must specify a message to sign and a signing algorithm that your asymmetric KMS key supports. To get the signing algorithms for your KMS key, use the ``describe-key`` command. + +In AWS CLI v2, the value of the ``message`` parameter must be Base64-encoded. Or, you can save the message in a file and use the ``fileb://`` prefix, which tells the AWS CLI to read binary data from the file. + +Before running this command, replace the example key ID with a valid key ID from your AWS account. The key ID must represent an asymmetric KMS key with a key usage of SIGN_VERIFY. :: + + msg=(echo 'Hello World' | base64) + + aws kms sign \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --message fileb://UnsignedMessage \ + --message-type RAW \ + --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256 + +Output:: + + { + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "Signature": "ABCDEFhpyVYyTxbafE74ccSvEJLJr3zuoV1Hfymz4qv+/fxmxNLA7SE1SiF8lHw80fKZZ3bJ...", + "SigningAlgorithm": "RSASSA_PKCS1_V1_5_SHA_256" + } + +For more information about using asymmetric KMS keys in AWS KMS, see `Asymmetric keys in AWS KMS `__ in the *AWS Key Management Service Developer Guide*. + +**Example 2: To save a digital signature in a file (Linux and macOs)** + +The following ``sign`` example generates a cryptographic signature for a short message stored in a local file. The command also gets the ``Signature`` property from the response, Base64-decodes it and saves it in the ExampleSignature file. You can use the signature file in a ``verify`` command that verifies the signature. + +The ``sign`` command requires a Base64-encoded message and a signing algorithm that your asymmetric KMS key supports. To get the signing algorithms that your KMS key supports, use the ``describe-key`` command. + +Before running this command, replace the example key ID with a valid key ID from your AWS account. The key ID must represent an asymmetric KMS key with a key usage of SIGN_VERIFY. :: + + echo 'hello world' | base64 > EncodedMessage + + aws kms sign \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --message fileb://EncodedMessage \ + --message-type RAW \ + --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256 \ + --output text \ + --query Signature | base64 --decode > ExampleSignature + +This command produces no output. This example extracts the ``Signature`` property of the output and saves it in a file. + +For more information about using asymmetric KMS keys in AWS KMS, see `Asymmetric keys in AWS KMS `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/tag-resource.rst new file mode 100644 index 000000000..0422611fd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/tag-resource.rst @@ -0,0 +1,13 @@ +**To add a tag to a KMS key** + +The following ``tag-resource`` example adds ``"Purpose":"Test"`` and ``"Dept":"IT"`` tags to a customer managed KMS key. You can use tags like these to label KMS keys and create categories of KMS keys for permissions and auditing. + +To specify the KMS key, use the ``key-id`` parameter. This example uses a key ID value, but you can use a key ID or key ARN in this command. :: + + aws kms tag-resource \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --tags TagKey='Purpose',TagValue='Test' TagKey='Dept',TagValue='IT' + +This command produces no output. To view the tags on an AWS KMS KMS key, use the ``list-resource-tags`` command. + +For more information about using tags in AWS KMS, see `Tagging keys `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/untag-resource.rst new file mode 100644 index 000000000..5a9980ae7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/untag-resource.rst @@ -0,0 +1,13 @@ +**To delete a tag from a KMS key** + +The following ``untag-resource`` example deletes the tag with the ``"Purpose"`` key from a customer managed KMS key. + +To specify the KMS key, use the ``key-id`` parameter. This example uses a key ID value, but you can use a key ID or key ARN in this command. Before running this command, replace the example key ID with a valid key ID from your AWS account. :: + + aws kms untag-resource \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --tag-key 'Purpose' + +This command produces no output. To view the tags on an AWS KMS KMS key, use the ``list-resource-tags`` command. + +For more information about using tags in AWS KMS, see `Tagging keys `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/update-alias.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/update-alias.rst new file mode 100644 index 000000000..fd0ec3cc7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/update-alias.rst @@ -0,0 +1,14 @@ +**To associate an alias with a different KMS key** + +The following ``update-alias`` example associates the alias ``alias/test-key`` with a different KMS key. + +* The ``--alias-name`` parameter specifies the alias. The alias name value must begin with ``alias/``. +* The ``--target-key-id`` parameter specifies the KMS key to associate with the alias. You don't need to specify the current KMS key for the alias. :: + + aws kms update-alias \ + --alias-name alias/test-key \ + --target-key-id 1234abcd-12ab-34cd-56ef-1234567890ab + +This command produces no output. To find the alias, use the ``list-aliases`` command. + +For more information, see `Updating aliases `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/update-custom-key-store.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/update-custom-key-store.rst new file mode 100755 index 000000000..04df22044 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/update-custom-key-store.rst @@ -0,0 +1,77 @@ +**Example 1: To edit the friendly name of a custom key store** + +The following ``update-custom-key-store`` example changes the name of the custom key store. This example works for an AWS CloudHSM key store or an external key store. + +Use the ``custom-key-store-id`` to identify the key store. Use the ``new-custom-key-store-name`` parameter to specify the new friendly name. + +To update the friendly name of an AWS CloudHSM key store, you must first disconnect the key store, such as by using the ``disconnect-custom-key-store`` command. You can update the friendly name of an external key store while it is connected or disconnected. To find the connection state of your custom key store, use the ``describe-custom-key-store`` command. :: + + aws kms update-custom-key-store \ + --custom-key-store-id cks-1234567890abcdef0 \ + --new-custom-key-store-name ExampleKeyStore + +This command does not return any data. To verify that the command worked, use a ``describe-custom-key-stores`` command. + +For more information about updating an AWS CloudHSM key store, see `Editing AWS CloudHSM key store settings `__ in the *AWS Key Management Service Developer Guide*. + +For more information about updating an external key store, see `Editing external key store properties `__ in the *AWS Key Management Service Developer Guide*. + +**Example 2: To edit the kmsuser password of an AWS CloudHSM key store** + +The following ``update-custom-key-store`` example updates the value of the ``kmsuser`` password to the current password for the ``kmsuser`` in the CloudHSM cluster associated with the specified key store. This command doesn't change the ``kmsuser`` password it the cluster. It just tells AWS KMS the current password. If KMS doesn't have the current ``kmsuser`` password, it cannot connect to the AWS CloudHSM key store. + +**NOTE:** Before updating an AWS CloudHSM key store, you must disconnect it. Use the ``disconnect-custom-key-store`` command. After the command completes, you can reconnect the AWS CloudHSM key store. Use the ``connect-custom-key-store`` command. :: + + aws kms update-custom-key-store \ + --custom-key-store-id cks-1234567890abcdef0 \ + --key-store-password ExamplePassword + +This command does not return any output. To verify that the change was effective, use a ``describe-custom-key-stores`` command. + +For more information about updating an AWS CloudHSM key store, see `Editing AWS CloudHSM key store settings `__ in the *AWS Key Management Service Developer Guide*. + +**Example 3: To edit the AWS CloudHSM cluster of an AWS CloudHSM key store** + +The following example changes the AWS CloudHSM cluster that is associated with an AWS CloudHSM key store to a related cluster, such as a different backup of the same cluster. + +**NOTE:** Before updating an AWS CloudHSM key store, you must disconnect it. Use the ``disconnect-custom-key-store`` command. After the command completes, you can reconnect the AWS CloudHSM key store. Use the ``connect-custom-key-store`` command. :: + + aws kms update-custom-key-store \ + --custom-key-store-id cks-1234567890abcdef0 \ + --cloud-hsm-cluster-id cluster-1a23b4cdefg + +This command does not return any output. To verify that the change was effective, use a ``describe-custom-key-stores`` command. + +For more information about updating an AWS CloudHSM key store, see `Editing AWS CloudHSM key store settings `__ in the *AWS Key Management Service Developer Guide*. + +**Example 4: To edit the proxy authentication credential of an external key store** + +The following example updates the proxy authentication credential for your external key store. You must specify both the ``raw-secret-access-key`` and the ``access-key-id``, even if you are changing only one of the values. You can use this feature to fix an invalid credential or to change the credential when the external key store proxy rotates it. + +Establish the proxy authentication credential for AWS KMS on your external key store. Then use this command to provide the credential to AWS KMS. AWS KMS uses this credential to sign its requests to your external key store proxy. + +You can update the proxy authentication credential while the external key store is connected or disconnected. To find the connection state of your custom key store, use the ``describe-custom-key-store`` command. :: + + aws kms update-custom-key-store \ + --custom-key-store-id cks-1234567890abcdef0 \ + --xks-proxy-authentication-credential "AccessKeyId=ABCDE12345670EXAMPLE, RawSecretAccessKey=DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo=" + +This command does not return any output. To verify that the change was effective, use a ``describe-custom-key-stores`` command. + +For more information about updating an external key store, see `Editing external key store properties `__ in the *AWS Key Management Service Developer Guide*. + +**Example 5: To edit the proxy connectivity of an external key store** + +The following example changes the external key store proxy connectivity option from public endpoint connectivity to VPC endpoint service connectivity. In addition to changing the ``xks-proxy-connectivity`` value, you must change the ``xks-proxy-uri-endpoint`` value to reflect the private DNS name associated with the VPC endpoint service. You must also add an ``xks-proxy-vpc-endpoint-service-name`` value. + +**NOTE:** Before updating the proxy connectivity of an external store, you must disconnect it. Use the ``disconnect-custom-key-store`` command. After the command completes, you can reconnect the external key store by using the ``connect-custom-key-store`` command. :: + + aws kms update-custom-key-store \ + --custom-key-store-id cks-1234567890abcdef0 \ + --xks-proxy-connectivity VPC_ENDPOINT_SERVICE \ + --xks-proxy-uri-endpoint "https://myproxy-private.xks.example.com" \ + --xks-proxy-vpc-endpoint-service-name "com.amazonaws.vpce.us-east-1.vpce-svc-example" + +This command does not return any output. To verify that the change was effective, use a ``describe-custom-key-stores`` command. + +For more information about updating an external key store, see `Editing external key store properties `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/update-key-description.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/update-key-description.rst new file mode 100644 index 000000000..e6533c0df --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/update-key-description.rst @@ -0,0 +1,29 @@ +**Example 1: To add or change a description to a customer managed KMS key** + +The following ``update-key-description`` example adds a description to a customer managed KMS key. You can use the same command to change an existing description. + +* The ``--key-id`` parameter identifies the KMS key in the command. This example uses a key ARN value, but you can use either the key ID or the key ARN of the KMS key. +* The ``--description`` parameter specifies the new description. The value of this parameter replaces the current description of the KMS key, if any. :: + + aws kms update-key-description \ + --key-id arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab \ + --description "IT Department test key" + +This command produces no output. To view the description of a KMS key, use the ``describe-key`` command. + +For more information, see `UpdateKeyDescription `__ in the *AWS Key Management Service API Reference*. + +**Example 2: To delete the description of a customer managed KMS key** + +The following ``update-key-description`` example deletes the description to a customer managed KMS key. + +* The ``--key-id`` parameter identifies the KMS key in the command. This example uses a key ID value, but you can use either the key ID or the key ARN of the KMS key. +* The ``--description`` parameter with an empty string value ('') deletes the existing description. :: + + aws kms update-key-description \ + --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \ + --description '' + +This command produces no output. To view the description of a KMS key, use the the describe-key command. + +For more information, see `UpdateKeyDescription `__ in the *AWS Key Management Service API Reference*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/verify-mac.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/verify-mac.rst new file mode 100644 index 000000000..415599d58 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/verify-mac.rst @@ -0,0 +1,27 @@ +**Example 1: To verify an HMAC** + +The following ``verify-mac`` command verifies an HMAC for a particular message, HMAC KMS keys, and MAC algorithm. A value of 'true' in the MacValid value in the response indicates that the HMAC is valid. + +In AWS CLI v2, the value of the ``message`` parameter must be Base64-encoded. Or, you can save the message in a file and use the ``fileb://`` prefix, which tells the AWS CLI to read binary data from the file. + +The MAC that you specify cannot be base64-encoded. For help decoding the MAC that the ``generate-mac`` command returns, see the ``generate-mac`` command examples. + +Before running this command, replace the example key ID with a valid key ID from your AWS account. The key ID must represent a HMAC KMS key with a key usage of ``GENERATE_VERIFY_MAC``. :: + + msg=(echo 'Hello World' | base64) + + aws kms verify-mac \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --message fileb://Message \ + --mac-algorithm HMAC_SHA_384 \ + --mac fileb://ExampleMac + +Output:: + + { + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "MacValid": true, + "MacAlgorithm": "HMAC_SHA_384" + } + +For more information about using HMAC KMS keys in AWS KMS, see `HMAC keys in AWS KMS `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/verify.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/verify.rst new file mode 100644 index 000000000..bd19ca2f7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/kms/verify.rst @@ -0,0 +1,28 @@ +**To verify a digital signature** + +The following ``verify`` command verifies a cryptographic signature for a short, Base64-encoded message. The key ID, message, message type, and signing algorithm must be same ones that were used to sign the message. + +In AWS CLI v2, the value of the ``message`` parameter must be Base64-encoded. Or, you can save the message in a file and use the ``fileb://`` prefix, which tells the AWS CLI to read binary data from the file. + +The signature that you specify cannot be base64-encoded. For help decoding the signature that the ``sign`` command returns, see the ``sign`` command examples. + +The output of the command includes a Boolean ``SignatureValid`` field that indicates that the signature was verified. If the signature validation fails, the ``verify`` command fails, too. + +Before running this command, replace the example key ID with a valid key ID from your AWS account. :: + + aws kms verify \ + --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ + --message fileb://EncodedMessage \ + --message-type RAW \ + --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256 \ + --signature fileb://ExampleSignature + +Output:: + + { + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "SignatureValid": true, + "SigningAlgorithm": "RSASSA_PKCS1_V1_5_SHA_256" + } + +For more information about using asymmetric KMS keys in AWS KMS, see `Using asymmetric keys `__ in the *AWS Key Management Service Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/add-lf-tags-to-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/add-lf-tags-to-resource.rst new file mode 100644 index 000000000..1bbcaada7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/add-lf-tags-to-resource.rst @@ -0,0 +1,34 @@ +**To attach one or more LF-tags to an existing resource** + +The following ``add-lf-tags-to-resource`` example attaches given LF-tag to the table resource. :: + + aws lakeformation add-lf-tags-to-resource \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "CatalogId": "123456789111", + "Resource": { + "Table": { + "CatalogId": "123456789111", + "DatabaseName": "tpc", + "Name": "dl_tpc_promotion" + } + }, + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "analyst" + ] + }] + } + +Output:: + + { + "Failures": [] + } + +For more information, see `Assigning LF-Tags to Data Catalog resources `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/batch-grant-permissions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/batch-grant-permissions.rst new file mode 100644 index 000000000..2166949f4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/batch-grant-permissions.rst @@ -0,0 +1,96 @@ +**To bulk grant permissions on resources to the principals** + +The following ``batch-grant-permissions`` example bulk grants access on specified resources to the principals. :: + + aws lakeformation batch-grant-permissions \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "CatalogId": "123456789111", + "Entries": [{ + "Id": "1", + "Principal": { + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:user/lf-developer" + }, + "Resource": { + "Table": { + "CatalogId": "123456789111", + "DatabaseName": "tpc", + "Name": "dl_tpc_promotion" + } + }, + "Permissions": [ + "ALL" + ], + "PermissionsWithGrantOption": [ + "ALL" + ] + }, + { + "Id": "2", + "Principal": { + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:user/lf-developer" + }, + "Resource": { + "Table": { + "CatalogId": "123456789111", + "DatabaseName": "tpc", + "Name": "dl_tpc_customer" + } + }, + "Permissions": [ + "ALL" + ], + "PermissionsWithGrantOption": [ + "ALL" + ] + }, + { + "Id": "3", + "Principal": { + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:user/lf-business-analyst" + }, + "Resource": { + "Table": { + "CatalogId": "123456789111", + "DatabaseName": "tpc", + "Name": "dl_tpc_promotion" + } + }, + "Permissions": [ + "ALL" + ], + "PermissionsWithGrantOption": [ + "ALL" + ] + }, + { + "Id": "4", + "Principal": { + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:user/lf-developer" + }, + "Resource": { + "DataCellsFilter": { + "TableCatalogId": "123456789111", + "DatabaseName": "tpc", + "TableName": "dl_tpc_item", + "Name": "developer_item" + } + }, + "Permissions": [ + "SELECT" + ], + "PermissionsWithGrantOption": [] + } + ] + } + +Output:: + + { + "Failures": [] + } + +For more information, see `Granting and revoking permissions on Data Catalog resources `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/batch-revoke-permissions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/batch-revoke-permissions.rst new file mode 100644 index 000000000..f839493a1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/batch-revoke-permissions.rst @@ -0,0 +1,59 @@ +**To bulk revoke permissions on resources from the principals** + +The following ``batch-revoke-permissions`` example bulk revokes access on specified resources from the principals. :: + + aws lakeformation batch-revoke-permissions \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "CatalogId": "123456789111", + "Entries": [{ + "Id": "1", + "Principal": { + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:user/lf-developer" + }, + "Resource": { + "Table": { + "CatalogId": "123456789111", + "DatabaseName": "tpc", + "Name": "dl_tpc_promotion" + } + }, + "Permissions": [ + "ALL" + ], + "PermissionsWithGrantOption": [ + "ALL" + ] + }, + { + "Id": "2", + "Principal": { + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:user/lf-business-analyst" + }, + "Resource": { + "Table": { + "CatalogId": "123456789111", + "DatabaseName": "tpc", + "Name": "dl_tpc_promotion" + } + }, + "Permissions": [ + "ALL" + ], + "PermissionsWithGrantOption": [ + "ALL" + ] + } + ] + } + +Output:: + + { + "Failures": [] + } + +For more information, see `Granting and revoking permissions on Data Catalog resources `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/cancel-transaction.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/cancel-transaction.rst new file mode 100644 index 000000000..d09012a48 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/cancel-transaction.rst @@ -0,0 +1,10 @@ +**To cancel a transaction** + +The following ``cancel-transaction`` example cancels the transaction. :: + + aws lakeformation cancel-transaction \ + --transaction-id='b014d972ca8347b89825e33c5774aec4' + +This command produces no output. + +For more information, see `Reading from and writing to the data lake within transactions `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/commit-transaction.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/commit-transaction.rst new file mode 100644 index 000000000..1e7bd5080 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/commit-transaction.rst @@ -0,0 +1,14 @@ +**To commit transaction** + +The following ``commit-transaction`` example commits the transaction. :: + + aws lakeformation commit-transaction \ + --transaction-id='b014d972ca8347b89825e33c5774aec4' + +Output:: + + { + "TransactionStatus": "committed" + } + +For more information, see `Reading from and writing to the data lake within transactions `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/create-data-cells-filter.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/create-data-cells-filter.rst new file mode 100644 index 000000000..5207f41e9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/create-data-cells-filter.rst @@ -0,0 +1,79 @@ +**Example 1: To create data cell filter** + +The following ``create-data-cells-filter`` example creates a data cell filter to allow one to grant access to certain columns based on row condition. :: + + aws lakeformation create-data-cells-filter \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "TableData": { + "ColumnNames": ["p_channel_details", "p_start_date_sk", "p_promo_name"], + "DatabaseName": "tpc", + "Name": "developer_promotion", + "RowFilter": { + "FilterExpression": "p_promo_name='ese'" + }, + "TableCatalogId": "123456789111", + "TableName": "dl_tpc_promotion" + } + } + +This command produces no output. + +For more information, see `Data filtering and cell-level security in Lake Formation `__ in the *AWS Lake Formation Developer Guide*. + +**Example 2: To create column filter** + +The following ``create-data-cells-filter`` example creates a data filter to allow one to grant access to certain columns. :: + + aws lakeformation create-data-cells-filter \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "TableData": { + "ColumnNames": ["p_channel_details", "p_start_date_sk", "p_promo_name"], + "DatabaseName": "tpc", + "Name": "developer_promotion_allrows", + "RowFilter": { + "AllRowsWildcard": {} + }, + "TableCatalogId": "123456789111", + "TableName": "dl_tpc_promotion" + } + } + +This command produces no output. + +For more information, see `Data filtering and cell-level security in Lake Formation `__ in the *AWS Lake Formation Developer Guide*. + +**Example 3: To create data filter with exclude columns** + +The following ``create-data-cells-filter`` example creates a data filter to allow one to grant access all except the mentioned columns. :: + + aws lakeformation create-data-cells-filter \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "TableData": { + "ColumnWildcard": { + "ExcludedColumnNames": ["p_channel_details", "p_start_date_sk"] + }, + "DatabaseName": "tpc", + "Name": "developer_promotion_excludecolumn", + "RowFilter": { + "AllRowsWildcard": {} + }, + "TableCatalogId": "123456789111", + "TableName": "dl_tpc_promotion" + } + } + +This command produces no output. + +For more information, see `Data filtering and cell-level security in Lake Formation `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/create-lf-tag.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/create-lf-tag.rst new file mode 100644 index 000000000..f400fb484 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/create-lf-tag.rst @@ -0,0 +1,12 @@ +**To create LF-Tag** + +The following ``create-lf-tag`` example creates an LF-Tag with the specified name and values. :: + + aws lakeformation create-lf-tag \ + --catalog-id '123456789111' \ + --tag-key 'usergroup' \ + --tag-values '["developer","analyst","campaign"]' + +This command produces no output. + +For more information, see `Managing LF-Tags for metadata access control `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/delete-data-cells-filter.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/delete-data-cells-filter.rst new file mode 100644 index 000000000..ca9f53399 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/delete-data-cells-filter.rst @@ -0,0 +1,19 @@ +**To delete data cell filter** + +The following ``delete-data-cells-filter`` example deletes given data cell filter. :: + + aws lakeformation delete-data-cells-filter \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "TableCatalogId": "123456789111", + "DatabaseName": "tpc", + "TableName": "dl_tpc_promotion", + "Name": "developer_promotion" + } + +This command produces no output. + +For more information, see `Data filtering and cell-level security in Lake Formation `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/delete-lf-tag.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/delete-lf-tag.rst new file mode 100644 index 000000000..043705b16 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/delete-lf-tag.rst @@ -0,0 +1,11 @@ +**To delete LF-Tag definition** + +The following ``delete-lf-tag`` example deletes LF-Tag definition. :: + + aws lakeformation delete-lf-tag \ + --catalog-id '123456789111' \ + --tag-key 'usergroup' + +This command produces no output. + +For more information, see `Managing LF-Tags for metadata access control `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/delete-objects-on-cancel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/delete-objects-on-cancel.rst new file mode 100644 index 000000000..36a2c836f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/delete-objects-on-cancel.rst @@ -0,0 +1,23 @@ +**To delete object when transaction is cancelled** + +The following ``delete-objects-on-cancel`` example deletes the listed s3 object when the transaction is cancelled. :: + + aws lakeformation delete-objects-on-cancel \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "CatalogId": "012345678901", + "DatabaseName": "tpc", + "TableName": "dl_tpc_household_demographics_gov", + "TransactionId": "1234d972ca8347b89825e33c5774aec4", + "Objects": [{ + "Uri": "s3://lf-data-lake-012345678901/target/dl_tpc_household_demographics_gov/run-unnamed-1-part-block-0-r-00000-snappy-ff26b17504414fe88b302cd795eabd00.parquet", + "ETag": "1234ab1fc50a316b149b4e1f21a73800" + }] + } + +This command produces no output. + +For more information, see `Reading from and writing to the data lake within transactions `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/deregister-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/deregister-resource.rst new file mode 100644 index 000000000..0ec06fe9a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/deregister-resource.rst @@ -0,0 +1,16 @@ +**To deregister data lake storage** + +The following ``deregister-resource`` example deregisters the resource as managed by the Lake Formation. :: + + aws lakeformation deregister-resource \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "ResourceArn": "arn:aws:s3:::lf-emr-athena-result-123" + } + +This command produces no output. + +For more information, see `Adding an Amazon S3 location to your data lake `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/describe-transaction.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/describe-transaction.rst new file mode 100644 index 000000000..3523e2791 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/describe-transaction.rst @@ -0,0 +1,19 @@ +**To retrieve a transaction details** + +The following ``describe-transaction`` example returns the details of a single transaction. :: + + aws lakeformation describe-transaction \ + --transaction-id='8cb4b1a7cc8d486fbaca9a64e7d9f5ce' + +Output:: + + { + "TransactionDescription": { + "TransactionId": "12345972ca8347b89825e33c5774aec4", + "TransactionStatus": "committed", + "TransactionStartTime": "2022-08-10T14:29:04.046000+00:00", + "TransactionEndTime": "2022-08-10T14:29:09.681000+00:00" + } + } + +For more information, see `Reading from and writing to the data lake within transactions `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/extend-transaction.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/extend-transaction.rst new file mode 100644 index 000000000..e41f1f21f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/extend-transaction.rst @@ -0,0 +1,10 @@ +**To extend a transaction** + +The following ``extend-transaction`` example extends the transaction. :: + + aws lakeformation extend-transaction \ + --transaction-id='8cb4b1a7cc8d486fbaca9a64e7d9f5ce' + +This command produces no output. + +For more information, see `Reading from and writing to the data lake within transactions `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-data-lake-settings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-data-lake-settings.rst new file mode 100644 index 000000000..02540b2bc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-data-lake-settings.rst @@ -0,0 +1,43 @@ +**To retrieve AWS Lake Formation-managed data lake settings** + +The following ``get-data-lake-settings`` example retrieves the list of data lake administrators and other data lake settings. :: + + aws lakeformation get-data-lake-settings \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "CatalogId": "123456789111" + } + +Output:: + + { + "DataLakeSettings": { + "DataLakeAdmins": [{ + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:user/lf-admin" + }], + "CreateDatabaseDefaultPermissions": [], + "CreateTableDefaultPermissions": [ + { + "Principal": { + "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS" + }, + "Permissions": [ + "ALL" + ] + } + ], + "TrustedResourceOwners": [], + "AllowExternalDataFiltering": true, + "ExternalDataFilteringAllowList": [{ + "DataLakePrincipalIdentifier": "123456789111" + }], + "AuthorizedSessionTagValueList": [ + "Amazon EMR" + ] + } + } + +For more information, see `Changing the default security settings for your data lake `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-effective-permissions-for-path.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-effective-permissions-for-path.rst new file mode 100644 index 000000000..32e1a4aee --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-effective-permissions-for-path.rst @@ -0,0 +1,103 @@ +**To retrieve permissions on resources located at specific path** + +The following ``get-effective-permissions-for-path`` example returns the Lake Formation permissions for a specified table or database resource located at a path in Amazon S3. :: + + aws lakeformation get-effective-permissions-for-path \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "CatalogId": "123456789111", + "ResourceArn": "arn:aws:s3:::lf-data-lake-123456789111" + } + +Output:: + + { + "Permissions": [{ + "Principal": { + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:user/lf-campaign-manager" + }, + "Resource": { + "Database": { + "Name": "tpc" + } + }, + "Permissions": [ + "DESCRIBE" + ], + "PermissionsWithGrantOption": [] + }, + { + "Principal": { + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:role/EMR-RuntimeRole" + }, + "Resource": { + "Database": { + "Name": "tpc" + } + }, + "Permissions": [ + "ALL" + ], + "PermissionsWithGrantOption": [] + }, + { + "Principal": { + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:saml-provider/oktaSAMLProvider:user/emr-developer" + }, + "Resource": { + "Database": { + "Name": "tpc" + } + }, + "Permissions": [ + "ALL", + "DESCRIBE" + ], + "PermissionsWithGrantOption": [] + }, + { + "Principal": { + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:user/lf-admin" + }, + "Resource": { + "Database": { + "Name": "tpc" + } + }, + "Permissions": [ + "ALL", + "ALTER", + "CREATE_TABLE", + "DESCRIBE", + "DROP" + ], + "PermissionsWithGrantOption": [ + "ALL", + "ALTER", + "CREATE_TABLE", + "DESCRIBE", + "DROP" + ] + }, + { + "Principal": { + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:role/LF-GlueServiceRole" + }, + "Resource": { + "Database": { + "Name": "tpc" + } + }, + "Permissions": [ + "CREATE_TABLE" + ], + "PermissionsWithGrantOption": [] + } + ], + "NextToken": "E5SlJDSTZleUp6SWpvaU9UQTNORE0zTXpFeE5Ua3pJbjE5TENKbGVIQnBjbUYwYVc5dUlqcDdJbk5sWTI5dVpITWlPakUyTm==" + } + +For more information, see `Managing Lake Formation permissions `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-lf-tag.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-lf-tag.rst new file mode 100644 index 000000000..39f74b29b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-lf-tag.rst @@ -0,0 +1,21 @@ +**To retrieve LF-tag definition** + +The following ``get-lf-tag`` example retrieves LF-tag definition. :: + + aws lakeformation get-lf-tag \ + --catalog-id '123456789111' \ + --tag-key 'usergroup' + +Output:: + + { + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "analyst", + "campaign", + "developer" + ] + } + +For more information, see `Managing LF-Tags for metadata access control `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-query-state.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-query-state.rst new file mode 100644 index 000000000..5cd2f154b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-query-state.rst @@ -0,0 +1,14 @@ +**To retrieve state of a submitted query** + +The following ``get-query-state`` example returns the state of a query previously submitted. :: + + aws lakeformation get-query-state \ + --query-id='1234273f-4a62-4cda-8d98-69615ee8be9b' + +Output:: + + { + "State": "FINISHED" + } + +For more information, see `Transactional data operations `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-query-statistics.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-query-statistics.rst new file mode 100644 index 000000000..dea0da33d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-query-statistics.rst @@ -0,0 +1,25 @@ +**To retrieve query statistics** + +The following ``get-query-statistics`` example retrieves statistics on the planning and execution of a query. :: + + aws lakeformation get-query-statistics \ + --query-id='1234273f-4a62-4cda-8d98-69615ee8be9b' + +Output:: + + { + "ExecutionStatistics": { + "AverageExecutionTimeMillis": 0, + "DataScannedBytes": 0, + "WorkUnitsExecutedCount": 0 + }, + "PlanningStatistics": { + "EstimatedDataToScanBytes": 43235, + "PlanningTimeMillis": 2377, + "QueueTimeMillis": 440, + "WorkUnitsGeneratedCount": 1 + }, + "QuerySubmissionTime": "2022-08-11T02:14:38.641870+00:00" + } + +For more information, see `Transactional data operations `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-resource-lf-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-resource-lf-tags.rst new file mode 100644 index 000000000..aa825d6f4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-resource-lf-tags.rst @@ -0,0 +1,39 @@ +**To list LF-tags** + +The following ``list-lf-tags`` example returns list of LF-tags that the requester has permission to view. :: + + aws lakeformation list-lf-tags \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "CatalogId": "123456789111", + "ResourceShareType": "ALL", + "MaxResults": 2 + } + +Output:: + + { + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "category", + "TagValues": [ + "private", + "public" + ] + }, + { + "CatalogId": "123456789111", + "TagKey": "group", + "TagValues": [ + "analyst", + "campaign", + "developer" + ] + }], + "NextToken": "kIiwiZXhwaXJhdGlvbiI6eyJzZWNvbmRzIjoxNjYwMDY4dCI6ZmFsc2V9" + } + +For more information, see `Managing LF-Tags for metadata access control `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-table-objects.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-table-objects.rst new file mode 100644 index 000000000..0ec79c74d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-table-objects.rst @@ -0,0 +1,30 @@ +**To list objects of governed table** + +The following ``get-table-objects`` example returns the set of Amazon S3 objects that make up the specified governed table. :: + + aws lakeformation get-table-objects \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "CatalogId": "012345678901", + "DatabaseName": "tpc", + "TableName": "dl_tpc_household_demographics_gov", + "QueryAsOfTime": "2022-08-10T15:00:00" + } + +Output:: + + { + "Objects": [{ + "PartitionValues": [], + "Objects": [{ + "Uri": "s3://lf-data-lake-012345678901/target/dl_tpc_household_demographics_gov/run-unnamed-1-part-block-0-r-00000-snappy-ff26b17504414fe88b302cd795eabd00.parquet", + "ETag": "12345b1fc50a316b149b4e1f21a73800", + "Size": 43235 + }] + }] + } + +For more information, see `Reading from and writing to the data lake within transactions `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-work-unit-results.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-work-unit-results.rst new file mode 100644 index 000000000..b7b082bd4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-work-unit-results.rst @@ -0,0 +1,14 @@ +**To retrieve work units of given query** + +The following ``get-work-unit-results`` example returns the work units resulting from the query. :: + + aws lakeformation get-work-units \ + --query-id='1234273f-4a62-4cda-8d98-69615ee8be9b' \ + --work-unit-id '0' \ + --work-unit-token 'B2fMSdmQXe9umX8Ux8XCo4=' outfile + +Output:: + + outfile with Blob content. + +For more information, see `Transactional data operations `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-work-units.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-work-units.rst new file mode 100644 index 000000000..a1626f5f9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/get-work-units.rst @@ -0,0 +1,19 @@ +**To retrieve work units** + +The following ``get-work-units`` example retrieves the work units generated by the StartQueryPlanning operation. :: + + aws lakeformation get-work-units \ + --query-id='1234273f-4a62-4cda-8d98-69615ee8be9b' + +Output:: + + { + "WorkUnitRanges": [{ + "WorkUnitIdMax": 0, + "WorkUnitIdMin": 0, + "WorkUnitToken": "1234eMAk4kLO4umqEL4Z5WuxL04AXwABABVhd3MtY3J5cHRvLXB1YmxpYy1rZXkAREEwYm9QbkhINmFYTWphbmMxZW1PQmEyMGlUb0JFbXNlWmRYc0NmckRIR1dmQ0hjY2YzNFdMcmNXb2JGZmhEK0QvZz09AAEAB2F3cy1rbXMAS2Fybjphd3M6a21zOnVzLWVhc3QtMTo3MDkxNTAyNDkyNDk6a2V5L2VmYmI3NDUyLTY1MjYtNGJiOS1iNmZhLTEzYzJkMTM3MmU2OQC4AQIBAHg6eWNF2ZrQATTAuPDJVCEAQSyIF67vX+f88jzGrYq22gE6jkQlpOB+Oet2eqNUmFudAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMCOEWRdafowek3RUmAgEQgDsYZZE84nnnbNmvsqCBPLh19nLQ10mUWOg9IfiaOwefEn6L920V0x1LpJACo7MtIBLXnbGcz2dFDZjFygIAAAAADAAAEAAAAAAAAAAAAAAAAAAQSQf8XDSI5pvR4Fx4JsrS/////wAAAAEAAAAAAAAAAAAAAAEAAACX3/w5h75QAPomfKH+cyEKYU1yccUmBl+VSojiGOtdsUk7vcjYXUUboYm3dvqRqX2s4gROMOn+Ij8R0/8jYmnHkpvyAFNVRPyETyIKg7k5Z9+5I1c2d3446Jw/moWGGxjH8AEG9h27ytmOhozxDOEi/F2ZoXz6wlGDfGUo/2WxCkYOhTyNaw6TM+7drTM7yrW4iNVLUM0LX0xnFjIAhLhooWJek6vjQZUAZzBlAjBH8okRtYP8R7AY2Wls/hqFBhG0V4l42AC0LxsuZbMQrE2SzWZUZ0E9Uew7/n0cyX4CMQDR79INyv4ysMByW9kKGGKyba+cCNklExMR+btBQBmMuB2fMSdmQXe9umX8Ux8XCo4=" + }], + "QueryId": "1234273f-4a62-4cda-8d98-69615ee8be9b" + } + +For more information, see `Transactional data operations `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/grant-permissions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/grant-permissions.rst new file mode 100644 index 000000000..a12811ec7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/grant-permissions.rst @@ -0,0 +1,165 @@ +**Example 1: To grant permissions to the principal on resources using LF-Tags** + +The following ``grant-permissions`` example grants ALL permissions to the principal on database resource that matches the LF-Tag policy. :: + + aws lakeformation grant-permissions \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "CatalogId": "123456789111", + "Principal": { + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:user/lf-admin" + }, + "Resource": { + "LFTagPolicy": { + "CatalogId": "123456789111", + "ResourceType": "DATABASE", + "Expression": [{ + "TagKey": "usergroup", + "TagValues": [ + "analyst", + "developer" + ] + }] + } + }, + "Permissions": [ + "ALL" + ], + "PermissionsWithGrantOption": [ + "ALL" + ] + } + +This command produces no output. + +For more information, see `Granting and revoking permissions on Data Catalog resources `__ in the *AWS Lake Formation Developer Guide*. + +**Example 2: To grant column level permissions to the principal** + +The following ``grant-permissions`` example grants permission to select specific column to the principal. :: + + aws lakeformation grant-permissions \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "CatalogId": "123456789111", + "Principal": { + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:user/lf-developer" + }, + "Resource": { + "TableWithColumns": { + "CatalogId": "123456789111", + "ColumnNames": ["p_end_date_sk"], + "DatabaseName": "tpc", + "Name": "dl_tpc_promotion" + } + }, + "Permissions": [ + "SELECT" + ], + "PermissionsWithGrantOption": [] + } + +This command produces no output. + +For more information, see `Granting and revoking permissions on Data Catalog resources `__ in the *AWS Lake Formation Developer Guide*. + +**Example 3: To grant table permissions to the principal** + +The following ``grant-permissions`` example grants select permission on all tables of given database to the principal. :: + + aws lakeformation grant-permissions \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "CatalogId": "123456789111", + "Principal": { + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:user/lf-developer" + }, + "Resource": { + "Table": { + "CatalogId": "123456789111", + "DatabaseName": "tpc", + "TableWildcard": {} + } + }, + "Permissions": [ + "SELECT" + ], + "PermissionsWithGrantOption": [] + } + +This command produces no output. + +For more information, see `Granting and revoking permissions on Data Catalog resources `__ in the *AWS Lake Formation Developer Guide*. + +**Example 4: To grant permissions on LF-Tags to the principal** + +The following ``grant-permissions`` example grants associate permission on LF-Tags to the principal. :: + + aws lakeformation grant-permissions \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "CatalogId": "123456789111", + "Principal": { + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:user/lf-developer" + }, + "Resource": { + "LFTag": { + "CatalogId": "123456789111", + "TagKey": "category", + "TagValues": [ + "private", "public" + ] + } + + }, + "Permissions": [ + "ASSOCIATE" + ], + "PermissionsWithGrantOption": [] + } + +This command produces no output. + +For more information, see `Granting and revoking permissions on Data Catalog resources `__ in the *AWS Lake Formation Developer Guide*. + +**Example 5: To grant permissions on data locations to the principal** + +The following ``grant-permissions`` example grants permission on data location to the principal. :: + + aws lakeformation grant-permissions \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "CatalogId": "123456789111", + "Principal": { + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:user/lf-developer" + }, + "Resource": { + "DataLocation": { + "CatalogId": "123456789111", + "ResourceArn": "arn:aws:s3:::lf-data-lake-123456789111" + } + }, + "Permissions": [ + "DATA_LOCATION_ACCESS" + ], + "PermissionsWithGrantOption": [] + } + +This command produces no output. + +For more information, see `Granting and revoking permissions on Data Catalog resources `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/list-data-cells-filter.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/list-data-cells-filter.rst new file mode 100644 index 000000000..9c671d6bf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/list-data-cells-filter.rst @@ -0,0 +1,59 @@ +**To list data cell filters** + +The following ``list-data-cells-filter`` example list data cell filter for given table. :: + + aws lakeformation list-data-cells-filter \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "MaxResults": 2, + "Table": { + "CatalogId": "123456789111", + "DatabaseName": "tpc", + "Name": "dl_tpc_promotion" + } + } + +Output:: + + { + "DataCellsFilters": [{ + "TableCatalogId": "123456789111", + "DatabaseName": "tpc", + "TableName": "dl_tpc_promotion", + "Name": "developer_promotion", + "RowFilter": { + "FilterExpression": "p_promo_name='ese'" + }, + "ColumnNames": [ + "p_channel_details", + "p_start_date_sk", + "p_purpose", + "p_promo_id", + "p_promo_name", + "p_end_date_sk", + "p_discount_active" + ] + }, + { + "TableCatalogId": "123456789111", + "DatabaseName": "tpc", + "TableName": "dl_tpc_promotion", + "Name": "developer_promotion_allrows", + "RowFilter": { + "FilterExpression": "TRUE", + "AllRowsWildcard": {} + }, + "ColumnNames": [ + "p_channel_details", + "p_start_date_sk", + "p_promo_name" + ] + } + ], + "NextToken": "2MDA2MTgwNiwibmFub3MiOjE0MDAwMDAwMH19" + } + +For more information, see `Data filtering and cell-level security in Lake Formation `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/list-permissions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/list-permissions.rst new file mode 100644 index 000000000..687a012fc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/list-permissions.rst @@ -0,0 +1,206 @@ +**Example 1: To retrieve list of principal permissions on the resource** + +The following ``list-permissions`` example returns a list of principal permissions on the database resources. :: + + aws lakeformation list-permissions \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "CatalogId": "123456789111", + "ResourceType": "DATABASE", + "MaxResults": 2 + } + +Output:: + + { + "PrincipalResourcePermissions": [{ + "Principal": { + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:user/lf-campaign-manager" + }, + "Resource": { + "Database": { + "CatalogId": "123456789111", + "Name": "tpc" + } + }, + "Permissions": [ + "DESCRIBE" + ], + "PermissionsWithGrantOption": [] + }], + "NextToken": "E5SlJDSTZleUp6SWpvaU9UQTNORE0zTXpFeE5Ua3pJbjE5TENKbGVIQnBjbUYwYVc5dUlqcDdJbk5sWTI5dVpITWlPakUyTm" + } + +For more information, see `Managing Lake Formation permissions `__ in the *AWS Lake Formation Developer Guide*. + +**Example 2: To retrieve list of principal permissions on the table with data filters** + +The following ``list-permissions`` example list the permissions on the table with related data filters granted to the principal. :: + + aws lakeformation list-permissions \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "CatalogId": "123456789111", + "Resource": { + "Table": { + "CatalogId": "123456789111", + "DatabaseName": "tpc", + "Name": "dl_tpc_customer" + } + }, + "IncludeRelated": "TRUE", + "MaxResults": 10 + } + +Output:: + + { + "PrincipalResourcePermissions": [{ + "Principal": { + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:role/Admin" + }, + "Resource": { + "Table": { + "CatalogId": "123456789111", + "DatabaseName": "customer", + "Name": "customer_invoice" + } + }, + "Permissions": [ + "ALL", + "ALTER", + "DELETE", + "DESCRIBE", + "DROP", + "INSERT" + ], + "PermissionsWithGrantOption": [ + "ALL", + "ALTER", + "DELETE", + "DESCRIBE", + "DROP", + "INSERT" + ] + }, + { + "Principal": { + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:role/Admin" + }, + "Resource": { + "TableWithColumns": { + "CatalogId": "123456789111", + "DatabaseName": "customer", + "Name": "customer_invoice", + "ColumnWildcard": {} + } + }, + "Permissions": [ + "SELECT" + ], + "PermissionsWithGrantOption": [ + "SELECT" + ] + }, + { + "Principal": { + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:role/Admin" + }, + "Resource": { + "DataCellsFilter": { + "TableCatalogId": "123456789111", + "DatabaseName": "customer", + "TableName": "customer_invoice", + "Name": "dl_us_customer" + } + }, + "Permissions": [ + "DESCRIBE", + "SELECT", + "DROP" + ], + "PermissionsWithGrantOption": [] + } + ], + "NextToken": "VyeUFjY291bnRQZXJtaXNzaW9ucyI6ZmFsc2V9" + } + +For more information, see `Managing Lake Formation permissions `__ in the *AWS Lake Formation Developer Guide*. + +**Example 3: To retrieve list of principal permissions on the LF-Tags** + +The following ``list-permissions`` example list the permissions on the LF-Tags granted to the principal. :: + + aws lakeformation list-permissions \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "CatalogId": "123456789111", + "Resource": { + "LFTag": { + "CatalogId": "123456789111", + "TagKey": "category", + "TagValues": [ + "private" + ] + } + }, + "MaxResults": 10 + } + +Output:: + + { + "PrincipalResourcePermissions": [{ + "Principal": { + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:user/lf-admin" + }, + "Resource": { + "LFTag": { + "CatalogId": "123456789111", + "TagKey": "category", + "TagValues": [ + "*" + ] + } + }, + "Permissions": [ + "DESCRIBE" + ], + "PermissionsWithGrantOption": [ + "DESCRIBE" + ] + }, + { + "Principal": { + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:user/lf-admin" + }, + "Resource": { + "LFTag": { + "CatalogId": "123456789111", + "TagKey": "category", + "TagValues": [ + "*" + ] + } + }, + "Permissions": [ + "ASSOCIATE" + ], + "PermissionsWithGrantOption": [ + "ASSOCIATE" + ] + } + ], + "NextToken": "EJwY21GMGFXOXVJanA3SW5Ocm1pc3Npb25zIjpmYWxzZX0=" + } + +For more information, see `Managing Lake Formation permissions `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/list-resources.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/list-resources.rst new file mode 100644 index 000000000..c81b04a38 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/list-resources.rst @@ -0,0 +1,37 @@ +**To lists the resources managed by the Lake Formation** + +The following ``list-resources`` example lists the resources matching the condition that is managed by the Lake Formation. :: + + aws lakeformation list-resources \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "FilterConditionList": [{ + "Field": "ROLE_ARN", + "ComparisonOperator": "CONTAINS", + "StringValueList": [ + "123456789111" + ] + }], + "MaxResults": 10 + } + +Output:: + + { + "ResourceInfoList": [{ + "ResourceArn": "arn:aws:s3:::lf-data-lake-123456789111", + "RoleArn": "arn:aws:iam::123456789111:role/LF-GlueServiceRole", + "LastModified": "2022-07-21T02:12:46.669000+00:00" + }, + { + "ResourceArn": "arn:aws:s3:::lf-emr-test-123456789111", + "RoleArn": "arn:aws:iam::123456789111:role/EMRLFS3Role", + "LastModified": "2022-07-29T16:22:03.211000+00:00" + } + ] + } + +For more information, see `Managing Lake Formation permissions `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/list-transactions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/list-transactions.rst new file mode 100644 index 000000000..021f98d09 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/list-transactions.rst @@ -0,0 +1,41 @@ +**To list all transactions details** + +The following ``list-transactions`` example returns metadata about transactions and their status. :: + + aws lakeformation list-transactions \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "CatalogId": "123456789111", + "StatusFilter": "ALL", + "MaxResults": 3 + } + +Output:: + + { + "Transactions": [{ + "TransactionId": "1234569f08804cb790d950d4d0fe485e", + "TransactionStatus": "committed", + "TransactionStartTime": "2022-08-10T14:32:29.220000+00:00", + "TransactionEndTime": "2022-08-10T14:32:33.751000+00:00" + }, + { + "TransactionId": "12345972ca8347b89825e33c5774aec4", + "TransactionStatus": "committed", + "TransactionStartTime": "2022-08-10T14:29:04.046000+00:00", + "TransactionEndTime": "2022-08-10T14:29:09.681000+00:00" + }, + { + "TransactionId": "12345daf6cb047dbba8ad9b0414613b2", + "TransactionStatus": "committed", + "TransactionStartTime": "2022-08-10T13:56:51.261000+00:00", + "TransactionEndTime": "2022-08-10T13:56:51.547000+00:00" + } + ], + "NextToken": "77X1ebypsI7os+X2lhHsZLGNCDK3nNGpwRdFpicSOHgcX1/QMoniUAKcpR3kj3ts3PVdMA==" + } + +For more information, see `Reading from and writing to the data lake within transactions `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/put-data-lake-settings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/put-data-lake-settings.rst new file mode 100644 index 000000000..5f9ba5a4c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/put-data-lake-settings.rst @@ -0,0 +1,29 @@ +**To set AWS Lake Formation-managed data lake settings** + +The following ``put-data-lake-settings`` example sets the list of data lake administrators and other data lake settings. :: + + aws lakeformation put-data-lake-settings \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "DataLakeSettings": { + "DataLakeAdmins": [{ + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:user/lf-admin" + } + ], + "CreateDatabaseDefaultPermissions": [], + "CreateTableDefaultPermissions": [], + "TrustedResourceOwners": [], + "AllowExternalDataFiltering": true, + "ExternalDataFilteringAllowList": [{ + "DataLakePrincipalIdentifier ": "123456789111" + }], + "AuthorizedSessionTagValueList": ["Amazon EMR"] + } + } + +This command produces no output. + +For more information, see `Changing the default security settings for your data lake `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/register-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/register-resource.rst new file mode 100644 index 000000000..659678176 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/register-resource.rst @@ -0,0 +1,36 @@ +**Example 1: To register data lake storage using Service Linked Role** + +The following ``register-resource`` example registers the resource as managed by the Lake Formation using Service linked role. :: + + aws lakeformation register-resource \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "ResourceArn": "arn:aws:s3:::lf-emr-athena-result-123", + "UseServiceLinkedRole": true + } + +This command produces no output. + +For more information, see `Adding an Amazon S3 location to your data lake `__ in the *AWS Lake Formation Developer Guide*. + +**Example 2: To register data lake storage using custom role** + +The following ``register-resource`` example registers the resource as managed by the Lake Formation using custom role. :: + + aws lakeformation register-resource \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "ResourceArn": "arn:aws:s3:::lf-emr-athena-result-123", + "UseServiceLinkedRole": false, + "RoleArn": "arn:aws:iam::123456789111:role/LF-GlueServiceRole" + } + +This command produces no output. + +For more information, see `Adding an Amazon S3 location to your data lake `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/remove-lf-tags-from-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/remove-lf-tags-from-resource.rst new file mode 100644 index 000000000..4257d4be5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/remove-lf-tags-from-resource.rst @@ -0,0 +1,34 @@ +**To remove LF-Tag from a resource** + +The following ``remove-lf-tags-from-resource`` example removes the LF-Tag association with the table resource. :: + + aws lakeformation remove-lf-tags-from-resource \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "CatalogId": "123456789111", + "Resource": { + "Table": { + "CatalogId": "123456789111", + "DatabaseName": "tpc", + "Name": "dl_tpc_promotion" + } + }, + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + } + +Output:: + + { + "Failures": [] + } + +For more information, see `Assigning LF-Tags to Data Catalog resources `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/revoke-permissions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/revoke-permissions.rst new file mode 100644 index 000000000..94dfe8b99 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/revoke-permissions.rst @@ -0,0 +1,30 @@ +**To revoke permissions on resources from the principal** + +The following ``revoke-permissions`` example revoke principal access to specific table of a given database. :: + + aws lakeformation revoke-permissions \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "CatalogId": "123456789111", + "Principal": { + "DataLakePrincipalIdentifier": "arn:aws:iam::123456789111:user/lf-developer" + }, + "Resource": { + "Table": { + "CatalogId": "123456789111", + "DatabaseName": "tpc", + "Name": "dl_tpc_promotion" + } + }, + "Permissions": [ + "ALL" + ], + "PermissionsWithGrantOption": [] + } + +This command produces no output. + +For more information, see `Granting and revoking permissions on Data Catalog resources `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/search-databases-by-lf-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/search-databases-by-lf-tags.rst new file mode 100644 index 000000000..5bea8bbb2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/search-databases-by-lf-tags.rst @@ -0,0 +1,39 @@ +**To search on database resources by LFTags** + +The following ``search-databases-by-lf-tags`` example search on database resources matching LFTag expression. :: + + aws lakeformation search-databases-by-lf-tags \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "MaxResults": 1, + "CatalogId": "123456789111", + "Expression": [{ + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + } + +Output:: + + { + "DatabaseList": [{ + "Database": { + "CatalogId": "123456789111", + "Name": "tpc" + }, + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + }] + } + +For more information, see `Viewing the resources that a LF-Tag is assigned to `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/search-tables-by-lf-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/search-tables-by-lf-tags.rst new file mode 100644 index 000000000..ea79d4572 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/search-tables-by-lf-tags.rst @@ -0,0 +1,269 @@ +**To search on table resources by LFTags** + +The following ``search-tables-by-lf-tags`` example search on table resources matching LFTag expression. :: + + aws lakeformation search-tables-by-lf-tags \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "MaxResults": 2, + "CatalogId": "123456789111", + "Expression": [{ + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + } + +Output:: + + { + "NextToken": "c2VhcmNoQWxsVGFnc0luVGFibGVzIjpmYWxzZX0=", + "TableList": [{ + "Table": { + "CatalogId": "123456789111", + "DatabaseName": "tpc", + "Name": "dl_tpc_item" + }, + "LFTagOnDatabase": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }], + "LFTagsOnTable": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }], + "LFTagsOnColumns": [{ + "Name": "i_item_desc", + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + }, + { + "Name": "i_container", + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + }, + { + "Name": "i_wholesale_cost", + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + }, + { + "Name": "i_manufact_id", + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + }, + { + "Name": "i_brand_id", + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + }, + { + "Name": "i_formulation", + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + }, + { + "Name": "i_current_price", + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + }, + { + "Name": "i_size", + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + }, + { + "Name": "i_rec_start_date", + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + }, + { + "Name": "i_manufact", + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + }, + { + "Name": "i_item_sk", + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + }, + { + "Name": "i_manager_id", + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + }, + { + "Name": "i_item_id", + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + }, + { + "Name": "i_class_id", + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + }, + { + "Name": "i_class", + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + }, + { + "Name": "i_category", + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + }, + { + "Name": "i_category_id", + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + }, + { + "Name": "i_brand", + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + }, + { + "Name": "i_units", + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + }, + { + "Name": "i_rec_end_date", + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + }, + { + "Name": "i_color", + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + }, + { + "Name": "i_product_name", + "LFTags": [{ + "CatalogId": "123456789111", + "TagKey": "usergroup", + "TagValues": [ + "developer" + ] + }] + } + ] + }] + } + +For more information, see `Viewing the resources that a LF-Tag is assigned to `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/start-query-planning.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/start-query-planning.rst new file mode 100644 index 000000000..b819dfba0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/start-query-planning.rst @@ -0,0 +1,24 @@ +**To process query statement** + +The following ``start-query-planning`` example submits a request to process a query statement. :: + + aws lakeformation start-query-planning \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "QueryPlanningContext": { + "CatalogId": "012345678901", + "DatabaseName": "tpc" + }, + "QueryString": "select * from dl_tpc_household_demographics_gov where hd_income_band_sk=9" + } + +Output:: + + { + "QueryId": "772a273f-4a62-4cda-8d98-69615ee8be9b" + } + +For more information, see `Reading from and writing to the data lake within transactions `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/start-transaction.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/start-transaction.rst new file mode 100644 index 000000000..b75a4bd20 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/start-transaction.rst @@ -0,0 +1,14 @@ +**To start new transaction** + +The following ``start-transaction`` example starts a new transaction and returns its transaction ID. :: + + aws lakeformation start-transaction \ + --transaction-type = 'READ_AND_WRITE' + +Output:: + + { + "TransactionId": "b014d972ca8347b89825e33c5774aec4" + } + +For more information, see `Reading from and writing to the data lake within transactions `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/update-lf-tag.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/update-lf-tag.rst new file mode 100644 index 000000000..c7bf1ce97 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/update-lf-tag.rst @@ -0,0 +1,12 @@ +**To update LF-Tag definition** + +The following ``update-lf-tag`` example updates LF-Tag definition. :: + + aws lakeformation update-lf-tag \ + --catalog-id '123456789111' \ + --tag-key 'usergroup' \ + --tag-values-to-add '["admin"]' + +This command produces no output. + +For more information, see `Managing LF-Tags for metadata access control `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/update-table-objects.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/update-table-objects.rst new file mode 100644 index 000000000..552a5b77b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lakeformation/update-table-objects.rst @@ -0,0 +1,26 @@ +**To modify objects of governed table** + +The following ``update-table-objects`` example adds provided S3 objects to the specified governed table. :: + + aws lakeformation update-table-objects \ + --cli-input-json file://input.json + +Contents of ``input.json``:: + + { + "CatalogId": "012345678901", + "DatabaseName": "tpc", + "TableName": "dl_tpc_household_demographics_gov", + "TransactionId": "12347a9f75424b9b915f6ff201d2a190", + "WriteOperations": [{ + "AddObject": { + "Uri": "s3://lf-data-lake-012345678901/target/dl_tpc_household_demographics_gov/run-unnamed-1-part-block-0-r-00000-snappy-ff26b17504414fe88b302cd795eabd00.parquet", + "ETag": "1234ab1fc50a316b149b4e1f21a73800", + "Size": 42200 + } + }] + } + +This command produces no output. + +For more information, see `Reading from and writing to the data lake within transactions `__ in the *AWS Lake Formation Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/add-layer-version-permission.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/add-layer-version-permission.rst new file mode 100755 index 000000000..8d89edef3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/add-layer-version-permission.rst @@ -0,0 +1,28 @@ +**To add permissions to a layer version** + +The following ``add-layer-version-permission`` example grants permission for the specified account to use version 1 of the layer ``my-layer``. :: + + aws lambda add-layer-version-permission \ + --layer-name my-layer \ + --statement-id xaccount \ + --action lambda:GetLayerVersion \ + --principal 123456789012 \ + --version-number 1 + +Output:: + + { + "RevisionId": "35d87451-f796-4a3f-a618-95a3671b0a0c", + "Statement": + { + "Sid":"xaccount", + "Effect":"Allow", + "Principal":{ + "AWS":"arn:aws:iam::210987654321:root" + }, + "Action":"lambda:GetLayerVersion", + "Resource":"arn:aws:lambda:us-east-2:123456789012:layer:my-layer:1" + } + } + +For more information, see `AWS Lambda Layers `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/add-permission.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/add-permission.rst new file mode 100755 index 000000000..1fad2fb2b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/add-permission.rst @@ -0,0 +1,26 @@ +**To add permissions to an existing Lambda function** + +The following ``add-permission`` example grants the Amazon SNS service permission to invoke a function named ``my-function``. :: + + aws lambda add-permission \ + --function-name my-function \ + --action lambda:InvokeFunction \ + --statement-id sns \ + --principal sns.amazonaws.com + +Output:: + + { + "Statement": + { + "Sid":"sns", + "Effect":"Allow", + "Principal":{ + "Service":"sns.amazonaws.com" + }, + "Action":"lambda:InvokeFunction", + "Resource":"arn:aws:lambda:us-east-2:123456789012:function:my-function" + } + } + +For more information, see `Using Resource-based Policies for AWS Lambda `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/create-alias.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/create-alias.rst new file mode 100755 index 000000000..fa5828947 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/create-alias.rst @@ -0,0 +1,21 @@ +**To create an alias for a Lambda function** + +The following ``create-alias`` example creates an alias named ``LIVE`` that points to version 1 of the ``my-function`` Lambda function. :: + + aws lambda create-alias \ + --function-name my-function \ + --description "alias for live version of function" \ + --function-version 1 \ + --name LIVE + +Output:: + + { + "FunctionVersion": "1", + "Name": "LIVE", + "AliasArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:LIVE", + "RevisionId": "873282ed-4cd3-4dc8-a069-d0c647e470c6", + "Description": "alias for live version of function" + } + +For more information, see `Configuring AWS Lambda Function Aliases `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/create-event-source-mapping.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/create-event-source-mapping.rst new file mode 100755 index 000000000..5be7e5e71 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/create-event-source-mapping.rst @@ -0,0 +1,22 @@ +**To create a mapping between an event source and an AWS Lambda function** + +The following ``create-event-source-mapping`` example creates a mapping between an SQS queue and the ``my-function`` Lambda function. :: + + aws lambda create-event-source-mapping \ + --function-name my-function \ + --batch-size 5 \ + --event-source-arn arn:aws:sqs:us-west-2:123456789012:mySQSqueue + +Output:: + + { + "UUID": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", + "StateTransitionReason": "USER_INITIATED", + "LastModified": 1569284520.333, + "BatchSize": 5, + "State": "Creating", + "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", + "EventSourceArn": "arn:aws:sqs:us-west-2:123456789012:mySQSqueue" + } + +For more information, see `AWS Lambda Event Source Mapping `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/create-function.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/create-function.rst new file mode 100755 index 000000000..b7ea79426 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/create-function.rst @@ -0,0 +1,37 @@ +**To create a Lambda function** + +The following ``create-function`` example creates a Lambda function named ``my-function``. :: + + aws lambda create-function \ + --function-name my-function \ + --runtime nodejs22.x \ + --zip-file fileb://my-function.zip \ + --handler my-function.handler \ + --role arn:aws:iam::123456789012:role/service-role/MyTestFunction-role-tges6bf4 + +Contents of ``my-function.zip``:: + + This file is a deployment package that contains your function code and any dependencies. + +Output:: + + { + "TracingConfig": { + "Mode": "PassThrough" + }, + "CodeSha256": "PFn4S+er27qk+UuZSTKEQfNKG/XNn7QJs90mJgq6oH8=", + "FunctionName": "my-function", + "CodeSize": 308, + "RevisionId": "873282ed-4cd3-4dc8-a069-d0c647e470c6", + "MemorySize": 128, + "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", + "Version": "$LATEST", + "Role": "arn:aws:iam::123456789012:role/service-role/MyTestFunction-role-zgur6bf4", + "Timeout": 3, + "LastModified": "2025-10-14T22:26:11.234+0000", + "Handler": "my-function.handler", + "Runtime": "nodejs22.x", + "Description": "" + } + +For more information, see `Configure Lambda function memory `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/delete-alias.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/delete-alias.rst new file mode 100755 index 000000000..5ae36b9d5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/delete-alias.rst @@ -0,0 +1,11 @@ +**To delete an alias of a Lambda function** + +The following ``delete-alias`` example deletes the alias named ``LIVE`` from the ``my-function`` Lambda function. :: + + aws lambda delete-alias \ + --function-name my-function \ + --name LIVE + +This command produces no output. + +For more information, see `Configuring AWS Lambda Function Aliases `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/delete-event-source-mapping.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/delete-event-source-mapping.rst new file mode 100755 index 000000000..636edc0b1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/delete-event-source-mapping.rst @@ -0,0 +1,20 @@ +**To delete the mapping between an event source and an AWS Lambda function** + +The following ``delete-event-source-mapping`` example deletes the mapping between an SQS queue and the ``my-function`` Lambda function. :: + + aws lambda delete-event-source-mapping \ + --uuid a1b2c3d4-5678-90ab-cdef-11111EXAMPLE + +Output:: + + { + "UUID": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", + "StateTransitionReason": "USER_INITIATED", + "LastModified": 1569285870.271, + "BatchSize": 5, + "State": "Deleting", + "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", + "EventSourceArn": "arn:aws:sqs:us-west-2:123456789012:mySQSqueue" + } + +For more information, see `AWS Lambda Event Source Mapping `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/delete-function-concurrency.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/delete-function-concurrency.rst new file mode 100755 index 000000000..d4235115e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/delete-function-concurrency.rst @@ -0,0 +1,10 @@ +**To remove the reserved concurrent execution limit from a function** + +The following ``delete-function-concurrency`` example deletes the reserved concurrent execution limit from the ``my-function`` function. :: + + aws lambda delete-function-concurrency \ + --function-name my-function + +This command produces no output. + +For more information, see `Reserving Concurrency for a Lambda Function `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/delete-function-event-invoke-config.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/delete-function-event-invoke-config.rst new file mode 100755 index 000000000..89fd073d9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/delete-function-event-invoke-config.rst @@ -0,0 +1,5 @@ +**To delete an asynchronous invocation configuration** + +The following ``delete-function-event-invoke-config`` example deletes the asynchronous invocation configuration for the ``GREEN`` alias of the specified function. :: + + aws lambda delete-function-event-invoke-config --function-name my-function:GREEN diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/delete-function.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/delete-function.rst new file mode 100755 index 000000000..bbe8693a5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/delete-function.rst @@ -0,0 +1,28 @@ +**Example 1: To delete a Lambda function by function name** + +The following ``delete-function`` example deletes the Lambda function named ``my-function`` by specifying the function's name. :: + + aws lambda delete-function \ + --function-name my-function + +This command produces no output. + +**Example 2: To delete a Lambda function by function ARN** + +The following ``delete-function`` example deletes the Lambda function named ``my-function`` by specifying the function's ARN. :: + + aws lambda delete-function \ + --function-name arn:aws:lambda:us-west-2:123456789012:function:my-function + +This command produces no output. + +**Example 3: To delete a Lambda function by partial function ARN** + +The following ``delete-function`` example deletes the Lambda function named ``my-function`` by specifying the function's partial ARN. :: + + aws lambda delete-function \ + --function-name 123456789012:function:my-function + +This command produces no output. + +For more information, see `AWS Lambda Function Configuration `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/delete-layer-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/delete-layer-version.rst new file mode 100755 index 000000000..3f96be77c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/delete-layer-version.rst @@ -0,0 +1,11 @@ +**To delete a version of a Lambda layer** + +The following ``delete-layer-version`` example deletes version 2 of the layer named ``my-layer``. :: + + aws lambda delete-layer-version \ + --layer-name my-layer \ + --version-number 2 + +This command produces no output. + +For more information, see `AWS Lambda Layers `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/delete-provisioned-concurrency-config.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/delete-provisioned-concurrency-config.rst new file mode 100755 index 000000000..2d3f26fc2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/delete-provisioned-concurrency-config.rst @@ -0,0 +1,7 @@ +**To delete a provisioned concurrency configuration** + +The following ``delete-provisioned-concurrency-config`` example deletes the provisioned concurrency configuration for the ``GREEN`` alias of the specified function. :: + + aws lambda delete-provisioned-concurrency-config \ + --function-name my-function \ + --qualifier GREEN diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-account-settings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-account-settings.rst new file mode 100755 index 000000000..8a67f762a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-account-settings.rst @@ -0,0 +1,23 @@ +**To retrieve details about your account in an AWS Region** + +The following ``get-account-settings`` example displays the Lambda limits and usage information for your account. :: + + aws lambda get-account-settings + +Output:: + + { + "AccountLimit": { + "CodeSizeUnzipped": 262144000, + "UnreservedConcurrentExecutions": 1000, + "ConcurrentExecutions": 1000, + "CodeSizeZipped": 52428800, + "TotalCodeSize": 80530636800 + }, + "AccountUsage": { + "FunctionCount": 4, + "TotalCodeSize": 9426 + } + } + +For more information, see `AWS Lambda Limits `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-alias.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-alias.rst new file mode 100755 index 000000000..61ce26996 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-alias.rst @@ -0,0 +1,19 @@ +**To retrieve details about a function alias** + +The following ``get-alias`` example displays details for the alias named ``LIVE`` on the ``my-function`` Lambda function. :: + + aws lambda get-alias \ + --function-name my-function \ + --name LIVE + +Output:: + + { + "FunctionVersion": "3", + "Name": "LIVE", + "AliasArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:LIVE", + "RevisionId": "594f41fb-b85f-4c20-95c7-6ca5f2a92c93", + "Description": "alias for live version of function" + } + +For more information, see `Configuring AWS Lambda Function Aliases `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-event-source-mapping.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-event-source-mapping.rst new file mode 100755 index 000000000..b1f30b59e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-event-source-mapping.rst @@ -0,0 +1,20 @@ +**To retrieve details about an event source mapping** + +The following ``get-event-source-mapping`` example displays the details for the mapping between an SQS queue and the ``my-function`` Lambda function. :: + + aws lambda get-event-source-mapping \ + --uuid "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" + +Output:: + + { + "UUID": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", + "StateTransitionReason": "USER_INITIATED", + "LastModified": 1569284520.333, + "BatchSize": 5, + "State": "Enabled", + "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", + "EventSourceArn": "arn:aws:sqs:us-west-2:123456789012:mySQSqueue" + } + +For more information, see `AWS Lambda Event Source Mapping `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-function-concurrency.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-function-concurrency.rst new file mode 100755 index 000000000..d647190ec --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-function-concurrency.rst @@ -0,0 +1,12 @@ +**To view the reserved concurrency setting for a function** + +The following ``get-function-concurrency`` example retrieves the reserved concurrency setting for the specified function. :: + + aws lambda get-function-concurrency \ + --function-name my-function + +Output:: + + { + "ReservedConcurrentExecutions": 250 + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-function-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-function-configuration.rst new file mode 100755 index 000000000..5fe026d1a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-function-configuration.rst @@ -0,0 +1,34 @@ +**To retrieve the version-specific settings of a Lambda function** + +The following ``get-function-configuration`` example displays the settings for version 2 of the ``my-function`` function. :: + + aws lambda get-function-configuration \ + --function-name my-function:2 + +Output:: + + { + "FunctionName": "my-function", + "LastModified": "2019-09-26T20:28:40.438+0000", + "RevisionId": "e52502d4-9320-4688-9cd6-152a6ab7490d", + "MemorySize": 256, + "Version": "2", + "Role": "arn:aws:iam::123456789012:role/service-role/my-function-role-uy3l9qyq", + "Timeout": 3, + "Runtime": "nodejs10.x", + "TracingConfig": { + "Mode": "PassThrough" + }, + "CodeSha256": "5tT2qgzYUHaqwR716pZ2dpkn/0J1FrzJmlKidWoaCgk=", + "Description": "", + "VpcConfig": { + "SubnetIds": [], + "VpcId": "", + "SecurityGroupIds": [] + }, + "CodeSize": 304, + "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:2", + "Handler": "index.handler" + } + +For more information, see `AWS Lambda Function Configuration `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-function-event-invoke-config.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-function-event-invoke-config.rst new file mode 100755 index 000000000..ac967b925 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-function-event-invoke-config.rst @@ -0,0 +1,21 @@ +**To view an asynchronous invocation configuration** + +The following ``get-function-event-invoke-config`` example retrieves the asynchronous invocation configuration for the ``BLUE`` alias of the specified function. :: + + aws lambda get-function-event-invoke-config \ + --function-name my-function:BLUE + +Output:: + + { + "LastModified": 1577824396.653, + "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:BLUE", + "MaximumRetryAttempts": 0, + "MaximumEventAgeInSeconds": 3600, + "DestinationConfig": { + "OnSuccess": {}, + "OnFailure": { + "Destination": "arn:aws:sqs:us-east-2:123456789012:failed-invocations" + } + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-function.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-function.rst new file mode 100755 index 000000000..adc3fbc08 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-function.rst @@ -0,0 +1,43 @@ +**To retrieve information about a function** + +The following ``get-function`` example displays information about the ``my-function`` function. :: + + aws lambda get-function \ + --function-name my-function + +Output:: + + { + "Concurrency": { + "ReservedConcurrentExecutions": 100 + }, + "Code": { + "RepositoryType": "S3", + "Location": "https://awslambda-us-west-2-tasks.s3.us-west-2.amazonaws.com/snapshots/123456789012/my-function..." + }, + "Configuration": { + "TracingConfig": { + "Mode": "PassThrough" + }, + "Version": "$LATEST", + "CodeSha256": "5tT2qgzYUHoqwR616pZ2dpkn/0J1FrzJmlKidWaaCgk=", + "FunctionName": "my-function", + "VpcConfig": { + "SubnetIds": [], + "VpcId": "", + "SecurityGroupIds": [] + }, + "MemorySize": 128, + "RevisionId": "28f0fb31-5c5c-43d3-8955-03e76c5c1075", + "CodeSize": 304, + "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", + "Handler": "index.handler", + "Role": "arn:aws:iam::123456789012:role/service-role/helloWorldPython-role-uy3l9qyq", + "Timeout": 3, + "LastModified": "2025-09-24T18:20:35.054+0000", + "Runtime": "nodejs22.x", + "Description": "" + } + } + +For more information, see `Configure Lambda function memory `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-layer-version-by-arn.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-layer-version-by-arn.rst new file mode 100755 index 000000000..3d589e820 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-layer-version-by-arn.rst @@ -0,0 +1,27 @@ +**To retrieve information about a Lambda layer version** + +The following ``get-layer-version-by-arn`` example displays information about the layer version with the specified Amazon Resource Name (ARN). :: + + aws lambda get-layer-version-by-arn \ + --arn "arn:aws:lambda:us-west-2:123456789012:layer:AWSLambda-Python311-SciPy1x:2" + +Output:: + + { + "LayerVersionArn": "arn:aws:lambda:us-west-2:123456789012:layer:AWSLambda-Python311-SciPy1x:2", + "Description": "AWS Lambda SciPy layer for Python 3.11 (scipy-1.1.0, numpy-1.15.4) https://github.com/scipy/scipy/releases/tag/v1.1.0 https://github.com/numpy/numpy/releases/tag/v1.15.4", + "CreatedDate": "2023-10-12T10:09:38.398+0000", + "LayerArn": "arn:aws:lambda:us-west-2:123456789012:layer:AWSLambda-Python311-SciPy1x", + "Content": { + "CodeSize": 41784542, + "CodeSha256": "GGmv8ocUw4cly0T8HL0Vx/f5V4RmSCGNjDIslY4VskM=", + "Location": "https://awslambda-us-west-2-layers.s3.us-west-2.amazonaws.com/snapshots/123456789012/..." + }, + "Version": 2, + "CompatibleRuntimes": [ + "python3.11" + ], + "LicenseInfo": "SciPy: https://github.com/scipy/scipy/blob/main/LICENSE.txt, NumPy: https://github.com/numpy/numpy/blob/main/LICENSE.txt" + } + +For more information, see `AWS Lambda Layers `__ in the *AWS Lambda Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-layer-version-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-layer-version-policy.rst new file mode 100755 index 000000000..450bfb4ac --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-layer-version-policy.rst @@ -0,0 +1,29 @@ +**To retrieve the permissions policy for a Lambda layer version** + +The following ``get-layer-version-policy`` example displays policy information about version 1 for the layer named ``my-layer``. :: + + aws lambda get-layer-version-policy \ + --layer-name my-layer \ + --version-number 1 + +Output:: + + { + "Policy": { + "Version":"2012-10-17", + "Id":"default", + "Statement": + [ + { + "Sid":"xaccount", + "Effect":"Allow", + "Principal": {"AWS":"arn:aws:iam::123456789012:root"}, + "Action":"lambda:GetLayerVersion", + "Resource":"arn:aws:lambda:us-west-2:123456789012:layer:my-layer:1" + } + ] + }, + "RevisionId": "c68f21d2-cbf0-4026-90f6-1375ee465cd0" + } + +For more information, see `AWS Lambda Layers `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-layer-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-layer-version.rst new file mode 100755 index 000000000..690f9e26c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-layer-version.rst @@ -0,0 +1,29 @@ +**To retrieve information about a Lambda layer version** + +The following ``get-layer-version`` example displays information for version 1 of the layer named ``my-layer``. :: + + aws lambda get-layer-version \ + --layer-name my-layer \ + --version-number 1 + +Output:: + + { + "Content": { + "Location": "https://awslambda-us-east-2-layers.s3.us-east-2.amazonaws.com/snapshots/123456789012/my-layer-4aaa2fbb-ff77-4b0a-ad92-5b78a716a96a?versionId=27iWyA73cCAYqyH...", + "CodeSha256": "tv9jJO+rPbXUUXuRKi7CwHzKtLDkDRJLB3cC3Z/ouXo=", + "CodeSize": 169 + }, + "LayerArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer", + "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:1", + "Description": "My Python layer", + "CreatedDate": "2018-11-14T23:03:52.894+0000", + "Version": 1, + "LicenseInfo": "MIT", + "CompatibleRuntimes": [ + "python3.10", + "python3.11" + ] + } + +For more information, see `AWS Lambda Layers `__ in the *AWS Lambda Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-policy.rst new file mode 100755 index 000000000..13eae59b0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-policy.rst @@ -0,0 +1,28 @@ +**To retrieve the resource-based IAM policy for a function, version, or alias** + +The following ``get-policy`` example displays policy information about the ``my-function`` Lambda function. :: + + aws lambda get-policy \ + --function-name my-function + +Output:: + + { + "Policy": { + "Version":"2012-10-17", + "Id":"default", + "Statement": + [ + { + "Sid":"iot-events", + "Effect":"Allow", + "Principal": {"Service":"iotevents.amazonaws.com"}, + "Action":"lambda:InvokeFunction", + "Resource":"arn:aws:lambda:us-west-2:123456789012:function:my-function" + } + ] + }, + "RevisionId": "93017fc9-59cb-41dc-901b-4845ce4bf668" + } + +For more information, see `Using Resource-based Policies for AWS Lambda `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-provisioned-concurrency-config.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-provisioned-concurrency-config.rst new file mode 100755 index 000000000..c7dac6a51 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/get-provisioned-concurrency-config.rst @@ -0,0 +1,17 @@ +**To view a provisioned concurrency configuration** + +The following ``get-provisioned-concurrency-config`` example displays details for the provisioned concurrency configuration for the ``BLUE`` alias of the specified function. :: + + aws lambda get-provisioned-concurrency-config \ + --function-name my-function \ + --qualifier BLUE + +Output:: + + { + "RequestedProvisionedConcurrentExecutions": 100, + "AvailableProvisionedConcurrentExecutions": 100, + "AllocatedProvisionedConcurrentExecutions": 100, + "Status": "READY", + "LastModified": "2019-12-31T20:28:49+0000" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/invoke.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/invoke.rst new file mode 100755 index 000000000..6f50021ce --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/invoke.rst @@ -0,0 +1,37 @@ +**Example 1: To invoke a Lambda function synchronously** + +The following ``invoke`` example invokes the ``my-function`` function synchronously. The ``cli-binary-format`` option is required if you're using AWS CLI version 2. For more information, see `AWS CLI supported global command line options `__ in the *AWS Command Line Interface User Guide*. :: + + aws lambda invoke \ + --function-name my-function \ + --cli-binary-format raw-in-base64-out \ + --payload '{ "name": "Bob" }' \ + response.json + +Output:: + + { + "ExecutedVersion": "$LATEST", + "StatusCode": 200 + } + +For more information, see `Invoke a Lambda function synchronously `__ in the *AWS Lambda Developer Guide*. + +**Example 2: To invoke a Lambda function asynchronously** + +The following ``invoke`` example invokes the ``my-function`` function asynchronously. The ``cli-binary-format`` option is required if you're using AWS CLI version 2. For more information, see `AWS CLI supported global command line options `__ in the *AWS Command Line Interface User Guide*. :: + + aws lambda invoke \ + --function-name my-function \ + --invocation-type Event \ + --cli-binary-format raw-in-base64-out \ + --payload '{ "name": "Bob" }' \ + response.json + +Output:: + + { + "StatusCode": 202 + } + +For more information, see `Invoking a Lambda function asynchronously `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-aliases.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-aliases.rst new file mode 100755 index 000000000..555289730 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-aliases.rst @@ -0,0 +1,29 @@ +**To retrieve the list of aliases for a Lambda function** + +The following ``list-aliases`` example displays a list of the aliases for the ``my-function`` Lambda function. :: + + aws lambda list-aliases \ + --function-name my-function + +Output:: + + { + "Aliases": [ + { + "AliasArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:BETA", + "RevisionId": "a410117f-ab16-494e-8035-7e204bb7933b", + "FunctionVersion": "2", + "Name": "BETA", + "Description": "alias for beta version of function" + }, + { + "AliasArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:LIVE", + "RevisionId": "21d40116-f8b1-40ba-9360-3ea284da1bb5", + "FunctionVersion": "1", + "Name": "LIVE", + "Description": "alias for live version of function" + } + ] + } + +For more information, see `Configuring AWS Lambda Function Aliases `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-event-source-mappings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-event-source-mappings.rst new file mode 100755 index 000000000..8991f196c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-event-source-mappings.rst @@ -0,0 +1,24 @@ +**To list the event source mappings for a function** + +The following ``list-event-source-mappings`` example displays a list of the event source mappings for the ``my-function`` Lambda function. :: + + aws lambda list-event-source-mappings \ + --function-name my-function + +Output:: + + { + "EventSourceMappings": [ + { + "UUID": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", + "StateTransitionReason": "USER_INITIATED", + "LastModified": 1569284520.333, + "BatchSize": 5, + "State": "Enabled", + "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", + "EventSourceArn": "arn:aws:sqs:us-west-2:123456789012:mySQSqueue" + } + ] + } + +For more information, see `AWS Lambda Event Source Mapping `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-function-event-invoke-configs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-function-event-invoke-configs.rst new file mode 100755 index 000000000..db2cd01b3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-function-event-invoke-configs.rst @@ -0,0 +1,25 @@ +**To view a list of asynchronous invocation configurations** + +The following ``list-function-event-invoke-configs`` example lists the asynchronous invocation configurations for the specified function. :: + + aws lambda list-function-event-invoke-configs \ + --function-name my-function + +Output:: + + { + "FunctionEventInvokeConfigs": [ + { + "LastModified": 1577824406.719, + "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:GREEN", + "MaximumRetryAttempts": 2, + "MaximumEventAgeInSeconds": 1800 + }, + { + "LastModified": 1577824396.653, + "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:BLUE", + "MaximumRetryAttempts": 0, + "MaximumEventAgeInSeconds": 3600 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-functions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-functions.rst new file mode 100755 index 000000000..13c7ee114 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-functions.rst @@ -0,0 +1,88 @@ +**To retrieve a list of Lambda functions** + +The following ``list-functions`` example displays a list of all of the functions for the current user. :: + + aws lambda list-functions + +Output:: + + { + "Functions": [ + { + "TracingConfig": { + "Mode": "PassThrough" + }, + "Version": "$LATEST", + "CodeSha256": "dBG9m8SGdmlEjw/JYXlhhvCrAv5TxvXsbL/RMr0fT/I=", + "FunctionName": "helloworld", + "MemorySize": 128, + "RevisionId": "1718e831-badf-4253-9518-d0644210af7b", + "CodeSize": 294, + "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:helloworld", + "Handler": "helloworld.handler", + "Role": "arn:aws:iam::123456789012:role/service-role/MyTestFunction-role-zgur6bf4", + "Timeout": 3, + "LastModified": "2025-09-23T18:32:33.857+0000", + "Runtime": "nodejs22.x", + "Description": "" + }, + { + "TracingConfig": { + "Mode": "PassThrough" + }, + "Version": "$LATEST", + "CodeSha256": "sU0cJ2/hOZevwV/lTxCuQqK3gDZP3i8gUoqUUVRmY6E=", + "FunctionName": "my-function", + "VpcConfig": { + "SubnetIds": [], + "VpcId": "", + "SecurityGroupIds": [] + }, + "MemorySize": 256, + "RevisionId": "93017fc9-59cb-41dc-901b-4845ce4bf668", + "CodeSize": 266, + "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", + "Handler": "index.handler", + "Role": "arn:aws:iam::123456789012:role/service-role/helloWorldPython-role-uy3l9qyq", + "Timeout": 3, + "LastModified": "2025-10-01T16:47:28.490+0000", + "Runtime": "nodejs22.x", + "Description": "" + }, + { + "Layers": [ + { + "CodeSize": 41784542, + "Arn": "arn:aws:lambda:us-west-2:420165488524:layer:AWSLambda-Python37-SciPy1x:2" + }, + { + "CodeSize": 4121, + "Arn": "arn:aws:lambda:us-west-2:123456789012:layer:pythonLayer:1" + } + ], + "TracingConfig": { + "Mode": "PassThrough" + }, + "Version": "$LATEST", + "CodeSha256": "ZQukCqxtkqFgyF2cU41Avj99TKQ/hNihPtDtRcc08mI=", + "FunctionName": "my-python-function", + "VpcConfig": { + "SubnetIds": [], + "VpcId": "", + "SecurityGroupIds": [] + }, + "MemorySize": 128, + "RevisionId": "80b4eabc-acf7-4ea8-919a-e874c213707d", + "CodeSize": 299, + "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-python-function", + "Handler": "lambda_function.lambda_handler", + "Role": "arn:aws:iam::123456789012:role/service-role/my-python-function-role-z5g7dr6n", + "Timeout": 3, + "LastModified": "2025-10-01T19:40:41.643+0000", + "Runtime": "python3.11", + "Description": "" + } + ] + } + +For more information, see `Configure Lambda function memory `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-layer-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-layer-versions.rst new file mode 100755 index 000000000..1511430d1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-layer-versions.rst @@ -0,0 +1,25 @@ +**To list the versions of an AWS Lambda layer** + +The following ``list-layers-versions`` example displays information about the versions for the layer named ``my-layer``. :: + + aws lambda list-layer-versions \ + --layer-name my-layer + +Output:: + + { + "Layers": [ + { + "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:2", + "Version": 2, + "Description": "My layer", + "CreatedDate": "2023-11-15T00:37:46.592+0000", + "CompatibleRuntimes": [ + "python3.10", + "python3.11" + ] + } + ] + } + +For more information, see `AWS Lambda Layers `__ in the *AWS Lambda Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-layers.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-layers.rst new file mode 100755 index 000000000..b57fcb7c2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-layers.rst @@ -0,0 +1,29 @@ +**To list the layers that are compatible with your function's runtime** + +The following ``list-layers`` example displays information about layers that are compatible with the Python 3.11 runtime. :: + + aws lambda list-layers \ + --compatible-runtime python3.11 + +Output:: + + { + "Layers": [ + { + "LayerName": "my-layer", + "LayerArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer", + "LatestMatchingVersion": { + "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:2", + "Version": 2, + "Description": "My layer", + "CreatedDate": "2023-11-15T00:37:46.592+0000", + "CompatibleRuntimes": [ + "python3.10", + "python3.11" + ] + } + } + ] + } + +For more information, see `AWS Lambda Layers `__ in the *AWS Lambda Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-provisioned-concurrency-configs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-provisioned-concurrency-configs.rst new file mode 100755 index 000000000..e3b8b48f9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-provisioned-concurrency-configs.rst @@ -0,0 +1,29 @@ +**To get a list of provisioned concurrency configurations** + +The following ``list-provisioned-concurrency-configs`` example lists the provisioned concurrency configurations for the specified function. :: + + aws lambda list-provisioned-concurrency-configs \ + --function-name my-function + +Output:: + + { + "ProvisionedConcurrencyConfigs": [ + { + "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:GREEN", + "RequestedProvisionedConcurrentExecutions": 100, + "AvailableProvisionedConcurrentExecutions": 100, + "AllocatedProvisionedConcurrentExecutions": 100, + "Status": "READY", + "LastModified": "2019-12-31T20:29:00+0000" + }, + { + "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:BLUE", + "RequestedProvisionedConcurrentExecutions": 100, + "AvailableProvisionedConcurrentExecutions": 100, + "AllocatedProvisionedConcurrentExecutions": 100, + "Status": "READY", + "LastModified": "2019-12-31T20:28:49+0000" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-tags.rst new file mode 100755 index 000000000..2498ab832 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-tags.rst @@ -0,0 +1,17 @@ +**To retrieve the list of tags for a Lambda function** + +The following ``list-tags`` example displays the tags attached to the ``my-function`` Lambda function. :: + + aws lambda list-tags \ + --resource arn:aws:lambda:us-west-2:123456789012:function:my-function + +Output:: + + { + "Tags": { + "Category": "Web Tools", + "Department": "Sales" + } + } + +For more information, see `Tagging Lambda Functions `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-versions-by-function.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-versions-by-function.rst new file mode 100755 index 000000000..77959d5fa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/list-versions-by-function.rst @@ -0,0 +1,84 @@ +**To retrieve a list of versions of a function** + +The following ``list-versions-by-function`` example displays the list of versions for the ``my-function`` Lambda function. :: + + aws lambda list-versions-by-function \ + --function-name my-function + +Output:: + + { + "Versions": [ + { + "TracingConfig": { + "Mode": "PassThrough" + }, + "Version": "$LATEST", + "CodeSha256": "sU0cJ2/hOZevwV/lTxCuQqK3gDZP3i8gUoqUUVRmY6E=", + "FunctionName": "my-function", + "VpcConfig": { + "SubnetIds": [], + "VpcId": "", + "SecurityGroupIds": [] + }, + "MemorySize": 256, + "RevisionId": "93017fc9-59cb-41dc-901b-4845ce4bf668", + "CodeSize": 266, + "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:$LATEST", + "Handler": "index.handler", + "Role": "arn:aws:iam::123456789012:role/service-role/helloWorldPython-role-uy3l9qyq", + "Timeout": 3, + "LastModified": "2019-10-01T16:47:28.490+0000", + "Runtime": "nodejs10.x", + "Description": "" + }, + { + "TracingConfig": { + "Mode": "PassThrough" + }, + "Version": "1", + "CodeSha256": "5tT2qgzYUHoqwR616pZ2dpkn/0J1FrzJmlKidWaaCgk=", + "FunctionName": "my-function", + "VpcConfig": { + "SubnetIds": [], + "VpcId": "", + "SecurityGroupIds": [] + }, + "MemorySize": 256, + "RevisionId": "949c8914-012e-4795-998c-e467121951b1", + "CodeSize": 304, + "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:1", + "Handler": "index.handler", + "Role": "arn:aws:iam::123456789012:role/service-role/helloWorldPython-role-uy3l9qyq", + "Timeout": 3, + "LastModified": "2019-09-26T20:28:40.438+0000", + "Runtime": "nodejs10.x", + "Description": "new version" + }, + { + "TracingConfig": { + "Mode": "PassThrough" + }, + "Version": "2", + "CodeSha256": "sU0cJ2/hOZevwV/lTxCuQqK3gDZP3i8gUoqUUVRmY6E=", + "FunctionName": "my-function", + "VpcConfig": { + "SubnetIds": [], + "VpcId": "", + "SecurityGroupIds": [] + }, + "MemorySize": 256, + "RevisionId": "cd669f21-0f3d-4e1c-9566-948837f2e2ea", + "CodeSize": 266, + "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:2", + "Handler": "index.handler", + "Role": "arn:aws:iam::123456789012:role/service-role/helloWorldPython-role-uy3l9qyq", + "Timeout": 3, + "LastModified": "2019-10-01T16:47:28.490+0000", + "Runtime": "nodejs10.x", + "Description": "newer version" + } + ] + } + +For more information, see `Configuring AWS Lambda Function Aliases `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/publish-layer-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/publish-layer-version.rst new file mode 100755 index 000000000..daf955176 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/publish-layer-version.rst @@ -0,0 +1,32 @@ +**To create a Lambda layer version** + +The following ``publish-layer-version`` example creates a new Python library layer version. The command retrieves the layer content a file named ``layer.zip`` in the specified S3 bucket. :: + + aws lambda publish-layer-version \ + --layer-name my-layer \ + --description "My Python layer" \ + --license-info "MIT" \ + --content S3Bucket=lambda-layers-us-west-2-123456789012,S3Key=layer.zip \ + --compatible-runtimes python3.10 python3.11 + +Output:: + + { + "Content": { + "Location": "https://awslambda-us-west-2-layers.s3.us-west-2.amazonaws.com/snapshots/123456789012/my-layer-4aaa2fbb-ff77-4b0a-ad92-5b78a716a96a?versionId=27iWyA73cCAYqyH...", + "CodeSha256": "tv9jJO+rPbXUUXuRKi7CwHzKtLDkDRJLB3cC3Z/ouXo=", + "CodeSize": 169 + }, + "LayerArn": "arn:aws:lambda:us-west-2:123456789012:layer:my-layer", + "LayerVersionArn": "arn:aws:lambda:us-west-2:123456789012:layer:my-layer:1", + "Description": "My Python layer", + "CreatedDate": "2023-11-14T23:03:52.894+0000", + "Version": 1, + "LicenseInfo": "MIT", + "CompatibleRuntimes": [ + "python3.10", + "python3.11" + ] + } + +For more information, see `AWS Lambda Layers `__ in the *AWS Lambda Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/publish-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/publish-version.rst new file mode 100755 index 000000000..4977c7534 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/publish-version.rst @@ -0,0 +1,29 @@ +**To publish a new version of a function** + +The following ``publish-version`` example publishes a new version of the ``my-function`` Lambda function. :: + + aws lambda publish-version \ + --function-name my-function + +Output:: + + { + "TracingConfig": { + "Mode": "PassThrough" + }, + "CodeSha256": "dBG9m8SGdmlEjw/JYXlhhvCrAv5TxvXsbL/RMr0fT/I=", + "FunctionName": "my-function", + "CodeSize": 294, + "RevisionId": "f31d3d39-cc63-4520-97d4-43cd44c94c20", + "MemorySize": 128, + "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:3", + "Version": "2", + "Role": "arn:aws:iam::123456789012:role/service-role/MyTestFunction-role-zgur6bf4", + "Timeout": 3, + "LastModified": "2019-09-23T18:32:33.857+0000", + "Handler": "my-function.handler", + "Runtime": "nodejs10.x", + "Description": "" + } + +For more information, see `Configuring AWS Lambda Function Aliases `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/put-function-concurrency.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/put-function-concurrency.rst new file mode 100755 index 000000000..23b800bdd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/put-function-concurrency.rst @@ -0,0 +1,15 @@ +**To configure a reserved concurrency limit for a function** + +The following ``put-function-concurrency`` example configures 100 reserved concurrent executions for the ``my-function`` function. :: + + aws lambda put-function-concurrency \ + --function-name my-function \ + --reserved-concurrent-executions 100 + +Output:: + + { + "ReservedConcurrentExecutions": 100 + } + +For more information, see `Reserving Concurrency for a Lambda Function `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/put-function-event-invoke-config.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/put-function-event-invoke-config.rst new file mode 100755 index 000000000..b7aa70d36 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/put-function-event-invoke-config.rst @@ -0,0 +1,21 @@ +**To configure error handling for asynchronous invocation** + +The following ``put-function-event-invoke-config`` example sets a maximum event age of one hour and disables retries for the specified function. :: + + aws lambda put-function-event-invoke-config \ + --function-name my-function \ + --maximum-event-age-in-seconds 3600 \ + --maximum-retry-attempts 0 + +Output:: + + { + "LastModified": 1573686021.479, + "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:$LATEST", + "MaximumRetryAttempts": 0, + "MaximumEventAgeInSeconds": 3600, + "DestinationConfig": { + "OnSuccess": {}, + "OnFailure": {} + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/put-provisioned-concurrency-config.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/put-provisioned-concurrency-config.rst new file mode 100755 index 000000000..7107bfae6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/put-provisioned-concurrency-config.rst @@ -0,0 +1,17 @@ +**To allocate provisioned concurrency** + +The following ``put-provisioned-concurrency-config`` example allocates 100 provisioned concurrency for the ``BLUE`` alias of the specified function. :: + + aws lambda put-provisioned-concurrency-config \ + --function-name my-function \ + --qualifier BLUE \ + --provisioned-concurrent-executions 100 + +Output:: + + { + "Requested ProvisionedConcurrentExecutions": 100, + "Allocated ProvisionedConcurrentExecutions": 0, + "Status": "IN_PROGRESS", + "LastModified": "2019-11-21T19:32:12+0000" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/remove-layer-version-permission.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/remove-layer-version-permission.rst new file mode 100755 index 000000000..756217cde --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/remove-layer-version-permission.rst @@ -0,0 +1,12 @@ +**To delete layer-version permissions** + +The following ``remove-layer-version-permission`` example deletes permission for an account to configure a layer version. :: + + aws lambda remove-layer-version-permission \ + --layer-name my-layer \ + --statement-id xaccount \ + --version-number 1 + +This command produces no output. + +For more information, see `AWS Lambda Layers `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/remove-permission.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/remove-permission.rst new file mode 100755 index 000000000..bb14c7de2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/remove-permission.rst @@ -0,0 +1,11 @@ +**To remove permissions from an existing Lambda function** + +The following ``remove-permission`` example removes permission to invoke a function named ``my-function``. :: + + aws lambda remove-permission \ + --function-name my-function \ + --statement-id sns + +This command produces no output. + +For more information, see `Using Resource-based Policies for AWS Lambda `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/tag-resource.rst new file mode 100755 index 000000000..e3a59b4bf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/tag-resource.rst @@ -0,0 +1,11 @@ +**To add tags to an existing Lambda function** + +The following ``tag-resource`` example adds a tag with the key name ``DEPARTMENT`` and a value of ``Department A`` to the specified Lambda function. :: + + aws lambda tag-resource \ + --resource arn:aws:lambda:us-west-2:123456789012:function:my-function \ + --tags "DEPARTMENT=Department A" + +This command produces no output. + +For more information, see `Tagging Lambda Functions `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/untag-resource.rst new file mode 100755 index 000000000..5dce4c7c4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove tags from an existing Lambda function** + +The following ``untag-resource`` example removes the tag with the key name ``DEPARTMENT`` tag from the ``my-function`` Lambda function. :: + + aws lambda untag-resource \ + --resource arn:aws:lambda:us-west-2:123456789012:function:my-function \ + --tag-keys DEPARTMENT + +This command produces no output. + +For more information, see `Tagging Lambda Functions `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/update-alias.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/update-alias.rst new file mode 100755 index 000000000..859408628 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/update-alias.rst @@ -0,0 +1,20 @@ +**To update a function alias** + +The following ``update-alias`` example updates the alias named ``LIVE`` to point to version 3 of the ``my-function`` Lambda function. :: + + aws lambda update-alias \ + --function-name my-function \ + --function-version 3 \ + --name LIVE + +Output:: + + { + "FunctionVersion": "3", + "Name": "LIVE", + "AliasArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function:LIVE", + "RevisionId": "594f41fb-b85f-4c20-95c7-6ca5f2a92c93", + "Description": "alias for live version of function" + } + +For more information, see `Configuring AWS Lambda Function Aliases `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/update-event-source-mapping.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/update-event-source-mapping.rst new file mode 100755 index 000000000..aa4288bdb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/update-event-source-mapping.rst @@ -0,0 +1,21 @@ +**To update the mapping between an event source and an AWS Lambda function** + +The following ``update-event-source-mapping`` example updates the batch size to 8 in the specified mapping. :: + + aws lambda update-event-source-mapping \ + --uuid "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" \ + --batch-size 8 + +Output:: + + { + "UUID": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", + "StateTransitionReason": "USER_INITIATED", + "LastModified": 1569284520.333, + "BatchSize": 8, + "State": "Updating", + "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", + "EventSourceArn": "arn:aws:sqs:us-west-2:123456789012:mySQSqueue" + } + +For more information, see `AWS Lambda Event Source Mapping `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/update-function-code.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/update-function-code.rst new file mode 100755 index 000000000..d046bc94f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/update-function-code.rst @@ -0,0 +1,35 @@ +**To update the code of a Lambda function** + +The following ``update-function-code`` example replaces the code of the unpublished ($LATEST) version of the ``my-function`` function with the contents of the specified zip file. :: + + aws lambda update-function-code \ + --function-name my-function \ + --zip-file fileb://my-function.zip + +Output:: + + { + "FunctionName": "my-function", + "LastModified": "2019-09-26T20:28:40.438+0000", + "RevisionId": "e52502d4-9320-4688-9cd6-152a6ab7490d", + "MemorySize": 256, + "Version": "$LATEST", + "Role": "arn:aws:iam::123456789012:role/service-role/my-function-role-uy3l9qyq", + "Timeout": 3, + "Runtime": "nodejs10.x", + "TracingConfig": { + "Mode": "PassThrough" + }, + "CodeSha256": "5tT2qgzYUHaqwR716pZ2dpkn/0J1FrzJmlKidWoaCgk=", + "Description": "", + "VpcConfig": { + "SubnetIds": [], + "VpcId": "", + "SecurityGroupIds": [] + }, + "CodeSize": 304, + "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", + "Handler": "index.handler" + } + +For more information, see `AWS Lambda Function Configuration `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/update-function-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/update-function-configuration.rst new file mode 100755 index 000000000..2d22f125e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/update-function-configuration.rst @@ -0,0 +1,35 @@ +**To modify the configuration of a function** + +The following ``update-function-configuration`` example modifies the memory size to be 256 MB for the unpublished ($LATEST) version of the ``my-function`` function. :: + + aws lambda update-function-configuration \ + --function-name my-function \ + --memory-size 256 + +Output:: + + { + "FunctionName": "my-function", + "LastModified": "2019-09-26T20:28:40.438+0000", + "RevisionId": "e52502d4-9320-4688-9cd6-152a6ab7490d", + "MemorySize": 256, + "Version": "$LATEST", + "Role": "arn:aws:iam::123456789012:role/service-role/my-function-role-uy3l9qyq", + "Timeout": 3, + "Runtime": "nodejs10.x", + "TracingConfig": { + "Mode": "PassThrough" + }, + "CodeSha256": "5tT2qgzYUHaqwR716pZ2dpkn/0J1FrzJmlKidWoaCgk=", + "Description": "", + "VpcConfig": { + "SubnetIds": [], + "VpcId": "", + "SecurityGroupIds": [] + }, + "CodeSize": 304, + "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", + "Handler": "index.handler" + } + +For more information, see `AWS Lambda Function Configuration `__ in the *AWS Lambda Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/update-function-event-invoke-config.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/update-function-event-invoke-config.rst new file mode 100755 index 000000000..6c54bfd95 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lambda/update-function-event-invoke-config.rst @@ -0,0 +1,22 @@ +**To update an asynchronous invocation configuration** + +The following ``update-function-event-invoke-config`` example adds an on-failure destination to the existing asynchronous invocation configuration for the specified function. :: + + aws lambda update-function-event-invoke-config \ + --function-name my-function \ + --destination-config '{"OnFailure":{"Destination": "arn:aws:sqs:us-east-2:123456789012:destination"}}' + +Output:: + + { + "LastModified": 1573687896.493, + "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:$LATEST", + "MaximumRetryAttempts": 0, + "MaximumEventAgeInSeconds": 3600, + "DestinationConfig": { + "OnSuccess": {}, + "OnFailure": { + "Destination": "arn:aws:sqs:us-east-2:123456789012:destination" + } + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/create-license-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/create-license-configuration.rst new file mode 100755 index 000000000..02ad134dd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/create-license-configuration.rst @@ -0,0 +1,29 @@ +**Example 1: To create a license configuration** + +The following ``create-license-configuration`` example creates a license configuration with a hard limit of 10 cores. :: + + aws license-manager create-license-configuration --name my-license-configuration \ + --license-counting-type Core \ + --license-count 10 \ + --license-count-hard-limit + +Output:: + + { + "LicenseConfigurationArn": "arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-6eb6586f508a786a2ba41EXAMPLE1111" + } + +**Example 2: To create a license configuration** + +The following ``create-license-configuration`` example creates a license configuration with a soft limit of 100 vCPUs. It uses a rule to enable vCPU optimization. :: + + aws license-manager create-license-configuration --name my-license-configuration + --license-counting-type vCPU \ + --license-count 100 \ + --license-rules "#honorVcpuOptimization=true" + +Output:: + + { + "LicenseConfigurationArn": "arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-6eb6586f508a786a2ba41EXAMPLE2222" + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/delete-license-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/delete-license-configuration.rst new file mode 100755 index 000000000..cc0e06b3c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/delete-license-configuration.rst @@ -0,0 +1,8 @@ +**To delete a license configuration** + +The following ``delete-license-configuration`` example deletes the specified license configuration. :: + + aws license-manager delete-license-configuration \ + --license-configuration-arn arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-6eb6586f508a786a2ba4f56c1EXAMPLE + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/get-license-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/get-license-configuration.rst new file mode 100755 index 000000000..ea29f3ca4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/get-license-configuration.rst @@ -0,0 +1,52 @@ +**To get license configuration information** + +The following ``get-license-configuration`` example displays details for the specified license configuration. :: + + aws license-manager get-license-configuration \ + --license-configuration-arn arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-38b658717b87478aaa7c00883EXAMPLE + +Output:: + + { + "LicenseConfigurationId": "lic-38b658717b87478aaa7c00883EXAMPLE", + "LicenseConfigurationArn": "arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-38b658717b87478aaa7c00883EXAMPLE", + "Name": "my-license-configuration", + "LicenseCountingType": "vCPU", + "LicenseRules": [], + "LicenseCountHardLimit": false, + "ConsumedLicenses": 0, + "Status": "AVAILABLE", + "OwnerAccountId": "123456789012", + "ConsumedLicenseSummaryList": [ + { + "ResourceType": "EC2_INSTANCE", + "ConsumedLicenses": 0 + }, + { + "ResourceType": "EC2_HOST", + "ConsumedLicenses": 0 + }, + { + "ResourceType": "SYSTEMS_MANAGER_MANAGED_INSTANCE", + "ConsumedLicenses": 0 + } + ], + "ManagedResourceSummaryList": [ + { + "ResourceType": "EC2_INSTANCE", + "AssociationCount": 0 + }, + { + "ResourceType": "EC2_HOST", + "AssociationCount": 0 + }, + { + "ResourceType": "EC2_AMI", + "AssociationCount": 2 + }, + { + "ResourceType": "SYSTEMS_MANAGER_MANAGED_INSTANCE", + "AssociationCount": 0 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/get-service-settings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/get-service-settings.rst new file mode 100755 index 000000000..3136546c1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/get-service-settings.rst @@ -0,0 +1,24 @@ +**To get the License Manager settings** + +The following ``get-service-settings`` example displays the service settings for License Manager in the current Region. :: + + aws license-manager get-service-settings + +The following shows example output if cross-account resource discovery is disabled. :: + + { + "OrganizationConfiguration": { + "EnableIntegration": false + }, + "EnableCrossAccountsDiscovery": false + } + +The following shows example output if cross-account resource discovery is enabled. :: + + { + "S3BucketArn": "arn:aws:s3:::aws-license-manager-service-c22d6279-35c4-47c4-bb", + "OrganizationConfiguration": { + "EnableIntegration": true + }, + "EnableCrossAccountsDiscovery": true + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/list-associations-for-license-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/list-associations-for-license-configuration.rst new file mode 100755 index 000000000..3741be3c5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/list-associations-for-license-configuration.rst @@ -0,0 +1,25 @@ +**To get associations for a license configuration** + +The following ``list-associations-for-license-configuration`` example displays detailed information for the associations of the specified license configuration. :: + + aws license-manager list-associations-for-license-configuration \ + --license-configuration-arn arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-38b658717b87478aaa7c00883EXAMPLE + +Output:: + + { + "LicenseConfigurationAssociations": [ + { + "ResourceArn": "arn:aws:ec2:us-west-2::image/ami-1234567890abcdef0", + "ResourceType": "EC2_AMI", + "ResourceOwnerId": "123456789012", + "AssociationTime": 1568825118.617 + }, + { + "ResourceArn": "arn:aws:ec2:us-west-2::image/ami-0abcdef1234567890", + "ResourceType": "EC2_AMI", + "ResourceOwnerId": "123456789012", + "AssociationTime": 1568825118.946 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/list-license-configurations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/list-license-configurations.rst new file mode 100755 index 000000000..55d314a8c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/list-license-configurations.rst @@ -0,0 +1,66 @@ +**Example 1: To list all of your license configurations** + +The following ``list-license-configurations`` example lists all your license configurations. :: + + aws license-manager list-license-configurations + +Output:: + + { + "LicenseConfigurations": [ + { + "LicenseConfigurationId": "lic-6eb6586f508a786a2ba4f56c1EXAMPLE", + "LicenseConfigurationArn": "arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-6eb6586f508a786a2ba4f56c1EXAMPLE", + "Name": "my-license-configuration", + "LicenseCountingType": "Core", + "LicenseRules": [], + "LicenseCount": 10, + "LicenseCountHardLimit": true, + "ConsumedLicenses": 0, + "Status": "AVAILABLE", + "OwnerAccountId": "123456789012", + "ConsumedLicenseSummaryList": [ + { + "ResourceType": "EC2_INSTANCE", + "ConsumedLicenses": 0 + }, + { + "ResourceType": "EC2_HOST", + "ConsumedLicenses": 0 + }, + { + "ResourceType": "SYSTEMS_MANAGER_MANAGED_INSTANCE", + "ConsumedLicenses": 0 + } + ], + "ManagedResourceSummaryList": [ + { + "ResourceType": "EC2_INSTANCE", + "AssociationCount": 0 + }, + { + "ResourceType": "EC2_HOST", + "AssociationCount": 0 + }, + { + "ResourceType": "EC2_AMI", + "AssociationCount": 0 + }, + { + "ResourceType": "SYSTEMS_MANAGER_MANAGED_INSTANCE", + "AssociationCount": 0 + } + ] + }, + { + ... + } + ] + } + +**Example 2: To list a specific license configuration** + +The following ``list-license-configurations`` example lists only the specified license configuration. :: + + aws license-manager list-license-configurations \ + --license-configuration-arns arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-38b658717b87478aaa7c00883EXAMPLE diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/list-license-specifications-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/list-license-specifications-for-resource.rst new file mode 100755 index 000000000..89d0dc762 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/list-license-specifications-for-resource.rst @@ -0,0 +1,13 @@ +**To list the license configurations for a resource** + +The following ``list-license-specifications-for-resource`` example lists the license configurations associated with the specified Amazon Machine Image (AMI). :: + + aws license-manager list-license-specifications-for-resource \ + --resource-arn arn:aws:ec2:us-west-2::image/ami-1234567890abcdef0 + +Output:: + + { + "LicenseConfigurationArn": "arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-38b658717b87478aaa7c00883EXAMPLE" + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/list-resource-inventory.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/list-resource-inventory.rst new file mode 100755 index 000000000..ab790d300 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/list-resource-inventory.rst @@ -0,0 +1,36 @@ +**To list resources in the resource inventory** + +The following ``list-resource-inventory`` example lists the resources managed using Systems Manager inventory. :: + + aws license-manager list-resource-inventory + +Output:: + + { + "ResourceInventoryList": [ + { + "Platform": "Red Hat Enterprise Linux Server", + "ResourceType": "EC2Instance", + "PlatformVersion": "7.4", + "ResourceArn": "arn:aws:ec2:us-west-2:1234567890129:instance/i-05d3cdfb05bd36376", + "ResourceId": "i-05d3cdfb05bd36376", + "ResourceOwningAccountId": "1234567890129" + }, + { + "Platform": "Amazon Linux", + "ResourceType": "EC2Instance", + "PlatformVersion": "2", + "ResourceArn": "arn:aws:ec2:us-west-2:1234567890129:instance/i-0b1d036cfd4594808", + "ResourceId": "i-0b1d036cfd4594808", + "ResourceOwningAccountId": "1234567890129" + }, + { + "Platform": "Microsoft Windows Server 2019 Datacenter", + "ResourceType": "EC2Instance", + "PlatformVersion": "10.0.17763", + "ResourceArn": "arn:aws:ec2:us-west-2:1234567890129:instance/i-0cdb3b54a2a8246ad", + "ResourceId": "i-0cdb3b54a2a8246ad", + "ResourceOwningAccountId": "1234567890129" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/list-tags-for-resource.rst new file mode 100755 index 000000000..0e0b6bb51 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/list-tags-for-resource.rst @@ -0,0 +1,17 @@ +**To list the tags for a license configuration** + +The following ``list-tags-for-resource`` example lists the tags for the specified license configuration. :: + + aws license-manager list-tags-for-resource \ + --resource-arn arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-6eb6586f508a786a2ba4f56c1EXAMPLE + +Output:: + + { + "Tags": [ + { + "Key": "project", + "Value": "lima" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/list-usage-for-license-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/list-usage-for-license-configuration.rst new file mode 100755 index 000000000..ad8fb465a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/list-usage-for-license-configuration.rst @@ -0,0 +1,21 @@ +**To list the licenses in use for a license configuration** + +The following ``list-usage-for-license-configuration`` example lists information about the resources using licenses for the specified license configuration. For example, if the license type is vCPU, any instances consume one license per vCPU. :: + + aws license-manager list-usage-for-license-configuration \ + --license-configuration-arn arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-38b658717b87478aaa7c00883EXAMPLE + +Output:: + + { + "LicenseConfigurationUsageList": [ + { + "ResourceArn": "arn:aws:ec2:us-west-2:123456789012:instance/i-04a636d18e83cfacb", + "ResourceType": "EC2_INSTANCE", + "ResourceStatus": "running", + "ResourceOwnerId": "123456789012", + "AssociationTime": 1570892850.519, + "ConsumedLicenses": 2 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/tag-resource.rst new file mode 100755 index 000000000..a2c10aebb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/tag-resource.rst @@ -0,0 +1,9 @@ +**To add a tag a license configuration** + +The following ``tag-resource`` example adds the specified tag (key name and value) to the specified license configuration. :: + + aws license-manager tag-resource \ + --tags Key=project,Value=lima \ + --resource-arn arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-6eb6586f508a786a2ba4f56c1EXAMPLE + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/untag-resource.rst new file mode 100755 index 000000000..748254e28 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/untag-resource.rst @@ -0,0 +1,9 @@ +**To remove tags from a license configuration** + +The following ``untag-resource`` example removes the specified tag (key name and resource) from the specified license configuration. :: + + aws license-manager untag-resource \ + --tag-keys project \ + --resource-arn arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-6eb6586f508a786a2ba4f56c1EXAMPLE + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/update-license-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/update-license-configuration.rst new file mode 100755 index 000000000..c3282e615 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/update-license-configuration.rst @@ -0,0 +1,17 @@ +**To update a license configuration** + +The following ``update-license-configuration`` example updates the specified license configuration to remove the hard limit. :: + + aws license-manager update-license-configuration \ + --no-license-count-hard-limit \ + --license-configuration-arn arn:aws:license-manager:us-west-2:880185128111:license-configuration:lic-6eb6586f508a786a2ba4f56c1EXAMPLE + +This command produces no output. + +The following ``update-license-configuration`` example updates the specified license configuration to change its status to ``DISABLED``. :: + + aws license-manager update-license-configuration \ + --license-configuration-status DISABLED + --license-configuration-arn arn:aws:license-manager:us-west-2:880185128111:license-configuration:lic-6eb6586f508a786a2ba4f56c1EXAMPLE + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/update-license-specifications-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/update-license-specifications-for-resource.rst new file mode 100755 index 000000000..e3570ba14 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/update-license-specifications-for-resource.rst @@ -0,0 +1,10 @@ +**To update the license configurations for a resource** + +The following ``update-license-specifications-for-resource`` example replaces the license configuration associated with the specified Amazon Machine Image (AMI) by removing one license configuration and adding another. :: + + aws license-manager update-license-specifications-for-resource \ + --resource-arn arn:aws:ec2:us-west-2::image/ami-1234567890abcdef0 \ + --remove-license-specifications LicenseConfigurationArn=arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-38b658717b87478aaa7c00883EXAMPLE \ + --add-license-specifications LicenseConfigurationArn=arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-42b6deb06e5399a980d555927EXAMPLE + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/update-service-settings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/update-service-settings.rst new file mode 100755 index 000000000..4c8189be9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/license-manager/update-service-settings.rst @@ -0,0 +1,10 @@ +**To update the License Manager settings** + +The following ``update-service-settings`` example enables cross-account resource discovery for License Manager in the current AWS Region. The Amazon S3 bucket is the Resource Data Sync required for Systems Manager inventory. :: + + aws license-manager update-service-settings \ + --organization-configuration EnableIntegration=true \ + --enable-cross-accounts-discovery \ + --s3-bucket-arn arn:aws:s3:::aws-license-manager-service-abcd1234EXAMPLE + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/allocate-static-ip.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/allocate-static-ip.rst new file mode 100644 index 000000000..023f7d3f5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/allocate-static-ip.rst @@ -0,0 +1,27 @@ +**To create a static IP** + +The following ``allocate-static-ip`` example creates the specified static IP, which can be attached to an instance. :: + + aws lightsail allocate-static-ip \ + --static-ip-name StaticIp-1 + +Output:: + + { + "operations": [ + { + "id": "b5d06d13-2f19-4683-889f-dEXAMPLEed79", + "resourceName": "StaticIp-1", + "resourceType": "StaticIp", + "createdAt": 1571071325.076, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationType": "AllocateStaticIp", + "status": "Succeeded", + "statusChangedAt": 1571071325.274 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/attach-disk.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/attach-disk.rst new file mode 100644 index 000000000..eb0ff65bd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/attach-disk.rst @@ -0,0 +1,45 @@ +**To attach a block storage disk to an instance** + +The following ``attach-disk`` example attaches disk ``Disk-1`` to instance ``WordPress_Multisite-1`` with the disk path of ``/dev/xvdf`` :: + + aws lightsail attach-disk \ + --disk-name Disk-1 \ + --disk-path /dev/xvdf \ + --instance-name WordPress_Multisite-1 + +Output:: + + { + "operations": [ + { + "id": "10a08267-19ce-43be-b913-6EXAMPLE7e80", + "resourceName": "Disk-1", + "resourceType": "Disk", + "createdAt": 1571071465.472, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationDetails": "WordPress_Multisite-1", + "operationType": "AttachDisk", + "status": "Started", + "statusChangedAt": 1571071465.472 + }, + { + "id": "2912c477-5295-4539-88c9-bEXAMPLEd1f0", + "resourceName": "WordPress_Multisite-1", + "resourceType": "Instance", + "createdAt": 1571071465.474, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationDetails": "Disk-1", + "operationType": "AttachDisk", + "status": "Started", + "statusChangedAt": 1571071465.474 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/attach-instances-to-load-balancer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/attach-instances-to-load-balancer.rst new file mode 100644 index 000000000..955cf999a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/attach-instances-to-load-balancer.rst @@ -0,0 +1,104 @@ +**To attach instances to a load balancer** + +The following ``attach-instances-to-load-balancer`` example attaches instances ``MEAN-1``, ``MEAN-2``, and ``MEAN-3`` to the load balancer ``LoadBalancer-1``. :: + + aws lightsail attach-instances-to-load-balancer \ + --instance-names {"MEAN-1","MEAN-2","MEAN-3"} \ + --load-balancer-name LoadBalancer-1 + +Output:: + + { + "operations": [ + { + "id": "8055d19d-abb2-40b9-b527-1EXAMPLE3c7b", + "resourceName": "LoadBalancer-1", + "resourceType": "LoadBalancer", + "createdAt": 1571071699.892, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationDetails": "MEAN-2", + "operationType": "AttachInstancesToLoadBalancer", + "status": "Started", + "statusChangedAt": 1571071699.892 + }, + { + "id": "c35048eb-8538-456a-a118-0EXAMPLEfb73", + "resourceName": "MEAN-2", + "resourceType": "Instance", + "createdAt": 1571071699.887, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationDetails": "LoadBalancer-1", + "operationType": "AttachInstancesToLoadBalancer", + "status": "Started", + "statusChangedAt": 1571071699.887 + }, + { + "id": "910d09e0-adc5-4372-bc2e-0EXAMPLEd891", + "resourceName": "LoadBalancer-1", + "resourceType": "LoadBalancer", + "createdAt": 1571071699.882, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationDetails": "MEAN-3", + "operationType": "AttachInstancesToLoadBalancer", + "status": "Started", + "statusChangedAt": 1571071699.882 + }, + { + "id": "178b18ac-43e8-478c-9bed-1EXAMPLE4755", + "resourceName": "MEAN-3", + "resourceType": "Instance", + "createdAt": 1571071699.901, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationDetails": "LoadBalancer-1", + "operationType": "AttachInstancesToLoadBalancer", + "status": "Started", + "statusChangedAt": 1571071699.901 + }, + { + "id": "fb62536d-2a98-4190-a6fc-4EXAMPLE7470", + "resourceName": "LoadBalancer-1", + "resourceType": "LoadBalancer", + "createdAt": 1571071699.885, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationDetails": "MEAN-1", + "operationType": "AttachInstancesToLoadBalancer", + "status": "Started", + "statusChangedAt": 1571071699.885 + }, + { + "id": "787dac0d-f98d-46c3-8571-3EXAMPLE5a85", + "resourceName": "MEAN-1", + "resourceType": "Instance", + "createdAt": 1571071699.901, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationDetails": "LoadBalancer-1", + "operationType": "AttachInstancesToLoadBalancer", + "status": "Started", + "statusChangedAt": 1571071699.901 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/attach-load-balancer-tls-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/attach-load-balancer-tls-certificate.rst new file mode 100644 index 000000000..a22260943 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/attach-load-balancer-tls-certificate.rst @@ -0,0 +1,44 @@ +**To attach a TLS certificate to a load balancer** + +The following ``attach-load-balancer-tls-certificate`` example attaches the load balancer TLS certificate ``Certificate2`` to the load balancer ``LoadBalancer-1``. :: + + aws lightsail attach-load-balancer-tls-certificate \ + --certificate-name Certificate2 \ + --load-balancer-name LoadBalancer-1 + +Output:: + + { + "operations": [ + { + "id": "cf1ad6e3-3cbb-4b8a-a7f2-3EXAMPLEa118", + "resourceName": "LoadBalancer-1", + "resourceType": "LoadBalancer", + "createdAt": 1571072255.416, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationDetails": "Certificate2", + "operationType": "AttachLoadBalancerTlsCertificate", + "status": "Succeeded", + "statusChangedAt": 1571072255.416 + }, + { + "id": "dae1bcfb-d531-4c06-b4ea-bEXAMPLEc04e", + "resourceName": "Certificate2", + "resourceType": "LoadBalancerTlsCertificate", + "createdAt": 1571072255.416, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationDetails": "LoadBalancer-1", + "operationType": "AttachLoadBalancerTlsCertificate", + "status": "Succeeded", + "statusChangedAt": 1571072255.416 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/attach-static-ip.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/attach-static-ip.rst new file mode 100644 index 000000000..8a5e565b0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/attach-static-ip.rst @@ -0,0 +1,44 @@ +**To attach a static IP to an instance** + +The following ``attach-static-ip`` example attaches static IP ``StaticIp-1`` to instance ``MEAN-1``. :: + + aws lightsail attach-static-ip \ + --static-ip-name StaticIp-1 \ + --instance-name MEAN-1 + +Output:: + + { + "operations": [ + { + "id": "45e6fa13-4808-4b8d-9292-bEXAMPLE20b2", + "resourceName": "StaticIp-1", + "resourceType": "StaticIp", + "createdAt": 1571072569.375, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationDetails": "MEAN-1", + "operationType": "AttachStaticIp", + "status": "Succeeded", + "statusChangedAt": 1571072569.375 + }, + { + "id": "9ee09a17-863c-4e51-8a6d-3EXAMPLE5475", + "resourceName": "MEAN-1", + "resourceType": "Instance", + "createdAt": 1571072569.376, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationDetails": "StaticIp-1", + "operationType": "AttachStaticIp", + "status": "Succeeded", + "statusChangedAt": 1571072569.376 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/close-instance-public-ports.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/close-instance-public-ports.rst new file mode 100644 index 000000000..e687964ad --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/close-instance-public-ports.rst @@ -0,0 +1,27 @@ +**To close firewall ports for an instance** + +The following ``close-instance-public-ports`` example closes TCP port ``22`` on instance ``MEAN-2``. :: + + aws lightsail close-instance-public-ports \ + --instance-name MEAN-2 \ + --port-info fromPort=22,protocol=TCP,toPort=22 + +Output:: + + { + "operation": { + "id": "4f328636-1c96-4649-ae6d-1EXAMPLEf446", + "resourceName": "MEAN-2", + "resourceType": "Instance", + "createdAt": 1571072845.737, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationDetails": "22/tcp", + "operationType": "CloseInstancePublicPorts", + "status": "Succeeded", + "statusChangedAt": 1571072845.737 + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/copy-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/copy-snapshot.rst new file mode 100644 index 000000000..bfbdd40bd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/copy-snapshot.rst @@ -0,0 +1,135 @@ +**Example 1: To copy a snapshot within the same AWS Region** + +The following ``copy-snapshot`` example copies instance snapshot ``MEAN-1-1571075291`` as instance snapshot ``MEAN-1-Copy`` within the same AWS Region ``us-west-2``. :: + + aws lightsail copy-snapshot \ + --source-snapshot-name MEAN-1-1571075291 \ + --target-snapshot-name MEAN-1-Copy \ + --source-region us-west-2 + +Output:: + + { + "operations": [ + { + "id": "ced16fc1-f401-4556-8d82-1EXAMPLEb982", + "resourceName": "MEAN-1-Copy", + "resourceType": "InstanceSnapshot", + "createdAt": 1571075581.498, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationDetails": "us-west-2:MEAN-1-1571075291", + "operationType": "CopySnapshot", + "status": "Started", + "statusChangedAt": 1571075581.498 + } + ] + } + +For more information, see `Copying snapshots from one AWS Region to another in Amazon Lightsail `__ in the *Lightsail Dev Guide*. + +**Example 2: To copy a snapshot from one AWS Region to another** + +The following ``copy-snapshot`` example copies instance snapshot ``MEAN-1-1571075291`` as instance snapshot ``MEAN-1-1571075291-Copy`` from AWS Region ``us-west-2`` to ``us-east-1``. :: + + aws lightsail copy-snapshot \ + --source-snapshot-name MEAN-1-1571075291 \ + --target-snapshot-name MEAN-1-1571075291-Copy \ + --source-region us-west-2 \ + --region us-east-1 + +Output:: + + { + "operations": [ + { + "id": "91116b79-119c-4451-b44a-dEXAMPLEd97b", + "resourceName": "MEAN-1-1571075291-Copy", + "resourceType": "InstanceSnapshot", + "createdAt": 1571075695.069, + "location": { + "availabilityZone": "all", + "regionName": "us-east-1" + }, + "isTerminal": false, + "operationDetails": "us-west-2:MEAN-1-1571075291", + "operationType": "CopySnapshot", + "status": "Started", + "statusChangedAt": 1571075695.069 + } + ] + } + +For more information, see `Copying snapshots from one AWS Region to another in Amazon Lightsail `__ in the *Lightsail Dev Guide*. + +**Example 3: To copy an automatic snapshot within the same AWS Region** + +The following ``copy-snapshot`` example copies automatic snapshot ``2019-10-14`` of instance ``WordPress-1`` as a manual snapshot ``WordPress-1-10142019`` in the AWS Region ``us-west-2``. :: + + aws lightsail copy-snapshot \ + --source-resource-name WordPress-1 \ + --restore-date 2019-10-14 \ + --target-snapshot-name WordPress-1-10142019 \ + --source-region us-west-2 + +Output:: + + { + "operations": [ + { + "id": "be3e6754-cd1d-48e6-ad9f-2EXAMPLE1805", + "resourceName": "WordPress-1-10142019", + "resourceType": "InstanceSnapshot", + "createdAt": 1571082412.311, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationDetails": "us-west-2:WordPress-1", + "operationType": "CopySnapshot", + "status": "Started", + "statusChangedAt": 1571082412.311 + } + ] + } + +For more information, see `Keeping automatic snapshots of instances or disks in Amazon Lightsail `__ in the *Lightsail Dev Guide*. + +**Example 4: To copy an automatic snapshot from one AWS Region to another** + +The following ``copy-snapshot`` example copies automatic snapshot ``2019-10-14`` of instance ``WordPress-1`` as a manual snapshot ``WordPress-1-10142019`` from the AWS Region ``us-west-2`` to ``us-east-1``. :: + + aws lightsail copy-snapshot \ + --source-resource-name WordPress-1 \ + --restore-date 2019-10-14 \ + --target-snapshot-name WordPress-1-10142019 \ + --source-region us-west-2 \ + --region us-east-1 + +Output:: + + { + "operations": [ + { + "id": "dffa128b-0b07-476e-b390-bEXAMPLE3775", + "resourceName": "WordPress-1-10142019", + "resourceType": "InstanceSnapshot", + "createdAt": 1571082493.422, + "location": { + "availabilityZone": "all", + "regionName": "us-east-1" + }, + "isTerminal": false, + "operationDetails": "us-west-2:WordPress-1", + "operationType": "CopySnapshot", + "status": "Started", + "statusChangedAt": 1571082493.422 + } + ] + } + +For more information, see `Keeping automatic snapshots of instances or disks in Amazon Lightsail `__ in the *Lightsail Dev Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-disk-from-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-disk-from-snapshot.rst new file mode 100644 index 000000000..bdb7c5ccc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-disk-from-snapshot.rst @@ -0,0 +1,32 @@ +**To create a create a disk from a disk snapshot** + +The following ``create-disk-from-snapshot`` example creates a block storage disk named ``Disk-2`` from the specified block storage disk snapshot. The disk is created in the specified AWS Region and Availability Zone, with 32 GB of storage space. :: + + aws lightsail create-disk-from-snapshot \ + --disk-name Disk-2 \ + --disk-snapshot-name Disk-1-1566839161 \ + --availability-zone us-west-2a \ + --size-in-gb 32 + +Output:: + + { + "operations": [ + { + "id": "d42b605d-5ef1-4b4a-8791-7a3e8b66b5e7", + "resourceName": "Disk-2", + "resourceType": "Disk", + "createdAt": 1569624941.471, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationType": "CreateDiskFromSnapshot", + "status": "Started", + "statusChangedAt": 1569624941.791 + } + ] + } + +For more information, see `Creating a block storage disk from a snapshot in Amazon Lightsail `__ in the *Lightsail Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-disk-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-disk-snapshot.rst new file mode 100644 index 000000000..e2fec930f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-disk-snapshot.rst @@ -0,0 +1,91 @@ +**Example 1: To create a snapshot of a disk** + +The following ``create-disk-snapshot`` example creates a snapshot named ``DiskSnapshot-1`` of the specified block storage disk. :: + + aws lightsail create-disk-snapshot \ + --disk-name Disk-1 \ + --disk-snapshot-name DiskSnapshot-1 + +Output:: + + { + "operations": [ + { + "id": "fa74c6d2-03a3-4f42-a7c7-792f124d534b", + "resourceName": "DiskSnapshot-1", + "resourceType": "DiskSnapshot", + "createdAt": 1569625129.739, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationDetails": "Disk-1", + "operationType": "CreateDiskSnapshot", + "status": "Started", + "statusChangedAt": 1569625129.739 + }, + { + "id": "920a25df-185c-4528-87cd-7b85f5488c06", + "resourceName": "Disk-1", + "resourceType": "Disk", + "createdAt": 1569625129.739, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationDetails": "DiskSnapshot-1", + "operationType": "CreateDiskSnapshot", + "status": "Started", + "statusChangedAt": 1569625129.739 + } + ] + } + +**Example 2: To create a snapshot of an instance's system disk** + +The following ``create-disk-snapshot`` example creates a snapshot of the specified instance's system disk. :: + + aws lightsail create-disk-snapshot \ + --instance-name WordPress-1 \ + --disk-snapshot-name SystemDiskSnapshot-1 + +Output:: + + { + "operations": [ + { + "id": "f508cf1c-6597-42a6-a4c3-4aebd75af0d9", + "resourceName": "SystemDiskSnapshot-1", + "resourceType": "DiskSnapshot", + "createdAt": 1569625294.685, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationDetails": "WordPress-1", + "operationType": "CreateDiskSnapshot", + "status": "Started", + "statusChangedAt": 1569625294.685 + }, + { + "id": "0bb9f712-da3b-4d99-b508-3bf871d989e5", + "resourceName": "WordPress-1", + "resourceType": "Instance", + "createdAt": 1569625294.685, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationDetails": "SystemDiskSnapshot-1", + "operationType": "CreateDiskSnapshot", + "status": "Started", + "statusChangedAt": 1569625294.685 + } + ] + } + +For more information, see `Snapshots in Amazon Lightsail `__ and `Creating a snapshot of an instance root volume in Amazon Lightsail `__ in the *Lightsail Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-disk.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-disk.rst new file mode 100644 index 000000000..777e3d916 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-disk.rst @@ -0,0 +1,29 @@ +**To create a block storage disk** + +The following ``create-disk`` example creates a block storage disk ``Disk-1`` in the specified AWS Region and Availability Zone, with 32 GB of storage space. :: + + aws lightsail create-disk \ + --disk-name Disk-1 \ + --availability-zone us-west-2a \ + --size-in-gb 32 + +Output:: + + { + "operations": [ + { + "id": "1c85e2ec-86ba-4697-b936-77f4d3dc013a", + "resourceName": "Disk-1", + "resourceType": "Disk", + "createdAt": 1569449220.36, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationType": "CreateDisk", + "status": "Started", + "statusChangedAt": 1569449220.588 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-domain-entry.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-domain-entry.rst new file mode 100644 index 000000000..265b38953 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-domain-entry.rst @@ -0,0 +1,31 @@ +**To create a domain entry (DNS record)** + +The following ``create-domain-entry`` example creates a DNS record (A) for the apex of the specified domain that points to an instance's IP address. + +**Note:** Lightsail's domain-related API operations are available in only the ``us-east-1`` Region. If your CLI profile is configured to use a different Region, you must include the ``--region us-east-1`` parameter or the command fails. :: + + aws lightsail create-domain-entry \ + --region us-east-1 \ + --domain-name example.com \ + --domain-entry name=example.com,type=A,target=192.0.2.0 + +Output:: + + { + "operation": { + "id": "5be4494d-56f4-41fc-8730-693dcd0ef9e2", + "resourceName": "example.com", + "resourceType": "Domain", + "createdAt": 1569865296.519, + "location": { + "availabilityZone": "all", + "regionName": "global" + }, + "isTerminal": true, + "operationType": "CreateDomainEntry", + "status": "Succeeded", + "statusChangedAt": 1569865296.519 + } + } + +For more information, see `DNS in Amazon Lightsail `__ and `Creating a DNS zone to manage your domain's DNS records in Amazon Lightsail `__ in the *Lightsail Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-domain.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-domain.rst new file mode 100644 index 000000000..55077ffae --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-domain.rst @@ -0,0 +1,30 @@ +**To create a domain (DNS zone)** + +The following ``create-domain`` example creates a DNS zone for the specified domain. + +**Note:** Lightsail's domain-related API operations are available in only the ``us-east-1`` Region. If your CLI profile is configured to use a different Region, you must include the ``--region us-east-1`` parameter or the command fails. :: + + aws lightsail create-domain \ + --region us-east-1 \ + --domain-name example.com + +Output:: + + { + "operation": { + "id": "64e522c8-9ae1-4c05-9b65-3f237324dc34", + "resourceName": "example.com", + "resourceType": "Domain", + "createdAt": 1569864291.92, + "location": { + "availabilityZone": "all", + "regionName": "global" + }, + "isTerminal": true, + "operationType": "CreateDomain", + "status": "Succeeded", + "statusChangedAt": 1569864292.109 + } + } + +For more information, see `DNS in Amazon Lightsail `__ and `Creating a DNS zone to manage your domain's DNS records in Amazon Lightsail `__ in the *Lightsail Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-instance-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-instance-snapshot.rst new file mode 100644 index 000000000..393d622c4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-instance-snapshot.rst @@ -0,0 +1,44 @@ +**To create a snapshot of an instance** + +The following ``create-instance-snapshot`` example creates a snapshot from the specified instance. :: + + aws lightsail create-instance-snapshot \ + --instance-name WordPress-1 \ + --instance-snapshot-name WordPress-Snapshot-1 + +Output:: + + { + "operations": [ + { + "id": "4c3db559-9dd0-41e7-89c0-2cb88c19786f", + "resourceName": "WordPress-Snapshot-1", + "resourceType": "InstanceSnapshot", + "createdAt": 1569866438.48, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationDetails": "WordPress-1", + "operationType": "CreateInstanceSnapshot", + "status": "Started", + "statusChangedAt": 1569866438.48 + }, + { + "id": "c04fdc45-2981-488c-88b5-d6d2fd759a6a", + "resourceName": "WordPress-1", + "resourceType": "Instance", + "createdAt": 1569866438.48, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationDetails": "WordPress-Snapshot-1", + "operationType": "CreateInstanceSnapshot", + "status": "Started", + "statusChangedAt": 1569866438.48 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-instances-from-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-instances-from-snapshot.rst new file mode 100644 index 000000000..a432a1d82 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-instances-from-snapshot.rst @@ -0,0 +1,32 @@ +**To create an instance from a snapshot** + +The following ``create-instances-from-snapshot`` example creates an instance from the specified instance snapshot, in the specified AWS Region and Availability Zone, using the $12 USD bundle. + +**Note:** The bundle that you specify must be equal to or greater in specifications than the bundle of the original source instance used to create the snapshot. :: + + aws lightsail create-instances-from-snapshot \ + --instance-snapshot-name WordPress-1-1569866208 \ + --instance-names WordPress-2 \ + --availability-zone us-west-2a \ + --bundle-id small_3_0 + +Output:: + + { + "operations": [ + { + "id": "003f8271-b711-464d-b9b8-7f3806cb496e", + "resourceName": "WordPress-2", + "resourceType": "Instance", + "createdAt": 1569865914.908, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationType": "CreateInstancesFromSnapshot", + "status": "Started", + "statusChangedAt": 1569865914.908 + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-instances.rst new file mode 100644 index 000000000..bcf2d49cf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-instances.rst @@ -0,0 +1,89 @@ +**Example 1: To create a single instance** + +The following ``create-instances`` example creates an instance in the specified AWS Region and Availability Zone, using the WordPress blueprint, and the $5.00 USD bundle. :: + + aws lightsail create-instances \ + --instance-names Instance-1 \ + --availability-zone us-west-2a \ + --blueprint-id wordpress \ + --bundle-id nano_3_0 + +Output:: + + { + "operations": [ + { + "id": "9a77158f-7be3-4d6d-8054-cf5ae2b720cc", + "resourceName": "Instance-1", + "resourceType": "Instance", + "createdAt": 1569447986.061, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationType": "CreateInstance", + "status": "Started", + "statusChangedAt": 1569447986.061 + } + ] + } + +**Example 2: To create multiple instances at one time** + +The following ``create-instances`` example creates three instances in the specified AWS Region and Availability Zone, using the WordPress blueprint, and the $5.00 USD bundle. :: + + aws lightsail create-instances \ + --instance-names {"Instance1","Instance2","Instance3"} \ + --availability-zone us-west-2a \ + --blueprint-id wordpress \ + --bundle-id nano_3_0 + +Output:: + + { + "operations": [ + { + "id": "5492f015-9d2e-48c6-8eea-b516840e6903", + "resourceName": "Instance1", + "resourceType": "Instance", + "createdAt": 1569448780.054, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationType": "CreateInstance", + "status": "Started", + "statusChangedAt": 1569448780.054 + }, + { + "id": "c58b5f46-2676-44c8-b95c-3ad375898515", + "resourceName": "Instance2", + "resourceType": "Instance", + "createdAt": 1569448780.054, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationType": "CreateInstance", + "status": "Started", + "statusChangedAt": 1569448780.054 + }, + { + "id": "a5ad8006-9bee-4499-9eb7-75e42e6f5882", + "resourceName": "Instance3", + "resourceType": "Instance", + "createdAt": 1569448780.054, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationType": "CreateInstance", + "status": "Started", + "statusChangedAt": 1569448780.054 + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-key-pair.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-key-pair.rst new file mode 100644 index 000000000..f2f2ccda7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-key-pair.rst @@ -0,0 +1,39 @@ +**To create a key pair** + +The following ``create-key-pair`` example creates a key pair that you can use to authenticate and connect to an instance. :: + + aws lightsail create-key-pair \ + --key-pair-name MyPersonalKeyPair + +The output provides the private key base64 value that you can use to authenticate to instances that use the created key pair. +**Note:** Copy and paste the private key base64 value to a safe location because you cannot retrieve it later. :: + + { + "keyPair": { + "name": "MyPersonalKeyPair", + "arn": "arn:aws:lightsail:us-west-2:111122223333:KeyPair/55025c71-198f-403b-b42f-a69433e724fb", + "supportCode": "621291663362/MyPersonalKeyPair", + "createdAt": 1569866556.567, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "resourceType": "KeyPair" + }, + "publicKeyBase64": "ssh-rsa ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCV0xUEwx96amPERH7K1bVT1tTFl9OmNk6o7m5YVHk9xlOdMbDRbFvhtXvw4jzJXXz5pBMxWOaGMz5K8QyTVOznoqp13Z8SBooH29hgmBNXiII1XPzEwqbj8mfo1+YVM5s5VuxWwm+BHUgedGUXno6uF7agqxZNO1kPLJBIVTW26SSYBJ0tE+y804UyVsjrbUqCaMXDhmfXpWulMPwuXhwcKh7e8hwoTfkiX0E6Ql+KqF/MiA3w6DCjEqvvdIO7SiEZJFsuGNfYDDN3w60Rel5MUhmn3OJdn4y/A7NWb3IxL4pPfVE4rgFRKU8n1jp9kwRnlVMVBOWuGXk6n+H6M2f1 ", + "privateKeyBase64": "-----BEGIN RSA PRIVATE KEY-----EXAMPLETCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC\nVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6\nb24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsEXAMPLEd\nBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN\nMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD\nVQQHEwdTZWF0dGxlMQ8wDQEXAMPLEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z\nb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt\nYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMEXAMPLE4GmWIWJ\n21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T\nrDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE\nIbb3OhjZnzcvQAaREXAMPLEMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4\nnUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb\nFFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OEXAMPLELvjx79LjSTb\nNYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=\n-----END RSA PRIVATE KEY-----", + "operation": { + "id": "67f984db-9994-45fe-ad38-59bafcaf82ef", + "resourceName": "MyPersonalKeyPair", + "resourceType": "KeyPair", + "createdAt": 1569866556.567, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationType": "CreateKeyPair", + "status": "Succeeded", + "statusChangedAt": 1569866556.704 + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-load-balancer-tls-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-load-balancer-tls-certificate.rst new file mode 100644 index 000000000..9aeca5cc9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-load-balancer-tls-certificate.rst @@ -0,0 +1,47 @@ +**To create a TLS certificate for a load balancer** + +The following ``create-load-balancer-tls-certificate`` example creates a TLS certificate that is attached to the specified load balancer. The certificate created applies to the specified domains. +**Note:** Only two certificates can be created for a load balancer. :: + + aws lightsail create-load-balancer-tls-certificate \ + --certificate-alternative-names abc.example.com \ + --certificate-domain-name example.com \ + --certificate-name MySecondCertificate \ + --load-balancer-name MyFirstLoadBalancer + +Output:: + + { + "operations": [ + { + "id": "be663aed-cb46-41e2-9b23-e2f747245bd4", + "resourceName": "MySecondCertificate", + "resourceType": "LoadBalancerTlsCertificate", + "createdAt": 1569867364.971, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationDetails": "MyFirstLoadBalancer", + "operationType": "CreateLoadBalancerTlsCertificate", + "status": "Succeeded", + "statusChangedAt": 1569867365.219 + }, + { + "id": "f3dfa930-969e-41cc-ac7d-337178716f6d", + "resourceName": "MyFirstLoadBalancer", + "resourceType": "LoadBalancer", + "createdAt": 1569867364.971, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationDetails": "MySecondCertificate", + "operationType": "CreateLoadBalancerTlsCertificate", + "status": "Succeeded", + "statusChangedAt": 1569867365.219 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-load-balancer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-load-balancer.rst new file mode 100644 index 000000000..50dfa26d6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-load-balancer.rst @@ -0,0 +1,63 @@ +**To create a load balancer** + +The following ``create-load-balancer`` example creates a load balancer with a TLS certificate. The TLS certificate applies to the specified domains, and routes traffic to instances on port 80. :: + + aws lightsail create-load-balancer \ + --certificate-alternative-names www.example.com test.example.com \ + --certificate-domain-name example.com \ + --certificate-name Certificate-1 \ + --instance-port 80 \ + --load-balancer-name LoadBalancer-1 + +Output:: + + { + "operations": [ + { + "id": "cc7b920a-83d8-4762-a74e-9174fe1540be", + "resourceName": "LoadBalancer-1", + "resourceType": "LoadBalancer", + "createdAt": 1569867169.406, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationType": "CreateLoadBalancer", + "status": "Started", + "statusChangedAt": 1569867169.406 + }, + { + "id": "658ed43b-f729-42f3-a8e4-3f8024d3c98d", + "resourceName": "LoadBalancer-1", + "resourceType": "LoadBalancerTlsCertificate", + "createdAt": 1569867170.193, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationDetails": "LoadBalancer-1", + "operationType": "CreateLoadBalancerTlsCertificate", + "status": "Succeeded", + "statusChangedAt": 1569867170.54 + }, + { + "id": "4757a342-5181-4870-b1e0-227eebc35ab5", + "resourceName": "LoadBalancer-1", + "resourceType": "LoadBalancer", + "createdAt": 1569867170.193, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationDetails": "Certificate-1", + "operationType": "CreateLoadBalancerTlsCertificate", + "status": "Succeeded", + "statusChangedAt": 1569867170.54 + } + ] + } + +For more information, see `Lightsail load balancers `__ in the *Lightsail Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-relational-database-from-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-relational-database-from-snapshot.rst new file mode 100644 index 000000000..84a0dbfcd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-relational-database-from-snapshot.rst @@ -0,0 +1,32 @@ +**To create a managed database from a snapshot** + +The following ``create-relational-database-from-snapshot`` example creates a managed database from the specified snapshot in the specified AWS Region and Availability Zone, using the $15 USD standard database bundle. +**Note:** The bundle that you specify must be equal to or greater in specifications than the bundle of the original source database used to create the snapshot. :: + + aws lightsail create-relational-database-from-snapshot \ + --relational-database-snapshot-name Database-Oregon-1-1566839359 \ + --relational-database-name Database-1 \ + --availability-zone us-west-2a \ + --relational-database-bundle-id micro_1_0 \ + --no-publicly-accessible + +Output:: + + { + "operations": [ + { + "id": "ad6d9193-9d5c-4ea1-97ae-8fe6de600b4c", + "resourceName": "Database-1", + "resourceType": "RelationalDatabase", + "createdAt": 1569867916.938, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationType": "CreateRelationalDatabaseFromSnapshot", + "status": "Started", + "statusChangedAt": 1569867918.643 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-relational-database-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-relational-database-snapshot.rst new file mode 100644 index 000000000..bf10bdad0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-relational-database-snapshot.rst @@ -0,0 +1,44 @@ +**To create a snapshot of a managed database** + +The following ``create-relational-database-snapshot`` example creates a snapshot of the specified managed database. :: + + aws lightsail create-relational-database-snapshot \ + --relational-database-name Database1 \ + --relational-database-snapshot-name RelationalDatabaseSnapshot1 + +Output:: + + { + "operations": [ + { + "id": "853667fb-ea91-4c02-8d20-8fc5fd43b9eb", + "resourceName": "RelationalDatabaseSnapshot1", + "resourceType": "RelationalDatabaseSnapshot", + "createdAt": 1569868074.645, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationDetails": "Database1", + "operationType": "CreateRelationalDatabaseSnapshot", + "status": "Started", + "statusChangedAt": 1569868074.645 + }, + { + "id": "fbafa521-3cac-4be8-9773-1c143780b239", + "resourceName": "Database1", + "resourceType": "RelationalDatabase", + "createdAt": 1569868074.645, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationDetails": "RelationalDatabaseSnapshot1", + "operationType": "CreateRelationalDatabaseSnapshot", + "status": "Started", + "statusChangedAt": 1569868074.645 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-relational-database.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-relational-database.rst new file mode 100644 index 000000000..69c7db9b6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/create-relational-database.rst @@ -0,0 +1,33 @@ +**To create a managed database** + +The following ``create-relational-database`` example creates a managed database in the specified AWS Region and Availability Zone, using the MySQL 5.6 database engine (mysql_5_6), and the $15 USD standard database bundle (micro_1_0). The managed database is pre-populated a master user name, and is not publicly accessible. :: + + aws lightsail create-relational-database \ + --relational-database-name Database-1 \ + --availability-zone us-west-2a \ + --relational-database-blueprint-id mysql_5_6 \ + --relational-database-bundle-id micro_1_0 \ + --master-database-name dbmaster \ + --master-username user \ + --no-publicly-accessible + +Output:: + + { + "operations": [ + { + "id": "b52bedee-73ed-4798-8d2a-9c12df89adcd", + "resourceName": "Database-1", + "resourceType": "RelationalDatabase", + "createdAt": 1569450017.244, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationType": "CreateRelationalDatabase", + "status": "Started", + "statusChangedAt": 1569450018.637 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-auto-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-auto-snapshot.rst new file mode 100644 index 000000000..a9adb05e1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-auto-snapshot.rst @@ -0,0 +1,30 @@ +**To delete an automatic snapshot** + +The following ``delete-auto-snapshot`` example deletes the automatic snapshot ``2019-10-10`` of instance ``WordPress-1``. :: + + aws lightsail delete-auto-snapshot \ + --resource-name WordPress-1 \ + --date 2019-10-10 + +Output:: + + { + "operations": [ + { + "id": "31c36e09-3d52-46d5-b6d8-7EXAMPLE534a", + "resourceName": "WordPress-1", + "resourceType": "Instance", + "createdAt": 1571088141.501, + "location": { + "availabilityZone": "us-west-2", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationDetails": "DeleteAutoSnapshot-2019-10-10", + "operationType": "DeleteAutoSnapshot", + "status": "Succeeded" + } + ] + } + +For more information, see `Deleting automatic snapshots of instances or disks in Amazon Lightsail `__ in the *Lightsail Dev Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-disk-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-disk-snapshot.rst new file mode 100644 index 000000000..4334d6ae6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-disk-snapshot.rst @@ -0,0 +1,27 @@ +**To delete a snapshot of a block storage disk** + +The following ``delete-disk-snapshot`` example deletes the specified snapshot of a block storage disk :: + + aws lightsail delete-disk-snapshot \ + --disk-snapshot-name DiskSnapshot-1 + +Output:: + + { + "operations": [ + { + "id": "d1e5766d-b81e-4595-ad5d-02afbccfcd5d", + "resourceName": "DiskSnapshot-1", + "resourceType": "DiskSnapshot", + "createdAt": 1569873552.79, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationType": "DeleteDiskSnapshot", + "status": "Succeeded", + "statusChangedAt": 1569873552.79 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-disk.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-disk.rst new file mode 100644 index 000000000..2d971506e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-disk.rst @@ -0,0 +1,27 @@ +**To delete a block storage disk** + +The following ``delete-disk`` example deletes the specified block storage disk. :: + + aws lightsail delete-disk \ + --disk-name Disk-1 + +Output:: + + { + "operations": [ + { + "id": "6378c70f-4d75-4f7a-ab66-730fca0bb2fc", + "resourceName": "Disk-1", + "resourceType": "Disk", + "createdAt": 1569872887.864, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationType": "DeleteDisk", + "status": "Succeeded", + "statusChangedAt": 1569872887.864 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-domain-entry.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-domain-entry.rst new file mode 100644 index 000000000..c2da856b6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-domain-entry.rst @@ -0,0 +1,29 @@ +**To delete a domain entry (DNS record)** + +The following ``delete-domain-entry`` example deletes the specified domain entry from an existing domain. + +**Note:** Lightsail's domain-related API operations are available in only the ``us-east-1`` Region. If your CLI profile is configured to use a different Region, you must include the ``--region us-east-1`` parameter or the command fails. :: + + aws lightsail delete-domain-entry \ + --region us-east-1 \ + --domain-name example.com \ + --domain-entry name=123.example.com,target=192.0.2.0,type=A + +Output:: + + { + "operation": { + "id": "06eacd01-d785-420e-8daa-823150c7dca1", + "resourceName": "example.com ", + "resourceType": "Domain", + "createdAt": 1569874157.005, + "location": { + "availabilityZone": "all", + "regionName": "global" + }, + "isTerminal": true, + "operationType": "DeleteDomainEntry", + "status": "Succeeded", + "statusChangedAt": 1569874157.005 + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-domain.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-domain.rst new file mode 100644 index 000000000..061e273bf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-domain.rst @@ -0,0 +1,28 @@ +**To delete a domain (DNS zone)** + +The following ``delete-domain`` example deletes the specified domain and all of the entries in the domain (DNS records). + +**Note:** Lightsail's domain-related API operations are available in only the ``us-east-1`` Region. If your CLI profile is configured to use a different Region, you must include the ``--region us-east-1`` parameter or the command fails. :: + + aws lightsail delete-domain \ + --region us-east-1 \ + --domain-name example.com + +Output:: + + { + "operation": { + "id": "fcef5265-5af1-4a46-a3d7-90b5e18b9b32", + "resourceName": "example.com", + "resourceType": "Domain", + "createdAt": 1569873788.13, + "location": { + "availabilityZone": "all", + "regionName": "global" + }, + "isTerminal": true, + "operationType": "DeleteDomain", + "status": "Succeeded", + "statusChangedAt": 1569873788.13 + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-instance-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-instance-snapshot.rst new file mode 100644 index 000000000..ed4090248 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-instance-snapshot.rst @@ -0,0 +1,27 @@ +**title** + +The following ``delete-instance-snapshot`` example deletes the specified snapshot of an instance. :: + + aws lightsail delete-instance-snapshot \ + --instance-snapshot-name WordPress-1-Snapshot-1 + +Output:: + + { + "operations": [ + { + "id": "14dad182-976a-46c6-bfd4-9480482bf0ea", + "resourceName": "WordPress-1-Snapshot-1", + "resourceType": "InstanceSnapshot", + "createdAt": 1569874524.562, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationType": "DeleteInstanceSnapshot", + "status": "Succeeded", + "statusChangedAt": 1569874524.562 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-instance.rst new file mode 100644 index 000000000..dead7d29b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-instance.rst @@ -0,0 +1,57 @@ +**To delete an instance** + +The following ``delete-instance`` example deletes the specified instance. :: + + aws lightsail delete-instance \ + --instance-name WordPress-1 + +Output:: + + { + "operations": [ + { + "id": "d77345a3-8f80-4d2e-b47d-aaa622718df2", + "resourceName": "Disk-1", + "resourceType": "Disk", + "createdAt": 1569874357.469, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationDetails": "WordPress-1", + "operationType": "DetachDisk", + "status": "Started", + "statusChangedAt": 1569874357.469 + }, + { + "id": "708fa606-2bfd-4e48-a2c1-0b856585b5b1", + "resourceName": "WordPress-1", + "resourceType": "Instance", + "createdAt": 1569874357.465, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationDetails": "Disk-1", + "operationType": "DetachDisk", + "status": "Started", + "statusChangedAt": 1569874357.465 + }, + { + "id": "3187e823-8acb-405d-b098-fad5ceb17bec", + "resourceName": "WordPress-1", + "resourceType": "Instance", + "createdAt": 1569874357.829, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationType": "DeleteInstance", + "status": "Succeeded", + "statusChangedAt": 1569874357.829 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-key-pair.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-key-pair.rst new file mode 100644 index 000000000..411466fd0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-key-pair.rst @@ -0,0 +1,25 @@ +**To delete a key pair** + +The following ``delete-key-pair`` example deletes the specified key pair. :: + + aws lightsail delete-key-pair \ + --key-pair-name MyPersonalKeyPair + +Output:: + + { + "operation": { + "id": "81621463-df38-4810-b866-6e801a15abbf", + "resourceName": "MyPersonalKeyPair", + "resourceType": "KeyPair", + "createdAt": 1569874626.466, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationType": "DeleteKeyPair", + "status": "Succeeded", + "statusChangedAt": 1569874626.685 + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-known-host-keys.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-known-host-keys.rst new file mode 100644 index 000000000..58a28ad25 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-known-host-keys.rst @@ -0,0 +1,29 @@ +**To delete known host keys from an instance** + +The following ``delete-known-host-keys`` example deletes the known host key from the specified instance. :: + + aws lightsail delete-known-host-keys \ + --instance-name Instance-1 + +Output:: + + { + "operations": [ + { + "id": "c61afe9c-45a4-41e6-a97e-d212364da3f5", + "resourceName": "Instance-1", + "resourceType": "Instance", + "createdAt": 1569874760.201, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationType": "DeleteKnownHostKeys", + "status": "Succeeded", + "statusChangedAt": 1569874760.201 + } + ] + } + +For more information, see `Troubleshooting connection issues with the Amazon Lightsail browser-based SSH or RDP client `__ in the *Lightsail Dev Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-load-balancer-tls-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-load-balancer-tls-certificate.rst new file mode 100644 index 000000000..a3ca3279f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-load-balancer-tls-certificate.rst @@ -0,0 +1,42 @@ +**To delete a TLS certificate for a load balancer** + +The following ``delete-load-balancer-tls-certificate`` example deletes the specifie TLS certificate from the specified load balancer. :: + + aws lightsail delete-load-balancer-tls-certificate \ + --load-balancer-name MyFirstLoadBalancer \ + --certificate-name MyFirstCertificate + +Output:: + + { + "operations": [ + { + "id": "50bec274-e45e-4caa-8a69-b763ef636583", + "resourceName": "MyFirstCertificate", + "resourceType": "LoadBalancerTlsCertificate", + "createdAt": 1569874989.48, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationType": "DeleteLoadBalancerTlsCertificate", + "status": "Started", + "statusChangedAt": 1569874989.48 + }, + { + "id": "78c58cdc-a59a-4b27-8213-500638634a8f", + "resourceName": "MyFirstLoadBalancer", + "resourceType": "LoadBalancer", + "createdAt": 1569874989.48, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationType": "DeleteLoadBalancerTlsCertificate", + "status": "Started", + "statusChangedAt": 1569874989.48 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-load-balancer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-load-balancer.rst new file mode 100644 index 000000000..8ad6e200e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-load-balancer.rst @@ -0,0 +1,57 @@ +**To delete a load balancer** + +The following ``delete-load-balancer`` example deletes the specified load balancer and any associated TLS certificates. :: + + aws lightsail delete-load-balancer \ + --load-balancer-name MyFirstLoadBalancer + +Output:: + + { + "operations": [ + { + "id": "a8c968c7-72a3-4680-a714-af8f03eea535", + "resourceName": "MyFirstLoadBalancer", + "resourceType": "LoadBalancer", + "createdAt": 1569875092.125, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationType": "DeleteLoadBalancer", + "status": "Succeeded", + "statusChangedAt": 1569875092.125 + }, + { + "id": "f91a29fc-8ce3-4e69-a227-ea70ca890bf5", + "resourceName": "MySecondCertificate", + "resourceType": "LoadBalancerTlsCertificate", + "createdAt": 1569875091.938, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationType": "DeleteLoadBalancerTlsCertificate", + "status": "Started", + "statusChangedAt": 1569875091.938 + }, + { + "id": "cf64c060-154b-4eb4-ba57-84e2e41563d6", + "resourceName": "MyFirstLoadBalancer", + "resourceType": "LoadBalancer", + "createdAt": 1569875091.94, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationType": "DeleteLoadBalancerTlsCertificate", + "status": "Started", + "statusChangedAt": 1569875091.94 + } + ] + } + +For more information, see `title `__ in the *guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-relational-database-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-relational-database-snapshot.rst new file mode 100644 index 000000000..b003c5444 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-relational-database-snapshot.rst @@ -0,0 +1,27 @@ +**To delete a snapshot of a managed database** + +The following ``delete-relational-database-snapshot`` example deletes the specified snapshot of a managed database. :: + + aws lightsail delete-relational-database-snapshot \ + --relational-database-snapshot-name Database-Oregon-1-1566839359 + +Output:: + + { + "operations": [ + { + "id": "b99acae8-735b-4823-922f-30af580e3729", + "resourceName": "Database-Oregon-1-1566839359", + "resourceType": "RelationalDatabaseSnapshot", + "createdAt": 1569875293.58, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationType": "DeleteRelationalDatabaseSnapshot", + "status": "Succeeded", + "statusChangedAt": 1569875293.58 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-relational-database.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-relational-database.rst new file mode 100644 index 000000000..ef4ba74ba --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/delete-relational-database.rst @@ -0,0 +1,57 @@ +**To delete a managed database** + +The following ``delete-relational-database`` example deletes the specified managed database. :: + + aws lightsail delete-relational-database \ + --relational-database-name Database-1 + +Output:: + + { + "operations": [ + { + "id": "3b0c41c1-053d-46f0-92a3-14f76141dc86", + "resourceName": "Database-1", + "resourceType": "RelationalDatabase", + "createdAt": 1569875210.999, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationType": "DeleteRelationalDatabase", + "status": "Started", + "statusChangedAt": 1569875210.999 + }, + { + "id": "01ddeae8-a87a-4a4b-a1f3-092c71bf9180", + "resourceName": "Database-1", + "resourceType": "RelationalDatabase", + "createdAt": 1569875211.029, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationDetails": "Database-1-FinalSnapshot-1569875210793", + "operationType": "CreateRelationalDatabaseSnapshot", + "status": "Started", + "statusChangedAt": 1569875211.029 + }, + { + "id": "74d73681-30e8-4532-974e-1f23cd3f9f73", + "resourceName": "Database-1-FinalSnapshot-1569875210793", + "resourceType": "RelationalDatabaseSnapshot", + "createdAt": 1569875211.029, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationDetails": "Database-1", + "operationType": "CreateRelationalDatabaseSnapshot", + "status": "Started", + "statusChangedAt": 1569875211.029 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/detach-static-ip.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/detach-static-ip.rst new file mode 100644 index 000000000..062b5f363 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/detach-static-ip.rst @@ -0,0 +1,43 @@ +**To detach a static IP from an instance** + +The following ``detach-static-ip`` example detaches static IP ``StaticIp-1`` from any attached instance. :: + + aws lightsail detach-static-ip \ + --static-ip-name StaticIp-1 + +Output:: + + { + "operations": [ + { + "id": "2a43d8a3-9f2d-4fe7-bdd0-eEXAMPLE3cf3", + "resourceName": "StaticIp-1", + "resourceType": "StaticIp", + "createdAt": 1571088261.999, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationDetails": "MEAN-1", + "operationType": "DetachStaticIp", + "status": "Succeeded", + "statusChangedAt": 1571088261.999 + }, + { + "id": "41a7d40c-74e8-4d2e-a837-cEXAMPLEf747", + "resourceName": "MEAN-1", + "resourceType": "Instance", + "createdAt": 1571088262.022, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationDetails": "StaticIp-1", + "operationType": "DetachStaticIp", + "status": "Succeeded", + "statusChangedAt": 1571088262.022 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-active-names.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-active-names.rst new file mode 100644 index 000000000..202498b03 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-active-names.rst @@ -0,0 +1,16 @@ +**To get active resource names** + +The following ``get-active-names`` example returns the active resource names in the configured AWS Region. :: + + aws lightsail get-active-names + +Output:: + + { + "activeNames": [ + "WordPress-1", + "StaticIp-1", + "MEAN-1", + "Plesk_Hosting_Stack_on_Ubuntu-1" + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-auto-snapshots.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-auto-snapshots.rst new file mode 100644 index 000000000..588bc50a3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-auto-snapshots.rst @@ -0,0 +1,41 @@ +**To get the available automatic snapshots for an instance** + +The following ``get-auto-snapshots`` example returns the available automatic snapshots for instance ``WordPress-1``. :: + + aws lightsail get-auto-snapshots \ + --resource-name WordPress-1 + +Output:: + + { + "resourceName": "WordPress-1", + "resourceType": "Instance", + "autoSnapshots": [ + { + "date": "2019-10-14", + "createdAt": 1571033872.0, + "status": "Success", + "fromAttachedDisks": [] + }, + { + "date": "2019-10-13", + "createdAt": 1570947473.0, + "status": "Success", + "fromAttachedDisks": [] + }, + { + "date": "2019-10-12", + "createdAt": 1570861072.0, + "status": "Success", + "fromAttachedDisks": [] + }, + { + "date": "2019-10-11", + "createdAt": 1570774672.0, + "status": "Success", + "fromAttachedDisks": [] + } + ] + } + +For more information, see `Keeping automatic snapshots of instances or disks in Amazon Lightsail `__ in the *Lightsail Dev Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-blueprints.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-blueprints.rst new file mode 100644 index 000000000..04c6d84cf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-blueprints.rst @@ -0,0 +1,56 @@ +**To get the blueprints for new instances** + +The following ``get-blueprints`` example displays details about all of the available blueprints that can be used to create new instances in Amazon Lightsail. :: + + aws lightsail get-blueprints + +Output:: + + { + "blueprints": [ + { + "blueprintId": "wordpress", + "name": "WordPress", + "group": "wordpress", + "type": "app", + "description": "Bitnami, the leaders in application packaging, and Automattic, the experts behind WordPress, have teamed up to offer this official WordPress image. This image is a pre-configured, ready-to-run image for running WordPress on Amazon Lightsail. WordPress is the world's most popular content management platform. Whether it's for an enterprise or small business website, or a personal or corporate blog, content authors can easily create content using its new Gutenberg editor, and developers can extend the base platform with additional features. Popular plugins like Jetpack, Akismet, All in One SEO Pack, WP Mail, Google Analytics for WordPress, and Amazon Polly are all pre-installed in this image. Let's Encrypt SSL certificates are supported through an auto-configuration script.", + "isActive": true, + "minPower": 0, + "version": "6.5.3-0", + "versionCode": "1", + "productUrl": "https://aws.amazon.com/marketplace/pp/B00NN8Y43U", + "licenseUrl": "https://aws.amazon.com/marketplace/pp/B00NN8Y43U#pdp-usage", + "platform": "LINUX_UNIX" + }, + { + "blueprintId": "lamp_8_bitnami", + "name": "LAMP (PHP 8)", + "group": "lamp_8", + "type": "app", + "description": "LAMP with PHP 8.X packaged by Bitnami enables you to quickly start building your websites and applications by providing a coding framework. As a developer, it provides standalone project directories to store your applications. This blueprint is configured for production environments. It includes SSL auto-configuration with Let's Encrypt certificates, and the latest releases of PHP, Apache, and MariaDB on Linux. This application also includes phpMyAdmin, PHP main modules and Composer.", + "isActive": true, + "minPower": 0, + "version": "8.2.18-4", + "versionCode": "1", + "productUrl": "https://aws.amazon.com/marketplace/pp/prodview-6g3gzfcih6dvu", + "licenseUrl": "https://aws.amazon.com/marketplace/pp/prodview-6g3gzfcih6dvu#pdp-usage", + "platform": "LINUX_UNIX" + }, + { + "blueprintId": "nodejs", + "name": "Node.js", + "group": "node", + "type": "app", + "description": "Node.js packaged by Bitnami is a pre-configured, ready to run image for Node.js on Amazon EC2. It includes the latest version of Node.js, Apache, Python and Redis. The image supports multiple Node.js applications, each with its own virtual host and project directory. It is configured for production use and is secure by default, as all ports except HTTP, HTTPS and SSH ports are closed. Let's Encrypt SSL certificates are supported through an auto-configuration script. Developers benefit from instant access to a secure, update and consistent Node.js environment without having to manually install and configure multiple components and libraries.", + "isActive": true, + "minPower": 0, + "version": "18.20.2-0", + "versionCode": "1", + "productUrl": "https://aws.amazon.com/marketplace/pp/B00NNZUAKO", + "licenseUrl": "https://aws.amazon.com/marketplace/pp/B00NNZUAKO#pdp-usage", + "platform": "LINUX_UNIX" + }, + ... + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-bundles.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-bundles.rst new file mode 100644 index 000000000..b2c95da02 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-bundles.rst @@ -0,0 +1,59 @@ +**To get the bundles for new instances** + +The following ``get-bundles`` example displays details about all of the available bundles that can be used to create new instances in Amazon Lightsail. :: + + aws lightsail get-bundles + +Output:: + + { + "bundles": [ + { + "price": 5.0, + "cpuCount": 2, + "diskSizeInGb": 20, + "bundleId": "nano_3_0", + "instanceType": "nano", + "isActive": true, + "name": "Nano", + "power": 298, + "ramSizeInGb": 0.5, + "transferPerMonthInGb": 1024, + "supportedPlatforms": [ + "LINUX_UNIX" + ] + }, + { + "price": 7.0, + "cpuCount": 2, + "diskSizeInGb": 40, + "bundleId": "micro_3_0", + "instanceType": "micro", + "isActive": true, + "name": "Micro", + "power": 500, + "ramSizeInGb": 1.0, + "transferPerMonthInGb": 2048, + "supportedPlatforms": [ + "LINUX_UNIX" + ] + }, + { + "price": 12.0, + "cpuCount": 2, + "diskSizeInGb": 60, + "bundleId": "small_3_0", + "instanceType": "small", + "isActive": true, + "name": "Small", + "power": 1000, + "ramSizeInGb": 2.0, + "transferPerMonthInGb": 3072, + "supportedPlatforms": [ + "LINUX_UNIX" + ] + }, + ... + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-cloud-formation-stack-records.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-cloud-formation-stack-records.rst new file mode 100644 index 000000000..89ecfffca --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-cloud-formation-stack-records.rst @@ -0,0 +1,34 @@ +**To get the CloudFormation stack records and their associated stacks** + +The following ``get-cloud-formation-stack-records`` example displays details about the CloudFormation stack records and their associated stacks used to create Amazon EC2 resources from exported Amazon Lightsail snapshots. :: + + aws lightsail get-cloud-formation-stack-records + +Output:: + + { + "cloudFormationStackRecords": [ + { + "name": "CloudFormationStackRecord-588a4243-e2d1-490d-8200-3a7513ecebdf", + "arn": "arn:aws:lightsail:us-west-2:111122223333:CloudFormationStackRecord/28d646ab-27bc-48d9-a422-1EXAMPLE6d37", + "createdAt": 1565301666.586, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "resourceType": "CloudFormationStackRecord", + "state": "Succeeded", + "sourceInfo": [ + { + "resourceType": "ExportSnapshotRecord", + "name": "ExportSnapshotRecord-e02f23d7-0453-4aa9-9c95-91aa01a141dd", + "arn": "arn:aws:lightsail:us-west-2:111122223333:ExportSnapshotRecord/f12b8792-f3ea-4d6f-b547-2EXAMPLE8796" + } + ], + "destinationInfo": { + "id": "arn:aws:cloudformation:us-west-2:111122223333:stack/Lightsail-Stack-588a4243-e2d1-490d-8200-3EXAMPLEebdf/063203b0-ba28-11e9-838b-0EXAMPLE8b00", + "service": "Aws::CloudFormation::Stack" + } + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-disk-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-disk-snapshot.rst new file mode 100644 index 000000000..066ae3262 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-disk-snapshot.rst @@ -0,0 +1,31 @@ +**To get information about a disk snapshot** + +The following ``get-disk-snapshot`` example displays details about the disk snapshot ``Disk-1-1566839161``. :: + + aws lightsail get-disk-snapshot \ + --disk-snapshot-name Disk-1-1566839161 + +Output:: + + { + "diskSnapshot": { + "name": "Disk-1-1566839161", + "arn": "arn:aws:lightsail:us-west-2:111122223333:DiskSnapshot/e2d0fa53-8ee0-41a0-8e56-0EXAMPLE1051", + "supportCode": "6EXAMPLE3362/snap-0EXAMPLE06100d09", + "createdAt": 1566839163.749, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "resourceType": "DiskSnapshot", + "tags": [], + "sizeInGb": 8, + "state": "completed", + "progress": "100%", + "fromDiskName": "Disk-1", + "fromDiskArn": "arn:aws:lightsail:us-west-2:111122223333:Disk/c21cfb0a-07f2-44ae-9a23-bEXAMPLE8096", + "isFromAutoSnapshot": false + } + } + +For more information, see `title `__ in the *guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-disk-snapshots.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-disk-snapshots.rst new file mode 100644 index 000000000..e19afaf41 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-disk-snapshots.rst @@ -0,0 +1,48 @@ +**To get information about all disk snapshots** + +The following ``get-disk-snapshots`` example displays details about all of the disk snapshots in the configured AWS Region. :: + + aws lightsail get-disk-snapshots + +Output:: + + { + "diskSnapshots": [ + { + "name": "Disk-2-1571090588", + "arn": "arn:aws:lightsail:us-west-2:111122223333:DiskSnapshot/32e889a9-38d4-4687-9f21-eEXAMPLE7839", + "supportCode": "6EXAMPLE3362/snap-0EXAMPLE1ca192a4", + "createdAt": 1571090591.226, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "resourceType": "DiskSnapshot", + "tags": [], + "sizeInGb": 8, + "state": "completed", + "progress": "100%", + "fromDiskName": "Disk-2", + "fromDiskArn": "arn:aws:lightsail:us-west-2:111122223333:Disk/6a343ff8-6341-422d-86e2-bEXAMPLE16c2", + "isFromAutoSnapshot": false + }, + { + "name": "Disk-1-1566839161", + "arn": "arn:aws:lightsail:us-west-2:111122223333:DiskSnapshot/e2d0fa53-8ee0-41a0-8e56-0EXAMPLE1051", + "supportCode": "6EXAMPLE3362/snap-0EXAMPLEe06100d09", + "createdAt": 1566839163.749, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "resourceType": "DiskSnapshot", + "tags": [], + "sizeInGb": 8, + "state": "completed", + "progress": "100%", + "fromDiskName": "Disk-1", + "fromDiskArn": "arn:aws:lightsail:us-west-2:111122223333:Disk/c21cfb0a-07f2-44ae-9a23-bEXAMPLE8096", + "isFromAutoSnapshot": false + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-disk.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-disk.rst new file mode 100644 index 000000000..b87735cb8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-disk.rst @@ -0,0 +1,33 @@ +**To get information about a block storage disk** + +The following ``get-disk`` example displays details about the disk ``Disk-1``. :: + + aws lightsail get-disk \ + --disk-name Disk-1 + +Output:: + + { + "disk": { + "name": "Disk-1", + "arn": "arn:aws:lightsail:us-west-2:111122223333:Disk/c21cfb0a-07f2-44ae-9a23-bEXAMPLE8096", + "supportCode": "6EXAMPLE3362/vol-0EXAMPLEf2f88b32f", + "createdAt": 1566585439.587, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "resourceType": "Disk", + "tags": [], + "sizeInGb": 8, + "isSystemDisk": false, + "iops": 100, + "path": "/dev/xvdf", + "state": "in-use", + "attachedTo": "WordPress_Multisite-1", + "isAttached": true, + "attachmentState": "attached" + } + } + +For more information, see `title `__ in the *guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-disks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-disks.rst new file mode 100644 index 000000000..55185d0da --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-disks.rst @@ -0,0 +1,50 @@ +**To get information about all block storage disks** + +The following ``get-disks`` example displays details about all of the disks in the configured AWS Region. :: + + aws lightsail get-disks + +Output:: + + { + "disks": [ + { + "name": "Disk-2", + "arn": "arn:aws:lightsail:us-west-2:111122223333:Disk/6a343ff8-6341-422d-86e2-bEXAMPLE16c2", + "supportCode": "6EXAMPLE3362/vol-0EXAMPLE929602087", + "createdAt": 1571090461.634, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "resourceType": "Disk", + "tags": [], + "sizeInGb": 8, + "isSystemDisk": false, + "iops": 100, + "state": "available", + "isAttached": false, + "attachmentState": "detached" + }, + { + "name": "Disk-1", + "arn": "arn:aws:lightsail:us-west-2:111122223333:Disk/c21cfb0a-07f2-44ae-9a23-bEXAMPLE8096", + "supportCode": "6EXAMPLE3362/vol-0EXAMPLEf2f88b32f", + "createdAt": 1566585439.587, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "resourceType": "Disk", + "tags": [], + "sizeInGb": 8, + "isSystemDisk": false, + "iops": 100, + "path": "/dev/xvdf", + "state": "in-use", + "attachedTo": "WordPress_Multisite-1", + "isAttached": true, + "attachmentState": "attached" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-domain.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-domain.rst new file mode 100644 index 000000000..01f682492 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-domain.rst @@ -0,0 +1,70 @@ +**To get information about a domain** + +The following ``get-domain`` example displays details about the domain ``example.com``. + +**Note:** Lightsail's domain-related API operations are available in only the ``us-east-1`` AWS Region. If your CLI profile is configured to use a different Region, you must include the`` --region us-east-1`` parameter or the command fails. :: + + aws lightsail get-domain \ + --domain-name example.com \ + --region us-east-1 + +Output:: + + { + "domain": { + "name": "example.com", + "arn": "arn:aws:lightsail:global:111122223333:Domain/28cda903-3f15-44b2-9baf-3EXAMPLEb304", + "supportCode": "6EXAMPLE3362//hostedzone/ZEXAMPLEONGSC1", + "createdAt": 1570728588.6, + "location": { + "availabilityZone": "all", + "regionName": "global" + }, + "resourceType": "Domain", + "tags": [], + "domainEntries": [ + { + "id": "-1682899164", + "name": "example.com", + "target": "192.0.2.0", + "isAlias": false, + "type": "A" + }, + { + "id": "1703104243", + "name": "example.com", + "target": "ns-137.awsdns-17.com", + "isAlias": false, + "type": "NS" + }, + { + "id": "-1038331153", + "name": "example.com", + "target": "ns-1710.awsdns-21.co.uk", + "isAlias": false, + "type": "NS" + }, + { + "id": "-2107289565", + "name": "example.com", + "target": "ns-692.awsdns-22.net", + "isAlias": false, + "type": "NS" + }, + { + "id": "1582095705", + "name": "example.com", + "target": "ns-1436.awsdns-51.org", + "isAlias": false, + "type": "NS" + }, + { + "id": "-1769796132", + "name": "example.com", + "target": "ns-1710.awsdns-21.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400", + "isAlias": false, + "type": "SOA" + } + ] + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-domains.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-domains.rst new file mode 100644 index 000000000..0ea5488db --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-domains.rst @@ -0,0 +1,204 @@ +**To get information about all domains** + +The following ``get-domains`` example displays details about all of the domains in the configured AWS Region. + +**Note:** Lightsail's domain-related API operations are available in only the ``us-east-1`` AWS Region. If your CLI profile is configured to use a different Region, you must include the ``--region us-east-1`` parameter or the command fails. :: + + aws lightsail get-domains \ + --region us-east-1 + +Output:: + + { + "domains": [ + { + "name": "example.com", + "arn": "arn:aws:lightsail:global:111122223333:Domain/28cda903-3f15-44b2-9baf-3EXAMPLEb304", + "supportCode": "6EXAMPLE3362//hostedzone/ZEXAMPLEONGSC1", + "createdAt": 1570728588.6, + "location": { + "availabilityZone": "all", + "regionName": "global" + }, + "resourceType": "Domain", + "tags": [], + "domainEntries": [ + { + "id": "-1682899164", + "name": "example.com", + "target": "192.0.2.0", + "isAlias": false, + "type": "A" + }, + { + "id": "1703104243", + "name": "example.com", + "target": "ns-137.awsdns-17.com", + "isAlias": false, + "type": "NS" + }, + { + "id": "-1038331153", + "name": "example.com", + "target": "ns-4567.awsdns-21.co.uk", + "isAlias": false, + "type": "NS" + }, + { + "id": "-2107289565", + "name": "example.com", + "target": "ns-333.awsdns-22.net", + "isAlias": false, + "type": "NS" + }, + { + "id": "1582095705", + "name": "example.com", + "target": "ns-1111.awsdns-51.org", + "isAlias": false, + "type": "NS" + }, + { + "id": "-1769796132", + "name": "example.com", + "target": "ns-1234.awsdns-21.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400", + "isAlias": false, + "type": "SOA" + }, + { + "id": "1029454894", + "name": "_dead6a124ede046a0319eb44a4eb3cbc.example.com", + "target": "_be133b0a0899fb7b6bf79d9741d1a383.hkvuiqjoua.acm-validations.aws", + "isAlias": false, + "type": "CNAME" + } + ] + }, + { + "name": "example.net", + "arn": "arn:aws:lightsail:global:111122223333:Domain/9c9f0d70-c92e-4753-86c2-6EXAMPLE029d", + "supportCode": "6EXAMPLE3362//hostedzone/ZEXAMPLE5TPKMV", + "createdAt": 1556661071.384, + "location": { + "availabilityZone": "all", + "regionName": "global" + }, + "resourceType": "Domain", + "tags": [], + "domainEntries": [ + { + "id": "-766320943", + "name": "example.net", + "target": "192.0.2.2", + "isAlias": false, + "type": "A" + }, + { + "id": "-453913825", + "name": "example.net", + "target": "ns-123.awsdns-10.net", + "isAlias": false, + "type": "NS" + }, + { + "id": "1553601564", + "name": "example.net", + "target": "ns-4444.awsdns-47.co.uk", + "isAlias": false, + "type": "NS" + }, + { + "id": "1653797661", + "name": "example.net", + "target": "ns-7890.awsdns-61.org", + "isAlias": false, + "type": "NS" + }, + { + "id": "706414698", + "name": "example.net", + "target": "ns-123.awsdns-44.com", + "isAlias": false, + "type": "NS" + }, + { + "id": "337271745", + "name": "example.net", + "target": "ns-4444.awsdns-47.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400", + "isAlias": false, + "type": "SOA" + }, + { + "id": "-1785431096", + "name": "www.example.net", + "target": "192.0.2.2", + "isAlias": false, + "type": "A" + } + ] + }, + { + "name": "example.org", + "arn": "arn:aws:lightsail:global:111122223333:Domain/f0f13ba3-3df0-4fdc-8ebb-1EXAMPLEf26e", + "supportCode": "6EXAMPLE3362//hostedzone/ZEXAMPLEAFO38", + "createdAt": 1556661199.106, + "location": { + "availabilityZone": "all", + "regionName": "global" + }, + "resourceType": "Domain", + "tags": [], + "domainEntries": [ + { + "id": "2065301345", + "name": "example.org", + "target": "192.0.2.4", + "isAlias": false, + "type": "A" + }, + { + "id": "-447198516", + "name": "example.org", + "target": "ns-123.awsdns-45.com", + "isAlias": false, + "type": "NS" + }, + { + "id": "136463022", + "name": "example.org", + "target": "ns-9999.awsdns-15.co.uk", + "isAlias": false, + "type": "NS" + }, + { + "id": "1395941679", + "name": "example.org", + "target": "ns-555.awsdns-01.net", + "isAlias": false, + "type": "NS" + }, + { + "id": "872052569", + "name": "example.org", + "target": "ns-6543.awsdns-38.org", + "isAlias": false, + "type": "NS" + }, + { + "id": "1001949377", + "name": "example.org", + "target": "ns-1234.awsdns-15.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400", + "isAlias": false, + "type": "SOA" + }, + { + "id": "1046191192", + "name": "www.example.org", + "target": "192.0.2.4", + "isAlias": false, + "type": "A" + } + ] + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-export-snapshot-record.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-export-snapshot-record.rst new file mode 100644 index 000000000..095bce994 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-export-snapshot-record.rst @@ -0,0 +1,80 @@ +**To get the records of snapshots exported to Amazon EC2** + +The following ``get-export-snapshot-record`` example displays details about Amazon Lightsail instance or disk snapshots exported to Amazon EC2. :: + + aws lightsail get-export-snapshot-records + +Output:: + + { + "exportSnapshotRecords": [ + { + "name": "ExportSnapshotRecord-d2da10ce-0b3c-4ae1-ab3a-2EXAMPLEa586", + "arn": "arn:aws:lightsail:us-west-2:111122223333:ExportSnapshotRecord/076c7060-b0cc-4162-98f0-2EXAMPLEe28e", + "createdAt": 1543534665.678, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "resourceType": "ExportSnapshotRecord", + "state": "Succeeded", + "sourceInfo": { + "resourceType": "InstanceSnapshot", + "createdAt": 1540339310.706, + "name": "WordPress-512MB-Oregon-1-1540339219", + "arn": "arn:aws:lightsail:us-west-2:111122223333:InstanceSnapshot/5446f534-ed60-4c17-b4a5-bEXAMPLEf8b7", + "fromResourceName": "WordPress-512MB-Oregon-1", + "fromResourceArn": "arn:aws:lightsail:us-west-2:111122223333:Instance/4b8f1f24-e4d1-4cf3-88ff-cEXAMPLEa397", + "instanceSnapshotInfo": { + "fromBundleId": "nano_2_0", + "fromBlueprintId": "wordpress_4_9_8", + "fromDiskInfo": [ + { + "path": "/dev/sda1", + "sizeInGb": 20, + "isSystemDisk": true + } + ] + } + }, + "destinationInfo": { + "id": "ami-0EXAMPLEc0d65058e", + "service": "Aws::EC2::Image" + } + }, + { + "name": "ExportSnapshotRecord-1c94e884-40ff-4fe1-9302-0EXAMPLE14c2", + "arn": "arn:aws:lightsail:us-west-2:111122223333:ExportSnapshotRecord/fb392ce8-6567-4013-9bfd-3EXAMPLE5b4c", + "createdAt": 1543432110.2, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "resourceType": "ExportSnapshotRecord", + "state": "Succeeded", + "sourceInfo": { + "resourceType": "InstanceSnapshot", + "createdAt": 1540833603.545, + "name": "LAMP_PHP_5-512MB-Oregon-1-1540833565", + "arn": "arn:aws:lightsail:us-west-2:111122223333:InstanceSnapshot/82334399-b5f2-49ec-8382-0EXAMPLEe45f", + "fromResourceName": "LAMP_PHP_5-512MB-Oregon-1", + "fromResourceArn": "arn:aws:lightsail:us-west-2:111122223333:Instance/863b9f35-ab1e-4418-bdd2-1EXAMPLEbab2", + "instanceSnapshotInfo": { + "fromBundleId": "nano_2_0", + "fromBlueprintId": "lamp_5_6_37_2", + "fromDiskInfo": [ + { + "path": "/dev/sda1", + "sizeInGb": 20, + "isSystemDisk": true + } + ] + } + }, + "destinationInfo": { + "id": "ami-0EXAMPLE7c5ec84e2", + "service": "Aws::EC2::Image" + } + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instance-access-details.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instance-access-details.rst new file mode 100644 index 000000000..8fdd540d4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instance-access-details.rst @@ -0,0 +1,42 @@ +**To get host key information for an instance** + +The following ``get-instance-access-details`` example displays host key information for instance ``WordPress_Multisite-1``. :: + + aws lightsail get-instance-access-details \ + --instance-name WordPress_Multisite-1 + +Output:: + + { + "accessDetails": { + "certKey": "ssh-rsa-cert-v01@openssh.com AEXAMPLEaC1yc2EtY2VydC12MDFAb3BlbnNzaC5jb20AAAAgNf076Dt3ppmPd0fPxZVMmS491aEAYYH9cHqAJ3fNML8AAAADAQABAAABAQD4APep5Ta2gHLk7m/vEXAMPLE2eBWJyQvn7ol/i0+s966h5sx8qUD79lPB7q5UESd5VZGFtytrykfQJnjiwqe7EV5agzvjblLj26Fb37EKda9HVfCOu8pWbvky7Tyn9w299a6CsG5o8HrkOymDE2c59lYxXGkilKo5I9aZLBAdXn3t3oKtq9zsjYGjyEmarPYoVDT1ft8HaUGu4aCv1peI0+ZEXAMPLEAWaucW9Huh0WYN5yrmL252c4v13JTVmytaEZvLvt5itVoWXQY0ZDyrLUcZSKxyq5n00Mgvj2fiZdt+xMfQM9xVz0rXZmqx8uJidJpRgLCMTviofwQJU/K1EXAMPLEAAAAAAAABAAAALS00MzMzMDU4MzA4ODg1MTY2NjM4Onp6UWlndHk4UElRSG9STitOTG5QSEE9PQAAAAsAAAAHYml0bmFtaQAAAABdpPL7AAEXAMPLEgcAAAAAAAAAggAAABVwZXJtaXQtWDExLWZvcndhcmRpbmcAAAAAAAAAF3Blcm1pdC1hZ2VudC1mb3J3YXJkaW5nAAAAAAAAABZwZXJtaXQtEXAMPLEmb3J3YXJkaW5nAAAAAAAAAApwZXJtaXQtcHR5AAAAAAAAAA5wZXJtaXQtdXNlci1yYwAAAAAAAAAAAAACFwAAAAdzc2gtcnNhAAAAAwEAAQEXAMPLECqCbiK9b450HtRD1ZpiksT6oxc8U7nLNkVFC1j7JqZvP9ee3ux+LiB+ozNbUA0cdNL9Y67x7qPv/R7XhTc21+2A+8+GuVpK/Kz9dqDMKNAEXAMPLE+YYN+tiXm7Y8OgziK+7iDB7xUuQ4vghmn4+qgz9mKwYgWvVe2+0XLuV7cnWPB7iUlHQg+E3LUKrV4ZFw9pj7X2dFdNKfMxwWgI1ISWKimEXAMPLEeHjrf1Rqc/QH6TpWCvPfcx8uvwVqdwTfkE/SfA5BCzbGGI1UmIUadh8nHcb5FamQ1hK7kECy47K/x9FMn/KwmM7pCwJbSLDMO7n9bnbvck6m8ZoB2N2YLMG5dW7BerEXAMPLEobqfdtyYJHHel1EyyEJs1fWNU3D5JIGlgzcPAV+ZlbQyUCZXf0oslSa+HE85fO/FRq9SVSBSHrmbeb0frlPhgMzgSmqLeyhlbr6wwWIDbREXAMPLEJZ49H7RdQxdKyYrZPWvRgcr0qI2EL0tAajnpQQ8UZqeO9/Aqter0xN5PhFL0J49OWTacwCGRAjLhibAx7K1t/1ZXWo6c+ijq8clll327EXAMPLE/e89GC89KcmKCxfGQniDAUgF8UqofIbq3ZOUgiAAYCVXclI4L68NhVXyoWuQXPBRQSEXAMPLEWm74tDL9tFN3c7tSe/Oz0cTR+4sAAAIPAAAAB3NzaC1yc2EAAAIAQnG/L0DqiSnLrWhEox4aHqMgd0m0oLLAYx6OQH9F0TM9EXAMPLE961rzSCMon7ZgsWNnL0OwZQgDG+rtJ4N0B7HOVwns4ynUFbzNQ3qFGGeE3lKwX1L41vV1iSy7sDk8aI0LmrKJi1LE1Qc1l8uboRlwoXOYEXAMPLEaUCeX+10+WEXAMPLEg6Y4U4ZvE2B3xyRdpvysb5TGFNtk5qPslacnVkoLOGsZZXMpLGJnG4OBpQLLtpj9sNMxAgZPCAUjhkqkQWYJxJzvFN7sUMOArUwKPFJE2kaEXAMPLEOUrVGBbCTioRztlPsxY7hoXm73N929eZpNhxP3U+nxO9O4NUZ2pTWbVSUaV1gm6pug9xbwNO1Im21t34JeLlKTqxcJ6zzS8W0c0KKpAm5c4hWkseMbyutS2jav/4hiS+BhrYgptzfwe5qRXEXAMPLEHZQr3YfGzYoBJ/lLK3NHhxOihhsfAYwMei0BFZT1F/7CT3IH4iitEkIgodi06/Mw6UDqMPozyQCK1lEA6LFhYCOZG9drWcoRa74lM4kY9TP028Za8gDMh1WpkXLq9Gixon5OHP8aM/sEXAMPLEr2+fnkw+1BtoO5L6+VKoPlXaGqZ/fBYEXAMPLEAMQHjnLM1JYNvtEEPhp+TNzXHzuixWf/Ht04m0AVpXrzIDXaS1O2tXY=", + "ipAddress": "192.0.2.0", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nEXAMPLEBAAKCAQEA+AD3qeU2toBy5O5v7wnRLVo/tngVickL5+6Jf4tPrPeuoebM\nfKlA+/ZTwe6uVBEneVWRhbcra8pH0CZ44sKnuxFeWoM7425S49uhW9+xCnWvR1Xw\njrvKVm75Mu08p/cNvfWugrBuaPB65DspgxNnOfZWMVxpIpSqOSPWmSwQHV597d6C\nrEXAMPLEo8hJmqz2KFQ09X7fB2lBruGgr9aXiNPmWmovYKqwFmrnFvR7odFmDecq\n5EXAMPLE9dyU1ZsrWhGby77eYrVaFl0GNGQ8qy1HGUiscquZ9NDIL49n4mXbfsTH\n0EXAMPLE12ZqsfLiYnSaUYCwjE74qH8ECVPytQIDAQABAoIBAHeZV9Z58JHAjifz\nCEXAMPLEEqC3doOVDgXSlkKI92qNo4z2VcUEho878paCuVVXVHcCGgSnGeyIh2tN\nMEXAMPLESohR427BhH3YLA+3Z5SIvnejbTgYPfLC37B8khTaYqkqMvdZiFVZK5qn\nIEXAMPLEM93oF9eSZCjcLKB/jGHsfb0eCDMP8BshHE2beuqzVMoK1DxOnvoP3+Fp\nAEXAMPLESq6pDpCo9YVUX8g1u3Ro9cPl2LXHDy+oVEY5KhbZQJ7VU1I72WOvppWW\nOEXAMPLEkgYlq7p6qYtYcSgTEjz14gDiMfQ7SyHB3alkIoNONQ9ZPaWHyJvymeud\noQTNuz0CgYEA/LFWNTEZrzdzdR1kJmyNRmAermU0B6utyNENChAlHGSHkB+1lVSh\nbEXAMPLEQo9ooUeW5UxO3YwacZLoDT1mwxw1Ptc1+PNycZoLe1fE9UdARrdmGTob\n8l7CPLSXp3xuR8VqSp2fnIc7hfiQs/NrPX9gm/EOrB0we0RKyDSzWScCgYEA+z/r\niob+nJZq0YbnOSuP6oMULP4vnWniWj8MIhUJU53LwSAM8DeJdONKDdkuiOd52aAL\nVgn7nLo88rVWKhJwVc4tu/rNgZLcR3bP4+kL6zand0KQnMLyOzNA2Ys26aa5udH1\nqWl0WTt9WEm/h10ndC1knOMectrvsG17b38y5sMCgYEA54NiRGGz8oCPW6GN/FZA\nKEXAMPLE5tw34GEH3Uxlc9n3CejDaQmczOATwX4nIwRZDEqWyYZcS0btg1jhGiBD\nYEXAMPLEkc8Z71L/agZEAaVCEog9FqfSqwB+XTfoKh8qur74X1yCu9p6gof1q6k9\neEXAMPLEchJcNNOg4ETIfMkCgYBdVORRhE4mqvWpOdzA7v66FdEz2YSkjAXKkmsW\naEXAMPLE8Z/8yBSmuBv1Qv03XA12my462uB92uzzGAuW+1yBc2Kn1sXqYTy0y1z0\ngEXAMPLEBogjw4MqHKL1bPKMHyQU8/q24PaYgzHPzy13wlH6pTYf1XqlHdE2D6Vv\nyEXAMPLEgQC3i/kVVhky/2XRwRVlC7JO2Bg3QGTx38hpmDa5IuofKANjA+Wa3/zy\nbEXAMPLE6ytQgD9GN/YtBq+uhO+2ZkvXPL+CWRi0ZRXpPwYDBBFU9Cw0AuWWGlL8\nwEXAMPLExMlcysRgcWB9RNgf3AuOpFd2i6XT/riNsvvkpmJ+VooU8g==\n-----END RSA PRIVATE KEY-----\n", + "protocol": "ssh", + "instanceName": "WordPress_Multisite-1", + "username": "bitnami", + "hostKeys": [ + { + "algorithm": "ssh-rsa", + "publicKey": "AEXAMPLEaC1yc2EAAAADAQABAAABAQCoeR9ieZTjQ3pXCHczuAYZFjlF7t+uBkXuqeGMRex78pCvmS+DiEXAMPLEuJ1Q8dcKhrQL4HpXbD9dosVCTaJnJwb4MQqsuSVFdHFzy3guP+BKclWqtxJEXAMPLEsBGqZZlrIv6a9bTA0TCplZ8AD+hSRTaSXXqg6FT+Qf16IktH0XlMs7xIEXAMPLEmNtjCpzZiGXDHzytoMvUgwa8uHPp44Og36EUu4VqQxoUHPJKoXvcQizyk3K8ym0hP0TpDZhD8cqwRfd6EHp4Q1br/Ot6y9HwvykEXAMPLEAfbKjbR42+u6+OSlkr4d339q2U1sTDytJhhs8HUel1wTfGRfp", + "witnessedAt": 1570744377.699, + "fingerprintSHA1": "SHA1:GEXAMPLEMoYgUg0ucadqU9Bt3Lk", + "fingerprintSHA256": "SHA256:IEXAMPLEcB5vgxnAUoJawbdZ+MwELhIp6FUxuwq/LIU" + }, + { + "algorithm": "ssh-ed25519", + "publicKey": "AEXAMPLEaC1lZDI1NTE5AAAAIC1gwGPDfGaONxEXAMPLEJX3UNap781QxHQmn8nzlrUv", + "witnessedAt": 1570744377.697, + "fingerprintSHA1": "SHA1:VEXAMPLE5ReqSmTgv03sSUw9toU", + "fingerprintSHA256": "SHA256:0EXAMPLEdE6tI95k3TJpG+qhJbAoknB0yz9nAEaDt3A" + }, + { + "algorithm": "ecdsa-sha2-nistp256", + "publicKey": "AEXAMPLEZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABEXAMPLE9B4mZy8YSsZW7cixCDq5yHSAAxjJkDo54C+EnKlDCsYtUkxxEXAMPLE6VOWL2z63RTKa2AUPgd8irjxWI=", + "witnessedAt": 1570744377.707, + "fingerprintSHA1": "SHA1:UEXAMPLEOYCfXsCf2G6tDg+7YG0", + "fingerprintSHA256": "SHA256:wEXAMPLEQ9a/iEXAMPLEhRufm6U9vFU4cpkMPHnBsNA" + } + ] + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instance-metric-data.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instance-metric-data.rst new file mode 100644 index 000000000..d342fca64 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instance-metric-data.rst @@ -0,0 +1,82 @@ +**To get metric data for an instance** + +The following ``get-instance-metric-data`` example returns the average percent of ``CPUUtilization`` every ``7200`` seconds (2 hours) between ``1571342400`` and ``1571428800`` for instance ``MEAN-1``. + +We recommend that you use a unix time converter to identify the start and end times. :: + + aws lightsail get-instance-metric-data \ + --instance-name MEAN-1 \ + --metric-name CPUUtilization \ + --period 7200 \ + --start-time 1571342400 \ + --end-time 1571428800 \ + --unit Percent \ + --statistics Average + +Output:: + + { + "metricName": "CPUUtilization", + "metricData": [ + { + "average": 0.26113718770120725, + "timestamp": 1571342400.0, + "unit": "Percent" + }, + { + "average": 0.26861268928111953, + "timestamp": 1571392800.0, + "unit": "Percent" + }, + { + "average": 0.28187475104748777, + "timestamp": 1571378400.0, + "unit": "Percent" + }, + { + "average": 0.2651936960458352, + "timestamp": 1571421600.0, + "unit": "Percent" + }, + { + "average": 0.2561856213712188, + "timestamp": 1571371200.0, + "unit": "Percent" + }, + { + "average": 0.3021383254607764, + "timestamp": 1571356800.0, + "unit": "Percent" + }, + { + "average": 0.2618381649223539, + "timestamp": 1571407200.0, + "unit": "Percent" + }, + { + "average": 0.26331929394825787, + "timestamp": 1571400000.0, + "unit": "Percent" + }, + { + "average": 0.2576348407007818, + "timestamp": 1571385600.0, + "unit": "Percent" + }, + { + "average": 0.2513008454658378, + "timestamp": 1571364000.0, + "unit": "Percent" + }, + { + "average": 0.26329974562758346, + "timestamp": 1571414400.0, + "unit": "Percent" + }, + { + "average": 0.2667092536656445, + "timestamp": 1571349600.0, + "unit": "Percent" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instance-port-states.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instance-port-states.rst new file mode 100644 index 000000000..fb95e4ff3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instance-port-states.rst @@ -0,0 +1,31 @@ +**To get firewall information for an instance** + +The following ``get-instance-port-states`` example returns the firewall ports configured for instance ``MEAN-1``. :: + + aws lightsail get-instance-port-states \ + --instance-name MEAN-1 + +Output:: + + { + "portStates": [ + { + "fromPort": 80, + "toPort": 80, + "protocol": "tcp", + "state": "open" + }, + { + "fromPort": 22, + "toPort": 22, + "protocol": "tcp", + "state": "open" + }, + { + "fromPort": 443, + "toPort": 443, + "protocol": "tcp", + "state": "open" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instance-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instance-snapshot.rst new file mode 100644 index 000000000..e5358fff1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instance-snapshot.rst @@ -0,0 +1,31 @@ +**To get information about a specified instance snapshot** + +The following ``get-instance-snapshot`` example displays details about the specified instance snapshot. :: + + aws lightsail get-instance-snapshot \ + --instance-snapshot-name MEAN-1-1571419854 + +Output:: + + { + "instanceSnapshot": { + "name": "MEAN-1-1571419854", + "arn": "arn:aws:lightsail:us-west-2:111122223333:InstanceSnapshot/ac54700c-48a8-40fd-b065-2EXAMPLEac8f", + "supportCode": "6EXAMPLE3362/ami-0EXAMPLE67a73020d", + "createdAt": 1571419891.927, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "resourceType": "InstanceSnapshot", + "tags": [], + "state": "available", + "fromAttachedDisks": [], + "fromInstanceName": "MEAN-1", + "fromInstanceArn": "arn:aws:lightsail:us-west-2:111122223333:Instance/bd470fc5-a68b-44c5-8dbc-8EXAMPLEbada", + "fromBlueprintId": "mean", + "fromBundleId": "medium_3_0", + "isFromAutoSnapshot": false, + "sizeInGb": 80 + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instance-snapshots.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instance-snapshots.rst new file mode 100644 index 000000000..0d6662cbe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instance-snapshots.rst @@ -0,0 +1,56 @@ +**To get information about all of your instance snapshots** + +The following ``get-instance-snapshots`` example displays details about all of the instance snapshots in the configured AWS Region. :: + + aws lightsail get-instance-snapshots + +Output:: + + { + "instanceSnapshots": [ + { + "name": "MEAN-1-1571421498", + "arn": "arn:aws:lightsail:us-west-2:111122223333:InstanceSnapshot/a20e6ebe-b0ee-4ae4-a750-3EXAMPLEcb0c", + "supportCode": "6EXAMPLE3362/ami-0EXAMPLEe33cabfa1", + "createdAt": 1571421527.755, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "resourceType": "InstanceSnapshot", + "tags": [ + { + "key": "no_delete" + } + ], + "state": "available", + "fromAttachedDisks": [], + "fromInstanceName": "MEAN-1", + "fromInstanceArn": "arn:aws:lightsail:us-west-2:111122223333:Instance/1761aa0a-6038-4f25-8b94-2EXAMPLE19fd", + "fromBlueprintId": "wordpress", + "fromBundleId": "micro_3_0", + "isFromAutoSnapshot": false, + "sizeInGb": 40 + }, + { + "name": "MEAN-1-1571419854", + "arn": "arn:aws:lightsail:us-west-2:111122223333:InstanceSnapshot/ac54700c-48a8-40fd-b065-2EXAMPLEac8f", + "supportCode": "6EXAMPLE3362/ami-0EXAMPLE67a73020d", + "createdAt": 1571419891.927, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "resourceType": "InstanceSnapshot", + "tags": [], + "state": "available", + "fromAttachedDisks": [], + "fromInstanceName": "MEAN-1", + "fromInstanceArn": "arn:aws:lightsail:us-west-2:111122223333:Instance/bd470fc5-a68b-44c5-8dbc-8EXAMPLEbada", + "fromBlueprintId": "mean", + "fromBundleId": "medium_3_0", + "isFromAutoSnapshot": false, + "sizeInGb": 80 + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instance-state.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instance-state.rst new file mode 100644 index 000000000..d76befc06 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instance-state.rst @@ -0,0 +1,15 @@ +**To get information about the state of an instance** + +The following ``get-instance-state`` example returns the state of the specified instance. :: + + aws lightsail get-instance-state \ + --instance-name MEAN-1 + +Output:: + + { + "state": { + "code": 16, + "name": "running" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instance.rst new file mode 100644 index 000000000..a41a757a9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instance.rst @@ -0,0 +1,84 @@ +**To get information about an instance** + +The following ``get-instance`` example displays details about the instance ``MEAN-1``. :: + + aws lightsail get-instance \ + --instance-name MEAN-1 + +Output:: + + { + "instance": { + "name": "MEAN-1", + "arn": "arn:aws:lightsail:us-west-2:111122223333:Instance/bd470fc5-a68b-44c5-8dbc-EXAMPLE4bada", + "supportCode": "6EXAMPLE3362/i-05EXAMPLE407c97d3", + "createdAt": 1570635023.124, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "resourceType": "Instance", + "tags": [], + "blueprintId": "mean", + "blueprintName": "MEAN", + "bundleId": "medium_3_0", + "isStaticIp": false, + "privateIpAddress": "192.0.2.0", + "publicIpAddress": "192.0.2.0", + "hardware": { + "cpuCount": 2, + "disks": [ + { + "createdAt": 1570635023.124, + "sizeInGb": 80, + "isSystemDisk": true, + "iops": 240, + "path": "/dev/xvda", + "attachedTo": "MEAN-1", + "attachmentState": "attached" + } + ], + "ramSizeInGb": 4.0 + }, + "networking": { + "monthlyTransfer": { + "gbPerMonthAllocated": 4096 + }, + "ports": [ + { + "fromPort": 80, + "toPort": 80, + "protocol": "tcp", + "accessFrom": "Anywhere (0.0.0.0/0)", + "accessType": "public", + "commonName": "", + "accessDirection": "inbound" + }, + { + "fromPort": 22, + "toPort": 22, + "protocol": "tcp", + "accessFrom": "Anywhere (0.0.0.0/0)", + "accessType": "public", + "commonName": "", + "accessDirection": "inbound" + }, + { + "fromPort": 443, + "toPort": 443, + "protocol": "tcp", + "accessFrom": "Anywhere (0.0.0.0/0)", + "accessType": "public", + "commonName": "", + "accessDirection": "inbound" + } + ] + }, + "state": { + "code": 16, + "name": "running" + }, + "username": "bitnami", + "sshKeyName": "MyKey" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instances.rst new file mode 100644 index 000000000..049e4af65 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-instances.rst @@ -0,0 +1,202 @@ +**To get information about all instances** + +The following ``get-instances`` example displays details about all of the instances in the configured AWS Region. :: + + aws lightsail get-instances + +Output:: + + { + "instances": [ + { + "name": "Windows_Server_2022-1", + "arn": "arn:aws:lightsail:us-west-2:111122223333:Instance/0f44fbb9-8f55-4e47-a25e-EXAMPLE04763", + "supportCode": "62EXAMPLE362/i-0bEXAMPLE71a686b9", + "createdAt": 1571332358.665, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "resourceType": "Instance", + "tags": [], + "blueprintId": "windows_server_2022", + "blueprintName": "Windows Server 2022", + "bundleId": "large_win_3_0", + "isStaticIp": false, + "privateIpAddress": "192.0.2.0", + "publicIpAddress": "192.0.2.0", + "hardware": { + "cpuCount": 1, + "disks": [ + { + "createdAt": 1571332358.665, + "sizeInGb": 160, + "isSystemDisk": true, + "iops": 180, + "path": "/dev/sda1", + "attachedTo": "Windows_Server_2022-1", + "attachmentState": "attached" + }, + { + "name": "my-disk-for-windows-server", + "arn": "arn:aws:lightsail:us-west-2:111122223333:Disk/4123a81c-484c-49ea-afea-5EXAMPLEda87", + "supportCode": "6EXAMPLE3362/vol-0EXAMPLEb2b99ca3d", + "createdAt": 1571355063.494, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "resourceType": "Disk", + "tags": [], + "sizeInGb": 128, + "isSystemDisk": false, + "iops": 384, + "path": "/dev/xvdf", + "state": "in-use", + "attachedTo": "Windows_Server_2022-1", + "isAttached": true, + "attachmentState": "attached" + } + ], + "ramSizeInGb": 8.0 + }, + "networking": { + "monthlyTransfer": { + "gbPerMonthAllocated": 3072 + }, + "ports": [ + { + "fromPort": 80, + "toPort": 80, + "protocol": "tcp", + "accessFrom": "Anywhere (0.0.0.0/0)", + "accessType": "public", + "commonName": "", + "accessDirection": "inbound" + }, + { + "fromPort": 22, + "toPort": 22, + "protocol": "tcp", + "accessFrom": "Anywhere (0.0.0.0/0)", + "accessType": "public", + "commonName": "", + "accessDirection": "inbound" + }, + { + "fromPort": 3389, + "toPort": 3389, + "protocol": "tcp", + "accessFrom": "Anywhere (0.0.0.0/0)", + "accessType": "public", + "commonName": "", + "accessDirection": "inbound" + } + ] + }, + "state": { + "code": 16, + "name": "running" + }, + "username": "Administrator", + "sshKeyName": "LightsailDefaultKeyPair" + }, + { + "name": "MEAN-1", + "arn": "arn:aws:lightsail:us-west-2:111122223333:Instance/bd470fc5-a68b-44c5-8dbc-8EXAMPLEbada", + "supportCode": "6EXAMPLE3362/i-0EXAMPLEa407c97d3", + "createdAt": 1570635023.124, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "resourceType": "Instance", + "tags": [], + "blueprintId": "mean", + "blueprintName": "MEAN", + "bundleId": "medium_3_0", + "isStaticIp": false, + "privateIpAddress": "192.0.2.0", + "publicIpAddress": "192.0.2.0", + "hardware": { + "cpuCount": 2, + "disks": [ + { + "name": "Disk-1", + "arn": "arn:aws:lightsail:us-west-2:111122223333:Disk/c21cfb0a-07f2-44ae-9a23-bEXAMPLE8096", + "supportCode": "6EXAMPLE3362/vol-0EXAMPLEf2f88b32f", + "createdAt": 1566585439.587, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "resourceType": "Disk", + "tags": [ + { + "key": "test" + } + ], + "sizeInGb": 8, + "isSystemDisk": false, + "iops": 240, + "path": "/dev/xvdf", + "state": "in-use", + "attachedTo": "MEAN-1", + "isAttached": true, + "attachmentState": "attached" + }, + { + "createdAt": 1570635023.124, + "sizeInGb": 80, + "isSystemDisk": true, + "iops": 240, + "path": "/dev/sda1", + "attachedTo": "MEAN-1", + "attachmentState": "attached" + } + ], + "ramSizeInGb": 4.0 + }, + "networking": { + "monthlyTransfer": { + "gbPerMonthAllocated": 4096 + }, + "ports": [ + { + "fromPort": 80, + "toPort": 80, + "protocol": "tcp", + "accessFrom": "Anywhere (0.0.0.0/0)", + "accessType": "public", + "commonName": "", + "accessDirection": "inbound" + }, + { + "fromPort": 22, + "toPort": 22, + "protocol": "tcp", + "accessFrom": "Anywhere (0.0.0.0/0)", + "accessType": "public", + "commonName": "", + "accessDirection": "inbound" + }, + { + "fromPort": 443, + "toPort": 443, + "protocol": "tcp", + "accessFrom": "Anywhere (0.0.0.0/0)", + "accessType": "public", + "commonName": "", + "accessDirection": "inbound" + } + ] + }, + "state": { + "code": 16, + "name": "running" + }, + "username": "bitnami", + "sshKeyName": "MyTestKey" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-key-pair.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-key-pair.rst new file mode 100644 index 000000000..fa1d0cb10 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-key-pair.rst @@ -0,0 +1,24 @@ +**To get information about a key pair** + +The following ``get-key-pair`` example displays details about the specified key pair. :: + + aws lightsail get-key-pair \ + --key-pair-name MyKey1 + +Output:: + + { + "keyPair": { + "name": "MyKey1", + "arn": "arn:aws:lightsail:us-west-2:111122223333:KeyPair/19a4efdf-3054-43d6-91fd-eEXAMPLE21bf", + "supportCode": "6EXAMPLE3362/MyKey1", + "createdAt": 1571255026.975, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "resourceType": "KeyPair", + "tags": [], + "fingerprint": "00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff:gg:hh:ii:jj" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-key-pairs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-key-pairs.rst new file mode 100644 index 000000000..f02665d78 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-key-pairs.rst @@ -0,0 +1,25 @@ +**To get information about all key pairs** + +The following ``get-key-pairs`` example displays details about all of the key pairs in the configured AWS Region. :: + + aws lightsail get-key-pairs + +Output:: + + { + "keyPairs": [ + { + "name": "MyKey1", + "arn": "arn:aws:lightsail:us-west-2:111122223333:KeyPair/19a4efdf-3054-43d6-91fd-eEXAMPLE21bf", + "supportCode": "6EXAMPLE3362/MyKey1", + "createdAt": 1571255026.975, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "resourceType": "KeyPair", + "tags": [], + "fingerprint": "00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff:gg:hh:ii:jj" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-load-balancer-tls-certificates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-load-balancer-tls-certificates.rst new file mode 100644 index 000000000..868a380ab --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-load-balancer-tls-certificates.rst @@ -0,0 +1,48 @@ +**To get information about TLS certificates for a load balancer** + +The following ``get-load-balancer-tls-certificates`` example displays details about the TLS certificates for the specified load balancer. :: + + aws lightsail get-load-balancer-tls-certificates \ + --load-balancer-name LoadBalancer-1 + +Output:: + + { + "tlsCertificates": [ + { + "name": "example-com", + "arn": "arn:aws:lightsail:us-west-2:111122223333:LoadBalancerTlsCertificate/d7bf4643-6a02-4cd4-b3c4-fEXAMPLE9b4d", + "supportCode": "6EXAMPLE3362/arn:aws:acm:us-west-2:333322221111:certificate/9af8e32c-a54e-4a67-8c63-cEXAMPLEb314", + "createdAt": 1571678025.3, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "resourceType": "LoadBalancerTlsCertificate", + "loadBalancerName": "LoadBalancer-1", + "isAttached": false, + "status": "ISSUED", + "domainName": "example.com", + "domainValidationRecords": [ + { + "name": "_dEXAMPLE4ede046a0319eb44a4eb3cbc.example.com.", + "type": "CNAME", + "value": "_bEXAMPLE0899fb7b6bf79d9741d1a383.hkvuiqjoua.acm-validations.aws.", + "validationStatus": "SUCCESS", + "domainName": "example.com" + } + ], + "issuedAt": 1571678070.0, + "issuer": "Amazon", + "keyAlgorithm": "RSA-2048", + "notAfter": 1605960000.0, + "notBefore": 1571616000.0, + "serial": "00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff", + "signatureAlgorithm": "SHA256WITHRSA", + "subject": "CN=example.com", + "subjectAlternativeNames": [ + "example.com" + ] + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-load-balancer.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-load-balancer.rst new file mode 100644 index 000000000..20d7d54e4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-load-balancer.rst @@ -0,0 +1,55 @@ +**To get information about a load balancer** + +The following ``get-load-balancer`` example displays details about the specified load balancer. :: + + aws lightsail get-load-balancer \ + --load-balancer-name LoadBalancer-1 + +Output:: + + { + "loadBalancer": { + "name": "LoadBalancer-1", + "arn": "arn:aws:lightsail:us-west-2:111122223333:LoadBalancer/40486b2b-1ad0-4152-83e4-cEXAMPLE6f4b", + "supportCode": "6EXAMPLE3362/arn:aws:elasticloadbalancing:us-west-2:333322221111:loadbalancer/app/bEXAMPLE128cb59d86f946a9395dd304/1EXAMPLE8dd9d77e", + "createdAt": 1571677906.723, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "resourceType": "LoadBalancer", + "tags": [], + "dnsName": "bEXAMPLE128cb59d86f946a9395dd304-1486911371.us-west-2.elb.amazonaws.com", + "state": "active", + "protocol": "HTTP", + "publicPorts": [ + 80 + ], + "healthCheckPath": "/", + "instancePort": 80, + "instanceHealthSummary": [ + { + "instanceName": "MEAN-3", + "instanceHealth": "healthy" + }, + { + "instanceName": "MEAN-1", + "instanceHealth": "healthy" + }, + { + "instanceName": "MEAN-2", + "instanceHealth": "healthy" + } + ], + "tlsCertificateSummaries": [ + { + "name": "example-com", + "isAttached": false + } + ], + "configurationOptions": { + "SessionStickinessEnabled": "false", + "SessionStickiness_LB_CookieDurationSeconds": "86400" + } + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-load-balancers.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-load-balancers.rst new file mode 100644 index 000000000..0aceb3046 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-load-balancers.rst @@ -0,0 +1,56 @@ +**To get information about all load balancers** + +The following ``get-load-balancers`` example displays details about all of the load balancers in the configured AWS Region. :: + + aws lightsail get-load-balancers + +Output:: + + { + "loadBalancers": [ + { + "name": "LoadBalancer-1", + "arn": "arn:aws:lightsail:us-west-2:111122223333:LoadBalancer/40486b2b-1ad0-4152-83e4-cEXAMPLE6f4b", + "supportCode": "6EXAMPLE3362/arn:aws:elasticloadbalancing:us-west-2:333322221111:loadbalancer/app/bEXAMPLE128cb59d86f946a9395dd304/1EXAMPLE8dd9d77e", + "createdAt": 1571677906.723, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "resourceType": "LoadBalancer", + "tags": [], + "dnsName": "bEXAMPLE128cb59d86f946a9395dd304-1486911371.us-west-2.elb.amazonaws.com", + "state": "active", + "protocol": "HTTP", + "publicPorts": [ + 80 + ], + "healthCheckPath": "/", + "instancePort": 80, + "instanceHealthSummary": [ + { + "instanceName": "MEAN-3", + "instanceHealth": "healthy" + }, + { + "instanceName": "MEAN-1", + "instanceHealth": "healthy" + }, + { + "instanceName": "MEAN-2", + "instanceHealth": "healthy" + } + ], + "tlsCertificateSummaries": [ + { + "name": "example-com", + "isAttached": false + } + ], + "configurationOptions": { + "SessionStickinessEnabled": "false", + "SessionStickiness_LB_CookieDurationSeconds": "86400" + } + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-operation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-operation.rst new file mode 100644 index 000000000..00361988c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-operation.rst @@ -0,0 +1,26 @@ +**To get information about a single operation** + +The following ``get-operation`` example displays details about the specified operation. :: + + aws lightsail get-operation \ + --operation-id e5700e8a-daf2-4b49-bc01-3EXAMPLE910a + + +Output:: + + { + "operation": { + "id": "e5700e8a-daf2-4b49-bc01-3EXAMPLE910a", + "resourceName": "Instance-1", + "resourceType": "Instance", + "createdAt": 1571679872.404, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationType": "CreateInstance", + "status": "Succeeded", + "statusChangedAt": 1571679890.304 + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-operations-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-operations-for-resource.rst new file mode 100644 index 000000000..11d10b308 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-operations-for-resource.rst @@ -0,0 +1,60 @@ +**To get all operations for a resource** + +The following ``get-operations-for-resource`` example displays details about all operations for the specified resource. :: + + aws lightsail get-operations-for-resource \ + --resource-name LoadBalancer-1 + +Output:: + + { + "operations": [ + { + "id": "e2973046-43f8-4252-a4b4-9EXAMPLE69ce", + "resourceName": "LoadBalancer-1", + "resourceType": "LoadBalancer", + "createdAt": 1571678786.071, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationDetails": "MEAN-1", + "operationType": "DetachInstancesFromLoadBalancer", + "status": "Succeeded", + "statusChangedAt": 1571679087.57 + }, + { + "id": "2d742a18-0e7f-48c8-9705-3EXAMPLEf98a", + "resourceName": "LoadBalancer-1", + "resourceType": "LoadBalancer", + "createdAt": 1571678782.784, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationDetails": "MEAN-1", + "operationType": "AttachInstancesToLoadBalancer", + "status": "Succeeded", + "statusChangedAt": 1571678798.465 + }, + { + "id": "6c700fcc-4246-40ab-952b-1EXAMPLEdac2", + "resourceName": "LoadBalancer-1", + "resourceType": "LoadBalancer", + "createdAt": 1571678775.297, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationDetails": "MEAN-3", + "operationType": "AttachInstancesToLoadBalancer", + "status": "Succeeded", + "statusChangedAt": 1571678842.806 + }, + ... + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-operations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-operations.rst new file mode 100644 index 000000000..dd22c54b0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-operations.rst @@ -0,0 +1,58 @@ +**To get information about all operations** + +The following ``get-operations`` example displays details about all of the operations in the configured AWS Region. :: + + aws lightsail get-operations + +Output:: + + { + "operations": [ + { + "id": "e5700e8a-daf2-4b49-bc01-3EXAMPLE910a", + "resourceName": "Instance-1", + "resourceType": "Instance", + "createdAt": 1571679872.404, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationType": "CreateInstance", + "status": "Succeeded", + "statusChangedAt": 1571679890.304 + }, + { + "id": "701a3339-930e-4914-a9f9-7EXAMPLE68d7", + "resourceName": "WordPress-1", + "resourceType": "Instance", + "createdAt": 1571678786.072, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationDetails": "LoadBalancer-1", + "operationType": "DetachInstancesFromLoadBalancer", + "status": "Succeeded", + "statusChangedAt": 1571679086.399 + }, + { + "id": "e2973046-43f8-4252-a4b4-9EXAMPLE69ce", + "resourceName": "LoadBalancer-1", + "resourceType": "LoadBalancer", + "createdAt": 1571678786.071, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationDetails": "WordPress-1", + "operationType": "DetachInstancesFromLoadBalancer", + "status": "Succeeded", + "statusChangedAt": 1571679087.57 + }, + ... + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-regions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-regions.rst new file mode 100644 index 000000000..a90de9c3c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-regions.rst @@ -0,0 +1,38 @@ +**To get all AWS Regions for Amazon Lightsail** + +The following ``get-regions`` example displays details about all of the AWS Regions for Amazon Lightsail. :: + + aws lightsail get-regions + +Output:: + + { + "regions": [ + { + "continentCode": "NA", + "description": "This region is recommended to serve users in the eastern United States", + "displayName": "Virginia", + "name": "us-east-1", + "availabilityZones": [], + "relationalDatabaseAvailabilityZones": [] + }, + { + "continentCode": "NA", + "description": "This region is recommended to serve users in the eastern United States", + "displayName": "Ohio", + "name": "us-east-2", + "availabilityZones": [], + "relationalDatabaseAvailabilityZones": [] + }, + { + "continentCode": "NA", + "description": "This region is recommended to serve users in the northwestern United States, Alaska, and western Canada", + "displayName": "Oregon", + "name": "us-west-2", + "availabilityZones": [], + "relationalDatabaseAvailabilityZones": [] + }, + ... + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-blueprints.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-blueprints.rst new file mode 100644 index 000000000..f1e455a91 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-blueprints.rst @@ -0,0 +1,60 @@ +**To get the blueprints for new relational databases** + +The following ``get-relational-database-blueprints`` example displays details about all of the available relational database blueprints that can be used to create new relational databases in Amazon Lightsail. :: + + aws lightsail get-relational-database-blueprints + +Output:: + + { + "blueprints": [ + { + "blueprintId": "mysql_5_6", + "engine": "mysql", + "engineVersion": "5.6.44", + "engineDescription": "MySQL Community Edition", + "engineVersionDescription": "MySQL 5.6.44", + "isEngineDefault": false + }, + { + "blueprintId": "mysql_5_7", + "engine": "mysql", + "engineVersion": "5.7.26", + "engineDescription": "MySQL Community Edition", + "engineVersionDescription": "MySQL 5.7.26", + "isEngineDefault": true + }, + { + "blueprintId": "mysql_8_0", + "engine": "mysql", + "engineVersion": "8.0.16", + "engineDescription": "MySQL Community Edition", + "engineVersionDescription": "MySQL 8.0.16", + "isEngineDefault": false + }, + { + "blueprintId": "postgres_9_6", + "engine": "postgres", + "engineVersion": "9.6.15", + "engineDescription": "PostgreSQL", + "engineVersionDescription": "PostgreSQL 9.6.15-R1", + "isEngineDefault": false + }, + { + "blueprintId": "postgres_10", + "engine": "postgres", + "engineVersion": "10.10", + "engineDescription": "PostgreSQL", + "engineVersionDescription": "PostgreSQL 10.10-R1", + "isEngineDefault": false + }, + { + "blueprintId": "postgres_11", + "engine": "postgres", + "engineVersion": "11.5", + "engineDescription": "PostgreSQL", + "engineVersionDescription": "PostgreSQL 11.5-R1", + "isEngineDefault": true + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-bundles.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-bundles.rst new file mode 100644 index 000000000..ffb7d417e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-bundles.rst @@ -0,0 +1,102 @@ +**To get the bundles for new relational databases** + +The following ``get-relational-database-bundles`` example displays details about all of the available relational database bundles that can be used to create new relational databases in Amazon Lightsail. Note that the response does not include inactive bundles because the ``--include-inactive`` flag is not specified in the command. You cannot use inactive bundles to create new relational databases. :: + + aws lightsail get-relational-database-bundles + +Output:: + + { + "bundles": [ + { + "bundleId": "micro_2_0", + "name": "Micro", + "price": 15.0, + "ramSizeInGb": 1.0, + "diskSizeInGb": 40, + "transferPerMonthInGb": 100, + "cpuCount": 2, + "isEncrypted": true, + "isActive": true + }, + { + "bundleId": "micro_ha_2_0", + "name": "Micro with High Availability", + "price": 30.0, + "ramSizeInGb": 1.0, + "diskSizeInGb": 40, + "transferPerMonthInGb": 100, + "cpuCount": 2, + "isEncrypted": true, + "isActive": true + }, + { + "bundleId": "small_2_0", + "name": "Small", + "price": 30.0, + "ramSizeInGb": 2.0, + "diskSizeInGb": 80, + "transferPerMonthInGb": 100, + "cpuCount": 2, + "isEncrypted": true, + "isActive": true + }, + { + "bundleId": "small_ha_2_0", + "name": "Small with High Availability", + "price": 60.0, + "ramSizeInGb": 2.0, + "diskSizeInGb": 80, + "transferPerMonthInGb": 100, + "cpuCount": 2, + "isEncrypted": true, + "isActive": true + }, + { + "bundleId": "medium_2_0", + "name": "Medium", + "price": 60.0, + "ramSizeInGb": 4.0, + "diskSizeInGb": 120, + "transferPerMonthInGb": 100, + "cpuCount": 2, + "isEncrypted": true, + "isActive": true + }, + { + "bundleId": "medium_ha_2_0", + "name": "Medium with High Availability", + "price": 120.0, + "ramSizeInGb": 4.0, + "diskSizeInGb": 120, + "transferPerMonthInGb": 100, + "cpuCount": 2, + "isEncrypted": true, + "isActive": true + }, + { + "bundleId": "large_2_0", + "name": "Large", + "price": 115.0, + "ramSizeInGb": 8.0, + "diskSizeInGb": 240, + "transferPerMonthInGb": 200, + "cpuCount": 2, + "isEncrypted": true, + "isActive": true + }, + { + "bundleId": "large_ha_2_0", + "name": "Large with High Availability", + "price": 230.0, + "ramSizeInGb": 8.0, + "diskSizeInGb": 240, + "transferPerMonthInGb": 200, + "cpuCount": 2, + "isEncrypted": true, + "isActive": true + } + ] + } + +For more information, see `Creating a database in Amazon Lightsail `__ in the *Amazon Lightsail Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-events.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-events.rst new file mode 100644 index 000000000..2180c3f88 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-events.rst @@ -0,0 +1,31 @@ +**To get the events for a relational database** + +The following ``get-relational-database-events`` example displays details about events in the last 17 hours (1020 minutes) for the specified relational database. :: + + aws lightsail get-relational-database-events \ + --relational-database-name Database-1 \ + --duration-in-minutes 1020 + +Output:: + + { + "relationalDatabaseEvents": [ + { + "resource": "Database-1", + "createdAt": 1571654146.553, + "message": "Backing up Relational Database", + "eventCategories": [ + "backup" + ] + }, + { + "resource": "Database-1", + "createdAt": 1571654249.98, + "message": "Finished Relational Database backup", + "eventCategories": [ + "backup" + ] + } + ] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-log-events.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-log-events.rst new file mode 100644 index 000000000..a67122afd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-log-events.rst @@ -0,0 +1,55 @@ +**To get log events for a relational database** + +The following ``get-relational-database-log-events`` example displays details about the specified log between ``1570733176`` and ``1571597176`` for relational database ``Database1``. The information returned is configured to start from ``head``. + +We recommend that you use a unix time converter to identify the start and end times. :: + + aws lightsail get-relational-database-log-events \ + --relational-database-name Database1 \ + --log-stream-name error \ + --start-from-head \ + --start-time 1570733176 \ + --end-time 1571597176 + +Output:: + + { + "resourceLogEvents": [ + { + "createdAt": 1570820267.0, + "message": "2019-10-11 18:57:47 20969 [Warning] IP address '192.0.2.0' could not be resolved: Name or service not known" + }, + { + "createdAt": 1570860974.0, + "message": "2019-10-12 06:16:14 20969 [Warning] IP address '8192.0.2.0' could not be resolved: Temporary failure in name resolution" + }, + { + "createdAt": 1570860977.0, + "message": "2019-10-12 06:16:17 20969 [Warning] IP address '192.0.2.0' could not be resolved: Temporary failure in name resolution" + }, + { + "createdAt": 1570860979.0, + "message": "2019-10-12 06:16:19 20969 [Warning] IP address '192.0.2.0' could not be resolved: Temporary failure in name resolution" + }, + { + "createdAt": 1570860981.0, + "message": "2019-10-12 06:16:21 20969 [Warning] IP address '192.0.2.0' could not be resolved: Temporary failure in name resolution" + }, + { + "createdAt": 1570860982.0, + "message": "2019-10-12 06:16:22 20969 [Warning] IP address '192.0.2.0' could not be resolved: Temporary failure in name resolution" + }, + { + "createdAt": 1570860984.0, + "message": "2019-10-12 06:16:24 20969 [Warning] IP address '192.0.2.0' could not be resolved: Temporary failure in name resolution" + }, + { + "createdAt": 1570860986.0, + "message": "2019-10-12 06:16:26 20969 [Warning] IP address '192.0.2.0' could not be resolved: Temporary failure in name resolution" + }, + ... + } + ], + "nextBackwardToken": "eEXAMPLEZXJUZXh0IjoiZnRWb3F3cUpRSlQ5NndMYThxelRUZlFhR3J6c2dKWEEvM2kvajZMZzVVVWpqRDN0YjFXTjNrak5pRk9iVFRZdjkwVGlpZGw5NFJGSFRQTEdJSjdpQnFCRk5CZFJlYTZaSXpScStuZjJEYXhqM2grUFVJOEpIYlU5YWJ2QitvQWN5cEFyVUo3VDk1QWY3bVF6MEwvcVovVldZdGc9Iiwibm9uY2UiOiJBNHpzdWMvUkZZKzRvUzhEIiwiY2lwaGVyIjoiQUVTL0dDTS9Ob1BhZGEXAMPLEQ==", + "nextForwardToken": "eEXAMPLEZXJUZXh0IjoiT09Lb0Z6ZFRJbHhaNEQ5N2tPbkkwRmwwNUxPZjFTbFFwUklQbzlSaWgvMWVXbEk4aG56VHg4bW1Gb3grbDVodUVNZEdiZXN0TzVYcjlLK1FUdFB2RlJLS2FMcU05WkN3Rm1uVzBkOFpDR2g0b1BBVlg2NVFGNDNPazZzRXJieHRuU0xzdkRNTkFUMTZibU9HM2YyaGxiS0hUUDA9Iiwibm9uY2UiOiJFQmI4STQ3cU5aWXNXZ0g4IiwiY2lwaGVyIjoiQUVTL0dDTS9Ob1BhZGEXAMPLEQ==" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-log-streams.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-log-streams.rst new file mode 100644 index 000000000..a5e36d42f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-log-streams.rst @@ -0,0 +1,17 @@ +**To get the log streams for a relational database** + +The following ``get-relational-database-log-streams`` example returns all of the available log streams for the specified relational database. :: + + aws lightsail get-relational-database-log-streams \ + --relational-database-name Database1 + +Output:: + + { + "logStreams": [ + "audit", + "error", + "general", + "slowquery" + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-master-user-password.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-master-user-password.rst new file mode 100644 index 000000000..9b15dd45b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-master-user-password.rst @@ -0,0 +1,13 @@ +**To get the master user password for a relational database** + +The following ``get-relational-database-master-user-password`` example returns information about the master user password for the specified relational database. :: + + aws lightsail get-relational-database-master-user-password \ + --relational-database-name Database-1 + +Output:: + + { + "masterUserPassword": "VEXAMPLEec.9qvx,_t<)Wkf)kwboM,>2", + "createdAt": 1571259453.959 + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-metric-data.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-metric-data.rst new file mode 100644 index 000000000..559713a93 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-metric-data.rst @@ -0,0 +1,72 @@ +**To get metric data for a relational database** + +The following ``get-relational-database-metric-data`` example returns the count sum of the metric ``DatabaseConnections`` over the period of 24 hours (``86400`` seconds) between ``1570733176`` and ``1571597176`` for relational database ``Database1``. + +We recommend that you use a unix time converter to identify the start and end times. :: + + aws lightsail get-relational-database-metric-data \ + --relational-database-name Database1 \ + --metric-name DatabaseConnections \ + --period 86400 \ + --start-time 1570733176 \ + --end-time 1571597176 \ + --unit Count \ + --statistics Sum + +Output:: + + { + "metricName": "DatabaseConnections", + "metricData": [ + { + "sum": 1.0, + "timestamp": 1571510760.0, + "unit": "Count" + }, + { + "sum": 1.0, + "timestamp": 1570733160.0, + "unit": "Count" + }, + { + "sum": 1.0, + "timestamp": 1570992360.0, + "unit": "Count" + }, + { + "sum": 0.0, + "timestamp": 1571251560.0, + "unit": "Count" + }, + { + "sum": 721.0, + "timestamp": 1570819560.0, + "unit": "Count" + }, + { + "sum": 1.0, + "timestamp": 1571078760.0, + "unit": "Count" + }, + { + "sum": 2.0, + "timestamp": 1571337960.0, + "unit": "Count" + }, + { + "sum": 684.0, + "timestamp": 1570905960.0, + "unit": "Count" + }, + { + "sum": 0.0, + "timestamp": 1571165160.0, + "unit": "Count" + }, + { + "sum": 1.0, + "timestamp": 1571424360.0, + "unit": "Count" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-parameters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-parameters.rst new file mode 100644 index 000000000..9276d35df --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-parameters.rst @@ -0,0 +1,54 @@ +**To get parameters for a relational database** + +The following ``get-relational-database-parameters`` example returns information about all of the available parameters for the specified relational database. :: + + aws lightsail get-relational-database-parameters \ + --relational-database-name Database-1 + +Output:: + + { + "parameters": [ + { + "allowedValues": "0,1", + "applyMethod": "pending-reboot", + "applyType": "dynamic", + "dataType": "boolean", + "description": "Automatically set all granted roles as active after the user has authenticated successfully.", + "isModifiable": true, + "parameterName": "activate_all_roles_on_login", + "parameterValue": "0" + }, + { + "allowedValues": "0,1", + "applyMethod": "pending-reboot", + "applyType": "static", + "dataType": "boolean", + "description": "Controls whether user-defined functions that have only an xxx symbol for the main function can be loaded", + "isModifiable": false, + "parameterName": "allow-suspicious-udfs" + }, + { + "allowedValues": "0,1", + "applyMethod": "pending-reboot", + "applyType": "dynamic", + "dataType": "boolean", + "description": "Sets the autocommit mode", + "isModifiable": true, + "parameterName": "autocommit" + }, + { + "allowedValues": "0,1", + "applyMethod": "pending-reboot", + "applyType": "static", + "dataType": "boolean", + "description": "Controls whether the server autogenerates SSL key and certificate files in the data directory, if they do not already exist.", + "isModifiable": false, + "parameterName": "auto_generate_certs" + }, + ... + } + ] + } + +For more information, see `Updating database parameters in Amazon Lightsail `__ in the *Lightsail Dev Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-snapshot.rst new file mode 100644 index 000000000..13f172516 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-snapshot.rst @@ -0,0 +1,31 @@ +**To get information about a relational database snapshot** + +The following ``get-relational-database-snapshot`` example displays details about the specified relational database snapshot. :: + + aws lightsail get-relational-database-snapshot \ + --relational-database-snapshot-name Database-1-1571350042 + +Output:: + + { + "relationalDatabaseSnapshot": { + "name": "Database-1-1571350042", + "arn": "arn:aws:lightsail:us-west-2:111122223333:RelationalDatabaseSnapshot/0389bbad-4b85-4c3d-9EXAMPLEaee3643d2", + "supportCode": "6EXAMPLE3362/ls-8EXAMPLE2ba7ad041451946fafc2ad19cfbd9eb2", + "createdAt": 1571350046.238, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "resourceType": "RelationalDatabaseSnapshot", + "tags": [], + "engine": "mysql", + "engineVersion": "8.0.16", + "sizeInGb": 40, + "state": "available", + "fromRelationalDatabaseName": "Database-1", + "fromRelationalDatabaseArn": "arn:aws:lightsail:us-west-2:111122223333:RelationalDatabase/7ea932b1-b85a-4bd5-9b3e-bEXAMPLE8cc4", + "fromRelationalDatabaseBundleId": "micro_1_0", + "fromRelationalDatabaseBlueprintId": "mysql_8_0" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-snapshots.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-snapshots.rst new file mode 100644 index 000000000..52e8d020e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database-snapshots.rst @@ -0,0 +1,56 @@ +**To get information about all relational database snapshots** + +The following ``get-relational-database-snapshots`` example displays details about all of the relational database snapshots in the configured AWS Region. :: + + aws lightsail get-relational-database-snapshots + +Output:: + + { + "relationalDatabaseSnapshots": [ + { + "name": "Database-1-1571350042", + "arn": "arn:aws:lightsail:us-west-2:111122223333:RelationalDatabaseSnapshot/0389bbad-4b85-4c3d-9861-6EXAMPLE43d2", + "supportCode": "6EXAMPLE3362/ls-8EXAMPLE2ba7ad041451946fafc2ad19cfbd9eb2", + "createdAt": 1571350046.238, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "resourceType": "RelationalDatabaseSnapshot", + "tags": [], + "engine": "mysql", + "engineVersion": "8.0.16", + "sizeInGb": 40, + "state": "available", + "fromRelationalDatabaseName": "Database-1", + "fromRelationalDatabaseArn": "arn:aws:lightsail:us-west-2:111122223333:RelationalDatabase/7ea932b1-b85a-4bd5-9b3e-bEXAMPLE8cc4", + "fromRelationalDatabaseBundleId": "micro_1_0", + "fromRelationalDatabaseBlueprintId": "mysql_8_0" + }, + { + "name": "Database1-Console", + "arn": "arn:aws:lightsail:us-west-2:111122223333:RelationalDatabaseSnapshot/8b94136e-06ec-4b1a-a3fb-5EXAMPLEe1e9", + "supportCode": "6EXAMPLE3362/ls-9EXAMPLE14b000d34c8d1c432734e137612d5b5c", + "createdAt": 1571249981.025, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "resourceType": "RelationalDatabaseSnapshot", + "tags": [ + { + "key": "test" + } + ], + "engine": "mysql", + "engineVersion": "5.6.44", + "sizeInGb": 40, + "state": "available", + "fromRelationalDatabaseName": "Database1", + "fromRelationalDatabaseArn": "arn:aws:lightsail:us-west-2:111122223333:RelationalDatabase/a6161cb7-4535-4f16-9dcf-8EXAMPLE3d4e", + "fromRelationalDatabaseBundleId": "micro_1_0", + "fromRelationalDatabaseBlueprintId": "mysql_5_6" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database.rst new file mode 100644 index 000000000..549b06325 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-database.rst @@ -0,0 +1,46 @@ +**To get information about a relational database** + +The following ``get-relational-database`` example displays details about the specified relational database. :: + + aws lightsail get-relational-database \ + --relational-database-name Database-1 + +Output:: + + { + "relationalDatabase": { + "name": "Database-1", + "arn": "arn:aws:lightsail:us-west-2:111122223333:RelationalDatabase/7ea932b1-b85a-4bd5-9b3e-bEXAMPLE8cc4", + "supportCode": "6EXAMPLE3362/ls-9EXAMPLE8ad863723b62cc8901a8aa6e794ae0d2", + "createdAt": 1571259453.795, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "resourceType": "RelationalDatabase", + "tags": [], + "relationalDatabaseBlueprintId": "mysql_8_0", + "relationalDatabaseBundleId": "micro_1_0", + "masterDatabaseName": "dbmaster", + "hardware": { + "cpuCount": 1, + "diskSizeInGb": 40, + "ramSizeInGb": 1.0 + }, + "state": "available", + "backupRetentionEnabled": false, + "pendingModifiedValues": {}, + "engine": "mysql", + "engineVersion": "8.0.16", + "masterUsername": "dbmasteruser", + "parameterApplyStatus": "in-sync", + "preferredBackupWindow": "10:01-10:31", + "preferredMaintenanceWindow": "sat:11:14-sat:11:44", + "publiclyAccessible": true, + "masterEndpoint": { + "port": 3306, + "address": "ls-9EXAMPLE8ad863723b62ccEXAMPLEa6e794ae0d2.czowadgeezqi.us-west-2.rds.amazonaws.com" + }, + "pendingMaintenanceActions": [] + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-databases.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-databases.rst new file mode 100644 index 000000000..bb5746942 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-relational-databases.rst @@ -0,0 +1,84 @@ +**To get information about all relational databases** + +The following ``get-relational-databases`` example displays details about all of the relational databases in the configured AWS Region. :: + + aws lightsail get-relational-databases + +Output:: + + { + "relationalDatabases": [ + { + "name": "MySQL", + "arn": "arn:aws:lightsail:us-west-2:111122223333:RelationalDatabase/8529020c-3ab9-4d51-92af-5EXAMPLE8979", + "supportCode": "6EXAMPLE3362/ls-3EXAMPLEa995d8c3b06b4501356e5f2f28e1aeba", + "createdAt": 1554306019.155, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "resourceType": "RelationalDatabase", + "tags": [], + "relationalDatabaseBlueprintId": "mysql_8_0", + "relationalDatabaseBundleId": "micro_1_0", + "masterDatabaseName": "dbmaster", + "hardware": { + "cpuCount": 1, + "diskSizeInGb": 40, + "ramSizeInGb": 1.0 + }, + "state": "available", + "backupRetentionEnabled": true, + "pendingModifiedValues": {}, + "engine": "mysql", + "engineVersion": "8.0.15", + "latestRestorableTime": 1571686200.0, + "masterUsername": "dbmasteruser", + "parameterApplyStatus": "in-sync", + "preferredBackupWindow": "07:51-08:21", + "preferredMaintenanceWindow": "tue:12:18-tue:12:48", + "publiclyAccessible": true, + "masterEndpoint": { + "port": 3306, + "address": "ls-3EXAMPLEa995d8c3b06b4501356e5f2fEXAMPLEa.czowadgeezqi.us-west-2.rds.amazonaws.com" + }, + "pendingMaintenanceActions": [] + }, + { + "name": "Postgres", + "arn": "arn:aws:lightsail:us-west-2:111122223333:RelationalDatabase/e9780b6b-d0ab-4af2-85f1-1EXAMPLEac68", + "supportCode": "6EXAMPLE3362/ls-3EXAMPLEb4fffb5cec056220c734713e14bd5fcd", + "createdAt": 1554306000.814, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "resourceType": "RelationalDatabase", + "tags": [], + "relationalDatabaseBlueprintId": "postgres_11", + "relationalDatabaseBundleId": "micro_1_0", + "masterDatabaseName": "dbmaster", + "hardware": { + "cpuCount": 1, + "diskSizeInGb": 40, + "ramSizeInGb": 1.0 + }, + "state": "available", + "backupRetentionEnabled": true, + "pendingModifiedValues": {}, + "engine": "postgres", + "engineVersion": "11.1", + "latestRestorableTime": 1571686339.0, + "masterUsername": "dbmasteruser", + "parameterApplyStatus": "in-sync", + "preferredBackupWindow": "06:19-06:49", + "preferredMaintenanceWindow": "sun:10:19-sun:10:49", + "publiclyAccessible": false, + "masterEndpoint": { + "port": 5432, + "address": "ls-3EXAMPLEb4fffb5cec056220c734713eEXAMPLEd.czowadgeezqi.us-west-2.rds.amazonaws.com" + }, + "pendingMaintenanceActions": [] + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-static-ip.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-static-ip.rst new file mode 100644 index 000000000..01eeae97b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-static-ip.rst @@ -0,0 +1,24 @@ +**To get information about a static IP** + +The following ``get-static-ip`` example displays details about the specified static IP. :: + + aws lightsail get-static-ip \ + --static-ip-name StaticIp-1 + +Output:: + + { + "staticIp": { + "name": "StaticIp-1", + "arn": "arn:aws:lightsail:us-west-2:111122223333:StaticIp/2257cd76-1f0e-4ac0-82e2-2EXAMPLE23ad", + "supportCode": "6EXAMPLE3362/192.0.2.0", + "createdAt": 1571071325.076, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "resourceType": "StaticIp", + "ipAddress": "192.0.2.0", + "isAttached": false + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-static-ips.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-static-ips.rst new file mode 100644 index 000000000..5f01ecbff --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/get-static-ips.rst @@ -0,0 +1,39 @@ +**To get information about all static IPs** + +The following ``get-static-ips`` example displays details about all of the static IPs in the configured AWS Region. :: + + aws lightsail get-static-ips + +Output:: + + { + "staticIps": [ + { + "name": "StaticIp-1", + "arn": "arn:aws:lightsail:us-west-2:111122223333:StaticIp/2257cd76-1f0e-4ac0-8EXAMPLE16f9423ad", + "supportCode": "6EXAMPLE3362/192.0.2.0", + "createdAt": 1571071325.076, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "resourceType": "StaticIp", + "ipAddress": "192.0.2.0", + "isAttached": false + }, + { + "name": "StaticIP-2", + "arn": "arn:aws:lightsail:us-west-2:111122223333:StaticIp/c61edb40-e5f0-4fd6-ae7c-8EXAMPLE19f8", + "supportCode": "6EXAMPLE3362/192.0.2.2", + "createdAt": 1568305385.681, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "resourceType": "StaticIp", + "ipAddress": "192.0.2.2", + "attachedTo": "WordPress-1", + "isAttached": true + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/is-vpc-peered.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/is-vpc-peered.rst new file mode 100644 index 000000000..43f59a80f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/is-vpc-peered.rst @@ -0,0 +1,12 @@ +**To identify if your Amazon Lightsail virtual private cloud is peered** + +The following ``is-vpc-peered`` example returns the peering status of the Amazon Lightsail virtual private cloud (VPC) for the specified AWS Region. :: + + aws lightsail is-vpc-peered \ + --region us-west-2 + +Output:: + + { + "isPeered": true + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/open-instance-public-ports.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/open-instance-public-ports.rst new file mode 100644 index 000000000..2fbdc0fb0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/open-instance-public-ports.rst @@ -0,0 +1,27 @@ +**To open firewall ports for an instance** + +The following ``open-instance-public-ports`` example opens TCP port 22 on the specified instance. :: + + aws lightsail open-instance-public-ports \ + --instance-name MEAN-2 \ + --port-info fromPort=22,protocol=TCP,toPort=22 + +Output:: + + { + "operation": { + "id": "719744f0-a022-46f2-9f11-6EXAMPLE4642", + "resourceName": "MEAN-2", + "resourceType": "Instance", + "createdAt": 1571072906.849, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationDetails": "22/tcp", + "operationType": "OpenInstancePublicPorts", + "status": "Succeeded", + "statusChangedAt": 1571072906.849 + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/peer-vpc.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/peer-vpc.rst new file mode 100644 index 000000000..ddfc28dff --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/peer-vpc.rst @@ -0,0 +1,27 @@ +**To peer the Amazon Lightsail virtual private cloud** + +The following ``peer-vpc`` example peers the Amazon Lightsail virtual private cloud (VPC) for the specified AWS Region. :: + + aws lightsail peer-vpc \ + --region us-west-2 + + +Output:: + + { + "operation": { + "id": "787e846a-54ac-497f-bce2-9EXAMPLE5d91", + "resourceName": "vpc-0EXAMPLEa5261efb3", + "resourceType": "PeeredVpc", + "createdAt": 1571694233.104, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationDetails": "vpc-e2b3eb9b", + "operationType": "PeeredVpc", + "status": "Succeeded", + "statusChangedAt": 1571694233.104 + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/reboot-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/reboot-instance.rst new file mode 100644 index 000000000..232821fbf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/reboot-instance.rst @@ -0,0 +1,28 @@ +**To reboot an instance** + +The following ``reboot-instance`` example reboots the specified instance. :: + + aws lightsail reboot-instance \ + --instance-name MEAN-1 + +Output:: + + { + "operations": [ + { + "id": "2b679f1c-8b71-4bb4-8e97-8EXAMPLEed93", + "resourceName": "MEAN-1", + "resourceType": "Instance", + "createdAt": 1571694445.49, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationDetails": "", + "operationType": "RebootInstance", + "status": "Succeeded", + "statusChangedAt": 1571694445.49 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/reboot-relational-database.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/reboot-relational-database.rst new file mode 100644 index 000000000..17b38f6a8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/reboot-relational-database.rst @@ -0,0 +1,28 @@ +**To reboot a relational database** + +The following ``reboot-relational-database`` example reboots the specified relational database. :: + + aws lightsail reboot-relational-database \ + --relational-database-name Database-1 + +Output:: + + { + "operations": [ + { + "id": "e4c980c0-3137-496c-9c91-1EXAMPLEdec2", + "resourceName": "Database-1", + "resourceType": "RelationalDatabase", + "createdAt": 1571694532.91, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationDetails": "", + "operationType": "RebootRelationalDatabase", + "status": "Started", + "statusChangedAt": 1571694532.91 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/release-static-ip.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/release-static-ip.rst new file mode 100644 index 000000000..f572e34a6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/release-static-ip.rst @@ -0,0 +1,27 @@ +**To delete a static IP** + +The following ``release-static-ip`` example deletes the specified static IP. :: + + aws lightsail release-static-ip \ + --static-ip-name StaticIp-1 + +Output:: + + { + "operations": [ + { + "id": "e374c002-dc6d-4c7f-919f-2EXAMPLE13ce", + "resourceName": "StaticIp-1", + "resourceType": "StaticIp", + "createdAt": 1571694962.003, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationType": "ReleaseStaticIp", + "status": "Succeeded", + "statusChangedAt": 1571694962.003 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/start-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/start-instance.rst new file mode 100644 index 000000000..97d2a80f3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/start-instance.rst @@ -0,0 +1,27 @@ +**To start an instance** + +The following ``start-instance`` example starts the specified instance. :: + + aws lightsail start-instance \ + --instance-name WordPress-1 + +Output:: + + { + "operations": [ + { + "id": "f88d2a93-7cea-4165-afce-2d688cb18f23", + "resourceName": "WordPress-1", + "resourceType": "Instance", + "createdAt": 1571695583.463, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationType": "StartInstance", + "status": "Started", + "statusChangedAt": 1571695583.463 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/start-relational-database.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/start-relational-database.rst new file mode 100644 index 000000000..3ed9d5b1b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/start-relational-database.rst @@ -0,0 +1,27 @@ +**To start a relational database** + +The following ``start-relational-database`` example starts the specified relational database. :: + + aws lightsail start-relational-database \ + --relational-database-name Database-1 + +Output:: + + { + "operations": [ + { + "id": "4d5294ec-a38a-4fda-9e37-aEXAMPLE0d24", + "resourceName": "Database-1", + "resourceType": "RelationalDatabase", + "createdAt": 1571695998.822, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationType": "StartRelationalDatabase", + "status": "Started", + "statusChangedAt": 1571695998.822 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/stop-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/stop-instance.rst new file mode 100644 index 000000000..18fe4adb8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/stop-instance.rst @@ -0,0 +1,27 @@ +**To stop an instance** + +The following ``stop-instance`` example stops the specified instance. :: + + aws lightsail stop-instance \ + --instance-name WordPress-1 + +Output:: + + { + "operations": [ + { + "id": "265357e2-2943-4d51-888a-1EXAMPLE7585", + "resourceName": "WordPress-1", + "resourceType": "Instance", + "createdAt": 1571695471.134, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationType": "StopInstance", + "status": "Started", + "statusChangedAt": 1571695471.134 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/stop-relational-database.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/stop-relational-database.rst new file mode 100644 index 000000000..e90eb3705 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/stop-relational-database.rst @@ -0,0 +1,27 @@ +**To stop a relational database** + +The following ``stop-relational-database`` example stops the specified relational database. :: + + aws lightsail stop-relational-database \ + --relational-database-name Database-1 + +Output:: + + { + "operations": [ + { + "id": "cc559c19-4adb-41e4-b75b-5EXAMPLE4e61", + "resourceName": "Database-1", + "resourceType": "RelationalDatabase", + "createdAt": 1571695526.29, + "location": { + "availabilityZone": "us-west-2a", + "regionName": "us-west-2" + }, + "isTerminal": false, + "operationType": "StopRelationalDatabase", + "status": "Started", + "statusChangedAt": 1571695526.29 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/unpeer-vpc.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/unpeer-vpc.rst new file mode 100644 index 000000000..e7a77e71b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/lightsail/unpeer-vpc.rst @@ -0,0 +1,26 @@ +**To unpeer the Amazon Lightsail virtual private cloud** + +The following ``unpeer-vpc`` example unpeers the Amazon Lightsail virtual private cloud (VPC) for the specified AWS Region. :: + + aws lightsail unpeer-vpc \ + --region us-west-2 + +Output:: + + { + "operation": { + "id": "531aca64-7157-47ab-84c6-eEXAMPLEd898", + "resourceName": "vpc-0EXAMPLEa5261efb3", + "resourceType": "PeeredVpc", + "createdAt": 1571694109.945, + "location": { + "availabilityZone": "all", + "regionName": "us-west-2" + }, + "isTerminal": true, + "operationDetails": "vpc-e2b3eb9b", + "operationType": "UnpeeredVpc", + "status": "Succeeded", + "statusChangedAt": 1571694109.945 + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/create-log-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/create-log-group.rst new file mode 100644 index 000000000..f81bcdc52 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/create-log-group.rst @@ -0,0 +1,3 @@ +The following command creates a log group named ``my-logs``:: + + aws logs create-log-group --log-group-name my-logs diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/create-log-stream.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/create-log-stream.rst new file mode 100644 index 000000000..f079c20b5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/create-log-stream.rst @@ -0,0 +1,3 @@ +The following command creates a log stream named ``20150601`` in the log group ``my-logs``:: + + aws logs create-log-stream --log-group-name my-logs --log-stream-name 20150601 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/delete-log-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/delete-log-group.rst new file mode 100644 index 000000000..27105d0ae --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/delete-log-group.rst @@ -0,0 +1,3 @@ +The following command deletes a log group named ``my-logs``:: + + aws logs delete-log-group --log-group-name my-logs diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/delete-log-stream.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/delete-log-stream.rst new file mode 100644 index 000000000..94697f421 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/delete-log-stream.rst @@ -0,0 +1,3 @@ +The following command deletes a log stream named ``20150531`` from a log group named ``my-logs``:: + + aws logs delete-log-stream --log-group-name my-logs --log-stream-name 20150531 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/delete-retention-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/delete-retention-policy.rst new file mode 100644 index 000000000..19f98f3b9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/delete-retention-policy.rst @@ -0,0 +1,3 @@ +The following command removes the retention policy that has previously been applied to a log group named ``my-logs``:: + + aws logs delete-retention-policy --log-group-name my-logs diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/describe-log-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/describe-log-groups.rst new file mode 100644 index 000000000..9f20b52c6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/describe-log-groups.rst @@ -0,0 +1,18 @@ +The following command describes a log group named ``my-logs``:: + + aws logs describe-log-groups --log-group-name-prefix my-logs + +Output:: + + { + "logGroups": [ + { + "storedBytes": 0, + "metricFilterCount": 0, + "creationTime": 1433189500783, + "logGroupName": "my-logs", + "retentionInDays": 5, + "arn": "arn:aws:logs:us-west-2:0123456789012:log-group:my-logs:*" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/describe-log-streams.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/describe-log-streams.rst new file mode 100644 index 000000000..c56df2e8e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/describe-log-streams.rst @@ -0,0 +1,22 @@ +The following command shows all log streams starting with the prefix ``2015`` in the log group ``my-logs``:: + + aws logs describe-log-streams --log-group-name my-logs --log-stream-name-prefix 2015 + +Output:: + + { + "logStreams": [ + { + "creationTime": 1433189871774, + "arn": "arn:aws:logs:us-west-2:0123456789012:log-group:my-logs:log-stream:20150531", + "logStreamName": "20150531", + "storedBytes": 0 + }, + { + "creationTime": 1433189873898, + "arn": "arn:aws:logs:us-west-2:0123456789012:log-group:my-logs:log-stream:20150601", + "logStreamName": "20150601", + "storedBytes": 0 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/get-log-events.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/get-log-events.rst new file mode 100644 index 000000000..dd009a9da --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/get-log-events.rst @@ -0,0 +1,27 @@ +The following command retrieves log events from a log stream named ``20150601`` in the log group ``my-logs``:: + + aws logs get-log-events --log-group-name my-logs --log-stream-name 20150601 + +Output:: + + { + "nextForwardToken": "f/31961209122447488583055879464742346735121166569214640130", + "events": [ + { + "ingestionTime": 1433190494190, + "timestamp": 1433190184356, + "message": "Example Event 1" + }, + { + "ingestionTime": 1433190516679, + "timestamp": 1433190184356, + "message": "Example Event 1" + }, + { + "ingestionTime": 1433190494190, + "timestamp": 1433190184358, + "message": "Example Event 2" + } + ], + "nextBackwardToken": "b/31961209122358285602261756944988674324553373268216709120" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/put-log-events.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/put-log-events.rst new file mode 100644 index 000000000..457c3dbd6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/put-log-events.rst @@ -0,0 +1,36 @@ +The following command puts log events to a log stream named ``20150601`` in the log group ``my-logs``:: + + aws logs put-log-events --log-group-name my-logs --log-stream-name 20150601 --log-events file://events + +Output:: + + { + "nextSequenceToken": "49542672486831074009579604567656788214806863282469607346" + } + +The above example reads a JSON array of events from a file named ``events`` in the current directory:: + + [ + { + "timestamp": 1433190184356, + "message": "Example Event 1" + }, + { + "timestamp": 1433190184358, + "message": "Example Event 2" + }, + { + "timestamp": 1433190184360, + "message": "Example Event 3" + } + ] + +Each subsequent call requires the next sequence token provided by the previous call to be specified with the sequence token option:: + + aws logs put-log-events --log-group-name my-logs --log-stream-name 20150601 --log-events file://events2 --sequence-token "49542672486831074009579604567656788214806863282469607346" + +Output:: + + { + "nextSequenceToken": "49542672486831074009579604567900991230369019956308219826" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/put-retention-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/put-retention-policy.rst new file mode 100644 index 000000000..6bb990487 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/logs/put-retention-policy.rst @@ -0,0 +1,3 @@ +The following command adds a 5 day retention policy to a log group named ``my-logs``:: + + aws logs put-retention-policy --log-group-name my-logs --retention-in-days 5 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/macie2/describe-buckets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/macie2/describe-buckets.rst new file mode 100644 index 000000000..171d524d3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/macie2/describe-buckets.rst @@ -0,0 +1,195 @@ +**To query data about one or more S3 buckets that Amazon Macie monitors and analyzes for your account** + +The following ``describe-buckets`` example queries metadata for all S3 buckets whose names begin with amzn-s3-demo-bucket and are in the current AWS Region. :: + + aws macie2 describe-buckets \ + --criteria '{"bucketName":{"prefix":"amzn-s3-demo-bucket"}}' + +Output:: + + { + "buckets": [ + { + "accountId": "123456789012", + "allowsUnencryptedObjectUploads": "FALSE", + "automatedDiscoveryMonitoringStatus": "MONITORED", + "bucketArn": "arn:aws:s3:::amzn-s3-demo-bucket1", + "bucketCreatedAt": "2020-05-18T19:54:00+00:00", + "bucketName": "amzn-s3-demo-bucket1", + "classifiableObjectCount": 13, + "classifiableSizeInBytes": 1592088, + "jobDetails": { + "isDefinedInJob": "TRUE", + "isMonitoredByJob": "TRUE", + "lastJobId": "08c81dc4a2f3377fae45c9ddaEXAMPLE", + "lastJobRunTime": "2024-08-19T14:55:30.270000+00:00" + }, + "lastAutomatedDiscoveryTime": "2024-10-22T19:11:25.364000+00:00", + "lastUpdated": "2024-10-25T07:33:06.337000+00:00", + "objectCount": 13, + "objectCountByEncryptionType": { + "customerManaged": 0, + "kmsManaged": 2, + "s3Managed": 7, + "unencrypted": 4, + "unknown": 0 + }, + "publicAccess": { + "effectivePermission": "NOT_PUBLIC", + "permissionConfiguration": { + "accountLevelPermissions": { + "blockPublicAccess": { + "blockPublicAcls": true, + "blockPublicPolicy": true, + "ignorePublicAcls": true, + "restrictPublicBuckets": true + } + }, + "bucketLevelPermissions": { + "accessControlList": { + "allowsPublicReadAccess": false, + "allowsPublicWriteAccess": false + }, + "blockPublicAccess": { + "blockPublicAcls": true, + "blockPublicPolicy": true, + "ignorePublicAcls": true, + "restrictPublicBuckets": true + }, + "bucketPolicy": { + "allowsPublicReadAccess": false, + "allowsPublicWriteAccess": false + } + } + } + }, + "region": "us-west-2", + "replicationDetails": { + "replicated": false, + "replicatedExternally": false, + "replicationAccounts": [] + }, + "sensitivityScore": 78, + "serverSideEncryption": { + "kmsMasterKeyId": null, + "type": "NONE" + }, + "sharedAccess": "NOT_SHARED", + "sizeInBytes": 4549746, + "sizeInBytesCompressed": 0, + "tags": [ + { + "key": "Division", + "value": "HR" + }, + { + "key": "Team", + "value": "Recruiting" + } + ], + "unclassifiableObjectCount": { + "fileType": 0, + "storageClass": 0, + "total": 0 + }, + "unclassifiableObjectSizeInBytes": { + "fileType": 0, + "storageClass": 0, + "total": 0 + }, + "versioning": true + }, + { + "accountId": "123456789012", + "allowsUnencryptedObjectUploads": "TRUE", + "automatedDiscoveryMonitoringStatus": "MONITORED", + "bucketArn": "arn:aws:s3:::amzn-s3-demo-bucket2", + "bucketCreatedAt": "2020-11-25T18:24:38+00:00", + "bucketName": "amzn-s3-demo-bucket2", + "classifiableObjectCount": 8, + "classifiableSizeInBytes": 133810, + "jobDetails": { + "isDefinedInJob": "TRUE", + "isMonitoredByJob": "FALSE", + "lastJobId": "188d4f6044d621771ef7d65f2EXAMPLE", + "lastJobRunTime": "2024-07-09T19:37:11.511000+00:00" + }, + "lastAutomatedDiscoveryTime": "2024-10-24T19:11:25.364000+00:00", + "lastUpdated": "2024-10-25T07:33:06.337000+00:00", + "objectCount": 8, + "objectCountByEncryptionType": { + "customerManaged": 0, + "kmsManaged": 0, + "s3Managed": 8, + "unencrypted": 0, + "unknown": 0 + }, + "publicAccess": { + "effectivePermission": "NOT_PUBLIC", + "permissionConfiguration": { + "accountLevelPermissions": { + "blockPublicAccess": { + "blockPublicAcls": true, + "blockPublicPolicy": true, + "ignorePublicAcls": true, + "restrictPublicBuckets": true + } + }, + "bucketLevelPermissions": { + "accessControlList": { + "allowsPublicReadAccess": false, + "allowsPublicWriteAccess": false + }, + "blockPublicAccess": { + "blockPublicAcls": true, + "blockPublicPolicy": true, + "ignorePublicAcls": true, + "restrictPublicBuckets": true + }, + "bucketPolicy": { + "allowsPublicReadAccess": false, + "allowsPublicWriteAccess": false + } + } + } + }, + "region": "us-west-2", + "replicationDetails": { + "replicated": false, + "replicatedExternally": false, + "replicationAccounts": [] + }, + "sensitivityScore": 95, + "serverSideEncryption": { + "kmsMasterKeyId": null, + "type": "AES256" + }, + "sharedAccess": "EXTERNAL", + "sizeInBytes": 175978, + "sizeInBytesCompressed": 0, + "tags": [ + { + "key": "Division", + "value": "HR" + }, + { + "key": "Team", + "value": "Recruiting" + } + ], + "unclassifiableObjectCount": { + "fileType": 3, + "storageClass": 0, + "total": 3 + }, + "unclassifiableObjectSizeInBytes": { + "fileType": 2999826, + "storageClass": 0, + "total": 2999826 + }, + "versioning": true + } + ] + } + +For more information, see `Filtering your S3 bucket inventory `__ in the *Amazon Macie User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/add-flow-outputs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/add-flow-outputs.rst new file mode 100644 index 000000000..259d57513 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/add-flow-outputs.rst @@ -0,0 +1,39 @@ +**To add outputs to a flow** + +The following ``add-flow-outputs`` example adds outputs to the specified flow. :: + + aws mediaconnect add-flow-outputs \ + --flow-arn arn:aws:mediaconnect:us-east-1:111122223333:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:BaseballGame \ + --outputs Description='NYC stream',Destination=192.0.2.12,Name=NYC,Port=3333,Protocol=rtp-fec,SmoothingLatency=100 Description='LA stream',Destination=203.0.113.9,Name=LA,Port=4444,Protocol=rtp-fec,SmoothingLatency=100 + +Output:: + + { + "Outputs": [ + { + "Port": 3333, + "OutputArn": "arn:aws:mediaconnect:us-east-1:111122223333:output:2-3aBC45dEF67hiJ89-c34de5fG678h:NYC", + "Name": "NYC", + "Description": "NYC stream", + "Destination": "192.0.2.12", + "Transport": { + "Protocol": "rtp-fec", + "SmoothingLatency": 100 + } + }, + { + "Port": 4444, + "OutputArn": "arn:aws:mediaconnect:us-east-1:111122223333:output:2-987655dEF67hiJ89-c34de5fG678h:LA", + "Name": "LA", + "Description": "LA stream", + "Destination": "203.0.113.9", + "Transport": { + "Protocol": "rtp-fec", + "SmoothingLatency": 100 + } + } + ], + "FlowArn": "arn:aws:mediaconnect:us-east-1:111122223333:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:BaseballGame" + } + +For more information, see `Adding Outputs to a Flow `__ in the *AWS Elemental MediaConnect User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/create-flow.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/create-flow.rst new file mode 100644 index 000000000..cbed8fde9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/create-flow.rst @@ -0,0 +1,37 @@ +**To create a flow** + +The following ``create-flow`` example creates a flow with the specified configuration. :: + + aws mediaconnect create-flow \ + --availability-zone us-west-2c \ + --name ExampleFlow \ + --source Description='Example source, backup',IngestPort=1055,Name=BackupSource,Protocol=rtp,WhitelistCidr=10.24.34.0/23 + +Output:: + + { + "Flow": { + "FlowArn": "arn:aws:mediaconnect:us-east-1:123456789012:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:ExampleFlow", + "AvailabilityZone": "us-west-2c", + "EgressIp": "54.245.71.21", + "Source": { + "IngestPort": 1055, + "SourceArn": "arn:aws:mediaconnect:us-east-1:123456789012:source:2-3aBC45dEF67hiJ89-c34de5fG678h:BackupSource", + "Transport": { + "Protocol": "rtp", + "MaxBitrate": 80000000 + }, + "Description": "Example source, backup", + "IngestIp": "54.245.71.21", + "WhitelistCidr": "10.24.34.0/23", + "Name": "mySource" + }, + "Entitlements": [], + "Name": "ExampleFlow", + "Outputs": [], + "Status": "STANDBY", + "Description": "Example source, backup" + } + } + +For more information, see `Creating a Flow `__ in the *AWS Elemental MediaConnect User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/delete-flow.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/delete-flow.rst new file mode 100644 index 000000000..69de8a49d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/delete-flow.rst @@ -0,0 +1,15 @@ +**To delete a flow** + +The following ``delete-flow`` example deletes the specified flow. :: + + aws mediaconnect delete-flow \ + --flow-arn arn:aws:mediaconnect:us-east-1:123456789012:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:AwardsShow + +Output:: + + { + "FlowArn": "arn:aws:mediaconnect:us-east-1:123456789012:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:AwardsShow", + "Status": "DELETING" + } + +For more information, see `Deleting a Flow `__ in the *AWS Elemental MediaConnect User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/describe-flow.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/describe-flow.rst new file mode 100644 index 000000000..04cfd961d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/describe-flow.rst @@ -0,0 +1,65 @@ +**To view the details of a flow** + +The following ``describe-flow`` example displays the specified flow's details, such as ARN, Availability Zone, status, source, entitlements, and outputs. :: + + aws mediaconnect describe-flow \ + --flow-arn arn:aws:mediaconnect:us-east-1:123456789012:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:AwardsShow + +Output:: + + { + "Flow": { + "EgressIp": "54.201.4.39", + "AvailabilityZone": "us-west-2c", + "Status": "ACTIVE", + "FlowArn": "arn:aws:mediaconnect:us-east-1:123456789012:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:AwardsShow", + "Entitlements": [ + { + "EntitlementArn": "arn:aws:mediaconnect:us-west-2:123456789012:entitlement:1-AaBb11CcDd22EeFf-34DE5fG12AbC:MyEntitlement", + "Description": "Assign to this account", + "Name": "MyEntitlement", + "Subscribers": [ + "444455556666" + ] + } + ], + "Description": "NYC awards show", + "Name": "AwardsShow", + "Outputs": [ + { + "Port": 2355, + "Name": "NYC", + "Transport": { + "SmoothingLatency": 0, + "Protocol": "rtp-fec" + }, + "OutputArn": "arn:aws:mediaconnect:us-east-1:123456789012:output:2-3aBC45dEF67hiJ89-c34de5fG678h:NYC", + "Destination": "192.0.2.0" + }, + { + "Port": 3025, + "Name": "LA", + "Transport": { + "SmoothingLatency": 0, + "Protocol": "rtp-fec" + }, + "OutputArn": "arn:aws:mediaconnect:us-east-1:123456789012:output:2-987655dEF67hiJ89-c34de5fG678h:LA", + "Destination": "192.0.2.0" + } + ], + "Source": { + "IngestIp": "54.201.4.39", + "SourceArn": "arn:aws:mediaconnect:us-east-1:123456789012:source:3-4aBC56dEF78hiJ90-4de5fG6Hi78Jk:ShowSource", + "Transport": { + "MaxBitrate": 80000000, + "Protocol": "rtp" + }, + "IngestPort": 1069, + "Description": "Saturday night show", + "Name": "ShowSource", + "WhitelistCidr": "10.24.34.0/23" + } + } + } + +For more information, see `Viewing the Details of a Flow `__ in the *AWS Elemental MediaConnect User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/grant-flow-entitlements.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/grant-flow-entitlements.rst new file mode 100644 index 000000000..831268e16 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/grant-flow-entitlements.rst @@ -0,0 +1,39 @@ +**To grant an entitlement on a flow** + +The following ``grant-flow-entitlements`` example grants an entitlement to the specified existing flow to share your content with another AWS account. :: + + aws mediaconnect grant-flow-entitlements \ + --flow-arn arn:aws:mediaconnect:us-east-1:111122223333:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:BaseballGame \ + --entitlements Description='For AnyCompany',Encryption={"Algorithm=aes128,KeyType=static-key,RoleArn=arn:aws:iam::111122223333:role/MediaConnect-ASM,SecretArn=arn:aws:secretsmanager:us-west-2:111122223333:secret:mySecret1"},Name=AnyCompany_Entitlement,Subscribers=444455556666 Description='For Example Corp',Name=ExampleCorp,Subscribers=777788889999 + +Output:: + + { + "Entitlements": [ + { + "Name": "AnyCompany_Entitlement", + "EntitlementArn": "arn:aws:mediaconnect:us-west-2:111122223333:entitlement:1-11aa22bb11aa22bb-3333cccc4444:AnyCompany_Entitlement", + "Subscribers": [ + "444455556666" + ], + "Description": "For AnyCompany", + "Encryption": { + "SecretArn": "arn:aws:secretsmanager:us-west-2:111122223333:secret:mySecret1", + "Algorithm": "aes128", + "RoleArn": "arn:aws:iam::111122223333:role/MediaConnect-ASM", + "KeyType": "static-key" + } + }, + { + "Name": "ExampleCorp", + "EntitlementArn": "arn:aws:mediaconnect:us-west-2:111122223333:entitlement:1-3333cccc4444dddd-1111aaaa2222:ExampleCorp", + "Subscribers": [ + "777788889999" + ], + "Description": "For Example Corp" + } + ], + "FlowArn": "arn:aws:mediaconnect:us-east-1:111122223333:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:BaseballGame" + } + +For more information, see `Granting an Entitlement on a Flow `__ in the *AWS Elemental MediaConnect User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/list-entitlements.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/list-entitlements.rst new file mode 100644 index 000000000..68466c6b1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/list-entitlements.rst @@ -0,0 +1,18 @@ +**To view a list of entitlements** + +The following ``list-entitlements`` example displays a list of all entitlements that have been granted to the account. :: + + aws mediaconnect list-entitlements + +Output:: + + { + "Entitlements": [ + { + "EntitlementArn": "arn:aws:mediaconnect:us-west-2:111122223333:entitlement:1-11aa22bb11aa22bb-3333cccc4444:MyEntitlement", + "EntitlementName": "MyEntitlement" + } + ] + } + +For more information, see `ListEntitlements `__ in the *AWS Elemental MediaConnect API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/list-flows.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/list-flows.rst new file mode 100644 index 000000000..5d636a4a9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/list-flows.rst @@ -0,0 +1,30 @@ +**To view a list of flows** + +The following ``list-flows`` example displays a list of flows. :: + + aws mediaconnect list-flows + +Output:: + + { + "Flows": [ + { + "Status": "STANDBY", + "SourceType": "OWNED", + "AvailabilityZone": "us-west-2a", + "Description": "NYC awards show", + "Name": "AwardsShow", + "FlowArn": "arn:aws:mediaconnect:us-east-1:111122223333:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:AwardsShow" + }, + { + "Status": "STANDBY", + "SourceType": "OWNED", + "AvailabilityZone": "us-west-2c", + "Description": "LA basketball game", + "Name": "BasketballGame", + "FlowArn": "arn:aws:mediaconnect:us-east-1:111122223333:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:BasketballGame" + } + ] + } + +For more information, see `Viewing a List of Flows `__ in the *AWS Elemental MediaConnect User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/list-tags-for-resource.rst new file mode 100644 index 000000000..170a1c0e9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/list-tags-for-resource.rst @@ -0,0 +1,17 @@ +**To list tags for a MediaConnect resource** + +The following ``list-tags-for-resource`` example displays the tag keys and values associated with the specified MediaConnect resource. :: + + aws mediaconnect list-tags-for-resource \ + --resource-arn arn:aws:mediaconnect:us-east-1:123456789012:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:BasketballGame + +Output:: + + { + "Tags": { + "region": "west", + "stage": "prod" + } + } + +For more information, see `ListTagsForResource, TagResource, UntagResource `__ in the *AWS Elemental MediaConnect API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/remove-flow-output.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/remove-flow-output.rst new file mode 100644 index 000000000..4dea859d6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/remove-flow-output.rst @@ -0,0 +1,16 @@ +**To remove an output from a flow** + +The following ``remove-flow-output`` example removes an output from the specified flow. :: + + aws mediaconnect remove-flow-output \ + --flow-arn arn:aws:mediaconnect:us-east-1:111122223333:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:BaseballGame \ + --output-arn arn:aws:mediaconnect:us-east-1:111122223333:output:2-3aBC45dEF67hiJ89-c34de5fG678h:NYC + +Output:: + + { + "FlowArn": "arn:aws:mediaconnect:us-east-1:111122223333:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:BaseballGame", + "OutputArn": "arn:aws:mediaconnect:us-east-1:111122223333:output:2-3aBC45dEF67hiJ89-c34de5fG678h:NYC" + } + +For more information, see `Removing Outputs from a Flow `__ in the *AWS Elemental MediaConnect User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/revoke-flow-entitlement.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/revoke-flow-entitlement.rst new file mode 100644 index 000000000..18dfeb561 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/revoke-flow-entitlement.rst @@ -0,0 +1,16 @@ +**To revoke an entitlement** + +The following ``revoke-flow-entitlement`` example revokes an entitlement on the specified flow. :: + + aws mediaconnect revoke-flow-entitlement \ + --flow-arn arn:aws:mediaconnect:us-east-1:111122223333:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:BaseballGame \ + --entitlement-arn arn:aws:mediaconnect:us-west-2:111122223333:entitlement:1-11aa22bb11aa22bb-3333cccc4444:AnyCompany_Entitlement + +Output:: + + { + "FlowArn": "arn:aws:mediaconnect:us-east-1:111122223333:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:BaseballGame", + "EntitlementArn": "arn:aws:mediaconnect:us-west-2:111122223333:entitlement:1-11aa22bb11aa22bb-3333cccc4444:AnyCompany_Entitlement" + } + +For more information, see `Revoking an Entitlement `__ in the *AWS Elemental MediaConnect User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/start-flow.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/start-flow.rst new file mode 100644 index 000000000..7e62f1542 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/start-flow.rst @@ -0,0 +1,16 @@ +**To start a flow** + +The following ``start-flow`` example starts the specified flow. :: + + aws mediaconnect start-flow \ + --flow-arn arn:aws:mediaconnect:us-east-1:123456789012:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:AwardsShow + +This command produces no output. +Output:: + + { + "FlowArn": "arn:aws:mediaconnect:us-east-1:123456789012:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:AwardsShow", + "Status": "STARTING" + } + +For more information, see `Starting a Flow `__ in the *AWS Elemental MediaConnect User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/stop-flow.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/stop-flow.rst new file mode 100644 index 000000000..b6241e2aa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/stop-flow.rst @@ -0,0 +1,15 @@ +**To stop a flow** + +The following ``stop-flow`` example stops the specified flow. :: + + aws mediaconnect stop-flow \ + --flow-arn arn:aws:mediaconnect:us-east-1:123456789012:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:AwardsShow + +Output:: + + { + "Status": "STOPPING", + "FlowArn": "arn:aws:mediaconnect:us-east-1:123456789012:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:AwardsShow" + } + +For more information, see `Stopping a Flow `__ in the *AWS Elemental MediaConnect User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/tag-resource.rst new file mode 100644 index 000000000..95d75a923 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/tag-resource.rst @@ -0,0 +1,11 @@ +**To add tags to a MediaConnect resource** + +The following ``tag-resource`` example adds a tag with a key name and value to the specified MediaConnect resource. :: + + aws mediaconnect tag-resource \ + --resource-arn arn:aws:mediaconnect:us-east-1:123456789012:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:BasketballGame + --tags region=west + +This command produces no output. + +For more information, see `ListTagsForResource, TagResource, UntagResource `__ in the *AWS Elemental MediaConnect API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/untag-resource.rst new file mode 100644 index 000000000..4d6b18844 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove tags from a MediaConnect resource** + +The following ``untag-resource`` example remove the tag with the specified key name and its associated value from a MediaConnect resource. :: + + aws mediaconnect untag-resource \ + --resource-arn arn:aws:mediaconnect:us-east-1:123456789012:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:BasketballGame \ + --tag-keys region + +This command produces no output. + +For more information, see `ListTagsForResource, TagResource, UntagResource `__ in the *AWS Elemental MediaConnect API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/update-flow-entitlement.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/update-flow-entitlement.rst new file mode 100644 index 000000000..048cec343 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/update-flow-entitlement.rst @@ -0,0 +1,31 @@ +**To update an entitlement** + +The following ``update-flow-entitlement`` example updates the specified entitlement with a new description and subscriber. :: + + aws mediaconnect update-flow-entitlement \ + --flow-arn arn:aws:mediaconnect:us-east-1:111122223333:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:BaseballGame \ + --entitlement-arn arn:aws:mediaconnect:us-west-2:111122223333:entitlement:1-11aa22bb11aa22bb-3333cccc4444:AnyCompany_Entitlement \ + --description 'For AnyCompany Affiliate' \ + --subscribers 777788889999 + +Output:: + + { + "FlowArn": "arn:aws:mediaconnect:us-east-1:111122223333:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:BaseballGame", + "Entitlement": { + "Name": "AnyCompany_Entitlement", + "Description": "For AnyCompany Affiliate", + "EntitlementArn": "arn:aws:mediaconnect:us-west-2:111122223333:entitlement:1-11aa22bb11aa22bb-3333cccc4444:AnyCompany_Entitlement", + "Encryption": { + "KeyType": "static-key", + "Algorithm": "aes128", + "RoleArn": "arn:aws:iam::111122223333:role/MediaConnect-ASM", + "SecretArn": "arn:aws:secretsmanager:us-west-2:111122223333:secret:mySecret1" + }, + "Subscribers": [ + "777788889999" + ] + } + } + +For more information, see `Updating an Entitlement `__ in the *AWS Elemental MediaConnect User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/update-flow-output.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/update-flow-output.rst new file mode 100644 index 000000000..9b1c7e402 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/update-flow-output.rst @@ -0,0 +1,27 @@ +**To update an output on a flow** + +The following ``update-flow-output`` example update an output on the specified flow. :: + + aws mediaconnect update-flow-output \ + --flow-arn arn:aws:mediaconnect:us-east-1:111122223333:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:BaseballGame \ + --output-arn arn:aws:mediaconnect:us-east-1:111122223333:output:2-3aBC45dEF67hiJ89-c34de5fG678h:NYC \ + --port 3331 + +Output:: + + { + "FlowArn": "arn:aws:mediaconnect:us-east-1:111122223333:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:BaseballGame", + "Output": { + "Name": "NYC", + "Port": 3331, + "Description": "NYC stream", + "Transport": { + "Protocol": "rtp-fec", + "SmoothingLatency": 100 + }, + "OutputArn": "arn:aws:mediaconnect:us-east-1:111122223333:output:2-3aBC45dEF67hiJ89-c34de5fG678h:NYC", + "Destination": "192.0.2.12" + } + } + +For more information, see `Updating Outputs on a Flow `__ in the *AWS Elemental MediaConnect User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/update-flow-source.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/update-flow-source.rst new file mode 100644 index 000000000..43218796b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconnect/update-flow-source.rst @@ -0,0 +1,30 @@ +**To update the source of an existing flow** + +The following ``update-flow-source`` example updates the source of an existing flow. :: + + aws mediaconnect update-flow-source \ + --flow-arn arn:aws:mediaconnect:us-east-1:111122223333:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:AwardsShow \ + --source-arn arn:aws:mediaconnect:us-east-1:111122223333:source:3-4aBC56dEF78hiJ90-4de5fG6Hi78Jk:ShowSource \ + --description 'Friday night show' \ + --ingest-port 3344 \ + --protocol rtp-fec \ + --whitelist-cidr 10.24.34.0/23 + +Output:: + + { + "FlowArn": "arn:aws:mediaconnect:us-east-1:111122223333:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:AwardsShow", + "Source": { + "IngestIp": "34.210.136.56", + "WhitelistCidr": "10.24.34.0/23", + "Transport": { + "Protocol": "rtp-fec" + }, + "IngestPort": 3344, + "Name": "ShowSource", + "Description": "Friday night show", + "SourceArn": "arn:aws:mediaconnect:us-east-1:111122223333:source:3-4aBC56dEF78hiJ90-4de5fG6Hi78Jk:ShowSource" + } + } + +For more information, see `Updating the Source of a Flow `__ in the *AWS Elemental MediaConnect User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/cancel-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/cancel-job.rst new file mode 100644 index 000000000..f5cfcae27 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/cancel-job.rst @@ -0,0 +1,12 @@ +**To cancel a job that is in a queue** + +The following ``cancel-job`` example cancels the job with ID ``1234567891234-abc123``. You can't cancel a job that the service has started processing. :: + + aws mediaconvert cancel-job \ + --endpoint-url https://abcd1234.mediaconvert.region-name-1.amazonaws.com \ + --region region-name-1 \ + --id 1234567891234-abc123 + +To get your account-specific endpoint, use ``describe-endpoints``, or send the command without the endpoint. The service returns an error and your endpoint. + +For more information, see `Working with AWS Elemental MediaConvert Jobs `_ in the *AWS Elemental MediaConvert User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/create-job-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/create-job-template.rst new file mode 100644 index 000000000..ceb3cfb84 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/create-job-template.rst @@ -0,0 +1,18 @@ +**To create a job template** + +The following ``create-job-template`` example creates a job template with the transcoding settings that are specified in the file ``job-template.json`` that resides on your system. :: + + aws mediaconvert create-job-template \ + --endpoint-url https://abcd1234.mediaconvert.region-name-1.amazonaws.com \ + --region region-name-1 \ + --name JobTemplate1 \ + --cli-input-json file://~/job-template.json + +If you create your job template JSON file by using ``get-job-template`` and then modifying the file, remove the ``JobTemplate`` object, but keep the `Settings` child object inside it. Also, make sure to remove the following key-value pairs: ``LastUpdated``, ``Arn``, ``Type``, and ``CreatedAt``. You can specific the category, description, name, and queue either in the JSON file or at the command line. + +To get your account-specific endpoint, use ``describe-endpoints``, or send the command without the endpoint. The service returns an error and your endpoint. + +If your request is successful, the service returns the JSON specification for the job template that you created. + +For more information, see `Working with AWS Elemental MediaConvert Job Templates `_ in the *AWS Elemental MediaConvert User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/create-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/create-job.rst new file mode 100644 index 000000000..37b384501 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/create-job.rst @@ -0,0 +1,16 @@ +**To create a job** + +The following ``create-job`` example creates a transcoding job with the settings that are specified in a file ``job.json`` that resides on the system that you send the command from. This JSON job specification might specify each setting individually, reference a job template, or reference output presets. :: + + aws mediaconvert create-job \ + --endpoint-url https://abcd1234.mediaconvert.region-name-1.amazonaws.com \ + --region region-name-1 \ + --cli-input-json file://~/job.json + +You can use the AWS Elemental MediaConvert console to generate the JSON job specification by choosing your job settings, and then choosing **Show job JSON** at the bottom of the **Job** section. + +To get your account-specific endpoint, use ``describe-endpoints``, or send the command without the endpoint. The service returns an error and your endpoint. + +If your request is successful, the service returns the JSON job specification that you sent with your request. + +For more information, see `Working with AWS Elemental MediaConvert Jobs `_ in the *AWS Elemental MediaConvert User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/create-preset.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/create-preset.rst new file mode 100644 index 000000000..a98af78e9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/create-preset.rst @@ -0,0 +1,14 @@ +**To create a custom output preset** + +The following ``create-preset`` example creates a custom output preset based on the output settings that are specified in the file ``preset.json``. You can specify the category, description, and name either in the JSON file or at the command line. :: + + aws mediaconvert create-preset \ + --endpoint-url https://abcd1234.mediaconvert.region-name-1.amazonaws.com + --region region-name-1 \ + --cli-input-json file://~/preset.json + +If you create your preset JSON file by using ``get-preset`` and then modifying the output file, ensure that you remove the following key-value pairs: ``LastUpdated``, ``Arn``, ``Type``, and ``CreatedAt``. + +To get your account-specific endpoint, use ``describe-endpoints``, or send the command without the endpoint. The service returns an error and your endpoint. + +For more information, see `Working with AWS Elemental MediaConvert Output Presets `_ in the *AWS Elemental MediaConvert User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/create-queue.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/create-queue.rst new file mode 100644 index 000000000..5a80550d5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/create-queue.rst @@ -0,0 +1,27 @@ +**To create a custom queue** + +The following ``create-queue`` example creates a custom transcoding queue. :: + + aws mediaconvert create-queue \ + --endpoint-url https://abcd1234.mediaconvert.region-name-1.amazonaws.com \ + --region region-name-1 \ + --name Queue1 \ + --description "Keep this queue empty unless job is urgent." + +To get your account-specific endpoint, use ``describe-endpoints``, or send the command without the endpoint. The service returns an error and your endpoint. + +Output:: + + { + "Queue": { + "Status": "ACTIVE", + "Name": "Queue1", + "LastUpdated": 1518034928, + "Arn": "arn:aws:mediaconvert:region-name-1:012345678998:queues/Queue1", + "Type": "CUSTOM", + "CreatedAt": 1518034928, + "Description": "Keep this queue empty unless job is urgent." + } + } + +For more information, see `Working with AWS Elemental MediaConvert Queues `_ in the *AWS Elemental MediaConvert User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/delete-job-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/delete-job-template.rst new file mode 100644 index 000000000..17e7e7873 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/delete-job-template.rst @@ -0,0 +1,12 @@ +**To delete a job template** + +The following ``delete-job-template`` example deletes the specified custom job template. :: + + aws mediaconvert delete-job-template \ + --name "DASH Streaming" \ + --endpoint-url https://abcd1234.mediaconvert.us-west-2.amazonaws.com + +This command produces no output. Run ``aws mediaconvert list-job-templates`` to confirm that your template was deleted. + + +For more information, see `Working with AWS Elemental MediaConvert Job Templates `__ in the *AWS Elemental MediaConvert User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/delete-preset.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/delete-preset.rst new file mode 100644 index 000000000..78e7e44b1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/delete-preset.rst @@ -0,0 +1,11 @@ +**To delete a custom on-demand queue** + +The following ``delete-preset`` example deletes the specified custom preset. :: + + aws mediaconvert delete-preset \ + --name SimpleMP4 \ + --endpoint-url https://abcd1234.mediaconvert.us-west-2.amazonaws.com + +This command produces no output. Run ``aws mediaconvert list-presets`` to confirm that your preset was deleted. + +For more information, see `Working with AWS Elemental MediaConvert Output Presets `__ in the *AWS Elemental MediaConvert User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/delete-queue.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/delete-queue.rst new file mode 100644 index 000000000..644fdb8bc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/delete-queue.rst @@ -0,0 +1,14 @@ +**To delete a custom on-demand queue** + +The following ``delete-queue`` example deletes the specified custom on-demand queue. + +You can't delete your default queue. You can't delete a reserved queue that has an active pricing plan or that contains unprocessed jobs. :: + + aws mediaconvert delete-queue \ + --name Customer1 \ + --endpoint-url https://abcd1234.mediaconvert.us-west-2.amazonaws.com + + +This command produces no output. Run ``aws mediaconvert list-queues`` to confirm that your queue was deleted. + +For more information, see `Working with AWS Elemental MediaConvert Queues `__ in the *AWS Elemental MediaConvert User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/describe-endpoints.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/describe-endpoints.rst new file mode 100644 index 000000000..f9a62c7a4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/describe-endpoints.rst @@ -0,0 +1,18 @@ +**To get your account-specific endpoint** + +The following ``describe-endpoints`` example retrieves the endpoint that you need to send any other request to the service. :: + + aws mediaconvert describe-endpoints + +Output:: + + { + "Endpoints": [ + { + "Url": "https://abcd1234.mediaconvert.region-name-1.amazonaws.com" + } + ] + } + +For more information, see `Getting Started with MediaConvert Using the API `_ in the *AWS Elemental +MediaConvert API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/get-job-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/get-job-template.rst new file mode 100644 index 000000000..83c3b6164 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/get-job-template.rst @@ -0,0 +1,27 @@ +**To get details for a job template** + +The following ``get-job-template`` example displays the JSON definition of the specified custom job template. :: + + aws mediaconvert get-job-template \ + --name "DASH Streaming" \ + --endpoint-url https://abcd1234.mediaconvert.us-east-1.amazonaws.com + +Output:: + + { + "JobTemplate": { + "StatusUpdateInterval": "SECONDS_60", + "LastUpdated": 1568652998, + "Description": "Create a DASH streaming ABR stack", + "CreatedAt": 1568652998, + "Priority": 0, + "Name": "DASH Streaming", + "Settings": { + ...... + }, + "Arn": "arn:aws:mediaconvert:us-west-2:123456789012:jobTemplates/DASH Streaming", + "Type": "CUSTOM" + } + } + +For more information, see `Working with AWS Elemental MediaConvert Job Templates `__ in the *AWS Elemental MediaConvert User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/get-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/get-job.rst new file mode 100644 index 000000000..2f1cd259c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/get-job.rst @@ -0,0 +1,36 @@ +**To get details for a particular job** + +The following example requests the information for the job with ID ``1234567890987-1ab2c3``, which in this example ended in an error. :: + + aws mediaconvert get-job \ + --endpoint-url https://abcd1234.mediaconvert.region-name-1.amazonaws.com \ + --region region-name-1 \ + --id 1234567890987-1ab2c3 + +To get your account-specific endpoint, use ``describe-endpoints``, or send the command without the endpoint. The service returns an error and your endpoint. + +If your request is successful, the service returns a JSON file with job information, including job settings, any returned errors, and other job data, as follows:: + + { + "Job": { + "Status": "ERROR", + "Queue": "arn:aws:mediaconvert:region-name-1:012345678998:queues/Queue1", + "Settings": { + ...... + }, + "ErrorMessage": "Unable to open input file [s3://my-input-bucket/file-name.mp4]: [Failed probe/open: [Failed to read data: AssumeRole failed]]", + "ErrorCode": 1434, + "Role": "arn:aws:iam::012345678998:role/MediaConvertServiceRole", + "Arn": "arn:aws:mediaconvert:us-west-1:012345678998:jobs/1234567890987-1ab2c3", + "UserMetadata": {}, + "Timing": { + "FinishTime": 1517442131, + "SubmitTime": 1517442103, + "StartTime": 1517442104 + }, + "Id": "1234567890987-1ab2c3", + "CreatedAt": 1517442103 + } + } + +For more information, see `Working with AWS Elemental MediaConvert Jobs `_ in the *AWS Elemental MediaConvert User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/get-preset.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/get-preset.rst new file mode 100644 index 000000000..d79ff9eb0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/get-preset.rst @@ -0,0 +1,97 @@ +**To get details for a particular preset** + +The following ``get-preset`` example requests the JSON definition of the specified custom preset. :: + + aws mediaconvert get-preset \ + --name SimpleMP4 \ + --endpoint-url https://abcd1234.mediaconvert.us-west-2.amazonaws.com + +Output:: + + { + "Preset": { + "Description": "Creates basic MP4 file. No filtering or preproccessing.", + "Arn": "arn:aws:mediaconvert:us-west-2:123456789012:presets/SimpleMP4", + "LastUpdated": 1568843141, + "Name": "SimpleMP4", + "Settings": { + "ContainerSettings": { + "Mp4Settings": { + "FreeSpaceBox": "EXCLUDE", + "CslgAtom": "INCLUDE", + "MoovPlacement": "PROGRESSIVE_DOWNLOAD" + }, + "Container": "MP4" + }, + "AudioDescriptions": [ + { + "LanguageCodeControl": "FOLLOW_INPUT", + "AudioTypeControl": "FOLLOW_INPUT", + "CodecSettings": { + "AacSettings": { + "RawFormat": "NONE", + "CodecProfile": "LC", + "AudioDescriptionBroadcasterMix": "NORMAL", + "SampleRate": 48000, + "Bitrate": 96000, + "RateControlMode": "CBR", + "Specification": "MPEG4", + "CodingMode": "CODING_MODE_2_0" + }, + "Codec": "AAC" + } + } + ], + "VideoDescription": { + "RespondToAfd": "NONE", + "TimecodeInsertion": "DISABLED", + "Sharpness": 50, + "ColorMetadata": "INSERT", + "CodecSettings": { + "H264Settings": { + "FramerateControl": "INITIALIZE_FROM_SOURCE", + "SpatialAdaptiveQuantization": "ENABLED", + "Softness": 0, + "Telecine": "NONE", + "CodecLevel": "AUTO", + "QualityTuningLevel": "SINGLE_PASS", + "UnregisteredSeiTimecode": "DISABLED", + "Slices": 1, + "Syntax": "DEFAULT", + "GopClosedCadence": 1, + "AdaptiveQuantization": "HIGH", + "EntropyEncoding": "CABAC", + "InterlaceMode": "PROGRESSIVE", + "ParControl": "INITIALIZE_FROM_SOURCE", + "NumberBFramesBetweenReferenceFrames": 2, + "GopSizeUnits": "FRAMES", + "RepeatPps": "DISABLED", + "CodecProfile": "MAIN", + "FieldEncoding": "PAFF", + "GopSize": 90.0, + "SlowPal": "DISABLED", + "SceneChangeDetect": "ENABLED", + "GopBReference": "DISABLED", + "RateControlMode": "CBR", + "FramerateConversionAlgorithm": "DUPLICATE_DROP", + "FlickerAdaptiveQuantization": "DISABLED", + "DynamicSubGop": "STATIC", + "MinIInterval": 0, + "TemporalAdaptiveQuantization": "ENABLED", + "Bitrate": 400000, + "NumberReferenceFrames": 3 + }, + "Codec": "H_264" + }, + "AfdSignaling": "NONE", + "AntiAlias": "ENABLED", + "ScalingBehavior": "DEFAULT", + "DropFrameTimecode": "ENABLED" + } + }, + "Type": "CUSTOM", + "CreatedAt": 1568841521 + } + } + +For more information, see `Working with AWS Elemental MediaConvert Output Presets `__ in the *AWS Elemental MediaConvert User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/get-queue.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/get-queue.rst new file mode 100644 index 000000000..ba6c2637e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/get-queue.rst @@ -0,0 +1,25 @@ +**To get details for a queue** + +The following ``get-queue`` example retrieves the details of the specified custom queue. :: + + aws mediaconvert get-queue \ + --name Customer1 \ + --endpoint-url https://abcd1234.mediaconvert.us-west-2.amazonaws.com + +Output:: + + { + "Queue": { + "LastUpdated": 1526428502, + "Type": "CUSTOM", + "SubmittedJobsCount": 0, + "Status": "ACTIVE", + "PricingPlan": "ON_DEMAND", + "CreatedAt": 1526428502, + "ProgressingJobsCount": 0, + "Arn": "arn:aws:mediaconvert:us-west-2:123456789012:queues/Customer1", + "Name": "Customer1" + } + } + +For more information, see `Working with AWS Elemental MediaConvert Queues `__ in the *AWS Elemental MediaConvert User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/list-job-templates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/list-job-templates.rst new file mode 100644 index 000000000..53bd07a4d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/list-job-templates.rst @@ -0,0 +1,112 @@ +**Example 1: To list your custom job templates** + +The following ``list-job-templates`` example lists all custom job templates in the current Region. To list the system job templates, see the next example. :: + + aws mediaconvert list-job-templates \ + --endpoint-url https://abcd1234.mediaconvert.us-west-2.amazonaws.com + +Output:: + + { + "JobTemplates": [ + { + "Description": "Create a DASH streaming ABR stack", + "Arn": "arn:aws:mediaconvert:us-west-2:123456789012:jobTemplates/DASH Streaming", + "Name": "DASH Streaming", + "LastUpdated": 1568653007, + "Priority": 0, + "Settings": { + ...... + }, + "Type": "CUSTOM", + "StatusUpdateInterval": "SECONDS_60", + "CreatedAt": 1568653007 + }, + { + "Description": "Create a high-res file", + "Arn": "arn:aws:mediaconvert:us-west-2:123456789012:jobTemplates/File", + "Name": "File", + "LastUpdated": 1568653007, + "Priority": 0, + "Settings": { + ...... + }, + "Type": "CUSTOM", + "StatusUpdateInterval": "SECONDS_60", + "CreatedAt": 1568653023 + } + ] + } + +**Example 2: To list the MediaConvert system job templates** + +The following ``list-job-templates`` example lists all system job templates. :: + + aws mediaconvert list-job-templates \ + --endpoint-url https://abcd1234.mediaconvert.us-east-1.amazonaws.com \ + --list-by SYSTEM + +Output:: + + { + "JobTemplates": [ + { + "CreatedAt": 1568321779, + "Arn": "arn:aws:mediaconvert:us-east-1:123456789012:jobTemplates/System-Generic_Mp4_Hev1_Avc_Aac_Sdr_Qvbr", + "Name": "System-Generic_Mp4_Hev1_Avc_Aac_Sdr_Qvbr", + "Description": "GENERIC, MP4, AVC + HEV1(HEVC,SDR), AAC, SDR, QVBR", + "Category": "GENERIC", + "Settings": { + "AdAvailOffset": 0, + "OutputGroups": [ + { + "Outputs": [ + { + "Extension": "mp4", + "Preset": "System-Generic_Hd_Mp4_Avc_Aac_16x9_Sdr_1280x720p_30Hz_5Mbps_Qvbr_Vq9", + "NameModifier": "_Generic_Hd_Mp4_Avc_Aac_16x9_Sdr_1280x720p_30Hz_5000Kbps_Qvbr_Vq9" + }, + { + "Extension": "mp4", + "Preset": "System-Generic_Hd_Mp4_Avc_Aac_16x9_Sdr_1920x1080p_30Hz_10Mbps_Qvbr_Vq9", + "NameModifier": "_Generic_Hd_Mp4_Avc_Aac_16x9_Sdr_1920x1080p_30Hz_10000Kbps_Qvbr_Vq9" + }, + { + "Extension": "mp4", + "Preset": "System-Generic_Sd_Mp4_Avc_Aac_16x9_Sdr_640x360p_30Hz_0.8Mbps_Qvbr_Vq7", + "NameModifier": "_Generic_Sd_Mp4_Avc_Aac_16x9_Sdr_640x360p_30Hz_800Kbps_Qvbr_Vq7" + }, + { + "Extension": "mp4", + "Preset": "System-Generic_Hd_Mp4_Hev1_Aac_16x9_Sdr_1280x720p_30Hz_4Mbps_Qvbr_Vq9", + "NameModifier": "_Generic_Hd_Mp4_Hev1_Aac_16x9_Sdr_1280x720p_30Hz_4000Kbps_Qvbr_Vq9" + }, + { + "Extension": "mp4", + "Preset": "System-Generic_Hd_Mp4_Hev1_Aac_16x9_Sdr_1920x1080p_30Hz_8Mbps_Qvbr_Vq9", + "NameModifier": "_Generic_Hd_Mp4_Hev1_Aac_16x9_Sdr_1920x1080p_30Hz_8000Kbps_Qvbr_Vq9" + }, + { + "Extension": "mp4", + "Preset": "System-Generic_Uhd_Mp4_Hev1_Aac_16x9_Sdr_3840x2160p_30Hz_12Mbps_Qvbr_Vq9", + "NameModifier": "_Generic_Uhd_Mp4_Hev1_Aac_16x9_Sdr_3840x2160p_30Hz_12000Kbps_Qvbr_Vq9" + } + ], + "OutputGroupSettings": { + "FileGroupSettings": { + + }, + "Type": "FILE_GROUP_SETTINGS" + }, + "Name": "File Group" + } + ] + }, + "Type": "SYSTEM", + "LastUpdated": 1568321779 + }, + ...... + ] + } + +For more information, see `Working with AWS Elemental MediaConvert Job Templates `__ in the *AWS Elemental MediaConvert User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/list-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/list-jobs.rst new file mode 100644 index 000000000..139df49b2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/list-jobs.rst @@ -0,0 +1,11 @@ +**To get details for all jobs in a region** + +The following example requests the information for all of your jobs in the specified region. :: + + aws mediaconvert list-jobs \ + --endpoint-url https://abcd1234.mediaconvert.region-name-1.amazonaws.com \ + --region region-name-1 + +To get your account-specific endpoint, use ``describe-endpoints``, or send the command without the endpoint. The service returns an error and your endpoint. + +For more information, see `Working with AWS Elemental MediaConvert Jobs `_ in the *AWS Elemental MediaConvert User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/list-presets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/list-presets.rst new file mode 100644 index 000000000..8e962a50d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/list-presets.rst @@ -0,0 +1,79 @@ +**Example 1: To list your custom output presets** + +The following ``list-presets`` example lists your custom output presets. To list the system presets, see the next example. :: + + aws mediaconvert list-presets \ + --endpoint-url https://abcd1234.mediaconvert.us-west-2.amazonaws.com + +Output:: + + { + "Presets": [ + { + "Name": "SimpleMP4", + "CreatedAt": 1568841521, + "Settings": { + ...... + }, + "Arn": "arn:aws:mediaconvert:us-east-1:003235472598:presets/SimpleMP4", + "Type": "CUSTOM", + "LastUpdated": 1568843141, + "Description": "Creates basic MP4 file. No filtering or preproccessing." + }, + { + "Name": "SimpleTS", + "CreatedAt": 1568843113, + "Settings": { + ... truncated for brevity ... + }, + "Arn": "arn:aws:mediaconvert:us-east-1:003235472598:presets/SimpleTS", + "Type": "CUSTOM", + "LastUpdated": 1568843113, + "Description": "Create a basic transport stream." + } + ] + } + +**Example 2: To list the system output presets** + +The following ``list-presets`` example lists the available MediaConvert system presets. To list your custom presets, see the previous example. :: + + aws mediaconvert list-presets \ + --list-by SYSTEM \ + --endpoint-url https://abcd1234.mediaconvert.us-west-2.amazonaws.com + +Output:: + + { + "Presets": [ + { + "Arn": "arn:aws:mediaconvert:us-west-2:123456789012:presets/System-Avc_16x9_1080p_29_97fps_8500kbps", + "Name": "System-Avc_16x9_1080p_29_97fps_8500kbps", + "CreatedAt": 1568321789, + "Description": "Wifi, 1920x1080, 16:9, 29.97fps, 8500kbps", + "LastUpdated": 1568321789, + "Type": "SYSTEM", + "Category": "HLS", + "Settings": { + ...... + } + }, + + ...... + + { + "Arn": "arn:aws:mediaconvert:us-east-1:123456789012:presets/System-Xdcam_HD_1080i_29_97fps_35mpbs", + "Name": "System-Xdcam_HD_1080i_29_97fps_35mpbs", + "CreatedAt": 1568321790, + "Description": "XDCAM MPEG HD, 1920x1080i, 29.97fps, 35mbps", + "LastUpdated": 1568321790, + "Type": "SYSTEM", + "Category": "MXF", + "Settings": { + ...... + } + } + ] + } + +For more information, see `Working with AWS Elemental MediaConvert Output Presets `__ in the *AWS Elemental MediaConvert User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/list-queues.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/list-queues.rst new file mode 100644 index 000000000..bfc415fdc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/list-queues.rst @@ -0,0 +1,58 @@ +**To list your queues** + +The following ``list-queues`` example lists all of your MediaConvert queues. :: + + aws mediaconvert list-queues \ + --endpoint-url https://abcd1234.mediaconvert.us-west-2.amazonaws.com + + +Output:: + + { + "Queues": [ + { + "PricingPlan": "ON_DEMAND", + "Type": "SYSTEM", + "Status": "ACTIVE", + "CreatedAt": 1503451595, + "Name": "Default", + "SubmittedJobsCount": 0, + "ProgressingJobsCount": 0, + "Arn": "arn:aws:mediaconvert:us-west-2:123456789012:queues/Default", + "LastUpdated": 1534549158 + }, + { + "PricingPlan": "ON_DEMAND", + "Type": "CUSTOM", + "Status": "ACTIVE", + "CreatedAt": 1537460025, + "Name": "Customer1", + "SubmittedJobsCount": 0, + "Description": "Jobs we run for our cusotmer.", + "ProgressingJobsCount": 0, + "Arn": "arn:aws:mediaconvert:us-west-2:123456789012:queues/Customer1", + "LastUpdated": 1537460025 + }, + { + "ProgressingJobsCount": 0, + "Status": "ACTIVE", + "Name": "transcode-library", + "SubmittedJobsCount": 0, + "LastUpdated": 1564066204, + "ReservationPlan": { + "Status": "ACTIVE", + "ReservedSlots": 1, + "PurchasedAt": 1564066203, + "Commitment": "ONE_YEAR", + "ExpiresAt": 1595688603, + "RenewalType": "EXPIRE" + }, + "PricingPlan": "RESERVED", + "Arn": "arn:aws:mediaconvert:us-west-2:123456789012:queues/transcode-library", + "Type": "CUSTOM", + "CreatedAt": 1564066204 + } + ] + } + +For more information, see `Working with AWS Elemental MediaConvert Queues `__ in the *AWS Elemental MediaConvert User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/list-tags-for-resource.rst new file mode 100644 index 000000000..51031f5f9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/list-tags-for-resource.rst @@ -0,0 +1,20 @@ +**To list the tags on a MediaConvert queue, job template, or output preset** + +The following ``list-tags-for-resource`` example lists the tags on the specified output preset. :: + + aws mediaconvert list-tags-for-resource \ + --arn arn:aws:mediaconvert:us-west-2:123456789012:presets/SimpleMP4 \ + --endpoint-url https://abcd1234.mediaconvert.us-west-2.amazonaws.com + +Output:: + + { + "ResourceTags": { + "Tags": { + "customer": "zippyVideo" + }, + "Arn": "arn:aws:mediaconvert:us-west-2:123456789012:presets/SimpleMP4" + } + } + +For more information, see `Tagging AWS Elemental MediaConvert Queues, Job Templates, and Output Presets `__ in the *AWS Elemental MediaConvert User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/update-job-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/update-job-template.rst new file mode 100644 index 000000000..3e3b4cfc0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/update-job-template.rst @@ -0,0 +1,113 @@ +**To change a job template** + +The following ``update-job-template`` example replaces the JSON definition of the specified custom job template with the JSON definition in the provided file. + + aws mediaconvert update-job-template \ + --name File1 \ + --endpoint-url https://abcd1234.mediaconvert.us-west-2.amazonaws.com \ + --cli-input-json file://~/job-template-update.json + +Contents of ``job-template-update.json``:: + + { + "Description": "A simple job template that generates a single file output.", + "Queue": "arn:aws:mediaconvert:us-east-1:012345678998:queues/Default", + "Name": "SimpleFile", + "Settings": { + "OutputGroups": [ + { + "Name": "File Group", + "Outputs": [ + { + "ContainerSettings": { + "Container": "MP4", + "Mp4Settings": { + "CslgAtom": "INCLUDE", + "FreeSpaceBox": "EXCLUDE", + "MoovPlacement": "PROGRESSIVE_DOWNLOAD" + } + }, + "VideoDescription": { + "ScalingBehavior": "DEFAULT", + "TimecodeInsertion": "DISABLED", + "AntiAlias": "ENABLED", + "Sharpness": 50, + "CodecSettings": { + "Codec": "H_264", + "H264Settings": { + "InterlaceMode": "PROGRESSIVE", + "NumberReferenceFrames": 3, + "Syntax": "DEFAULT", + "Softness": 0, + "GopClosedCadence": 1, + "GopSize": 90, + "Slices": 1, + "GopBReference": "DISABLED", + "SlowPal": "DISABLED", + "SpatialAdaptiveQuantization": "ENABLED", + "TemporalAdaptiveQuantization": "ENABLED", + "FlickerAdaptiveQuantization": "DISABLED", + "EntropyEncoding": "CABAC", + "Bitrate": 400000, + "FramerateControl": "INITIALIZE_FROM_SOURCE", + "RateControlMode": "CBR", + "CodecProfile": "MAIN", + "Telecine": "NONE", + "MinIInterval": 0, + "AdaptiveQuantization": "HIGH", + "CodecLevel": "AUTO", + "FieldEncoding": "PAFF", + "SceneChangeDetect": "ENABLED", + "QualityTuningLevel": "SINGLE_PASS", + "FramerateConversionAlgorithm": "DUPLICATE_DROP", + "UnregisteredSeiTimecode": "DISABLED", + "GopSizeUnits": "FRAMES", + "ParControl": "INITIALIZE_FROM_SOURCE", + "NumberBFramesBetweenReferenceFrames": 2, + "RepeatPps": "DISABLED", + "DynamicSubGop": "STATIC" + } + }, + "AfdSignaling": "NONE", + "DropFrameTimecode": "ENABLED", + "RespondToAfd": "NONE", + "ColorMetadata": "INSERT" + }, + "AudioDescriptions": [ + { + "AudioTypeControl": "FOLLOW_INPUT", + "CodecSettings": { + "Codec": "AAC", + "AacSettings": { + "AudioDescriptionBroadcasterMix": "NORMAL", + "Bitrate": 96000, + "RateControlMode": "CBR", + "CodecProfile": "LC", + "CodingMode": "CODING_MODE_2_0", + "RawFormat": "NONE", + "SampleRate": 48000, + "Specification": "MPEG4" + } + }, + "LanguageCodeControl": "FOLLOW_INPUT" + } + ] + } + ], + "OutputGroupSettings": { + "Type": "FILE_GROUP_SETTINGS", + "FileGroupSettings": {} + } + } + ], + "AdAvailOffset": 0 + }, + "StatusUpdateInterval": "SECONDS_60", + "Priority": 0 + } + +The system returns the JSON payload that you send with your request, even when the request results in an error. Therefore, the JSON returned is not necessarily the new definition of the job template. + +Because the JSON payload can be long, you might need to scroll up to see any error messages. + +For more information, see `Working with AWS Elemental MediaConvert Job Templates `__ in the *AWS Elemental MediaConvert User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/update-preset.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/update-preset.rst new file mode 100644 index 000000000..9582cb42c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/update-preset.rst @@ -0,0 +1,28 @@ +**To change a preset** + +The following ``update-preset`` example replaces the description for the specified preset. + :: + + aws mediaconvert update-preset \ + --name Customer1 \ + --description "New description text." + --endpoint-url https://abcd1234.mediaconvert.us-west-2.amazonaws.com + +This command produces no output. +Output:: + + { + "Preset": { + "Arn": "arn:aws:mediaconvert:us-east-1:003235472598:presets/SimpleMP4", + "Settings": { + ...... + }, + "Type": "CUSTOM", + "LastUpdated": 1568938411, + "Description": "New description text.", + "Name": "SimpleMP4", + "CreatedAt": 1568938240 + } + } + +For more information, see `Working with AWS Elemental MediaConvert Output Presets `__ in the *AWS Elemental MediaConvert User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/update-queue.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/update-queue.rst new file mode 100644 index 000000000..467ff24db --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediaconvert/update-queue.rst @@ -0,0 +1,26 @@ +**To change a queue** + +The following ``update-queue`` example pauses the specified queue, by changing its status to ``PAUSED``. :: + + aws mediaconvert update-queue \ + --name Customer1 \ + --status PAUSED + --endpoint-url https://abcd1234.mediaconvert.us-west-2.amazonaws.com + +Output:: + + { + "Queue": { + "LastUpdated": 1568839845, + "Status": "PAUSED", + "ProgressingJobsCount": 0, + "CreatedAt": 1526428516, + "Arn": "arn:aws:mediaconvert:us-west-1:123456789012:queues/Customer1", + "Name": "Customer1", + "SubmittedJobsCount": 0, + "PricingPlan": "ON_DEMAND", + "Type": "CUSTOM" + } + } + +For more information, see `Working with AWS Elemental MediaConvert Queues `__ in the *AWS Elemental MediaConvert User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/medialive/create-channel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medialive/create-channel.rst new file mode 100755 index 000000000..1077a4bc6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medialive/create-channel.rst @@ -0,0 +1,164 @@ +**To create a channel** + +The following ``create-channel`` example creates a channel by passing in a JSON file that contains the parameters that you want to specify. + +The channel in this example ingests an HLS PULL input that connects to a source that contains video, audio, and embedded captions. The channel creates one HLS output group with an Akamai server as the destination. The output group contains two outputs: one for the H.265 video and AAC audio, and one for the Web-VTT captions, in English only. + +The JSON for this example channel includes the minimum required parameters for a channel that uses an HLS PULL input and that produces an HLS output group with Akamai as the destination. The JSON contains these main sections: + +* ``InputAttachments``, which specifies one source for the audio, and one source for the captions. It does not specify a video selector, which means that MediaLive extracts the first video it finds in the source. +* ``Destinations``, which contains the two IP addresses (URLs) for the single output group in this channel. These addresses require passwords. +* ``EncoderSettings``, which contains subsections. + + * ``AudioDescriptions``, which specifies that the channel contains one audio output asset, which uses the source from InputAttachments, and produces audio in AAC format. + * ``CaptionDescriptions``, which specifies that the channel contains one captions output asset, which uses the source from InputAttachments, and produces captions in Web-VTT format. + * ``VideoDescriptions``, which specifies that the channel contains one video output asset, with the specified resolution. + * ``OutputGroups``, which specifies the output groups. In this example there is one group named ``Akamai``. The connection is made using HLS PUT. The output group contains two outputs. One output is for the video asset (named ``Video_high``) and the audio asset (named ``Audio_EN``). One output is for the captions asset (named ``WebVTT_EN``). + +In this example, some of the parameters contain no value or contain nested empty parameters. For example, OutputSettings for the ``Video_and_audio`` output contains several nested parameters that end at an empty parameter M3u8Settings. This parameter must be included, but you can omit one, several, or all its children, which means that the child will take its default value or be null. + +All the parameters that apply to this example channel but that aren't specified in this file will either take the default value, be set to null, or take a unique value generated by MediaLive. :: + + aws medialive create-channel \ + --cli-input-json file://channel-in-hls-out-hls-akamai.json + +Contents of ``channel-in-hls-out-hls-akamai.json``:: + + { + "Name": "News_West", + "RoleArn": "arn:aws:iam::111122223333:role/MediaLiveAccessRole", + "InputAttachments": [ + { + "InputAttachmentName": "local_news", + "InputId": "1234567", + "InputSettings": { + "AudioSelectors": [ + { + "Name": "English-Audio", + "SelectorSettings": { + "AudioLanguageSelection": { + "LanguageCode": "EN" + } + } + } + ], + "CaptionSelectors": [ + { + "LanguageCode": "ENE", + "Name": "English_embedded" + } + ] + } + } + ], + "Destinations": [ + { + "Id": "akamai-server-west", + "Settings": [ + { + "PasswordParam": "/medialive/examplecorp1", + "Url": "http://203.0.113.55/news/news_west", + "Username": "examplecorp" + }, + { + "PasswordParam": "/medialive/examplecorp2", + "Url": "http://203.0.113.82/news/news_west", + "Username": "examplecorp" + } + ] + } + ], + "EncoderSettings": { + "AudioDescriptions": [ + { + "AudioSelectorName": "English-Audio", + "CodecSettings": { + "AacSettings": {} + }, + "Name": "Audio_EN" + } + ], + "CaptionDescriptions": [ + { + "CaptionSelectorName": "English_embedded", + "DestinationSettings": { + "WebvttDestinationSettings": {} + }, + "Name": "WebVTT_EN" + } + ], + "VideoDescriptions": [ + { + "Height": 720, + "Name": "Video_high", + "Width": 1280 + } + ], + "OutputGroups": [ + { + "Name": "Akamai", + "OutputGroupSettings": { + "HlsGroupSettings": { + "Destination": { + "DestinationRefId": "akamai-server-west" + }, + "HlsCdnSettings": { + "HlsBasicPutSettings": {} + } + } + }, + "Outputs": [ + { + "AudioDescriptionNames": [ + "Audio_EN" + ], + "OutputName": "Video_and_audio", + "OutputSettings": { + "HlsOutputSettings": { + "HlsSettings": { + "StandardHlsSettings": { + "M3u8Settings": {} + } + }, + "NameModifier": "_1" + } + }, + "VideoDescriptionName": "Video_high" + }, + { + "CaptionDescriptionNames": [ + "WebVTT_EN" + ], + "OutputName": "Captions-WebVTT", + "OutputSettings": { + "HlsOutputSettings": { + "HlsSettings": { + "StandardHlsSettings": { + "M3u8Settings": {} + } + }, + "NameModifier": "_2" + } + } + } + ] + } + ], + "TimecodeConfig": { + "Source": "EMBEDDED" + } + } + } + +**Output:** + +The output repeats back the contents of the JSON file, plus the following values. All parameters are ordered alphabetically. + +* ``ARN`` for the channel. The last part of the ARN is the unique channel ID. +* ``EgressEndpoints`` is blank in this example channel because it used only for PUSH inputs. When it applies it shows the addresses on MediaLive that content is pushed to. +* ``OutputGroups``, ``Outputs``. These show all the parameters for the output group and outputs, including those that you didn't include but that are relevant to this channel. The parameters might be empty (perhaps indicating the parameter or feature is disabled in this channel configuration) or might show the default value that will apply. +* ``LogLevel`` is set to the default (DISABLED). +* ``Tags`` is set to the default (null). +* ``PipelinesRunningCount`` and ``State`` show the current status of the channel. + +For more information, see `Creating a Channel from Scratch `__ in the *AWS Elemental MediaLive User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/medialive/create-input.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medialive/create-input.rst new file mode 100755 index 000000000..5289c557f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medialive/create-input.rst @@ -0,0 +1,41 @@ +**To create an input** + +The following ``create-input`` example creates an ``HLS PULL`` input by passing in a JSON file that contains the parameters that apply to this type of input. The JSON for this example input specifies two sources (addresses) to the input, in order to support redundancy in the ingest. These addresses require passwords. :: + + aws medialive create-input \ + --cli-input-json file://input-hls-pull-news.json + +Contents of ``input-hls-pull-news.json``:: + + { + "Name": "local_news", + "RequestId": "cli000059", + "Sources": [ + { + "Url": "https://203.0.113.13/newschannel/anytownusa.m3u8", + "Username": "examplecorp", + "PasswordParam": "/medialive/examplecorp1" + }, + { + "Url": "https://198.51.100.54/fillervideos/oceanwaves.mp4", + "Username": "examplecorp", + "PasswordParam": "examplecorp2" + } + ], + "Type": "URL_PULL" + } + +**Output:** + +The output repeats back the contents of the JSON file, plus the following values. All parameters are ordered alphabetically. + +* ``Arn`` for the input. The last part of the ARN is the unique input ID. +* ``Attached Channels``, which is always empty for a newly created input. +* ``Destinations``, which is empty in this example because it is used only with a PUSH input. +* ``Id`` for the input, the same as the ID in the ARN. +* ``MediaConnectFlows``, which is empty in this example because it is used only with an input of type MediaConnect. +* ``SecurityGroups``, which is empty in this example because it is used only with a PUSH input. +* ``State`` of this input. +* ``Tags``, which is empty (the default for this parameter). + +For more information, see `Creating an Input `__ in the *AWS Elemental MediaLive User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/create-asset.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/create-asset.rst new file mode 100644 index 000000000..9219e27d0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/create-asset.rst @@ -0,0 +1,31 @@ +**To create an asset** + +The following ``create-asset`` example creates an asset named ``Chicken_Asset`` in the current AWS account. The asset ingests the file ``30sec_chicken.smil`` to MediaPackage. :: + + aws mediapackage-vod create-asset \ + --id chicken_asset \ + --packaging-group-id hls_chicken_gp \ + --source-role-arn arn:aws:iam::111122223333:role/EMP_Vod \ + --source-arn arn:aws:s3::111122223333:video-bucket/A/30sec_chicken.smil + +Output:: + + { + "Arn":"arn:aws:mediapackage-vod:us-west-2:111122223333:assets/chicken_asset", + "Id":"chicken_asset", + "PackagingGroupId":"hls_chicken_gp", + "SourceArn":"arn:aws:s3::111122223333:video-bucket/A/30sec_chicken.smil", + "SourceRoleArn":"arn:aws:iam::111122223333:role/EMP_Vod", + "EgressEndpoints":[ + { + "PackagingConfigurationId":"New_config_1", + "Url":"https://c75ea2668ab49d02bca7ae10ef31c59e.egress.mediapackage-vod.us-west-2.amazonaws.com/out/v1/6644b55df1744261ab3732a8e5cdaf07/904b06a58c7645e08d57d40d064216ac/f5b2e633ff4942228095d164c10074f3/index.m3u8" + }, + { + "PackagingConfigurationId":"new_hls", + "Url":" https://c75ea2668ab49d02bca7ae10ef31c59e.egress.mediapackage-vod.us-west-2.amazonaws.com/out/v1/6644b55df1744261ab3732a8e5cdaf07/fe8f1f00a80e424cb4f8da4095835e9e/7370ec57432343af816332356d2bd5c6/string.m3u8" + } + ] + } + +For more information, see `Ingest an Asset `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/create-packaging-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/create-packaging-configuration.rst new file mode 100644 index 000000000..5937f7aa5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/create-packaging-configuration.rst @@ -0,0 +1,57 @@ +**To create a packaging configuration** + +The following ``create-packaging-configuration`` example creates a packaging configuration named ``new_hls`` in the packaging group named ``hls_chicken``. This example uses a file on disk named ``hls_pc.json`` to provide the details. :: + + aws mediapackage-vod create-packaging-configuration \ + --id new_hls \ + --packaging-group-id hls_chicken \ + --hls-package file://hls_pc.json + +Contents of ``hls_pc.json``:: + + { + "HlsManifests":[ + { + "AdMarkers":"NONE", + "IncludeIframeOnlyStream":false, + "ManifestName":"string", + "ProgramDateTimeIntervalSeconds":60, + "RepeatExtXKey":true, + "StreamSelection":{ + "MaxVideoBitsPerSecond":1000, + "MinVideoBitsPerSecond":0, + "StreamOrder":"ORIGINAL" + } + } + ], + "SegmentDurationSeconds":6, + "UseAudioRenditionGroup":false + } + +Output:: + + { + "Arn":"arn:aws:mediapackage-vod:us-west-2:111122223333:packaging-configurations/new_hls", + "Id":"new_hls", + "PackagingGroupId":"hls_chicken", + "HlsManifests":{ + "SegmentDurationSeconds":6, + "UseAudioRenditionGroup":false, + "HlsMarkers":[ + { + "AdMarkers":"NONE", + "IncludeIframeOnlyStream":false, + "ManifestName":"string", + "ProgramDateTimeIntervalSeconds":60, + "RepeatExtXKey":true, + "StreamSelection":{ + "MaxVideoBitsPerSecond":1000, + "MinVideoBitsPerSecond":0, + "StreamOrder":"ORIGINAL" + } + } + ] + } + } + +For more information, see `Creating a Packaging Configuration `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/create-packaging-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/create-packaging-group.rst new file mode 100644 index 000000000..1a834009c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/create-packaging-group.rst @@ -0,0 +1,15 @@ +**To create a packaging group** + +The following ``create-packaging-group`` example lists all of the packaging groups that are configured in the current AWS account. :: + + aws mediapackage-vod create-packaging-group \ + --id hls_chicken + +Output:: + + { + "Arn": "arn:aws:mediapackage-vod:us-west-2:111122223333:packaging-groups/hls_chicken", + "Id": "hls_chicken" + } + +For more information, see `Creating a Packaging Group `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/delete-asset.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/delete-asset.rst new file mode 100644 index 000000000..42437953c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/delete-asset.rst @@ -0,0 +1,10 @@ +**To delete an asset** + +The following ``delete-asset`` example deletes the asset named ``30sec_chicken``. :: + + aws mediapackage-vod delete-asset \ + --id 30sec_chicken + +This command produces no output. + +For more information, see `Deleting an Asset `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/delete-packaging-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/delete-packaging-configuration.rst new file mode 100644 index 000000000..40bc9d85e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/delete-packaging-configuration.rst @@ -0,0 +1,10 @@ +**To delete a packaging configuration** + +The following ``delete-packaging-configuration`` example deletes the packaging configuration named ``CMAF``. :: + + aws mediapackage-vod delete-packaging-configuration \ + --id CMAF + +This command produces no output. + +For more information, see `Deleting a Packaging Configuration `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/delete-packaging-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/delete-packaging-group.rst new file mode 100644 index 000000000..90def7af6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/delete-packaging-group.rst @@ -0,0 +1,10 @@ +**To delete a packaging group** + +The following ``delete-packaging-group`` example deletes the packaging group named ``Dash_widevine``. :: + + aws mediapackage-vod delete-packaging-group \ + --id Dash_widevine + +This command produces no output. + +For more information, see `Deleting a Packaging Group `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/describe-asset.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/describe-asset.rst new file mode 100644 index 000000000..4251e524c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/describe-asset.rst @@ -0,0 +1,32 @@ +**To describe an asset** + +The following ``describe-asset`` example displays all of the details of the asset named ``30sec_chicken``. :: + + aws mediapackage-vod describe-asset \ + --id 30sec_chicken + +Output:: + + { + "Arn":"arn:aws:mediapackage-vod:us-west-2:111122223333:assets/30sec_chicken", + "Id":"30sec_chicken", + "PackagingGroupId":"Packaging_group_1", + "SourceArn":"arn:aws:s3::111122223333:video-bucket/A/30sec_chicken.smil", + "SourceRoleArn":"arn:aws:iam::111122223333:role/EMP_Vod", + "EgressEndpoints":[ + { + "PackagingConfigurationId":"DASH", + "Url":"https://a5f46a44118ba3e3724ef39ef532e701.egress.mediapackage-vod.us-west-2.amazonaws.com/out/v1/aad7962c569946119c2d5a691be5663c/66c25aff456d463aae0855172b3beb27/4ddfda6da17c4c279a1b8401cba31892/index.mpd" + }, + { + "PackagingConfigurationId":"HLS", + "Url":"https://a5f46a44118ba3e3724ef39ef532e701.egress.mediapackage-vod.us-west-2.amazonaws.com/out/v1/aad7962c569946119c2d5a691be5663c/6e5bf286a3414254a2bf0d22ae148d7e/06b5875b4d004c3cbdc4da2dc4d14638/index.m3u8" + }, + { + "PackagingConfigurationId":"CMAF", + "Url":"https://a5f46a44118ba3e3724ef39ef532e701.egress.mediapackage-vod.us-west-2.amazonaws.com/out/v1/aad7962c569946119c2d5a691be5663c/628fb5d8d89e4702958b020af27fde0e/05eb062214064238ad6330a443aff7f7/index.m3u8" + } + ] + } + +For more information, see `Viewing Asset Details `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/describe-packaging-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/describe-packaging-configuration.rst new file mode 100644 index 000000000..5820556dc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/describe-packaging-configuration.rst @@ -0,0 +1,28 @@ +**To describe a packaging configuration** + +The following ``describe-packaging-configuration`` example displays all of the details of the packaging configuration named ``DASH``. :: + + aws mediapackage-vod describe-packaging-configuration \ + --id DASH + +Output:: + + { + "Arn":"arn:aws:mediapackage-vod:us-west-2:111122223333:packaging-configurations/DASH", + "Id":"DASH", + "PackagingGroupId":"Packaging_group_1", + "DashPackage":[ + { + "SegmentDurationSeconds":"2" + }, + { + "DashManifests":{ + "ManifestName":"index", + "MinBufferTimeSeconds":"30", + "Profile":"NONE" + } + } + ] + } + +For more information, see `Viewing Packaging Configuration Details `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/describe-packaging-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/describe-packaging-group.rst new file mode 100644 index 000000000..73fbc8b07 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/describe-packaging-group.rst @@ -0,0 +1,15 @@ +**To describe a packaging group** + +The following ``describe-packaging-group`` example displays all of the details of the packaging group named ``Packaging_group_1``. :: + + aws mediapackage-vod describe-packaging-group \ + --id Packaging_group_1 + +Output:: + + { + "Arn": "arn:aws:mediapackage-vod:us-west-2:111122223333:packaging-groups/Packaging_group_1", + "Id": "Packaging_group_1" + } + +For more information, see `Viewing Packaging Group Details `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/list-assets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/list-assets.rst new file mode 100644 index 000000000..d1bf81094 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/list-assets.rst @@ -0,0 +1,19 @@ +**To list all assets** + +The following ``list-assets`` example lists all of the assets that are configured in the current AWS account. :: + + aws mediapackage-vod list-assets + +Output:: + + { + "Assets": [ + "Arn": "arn:aws:mediapackage-vod:us-west-2:111122223333:assets/30sec_chicken", + "Id": "30sec_chicken", + "PackagingGroupId": "Packaging_group_1", + "SourceArn": "arn:aws:s3::111122223333:video-bucket/A/30sec_chicken.smil", + "SourceRoleArn": "arn:aws:iam::111122223333:role/EMP_Vod" + ] + } + +For more information, see `Viewing Asset Details `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/list-packaging-configurations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/list-packaging-configurations.rst new file mode 100644 index 000000000..c45406dec --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/list-packaging-configurations.rst @@ -0,0 +1,103 @@ +**To list all packaging configurations** + +The following ``list-packaging-configurations`` example lists all of the packaging configurations that are configured on the packaging group named ``Packaging_group_1``. :: + + aws mediapackage-vod list-packaging-configurations \ + --packaging-group-id Packaging_group_1 + +Output:: + + { + "PackagingConfigurations":[ + { + "Arn":"arn:aws:mediapackage-vod:us-west-2:111122223333:packaging-configurations/CMAF", + "Id":"CMAF", + "PackagingGroupId":"Packaging_group_1", + "CmafPackage":[ + { + "SegmentDurationSeconds":"2" + }, + { + "HlsManifests":{ + "AdMarkers":"NONE", + "RepeatExtXKey":"False", + "ManifestName":"index", + "ProgramDateTimeIntervalSeconds":"0", + "IncludeIframeOnlyStream":"False" + } + } + ] + }, + { + "Arn":"arn:aws:mediapackage-vod:us-west-2:111122223333:packaging-configurations/DASH", + "Id":"DASH", + "PackagingGroupId":"Packaging_group_1", + "DashPackage":[ + { + "SegmentDurationSeconds":"2" + }, + { + "DashManifests":{ + "ManifestName":"index", + "MinBufferTimeSeconds":"30", + "Profile":"NONE" + } + } + ] + }, + { + "Arn":"arn:aws:mediapackage-vod:us-west-2:111122223333:packaging-configurations/HLS", + "Id":"HLS", + "PackagingGroupId":"Packaging_group_1", + "HlsPackage":[ + { + "SegmentDurationSeconds":"6", + "UseAudioRenditionGroup":"False" + }, + { + "HlsManifests":{ + "AdMarkers":"NONE", + "RepeatExtXKey":"False", + "ManifestName":"index", + "ProgramDateTimeIntervalSeconds":"0", + "IncludeIframeOnlyStream":"False" + } + } + ] + }, + { + "Arn":"arn:aws:mediapackage-vod:us-west-2:111122223333:packaging-configurations/New_config_0_copy", + "Id":"New_config_0_copy", + "PackagingGroupId":"Packaging_group_1", + "HlsPackage":[ + { + "SegmentDurationSeconds":"6", + "UseAudioRenditionGroup":"False" + }, + { + "Encryption":{ + "EncryptionMethod":"AWS_128", + "SpekeKeyProvider":{ + "RoleArn":"arn:aws:iam:111122223333::role/SPEKERole", + "Url":"https://lfgubdvs97.execute-api.us-west-2.amazonaws.com/EkeStage/copyProtection/", + "SystemIds":[ + "81376844-f976-481e-a84e-cc25d39b0b33" + ] + } + } + }, + { + "HlsManifests":{ + "AdMarkers":"NONE", + "RepeatExtXKey":"False", + "ManifestName":"index", + "ProgramDateTimeIntervalSeconds":"0", + "IncludeIframeOnlyStream":"False" + } + } + ] + } + ] + } + +For more information, see `Viewing Packaging Configuration Details `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/list-packaging-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/list-packaging-groups.rst new file mode 100644 index 000000000..5c3714294 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage-vod/list-packaging-groups.rst @@ -0,0 +1,26 @@ +**To list all packaging groups** + +The following ``list-packaging-groups`` example lists all of the packaging groups that are configured in the current AWS account. :: + + aws mediapackage-vod list-packaging-groups + +Output:: + + { + "PackagingGroups": [ + { + "Arn": "arn:aws:mediapackage-vod:us-west-2:111122223333:packaging-groups/Dash_widevine", + "Id": "Dash_widevine" + }, + { + "Arn": "arn:aws:mediapackage-vod:us-west-2:111122223333:packaging-groups/Encrypted_HLS", + "Id": "Encrypted_HLS" + }, + { + "Arn": "arn:aws:mediapackage-vod:us-west-2:111122223333:packaging-groups/Packaging_group_1", + "Id": "Packaging_group_1" + } + ] + } + +For more information, see `Viewing Packaging Group Details `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/create-channel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/create-channel.rst new file mode 100644 index 000000000..4dda9d797 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/create-channel.rst @@ -0,0 +1,33 @@ +**To create a channel** + +The following ``create-channel`` command creates a channel named ``sportschannel`` in the current account. :: + + aws mediapackage create-channel --id sportschannel + +Output:: + + { + "Arn": "arn:aws:mediapackage:us-west-2:111222333:channels/6d345804ec3f46c9b454a91d4a80d0e0", + "HlsIngest": { + "IngestEndpoints": [ + { + "Id": "6d345804ec3f46c9b454a91d4a80d0e0", + "Password": "generatedwebdavpassword1", + "Url": "https://f31c86aed53b815a.mediapackage.us-west-2.amazonaws.com/in/v2/6d345804ec3f46c9b454a91d4a80d0e0/6d345804ec3f46c9b454a91d4a80d0e0/channel", + "Username": "generatedwebdavusername1" + }, + { + "Id": "2daa32878af24803b24183727211b8ff", + "Password": "generatedwebdavpassword2", + "Url": "https://6ebbe7e04c4b0afa.mediapackage.us-west-2.amazonaws.com/in/v2/6d345804ec3f46c9b454a91d4a80d0e0/2daa32878af24803b24183727211b8ff/channel", + "Username": "generatedwebdavusername2" + } + ] + }, + "Id": "sportschannel", + "Tags": { + "region": "west" + } + } + +For more information, see `Creating a Channel `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/create-origin-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/create-origin-endpoint.rst new file mode 100644 index 000000000..0b221a276 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/create-origin-endpoint.rst @@ -0,0 +1,49 @@ +**To create an origin endpoint** + +The following ``create-origin-endpoint`` command creates an origin endpoint named ``cmafsports`` with the package settings provided in a JSON file and specified endpoint settings. :: + + aws mediapackage create-origin-endpoint \ + --channel-id sportschannel \ + --id cmafsports \ + --cmaf-package file://file/path/cmafpkg.json --description "cmaf output of sports" \ + --id cmaf_sports \ + --manifest-name sports_channel \ + --startover-window-seconds 300 \ + --tags region=west,media=sports \ + --time-delay-seconds 10 + +Output:: + + { + "Arn": "arn:aws:mediapackage:us-west-2:111222333:origin_endpoints/1dc6718be36f4f34bb9cd86bc50925e6", + "ChannelId": "sportschannel", + "CmafPackage": { + "HlsManifests": [ + { + "AdMarkers": "PASSTHROUGH", + "Id": "cmaf_sports_endpoint", + "IncludeIframeOnlyStream": true, + "ManifestName": "index", + "PlaylistType": "EVENT", + "PlaylistWindowSeconds": 300, + "ProgramDateTimeIntervalSeconds": 300, + "Url": "https://c4af3793bf76b33c.mediapackage.us-west-2.amazonaws.com/out/v1/1dc6718be36f4f34bb9cd86bc50925e6/cmaf_sports_endpoint/index.m3u8" + } + ], + "SegmentDurationSeconds": 2, + "SegmentPrefix": "sportschannel" + }, + "Description": "cmaf output of sports", + "Id": "cmaf_sports", + "ManifestName": "sports_channel", + "StartoverWindowSeconds": 300, + "Tags": { + "region": "west", + "media": "sports" + }, + "TimeDelaySeconds": 10, + "Url": "", + "Whitelist": [] + } + +For more information, see `Creating an Endpoint `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/delete-channel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/delete-channel.rst new file mode 100644 index 000000000..5c4268020 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/delete-channel.rst @@ -0,0 +1,10 @@ +**To delete a channel** + +The following ``delete-channel`` command deletes the channel named ``test``. :: + + aws mediapackage delete-channel \ + --id test + +This command produces no output. + +For more information, see `Deleting a Channel `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/delete-origin-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/delete-origin-endpoint.rst new file mode 100644 index 000000000..91b243150 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/delete-origin-endpoint.rst @@ -0,0 +1,8 @@ +**To delete an origin endpoint** + +The following ``delete-origin-endpoint`` command deletes the origin endpoint named ``tester2``. :: + + aws mediapackage delete-origin-endpoint \ + --id tester2 + +For more information, see `Deleting an Endpoint `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/describe-channel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/describe-channel.rst new file mode 100644 index 000000000..f5dc6027a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/describe-channel.rst @@ -0,0 +1,32 @@ +**To describe a channel** + +The following ``describe-channel`` command displays all of the details of the channel named ``test``. :: + + aws mediapackage describe-channel \ + --id test + +Output:: + + { + "Arn": "arn:aws:mediapackage:us-west-2:111222333:channels/584797f1740548c389a273585dd22a63", + "HlsIngest": { + "IngestEndpoints": [ + { + "Id": "584797f1740548c389a273585dd22a63", + "Password": "webdavgeneratedpassword1", + "Url": "https://9be9c4405c474882.mediapackage.us-west-2.amazonaws.com/in/v2/584797f1740548c389a273585dd22a63/584797f1740548c389a273585dd22a63/channel", + "Username": "webdavgeneratedusername1" + }, + { + "Id": "7d187c8616fd455f88aaa5a9fcf74442", + "Password": "webdavgeneratedpassword2", + "Url": "https://7bf454c57220328d.mediapackage.us-west-2.amazonaws.com/in/v2/584797f1740548c389a273585dd22a63/7d187c8616fd455f88aaa5a9fcf74442/channel", + "Username": "webdavgeneratedusername2" + } + ] + }, + "Id": "test", + "Tags": {} + } + +For more information, see `Viewing Channel Details`__ in the *AWS Elemental MediaPackage User Guide* diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/describe-origin-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/describe-origin-endpoint.rst new file mode 100644 index 000000000..580b0f2ea --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/describe-origin-endpoint.rst @@ -0,0 +1,40 @@ +**To describe an origin endpoint** + +The following ``describe-origin-endpoint`` command displays all of the details of the origin endpoint named ``cmaf_sports``. :: + + aws mediapackage describe-origin-endpoint \ + --id cmaf_sports + +Output:: + + { + "Arn": "arn:aws:mediapackage:us-west-2:111222333:origin_endpoints/1dc6718be36f4f34bb9cd86bc50925e6", + "ChannelId": "sportschannel", + "CmafPackage": { + "HlsManifests": [ + { + "AdMarkers": "NONE", + "Id": "cmaf_sports_endpoint", + "IncludeIframeOnlyStream": false, + "PlaylistType": "EVENT", + "PlaylistWindowSeconds": 60, + "ProgramDateTimeIntervalSeconds": 0, + "Url": "https://c4af3793bf76b33c.mediapackage.us-west-2.amazonaws.com/out/v1/1dc6718be36f4f34bb9cd86bc50925e6/cmaf_sports_endpoint/index.m3u8" + } + ], + "SegmentDurationSeconds": 2, + "SegmentPrefix": "sportschannel" + }, + "Id": "cmaf_sports", + "ManifestName": "index", + "StartoverWindowSeconds": 0, + "Tags": { + "region": "west", + "media": "sports" + }, + "TimeDelaySeconds": 0, + "Url": "", + "Whitelist": [] + } + +For more information, see `Viewing a Single Endpoint `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/list-channels.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/list-channels.rst new file mode 100644 index 000000000..1e9e204b0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/list-channels.rst @@ -0,0 +1,35 @@ +**To list all channels** + +The following ``list-channels`` command lists all of the channels that are configured on the current AWS account. :: + + aws mediapackage list-channels + +Output:: + + { + "Channels": [ + { + "Arn": "arn:aws:mediapackage:us-west-2:111222333:channels/584797f1740548c389a273585dd22a63", + "HlsIngest": { + "IngestEndpoints": [ + { + "Id": "584797f1740548c389a273585dd22a63", + "Password": "webdavgeneratedpassword1", + "Url": "https://9be9c4405c474882.mediapackage.us-west-2.amazonaws.com/in/v2/584797f1740548c389a273585dd22a63/584797f1740548c389a273585dd22a63/channel", + "Username": "webdavgeneratedusername1" + }, + { + "Id": "7d187c8616fd455f88aaa5a9fcf74442", + "Password": "webdavgeneratedpassword2", + "Url": "https://7bf454c57220328d.mediapackage.us-west-2.amazonaws.com/in/v2/584797f1740548c389a273585dd22a63/7d187c8616fd455f88aaa5a9fcf74442/channel", + "Username": "webdavgeneratedusername2" + } + ] + }, + "Id": "test", + "Tags": {} + } + ] + } + +For more information, see `Viewing Channel Details `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/list-origin-endpoints.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/list-origin-endpoints.rst new file mode 100644 index 000000000..39756ffa3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/list-origin-endpoints.rst @@ -0,0 +1,67 @@ +**To list all origin-endpoints on a channel** + +The following ``list-origin-endpoints`` command lists all of the origin endpoints that are configured on the channel named ``test``. :: + + aws mediapackage list-origin-endpoints \ + --channel-id test + +Output:: + + { + "OriginEndpoints": [ + { + "Arn": "arn:aws:mediapackage:us-west-2:111222333:origin_endpoints/247cff871f2845d3805129be22f2c0a2", + "ChannelId": "test", + "DashPackage": { + "ManifestLayout": "FULL", + "ManifestWindowSeconds": 60, + "MinBufferTimeSeconds": 30, + "MinUpdatePeriodSeconds": 15, + "PeriodTriggers": [], + "Profile": "NONE", + "SegmentDurationSeconds": 2, + "SegmentTemplateFormat": "NUMBER_WITH_TIMELINE", + "StreamSelection": { + "MaxVideoBitsPerSecond": 2147483647, + "MinVideoBitsPerSecond": 0, + "StreamOrder": "ORIGINAL" + }, + "SuggestedPresentationDelaySeconds": 25 + }, + "Id": "tester2", + "ManifestName": "index", + "StartoverWindowSeconds": 0, + "Tags": {}, + "TimeDelaySeconds": 0, + "Url": "https://8343f7014c0ea438.mediapackage.us-west-2.amazonaws.com/out/v1/247cff871f2845d3805129be22f2c0a2/index.mpd", + "Whitelist": [] + }, + { + "Arn": "arn:aws:mediapackage:us-west-2:111222333:origin_endpoints/869e237f851549e9bcf10e3bc2830839", + "ChannelId": "test", + "HlsPackage": { + "AdMarkers": "NONE", + "IncludeIframeOnlyStream": false, + "PlaylistType": "EVENT", + "PlaylistWindowSeconds": 60, + "ProgramDateTimeIntervalSeconds": 0, + "SegmentDurationSeconds": 6, + "StreamSelection": { + "MaxVideoBitsPerSecond": 2147483647, + "MinVideoBitsPerSecond": 0, + "StreamOrder": "ORIGINAL" + }, + "UseAudioRenditionGroup": false + }, + "Id": "tester", + "ManifestName": "index", + "StartoverWindowSeconds": 0, + "Tags": {}, + "TimeDelaySeconds": 0, + "Url": "https://8343f7014c0ea438.mediapackage.us-west-2.amazonaws.com/out/v1/869e237f851549e9bcf10e3bc2830839/index.m3u8", + "Whitelist": [] + } + ] + } + +For more information, see `Viewing all Endpoints Associated with a Channel `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/list-tags-for-resource.rst new file mode 100644 index 000000000..3d38a7bc3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/list-tags-for-resource.rst @@ -0,0 +1,16 @@ +**To list the tags assigned to a resource** + +The following ``list-tags-for-resource`` command lists the tags that are assigned to the specified resource. :: + + aws mediapackage list-tags-for-resource \ + --resource-arn arn:aws:mediapackage:us-west-2:111222333:channels/6d345804ec3f46c9b454a91d4a80d0e0 + +Output:: + + { + "Tags": { + "region": "west" + } + } + +For more information, see `Tagging Resources in AWS Elemental MediaPackage `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/rotate-ingest-endpoint-credentials.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/rotate-ingest-endpoint-credentials.rst new file mode 100644 index 000000000..2e24d47f6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/rotate-ingest-endpoint-credentials.rst @@ -0,0 +1,33 @@ +**To rotate ingest credentials** + +The following ``rotate-ingest-endpoint-credentials`` command rotates the WebDAV username and password for the specified ingest endpoint. :: + + aws mediapackage rotate-ingest-endpoint-credentials \ + --id test \ + --ingest-endpoint-id 584797f1740548c389a273585dd22a63 + +Output:: + + { + "Arn": "arn:aws:mediapackage:us-west-2:111222333:channels/584797f1740548c389a273585dd22a63", + "HlsIngest": { + "IngestEndpoints": [ + { + "Id": "584797f1740548c389a273585dd22a63", + "Password": "webdavregeneratedpassword1", + "Url": "https://9be9c4405c474882.mediapackage.us-west-2.amazonaws.com/in/v2/584797f1740548c389a273585dd22a63/584797f1740548c389a273585dd22a63/channel", + "Username": "webdavregeneratedusername1" + }, + { + "Id": "7d187c8616fd455f88aaa5a9fcf74442", + "Password": "webdavgeneratedpassword2", + "Url": "https://7bf454c57220328d.mediapackage.us-west-2.amazonaws.com/in/v2/584797f1740548c389a273585dd22a63/7d187c8616fd455f88aaa5a9fcf74442/channel", + "Username": "webdavgeneratedusername2" + } + ] + }, + "Id": "test", + "Tags": {} + } + +For more information, see `Rotating Credentials on an Input URL `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/tag-resource.rst new file mode 100644 index 000000000..3c6f9dded --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/tag-resource.rst @@ -0,0 +1,11 @@ +**To add a tag to a resource** + +The following ``tag-resource`` commands adds a ``region=west`` key and value pair to the specified resource. :: + + aws mediapackage tag-resource \ + --resource-arn arn:aws:mediapackage:us-west-2:111222333:channels/6d345804ec3f46c9b454a91d4a80d0e0 \ + --tags region=west + +This command produces no output. + +For more information, see `Tagging Resources in AWS Elemental MediaPackage `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/untag-resource.rst new file mode 100644 index 000000000..681afb2cd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/untag-resource.rst @@ -0,0 +1,9 @@ +**To remove a tag from a resource** + +The following ``untag-resource`` command removes the tag with the key ``region`` from the specified channel. :: + + aws mediapackage untag-resource \ + --resource-arn arn:aws:mediapackage:us-west-2:111222333:channels/6d345804ec3f46c9b454a91d4a80d0e0 \ + --tag-keys region + +For more information, see `Tagging Resources in AWS Elemental MediaPackage `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/update-channel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/update-channel.rst new file mode 100644 index 000000000..6a4a428f2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/update-channel.rst @@ -0,0 +1,34 @@ +**To update a channel** + +The following ``update-channel`` command updates the channel named ``sportschannel`` to include the description ``24x7 sports``. :: + + aws mediapackage update-channel \ + --id sportschannel \ + --description "24x7 sports" + +Output:: + + { + "Arn": "arn:aws:mediapackage:us-west-2:111222333:channels/6d345804ec3f46c9b454a91d4a80d0e0", + "Description": "24x7 sports", + "HlsIngest": { + "IngestEndpoints": [ + { + "Id": "6d345804ec3f46c9b454a91d4a80d0e0", + "Password": "generatedwebdavpassword1", + "Url": "https://f31c86aed53b815a.mediapackage.us-west-2.amazonaws.com/in/v2/6d345804ec3f46c9b454a91d4a80d0e0/6d345804ec3f46c9b454a91d4a80d0e0/channel", + "Username": "generatedwebdavusername1" + }, + { + "Id": "2daa32878af24803b24183727211b8ff", + "Password": "generatedwebdavpassword2", + "Url": "https://6ebbe7e04c4b0afa.mediapackage.us-west-2.amazonaws.com/in/v2/6d345804ec3f46c9b454a91d4a80d0e0/2daa32878af24803b24183727211b8ff/channel", + "Username": "generatedwebdavusername2" + } + ] + }, + "Id": "sportschannel", + "Tags": {} + } + +For more information, see `Editing a Channel `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/update-origin-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/update-origin-endpoint.rst new file mode 100644 index 000000000..e5e9c98dc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediapackage/update-origin-endpoint.rst @@ -0,0 +1,41 @@ +**To update an origin endpoint** + +The following ``update-origin-endpoint`` command updates the origin endpoint named ``cmaf_sports``. It changes the time delay to ``0`` seconds. :: + + aws mediapackage update-origin-endpoint \ + --id cmaf_sports \ + --time-delay-seconds 0 + +Output:: + + { + "Arn": "arn:aws:mediapackage:us-west-2:111222333:origin_endpoints/1dc6718be36f4f34bb9cd86bc50925e6", + "ChannelId": "sportschannel", + "CmafPackage": { + "HlsManifests": [ + { + "AdMarkers": "NONE", + "Id": "cmaf_sports_endpoint", + "IncludeIframeOnlyStream": false, + "PlaylistType": "EVENT", + "PlaylistWindowSeconds": 60, + "ProgramDateTimeIntervalSeconds": 0, + "Url": "https://c4af3793bf76b33c.mediapackage.us-west-2.amazonaws.com/out/v1/1dc6718be36f4f34bb9cd86bc50925e6/cmaf_sports_endpoint/index.m3u8" + } + ], + "SegmentDurationSeconds": 2, + "SegmentPrefix": "sportschannel" + }, + "Id": "cmaf_sports", + "ManifestName": "index", + "StartoverWindowSeconds": 0, + "Tags": { + "region": "west", + "media": "sports" + }, + "TimeDelaySeconds": 0, + "Url": "", + "Whitelist": [] + } + +For more information, see `Editing an Endpoint `__ in the *AWS Elemental MediaPackage User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore-data/delete-object.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore-data/delete-object.rst new file mode 100644 index 000000000..b9844a359 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore-data/delete-object.rst @@ -0,0 +1,11 @@ +**To delete an object** + +The following ``delete-object`` example deletes the specified object. :: + + aws mediastore-data delete-object \ + --endpoint=https://aaabbbcccdddee.data.mediastore.us-west-2.amazonaws.com \ + --path=/folder_name/README.md + +This command produces no output. + +For more information, see `Deleting an Object `__ in the *AWS Elemental MediaStore User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore-data/describe-object.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore-data/describe-object.rst new file mode 100644 index 000000000..c48439b5d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore-data/describe-object.rst @@ -0,0 +1,18 @@ +**To view the headers for an object** + +The following ``describe-object`` example displays the headers for an object at the specified path. :: + + aws mediastore-data describe-object \ + --endpoint https://aaabbbcccdddee.data.mediastore.us-west-2.amazonaws.com \ + --path events/baseball/setup.jpg + +Output:: + + { + "LastModified": "Fri, 19 Jul 2019 21:50:31 GMT", + "ContentType": "image/jpeg", + "ContentLength": "3860266", + "ETag": "2aa333bbcc8d8d22d777e999c88d4aa9eeeeee4dd89ff7f555555555555da6d3" + } + +For more information, see `Viewing the Details of an Object `__ in the *AWS Elemental MediaStore User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore-data/get-object.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore-data/get-object.rst new file mode 100644 index 000000000..084b020ca --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore-data/get-object.rst @@ -0,0 +1,39 @@ +**Example 1: To download an entire object** + +The following ``get-object`` example downloads the specified object. :: + + aws mediastore-data get-object \ + --endpoint https://aaabbbcccdddee.data.mediastore.us-west-2.amazonaws.com \ + --path events/baseball/setup.jpg setup.jpg + +Output:: + + { + "ContentType": "image/jpeg", + "StatusCode": 200, + "ETag": "2aa333bbcc8d8d22d777e999c88d4aa9eeeeee4dd89ff7f555555555555da6d3", + "ContentLength": "3860266", + "LastModified": "Fri, 19 Jul 2019 21:50:31 GMT" + } + +**Example 2: To download part of an object** + +The following ``get-object`` example downloads the specified part of an object. :: + + aws mediastore-data get-object \ + --endpoint https://aaabbbcccdddee.data.mediastore.us-west-2.amazonaws.com \ + --path events/baseball/setup.jpg setup.jpg \ + --range "bytes=0-100" + +Output:: + + { + "StatusCode": 206, + "LastModified": "Fri, 19 Jul 2019 21:50:31 GMT", + "ContentType": "image/jpeg", + "ContentRange": "bytes 0-100/3860266", + "ETag": "2aa333bbcc8d8d22d777e999c88d4aa9eeeeee4dd89ff7f555555555555da6d3", + "ContentLength": "101" + } + +For more information, see `Downloading an Object `__ in the *AWS Elemental MediaStore User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore-data/list-items.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore-data/list-items.rst new file mode 100644 index 000000000..9602fd388 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore-data/list-items.rst @@ -0,0 +1,50 @@ +**Example 1: To view a list of items (objects and folders) stored in a container** + +The following ``list-items`` example displays a list of items (objects and folders) stored in the specified container. :: + + aws mediastore-data list-items \ + --endpoint https://aaabbbcccdddee.data.mediastore.us-west-2.amazonaws.com + +Output:: + + { + "Items": [ + { + "Type": "OBJECT", + "ContentLength": 3784, + "Name": "setup.jpg", + "ETag": "2aa333bbcc8d8d22d777e999c88d4aa9eeeeee4dd89ff7f555555555555da6d3", + "ContentType": "image/jpeg", + "LastModified": 1563571859.379 + }, + { + "Type": "FOLDER", + "Name": "events" + } + ] + } + +**Example 2: To view a list of items (objects and folders) stored in a folder** + +The following ``list-items`` example displays a list of items (objects and folders) stored in the specified folder. :: + + aws mediastore-data list-items \ + --endpoint https://aaabbbcccdddee.data.mediastore.us-west-2.amazonaws.com \ + --path events/baseball + +Output:: + + { + "Items": [ + { + "ETag": "2aa333bbcc8d8d22d777e999c88d4aa9eeeeee4dd89ff7f555555555555da6d3", + "ContentType": "image/jpeg", + "Type": "OBJECT", + "ContentLength": 3860266, + "LastModified": 1563573031.872, + "Name": "setup.jpg" + } + ] + } + +For more information, see `Viewing a List of Objects `__ in the *AWS Elemental MediaStore User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore-data/put-object.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore-data/put-object.rst new file mode 100644 index 000000000..5f62a34c4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore-data/put-object.rst @@ -0,0 +1,39 @@ +**Example 1: To upload an object to a container** + +The following ``put-object`` example upload an object to the specified container. :: + + aws mediastore-data put-object \ + --endpoint https://aaabbbcccdddee.data.mediastore.us-west-2.amazonaws.com \ + --body ReadMe.md \ + --path ReadMe.md \ + --cache-control "max-age=6, public" \ + --content-type binary/octet-stream + +Output:: + + { + "ContentSHA256": "f29bc64a9d3732b4b9035125fdb3285f5b6455778edca72414671e0ca3b2e0de", + "StorageClass": "TEMPORAL", + "ETag": "2aa333bbcc8d8d22d777e999c88d4aa9eeeeee4dd89ff7f555555555555da6d3" + } + +**Example 2: To upload an object to a folder within a container** + +The following ``put-object`` example upload an object to the specified folder within a container. :: + + aws mediastore-data put-object \ + --endpoint https://aaabbbcccdddee.data.mediastore.us-west-2.amazonaws.com \ + --body ReadMe.md \ + --path /september-events/ReadMe.md \ + --cache-control "max-age=6, public" \ + --content-type binary/octet-stream + +Output:: + + { + "ETag": "2aa333bbcc8d8d22d777e999c88d4aa9eeeeee4dd89ff7f555555555555da6d3", + "ContentSHA256": "f29bc64a9d3732b4b9035125fdb3285f5b6455778edca72414671e0ca3b2e0de", + "StorageClass": "TEMPORAL" + } + +For more information, see `Uploading an Object `__ in the *AWS Elemental MediaStore User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/create-container.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/create-container.rst new file mode 100644 index 000000000..a9b4adca1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/create-container.rst @@ -0,0 +1,19 @@ +**To create a container** + +The following ``create-container`` example creates a new, empty container. :: + + aws mediastore create-container --container-name ExampleContainer + +Output:: + + { + "Container": { + "AccessLoggingEnabled": false, + "CreationTime": 1563557265, + "Name": "ExampleContainer", + "Status": "CREATING", + "ARN": "arn:aws:mediastore:us-west-2:111122223333:container/ExampleContainer" + } + } + +For more information, see `Creating a Container `__ in the *AWS Elemental MediaStore User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/delete-container-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/delete-container-policy.rst new file mode 100644 index 000000000..3a1471b14 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/delete-container-policy.rst @@ -0,0 +1,10 @@ +**To delete a container policy** + +The following ``delete-container-policy`` example deletes the policy that is assigned to the specified container. When the policy is deleted, AWS Elemental MediaStore automatically assigns the default policy to the container. :: + + aws mediastore delete-container-policy \ + --container-name LiveEvents + +This command produces no output. + +For more information, see `DeleteContainerPolicy `__ in the *AWS Elemental MediaStore API reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/delete-container.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/delete-container.rst new file mode 100644 index 000000000..0a1945ac8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/delete-container.rst @@ -0,0 +1,10 @@ +**To delete a container** + +The following ``delete-container`` example deletes the specified container. You can delete a container only if it has no objects. :: + + aws mediastore delete-container \ + --container-name=ExampleLiveDemo + +This command produces no output. + +For more information, see `Deleting a Container `__ in the *AWS Elemental MediaStore User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/delete-cors-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/delete-cors-policy.rst new file mode 100644 index 000000000..a7720c05f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/delete-cors-policy.rst @@ -0,0 +1,10 @@ +**To delete a CORS policy** + +The following ``delete-cors-policy`` example deletes the cross-origin resource sharing (CORS) policy that is assigned to the specified container. :: + + aws mediastore delete-cors-policy \ + --container-name ExampleContainer + +This command produces no output. + +For more information, see `Deleting a CORS Policy `__ in the *AWS Elemental MediaStore User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/delete-lifecycle-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/delete-lifecycle-policy.rst new file mode 100644 index 000000000..8d003bb48 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/delete-lifecycle-policy.rst @@ -0,0 +1,10 @@ +**To delete an object lifecycle policy** + +The following ``delete-lifecycle-policy`` example deletes the object lifecycle policy attached to the specified container. This change can take up to 20 minutes to take effect. :: + + aws mediastore delete-lifecycle-policy \ + --container-name LiveEvents + +This command produces no output. + +For more information, see `Deleting an Object Lifecycle Policy `__ in the *AWS Elemental MediaStore User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/describe-container.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/describe-container.rst new file mode 100644 index 000000000..11da60a0b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/describe-container.rst @@ -0,0 +1,21 @@ +**To view the details of a container** + +The following ``describe-container`` example displays the details of the specified container. :: + + aws mediastore describe-container \ + --container-name ExampleContainer + +Output:: + + { + "Container": { + "CreationTime": 1563558086, + "AccessLoggingEnabled": false, + "ARN": "arn:aws:mediastore:us-west-2:111122223333:container/ExampleContainer", + "Status": "ACTIVE", + "Name": "ExampleContainer", + "Endpoint": "https://aaabbbcccdddee.data.mediastore.us-west-2.amazonaws.com" + } + } + +For more information, see `Viewing the Details for a Container `__ in the *AWS Elemental MediaStore User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/describe-object.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/describe-object.rst new file mode 100644 index 000000000..1736472a8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/describe-object.rst @@ -0,0 +1,18 @@ +**To view a list of objects and folders in a specific container** + +The following ``describe-object`` example displays items (objects and folders) stored in a specific container. :: + + aws mediastore-data describe-object \ + --endpoint https://aaabbbcccdddee.data.mediastore.us-west-2.amazonaws.com \ + --path /folder_name/file1234.jpg + +Output:: + + { + "ContentType": "image/jpeg", + "LastModified": "Fri, 19 Jul 2019 21:32:20 GMT", + "ContentLength": "2307346", + "ETag": "2aa333bbcc8d8d22d777e999c88d4aa9eeeeee4dd89ff7f555555555555da6d3" + } + +For more information, see `Viewing the Details of an Object `__ in the *AWS Elemental MediaStore User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/get-container-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/get-container-policy.rst new file mode 100644 index 000000000..231d92410 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/get-container-policy.rst @@ -0,0 +1,35 @@ +**To view a container policy** + +The following ``get-container-policy`` example displays the resource-based policy of the specified container. :: + + aws mediastore get-container-policy \ + --container-name ExampleLiveDemo + +Output:: + + { + "Policy": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "PublicReadOverHttps", + "Effect": "Allow", + "Principal": { + "AWS": "arn:aws:iam::111122223333:root" + }, + "Action": [ + "mediastore:GetObject", + "mediastore:DescribeObject" + ], + "Resource": "arn:aws:mediastore:us-west-2:111122223333:container/ExampleLiveDemo/", + "Condition": { + "Bool": { + "aws:SecureTransport": "true" + } + } + } + ] + } + } + +For more information, see `Viewing a Container Policy `__ in the *AWS Elemental MediaStore User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/get-cors-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/get-cors-policy.rst new file mode 100644 index 000000000..7389a05be --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/get-cors-policy.rst @@ -0,0 +1,29 @@ +**To view a CORS policy** + +The following ``get-cors-policy`` example displays the cross-origin resource sharing (CORS) policy that is assigned to the specified container. :: + + aws mediastore get-cors-policy \ + --container-name ExampleContainer \ + --region us-west-2 + +Output:: + + { + "CorsPolicy": [ + { + "AllowedMethods": [ + "GET", + "HEAD" + ], + "MaxAgeSeconds": 3000, + "AllowedOrigins": [ + "" + ], + "AllowedHeaders": [ + "" + ] + } + ] + } + +For more information, see `Viewing a CORS Policy `__ in the *AWS Elemental MediaStore User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/get-lifecycle-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/get-lifecycle-policy.rst new file mode 100644 index 000000000..376207f8e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/get-lifecycle-policy.rst @@ -0,0 +1,38 @@ +**To view an object lifecycle policy** + +The following ``get-lifecycle-policy`` example displays the object lifecycle policy attached to the specified container. :: + + aws mediastore get-lifecycle-policy \ + --container-name LiveEvents + +Output:: + + { + "LifecyclePolicy": { + "rules": [ + { + "definition": { + "path": [ + { + "prefix": "Football/" + }, + { + "prefix": "Baseball/" + } + ], + "days_since_create": [ + { + "numeric": [ + ">", + 28 + ] + } + ] + }, + "action": "EXPIRE" + } + ] + } + } + +For more information, see `Viewing an Object Lifecycle Policy `__ in the *AWS Elemental MediaStore User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/get-object.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/get-object.rst new file mode 100644 index 000000000..d77cbdbfb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/get-object.rst @@ -0,0 +1,39 @@ +**To download an object** + +The following ``get-object`` example download an object to the specified endpoint. :: + + aws mediastore-data get-object \ + --endpoint https://aaabbbcccdddee.data.mediastore.us-west-2.amazonaws.com \ + --path=/folder_name/README.md README.md + +Output:: + + { + "ContentLength": "2307346", + "ContentType": "image/jpeg", + "LastModified": "Fri, 19 Jul 2019 21:32:20 GMT", + "ETag": "2aa333bbcc8d8d22d777e999c88d4aa9eeeeee4dd89ff7f555555555555da6d3", + "StatusCode": 200 + } + +**To download part of an object** + +The following ``get-object`` example downloads a portion an object to the specified endpoint. :: + + aws mediastore-data get-object \ + --endpoint https://aaabbbcccdddee.data.mediastore.us-west-2.amazonaws.com \ + --path /folder_name/README.md \ + --range="bytes=0-100" README2.md + +Output:: + + { + "StatusCode": 206, + "ContentRange": "bytes 0-100/2307346", + "ContentLength": "101", + "LastModified": "Fri, 19 Jul 2019 21:32:20 GMT", + "ContentType": "image/jpeg", + "ETag": "2aa333bbcc8d8d22d777e999c88d4aa9eeeeee4dd89ff7f555555555555da6d3" + } + +For more information, see `Downloading an Object `__ in the *AWS Elemental MediaStore User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/list-containers.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/list-containers.rst new file mode 100644 index 000000000..01c0c33b3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/list-containers.rst @@ -0,0 +1,30 @@ +**To view a list of containers** + +The following ``list-containers`` example displays a list of all containers that are associated with your account. :: + + aws mediastore list-containers + +Output:: + + { + "Containers": [ + { + "CreationTime": 1505317931, + "Endpoint": "https://aaabbbcccdddee.data.mediastore.us-west-2.amazonaws.com", + "Status": "ACTIVE", + "ARN": "arn:aws:mediastore:us-west-2:111122223333:container/ExampleLiveDemo", + "AccessLoggingEnabled": false, + "Name": "ExampleLiveDemo" + }, + { + "CreationTime": 1506528818, + "Endpoint": "https://fffggghhhiiijj.data.mediastore.us-west-2.amazonaws.com", + "Status": "ACTIVE", + "ARN": "arn:aws:mediastore:us-west-2:111122223333:container/ExampleContainer", + "AccessLoggingEnabled": false, + "Name": "ExampleContainer" + } + ] + } + +For more information, see `Viewing a List of Containers `__ in the *AWS Elemental MediaStore User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/list-items.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/list-items.rst new file mode 100644 index 000000000..edfaf8273 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/list-items.rst @@ -0,0 +1,53 @@ +**Example 1: To view a list of objects and folders in a specific container** + +The following ``list-items`` example displays items (objects and folders) stored in the specified container. :: + + aws mediastore-data list-items \ + --endpoint https://aaabbbcccdddee.data.mediastore.us-west-2.amazonaws.com + +Output:: + + { + "Items": [ + { + "ContentType": "image/jpeg", + "LastModified": 1563571859.379, + "Name": "filename.jpg", + "Type": "OBJECT", + "ETag": "543ab21abcd1a234ab123456a1a2b12345ab12abc12a1234abc1a2bc12345a12", + "ContentLength": 3784 + }, + { + "Type": "FOLDER", + "Name": "ExampleLiveDemo" + } + ] + } + +**Example 2: To view a list of objects and folders in a specific folder** + +The following ``list-items`` example displays items (objects and folders) stored in a specific folder. :: + + aws mediastore-data list-items \ + --endpoint https://aaabbbcccdddee.data.mediastore.us-west-2.amazonaws.com + +Output:: + + { + "Items": [ + { + "ContentType": "image/jpeg", + "LastModified": 1563571859.379, + "Name": "filename.jpg", + "Type": "OBJECT", + "ETag": "543ab21abcd1a234ab123456a1a2b12345ab12abc12a1234abc1a2bc12345a12", + "ContentLength": 3784 + }, + { + "Type": "FOLDER", + "Name": "ExampleLiveDemo" + } + ] + } + +For more information, see `Viewing a List of Objects `__ in the *AWS Elemental MediaStore User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/list-tags-for-resource.rst new file mode 100644 index 000000000..4ff15286e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/list-tags-for-resource.rst @@ -0,0 +1,23 @@ +**To list tags for a container** + +The following ``list-tags-for-resource`` example displays the tag keys and values assigned to the specified container. :: + + aws mediastore list-tags-for-resource \ + --resource arn:aws:mediastore:us-west-2:1213456789012:container/ExampleContainer + +Output:: + + { + "Tags": [ + { + "Value": "Test", + "Key": "Environment" + }, + { + "Value": "West", + "Key": "Region" + } + ] + } + +For more information, see `ListTagsForResource `__ in the *AWS Elemental MediaStore API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/put-container-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/put-container-policy.rst new file mode 100644 index 000000000..2b0eb83b8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/put-container-policy.rst @@ -0,0 +1,11 @@ +**To edit a container policy** + +The following ``put-container-policy`` example assigns a different policy to the specified container. In this example, the updated policy is defined in a file named ``LiveEventsContainerPolicy.json``. :: + + aws mediastore put-container-policy \ + --container-name LiveEvents \ + --policy file://LiveEventsContainerPolicy.json + +This command produces no output. + +For more information, see `Editing a Container Policy `__ in the *AWS Elemental MediaStore User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/put-cors-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/put-cors-policy.rst new file mode 100644 index 000000000..a371ee338 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/put-cors-policy.rst @@ -0,0 +1,17 @@ +**Example 1: To add a CORS policy** + +The following ``put-cors-policy`` example adds a cross-origin resource sharing (CORS) policy to the specified container. The contents of the CORS policy are in the file named ``corsPolicy.json``. :: + + aws mediastore put-cors-policy \ + --container-name ExampleContainer \ + --cors-policy file://corsPolicy.json + +This command produces no output. + +For more information, see `Adding a CORS Policy to a Container `__ in the *AWS Elemental MediaStore User Guide*. + +**Example 2: To edit a CORS policy** + +The following ``put-cors-policy`` example updates the cross-origin resource sharing (CORS) policy that is assigned to the specified container. The contents of the updated CORS policy are in the file named ``corsPolicy2.json``. + +For more information, see `Editing a CORS Policy `__ in the *AWS Elemental MediaStore User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/put-lifecycle-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/put-lifecycle-policy.rst new file mode 100644 index 000000000..a155493c1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/put-lifecycle-policy.rst @@ -0,0 +1,11 @@ +**To create an object lifecycle policy** + +The following ``put-lifecycle-policy`` example attaches an object lifecycle policy to the specified container. This enables you to specify how long the service should store objects in your container. MediaStore deletes objects in the container once they reach their expiration date, as indicated in the policy, which is in the file named ``LiveEventsLifecyclePolicy.json``. :: + + aws mediastore put-lifecycle-policy \ + --container-name ExampleContainer \ + --lifecycle-policy file://ExampleLifecyclePolicy.json + +This command produces no output. + +For more information, see `Adding an Object Lifecycle Policy to a Container `__ in the *AWS Elemental MediaStore User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/put-object.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/put-object.rst new file mode 100644 index 000000000..7c47a7a24 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/put-object.rst @@ -0,0 +1,20 @@ +**To upload an object** + +The following ``put-object`` example uploads an object to the specified container. You can specify a folder path where the object will be saved within the container. If the folder already exists, AWS Elemental MediaStore stores the object in the folder. If the folder doesn't exist, the service creates it, and then stores the object in the folder. :: + + aws mediastore-data put-object \ + --endpoint https://aaabbbcccdddee.data.mediastore.us-west-2.amazonaws.com \ + --body README.md \ + --path /folder_name/README.md \ + --cache-control "max-age=6, public" \ + --content-type binary/octet-stream + +Output:: + + { + "ContentSHA256": "74b5fdb517f423ed750ef214c44adfe2be36e37d861eafe9c842cbe1bf387a9d", + "StorageClass": "TEMPORAL", + "ETag": "af3e4731af032167a106015d1f2fe934e68b32ed1aa297a9e325f5c64979277b" + } + +For more information, see `Uploading an Object `__ in the *AWS Elemental MediaStore User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/start-access-logging.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/start-access-logging.rst new file mode 100644 index 000000000..0ab7e39c8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/start-access-logging.rst @@ -0,0 +1,10 @@ +**To enable access logging on a container** + +The following ``start-access-logging`` example enable access logging on the specified container. :: + + aws mediastore start-access-logging \ + --container-name LiveEvents + +This command produces no output. + +For more information, see `Enabling Access Logging for a Container `__ in the *AWS Elemental MediaStore User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/stop-access-logging.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/stop-access-logging.rst new file mode 100644 index 000000000..876edd2bc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/stop-access-logging.rst @@ -0,0 +1,10 @@ +**To disable access logging on a container** + +The following ``stop-access-logging`` example disables access logging on the specified container. :: + + aws mediastore stop-access-logging \ + --container-name LiveEvents + +This command produces no output. + +For more information, see `Disabling Access Logging for a Container `__ in the *AWS Elemental MediaStore User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/tag-resource.rst new file mode 100644 index 000000000..eedcd780e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/tag-resource.rst @@ -0,0 +1,11 @@ +**To add tags to a container** + +The following ``tag-resource`` example adds tag keys and values to the specified container. :: + + aws mediastore tag-resource \ + --resource arn:aws:mediastore:us-west-2:123456789012:container/ExampleContainer \ + --tags '[{"Key": "Region", "Value": "West"}, {"Key": "Environment", "Value": "Test"}]' + +This command produces no output. + +For more information, see `TagResource `__ in the *AWS Elemental MediaStore API Reference*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/untag-resource.rst new file mode 100644 index 000000000..a67fba56a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediastore/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove tags from a container** + +The following ``untag-resource`` example removes the specified tag key and its associated value from a container. :: + + aws mediastore untag-resource \ + --resource arn:aws:mediastore:us-west-2:123456789012:container/ExampleContainer \ + --tag-keys Region + +This command produces no output. + +For more information, see `UntagResource `__ in the *AWS Elemental MediaStore API Reference.*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediatailor/delete-playback-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediatailor/delete-playback-configuration.rst new file mode 100755 index 000000000..48e29816b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediatailor/delete-playback-configuration.rst @@ -0,0 +1,10 @@ +**To delete a configuration** + +The following ``delete-playback-configuration`` deletes a configuration named ``campaign_short``. :: + + aws mediatailor delete-playback-configuration \ + --name campaign_short + +This command produces no output. + +For more information, see `Deleting a Configuration `__ in the *AWS Elemental MediaTailor User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediatailor/get-playback-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediatailor/get-playback-configuration.rst new file mode 100755 index 000000000..e67248949 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediatailor/get-playback-configuration.rst @@ -0,0 +1,29 @@ +**To describe a configuration** + +The following ``get-playback-configuration`` displays all of the details of the configuration named ``west_campaign``. :: + + aws mediatailor get-playback-configuration \ + --name west_campaign + +Output:: + + { + "AdDecisionServerUrl": "http://your.ads.url", + "CdnConfiguration": {}, + "DashConfiguration": { + "ManifestEndpointPrefix": "https://170c14299689462897d0cc45fc2000bb.mediatailor.us-west-2.amazonaws.com/v1/dash/1cbfeaaecb69778e0c167d0505a2bc57da2b1754/west_campaign/", + "MpdLocation": "EMT_DEFAULT", + "OriginManifestType": "MULTI_PERIOD" + }, + "HlsConfiguration": { + "ManifestEndpointPrefix": "https://170c14299689462897d0cc45fc2000bb.mediatailor.us-west-2.amazonaws.com/v1/master/1cbfeaaecb69778e0c167d0505a2bc57da2b1754/west_campaign/" + }, + "Name": "west_campaign", + "PlaybackConfigurationArn": "arn:aws:mediatailor:us-west-2:123456789012:playbackConfiguration/west_campaign", + "PlaybackEndpointPrefix": "https://170c14299689462897d0cc45fc2000bb.mediatailor.us-west-2.amazonaws.com", + "SessionInitializationEndpointPrefix": "https://170c14299689462897d0cc45fc2000bb.mediatailor.us-west-2.amazonaws.com/v1/session/1cbfeaaecb69778e0c167d0505a2bc57da2b1754/west_campaign/", + "Tags": {}, + "VideoContentSourceUrl": "https://8343f7014c0ea438.mediapackage.us-west-2.amazonaws.com/out/v1/683f0f2ff7cd43a48902e6dcd5e16dcf/index.m3u8" + } + +For more information, see `Viewing a Configuration `__ in the *AWS Elemental MediaTailor User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediatailor/list-playback-configurations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediatailor/list-playback-configurations.rst new file mode 100755 index 000000000..507b6e039 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediatailor/list-playback-configurations.rst @@ -0,0 +1,51 @@ +**To list all configurations** + +The following ``list-playback-configurations`` displays all of the details of the configuration on the current AWS account. :: + + aws mediatailor list-playback-configurations + +Output:: + + { + "Items": [ + { + "AdDecisionServerUrl": "http://your.ads.url", + "CdnConfiguration": {}, + "DashConfiguration": { + "ManifestEndpointPrefix": "https://170c14299689462897d0cc45fc2000bb.mediatailor.us-west-2.amazonaws.com/v1/dash/1cbfeaaecb69778e0c167d0505a2bc57da2b1754/west_campaign/", + "MpdLocation": "EMT_DEFAULT", + "OriginManifestType": "MULTI_PERIOD" + }, + "HlsConfiguration": { + "ManifestEndpointPrefix": "https://170c14299689462897d0cc45fc2000bb.mediatailor.us-west-2.amazonaws.com/v1/master/1cbfeaaecb69778e0c167d0505a2bc57da2b1754/west_campaign/" + }, + "Name": "west_campaign", + "PlaybackConfigurationArn": "arn:aws:mediatailor:us-west-2:123456789012:playbackConfiguration/west_campaign", + "PlaybackEndpointPrefix": "https://170c14299689462897d0cc45fc2000bb.mediatailor.us-west-2.amazonaws.com", + "SessionInitializationEndpointPrefix": "https://170c14299689462897d0cc45fc2000bb.mediatailor.us-west-2.amazonaws.com/v1/session/1cbfeaaecb69778e0c167d0505a2bc57da2b1754/west_campaign/", + "Tags": {}, + "VideoContentSourceUrl": "https://8343f7014c0ea438.mediapackage.us-west-2.amazonaws.com/out/v1/683f0f2ff7cd43a48902e6dcd5e16dcf/index.m3u8" + }, + { + "AdDecisionServerUrl": "http://your.ads.url", + "CdnConfiguration": {}, + "DashConfiguration": { + "ManifestEndpointPrefix": "https://73511f91d6a24ca2b93f3cf1d7cedd67.mediatailor.us-west-2.amazonaws.com/v1/dash/1cbfeaaecb69778e0c167d0505a2bc57da2b1754/sports_campaign/", + "MpdLocation": "DISABLED", + "OriginManifestType": "MULTI_PERIOD" + }, + "HlsConfiguration": { + "ManifestEndpointPrefix": "https://73511f91d6a24ca2b93f3cf1d7cedd67.mediatailor.us-west-2.amazonaws.com/v1/master/1cbfeaaecb69778e0c167d0505a2bc57da2b1754/sports_campaign/" + }, + "Name": "sports_campaign", + "PlaybackConfigurationArn": "arn:aws:mediatailor:us-west-2:123456789012:playbackConfiguration/sports_campaign", + "PlaybackEndpointPrefix": "https://73511f91d6a24ca2b93f3cf1d7cedd67.mediatailor.us-west-2.amazonaws.com", + "SessionInitializationEndpointPrefix": "https://73511f91d6a24ca2b93f3cf1d7cedd67.mediatailor.us-west-2.amazonaws.com/v1/session/1cbfeaaecb69778e0c167d0505a2bc57da2b1754/sports_campaign/", + "SlateAdUrl": "http://s3.bucket/slate_ad.mp4", + "Tags": {}, + "VideoContentSourceUrl": "https://c4af3793bf76b33c.mediapackage.us-west-2.amazonaws.com/out/v1/1dc6718be36f4f34bb9cd86bc50925e6/sports_endpoint/index.m3u8" + } + ] + } + +For more information, see `Viewing a Configuration`__ in the *AWS Elemental MediaTailor User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediatailor/put-playback-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediatailor/put-playback-configuration.rst new file mode 100755 index 000000000..5e6677068 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/mediatailor/put-playback-configuration.rst @@ -0,0 +1,31 @@ +**To create a configuration** + +The following ``put-playback-configuration`` creates a configuration named ``campaign_short``. :: + + aws mediatailor put-playback-configuration \ + --name campaign_short \ + --ad-decision-server-url http://your.ads.url \ + --video-content-source-url http://video.bucket/index.m3u8 + +Output:: + + { + "AdDecisionServerUrl": "http://your.ads.url", + "CdnConfiguration": {}, + "DashConfiguration": { + "ManifestEndpointPrefix": "https://13484114d38f4383bc0d6a7cb879bd00.mediatailor.us-west-2.amazonaws.com/v1/dash/1cbfeaaecb69778e0c167d0505a2bc57da2b1754/campaign_short/", + "MpdLocation": "EMT_DEFAULT", + "OriginManifestType": "MULTI_PERIOD" + }, + "HlsConfiguration": { + "ManifestEndpointPrefix": "https://13484114d38f4383bc0d6a7cb879bd00.mediatailor.us-west-2.amazonaws.com/v1/master/1cbfeaaecb69778e0c167d0505a2bc57da2b1754/campaign_short/" + }, + "Name": "campaign_short", + "PlaybackConfigurationArn": "arn:aws:mediatailor:us-west-2:123456789012:playbackConfiguration/campaign_short", + "PlaybackEndpointPrefix": "https://13484114d38f4383bc0d6a7cb879bd00.mediatailor.us-west-2.amazonaws.com", + "SessionInitializationEndpointPrefix": "https://13484114d38f4383bc0d6a7cb879bd00.mediatailor.us-west-2.amazonaws.com/v1/session/1cbfeaaecb69778e0c167d0505a2bc57da2b1754/campaign_short/", + "Tags": {}, + "VideoContentSourceUrl": "http://video.bucket/index.m3u8" + } + +For more information, see `Creating a Configuration `__ in the *AWS Elemental MediaTailor User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/copy-image-set.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/copy-image-set.rst new file mode 100644 index 000000000..4d823ac9f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/copy-image-set.rst @@ -0,0 +1,96 @@ +**Example 1: To copy an image set without a destination.** + +The following ``copy-image-set`` example makes a duplicate copy of an image set without a destination. :: + + aws medical-imaging copy-image-set \ + --datastore-id 12345678901234567890123456789012 \ + --source-image-set-id ea92b0d8838c72a3f25d00d13616f87e \ + --copy-image-set-information '{"sourceImageSet": {"latestVersionId": "1" } }' + +Output:: + + { + "destinationImageSetProperties": { + "latestVersionId": "2", + "imageSetWorkflowStatus": "COPYING", + "updatedAt": 1680042357.432, + "imageSetId": "b9a06fef182a5f992842f77f8e0868e5", + "imageSetState": "LOCKED", + "createdAt": 1680042357.432 + }, + "sourceImageSetProperties": { + "latestVersionId": "1", + "imageSetWorkflowStatus": "COPYING_WITH_READ_ONLY_ACCESS", + "updatedAt": 1680042357.432, + "imageSetId": "ea92b0d8838c72a3f25d00d13616f87e", + "imageSetState": "LOCKED", + "createdAt": 1680027126.436 + }, + "datastoreId": "12345678901234567890123456789012" + } + +**Example 2: To copy an image set with a destination.** + +The following ``copy-image-set`` example makes a duplicate copy of an image set with a destination. :: + + aws medical-imaging copy-image-set \ + --datastore-id 12345678901234567890123456789012 \ + --source-image-set-id ea92b0d8838c72a3f25d00d13616f87e \ + --copy-image-set-information '{"sourceImageSet": {"latestVersionId": "1" }, "destinationImageSet": { "imageSetId": "b9a06fef182a5f992842f77f8e0868e5", "latestVersionId": "1"} }' + +Output:: + + { + "destinationImageSetProperties": { + "latestVersionId": "2", + "imageSetWorkflowStatus": "COPYING", + "updatedAt": 1680042505.135, + "imageSetId": "b9a06fef182a5f992842f77f8e0868e5", + "imageSetState": "LOCKED", + "createdAt": 1680042357.432 + }, + "sourceImageSetProperties": { + "latestVersionId": "1", + "imageSetWorkflowStatus": "COPYING_WITH_READ_ONLY_ACCESS", + "updatedAt": 1680042505.135, + "imageSetId": "ea92b0d8838c72a3f25d00d13616f87e", + "imageSetState": "LOCKED", + "createdAt": 1680027126.436 + }, + "datastoreId": "12345678901234567890123456789012" + } + +**Example 3: To copy a subset of instances from a source image set to a destination image set.** + +The following ``copy-image-set`` example copies one DICOM instance from the source image set to the destination image set. +The force parameter is provided to override inconsistencies in the Patient, Study, and Series level attributes. :: + + aws medical-imaging copy-image-set \ + --datastore-id 12345678901234567890123456789012 \ + --source-image-set-id ea92b0d8838c72a3f25d00d13616f87e \ + --copy-image-set-information '{"sourceImageSet": {"latestVersionId": "1","DICOMCopies": {"copiableAttributes": "{\"SchemaVersion\":\"1.1\",\"Study\":{\"Series\":{\"1.3.6.1.4.1.5962.99.1.3673257865.2104868982.1369432891697.3666.0\":{\"Instances\":{\"1.3.6.1.4.1.5962.99.1.3673257865.2104868982.1369432891697.3669.0\":{}}}}}}"}},"destinationImageSet": {"imageSetId": "b9eb50d8ee682eb9fcf4acbf92f62bb7","latestVersionId": "1"}}' \ + --force + +Output:: + + { + "destinationImageSetProperties": { + "latestVersionId": "2", + "imageSetWorkflowStatus": "COPYING", + "updatedAt": 1680042505.135, + "imageSetId": "b9eb50d8ee682eb9fcf4acbf92f62bb7", + "imageSetState": "LOCKED", + "createdAt": 1680042357.432 + }, + "sourceImageSetProperties": { + "latestVersionId": "1", + "imageSetWorkflowStatus": "COPYING_WITH_READ_ONLY_ACCESS", + "updatedAt": 1680042505.135, + "imageSetId": "ea92b0d8838c72a3f25d00d13616f87e", + "imageSetState": "LOCKED", + "createdAt": 1680027126.436 + }, + "datastoreId": "12345678901234567890123456789012" + } + +For more information, see `Copying an image set `__ in the *AWS HealthImaging Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/create-datastore.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/create-datastore.rst new file mode 100644 index 000000000..9f1f7884a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/create-datastore.rst @@ -0,0 +1,32 @@ +**Example 1: To create a data store** + +The following ``create-datastore`` code example creates a data store with the name ``my-datastore``. +When you create a datastore without specifying a ``--lossless-storage-format``, AWS HealthImaging defaults to HTJ2K (High Throughput JPEG 2000). :: + + aws medical-imaging create-datastore \ + --datastore-name "my-datastore" + +Output:: + + { + "datastoreId": "12345678901234567890123456789012", + "datastoreStatus": "CREATING" + } + +**Example 2: To create a data store with JPEG 2000 Lossless storage format** + +A data store configured with JPEG 2000 Lossless storage format will transcode and persist lossless image frames in JPEG 2000 format. Image frames can then be retrieved in +JPEG 2000 Lossless without transcoding. The following ``create-datastore`` code example creates a data store configured for JPEG 2000 Lossless storage format with the name ``my-datastore``. :: + + aws medical-imaging create-datastore \ + --datastore-name "my-datastore" \ + --lossless-storage-format JPEG_2000_LOSSLESS + +Output:: + + { + "datastoreId": "12345678901234567890123456789012", + "datastoreStatus": "CREATING" + } + +For more information, see `Creating a data store `__ in the *AWS HealthImaging Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/delete-datastore.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/delete-datastore.rst new file mode 100644 index 000000000..f7f381331 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/delete-datastore.rst @@ -0,0 +1,15 @@ +**To delete a data store** + +The following ``delete-datastore`` code example deletes a data store. :: + + aws medical-imaging delete-datastore \ + --datastore-id "12345678901234567890123456789012" + +Output:: + + { + "datastoreId": "12345678901234567890123456789012", + "datastoreStatus": "DELETING" + } + +For more information, see `Deleting a data store `__ in the *AWS HealthImaging Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/delete-image-set.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/delete-image-set.rst new file mode 100644 index 000000000..6d0affc40 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/delete-image-set.rst @@ -0,0 +1,18 @@ +**To delete an image set** + +The following ``delete-image-set`` code example deletes an image set. :: + + aws medical-imaging delete-image-set \ + --datastore-id 12345678901234567890123456789012 \ + --image-set-id ea92b0d8838c72a3f25d00d13616f87e + +Output:: + + { + "imageSetWorkflowStatus": "DELETING", + "imageSetId": "ea92b0d8838c72a3f25d00d13616f87e", + "imageSetState": "LOCKED", + "datastoreId": "12345678901234567890123456789012" + } + +For more information, see `Deleting an image set `__ in the *AWS HealthImaging Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/get-datastore.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/get-datastore.rst new file mode 100644 index 000000000..6c3d924c4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/get-datastore.rst @@ -0,0 +1,45 @@ +**Example 1: To get a data store's properties** + +The following ``get-datastore`` code example gets a data store's properties. :: + + aws medical-imaging get-datastore \ + --datastore-id 12345678901234567890123456789012 + + +Output:: + + { + "datastoreProperties": { + "datastoreId": "12345678901234567890123456789012", + "datastoreName": "TestDatastore123", + "datastoreStatus": "ACTIVE", + "losslessStorageFormat": "HTJ2K" + "datastoreArn": "arn:aws:medical-imaging:us-east-1:123456789012:datastore/12345678901234567890123456789012", + "createdAt": "2022-11-15T23:33:09.643000+00:00", + "updatedAt": "2022-11-15T23:33:09.643000+00:00" + } + } + +**Example 2: To get data store's properties configured for JPEG2000** + +The following ``get-datastore`` code example gets a data store's properties for a data store configured for JPEG 2000 Lossless storage format. :: + + aws medical-imaging get-datastore \ + --datastore-id 12345678901234567890123456789012 + + +Output:: + + { + "datastoreProperties": { + "datastoreId": "12345678901234567890123456789012", + "datastoreName": "TestDatastore123", + "datastoreStatus": "ACTIVE", + "losslessStorageFormat": "JPEG_2000_LOSSLESS", + "datastoreArn": "arn:aws:medical-imaging:us-east-1:123456789012:datastore/12345678901234567890123456789012", + "createdAt": "2022-11-15T23:33:09.643000+00:00", + "updatedAt": "2022-11-15T23:33:09.643000+00:00" + } + } + +For more information, see `Getting data store properties `__ in the *AWS HealthImaging Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/get-dicom-import-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/get-dicom-import-job.rst new file mode 100644 index 000000000..80661a348 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/get-dicom-import-job.rst @@ -0,0 +1,26 @@ +**To get a dicom import job's properties** + +The following ``get-dicom-import-job`` code example gets a dicom import job's properties. :: + + aws medical-imaging get-dicom-import-job \ + --datastore-id "12345678901234567890123456789012" \ + --job-id "09876543210987654321098765432109" + + +Output:: + + { + "jobProperties": { + "jobId": "09876543210987654321098765432109", + "jobName": "my-job", + "jobStatus": "COMPLETED", + "datastoreId": "12345678901234567890123456789012", + "dataAccessRoleArn": "arn:aws:iam::123456789012:role/ImportJobDataAccessRole", + "endedAt": "2022-08-12T11:29:42.285000+00:00", + "submittedAt": "2022-08-12T11:28:11.152000+00:00", + "inputS3Uri": "s3://medical-imaging-dicom-input/dicom_input/", + "outputS3Uri": "s3://medical-imaging-output/job_output/12345678901234567890123456789012-DicomImport-09876543210987654321098765432109/" + } + } + +For more information, see `Getting import job properties `__ in the *AWS HealthImaging Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/get-image-frame.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/get-image-frame.rst new file mode 100644 index 000000000..e4a1d1652 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/get-image-frame.rst @@ -0,0 +1,16 @@ +**To get image set pixel data** + +The following ``get-image-frame`` code example gets an image frame. :: + + aws medical-imaging get-image-frame \ + --datastore-id "12345678901234567890123456789012" \ + --image-set-id "98765412345612345678907890789012" \ + --image-frame-information imageFrameId=3abf5d5d7ae72f80a0ec81b2c0de3ef4 \ + imageframe.jph + + +Note: +This code example does not include output because the GetImageFrame action returns a stream of pixel data to the imageframe.jph file. For information about decoding and viewing image frames, see HTJ2K decoding libraries. + + +For more information, see `Getting image set pixel data `__ in the *AWS HealthImaging Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/get-image-set-metadata.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/get-image-set-metadata.rst new file mode 100644 index 000000000..a35c6747e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/get-image-set-metadata.rst @@ -0,0 +1,42 @@ +**Example 1: To get image set metadata without version** + +The following ``get-image-set-metadata`` code example gets metadata for an image set without specifying a version. + +Note: ``outfile`` is a required parameter :: + + aws medical-imaging get-image-set-metadata \ + --datastore-id 12345678901234567890123456789012 \ + --image-set-id ea92b0d8838c72a3f25d00d13616f87e \ + studymetadata.json.gz + +The returned metadata is compressed with gzip and stored in the studymetadata.json.gz file. To view the contents of the returned JSON object, you must first decompress it. + +Output:: + + { + "contentType": "application/json", + "contentEncoding": "gzip" + } + +**Example 2: To get image set metadata with version** + +The following ``get-image-set-metadata`` code example gets metadata for an image set with a specified version. + +Note: ``outfile`` is a required parameter :: + + aws medical-imaging get-image-set-metadata \ + --datastore-id 12345678901234567890123456789012 \ + --image-set-id ea92b0d8838c72a3f25d00d13616f87e \ + --version-id 1 \ + studymetadata.json.gz + +The returned metadata is compressed with gzip and stored in the studymetadata.json.gz file. To view the contents of the returned JSON object, you must first decompress it. + +Output:: + + { + "contentType": "application/json", + "contentEncoding": "gzip" + } + +For more information, see `Getting image set metadata `__ in the *AWS HealthImaging Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/get-image-set.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/get-image-set.rst new file mode 100644 index 000000000..ad1ee5c5f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/get-image-set.rst @@ -0,0 +1,23 @@ +**To get image set properties** + +The following ``get-image-set`` code example gets the properties for an image set. :: + + aws medical-imaging get-image-set \ + --datastore-id 12345678901234567890123456789012 \ + --image-set-id 18f88ac7870584f58d56256646b4d92b \ + --version-id 1 + +Output:: + + { + "versionId": "1", + "imageSetWorkflowStatus": "COPIED", + "updatedAt": 1680027253.471, + "imageSetId": "18f88ac7870584f58d56256646b4d92b", + "imageSetState": "ACTIVE", + "createdAt": 1679592510.753, + "datastoreId": "12345678901234567890123456789012" + } + + +For more information, see `Getting image set properties `__ in the *AWS HealthImaging Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/list-datastores.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/list-datastores.rst new file mode 100644 index 000000000..306d79c08 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/list-datastores.rst @@ -0,0 +1,23 @@ +**To list data stores** + +The following ``list-datastores`` code example lists available data stores. :: + + aws medical-imaging list-datastores + +Output:: + + { + "datastoreSummaries": [ + { + "datastoreId": "12345678901234567890123456789012", + "datastoreName": "TestDatastore123", + "datastoreStatus": "ACTIVE", + "datastoreArn": "arn:aws:medical-imaging:us-east-1:123456789012:datastore/12345678901234567890123456789012", + "createdAt": "2022-11-15T23:33:09.643000+00:00", + "updatedAt": "2022-11-15T23:33:09.643000+00:00" + } + ] + } + + +For more information, see `Listing data stores `__ in the *AWS HealthImaging Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/list-dicom-import-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/list-dicom-import-jobs.rst new file mode 100644 index 000000000..445bff823 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/list-dicom-import-jobs.rst @@ -0,0 +1,24 @@ +**To list dicom import jobs** + +The following ``list-dicom-import-jobs`` code example lists dicom import jobs. :: + + aws medical-imaging list-dicom-import-jobs \ + --datastore-id "12345678901234567890123456789012" + +Output:: + + { + "jobSummaries": [ + { + "jobId": "09876543210987654321098765432109", + "jobName": "my-job", + "jobStatus": "COMPLETED", + "datastoreId": "12345678901234567890123456789012", + "dataAccessRoleArn": "arn:aws:iam::123456789012:role/ImportJobDataAccessRole", + "endedAt": "2022-08-12T11:21:56.504000+00:00", + "submittedAt": "2022-08-12T11:20:21.734000+00:00" + } + ] + } + +For more information, see `Listing import jobs `__ in the *AWS HealthImaging Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/list-image-set-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/list-image-set-versions.rst new file mode 100644 index 000000000..10c6f5b22 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/list-image-set-versions.rst @@ -0,0 +1,48 @@ +**To list image set versions** + +The following ``list-image-set-versions`` code example lists the version history for an image set. :: + + aws medical-imaging list-image-set-versions \ + --datastore-id 12345678901234567890123456789012 \ + --image-set-id ea92b0d8838c72a3f25d00d13616f87e + +Output:: + + { + "imageSetPropertiesList": [ + { + "ImageSetWorkflowStatus": "UPDATED", + "versionId": "4", + "updatedAt": 1680029436.304, + "imageSetId": "ea92b0d8838c72a3f25d00d13616f87e", + "imageSetState": "ACTIVE", + "createdAt": 1680027126.436 + }, + { + "ImageSetWorkflowStatus": "UPDATED", + "versionId": "3", + "updatedAt": 1680029163.325, + "imageSetId": "ea92b0d8838c72a3f25d00d13616f87e", + "imageSetState": "ACTIVE", + "createdAt": 1680027126.436 + }, + { + "ImageSetWorkflowStatus": "COPY_FAILED", + "versionId": "2", + "updatedAt": 1680027455.944, + "imageSetId": "ea92b0d8838c72a3f25d00d13616f87e", + "imageSetState": "ACTIVE", + "message": "INVALID_REQUEST: Series of SourceImageSet and DestinationImageSet don't match.", + "createdAt": 1680027126.436 + }, + { + "imageSetId": "ea92b0d8838c72a3f25d00d13616f87e", + "imageSetState": "ACTIVE", + "versionId": "1", + "ImageSetWorkflowStatus": "COPIED", + "createdAt": 1680027126.436 + } + ] + } + +For more information, see `Listing image set versions `__ in the *AWS HealthImaging Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/list-tags-for-resource.rst new file mode 100644 index 000000000..697d3d9a3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/list-tags-for-resource.rst @@ -0,0 +1,32 @@ +**Example 1: To list resource tags for a data store** + +The following ``list-tags-for-resource`` code example lists tags for a data store. :: + + aws medical-imaging list-tags-for-resource \ + --resource-arn "arn:aws:medical-imaging:us-east-1:123456789012:datastore/12345678901234567890123456789012" + +Output:: + + { + "tags":{ + "Deployment":"Development" + } + } + +**Example 2: To list resource tags for an image set** + +The following ``list-tags-for-resource`` code example lists tags for an image set. :: + + + aws medical-imaging list-tags-for-resource \ + --resource-arn "arn:aws:medical-imaging:us-east-1:123456789012:datastore/12345678901234567890123456789012/imageset/18f88ac7870584f58d56256646b4d92b" + +Output:: + + { + "tags":{ + "Deployment":"Development" + } + } + +For more information, see `Tagging resources with AWS HealthImaging `__ in the *AWS HealthImaging Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/search-image-sets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/search-image-sets.rst new file mode 100644 index 000000000..4502f8949 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/search-image-sets.rst @@ -0,0 +1,205 @@ +**Example 1: To search image sets with an EQUAL operator** + +The following ``search-image-sets`` code example uses the EQUAL operator to search image sets based on a specific value. :: + + aws medical-imaging search-image-sets \ + --datastore-id 12345678901234567890123456789012 \ + --search-criteria file://search-criteria.json + +Contents of ``search-criteria.json`` :: + + { + "filters": [{ + "values": [{"DICOMPatientId" : "SUBJECT08701"}], + "operator": "EQUAL" + }] + } + +Output:: + + { + "imageSetsMetadataSummaries": [{ + "imageSetId": "09876543210987654321098765432109", + "createdAt": "2022-12-06T21:40:59.429000+00:00", + "version": 1, + "DICOMTags": { + "DICOMStudyId": "2011201407", + "DICOMStudyDate": "19991122", + "DICOMPatientSex": "F", + "DICOMStudyInstanceUID": "1.2.840.99999999.84710745.943275268089", + "DICOMPatientBirthDate": "19201120", + "DICOMStudyDescription": "UNKNOWN", + "DICOMPatientId": "SUBJECT08701", + "DICOMPatientName": "Melissa844 Huel628", + "DICOMNumberOfStudyRelatedInstances": 1, + "DICOMStudyTime": "140728", + "DICOMNumberOfStudyRelatedSeries": 1 + }, + "updatedAt": "2022-12-06T21:40:59.429000+00:00" + }] + } + +**Example 2: To search image sets with a BETWEEN operator using DICOMStudyDate and DICOMStudyTime** + +The following ``search-image-sets`` code example searches for image sets with DICOM Studies generated between January 1, 1990 (12:00 AM) and January 1, 2023 (12:00 AM). + +Note: +DICOMStudyTime is optional. If it is not present, 12:00 AM (start of the day) is the time value for the dates provided for filtering. :: + + aws medical-imaging search-image-sets \ + --datastore-id 12345678901234567890123456789012 \ + --search-criteria file://search-criteria.json + +Contents of ``search-criteria.json`` :: + + { + "filters": [{ + "values": [{ + "DICOMStudyDateAndTime": { + "DICOMStudyDate": "19900101", + "DICOMStudyTime": "000000" + } + }, + { + "DICOMStudyDateAndTime": { + "DICOMStudyDate": "20230101", + "DICOMStudyTime": "000000" + } + }], + "operator": "BETWEEN" + }] + } + +Output:: + + { + "imageSetsMetadataSummaries": [{ + "imageSetId": "09876543210987654321098765432109", + "createdAt": "2022-12-06T21:40:59.429000+00:00", + "version": 1, + "DICOMTags": { + "DICOMStudyId": "2011201407", + "DICOMStudyDate": "19991122", + "DICOMPatientSex": "F", + "DICOMStudyInstanceUID": "1.2.840.99999999.84710745.943275268089", + "DICOMPatientBirthDate": "19201120", + "DICOMStudyDescription": "UNKNOWN", + "DICOMPatientId": "SUBJECT08701", + "DICOMPatientName": "Melissa844 Huel628", + "DICOMNumberOfStudyRelatedInstances": 1, + "DICOMStudyTime": "140728", + "DICOMNumberOfStudyRelatedSeries": 1 + }, + "updatedAt": "2022-12-06T21:40:59.429000+00:00" + }] + } + +**Example 3: To search image sets with a BETWEEN operator using createdAt (time studies were previously persisted)** + +The following ``search-image-sets`` code example searches for image sets with DICOM Studies persisted in HealthImaging between the time ranges in UTC time zone. + +Note: +Provide createdAt in example format ("1985-04-12T23:20:50.52Z"). :: + + aws medical-imaging search-image-sets \ + --datastore-id 12345678901234567890123456789012 \ + --search-criteria file://search-criteria.json + + +Contents of ``search-criteria.json`` :: + + { + "filters": [{ + "values": [{ + "createdAt": "1985-04-12T23:20:50.52Z" + }, + { + "createdAt": "2022-04-12T23:20:50.52Z" + }], + "operator": "BETWEEN" + }] + } + +Output:: + + { + "imageSetsMetadataSummaries": [{ + "imageSetId": "09876543210987654321098765432109", + "createdAt": "2022-12-06T21:40:59.429000+00:00", + "version": 1, + "DICOMTags": { + "DICOMStudyId": "2011201407", + "DICOMStudyDate": "19991122", + "DICOMPatientSex": "F", + "DICOMStudyInstanceUID": "1.2.840.99999999.84710745.943275268089", + "DICOMPatientBirthDate": "19201120", + "DICOMStudyDescription": "UNKNOWN", + "DICOMPatientId": "SUBJECT08701", + "DICOMPatientName": "Melissa844 Huel628", + "DICOMNumberOfStudyRelatedInstances": 1, + "DICOMStudyTime": "140728", + "DICOMNumberOfStudyRelatedSeries": 1 + }, + "lastUpdatedAt": "2022-12-06T21:40:59.429000+00:00" + }] + } + +**Example 4: To search image sets with an EQUAL operator on DICOMSeriesInstanceUID and BETWEEN on updatedAt and sort response in ASC order on updatedAt field** + +The following ``search-image-sets`` code example searches for image sets with an EQUAL operator on DICOMSeriesInstanceUID and BETWEEN on updatedAt and sort response in ASC order on updatedAt field. + +Note: +Provide updatedAt in example format ("1985-04-12T23:20:50.52Z"). :: + + aws medical-imaging search-image-sets \ + --datastore-id 12345678901234567890123456789012 \ + --search-criteria file://search-criteria.json + + +Contents of ``search-criteria.json`` :: + + { + "filters": [{ + "values": [{ + "updatedAt": "2024-03-11T15:00:05.074000-07:00" + }, { + "updatedAt": "2024-03-11T16:00:05.074000-07:00" + }], + "operator": "BETWEEN" + }, { + "values": [{ + "DICOMSeriesInstanceUID": "1.2.840.99999999.84710745.943275268089" + }], + "operator": "EQUAL" + }], + "sort": { + "sortField": "updatedAt", + "sortOrder": "ASC" + } + } + +Output:: + + { + "imageSetsMetadataSummaries": [{ + "imageSetId": "09876543210987654321098765432109", + "createdAt": "2022-12-06T21:40:59.429000+00:00", + "version": 1, + "DICOMTags": { + "DICOMStudyId": "2011201407", + "DICOMStudyDate": "19991122", + "DICOMPatientSex": "F", + "DICOMStudyInstanceUID": "1.2.840.99999999.84710745.943275268089", + "DICOMPatientBirthDate": "19201120", + "DICOMStudyDescription": "UNKNOWN", + "DICOMPatientId": "SUBJECT08701", + "DICOMPatientName": "Melissa844 Huel628", + "DICOMNumberOfStudyRelatedInstances": 1, + "DICOMStudyTime": "140728", + "DICOMNumberOfStudyRelatedSeries": 1 + }, + "lastUpdatedAt": "2022-12-06T21:40:59.429000+00:00" + }] + } + +For more information, see `Searching image sets `__ in the *AWS HealthImaging Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/start-dicom-import-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/start-dicom-import-job.rst new file mode 100644 index 000000000..d93e27d2b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/start-dicom-import-job.rst @@ -0,0 +1,21 @@ +**To start a dicom import job** + +The following ``start-dicom-import-job`` code example starts a dicom import job. :: + + aws medical-imaging start-dicom-import-job \ + --job-name "my-job" \ + --datastore-id "12345678901234567890123456789012" \ + --input-s3-uri "s3://medical-imaging-dicom-input/dicom_input/" \ + --output-s3-uri "s3://medical-imaging-output/job_output/" \ + --data-access-role-arn "arn:aws:iam::123456789012:role/ImportJobDataAccessRole" + +Output:: + + { + "datastoreId": "12345678901234567890123456789012", + "jobId": "09876543210987654321098765432109", + "jobStatus": "SUBMITTED", + "submittedAt": "2022-08-12T11:28:11.152000+00:00" + } + +For more information, see `Starting an import job `__ in the *AWS HealthImaging Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/tag-resource.rst new file mode 100644 index 000000000..ec069cd4d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/tag-resource.rst @@ -0,0 +1,22 @@ +**Example 1: To tag a data store** + +The following ``tag-resource`` code examples tags a data store. :: + + aws medical-imaging tag-resource \ + --resource-arn "arn:aws:medical-imaging:us-east-1:123456789012:datastore/12345678901234567890123456789012" \ + --tags '{"Deployment":"Development"}' + +This command produces no output. + +**Example 2: To tag an image set** + +The following ``tag-resource`` code examples tags an image set. :: + + aws medical-imaging tag-resource \ + --resource-arn "arn:aws:medical-imaging:us-east-1:123456789012:datastore/12345678901234567890123456789012/imageset/18f88ac7870584f58d56256646b4d92b" \ + --tags '{"Deployment":"Development"}' + +This command produces no output. + +For more information, see `Tagging resources with AWS HealthImaging `__ in the *AWS HealthImaging Developer Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/untag-resource.rst new file mode 100644 index 000000000..0910f18cc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/untag-resource.rst @@ -0,0 +1,24 @@ +**Example 1: To untag a data store** + +The following ``untag-resource`` code example untags a data store. :: + + aws medical-imaging untag-resource \ + --resource-arn "arn:aws:medical-imaging:us-east-1:123456789012:datastore/12345678901234567890123456789012" \ + --tag-keys '["Deployment"]' + + +This command produces no output. + +**Example 2: To untag an image set** + +The following ``untag-resource`` code example untags an image set. :: + + aws medical-imaging untag-resource \ + --resource-arn "arn:aws:medical-imaging:us-east-1:123456789012:datastore/12345678901234567890123456789012/imageset/18f88ac7870584f58d56256646b4d92b" \ + --tag-keys '["Deployment"]' + + +This command produces no output. + +For more information, see `Tagging resources with AWS HealthImaging `__ in the *AWS HealthImaging Developer Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/update-image-set-metadata.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/update-image-set-metadata.rst new file mode 100644 index 000000000..64d8203b3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/medical-imaging/update-image-set-metadata.rst @@ -0,0 +1,216 @@ +**Example 1: To insert or update an attribute in image set metadata** + +The following ``update-image-set-metadata`` example inserts or updates an attribute in image set metadata. :: + + aws medical-imaging update-image-set-metadata \ + --datastore-id 12345678901234567890123456789012 \ + --image-set-id ea92b0d8838c72a3f25d00d13616f87e \ + --latest-version-id 1 \ + --cli-binary-format raw-in-base64-out \ + --update-image-set-metadata-updates file://metadata-updates.json + +Contents of ``metadata-updates.json`` :: + + { + "DICOMUpdates": { + "updatableAttributes": "{\"SchemaVersion\":1.1,\"Patient\":{\"DICOM\":{\"PatientName\":\"MX^MX\"}}}" + } + } + +Output:: + + { + "latestVersionId": "2", + "imageSetWorkflowStatus": "UPDATING", + "updatedAt": 1680042257.908, + "imageSetId": "ea92b0d8838c72a3f25d00d13616f87e", + "imageSetState": "LOCKED", + "createdAt": 1680027126.436, + "datastoreId": "12345678901234567890123456789012" + } + +**Example 2: To remove an attribute from image set metadata** + +The following ``update-image-set-metadata`` example removes an attribute from image set metadata. :: + + aws medical-imaging update-image-set-metadata \ + --datastore-id 12345678901234567890123456789012 \ + --image-set-id ea92b0d8838c72a3f25d00d13616f87e \ + --latest-version-id 1 \ + --cli-binary-format raw-in-base64-out \ + --update-image-set-metadata-updates file://metadata-updates.json + +Contents of ``metadata-updates.json`` :: + + { + "DICOMUpdates": { + "removableAttributes": "{\"SchemaVersion\":1.1,\"Study\":{\"DICOM\":{\"StudyDescription\":\"CHEST\"}}}" + } + } + +Output:: + + { + "latestVersionId": "2", + "imageSetWorkflowStatus": "UPDATING", + "updatedAt": 1680042257.908, + "imageSetId": "ea92b0d8838c72a3f25d00d13616f87e", + "imageSetState": "LOCKED", + "createdAt": 1680027126.436, + "datastoreId": "12345678901234567890123456789012" + } + +**Example 3: To remove an instance from image set metadata** + +The following ``update-image-set-metadata`` example removes an instance from image set metadata. :: + + aws medical-imaging update-image-set-metadata \ + --datastore-id 12345678901234567890123456789012 \ + --image-set-id ea92b0d8838c72a3f25d00d13616f87e \ + --latest-version-id 1 \ + --cli-binary-format raw-in-base64-out \ + --update-image-set-metadata-updates file://metadata-updates.json \ + --force + +Contents of ``metadata-updates.json`` :: + + { + "DICOMUpdates": { + "removableAttributes": "{\"SchemaVersion\": 1.1,\"Study\": {\"Series\": {\"1.1.1.1.1.1.12345.123456789012.123.12345678901234.1\": {\"Instances\": {\"1.1.1.1.1.1.12345.123456789012.123.12345678901234.1\": {}}}}}}" + } + } + +Output:: + + { + "latestVersionId": "2", + "imageSetWorkflowStatus": "UPDATING", + "updatedAt": 1680042257.908, + "imageSetId": "ea92b0d8838c72a3f25d00d13616f87e", + "imageSetState": "LOCKED", + "createdAt": 1680027126.436, + "datastoreId": "12345678901234567890123456789012" + } + + +**Example 4: To revert an image set to a previous version** + +The following ``update-image-set-metadata`` example shows how to revert an image set to a prior version. CopyImageSet and UpdateImageSetMetadata actions create new versions of image sets. :: + + aws medical-imaging update-image-set-metadata \ + --datastore-id 12345678901234567890123456789012 \ + --image-set-id 53d5fdb05ca4d46ac7ca64b06545c66e \ + --latest-version-id 3 \ + --cli-binary-format raw-in-base64-out \ + --update-image-set-metadata-updates '{"revertToVersionId": "1"}' + +Output:: + + { + "datastoreId": "12345678901234567890123456789012", + "imageSetId": "53d5fdb05ca4d46ac7ca64b06545c66e", + "latestVersionId": "4", + "imageSetState": "LOCKED", + "imageSetWorkflowStatus": "UPDATING", + "createdAt": 1680027126.436, + "updatedAt": 1680042257.908 + } + +**Example 5: To add a private DICOM data element to an instance** + +The following ``update-image-set-metadata`` example shows how to add a private element to a specified instance within an image set. The DICOM standard permits private data elements for communication of information that cannot be contained in standard data elements. You can create, update, and delete private data elements with the +UpdateImageSetMetadata action. :: + + aws medical-imaging update-image-set-metadata \ + --datastore-id 12345678901234567890123456789012 \ + --image-set-id 53d5fdb05ca4d46ac7ca64b06545c66e \ + --latest-version-id 1 \ + --cli-binary-format raw-in-base64-out \ + --force \ + --update-image-set-metadata-updates file://metadata-updates.json + +Contents of ``metadata-updates.json`` :: + + { + "DICOMUpdates": { + "updatableAttributes": "{\"SchemaVersion\": 1.1,\"Study\": {\"Series\": {\"1.1.1.1.1.1.12345.123456789012.123.12345678901234.1\": {\"Instances\": {\"1.1.1.1.1.1.12345.123456789012.123.12345678901234.1\": {\"DICOM\": {\"001910F9\": \"97\"},\"DICOMVRs\": {\"001910F9\": \"DS\"}}}}}}}" + } + } + +Output:: + + { + "latestVersionId": "2", + "imageSetWorkflowStatus": "UPDATING", + "updatedAt": 1680042257.908, + "imageSetId": "53d5fdb05ca4d46ac7ca64b06545c66e", + "imageSetState": "LOCKED", + "createdAt": 1680027126.436, + "datastoreId": "12345678901234567890123456789012" + } + +**Example 6: To update a private DICOM data element to an instance** + +The following ``update-image-set-metadata`` example shows how to update the value of a private data element belonging to an instance within an image set. :: + + aws medical-imaging update-image-set-metadata \ + --datastore-id 12345678901234567890123456789012 \ + --image-set-id 53d5fdb05ca4d46ac7ca64b06545c66e \ + --latest-version-id 1 \ + --cli-binary-format raw-in-base64-out \ + --force \ + --update-image-set-metadata-updates file://metadata-updates.json + +Contents of ``metadata-updates.json`` :: + + { + "DICOMUpdates": { + "updatableAttributes": "{\"SchemaVersion\": 1.1,\"Study\": {\"Series\": {\"1.1.1.1.1.1.12345.123456789012.123.12345678901234.1\": {\"Instances\": {\"1.1.1.1.1.1.12345.123456789012.123.12345678901234.1\": {\"DICOM\": {\"00091001\": \"GE_GENESIS_DD\"}}}}}}}" + } + } + +Output:: + + { + "latestVersionId": "2", + "imageSetWorkflowStatus": "UPDATING", + "updatedAt": 1680042257.908, + "imageSetId": "53d5fdb05ca4d46ac7ca64b06545c66e", + "imageSetState": "LOCKED", + "createdAt": 1680027126.436, + "datastoreId": "12345678901234567890123456789012" + } + +**Example 7: To update a SOPInstanceUID with the force parameter** + +The following ``update-image-set-metadata`` example shows how to update a SOPInstanceUID, using the force parameter to override the DICOM metadata constraints. :: + + aws medical-imaging update-image-set-metadata \ + --datastore-id 12345678901234567890123456789012 \ + --image-set-id 53d5fdb05ca4d46ac7ca64b06545c66e \ + --latest-version-id 1 \ + --cli-binary-format raw-in-base64-out \ + --force \ + --update-image-set-metadata-updates file://metadata-updates.json + +Contents of ``metadata-updates.json`` :: + + { + "DICOMUpdates": { + "updatableAttributes": "{\"SchemaVersion\":1.1,\"Study\":{\"Series\":{\"1.3.6.1.4.1.5962.99.1.3633258862.2104868982.1369432891697.3656.0\":{\"Instances\":{\"1.3.6.1.4.1.5962.99.1.3633258862.2104868982.1369432891697.3659.0\":{\"DICOM\":{\"SOPInstanceUID\":\"1.3.6.1.4.1.5962.99.1.3633258862.2104868982.1369432891697.3659.9\"}}}}}}}" + } + } + +Output:: + + { + "latestVersionId": "2", + "imageSetWorkflowStatus": "UPDATING", + "updatedAt": 1680042257.908, + "imageSetId": "53d5fdb05ca4d46ac7ca64b06545c66e", + "imageSetState": "LOCKED", + "createdAt": 1680027126.436, + "datastoreId": "12345678901234567890123456789012" + } + +For more information, see `Updating image set metadata `__ in the *AWS HealthImaging Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/copy-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/copy-snapshot.rst new file mode 100644 index 000000000..23382df9c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/copy-snapshot.rst @@ -0,0 +1,34 @@ +**To copy a snapshot** + +The following ``copy-snapshot`` example creates a copy of a snapshot. :: + + aws memorydb copy-snapshot \ + --source-snapshot-name my-cluster-snapshot \ + --target-snapshot-name my-cluster-snapshot-copy + +Output :: + + { + "Snapshot": { + "Name": "my-cluster-snapshot-copy", + "Status": "creating", + "Source": "manual", + "ARN": "arn:aws:memorydb:us-east-1:491658xxxxxx:snapshot/my-cluster-snapshot-copy", + "ClusterConfiguration": { + "Name": "my-cluster", + "Description": " ", + "NodeType": "db.r6g.large", + "EngineVersion": "6.2", + "MaintenanceWindow": "wed:03:00-wed:04:00", + "Port": 6379, + "ParameterGroupName": "default.memorydb-redis6", + "SubnetGroupName": "my-sg", + "VpcId": "vpc-xx2574fc", + "SnapshotRetentionLimit": 0, + "SnapshotWindow": "04:30-05:30", + "NumShards": 2 + } + } + } + +For more information, see `Copying a snapshot `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/create-acl.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/create-acl.rst new file mode 100644 index 000000000..c68c68567 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/create-acl.rst @@ -0,0 +1,24 @@ +**To create an ACL** + +The following ``create-acl`` example creates a new Access control list. :: + + aws memorydb create-acl \ + --acl-name "new-acl-1" \ + --user-names "my-user" + +Output:: + + { + "ACL": { + "Name": "new-acl-1", + "Status": "creating", + "UserNames": [ + "my-user" + ], + "MinimumEngineVersion": "6.2", + "Clusters": [], + "ARN": "arn:aws:memorydb:us-east-1:491658xxxxxx:acl/new-acl-1" + } + } + +For more information, see `Authenticating users with Access Control Lists `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/create-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/create-cluster.rst new file mode 100644 index 000000000..be7a0ba97 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/create-cluster.rst @@ -0,0 +1,38 @@ +**To create a cluster** + +The following ``create-cluster`` example creates a new cluster. :: + + aws memorydb create-cluster \ + --cluster-name my-new-cluster \ + --node-type db.r6g.large \ + --acl-name my-acl \ + --subnet-group my-sg + +Output:: + + { + "Cluster": { + "Name": "my-new-cluster", + "Status": "creating", + "NumberOfShards": 1, + "AvailabilityMode": "MultiAZ", + "ClusterEndpoint": { + "Port": 6379 + }, + "NodeType": "db.r6g.large", + "EngineVersion": "6.2", + "EnginePatchVersion": "6.2.6", + "ParameterGroupName": "default.memorydb-redis6", + "ParameterGroupStatus": "in-sync", + "SubnetGroupName": "my-sg", + "TLSEnabled": true, + "ARN": "arn:aws:memorydb:us-east-1:49165xxxxxx:cluster/my-new-cluster", + "SnapshotRetentionLimit": 0, + "MaintenanceWindow": "sat:10:00-sat:11:00", + "SnapshotWindow": "07:30-08:30", + "ACLName": "my-acl", + "AutoMinorVersionUpgrade": true + } + } + +For more information, see `Managing Clusters `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/create-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/create-parameter-group.rst new file mode 100644 index 000000000..26596cea9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/create-parameter-group.rst @@ -0,0 +1,21 @@ +**To create a parameter group** + +The following ``create-parameter-group`` example creates a parameter group. :: + + aws memorydb create-parameter-group \ + --parameter-group-name myRedis6x \ + --family memorydb_redis6 \ + --description "my-parameter-group" + +Output:: + + { + "ParameterGroup": { + "Name": "myredis6x", + "Family": "memorydb_redis6", + "Description": "my-parameter-group", + "ARN": "arn:aws:memorydb:us-east-1:49165xxxxxx:parametergroup/myredis6x" + } + } + +For more information, see `Creating a parameter group `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/create-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/create-snapshot.rst new file mode 100644 index 000000000..0ca646455 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/create-snapshot.rst @@ -0,0 +1,34 @@ +**To create a snapshot** + +The following ``create-snapshot`` example creates a snapshot. :: + + aws memorydb create-snapshot \ + --cluster-name my-cluster \ + --snapshot-name my-cluster-snapshot + +Output:: + + { + "Snapshot": { + "Name": "my-cluster-snapshot1", + "Status": "creating", + "Source": "manual", + "ARN": "arn:aws:memorydb:us-east-1:49165xxxxxx:snapshot/my-cluster-snapshot", + "ClusterConfiguration": { + "Name": "my-cluster", + "Description": "", + "NodeType": "db.r6g.large", + "EngineVersion": "6.2", + "MaintenanceWindow": "wed:03:00-wed:04:00", + "Port": 6379, + "ParameterGroupName": "default.memorydb-redis6", + "SubnetGroupName": "my-sg", + "VpcId": "vpc-862xxxxc", + "SnapshotRetentionLimit": 0, + "SnapshotWindow": "04:30-05:30", + "NumShards": 2 + } + } + } + +For more information, see `Making manual snapshots `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/create-subnet-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/create-subnet-group.rst new file mode 100644 index 000000000..fd3e87a46 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/create-subnet-group.rst @@ -0,0 +1,29 @@ +**To create a subnet group** + +The following ``create-subnet-group`` example creates a subnet group. :: + + aws memorydb create-subnet-group \ + --subnet-group-name mysubnetgroup \ + --description "my subnet group" \ + --subnet-ids subnet-5623xxxx + +Output:: + + { + "SubnetGroup": { + "Name": "mysubnetgroup", + "Description": "my subnet group", + "VpcId": "vpc-86257xxx", + "Subnets": [ + { + "Identifier": "subnet-5623xxxx", + "AvailabilityZone": { + "Name": "us-east-1a" + } + } + ], + "ARN": "arn:aws:memorydb:us-east-1:491658xxxxxx:subnetgroup/mysubnetgroup" + } + } + +For more information, see `Creating a subnet group `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/create-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/create-user.rst new file mode 100644 index 000000000..359cf912e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/create-user.rst @@ -0,0 +1,28 @@ +**To create a user** + +The following ``create-user`` example creates a new user. :: + + aws memorydb create-user \ + --user-name user-name-1 \ + --access-string "~objects:* ~items:* ~public:*" \ + --authentication-mode \ + Passwords="enterapasswordhere",Type=password + +Output:: + + { + "User": { + "Name": "user-name-1", + "Status": "active", + "AccessString": "off ~objects:* ~items:* ~public:* resetchannels -@all", + "ACLNames": [], + "MinimumEngineVersion": "6.2", + "Authentication": { + "Type": "password", + "PasswordCount": 1 + }, + "ARN": "arn:aws:memorydb:us-west-2:491658xxxxxx:user/user-name-1" + } + } + +For more information, see `Authenticating users with Access Control Lists `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/delete-acl.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/delete-acl.rst new file mode 100644 index 000000000..e3c2a1934 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/delete-acl.rst @@ -0,0 +1,23 @@ +**To delete an ACL** + +The following ``delete-acl`` example deletes an Access control list. :: + + aws memorydb delete-acl \ + --acl-name "new-acl-1" + +Output:: + + { + "ACL": { + "Name": "new-acl-1", + "Status": "deleting", + "UserNames": [ + "pat" + ], + "MinimumEngineVersion": "6.2", + "Clusters": [], + "ARN": "arn:aws:memorydb:us-east-1:491658xxxxxx:acl/new-acl-1" + } + } + +For more information, see `Authenticating users with Access Control Lists `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/delete-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/delete-cluster.rst new file mode 100644 index 000000000..8b4e45d19 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/delete-cluster.rst @@ -0,0 +1,34 @@ +**To delete a cluster** + +The following ``delete-cluster`` example deletes a cluster. :: + + aws memorydb delete-cluster \ + --cluster-name my-new-cluster + +Output:: + + { + "Cluster": { + "Name": "my-new-cluster", + "Status": "deleting", + "NumberOfShards": 1, + "ClusterEndpoint": { + "Address": "clustercfg.my-new-cluster.xxxxx.memorydb.us-east-1.amazonaws.com", + "Port": 6379 + }, + "NodeType": "db.r6g.large", + "EngineVersion": "6.2", + "EnginePatchVersion": "6.2.6", + "ParameterGroupName": "default.memorydb-redis6", + "ParameterGroupStatus": "in-sync", + "SubnetGroupName": "my-sg", + "TLSEnabled": true, + "ARN": "arn:aws:memorydb:us-east-1:491658xxxxxx:cluster/my-new-cluster", + "SnapshotRetentionLimit": 0, + "MaintenanceWindow": "sat:10:00-sat:11:00", + "SnapshotWindow": "07:30-08:30", + "AutoMinorVersionUpgrade": true + } + } + +For more information, see `Deleting a cluster `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/delete-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/delete-parameter-group.rst new file mode 100644 index 000000000..cb3e7bb52 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/delete-parameter-group.rst @@ -0,0 +1,19 @@ +**To delete a parameter group** + +The following ``delete-parameter-group`` example deletes a parameter group. :: + + aws memorydb delete-parameter-group \ + --parameter-group-name myRedis6x + +Output:: + + { + "ParameterGroup": { + "Name": "myredis6x", + "Family": "memorydb_redis6", + "Description": "my-parameter-group", + "ARN": "arn:aws:memorydb:us-east-1:491658xxxxxx:parametergroup/myredis6x" + } + } + +For more information, see `Deleting a parameter group `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/delete-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/delete-snapshot.rst new file mode 100644 index 000000000..fa79af14e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/delete-snapshot.rst @@ -0,0 +1,33 @@ +**To delete a snapshot** + +The following ``delete-snapshot`` example deletes a snapshot. :: + + aws memorydb delete-snapshot \ + --snapshot-name my-cluster-snapshot + +Output:: + + { + "Snapshot": { + "Name": "my-cluster-snapshot", + "Status": "deleting", + "Source": "manual", + "ARN": "arn:aws:memorydb:us-east-1:49165xxxxxx:snapshot/my-cluster-snapshot", + "ClusterConfiguration": { + "Name": "my-cluster", + "Description": "", + "NodeType": "db.r6g.large", + "EngineVersion": "6.2", + "MaintenanceWindow": "wed:03:00-wed:04:00", + "Port": 6379, + "ParameterGroupName": "default.memorydb-redis6", + "SubnetGroupName": "my-sg", + "VpcId": "vpc-862xxxxc", + "SnapshotRetentionLimit": 0, + "SnapshotWindow": "04:30-05:30", + "NumShards": 2 + } + } + } + +For more information, see `Deleting a snapshot `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/delete-subnet-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/delete-subnet-group.rst new file mode 100644 index 000000000..b3d427d9a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/delete-subnet-group.rst @@ -0,0 +1,27 @@ +**To delete a subnet group** + +The following ``delete-subnet-group`` example deletes a subnet. :: + + aws memorydb delete-subnet-group \ + --subnet-group-name mysubnetgroup + +Output:: + + { + "SubnetGroup": { + "Name": "mysubnetgroup", + "Description": "my subnet group", + "VpcId": "vpc-86xxxx4fc", + "Subnets": [ + { + "Identifier": "subnet-56xxx61b", + "AvailabilityZone": { + "Name": "us-east-1a" + } + } + ], + "ARN": "arn:aws:memorydb:us-east-1:491658xxxxxx:subnetgroup/mysubnetgroup" + } + } + +For more information, see `Deleting a subnet group `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/delete-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/delete-user.rst new file mode 100644 index 000000000..c055b0d9f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/delete-user.rst @@ -0,0 +1,27 @@ +**To delete a user** + +The following ``delete-user`` example deletes a user. :: + + aws memorydb delete-user \ + --user-name my-user + +Output:: + + { + "User": { + "Name": "my-user", + "Status": "deleting", + "AccessString": "on ~app::* resetchannels -@all +@read", + "ACLNames": [ + "my-acl" + ], + "MinimumEngineVersion": "6.2", + "Authentication": { + "Type": "password", + "PasswordCount": 1 + }, + "ARN": "arn:aws:memorydb:us-east-1:491658xxxxxx:user/my-user" + } + } + +For more information, see `Authenticating users with Access Control Lists `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-acls.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-acls.rst new file mode 100644 index 000000000..d9ac8f810 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-acls.rst @@ -0,0 +1,34 @@ +**To return a list of ACLs** + +The following `describe-acls`` returns a list of ACLs. :: + + aws memorydb describe-acls + +Output:: + + { + "ACLs": [ + { + "Name": "open-access", + "Status": "active", + "UserNames": [ + "default" + ], + "MinimumEngineVersion": "6.2", + "Clusters": [], + "ARN": "arn:aws:memorydb:us-east-1:491658xxxxxx:acl/open-access" + }, + { + "Name": my-acl", + "Status": "active", + "UserNames": [], + "MinimumEngineVersion": "6.2", + "Clusters": [ + "my-cluster" + ], + "ARN": "arn:aws:memorydb:us-east-1:49165xxxxxxx:acl/my-acl" + } + ] + } + +For more information, see `Authenticating users with Access Control Lists `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-clusters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-clusters.rst new file mode 100644 index 000000000..5b0e8e581 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-clusters.rst @@ -0,0 +1,42 @@ +**To return a list of clusters** + +The following `describe-clusters`` returns a list of clusters. :: + + aws memorydb describe-clusters + +Output:: + + { + "Clusters": [ + { + "Name": "my-cluster", + "Status": "available", + "NumberOfShards": 2, + "ClusterEndpoint": { + "Address": "clustercfg.my-cluster.llru6f.memorydb.us-east-1.amazonaws.com", + "Port": 6379 + }, + "NodeType": "db.r6g.large", + "EngineVersion": "6.2", + "EnginePatchVersion": "6.2.6", + "ParameterGroupName": "default.memorydb-redis6", + "ParameterGroupStatus": "in-sync", + "SecurityGroups": [ + { + "SecurityGroupId": "sg-0a1434xxxxxc9fae", + "Status": "active" + } + ], + "SubnetGroupName": "pat-sg", + "TLSEnabled": true, + "ARN": "arn:aws:memorydb:us-east-1:49165xxxxxx:cluster/my-cluster", + "SnapshotRetentionLimit": 0, + "MaintenanceWindow": "wed:03:00-wed:04:00", + "SnapshotWindow": "04:30-05:30", + "ACLName": "my-acl", + "AutoMinorVersionUpgrade": true + } + ] + } + +For more information, see `Managing clusters `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-engine-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-engine-versions.rst new file mode 100644 index 000000000..9abec9d64 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-engine-versions.rst @@ -0,0 +1,19 @@ +**To return a list of engine versions** + +The following `describe-engine-versions`` returns a list of engine versions. :: + + aws memorydb describe-engine-versions + +Output:: + + { + "EngineVersions": [ + { + "EngineVersion": "6.2", + "EnginePatchVersion": "6.2.6", + "ParameterGroupFamily": "memorydb_redis6" + } + ] + } + +For more information, see `Engine versions and upgrading `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-events.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-events.rst new file mode 100644 index 000000000..5bd0e2f1b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-events.rst @@ -0,0 +1,26 @@ +**To return a list of events** + +The following `describe-events`` returns a list of events. :: + + aws memorydb describe-events + +Output:: + + { + "Events": [ + { + "SourceName": "my-cluster", + "SourceType": "cluster", + "Message": "Increase replica count started for replication group my-cluster on 2022-07-22T14:09:01.440Z", + "Date": "2022-07-22T07:09:01.443000-07:00" + }, + { + "SourceName": "my-user", + "SourceType": "user", + "Message": "Create user my-user operation completed.", + "Date": "2022-07-22T07:00:02.975000-07:00" + } + ] + } + +For more information, see `Monitoring events `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-parameter-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-parameter-groups.rst new file mode 100644 index 000000000..2d38f3545 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-parameter-groups.rst @@ -0,0 +1,20 @@ +**To return a list of parameter groups** + +The following `describe-parameter-groups`` returns a list of parameter groups. :: + + aws memorydb describe-parameter-groups + +Output:: + + { + "ParameterGroups": [ + { + "Name": "default.memorydb-redis6", + "Family": "memorydb_redis6", + "Description": "Default parameter group for memorydb_redis6", + "ARN": "arn:aws:memorydb:us-east-1:491658xxxxxx:parametergroup/default.memorydb-redis6" + } + ] + } + +For more information, see `Configuring engine parameters using parameter groups `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-parameters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-parameters.rst new file mode 100644 index 000000000..9abe334d0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-parameters.rst @@ -0,0 +1,324 @@ +**To return a list of parameters** + +The following `describe-parameters`` returns a list of parameters. :: + + aws memorydb describe-parameters + +Output:: + + { + "Parameters": [ + { + "Name": "acllog-max-len", + "Value": "128", + "Description": "The maximum length of the ACL Log", + "DataType": "integer", + "AllowedValues": "1-10000", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "activedefrag", + "Value": "no", + "Description": "Enabled active memory defragmentation", + "DataType": "string", + "AllowedValues": "yes,no", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "active-defrag-cycle-max", + "Value": "75", + "Description": "Maximal effort for defrag in CPU percentage", + "DataType": "integer", + "AllowedValues": "1-75", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "active-defrag-cycle-min", + "Value": "5", + "Description": "Minimal effort for defrag in CPU percentage", + "DataType": "integer", + "AllowedValues": "1-75", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "active-defrag-ignore-bytes", + "Value": "104857600", + "Description": "Minimum amount of fragmentation waste to start active defrag", + "DataType": "integer", + "AllowedValues": "1048576-", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "active-defrag-max-scan-fields", + "Value": "1000", + "Description": "Maximum number of set/hash/zset/list fields that will be processed from the main dictionary scan", + "DataType": "integer", + "AllowedValues": "1-1000000", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "active-defrag-threshold-lower", + "Value": "10", + "Description": "Minimum percentage of fragmentation to start active defrag", + "DataType": "integer", + "AllowedValues": "1-100", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "active-defrag-threshold-upper", + "Value": "100", + "Description": "Maximum percentage of fragmentation at which we use maximum effort", + "DataType": "integer", + "AllowedValues": "1-100", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "active-expire-effort", + "Value": "1", + "Description": "The amount of effort that redis uses to expire items in the active expiration job", + "DataType": "integer", + "AllowedValues": "1-10", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "activerehashing", + "Value": "yes", + "Description": "Apply rehashing or not", + "DataType": "string", + "AllowedValues": "yes,no", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "client-output-buffer-limit-normal-hard-limit", + "Value": "0", + "Description": "Normal client output buffer hard limit in bytes", + "DataType": "integer", + "AllowedValues": "0-", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "client-output-buffer-limit-normal-soft-limit", + "Value": "0", + "Description": "Normal client output buffer soft limit in bytes", + "DataType": "integer", + "AllowedValues": "0-", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "client-output-buffer-limit-normal-soft-seconds", + "Value": "0", + "Description": "Normal client output buffer soft limit in seconds", + "DataType": "integer", + "AllowedValues": "0-", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "client-output-buffer-limit-pubsub-hard-limit", + "Value": "33554432", + "Description": "Pubsub client output buffer hard limit in bytes", + "DataType": "integer", + "AllowedValues": "0-", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "client-output-buffer-limit-pubsub-soft-limit", + "Value": "8388608", + "Description": "Pubsub client output buffer soft limit in bytes", + "DataType": "integer", + "AllowedValues": "0-", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "client-output-buffer-limit-pubsub-soft-seconds", + "Value": "60", + "Description": "Pubsub client output buffer soft limit in seconds", + "DataType": "integer", + "AllowedValues": "0-", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "hash-max-ziplist-entries", + "Value": "512", + "Description": "The maximum number of hash entries in order for the dataset to be compressed", + "DataType": "integer", + "AllowedValues": "0-", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "hash-max-ziplist-value", + "Value": "64", + "Description": "The threshold of biggest hash entries in order for the dataset to be compressed", + "DataType": "integer", + "AllowedValues": "0-", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "hll-sparse-max-bytes", + "Value": "3000", + "Description": "HyperLogLog sparse representation bytes limit", + "DataType": "integer", + "AllowedValues": "1-16000", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "lazyfree-lazy-eviction", + "Value": "no", + "Description": "Perform an asynchronous delete on evictions", + "DataType": "string", + "AllowedValues": "yes,no", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "lazyfree-lazy-expire", + "Value": "no", + "Description": "Perform an asynchronous delete on expired keys", + "DataType": "string", + "AllowedValues": "yes,no", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "lazyfree-lazy-server-del", + "Value": "no", + "Description": "Perform an asynchronous delete on key updates", + "DataType": "string", + "AllowedValues": "yes,no", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "lazyfree-lazy-user-del", + "Value": "no", + "Description": "Specifies whether the default behavior of DEL command acts the same as UNLINK", + "DataType": "string", + "AllowedValues": "yes,no", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "lfu-decay-time", + "Value": "1", + "Description": "The amount of time in minutes to decrement the key counter for LFU eviction policyd", + "DataType": "integer", + "AllowedValues": "0-", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "lfu-log-factor", + "Value": "10", + "Description": "The log factor for incrementing key counter for LFU eviction policy", + "DataType": "integer", + "AllowedValues": "1-", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "list-compress-depth", + "Value": "0", + "Description": "Number of quicklist ziplist nodes from each side of the list to exclude from compression. The head and tail of the list are always uncompressed for fast push/pop operations", + "DataType": "integer", + "AllowedValues": "0-", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "maxmemory-policy", + "Value": "noeviction", + "Description": "Max memory policy", + "DataType": "string", + "AllowedValues": "volatile-lru,allkeys-lru,volatile-lfu,allkeys-lfu,volatile-random,allkeys-random,volatile-ttl,noeviction", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "maxmemory-samples", + "Value": "3", + "Description": "Max memory samples", + "DataType": "integer", + "AllowedValues": "1-", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "notify-keyspace-events", + "Description": "The keyspace events for Redis to notify Pub/Sub clients about. By default all notifications are disabled", + "DataType": "string", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "set-max-intset-entries", + "Value": "512", + "Description": "The limit in the size of the set in order for the dataset to be compressed", + "DataType": "integer", + "AllowedValues": "0-", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "slowlog-log-slower-than", + "Value": "10000", + "Description": "The execution time, in microseconds, to exceed in order for the command to get logged. Note that a negative number disables the slow log, while a value of zero forces the logging of every command", + "DataType": "integer", + "AllowedValues": "-", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "slowlog-max-len", + "Value": "128", + "Description": "The length of the slow log. There is no limit to this length. Just be aware that it will consume memory. You can reclaim memory used by the slow log with SLOWLOG RESET.", + "DataType": "integer", + "AllowedValues": "0-", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "stream-node-max-bytes", + "Value": "4096", + "Description": "The maximum size of a single node in a stream in bytes", + "DataType": "integer", + "AllowedValues": "0-", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "stream-node-max-entries", + "Value": "100", + "Description": "The maximum number of items a single node in a stream can contain", + "DataType": "integer", + "AllowedValues": "0-", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "tcp-keepalive", + "Value": "300", + "Description": "If non-zero, send ACKs every given number of seconds", + "DataType": "integer", + "AllowedValues": "0-", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "timeout", + "Value": "0", + "Description": "Close connection if client is idle for a given number of seconds, or never if 0", + "DataType": "integer", + "AllowedValues": "0,20-", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "tracking-table-max-keys", + "Value": "1000000", + "Description": "The maximum number of keys allowed for the tracking table for client side caching", + "DataType": "integer", + "AllowedValues": "1-100000000", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "zset-max-ziplist-entries", + "Value": "128", + "Description": "The maximum number of sorted set entries in order for the dataset to be compressed", + "DataType": "integer", + "AllowedValues": "0-", + "MinimumEngineVersion": "6.2.4" + }, + { + "Name": "zset-max-ziplist-value", + "Value": "64", + "Description": "The threshold of biggest sorted set entries in order for the dataset to be compressed", + "DataType": "integer", + "AllowedValues": "0-", + "MinimumEngineVersion": "6.2.4" + } + ] + } + +For more information, see `Configuring engine parameters using parameter groups `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-snapshots.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-snapshots.rst new file mode 100644 index 000000000..60514917f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-snapshots.rst @@ -0,0 +1,33 @@ +**To return a list of snapshots** + +The following `describe-snapshots`` returns a list of snapshots. :: + + aws memorydb describe-snapshots + +Output:: + + { + "Snapshots": [ + { + "Name": "my-cluster-snapshot", + "Status": "available", + "Source": "manual", + "ARN": "arn:aws:memorydb:us-east-1:491658xxxxxx2:snapshot/my-cluster-snapshot", + "ClusterConfiguration": { + "Name": "my-cluster", + "Description": " ", + "NodeType": "db.r6g.large", + "EngineVersion": "6.2", + "MaintenanceWindow": "wed:03:00-wed:04:00", + "Port": 6379, + "ParameterGroupName": "default.memorydb-redis6", + "SubnetGroupName": "my-sg", + "VpcId": "vpc-862574fc", + "SnapshotRetentionLimit": 0, + "SnapshotWindow": "04:30-05:30", + "NumShards": 2 + } + } + } + +For more information, see `Snapshot and restore `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-subnet-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-subnet-groups.rst new file mode 100644 index 000000000..cee5009eb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-subnet-groups.rst @@ -0,0 +1,34 @@ +**To return a list of subnet groups** + +The following `describe-subnet-groups`` returns a list of subnet groups. :: + + aws memorydb describe-subnet-groups + +Output :: + + { + "SubnetGroups": [ + { + "Name": "my-sg", + "Description": "pat-sg", + "VpcId": "vpc-86xxx4fc", + "Subnets": [ + { + "Identifier": "subnet-faxx84a6", + "AvailabilityZone": { + "Name": "us-east-1b" + } + }, + { + "Identifier": "subnet-56xxf61b", + "AvailabilityZone": { + "Name": "us-east-1a" + } + } + ], + "ARN": "arn:aws:memorydb:us-east-1:49165xxxxxx:subnetgroup/my-sg" + } + ] + } + +For more information, see `Subnets and subnet groups `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-users.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-users.rst new file mode 100644 index 000000000..2c9bef64f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/describe-users.rst @@ -0,0 +1,39 @@ +**To return a list of users** + +The following `describe-users`` returns a list of users. :: + + aws memorydb describe-users + +Output :: + + { + "Users": [ + { + "Name": "default", + "Status": "active", + "AccessString": "on ~* &* +@all", + "ACLNames": [ + "open-access" + ], + "MinimumEngineVersion": "6.0", + "Authentication": { + "Type": "no-password" + }, + "ARN": "arn:aws:memorydb:us-east-1:491658xxxxxx:user/default" + }, + { + "Name": "my-user", + "Status": "active", + "AccessString": "off ~objects:* ~items:* ~public:* resetchannels -@all", + "ACLNames": [], + "MinimumEngineVersion": "6.2", + "Authentication": { + "Type": "password", + "PasswordCount": 2 + }, + "ARN": "arn:aws:memorydb:us-east-1:491658xxxxxx:user/my-user" + } + ] + } + +For more information, see `Authenticating users with Access Control Lists `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/failover-shard.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/failover-shard.rst new file mode 100644 index 000000000..0f1dad6e0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/failover-shard.rst @@ -0,0 +1,40 @@ +**To fail over a shard** + +The following `failover-shard`` fails over a shard. :: + + aws memorydb failover-shard \ + --cluster-name my-cluster --shard-name 0001 + +Output:: + + { + "Cluster": { + "Name": "my-cluster", + "Status": "available", + "NumberOfShards": 2, + "ClusterEndpoint": { + "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com", + "Port": 6379 + }, + "NodeType": "db.r6g.large", + "EngineVersion": "6.2", + "EnginePatchVersion": "6.2.6", + "ParameterGroupName": "default.memorydb-redis6", + "ParameterGroupStatus": "in-sync", + "SecurityGroups": [ + { + "SecurityGroupId": "sg-0a143xxxx45c9fae", + "Status": "active" + } + ], + "SubnetGroupName": "my-sg", + "TLSEnabled": true, + "ARN": "arn:aws:memorydb:us-east-1:491658xxxxxx:cluster/my-cluster", + "SnapshotRetentionLimit": 0, + "MaintenanceWindow": "wed:03:00-wed:04:00", + "SnapshotWindow": "04:30-05:30", + "AutoMinorVersionUpgrade": true + } + } + +For more information, see `Minimizing downtime with MultiAZ `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/list-allowed-node-type-updates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/list-allowed-node-type-updates.rst new file mode 100644 index 000000000..f0cd4d93c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/list-allowed-node-type-updates.rst @@ -0,0 +1,39 @@ +**To return a list of allowed node type updates** + +The following `list-allowed-node-type-updates` returns a list of available node type updates. :: + + aws memorydb list-allowed-node-type-updates + +Output:: + + { + "Cluster": { + "Name": "my-cluster", + "Status": "available", + "NumberOfShards": 2, + "ClusterEndpoint": { + "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com", + "Port": 6379 + }, + "NodeType": "db.r6g.large", + "EngineVersion": "6.2", + "EnginePatchVersion": "6.2.6", + "ParameterGroupName": "default.memorydb-redis6", + "ParameterGroupStatus": "in-sync", + "SecurityGroups": [ + { + "SecurityGroupId": "sg-0a143xxxx45c9fae", + "Status": "active" + } + ], + "SubnetGroupName": "my-sg", + "TLSEnabled": true, + "ARN": "arn:aws:memorydb:us-east-1:491658xxxxxx:cluster/my-cluster", + "SnapshotRetentionLimit": 0, + "MaintenanceWindow": "wed:03:00-wed:04:00", + "SnapshotWindow": "04:30-05:30", + "AutoMinorVersionUpgrade": true + } + } + +For more information, see `Scaling `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/list-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/list-tags.rst new file mode 100644 index 000000000..40620fc02 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/list-tags.rst @@ -0,0 +1,19 @@ +**To return a list of tags** + +The following `list-tags` returns a list of tags. :: + + aws memorydb list-tags \ + --resource-arn arn:aws:memorydb:us-east-1:491658xxxxxx:cluster/my-cluster + +Output:: + + { + "TagList": [ + { + "Key": "mytag", + "Value": "myvalue" + } + ] + } + +For more information, see `Tagging resources `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/reset-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/reset-parameter-group.rst new file mode 100644 index 000000000..a1bed94f1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/reset-parameter-group.rst @@ -0,0 +1,20 @@ +**To reset a parameter group** + +The following `reset-parameter-group`` resets a parameter group. :: + + aws memorydb reset-parameter-group \ + --parameter-group-name my-parameter-group \ + --all-parameters + +Output:: + + { + "ParameterGroup": { + "Name": "my-parameter-group", + "Family": "memorydb_redis6", + "Description": "my parameter group", + "ARN": "arn:aws:memorydb:us-east-1:491658xxxxxx:parametergroup/my-parameter-group" + } + } + +For more information, see `Configuring engine parameters using parameter groups `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/tag-resource.rst new file mode 100644 index 000000000..d63dc94f9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/tag-resource.rst @@ -0,0 +1,24 @@ +**To tag a resource** + +The following `tag-resource`` adds a tag to a resource. :: + + aws memorydb tag-resource \ + --resource-arn arn:aws:memorydb:us-east-1:491658xxxxxx:cluster/my-cluster \ + --tags Key="mykey",Value="myvalue" + +Output:: + + { + "TagList": [ + { + "Key": "mytag", + "Value": "myvalue" + }, + { + "Key": "mykey", + "Value": "myvalue" + } + ] + } + +For more information, see `Tagging resources `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/untag-resource.rst new file mode 100644 index 000000000..cbc366ebb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/untag-resource.rst @@ -0,0 +1,20 @@ +**To update an ACL** + +The following `update-acl`` updates an ACL by adding a user. :: + + aws memorydb untag-resource \ + --resource-arn arn:aws:memorydb:us-east-1:491658xxxxx:cluster/my-cluster \ + --tag-keys mykey + +Output:: + + { + "TagList": [ + { + "Key": "mytag", + "Value": "myvalue" + } + ] + } + +For more information, see `Tagging resources `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/update-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/update-cluster.rst new file mode 100644 index 000000000..89bb31301 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/update-cluster.rst @@ -0,0 +1,43 @@ +**To update a cluster** + +The following update-cluster`` updates the parameter group of a cluster to my-parameter-group. :: + + aws memorydb update-cluster \ + --cluster-name my-cluster \ + --parameter-group-name my-parameter-group + +Output:: + + { + "Cluster": { + "Name": "my-cluster", + "Status": "available", + "NumberOfShards": 2, + "AvailabilityMode": "MultiAZ", + "ClusterEndpoint": { + "Address": "clustercfg.my-cluster.llru6f.memorydb.us-east-1.amazonaws.com", + "Port": 6379 + }, + "NodeType": "db.r6g.large", + "EngineVersion": "6.2", + "EnginePatchVersion": "6.2.6", + "ParameterGroupName": "my-parameter-group", + "ParameterGroupStatus": "in-sync", + "SecurityGroups": [ + { + "SecurityGroupId": "sg-0a143xxxxxc9fae", + "Status": "active" + } + ], + "SubnetGroupName": "pat-sg", + "TLSEnabled": true, + "ARN": "arn:aws:memorydb:us-east-1:491658xxxxxx:cluster/my-cluster", + "SnapshotRetentionLimit": 0, + "MaintenanceWindow": "wed:03:00-wed:04:00", + "SnapshotWindow": "04:30-05:30", + "ACLName": "my-acl", + "AutoMinorVersionUpgrade": true + } + } + +For more information, see `Modifying a cluster `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/update-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/update-parameter-group.rst new file mode 100644 index 000000000..a3dc48ed6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/update-parameter-group.rst @@ -0,0 +1,20 @@ +**To update a parameter group** + +The following update-parameter-group`` updates a parameter group. :: + + aws memorydb update-parameter-group \ + --parameter-group-name my-parameter-group \ + --parameter-name-values "ParameterName=activedefrag, ParameterValue=no" + +Output:: + + { + "ParameterGroup": { + "Name": "my-parameter-group", + "Family": "memorydb_redis6", + "Description": "my parameter group", + "ARN": "arn:aws:memorydb:us-east-1:49165xxxxxx:parametergroup/my-parameter-group" + } + } + +For more information, see `Modifying a parameter group `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/update-subnet-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/update-subnet-group.rst new file mode 100644 index 000000000..6758202e5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/update-subnet-group.rst @@ -0,0 +1,28 @@ +**To update a subnet group** + +The following `update-subnet-group`` updates a subnet group's subnet ID. :: + + aws memorydb update-subnet-group \ + --subnet-group-name my-sg \ + --subnet-ids subnet-01f29d458f3xxxxx + +Output:: + + { + "SubnetGroup": { + "Name": "my-sg-1", + "Description": "my-sg", + "VpcId": "vpc-09d2cfc01xxxxxxx", + "Subnets": [ + { + "Identifier": "subnet-01f29d458fxxxxxx", + "AvailabilityZone": { + "Name": "us-east-1a" + } + } + ], + "ARN": "arn:aws:memorydb:us-east-1:491658xxxxxx:subnetgroup/my-sg" + } + } + +For more information, see `Subnets and subnet groups `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/update-user.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/update-user.rst new file mode 100644 index 000000000..f9b1ae236 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/memorydb/update-user.rst @@ -0,0 +1,28 @@ +**To update a user** + +The following ``update-user`` modifies a user's access string. :: + + aws memorydb update-user \ + --user-name my-user \ + --access-string "off ~objects:* ~items:* ~public:* resetchannels -@all" + +Output:: + + { + "User": { + "Name": "my-user", + "Status": "modifying", + "AccessString": "off ~objects:* ~items:* ~public:* resetchannels -@all", + "ACLNames": [ + "myt-acl" + ], + "MinimumEngineVersion": "6.2", + "Authentication": { + "Type": "password", + "PasswordCount": 2 + }, + "ARN": "arn:aws:memorydb:us-east-1:491658xxxxxx:user/my-user" + } + } + +For more information, see `Authenticating users with Access Control Lists `__ in the *MemoryDB User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/create-monitor.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/create-monitor.rst new file mode 100644 index 000000000..90508cbd6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/create-monitor.rst @@ -0,0 +1,19 @@ +**To create a monitor** + +The following ``create-monitor`` example creates a monitor named ``demo`` in the specified account. :: + + aws networkflowmonitor create-monitor \ + --monitor-name demo \ + --local-resources type="AWS::EC2::VPC",identifier="arn:aws:ec2:us-east-1:123456789012:vpc/vpc-03ea55eeda25adbb0" \ + --scope-arn arn:aws:networkflowmonitor:us-east-1:123456789012:scope/e21cda79-30a0-4c12-9299-d8629d76d8cf + +Output:: + + { + "monitorArn": "arn:aws:networkflowmonitor:us-east-1:123456789012:monitor/demo", + "monitorName": "demo", + "monitorStatus": "ACTIVE", + "tags": {} + } + +For more information, see `Create a monitor in Network Flow Monitor `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/create-scope.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/create-scope.rst new file mode 100644 index 000000000..9e7f3af48 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/create-scope.rst @@ -0,0 +1,16 @@ +**To create a scope** + +The following ``create-scope`` example creates a scope that includes a set of resources for which Network Flow Monitor will generate network traffic metrics. :: + + aws networkflowmonitor create-scope \ + --targets '[{"targetIdentifier":{"targetId":{"accountId":"123456789012"},"targetType":"ACCOUNT"},"region":"us-east-1"}]' + +Output:: + + { + "scopeId": "97626f8d-8a21-4b5d-813a-1a0962dd4615", + "status": "IN_PROGRESS", + "tags": {} + } + +For more information, see `Components and features of Network Flow Monitor `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/delete-monitor.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/delete-monitor.rst new file mode 100644 index 000000000..1911b20ca --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/delete-monitor.rst @@ -0,0 +1,10 @@ +**To delete a monitor** + +The following ``delete-monitor`` example deletes a monitor named ``demo`` in the specified account. :: + + aws networkflowmonitor delete-monitor \ + --monitor-name demo + +This command produces no output. + +For more information, see `Delete a monitor in Network Flow Monitor `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/delete-scope.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/delete-scope.rst new file mode 100644 index 000000000..b8e2c8375 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/delete-scope.rst @@ -0,0 +1,10 @@ +**To delete a scope** + +The following ``delete-scope`` example deletes a specified scope. :: + + aws networkflowmonitor delete-scope \ + --scope-id fdc20616-6bb4-4242-a24e-a748e65ca7ac + +This command produces no output. + +For more information, see `Components and features of Network Flow Monitor `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/get-monitor.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/get-monitor.rst new file mode 100644 index 000000000..e15be2d6c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/get-monitor.rst @@ -0,0 +1,26 @@ +**To retrieve information about a monitor** + +The following ``get-monitor`` example displays information about the monitor named ``demo`` in the specified account. :: + + aws networkflowmonitor get-monitor \ + --monitor-name Demo + +Output:: + + { + "monitorArn": "arn:aws:networkflowmonitor:us-east-1:123456789012:monitor/Demo", + "monitorName": "Demo", + "monitorStatus": "ACTIVE", + "localResources": [ + { + "type": "AWS::EC2::VPC", + "identifier": "arn:aws:ec2:us-east-1:123456789012:vpc/vpc-03ea55eeda25adbb0" + } + ], + "remoteResources": [], + "createdAt": "2024-12-09T12:21:51.616000-06:00", + "modifiedAt": "2024-12-09T12:21:55.412000-06:00", + "tags": {} + } + +For more information, see `Components and features of Network Flow Monitor `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/get-query-results-workload-insights-top-contributors-data.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/get-query-results-workload-insights-top-contributors-data.rst new file mode 100644 index 000000000..adcdc1f12 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/get-query-results-workload-insights-top-contributors-data.rst @@ -0,0 +1,30 @@ +**To retrieve the top contributor data on workload insights** + +The following ``get-query-results-workload-insights-top-contributors-data`` example returns the data for the specified query. :: + + aws networkflowmonitor get-query-results-workload-insights-top-contributors-data \ + --scope-id e21cda79-30a0-4c12-9299-d8629d76d8cf \ + --query-id cc4f4ab3-3103-33b8-80ff-d6597a0c6cea + +Output:: + + { + "datapoints": [ + { + "timestamps": [ + "2024-12-09T19:00:00+00:00", + "2024-12-09T19:05:00+00:00", + "2024-12-09T19:10:00+00:00" + ], + "values": [ + 259943.0, + 194856.0, + 216432.0 + ], + "label": "use1-az6" + } + ], + "unit": "Bytes" + } + +For more information, see `Evaluate network flows with workload insights `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/get-query-results-workload-insights-top-contributors.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/get-query-results-workload-insights-top-contributors.rst new file mode 100644 index 000000000..8b8bb1b65 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/get-query-results-workload-insights-top-contributors.rst @@ -0,0 +1,27 @@ +**To retrieve the top contributors on workload insights** + +The following ``get-query-results-workload-insights-top-contributors`` example returns the data for the specified query. :: + + aws networkflowmonitor get-query-results-workload-insights-top-contributors \ + --scope-id e21cda79-30a0-4c12-9299-d8629d76d8cf \ + --query-id 1fc423d3-b144-37a6-80e6-e2c7d26eea0c + +Output:: + + { + "topContributors": [ + { + "accountId": "123456789012", + "localSubnetId": "subnet-0a5b30fb95dca2c14", + "localAz": "use1-az6", + "localVpcId": "vpc-03ea55eeda25adbb0", + "localRegion": "us-east-1", + "remoteIdentifier": "", + "value": 908443, + "localSubnetArn": "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-0a5b30fb95dca2c14", + "localVpcArn": "arn:aws:ec2:us-east-1:123456789012:vpc/vpc-03ea55eeda25adbb0" + } + ] + } + +For more information, see `Evaluate network flows with workload insights `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/get-query-status-monitor-top-contributors.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/get-query-status-monitor-top-contributors.rst new file mode 100644 index 000000000..74acb44bc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/get-query-status-monitor-top-contributors.rst @@ -0,0 +1,15 @@ +**To retrieve the status of the query** + +The following ``get-query-status-monitor-top-contributors`` example displays the current status of the query in the specified account. :: + + aws networkflowmonitor get-query-status-monitor-top-contributors \ + --monitor-name Demo \ + --query-id 5398eabd-bc40-3f5f-aba3-bcb639d3c7ca + +Output:: + + { + "status": "SUCCEEDED" + } + +For more information, see `Evaluate network flows with workload insights `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/get-query-status-workload-insights-top-contributors-data.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/get-query-status-workload-insights-top-contributors-data.rst new file mode 100644 index 000000000..b28892592 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/get-query-status-workload-insights-top-contributors-data.rst @@ -0,0 +1,15 @@ +**To retrieve the status of the query** + +The following ``get-query-status-workload-insights-top-contributors-data`` example displays the current status of the query in the specified account. :: + + aws networkflowmonitor get-query-status-workload-insights-top-contributors-data \ + --scope-id e21cda79-30a0-4c12-9299-d8629d76d8cf \ + --query-id 4333754d-8ae1-3f29-b6b7-c36db2e7f8ac + +Output:: + + { + "status": "SUCCEEDED" + } + +For more information, see `Evaluate network flows with workload insights `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/get-query-status-workload-insights-top-contributors.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/get-query-status-workload-insights-top-contributors.rst new file mode 100644 index 000000000..1b4c4930b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/get-query-status-workload-insights-top-contributors.rst @@ -0,0 +1,15 @@ +**To retrieve the status of the query** + +The following ``get-query-status-workload-insights-top-contributors`` example displays the current status of the query in the specified account. :: + + aws networkflowmonitor get-query-status-workload-insights-top-contributors \ + --scope-id e21cda79-30a0-4c12-9299-d8629d76d8cf \ + --query-id f2a87c70-3e5a-362e-8beb-4747d13d8419 + +Output:: + + { + "status": "SUCCEEDED" + } + +For more information, see `Evaluate network flows with workload insights `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/get-scope.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/get-scope.rst new file mode 100644 index 000000000..cf073a0dc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/get-scope.rst @@ -0,0 +1,28 @@ +**To retrieve information about a scope** + +The following ``get-scope`` example displays information about a scope, such as status, tags, name and target details. :: + + aws networkflowmonitor get-scope \ + --scope-id e21cda79-30a0-4c12-9299-d8629d76d8cf + +Output:: + + { + "scopeId": "e21cda79-30a0-4c12-9299-d8629d76d8cf", + "status": "SUCCEEDED", + "scopeArn": "arn:aws:networkflowmonitor:us-east-1:123456789012:scope/e21cda79-30a0-4c12-9299-d8629d76d8cf", + "targets": [ + { + "targetIdentifier": { + "targetId": { + "accountId": "123456789012" + }, + "targetType": "ACCOUNT" + }, + "region": "us-east-1" + } + ], + "tags": {} + } + +For more information, see `Components and features of Network Flow Monitor `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/list-monitors.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/list-monitors.rst new file mode 100644 index 000000000..bb5fac044 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/list-monitors.rst @@ -0,0 +1,19 @@ +**To retrieve a list of monitors** + +The following ``list-monitors`` example returns returns all the monitors in the specified account. :: + + aws networkflowmonitor list-monitors + +Output:: + + { + "monitors": [ + { + "monitorArn": "arn:aws:networkflowmonitor:us-east-1:123456789012:monitor/Demo", + "monitorName": "Demo", + "monitorStatus": "ACTIVE" + } + ] + } + +For more information, see `Components and features of Network Flow Monitor `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/list-scopes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/list-scopes.rst new file mode 100644 index 000000000..cb6f8695f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/list-scopes.rst @@ -0,0 +1,19 @@ +**To retrieve a list of scopes** + +The following ``list-scopes`` example lists all scopes in the specified account. :: + + aws networkflowmonitor list-scopes + +Output:: + + { + "scopes": [ + { + "scopeId": "fdc20616-6bb4-4242-a24e-a748e65ca7ac", + "status": "SUCCEEDED", + "scopeArn": "arn:aws:networkflowmonitor:us-east-1:123456789012:scope/fdc20616-6bb4-4242-a24e-a748e65ca7ac" + } + ] + } + +For more information, see `Components and features of Network Flow Monitor `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/list-tags-for-resource.rst new file mode 100644 index 000000000..7a93df770 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/list-tags-for-resource.rst @@ -0,0 +1,17 @@ +**To list the tags** + +The following ``list-tags-for-resource`` example returns all the tags associated with the specified resource. :: + + aws networkflowmonitor list-tags-for-resource \ + --resource-arn arn:aws:networkflowmonitor:us-east-1:123456789012:monitor/Demo + +Output:: + + { + "tags": { + "Value": "Production", + "Key": "stack" + } + } + +For more information, see `Tagging your Amazon CloudWatch resources `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/start-query-monitor-top-contributors.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/start-query-monitor-top-contributors.rst new file mode 100644 index 000000000..bf06a321e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/start-query-monitor-top-contributors.rst @@ -0,0 +1,18 @@ +**To start a query** + +The following ``start-query-monitor-top-contributors`` example starts the query which returns a query ID to retrieve the top contributors. :: + + aws networkflowmonitor start-query-monitor-top-contributors \ + --monitor-name Demo \ + --start-time 2024-12-09T19:00:00Z \ + --end-time 2024-12-09T19:15:00Z \ + --metric-name DATA_TRANSFERRED \ + --destination-category UNCLASSIFIED + +Output:: + + { + "queryId": "aecd3a88-0283-35b0-a17d-6e944dc8531d" + } + +For more information, see `Evaluate network flows with workload insights `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/start-query-workload-insights-top-contributors-data.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/start-query-workload-insights-top-contributors-data.rst new file mode 100644 index 000000000..f0bdade15 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/start-query-workload-insights-top-contributors-data.rst @@ -0,0 +1,18 @@ +**To start a query** + +The following ``start-query-workload-insights-top-contributors-data`` example starts the query which returns a query ID to retrieve the top contributors. :: + + aws networkflowmonitor start-query-workload-insights-top-contributors-data \ + --scope-id e21cda79-30a0-4c12-9299-d8629d76d8cf \ + --start-time 2024-12-09T19:00:00Z \ + --end-time 2024-12-09T19:15:00Z \ + --metric-name DATA_TRANSFERRED \ + --destination-category UNCLASSIFIED + +Output:: + + { + "queryId": "cc4f4ab3-3103-33b8-80ff-d6597a0c6cea" + } + +For more information, see `Evaluate network flows with workload insights `__ in the *Amazon CloudWatch User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/start-query-workload-insights-top-contributors.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/start-query-workload-insights-top-contributors.rst new file mode 100644 index 000000000..2e9f58032 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/start-query-workload-insights-top-contributors.rst @@ -0,0 +1,18 @@ +**To start a query** + +The following ``start-query-workload-insights-top-contributors`` example starts the query which returns a query ID to retrieve the top contributors. :: + + aws networkflowmonitor start-query-workload-insights-top-contributors \ + --scope-id e21cda79-30a0-4c12-9299-d8629d76d8cf \ + --start-time 2024-12-09T19:00:00Z \ + --end-time 2024-12-09T19:15:00Z \ + --metric-name DATA_TRANSFERRED \ + --destination-category UNCLASSIFIED + +Output:: + + { + "queryId": "1fc423d3-b144-37a6-80e6-e2c7d26eea0c" + } + +For more information, see `Evaluate network flows with workload insights `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/stop-query-monitor-top-contributors.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/stop-query-monitor-top-contributors.rst new file mode 100644 index 000000000..a0584f2bd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/stop-query-monitor-top-contributors.rst @@ -0,0 +1,11 @@ +**To stop a query** + +The following ``stop-query-monitor-top-contributors`` example stops the query in the specified account. :: + + aws networkflowmonitor stop-query-monitor-top-contributors \ + --monitor-name Demo \ + --query-id aecd3a88-0283-35b0-a17d-6e944dc8531d + +This command produces no output. + +For more information, see `Evaluate network flows with workload insights `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/stop-query-workload-insights-top-contributors-data.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/stop-query-workload-insights-top-contributors-data.rst new file mode 100644 index 000000000..713a278c1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/stop-query-workload-insights-top-contributors-data.rst @@ -0,0 +1,11 @@ +**To stop a query** + +The following ``stop-query-workload-insights-top-contributors-data`` example stops the query in the specified account. :: + + aws networkflowmonitor stop-query-workload-insights-top-contributors-data \ + --scope-id e21cda79-30a0-4c12-9299-d8629d76d8cf \ + --query-id cc4f4ab3-3103-33b8-80ff-d6597a0c6cea + +This command produces no output. + +For more information, see `Evaluate network flows with workload insights `__ in the *Amazon CloudWatch User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/stop-query-workload-insights-top-contributors.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/stop-query-workload-insights-top-contributors.rst new file mode 100644 index 000000000..f90e788be --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/stop-query-workload-insights-top-contributors.rst @@ -0,0 +1,11 @@ +**To stop a query** + +The following ``stop-query-workload-insights-top-contributors`` example stops the query in the specified account. :: + + aws networkflowmonitor stop-query-workload-insights-top-contributors \ + --scope-id e21cda79-30a0-4c12-9299-d8629d76d8cf \ + --query-id 1fc423d3-b144-37a6-80e6-e2c7d26eea0c + +This command produces no output. + +For more information, see `Evaluate network flows with workload insights `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/tag-resource.rst new file mode 100644 index 000000000..a974a7174 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/tag-resource.rst @@ -0,0 +1,11 @@ +**To add a tag to the specified resource** + +The following ``tag-resource`` example adds a tag to the monitor in the specified account. :: + + aws networkflowmonitor tag-resource \ + --resource-arn arn:aws:networkflowmonitor:us-east-1:123456789012:monitor/Demo \ + --tags Key=stack,Value=Production + +This command produces no output. + +For more information, see `Tagging your Amazon CloudWatch resources `__ in the *Amazon CloudWatch User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/untag-resource.rst new file mode 100644 index 000000000..bc80c4b0a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove a tag from the specified resource** + +The following ``untag-resource`` example removes a tag from the monitor in the specified account. :: + + aws networkflowmonitor untag-resource \ + --resource-arn arn:aws:networkflowmonitor:us-east-1:123456789012:monitor/Demo \ + --tag-keys stack + +This command produces no output. + +For more information, see `Tagging your Amazon CloudWatch resources `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/update-monitor.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/update-monitor.rst new file mode 100644 index 000000000..a97a288bf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkflowmonitor/update-monitor.rst @@ -0,0 +1,21 @@ +**To update an existing monitor** + +The following ``update-monitor`` example updates the monitor named ``Demo`` in the specified account. :: + + aws networkflowmonitor update-monitor \ + --monitor-name Demo \ + --local-resources-to-add type="AWS::EC2::VPC",identifier="arn:aws:ec2:us-east-1:123456789012:vpc/vpc-048d08dfbec623f94" + +Output:: + + { + "monitorArn": "arn:aws:networkflowmonitor:us-east-1:123456789012:monitor/Demo", + "monitorName": "Demo", + "monitorStatus": "ACTIVE", + "tags": { + "Value": "Production", + "Key": "stack" + } + } + +For more information, see `Components and features of Network Flow Monitor `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/associate-customer-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/associate-customer-gateway.rst new file mode 100644 index 000000000..61cb647f4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/associate-customer-gateway.rst @@ -0,0 +1,22 @@ +**To associate a customer gateway** + +The following ``associate-customer-gateway`` example associates customer gateway ``cgw-11223344556677889`` in the specified global network with device ``device-07f6fd08867abc123``. :: + + aws networkmanager associate-customer-gateway \ + --customer-gateway-arn arn:aws:ec2:us-west-2:123456789012:customer-gateway/cgw-11223344556677889 \ + --global-network-id global-network-01231231231231231 \ + --device-id device-07f6fd08867abc123 \ + --region us-west-2 + +Output:: + + { + "CustomerGatewayAssociation": { + "CustomerGatewayArn": "arn:aws:ec2:us-west-2:123456789012:customer-gateway/cgw-11223344556677889", + "GlobalNetworkId": "global-network-01231231231231231", + "DeviceId": "device-07f6fd08867abc123", + "State": "PENDING" + } + } + +For more information, see `Customer Gateway Associations `__ in the *Transit Gateway Network Manager Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/associate-link.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/associate-link.rst new file mode 100644 index 000000000..87db2e731 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/associate-link.rst @@ -0,0 +1,22 @@ +**To associate a link** + +The following ``associate-link`` example associates link ``link-11112222aaaabbbb1`` with device ``device-07f6fd08867abc123``. The link and device are in the specified global network. :: + + aws networkmanager associate-link \ + --global-network-id global-network-01231231231231231 \ + --device-id device-07f6fd08867abc123 \ + --link-id link-11112222aaaabbbb1 \ + --region us-west-2 + +Output:: + + { + "LinkAssociation": { + "GlobalNetworkId": "global-network-01231231231231231", + "DeviceId": "device-07f6fd08867abc123", + "LinkId": "link-11112222aaaabbbb1", + "LinkAssociationState": "PENDING" + } + } + +For more information, see `Device and Link Associations `__ in the *Transit Gateway Network Manager Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/create-core-network.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/create-core-network.rst new file mode 100644 index 000000000..6817bcce2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/create-core-network.rst @@ -0,0 +1,29 @@ +**To create a core network** + +The following ``create-core-network`` example creates a core network using an optional description and tags within an AWS Cloud WAN global network. :: + + aws networkmanager create-core-network \ + --global-network-id global-network-cdef-EXAMPLE22222 \ + --description "Main headquarters location" \ + --tags Key=Name,Value="New York City office" + +Output:: + + { + "CoreNetwork": { + "GlobalNetworkId": "global-network-cdef-EXAMPLE22222", + "CoreNetworkId": "core-network-cdef-EXAMPLE33333", + "CoreNetworkArn": "arn:aws:networkmanager::987654321012:core-network/core-network-cdef-EXAMPLE33333", + "Description": "Main headquarters location", + "CreatedAt": "2022-01-10T19:53:59+00:00", + "State": "AVAILABLE", + "Tags": [ + { + "Key": "Name", + "Value": "New York City office" + } + ] + } + } + +For more information, see `Global and core networks `__ in the *AWS Cloud WAN User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/create-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/create-device.rst new file mode 100644 index 000000000..bb784441a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/create-device.rst @@ -0,0 +1,31 @@ +**To create a device** + +The following ``create-device`` example creates a device in the specified global network. The device details include a description, the type, vendor, model, and serial number. :: + + aws networkmanager create-device + --global-network-id global-network-01231231231231231 \ + --description "New York office device" \ + --type "office device" \ + --vendor "anycompany" \ + --model "abcabc" \ + --serial-number "1234" \ + --region us-west-2 + +Output:: + + { + "Device": { + "DeviceId": "device-07f6fd08867abc123", + "DeviceArn": "arn:aws:networkmanager::123456789012:device/global-network-01231231231231231/device-07f6fd08867abc123", + "GlobalNetworkId": "global-network-01231231231231231", + "Description": "New York office device", + "Type": "office device", + "Vendor": "anycompany", + "Model": "abcabc", + "SerialNumber": "1234", + "CreatedAt": 1575554005.0, + "State": "PENDING" + } + } + +For more information, see `Working with Devices `__ in the *Transit Gateway Network Manager Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/create-global-network.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/create-global-network.rst new file mode 100644 index 000000000..f3ce817dd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/create-global-network.rst @@ -0,0 +1,16 @@ +**To create a global network** + +The following ``create-global-network`` examples creates a new global network. The initial state upon creation is ``PENDING``. :: + + aws networkmanager create-global-network + +Output:: + + { + "GlobalNetwork": { + "GlobalNetworkId": "global-network-00a77fc0f722dae74", + "GlobalNetworkArn": "arn:aws:networkmanager::987654321012:global-network/global-network-00a77fc0f722dae74", + "CreatedAt": "2022-03-14T20:31:56+00:00", + "State": "PENDING" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/create-link.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/create-link.rst new file mode 100644 index 000000000..ece5e2550 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/create-link.rst @@ -0,0 +1,34 @@ +**To create a link** + +The following ``create-link`` example creates a link in the specified global network. The link includes a description and details about the link type, bandwidth, and provider. The site ID indicates the site to which the link is associated. :: + + aws networkmanager create-link \ + --global-network-id global-network-01231231231231231 \ + --description "VPN Link" \ + --type "broadband" \ + --bandwidth UploadSpeed=10,DownloadSpeed=20 \ + --provider "AnyCompany" \ + --site-id site-444555aaabbb11223 \ + --region us-west-2 + +Output:: + + { + "Link": { + "LinkId": "link-11112222aaaabbbb1", + "LinkArn": "arn:aws:networkmanager::123456789012:link/global-network-01231231231231231/link-11112222aaaabbbb1", + "GlobalNetworkId": "global-network-01231231231231231", + "SiteId": "site-444555aaabbb11223", + "Description": "VPN Link", + "Type": "broadband", + "Bandwidth": { + "UploadSpeed": 10, + "DownloadSpeed": 20 + }, + "Provider": "AnyCompany", + "CreatedAt": 1575555811.0, + "State": "PENDING" + } + } + +For more information, see `Working with Links `__ in the *Transit Gateway Network Manager Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/create-site.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/create-site.rst new file mode 100644 index 000000000..388e12590 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/create-site.rst @@ -0,0 +1,28 @@ +**To create a site** + +The following ``create-site`` example creates a site in the specified global network. The site details include a description and the location information. :: + + aws networkmanager create-site \ + --global-network-id global-network-01231231231231231 \ + --description "New York head office" \ + --location Latitude=40.7128,Longitude=-74.0060 \ + --region us-west-2 + +Output:: + + { + "Site": { + "SiteId": "site-444555aaabbb11223", + "SiteArn": "arn:aws:networkmanager::123456789012:site/global-network-01231231231231231/site-444555aaabbb11223", + "GlobalNetworkId": "global-network-01231231231231231", + "Description": "New York head office", + "Location": { + "Latitude": "40.7128", + "Longitude": "-74.0060" + }, + "CreatedAt": 1575554300.0, + "State": "PENDING" + } + } + +For more information, see `Working with Sites `__ in the *Transit Gateway Network Manager Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/create-vpc-attachment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/create-vpc-attachment.rst new file mode 100644 index 000000000..a383ab6b5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/create-vpc-attachment.rst @@ -0,0 +1,36 @@ +**To create a VPC attachment** + +The following ``create-vpc-attachment`` example creates a VPC attachment with IPv6 support in a core network. :: + + aws networkmanager create-vpc-attachment \ + --core-network-id core-network-0fab62fe438d94db6 \ + --vpc-arn arn:aws:ec2:us-east-1:987654321012:vpc/vpc-09f37f69e2786eeb8 \ + --subnet-arns arn:aws:ec2:us-east-1:987654321012:subnet/subnet-04ca4e010857e7bb7 \ + --Ipv6Support=true + +Output:: + + { + "VpcAttachment": { + "Attachment": { + "CoreNetworkId": "core-network-0fab62fe438d94db6", + "AttachmentId": "attachment-05e1da6eba87a06e6", + "OwnerAccountId": "987654321012", + "AttachmentType": "VPC", + "State": "CREATING", + "EdgeLocation": "us-east-1", + "ResourceArn": "arn:aws:ec2:us-east-1:987654321012:vpc/vpc-09f37f69e2786eeb8", + "Tags": [], + "CreatedAt": "2022-03-10T20:59:14+00:00", + "UpdatedAt": "2022-03-10T20:59:14+00:00" + }, + "SubnetArns": [ + "arn:aws:ec2:us-east-1:987654321012:subnet/subnet-04ca4e010857e7bb7" + ], + "Options": { + "Ipv6Support": true + } + } + } + +For more information, see `Create an attachment `__ in the *Cloud WAN User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-attachment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-attachment.rst new file mode 100644 index 000000000..df037f9db --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-attachment.rst @@ -0,0 +1,24 @@ +**To delete an attachment** + +The following ``delete-attachment`` example deletes a Connect attachment. :: + + aws networkmanager delete-attachment \ + --attachment-id attachment-01feddaeae26ab68c + +Output:: + + { + "Attachment": { + "CoreNetworkId": "core-network-0f4b0a9d5ee7761d1", + "AttachmentId": "attachment-01feddaeae26ab68c", + "OwnerAccountId": "987654321012", + "AttachmentType": "CONNECT", + "State": "DELETING", + "EdgeLocation": "us-east-1", + "ResourceArn": "arn:aws:networkmanager::987654321012:attachment/attachment-02c3964448fedf5aa", + "CreatedAt": "2022-03-15T19:18:41+00:00", + "UpdatedAt": "2022-03-15T19:28:59+00:00" + } + } + +For more information, see `Delete attachments `__ in the *Cloud WAN User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-bucket-analytics-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-bucket-analytics-configuration.rst new file mode 100755 index 000000000..51c3d0a5f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-bucket-analytics-configuration.rst @@ -0,0 +1,9 @@ +**To delete an analytics configuration for a bucket** + +The following ``delete-bucket-analytics-configuration`` example removes the analytics configuration for the specified bucket and ID. :: + + aws s3api delete-bucket-analytics-configuration \ + --bucket amzn-s3-demo-bucket \ + --id 1 + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-bucket-metrics-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-bucket-metrics-configuration.rst new file mode 100755 index 000000000..6b428609f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-bucket-metrics-configuration.rst @@ -0,0 +1,9 @@ +**To delete a metrics configuration for a bucket** + +The following ``delete-bucket-metrics-configuration`` example removes the metrics configuration for the specified bucket and ID. :: + + aws s3api delete-bucket-metrics-configuration \ + --bucket amzn-s3-demo-bucket \ + --id 123 + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-core-network.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-core-network.rst new file mode 100644 index 000000000..f7cf0f643 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-core-network.rst @@ -0,0 +1,36 @@ +**To delete a core network** + +The following ``delete-core-network`` example deletes a core network from a Cloud WAN global network. :: + + aws networkmanager delete-core-network \ + --core-network-id core-network-0fab62fe438d94db6 + +Output:: + + { + "CoreNetwork": { + "GlobalNetworkId": "global-network-0d59060f16a73bc41", + "CoreNetworkId": "core-network-0fab62fe438d94db6", + "Description": "Main headquarters location", + "CreatedAt": "2021-12-09T18:31:11+00:00", + "State": "DELETING", + "Segments": [ + { + "Name": "dev", + "EdgeLocations": [ + "us-east-1" + ], + "SharedSegments": [] + } + ], + "Edges": [ + { + "EdgeLocation": "us-east-1", + "Asn": 64512, + "InsideCidrBlocks": [] + } + ] + } + } + +For more information, see `Core networks `__ in the *Cloud WAN User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-device.rst new file mode 100644 index 000000000..8cfde6cfc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-device.rst @@ -0,0 +1,28 @@ +**To delete a device** + +The following ``delete-device`` example deletes the specified device from the specified global network. :: + + aws networkmanager delete-device \ + --global-network-id global-network-01231231231231231 \ + --device-id device-07f6fd08867abc123 \ + --region us-west-2 + +Output:: + + { + "Device": { + "DeviceId": "device-07f6fd08867abc123", + "DeviceArn": "arn:aws:networkmanager::123456789012:device/global-network-01231231231231231/device-07f6fd08867abc123", + "GlobalNetworkId": "global-network-01231231231231231", + "Description": "New York office device", + "Type": "office device", + "Vendor": "anycompany", + "Model": "abcabc", + "SerialNumber": "1234", + "SiteId": "site-444555aaabbb11223", + "CreatedAt": 1575554005.0, + "State": "DELETING" + } + } + +For more information, see `Working with Devices `__ in the *Transit Gateway Network Manager Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-global-network.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-global-network.rst new file mode 100644 index 000000000..46922c3a9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-global-network.rst @@ -0,0 +1,17 @@ +**To delete a global network** + +The following ``delete-global-network`` example deletes a global network. :: + + aws networkmanager delete-global-network \ + --global-network-id global-network-052bedddccb193b6b + +Output:: + + { + "GlobalNetwork": { + "GlobalNetworkId": "global-network-052bedddccb193b6b", + "GlobalNetworkArn": "arn:aws:networkmanager::987654321012:global-network/global-network-052bedddccb193b6b", + "CreatedAt": "2021-12-09T18:19:12+00:00", + "State": "DELETING" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-link.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-link.rst new file mode 100644 index 000000000..76ae0da88 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-link.rst @@ -0,0 +1,30 @@ +**To delete a link** + +The following ``delete-link`` example deletes the specified link from the specified global network. :: + + aws networkmanager delete-link \ + --global-network-id global-network-01231231231231231 \ + --link-id link-11112222aaaabbbb1 \ + --region us-west-2 + +Output:: + + { + "Link": { + "LinkId": "link-11112222aaaabbbb1", + "LinkArn": "arn:aws:networkmanager::123456789012:link/global-network-01231231231231231/link-11112222aaaabbbb1", + "GlobalNetworkId": "global-network-01231231231231231", + "SiteId": "site-444555aaabbb11223", + "Description": "VPN Link", + "Type": "broadband", + "Bandwidth": { + "UploadSpeed": 20, + "DownloadSpeed": 20 + }, + "Provider": "AnyCompany", + "CreatedAt": 1575555811.0, + "State": "DELETING" + } + } + +For more information, see `Working with Links `__ in the *Transit Gateway Network Manager Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-public-access-block.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-public-access-block.rst new file mode 100755 index 000000000..54fd0ee6d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-public-access-block.rst @@ -0,0 +1,8 @@ +**To delete the block public access configuration for a bucket** + +The following ``delete-public-access-block`` example removes the block public access configuration on the specified bucket. :: + + aws s3api delete-public-access-block \ + --bucket amzn-s3-demo-bucket + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-site.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-site.rst new file mode 100644 index 000000000..2364613ad --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/delete-site.rst @@ -0,0 +1,27 @@ +**To delete a site** + +The following ``delete-site`` example deletes the specified site (``site-444555aaabbb11223``) in the specified global network. :: + + aws networkmanager delete-site \ + --global-network-id global-network-01231231231231231 \ + --site-id site-444555aaabbb11223 \ + --region us-west-2 + +Output:: + + { + "Site": { + "SiteId": "site-444555aaabbb11223", + "SiteArn": "arn:aws:networkmanager::123456789012:site/global-network-01231231231231231/site-444555aaabbb11223", + "GlobalNetworkId": "global-network-01231231231231231", + "Description": "New York head office", + "Location": { + "Latitude": "40.7128", + "Longitude": "-74.0060" + }, + "CreatedAt": 1575554300.0, + "State": "DELETING" + } + } + +For more information, see `Working with Sites `__ in the *Transit Gateway Network Manager Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/deregister-transit-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/deregister-transit-gateway.rst new file mode 100644 index 000000000..e4c6a1a00 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/deregister-transit-gateway.rst @@ -0,0 +1,22 @@ +**To deregister a transit gateway from a global network** + +The following ``deregister-transit-gateway`` example deregisters the specified transit gateway from the specified global network. :: + + aws networkmanager deregister-transit-gateway \ + --global-network-id global-network-01231231231231231 \ + --transit-gateway-arn arn:aws:ec2:us-west-2:123456789012:transit-gateway/tgw-123abc05e04123abc \ + --region us-west-2 + +Output:: + + { + "TransitGatewayRegistration": { + "GlobalNetworkId": "global-network-01231231231231231", + "TransitGatewayArn": "arn:aws:ec2:us-west-2:123456789012:transit-gateway/tgw-123abc05e04123abc", + "State": { + "Code": "DELETING" + } + } + } + +For more information, see `Transit Gateway Registrations `__ in the *Transit Gateway Network Manager Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/describe-global-networks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/describe-global-networks.rst new file mode 100644 index 000000000..1e83739b2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/describe-global-networks.rst @@ -0,0 +1,20 @@ +**To describe your global networks** + +The following ``describe-global-networks`` example describes all of your global networks in your account. :: + + aws networkmanager describe-global-networks \ + --region us-west-2 + +Output:: + + { + "GlobalNetworks": [ + { + "GlobalNetworkId": "global-network-01231231231231231", + "GlobalNetworkArn": "arn:aws:networkmanager::123456789012:global-network/global-network-01231231231231231", + "Description": "Company 1 global network", + "CreatedAt": 1575553525.0, + "State": "AVAILABLE" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/disassociate-customer-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/disassociate-customer-gateway.rst new file mode 100644 index 000000000..ada3f5637 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/disassociate-customer-gateway.rst @@ -0,0 +1,21 @@ +**To disassociate a customer gateway** + +The following ``disassociate-customer-gateway`` example disassociates the specified customer gateway (``cgw-11223344556677889``) from the specified global network. :: + + aws networkmanager disassociate-customer-gateway \ + --global-network-id global-network-01231231231231231 \ + --customer-gateway-arn arn:aws:ec2:us-west-2:123456789012:customer-gateway/cgw-11223344556677889 \ + --region us-west-2 + +Output:: + + { + "CustomerGatewayAssociation": { + "CustomerGatewayArn": "arn:aws:ec2:us-west-2:123456789012:customer-gateway/cgw-11223344556677889", + "GlobalNetworkId": "global-network-01231231231231231", + "DeviceId": "device-07f6fd08867abc123", + "State": "DELETING" + } + } + +For more information, see `Customer Gateway Associations `__ in the *Transit Gateway Network Manager Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/disassociate-link.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/disassociate-link.rst new file mode 100644 index 000000000..16b022918 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/disassociate-link.rst @@ -0,0 +1,22 @@ +**To disassociate a link** + +The following ``disassociate-link`` example disassociates the specified link from device ``device-07f6fd08867abc123`` in the specified global network. :: + + aws networkmanager disassociate-link \ + --global-network-id global-network-01231231231231231 \ + --device-id device-07f6fd08867abc123 \ + --link-id link-11112222aaaabbbb1 \ + --region us-west-2 + +Output:: + + { + "LinkAssociation": { + "GlobalNetworkId": "global-network-01231231231231231", + "DeviceId": "device-07f6fd08867abc123", + "LinkId": "link-11112222aaaabbbb1", + "LinkAssociationState": "DELETING" + } + } + +For more information, see `Device and Link Associations `__ in the *Transit Gateway Network Manager Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-bucket-analytics-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-bucket-analytics-configuration.rst new file mode 100755 index 000000000..b6f1ffe97 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-bucket-analytics-configuration.rst @@ -0,0 +1,16 @@ +**To retrieve the analytics configuration for a bucket with a specific ID** + +The following ``get-bucket-analytics-configuration`` example displays the analytics configuration for the specified bucket and ID. :: + + aws s3api get-bucket-analytics-configuration \ + --bucket amzn-s3-demo-bucket \ + --id 1 + +Output:: + + { + "AnalyticsConfiguration": { + "StorageClassAnalysis": {}, + "Id": "1" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-bucket-metrics-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-bucket-metrics-configuration.rst new file mode 100755 index 000000000..bfed5f180 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-bucket-metrics-configuration.rst @@ -0,0 +1,18 @@ +**To retrieve the metrics configuration for a bucket with a specific ID** + +The following ``get-bucket-metrics-configuration`` example displays the metrics configuration for the specified bucket and ID. :: + + aws s3api get-bucket-metrics-configuration \ + --bucket amzn-s3-demo-bucket \ + --id 123 + +Output:: + + { + "MetricsConfiguration": { + "Filter": { + "Prefix": "logs" + }, + "Id": "123" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-customer-gateway-associations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-customer-gateway-associations.rst new file mode 100644 index 000000000..fc0431455 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-customer-gateway-associations.rst @@ -0,0 +1,20 @@ +**To get your customer gateway associations** + +The following ``get-customer-gateway-associations`` example gets the customer gateway associations for the specified global network. :: + + aws networkmanager get-customer-gateway-associations \ + --global-network-id global-network-01231231231231231 \ + --region us-west-2 + +Output:: + + { + "CustomerGatewayAssociations": [ + { + "CustomerGatewayArn": "arn:aws:ec2:us-west-2:123456789012:customer-gateway/cgw-11223344556677889", + "GlobalNetworkId": "global-network-01231231231231231", + "DeviceId": "device-07f6fd08867abc123", + "State": "AVAILABLE" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-devices.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-devices.rst new file mode 100644 index 000000000..0e8c9cbf1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-devices.rst @@ -0,0 +1,26 @@ +**To get your devices** + +The following ``get-devices`` example gets the devices in the specified global network. :: + + aws networkmanager get-devices \ + --global-network-id global-network-01231231231231231 \ + --region us-west-2 + +Output:: + + { + "Devices": [ + { + "DeviceId": "device-07f6fd08867abc123", + "DeviceArn": "arn:aws:networkmanager::123456789012:device/global-network-01231231231231231/device-07f6fd08867abc123", + "GlobalNetworkId": "global-network-01231231231231231", + "Description": "NY office device", + "Type": "office device", + "Vendor": "anycompany", + "Model": "abcabc", + "SerialNumber": "1234", + "CreatedAt": 1575554005.0, + "State": "AVAILABLE" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-link-associations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-link-associations.rst new file mode 100644 index 000000000..a038343e5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-link-associations.rst @@ -0,0 +1,20 @@ +**To get your link associations** + +The following ``get-link-associations`` example gets the link associations in the specified global network. :: + + aws networkmanager get-link-associations \ + --global-network-id global-network-01231231231231231 \ + --region us-west-2 + +Output:: + + { + "LinkAssociations": [ + { + "GlobalNetworkId": "global-network-01231231231231231", + "DeviceId": "device-07f6fd08867abc123", + "LinkId": "link-11112222aaaabbbb1", + "LinkAssociationState": "AVAILABLE" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-links.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-links.rst new file mode 100644 index 000000000..9e2fb64b2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-links.rst @@ -0,0 +1,29 @@ +**To get your links** + +The following ``get-links`` example gets the links in the specified global network. :: + + aws networkmanager get-links \ + --global-network-id global-network-01231231231231231 \ + --region us-west-2 + +Output:: + + { + "Links": [ + { + "LinkId": "link-11112222aaaabbbb1", + "LinkArn": "arn:aws:networkmanager::123456789012:link/global-network-01231231231231231/link-11112222aaaabbbb1", + "GlobalNetworkId": "global-network-01231231231231231", + "SiteId": "site-444555aaabbb11223", + "Description": "VPN Link", + "Type": "broadband", + "Bandwidth": { + "UploadSpeed": 10, + "DownloadSpeed": 20 + }, + "Provider": "AnyCompany", + "CreatedAt": 1575555811.0, + "State": "AVAILABLE" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-object-retention.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-object-retention.rst new file mode 100755 index 000000000..d2930010a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-object-retention.rst @@ -0,0 +1,16 @@ +**To retrieve the object retention configuration for an object** + +The following ``get-object-retention`` example retrieves the object retention configuration for the specified object. :: + + aws s3api get-object-retention \ + --bucket amzn-s3-demo-bucket-with-object-lock \ + --key doc1.rtf + +Output:: + + { + "Retention": { + "Mode": "GOVERNANCE", + "RetainUntilDate": "2025-01-01T00:00:00.000Z" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-public-access-block.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-public-access-block.rst new file mode 100755 index 000000000..abd1b972a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-public-access-block.rst @@ -0,0 +1,16 @@ +**To set or modify the block public access configuration for a bucket** + +The following ``get-public-access-block`` example displays the block public access configuration for the specified bucket. :: + + aws s3api get-public-access-block --bucket amzn-s3-demo-bucket + +Output:: + + { + "PublicAccessBlockConfiguration": { + "IgnorePublicAcls": true, + "BlockPublicPolicy": true, + "BlockPublicAcls": true, + "RestrictPublicBuckets": true + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-sites.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-sites.rst new file mode 100644 index 000000000..6c363f4d7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-sites.rst @@ -0,0 +1,26 @@ +**To get your sites** + +The following ``get-sites`` example gets the sites in the specified global network. :: + + aws networkmanager get-sites \ + --global-network-id global-network-01231231231231231 \ + --region us-west-2 + +Output:: + + { + "Sites": [ + { + "SiteId": "site-444555aaabbb11223", + "SiteArn": "arn:aws:networkmanager::123456789012:site/global-network-01231231231231231/site-444555aaabbb11223", + "GlobalNetworkId": "global-network-01231231231231231", + "Description": "NY head office", + "Location": { + "Latitude": "40.7128", + "Longitude": "-74.0060" + }, + "CreatedAt": 1575554528.0, + "State": "AVAILABLE" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-transit-gateway-registrations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-transit-gateway-registrations.rst new file mode 100644 index 000000000..4908b6eb5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-transit-gateway-registrations.rst @@ -0,0 +1,21 @@ +**To get your transit gateway registrations** + +The following ``get-transit-gateway-registrations`` example gets the transit gateways that are registered to the specified global network. :: + + aws networkmanager get-transit-gateway-registrations \ + --global-network-id global-network-01231231231231231 \ + --region us-west-2 + +Output:: + + { + "TransitGatewayRegistrations": [ + { + "GlobalNetworkId": "global-network-01231231231231231", + "TransitGatewayArn": "arn:aws:ec2:us-west-2:123456789012:transit-gateway/tgw-123abc05e04123abc", + "State": { + "Code": "AVAILABLE" + } + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-vpc-attachment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-vpc-attachment.rst new file mode 100644 index 000000000..7d2c20d04 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/get-vpc-attachment.rst @@ -0,0 +1,41 @@ +**To get a VPC attachment** + +The following ``get-vpc-attachment`` example returns information about a VPC attachment. :: + + aws networkmanager get-vpc-attachment \ + --attachment-id attachment-03b7ea450134787da + +Output:: + + { + "VpcAttachment": { + "Attachment": { + "CoreNetworkId": "core-network-0522de1b226a5d7b3", + "AttachmentId": "attachment-03b7ea450134787da", + "OwnerAccountId": "987654321012", + "AttachmentType": "VPC", + "State": "CREATING", + "EdgeLocation": "us-east-1", + "ResourceArn": "arn:aws:ec2:us-east-1:987654321012:vpc/vpc-a7c4bbda", + "Tags": [ + { + "Key": "Name", + "Value": "DevVPC" + } + ], + "CreatedAt": "2022-03-11T17:48:58+00:00", + "UpdatedAt": "2022-03-11T17:48:58+00:00" + }, + "SubnetArns": [ + "arn:aws:ec2:us-east-1:987654321012:subnet/subnet-202cde6c", + "arn:aws:ec2:us-east-1:987654321012:subnet/subnet-e5022dba", + "arn:aws:ec2:us-east-1:987654321012:subnet/subnet-2387ae02", + "arn:aws:ec2:us-east-1:987654321012:subnet/subnet-cda9dffc" + ], + "Options": { + "Ipv6Support": false + } + } + } + +For more information, see `Attachments `__ in the *Cloud WAN User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/list-bucket-analytics-configurations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/list-bucket-analytics-configurations.rst new file mode 100755 index 000000000..93d5131d7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/list-bucket-analytics-configurations.rst @@ -0,0 +1,18 @@ +**To retrieve a list of analytics configurations for a bucket** + +The following ``list-bucket-analytics-configurations`` retrieves a list of analytics configurations for the specified bucket. :: + + aws s3api list-bucket-analytics-configurations \ + --bucket amzn-s3-demo-bucket + +Output:: + + { + "AnalyticsConfigurationList": [ + { + "StorageClassAnalysis": {}, + "Id": "1" + } + ], + "IsTruncated": false + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/list-bucket-metrics-configurations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/list-bucket-metrics-configurations.rst new file mode 100755 index 000000000..79145dd11 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/list-bucket-metrics-configurations.rst @@ -0,0 +1,26 @@ +**To retrieve a list of metrics configurations for a bucket** + +The following ``list-bucket-metrics-configurations`` example retrieves a list of metrics configurations for the specified bucket. :: + + aws s3api list-bucket-metrics-configurations \ + --bucket amzn-s3-demo-bucket + +Output:: + + { + "IsTruncated": false, + "MetricsConfigurationList": [ + { + "Filter": { + "Prefix": "logs" + }, + "Id": "123" + }, + { + "Filter": { + "Prefix": "tmp" + }, + "Id": "234" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/list-tags-for-resource.rst new file mode 100644 index 000000000..26364e095 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/list-tags-for-resource.rst @@ -0,0 +1,18 @@ +**To list the tags for a resource** + +The following ``list-tags-for-resource`` example lists the tags for the specified device resource (``device-07f6fd08867abc123``). :: + + aws networkmanager list-tags-for-resource \ + --resource-arn arn:aws:networkmanager::123456789012:device/global-network-01231231231231231/device-07f6fd08867abc123 \ + --region us-west-2 + +Output:: + + { + "TagList": [ + { + "Key": "Network", + "Value": "Northeast" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/put-bucket-metrics-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/put-bucket-metrics-configuration.rst new file mode 100755 index 000000000..7e6b3123e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/put-bucket-metrics-configuration.rst @@ -0,0 +1,10 @@ +**To set a metrics configuration for a bucket** + +The following ``put-bucket-metrics-configuration`` example sets a metric configuration with ID 123 for the specified bucket. :: + + aws s3api put-bucket-metrics-configuration \ + --bucket amzn-s3-demo-bucket \ + --id 123 \ + --metrics-configuration '{"Id": "123", "Filter": {"Prefix": "logs"}}' + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/put-object-retention.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/put-object-retention.rst new file mode 100755 index 000000000..092a22937 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/put-object-retention.rst @@ -0,0 +1,10 @@ +**To set an object retention configuration for an object** + +The following ``put-object-retention`` example sets an object retention configuration for the specified object until 2025-01-01. :: + + aws s3api put-object-retention \ + --bucket amzn-s3-demo-bucket-with-object-lock \ + --key doc1.rtf \ + --retention '{ "Mode": "GOVERNANCE", "RetainUntilDate": "2025-01-01T00:00:00" }' + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/put-public-access-block.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/put-public-access-block.rst new file mode 100755 index 000000000..5d082bc98 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/put-public-access-block.rst @@ -0,0 +1,9 @@ +**To set the block public access configuration for a bucket** + +The following ``put-public-access-block`` example sets a restrictive block public access configuration for the specified bucket. :: + + aws s3api put-public-access-block \ + --bucket amzn-s3-demo-bucket \ + --public-access-block-configuration "BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true" + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/register-transit-gateway.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/register-transit-gateway.rst new file mode 100644 index 000000000..a41772ef8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/register-transit-gateway.rst @@ -0,0 +1,22 @@ +**To register a transit gateway in a global network** + +The following ``register-transit-gateway`` example registers transit gateway ``tgw-123abc05e04123abc`` in the specified global network. :: + + aws networkmanager register-transit-gateway \ + --global-network-id global-network-01231231231231231 \ + --transit-gateway-arn arn:aws:ec2:us-west-2:123456789012:transit-gateway/tgw-123abc05e04123abc \ + --region us-west-2 + +Output:: + + { + "TransitGatewayRegistration": { + "GlobalNetworkId": "global-network-01231231231231231", + "TransitGatewayArn": "arn:aws:ec2:us-west-2:123456789012:transit-gateway/tgw-123abc05e04123abc", + "State": { + "Code": "PENDING" + } + } + } + +For more information, see `Transit Gateway Registrations `__ in the *Transit Gateway Network Manager Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/reject-attachment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/reject-attachment.rst new file mode 100644 index 000000000..95c788267 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/reject-attachment.rst @@ -0,0 +1,24 @@ +**To reject an attachment** + +The following ``reject-attachment`` example rejects a VPC attachment request. :: + + aws networkmanager reject-attachment \ + --attachment-id attachment-03b7ea450134787da + +Output:: + + { + "Attachment": { + "CoreNetworkId": "core-network-0522de1b226a5d7b3", + "AttachmentId": "attachment-03b7ea450134787da", + "OwnerAccountId": "987654321012", + "AttachmentType": "VPC", + "State": "AVAILABLE", + "EdgeLocation": "us-east-1", + "ResourceArn": "arn:aws:ec2:us-east-1:987654321012:vpc/vpc-a7c4bbda", + "CreatedAt": "2022-03-11T17:48:58+00:00", + "UpdatedAt": "2022-03-11T17:51:25+00:00" + } + } + +For more information, see `Attachment acceptance `__ in the *Cloud WAN User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/start-route-analysis.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/start-route-analysis.rst new file mode 100644 index 000000000..ef563c285 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/start-route-analysis.rst @@ -0,0 +1,35 @@ +**To start route analysis** + +The following ``start-route-analysis`` example starts the analysis between a source and destination, including the optional ``include-return-path``. :: + + aws networkmanager start-route-analysis \ + --global-network-id global-network-00aa0aaa0b0aaa000 \ + --source TransitGatewayAttachmentArn=arn:aws:ec2:us-east-1:503089527312:transit-gateway-attachment/tgw-attach-0d4a2d491bf68c093,IpAddress=10.0.0.0 \ + --destination TransitGatewayAttachmentArn=arn:aws:ec2:us-west-1:503089527312:transit-gateway-attachment/tgw-attach-002577f30bb181742,IpAddress=11.0.0.0 \ + --include-return-path + +Output:: + + { + "RouteAnalysis": { + "GlobalNetworkId": "global-network-00aa0aaa0b0aaa000 + "OwnerAccountId": "1111222233333", + "RouteAnalysisId": "a1873de1-273c-470c-1a2bc2345678", + "StartTimestamp": 1695760154.0, + "Status": "RUNNING", + "Source": { + "TransitGatewayAttachmentArn": "arn:aws:ec2:us-east-1:111122223333:transit-gateway-attachment/tgw-attach-1234567890abcdef0, + "TransitGatewayArn": "arn:aws:ec2:us-east-1:111122223333:transit-gateway/tgw-abcdef01234567890", + "IpAddress": "10.0.0.0" + }, + "Destination": { + "TransitGatewayAttachmentArn": "arn:aws:ec2:us-west-1:555555555555:transit-gateway-attachment/tgw-attach-021345abcdef6789", + "TransitGatewayArn": "arn:aws:ec2:us-west-1:111122223333:transit-gateway/tgw-09876543210fedcba0", + "IpAddress": "11.0.0.0" + }, + "IncludeReturnPath": true, + "UseMiddleboxes": false + } + } + +For more information, see `Route Analyzer `__ in the *AWS Global Networks for Transit Gateways User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/tag-resource.rst new file mode 100644 index 000000000..5bf3625aa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/tag-resource.rst @@ -0,0 +1,10 @@ +**To apply tags to a resource** + +The following ``tag-resource`` example applies the tag ``Network=Northeast`` to the device ``device-07f6fd08867abc123``. :: + + aws networkmanager tag-resource \ + --resource-arn arn:aws:networkmanager::123456789012:device/global-network-01231231231231231/device-07f6fd08867abc123 \ + --tags Key=Network,Value=Northeast \ + --region us-west-2 + +This command produces no output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/untag-resource.rst new file mode 100644 index 000000000..fc00a224e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/untag-resource.rst @@ -0,0 +1,10 @@ +**To remove tags from a resource** + +The following ``untag-resource`` example removes the tag with the key ``Network`` from the device ``device-07f6fd08867abc123``. :: + + aws networkmanager untag-resource \ + --resource-arn arn:aws:networkmanager::123456789012:device/global-network-01231231231231231/device-07f6fd08867abc123 ] + --tag-keys Network \ + --region us-west-2 + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/update-device.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/update-device.rst new file mode 100644 index 000000000..fc4eada3b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/update-device.rst @@ -0,0 +1,29 @@ +**To update a device** + +The following ``update-device`` example updates device ``device-07f6fd08867abc123`` by specifying a site ID for the device. :: + + aws networkmanager update-device \ + --global-network-id global-network-01231231231231231 \ + --device-id device-07f6fd08867abc123 \ + --site-id site-444555aaabbb11223 \ + --region us-west-2 + +Output:: + + { + "Device": { + "DeviceId": "device-07f6fd08867abc123", + "DeviceArn": "arn:aws:networkmanager::123456789012:device/global-network-01231231231231231/device-07f6fd08867abc123", + "GlobalNetworkId": "global-network-01231231231231231", + "Description": "NY office device", + "Type": "Office device", + "Vendor": "anycompany", + "Model": "abcabc", + "SerialNumber": "1234", + "SiteId": "site-444555aaabbb11223", + "CreatedAt": 1575554005.0, + "State": "UPDATING" + } + } + +For more information, see `Working with Devices `__ in the *Transit Gateway Network Manager Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/update-global-network.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/update-global-network.rst new file mode 100644 index 000000000..a8bf9a2ed --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/update-global-network.rst @@ -0,0 +1,22 @@ +**To update a global network** + +The following ``update-global-network`` example updates the description for global network ``global-network-01231231231231231``. :: + + aws networkmanager update-global-network \ + --global-network-id global-network-01231231231231231 \ + --description "Head offices" \ + --region us-west-2 + +Output:: + + { + "GlobalNetwork": { + "GlobalNetworkId": "global-network-01231231231231231", + "GlobalNetworkArn": "arn:aws:networkmanager::123456789012:global-network/global-network-01231231231231231", + "Description": "Head offices", + "CreatedAt": 1575553525.0, + "State": "UPDATING" + } + } + +For more information, see `Global Networks `__ in the *Transit Gateway Network Manager Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/update-link.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/update-link.rst new file mode 100644 index 000000000..b96eaa27c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/update-link.rst @@ -0,0 +1,31 @@ +**To update a link** + +The following ``update-link`` example updates the bandwidth information for link ``link-11112222aaaabbbb1``. :: + + aws networkmanager update-link \ + --global-network-id global-network-01231231231231231 \ + --link-id link-11112222aaaabbbb1 \ + --bandwidth UploadSpeed=20,DownloadSpeed=20 \ + --region us-west-2 + +Output:: + + { + "Link": { + "LinkId": "link-11112222aaaabbbb1", + "LinkArn": "arn:aws:networkmanager::123456789012:link/global-network-01231231231231231/link-11112222aaaabbbb1", + "GlobalNetworkId": "global-network-01231231231231231", + "SiteId": "site-444555aaabbb11223", + "Description": "VPN Link", + "Type": "broadband", + "Bandwidth": { + "UploadSpeed": 20, + "DownloadSpeed": 20 + }, + "Provider": "AnyCompany", + "CreatedAt": 1575555811.0, + "State": "UPDATING" + } + } + +For more information, see `Working with Links `__ in the *Transit Gateway Network Manager Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/update-site.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/update-site.rst new file mode 100644 index 000000000..a6768cf5c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmanager/update-site.rst @@ -0,0 +1,28 @@ +**To update a site** + +The following ``update-site`` example updates the description for site ``site-444555aaabbb11223`` in the specified global network. :: + + aws networkmanager update-site \ + --global-network-id global-network-01231231231231231 \ + --site-id site-444555aaabbb11223 \ + --description "New York Office site" \ + --region us-west-2 + +Output:: + + { + "Site": { + "SiteId": "site-444555aaabbb11223", + "SiteArn": "arn:aws:networkmanager::123456789012:site/global-network-01231231231231231/site-444555aaabbb11223", + "GlobalNetworkId": "global-network-01231231231231231", + "Description": "New York Office site", + "Location": { + "Latitude": "40.7128", + "Longitude": "-74.0060" + }, + "CreatedAt": 1575554528.0, + "State": "UPDATING" + } + } + +For more information, see `Working with Sites `__ in the *Transit Gateway Network Manager Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/create-monitor.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/create-monitor.rst new file mode 100644 index 000000000..cdc595852 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/create-monitor.rst @@ -0,0 +1,66 @@ +**Example 1: To create a network monitor with an aggregation period** + +The following ``create-monitor`` example creates a monitor named ``Example_NetworkMonitor`` with an ``aggregationPeriod`` set to ``30`` seconds. The initial ``state`` of the monitor will be ``INACTIVE`` because there are no probes associated with it. The state changes to ``ACTIVE`` only when probes are added. You can use the `update-monitor `__ or `create-probe `__ commands to add probes to this monitor. :: + + aws networkmonitor create-monitor \ + --monitor-name Example_NetworkMonitor \ + --aggregation-period 30 + +Output:: + + { + "monitorArn": "arn:aws:networkmonitor:region:111122223333:monitor/Example_NetworkMonitor", + "monitorName": "Example_NetworkMonitor", + "state": "INACTIVE", + "aggregationPeriod": 30, + "tags": {} + } + +For more information, see `How Amazon CloudWatch Network Monitor Works `__ in the *Amazon CloudWatch User Guide*. + +**Example 2: To create a network monitor with a probe using TCP and also includes tags** + +The following ``create-monitor`` example creates a monitor named ``Example_NetworkMonitor``. The command also creates one probe that uses the ``ICMP`` protocol and includes tags. Since no ``aggregationPeriod`` is passed in the request, ``60`` seconds is set as the default. The ``state`` of the monitor with the probe will be ``PENDING`` until the monitor is ``ACTIVE``. This might take several minutes, at which point the ``state`` will change to ``ACTIVE``, and you can start viewing CloudWatch metrics. :: + + aws networkmonitor create-monitor \ + --monitor-name Example_NetworkMonitor \ + --probes sourceArn=arn:aws:ec2:region:111122223333:subnet/subnet-id,destination=10.0.0.100,destinationPort=80,protocol=TCP,packetSize=56,probeTags={Name=Probe1} \ + --tags Monitor=Monitor1 + +Output:: + + { + "monitorArn": "arn:aws:networkmonitor:region111122223333:monitor/Example_NetworkMonitor", + "monitorName": "Example_NetworkMonitor", + "state": "PENDING", + "aggregationPeriod": 60, + "tags": { + "Monitor": "Monitor1" + } + } + +For more information, see `How Amazon CloudWatch Network Monitor Works `__ in the *Amazon CloudWatch User Guide*. + +**Example 3: To create a network monitor with a probe using ICMP and also includes tags** + +The following ``create-monitor`` example creates a monitor named ``Example_NetworkMonitor`` with an ``aggregationPeriod`` of ``30`` seconds. The command also creates one probe that uses the ``ICMP`` protocol and includes tags. Since no ``aggregationPeriod`` is passed in the request, ``60`` seconds is set as the default. The ``state`` of the monitor with the probe will be ``PENDING`` until the monitor is ``ACTIVE``. This might take several minutes, at which point the ``state`` will change to ``ACTIVE``, and you can start viewing CloudWatch metrics. :: + + aws networkmonitor create-monitor \ + --monitor-name Example_NetworkMonitor \ + --aggregation-period 30 \ + --probes sourceArn=arn:aws:ec2:region111122223333:subnet/subnet-id,destination=10.0.0.100,protocol=ICMP,packetSize=56,probeTags={Name=Probe1} \ + --tags Monitor=Monitor1 + +Output:: + + { + "monitorArn": "arn:aws:networkmonitor:region:111122223333:monitor/Example_NetworkMonitor", + "monitorName": "Example_NetworkMonitor", + "state": "PENDING", + "aggregationPeriod": 30, + "tags": { + "Monitor": "Monitor1" + } + } + +For more information, see `How Amazon CloudWatch Network Monitor Works `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/create-probe.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/create-probe.rst new file mode 100644 index 000000000..8c7a8904a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/create-probe.rst @@ -0,0 +1,52 @@ +**Example 1: To create a probe that uses TCP and add it to a network monitor** + +The following ``create-probe`` example creates a probe that uses the ``TCP`` ``protocol`` and adds the probe to a monitor named ``Example_NetworkMonitor``. Once created, the ``state`` of the monitor with the probe will be ``PENDING`` until the monitor is ``ACTIVE``. This might take several minutes, at which point the state will change to ``ACTIVE``, and you can start viewing CloudWatch metrics. :: + + aws networkmonitor create-probe \ + --monitor-name Example_NetworkMonitor \ + --probe sourceArn=arn:aws:ec2:region:111122223333:subnet/subnet-id,destination=10.0.0.100,destinationPort=80,protocol=TCP,packetSize=56,tags={Name=Probe1} + +Output:: + + { + "probeId": "probe-12345", + "probeArn": "arn:aws:networkmonitor:region:111122223333:probe/probe-12345", + "destination": "10.0.0.100", + "destinationPort": 80, + "packetSize": 56, + "addressFamily": "IPV4", + "vpcId": "vpc-12345", + "state": "PENDING", + "createdAt": "2024-03-29T12:41:57.314000-04:00", + "modifiedAt": "2024-03-29T12:41:57.314000-04:00", + "tags": { + "Name": "Probe1" + } + } + +**Example 2: To create a probe that uses probe using ICMP and add it to a network monitor** + +The following ``create-probe`` example creates a probe that uses the ``ICMP`` ``protocol`` and adds the probe to a monitor named ``Example_NetworkMonitor``. Once created, the ``state`` of the monitor with the probe will be ``PENDING`` until the monitor is ``ACTIVE``. This might take several minutes, at which point the state will change to ``ACTIVE``, and you can start viewing CloudWatch metrics. :: + + aws networkmonitor create-probe \ + --monitor-name Example_NetworkMonitor \ + --probe sourceArn=arn:aws:ec2:region:012345678910:subnet/subnet-id,destination=10.0.0.100,protocol=ICMP,packetSize=56,tags={Name=Probe1} + +Output:: + + { + "probeId": "probe-12345", + "probeArn": "arn:aws:networkmonitor:region:111122223333:probe/probe-12345", + "destination": "10.0.0.100", + "packetSize": 56, + "addressFamily": "IPV4", + "vpcId": "vpc-12345", + "state": "PENDING", + "createdAt": "2024-03-29T12:44:02.452000-04:00", + "modifiedAt": "2024-03-29T12:44:02.452000-04:00", + "tags": { + "Name": "Probe1" + } + } + +For more information, see `How Amazon CloudWatch Network Monitor Works `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/delete-monitor.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/delete-monitor.rst new file mode 100644 index 000000000..7d7c8d268 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/delete-monitor.rst @@ -0,0 +1,10 @@ +**To delete a monitor** + +The following ``delete-monitor`` example deletes a monitor named ``Example_NetworkMonitor``. :: + + aws networkmonitor delete-monitor \ + --monitor-name Example_NetworkMonitor + +This command produces no output. + +For more information, see `How Amazon CloudWatch Network Monitor Works `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/delete-probe.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/delete-probe.rst new file mode 100644 index 000000000..f5455fddd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/delete-probe.rst @@ -0,0 +1,11 @@ +**To delete a probe** + +The following ``delete-probe`` example deletes a probe with the ID ``probe-12345`` from a network monitor named ``Example_NetworkMonitor``. :: + + aws networkmonitor delete-probe \ + --monitor-name Example_NetworkMonitor \ + --probe-id probe-12345 + +This command produces no output. + +For more information, see `How Amazon CloudWatch Network Monitor Works `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/get-monitor.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/get-monitor.rst new file mode 100644 index 000000000..8971977d4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/get-monitor.rst @@ -0,0 +1,21 @@ +**To get monitor information** + +The following ``get-monitor`` example gets information about a monitor named ``Example_NetworkMonitor``. :: + + aws networkmonitor get-monitor \ + --monitor-name Example_NetworkMonitor + +Output:: + + { + "monitorArn": "arn:aws:networkmonitor:region:012345678910:monitor/Example_NetworkMonitor", + "monitorName": "Example_NetworkMonitor", + "state": "ACTIVE", + "aggregationPeriod": 60, + "tags": {}, + "probes": [], + "createdAt": "2024-04-01T17:58:07.211000-04:00", + "modifiedAt": "2024-04-01T17:58:07.211000-04:00" + } + +For more information, see `How Amazon CloudWatch Network Monitor Works `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/get-probe.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/get-probe.rst new file mode 100644 index 000000000..1c5c0ae2b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/get-probe.rst @@ -0,0 +1,29 @@ +**To view probe details** + +The following ``get-probe`` example returns details about a probe with the ``probeID`` ``probe-12345`` that's associated with a monitor named ``Example_NetworkMonitor``. :: + + aws networkmonitor get-probe \ + --monitor-name Example_NetworkMonitor \ + --probe-id probe-12345 + +Output:: + + { + "probeId": "probe-12345", + "probeArn": "arn:aws:networkmonitor:region:012345678910:probe/probe-12345", + "sourceArn": "arn:aws:ec2:region:012345678910:subnet/subnet-12345", + "destination": "10.0.0.100", + "destinationPort": 80, + "protocol": "TCP", + "packetSize": 56, + "addressFamily": "IPV4", + "vpcId": "vpc-12345", + "state": "ACTIVE", + "createdAt": "2024-03-29T12:41:57.314000-04:00", + "modifiedAt": "2024-03-29T12:42:28.610000-04:00", + "tags": { + "Name": "Probe1" + } + } + +For more information, see `How Amazon CloudWatch Network Monitor Works `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/list-monitors.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/list-monitors.rst new file mode 100644 index 000000000..4c805d1b9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/list-monitors.rst @@ -0,0 +1,60 @@ +**Example 1: To list all monitors (single monitor)** + +The following ``list-monitors`` example returns a list of only a single monitor. The monitor's ``state`` is ``ACTIVE`` and it has an ``aggregationPeriod`` of 60 seconds. :: + + aws networkmonitor list-monitors + +Output:: + + { + "monitors": [{ + "monitorArn": "arn:aws:networkmonitor:region:012345678910:monitor/Example_NetworkMonitor", + "monitorName": "Example_NetworkMonitor", + "state": "ACTIVE", + "aggregationPeriod": 60, + "tags": { + "Monitor": "Monitor1" + } + } + ] + } + +For more information, see `How Amazon CloudWatch Network Monitor Works `__ in the *Amazon CloudWatch User Guide*. + +**Example 2: To list all monitors (multiple monitors)** + +The following ``list-monitors`` example returns a list of three monitors. The ``state`` of one monitor is ``ACTIVE`` and generating CloudWatch metrics. The states of the other two monitors are ``INACTIVE`` and not generating CloudWatch metrics. All three monitors use an ``aggregationPeriod`` of 60 seconds. :: + + aws networkmonitor list-monitors + +Output:: + + { + "monitors": [ + { + "monitorArn": "arn:aws:networkmonitor:us-east-1:111122223333:monitor/Example_NetworkMonitor", + "monitorName": "Example_NetworkMonitor", + "state": "INACTIVE", + "aggregationPeriod": 60, + "tags": {} + }, + { + "monitorArn": "arn:aws:networkmonitor:us-east-1:111122223333:monitor/Example_NetworkMonitor2", + "monitorName": "Example_NetworkMonitor2", + "state": "ACTIVE", + "aggregationPeriod": 60, + "tags": { + "Monitor": "Monitor1" + } + }, + { + "monitorArn": "arn:aws:networkmonitor:us-east-1:111122223333:monitor/TestNetworkMonitor_CLI", + "monitorName": "TestNetworkMonitor_CLI", + "state": "INACTIVE", + "aggregationPeriod": 60, + "tags": {} + } + ] + } + +For more information, see `How Amazon CloudWatch Network Monitor Works `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/list-tags-for-resource.rst new file mode 100644 index 000000000..90dd21f74 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/list-tags-for-resource.rst @@ -0,0 +1,17 @@ +**To list tags for a resource** + +The following ``list-tags-for-resource`` example returns a list of the tags for a monitor named ``Example_NetworkMonitor``. :: + + aws networkmonitor list-tags-for-resource \ + --resource-arn arn:aws:networkmonitor:region:012345678910:monitor/Example_NetworkMonitor + +Output:: + + { + "tags": { + "Environment": "Dev", + "Application": "PetStore" + } + } + +For more information, see `How Amazon CloudWatch Network Monitor Works `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/tag-resource.rst new file mode 100644 index 000000000..f19860563 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/tag-resource.rst @@ -0,0 +1,11 @@ +**To tag a resource** + +The following ``tag-resource`` example tags a monitor named ``Example_NetworkMonitor`` with ``Environment=Dev`` and ``Application=PetStore`` tags. :: + + aws networkmonitor tag-resource \ + --resource-arn arn:aws:networkmonitor:region:012345678910:monitor/Example_NetworkMonitor \ + --tags Environment=Dev,Application=PetStore + +This command produces no output. + +For more information, see `How Amazon CloudWatch Network Monitor Works `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/untag-resource.rst new file mode 100644 index 000000000..0d4930688 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/untag-resource.rst @@ -0,0 +1,11 @@ +**To untag a resource** + +The following ``untag-resource`` example removes a ``tag-keys`` parameter with the key-value pair of ``Environment Application`` from its association with a monitor named ``Example_NetworkMonitor``. :: + + aws networkmonitor untag-resource \ + --resource-arn arn:aws:networkmonitor:region:012345678910:monitor/Example_NetworkMonitor \ + --tag-keys Environment Application + +This command produces no output. + +For more information, see `How Amazon CloudWatch Network Monitor Works `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/update-monitor.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/update-monitor.rst new file mode 100644 index 000000000..41b58e31c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/update-monitor.rst @@ -0,0 +1,21 @@ +**To update a monitor** + +The following ``update-monitor`` example changes a monitor's ``aggregationPeriod`` from ``60`` seconds to ``30`` seconds. :: + + aws networkmonitor update-monitor \ + --monitor-name Example_NetworkMonitor \ + --aggregation-period 30 + +Output:: + + { + "monitorArn": "arn:aws:networkmonitor:region:012345678910:monitor/Example_NetworkMonitor", + "monitorName": "Example_NetworkMonitor", + "state": "PENDING", + "aggregationPeriod": 30, + "tags": { + "Monitor": "Monitor1" + } + } + +For more information, see `How Amazon CloudWatch Network Monitor Works `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/update-probe.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/update-probe.rst new file mode 100644 index 000000000..aa3d47326 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/networkmonitor/update-probe.rst @@ -0,0 +1,31 @@ +**To update a probe** + +The following ``update-probe`` example updates a probe's original ``destination`` IP address and also updates the ``packetSize`` to ``60``. :: + + aws networkmonitor update-probe \ + --monitor-name Example_NetworkMonitor \ + --probe-id probe-12345 \ + --destination 10.0.0.150 \ + --packet-size 60 + +Output:: + + { + "probeId": "probe-12345", + "probeArn": "arn:aws:networkmonitor:region:012345678910:probe/probe-12345", + "sourceArn": "arn:aws:ec2:region:012345678910:subnet/subnet-12345", + "destination": "10.0.0.150", + "destinationPort": 80, + "protocol": "TCP", + "packetSize": 60, + "addressFamily": "IPV4", + "vpcId": "vpc-12345", + "state": "PENDING", + "createdAt": "2024-03-29T12:41:57.314000-04:00", + "modifiedAt": "2024-03-29T13:52:23.115000-04:00", + "tags": { + "Name": "Probe1" + } + } + +For more information, see `How Amazon CloudWatch Network Monitor Works `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/create-link.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/create-link.rst new file mode 100644 index 000000000..5a028db80 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/create-link.rst @@ -0,0 +1,24 @@ +**To create a link** + +The following ``create-link`` example creates a link between a source account and a sink that you have created in a monitoring account. :: + + aws oam create-link \ + --label-template sourceAccount \ + --resource-types AWS::CloudWatch::Metric \ + --sink-identifier arn:aws:oam:us-east-2:123456789012:sink/a1b2c3d4-5678-90ab-cdef-example12345 + +Output:: + + { + "Arn": "arn:aws:oam:us-east-2:123456789111:link/a1b2c3d4-5678-90ab-cdef-example11111", + "Id": "a1b2c3d4-5678-90ab-cdef-example11111", + "Label": "sourceAccount", + "LabelTemplate": "sourceAccount", + "ResourceTypes": [ + "AWS::CloudWatch::Metric" + ], + "SinkArn": "arn:aws:oam:us-east-2:123456789012:sink/a1b2c3d4-5678-90ab-cdef-example12345", + "Tags": {} + } + +For more information, see `CloudWatch cross-account observability `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/create-sink.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/create-sink.rst new file mode 100644 index 000000000..a0afda540 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/create-sink.rst @@ -0,0 +1,17 @@ +**To create a sink** + +The following ``create-sink`` example creates a sink in the current account, so that it can be used as a monitoring account in CloudWatch cross-account observability. :: + + aws oam create-sink \ + --name DemoSink + +Output:: + + { + "Arn": "arn:aws:oam:us-east-2:123456789012:sink/a1b2c3d4-5678-90ab-cdef-example12345", + "Id": "a1b2c3d4-5678-90ab-cdef-example12345", + "Name": "DemoSink", + "Tags": {} + } + +For more information, see `CloudWatch cross-account observability `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/delete-link.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/delete-link.rst new file mode 100644 index 000000000..6e1d6a2f5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/delete-link.rst @@ -0,0 +1,10 @@ +**To delete a link** + +The following ``delete-link`` example deletes a link between a monitoring account sink and a source account. :: + + aws oam delete-link \ + --identifier arn:aws:oam:us-east-2:123456789111:link/a1b2c3d4-5678-90ab-cdef-example11111 + +This command produces no output. + +For more information, see `CloudWatch cross-account observability `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/delete-sink.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/delete-sink.rst new file mode 100644 index 000000000..0b5b0a99b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/delete-sink.rst @@ -0,0 +1,10 @@ +**To delete a sink** + +The following ``delete-sink`` example deletes a sink. You must delete all links to a sink before you can delete that sink. :: + + aws oam delete-sink \ + --identifier arn:aws:oam:us-east-2:123456789012:sink/a1b2c3d4-5678-90ab-cdef-example12345 + +This command produces no output. + +For more information, see `CloudWatch cross-account observability `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/get-link.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/get-link.rst new file mode 100644 index 000000000..efc8215c8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/get-link.rst @@ -0,0 +1,22 @@ +**To return complete information about one link** + +The following ``get-link`` example returns complete information about a link. :: + + aws oam get-link \ + --identifier arn:aws:oam:us-east-2:123456789111:link/a1b2c3d4-5678-90ab-cdef-example11111 + +Output:: + + { + "Arn": "arn:aws:oam:us-east-2:123456789111:link/a1b2c3d4-5678-90ab-cdef-example11111", + "Id": "a1b2c3d4-5678-90ab-cdef-example11111", + "Label": "sourceAccount", + "LabelTemplate": "sourceAccount", + "ResourceTypes": [ + "AWS::CloudWatch::Metric" + ], + "SinkArn": "arn:aws:oam:us-east-2:123456789012:sink/a1b2c3d4-5678-90ab-cdef-example12345", + "Tags": {} + } + +For more information, see `CloudWatch cross-account observability `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/get-sink-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/get-sink-policy.rst new file mode 100644 index 000000000..b297c7b41 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/get-sink-policy.rst @@ -0,0 +1,16 @@ +**To return the current sink policy attached to the sink** + +The following ``get-sink-policy`` example returns the current sink policy attached to the sink. :: + + aws oam get-sink-policy \ + --sink-identifier arn:aws:oam:us-east-2:123456789012:sink/a1b2c3d4-5678-90ab-cdef-example12345 + +Output:: + + { + "SinkArn": "arn:aws:oam:us-east-2:123456789012:sink/a1b2c3d4-5678-90ab-cdef-example12345", + "SinkId": "a1b2c3d4-5678-90ab-cdef-example12345", + "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789111:root\"},\"Action\":[\"oam:CreateLink\",\"oam:UpdateLink\"],\"Resource\":\"*\",\"Condition\":{\"ForAllValues:StringEquals\":{\"oam:ResourceTypes\":[\"AWS::Logs::LogGroup\",\"AWS::CloudWatch::Metric\",\"AWS::XRay::Trace\",\"AWS::ApplicationInsights::Application\"]}}}]}" + } + +For more information, see `CloudWatch cross-account observability `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/get-sink.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/get-sink.rst new file mode 100644 index 000000000..3d10760dc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/get-sink.rst @@ -0,0 +1,17 @@ +**To return complete information about one monitoring account sink** + +The following ``get-sink`` example returns complete information about a monitoring account sink. :: + + aws oam get-sink \ + --identifier arn:aws:oam:us-east-2:123456789012:sink/a1b2c3d4-5678-90ab-cdef-example12345 + +Output:: + + { + "Arn": "arn:aws:oam:us-east-2:123456789012:sink/a1b2c3d4-5678-90ab-cdef-example12345", + "Id": "a1b2c3d4-5678-90ab-cdef-example12345", + "Name": "DemoSink", + "Tags": {} + } + +For more information, see `CloudWatch cross-account observability `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/list-attached-links.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/list-attached-links.rst new file mode 100644 index 000000000..85bc7ba44 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/list-attached-links.rst @@ -0,0 +1,23 @@ +**To return a list of source account links that are linked to this monitoring account sink** + +The following ``list-attached-links`` example returns a list of source account links that are linked to this monitoring account sink. :: + + aws oam list-attached-links \ + --sink-identifier arn:aws:oam:us-east-2:123456789012:sink/a1b2c3d4-5678-90ab-cdef-example12345 + +Output:: + + { + "Items": [{ + "Label": "Monitoring account", + "LinkArn": "arn:aws:oam:us-east-2:123456789111:link/a1b2c3d4-5678-90ab-cdef-example11111", + "ResourceTypes": [ + "AWS::ApplicationInsights::Application", + "AWS::Logs::LogGroup", + "AWS::CloudWatch::Metric", + "AWS::XRay::Trace" + ] + }] + } + +For more information, see `CloudWatch cross-account observability `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/list-links.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/list-links.rst new file mode 100644 index 000000000..a2bb04270 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/list-links.rst @@ -0,0 +1,21 @@ +**To return a list of links for one monitoring account sink** + +The following ``list-links`` example returns a list of links for one monitoring account sink. Run this operation in a source account to return a list of links to monitoring account sinks that this source account has. :: + + aws oam list-links + +Output:: + + { + "Items": [{ + "Arn": "arn:aws:oam:us-east-2:123456789111:link/a1b2c3d4-5678-90ab-cdef-example11111", + "Id": "a1b2c3d4-5678-90ab-cdef-example11111", + "Label": "sourceAccount", + "ResourceTypes": [ + "AWS::CloudWatch::Metric" + ], + "SinkArn": "arn:aws:oam:us-east-2:123456789012:sink/a1b2c3d4-5678-90ab-cdef-example12345" + }] + } + +For more information, see `CloudWatch cross-account observability `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/list-sinks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/list-sinks.rst new file mode 100644 index 000000000..63c172209 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/list-sinks.rst @@ -0,0 +1,19 @@ +**To return the list of sinks created in the monitoring account** + +The following ``list-sinks`` example returns a list of sinks created in the monitoring account. Run this operation in a monitoring account. :: + + aws oam list-sinks + +Output:: + + { + "Items": [ + { + "Arn": "arn:aws:oam:us-east-2:123456789012:sink/a1b2c3d4-5678-90ab-cdef-example12345", + "Id": "a1b2c3d4-5678-90ab-cdef-example12345", + "Name": "DemoSink" + } + ] + } + +For more information, see `CloudWatch cross-account observability `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/list-tags-for-resource.rst new file mode 100644 index 000000000..7ed746ae1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/list-tags-for-resource.rst @@ -0,0 +1,16 @@ +**To display the tags associated with a resource** + +The following ``list-tags-for-resource`` example displays the tags associated with a sink. :: + + aws oam list-tags-for-resource \ + --resource-arn arn:aws:oam:us-east-2:123456789012:sink/a1b2c3d4-5678-90ab-cdef-example12345 + +Output:: + + { + "Tags": { + "Team": "Devops" + } + } + +For more information, see `CloudWatch cross-account observability `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/put-sink-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/put-sink-policy.rst new file mode 100644 index 000000000..5821fceac --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/put-sink-policy.rst @@ -0,0 +1,17 @@ +**To create or update the resource policy** + +The following ``put-sink-policy`` example creates the resource policy that grants permissions to source accounts to link to the monitoring account sink. :: + + aws oam put-sink-policy \ + --policy '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"arn:aws:iam::123456789111:root"},"Action":["oam:CreateLink","oam:UpdateLink"],"Resource":"*","Condition":{"ForAllValues:StringEquals":{"oam:ResourceTypes":["AWS::Logs::LogGroup","AWS::CloudWatch::Metric","AWS::XRay::Trace","AWS::ApplicationInsights::Application"]}}}]}' \ + --sink-identifier arn:aws:oam:us-east-2:123456789012:sink/a1b2c3d4-5678-90ab-cdef-example12345 + +Output:: + + { + "SinkArn": "arn:aws:oam:us-east-2:123456789012:sink/a1b2c3d4-5678-90ab-cdef-example12345", + "SinkId": "a1b2c3d4-5678-90ab-cdef-example12345", + "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789111:root\"},\"Action\":[\"oam:CreateLink\",\"oam:UpdateLink\"],\"Resource\":\"*\",\"Condition\":{\"ForAllValues:StringEquals\":{\"oam:ResourceTypes\":[\"AWS::Logs::LogGroup\",\"AWS::CloudWatch::Metric\",\"AWS::XRay::Trace\",\"AWS::ApplicationInsights::Application\"]}}}]}" + } + +For more information, see `CloudWatch cross-account observability `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/tag-resource.rst new file mode 100644 index 000000000..15d73dfad --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/tag-resource.rst @@ -0,0 +1,11 @@ +**To assign one or more tags to the specified resource** + +The following ``tag-resource`` example tags a sink ``arn:aws:oam:us-east-2:123456789012:sink/a1b2c3d4-5678-90ab-cdef-example12345``. :: + + aws oam tag-resource \ + --resource-arn arn:aws:oam:us-east-2:123456789012:sink/a1b2c3d4-5678-90ab-cdef-example12345 \ + --tags team=Devops + +This command produces no output. + +For more information, see `CloudWatch cross-account observability `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/untag-resource.rst new file mode 100644 index 000000000..b00c192fa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove one or more tags from the specified resource.** + +The following ``untag-resource`` example removes a tag with the key ``team`` from sink ``arn:aws:oam:us-east-2:123456789012:sink/a1b2c3d4-5678-90ab-cdef-example12345``. :: + + aws oam untag-resource \ + --resource-arn arn:aws:oam:us-east-2:123456789012:sink/f3f42f60-f0f2-425c-1234-12347bdd821f \ + --tag-keys team + +This command produces no output. + +For more information, see `CloudWatch cross-account observability `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/update-link.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/update-link.rst new file mode 100644 index 000000000..b034a6141 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/oam/update-link.rst @@ -0,0 +1,24 @@ +**To change what types of data are shared from a source account to its linked monitoring account sink** + +The following ``update-link`` example updates the link ``arn:aws:oam:us-east-2:123456789111:link/0123e691-e7ef-43fa-1234-c57c837fced0`` with resource types ``AWS::CloudWatch::Metric`` and ``AWS::Logs::LogGroup``. :: + + aws oam update-link \ + --identifier arn:aws:oam:us-east-2:123456789111:link/a1b2c3d4-5678-90ab-cdef-example11111 \ + --resource-types "AWS::CloudWatch::Metric" "AWS::Logs::LogGroup" + +Output:: + + { + "Arn": "arn:aws:oam:us-east-2:123456789111:link/a1b2c3d4-5678-90ab-cdef-example11111", + "Id": "a1b2c3d4-5678-90ab-cdef-example11111", + "Label": "sourceAccount", + "LabelTemplate": "sourceAccount", + "ResourceTypes": [ + "AWS::CloudWatch::Metric", + "AWS::Logs::LogGroup" + ], + "SinkArn": "arn:aws:oam:us-east-2:123456789012:sink/a1b2c3d4-5678-90ab-cdef-example12345", + "Tags": {} + } + +For more information, see `CloudWatch cross-account observability `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/get-telemetry-evaluation-status-for-organization.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/get-telemetry-evaluation-status-for-organization.rst new file mode 100644 index 000000000..59c574403 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/get-telemetry-evaluation-status-for-organization.rst @@ -0,0 +1,13 @@ +**To get telemetry onboarding status for the organization** + +The following ``get-telemetry-evaluation-status-for-organization`` example returns the current onboarding status of the telemetry config feature for the organization. :: + + aws observabilityadmin get-telemetry-evaluation-status-for-organization + +Output:: + + { + "Status": "RUNNING" + } + +For more information, see `Auditing CloudWatch telemetry configurations `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/get-telemetry-evaluation-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/get-telemetry-evaluation-status.rst new file mode 100644 index 000000000..f953b8dea --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/get-telemetry-evaluation-status.rst @@ -0,0 +1,13 @@ +**To get telemetry onboarding status for the account** + +The following ``get-telemetry-evaluation-status`` example returns the current onboarding status of the telemetry config feature in the specified account. :: + + aws observabilityadmin get-telemetry-evaluation-status + +Output:: + + { + "Status": "RUNNING" + } + +For more information, see `Auditing CloudWatch telemetry configurations `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/list-resource-telemetry-for-organization.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/list-resource-telemetry-for-organization.rst new file mode 100644 index 000000000..db79eb32d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/list-resource-telemetry-for-organization.rst @@ -0,0 +1,43 @@ +**To retrieve the telemetry configurations for the organization** + +The following ``list-resource-telemetry-for-organization`` example returns a list of telemetry configurations in the organization for AWS resources supported by telemetry config. :: + + aws observabilityadmin list-resource-telemetry-for-organization \ + --resource-types AWS::EC2::Instance + +Output:: + + { + "TelemetryConfigurations": [ + { + "AccountIdentifier": "111111111111", + "TelemetryConfigurationState": { + "Logs": "NotApplicable", + "Metrics": "Disabled", + "Traces": "NotApplicable" + }, + "ResourceType": "AWS::EC2::Instance", + "ResourceIdentifier": "i-a166400b", + "ResourceTags": { + "Name": "dev" + }, + "LastUpdateTimeStamp": 1733168548521 + }, + { + "AccountIdentifier": "222222222222", + "TelemetryConfigurationState": { + "Logs": "NotApplicable", + "Metrics": "Disabled", + "Traces": "NotApplicable" + }, + "ResourceType": "AWS::EC2::Instance", + "ResourceIdentifier": "i-b188560f", + "ResourceTags": { + "Name": "apache" + }, + "LastUpdateTimeStamp": 1732744260182 + } + ] + } + +For more information, see `Auditing CloudWatch telemetry configurations `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/list-resource-telemetry.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/list-resource-telemetry.rst new file mode 100644 index 000000000..f175e1143 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/list-resource-telemetry.rst @@ -0,0 +1,29 @@ +**To retrieve the telemetry configurations for the account** + +The following ``list-resource-telemetry`` example returns a list of telemetry configurations for AWS resources supported by telemetry config in the specified account. :: + + aws observabilityadmin list-resource-telemetry \ + --resource-types AWS::EC2::Instance + +Output:: + + { + "TelemetryConfigurations": [ + { + "AccountIdentifier": "111111111111", + "TelemetryConfigurationState": { + "Logs": "NotApplicable", + "Metrics": "Disabled", + "Traces": "NotApplicable" + }, + "ResourceType": "AWS::EC2::Instance", + "ResourceIdentifier": "i-0e979d278b040f856", + "ResourceTags": { + "Name": "apache" + }, + "LastUpdateTimeStamp": 1732744260182 + } + ] + } + +For more information, see `Auditing CloudWatch telemetry configurations `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/start-telemetry-evaluation-for-organization.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/start-telemetry-evaluation-for-organization.rst new file mode 100644 index 000000000..feb8bcf93 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/start-telemetry-evaluation-for-organization.rst @@ -0,0 +1,9 @@ +**To enable the telemetry config feature** + +The following ``start-telemetry-evaluation-for-organization`` example enables the telemetry config feature for the organization. :: + + aws observabilityadmin start-telemetry-evaluation-for-organization + +This command produces no output. + +For more information, see `Turning on CloudWatch telemetry auditing `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/start-telemetry-evaluation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/start-telemetry-evaluation.rst new file mode 100644 index 000000000..e3f705123 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/start-telemetry-evaluation.rst @@ -0,0 +1,9 @@ +**To enable the telemetry config feature** + +The following ``start-telemetry-evaluation`` example enables the telemetry config feature in the specified account. :: + + aws observabilityadmin start-telemetry-evaluation + +This command produces no output. + +For more information, see `Turning on CloudWatch telemetry auditing `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/stop-telemetry-evaluation-for-organization.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/stop-telemetry-evaluation-for-organization.rst new file mode 100644 index 000000000..fc86280e7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/stop-telemetry-evaluation-for-organization.rst @@ -0,0 +1,9 @@ +**To disable the telemetry config feature** + +The following ``stop-telemetry-evaluation-for-organization`` example disables the telemetry config feature for the organization. :: + + aws observabilityadmin stop-telemetry-evaluation-for-organization + +This command produces no output. + +For more information, see `Turning off CloudWatch telemetry auditing `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/stop-telemetry-evaluation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/stop-telemetry-evaluation.rst new file mode 100644 index 000000000..28957c597 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/observabilityadmin/stop-telemetry-evaluation.rst @@ -0,0 +1,9 @@ +**To disable the telemetry config feature** + +The following ``stop-telemetry-evaluation`` example disables the telemetry config feature in the specified account. :: + + aws observabilityadmin stop-telemetry-evaluation + +This command produces no output. + +For more information, see `Turning off CloudWatch telemetry auditing `__ in the *Amazon CloudWatch User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/abort-multipart-read-set-upload.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/abort-multipart-read-set-upload.rst new file mode 100644 index 000000000..c4f8795a1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/abort-multipart-read-set-upload.rst @@ -0,0 +1,11 @@ +**To stop a multipart read set upload** + +The following ``abort-multipart-read-set-upload`` example stops a multipart read set upload into your HealthOmics sequence store. :: + + aws omics abort-multipart-read-set-upload \ + --sequence-store-id 0123456789 \ + --upload-id 1122334455 + +This command produces no output. + +For more information, see `Direct upload to a sequence store `__ in the *AWS HealthOmics User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/accept-share.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/accept-share.rst new file mode 100644 index 000000000..6bc9d0626 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/accept-share.rst @@ -0,0 +1,14 @@ +**To accept a share of analytics store data** + +The following ``accept-share`` example accepts a share of HealthOmics analytics store data. :: + + aws omics accept-share \ + ----share-id "495c21bedc889d07d0ab69d710a6841e-dd75ab7a1a9c384fa848b5bd8e5a7e0a" + +Output:: + + { + "status": "ACTIVATING" + } + +For more information, see `Cross-account sharing `__ in the *AWS HealthOmics User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/batch-delete-read-set.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/batch-delete-read-set.rst new file mode 100644 index 000000000..50865de71 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/batch-delete-read-set.rst @@ -0,0 +1,21 @@ +**To delete multiple read sets** + +The following ``batch-delete-read-set`` example deletes two read sets. :: + + aws omics batch-delete-read-set \ + --sequence-store-id 1234567890 \ + --ids 1234567890 0123456789 + +If there is an error deleting any of the specified read sets, the service returns an error list. :: + + { + "errors": [ + { + "code": "", + "id": "0123456789", + "message": "The specified readset does not exist." + } + ] + } + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/cancel-annotation-import-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/cancel-annotation-import-job.rst new file mode 100644 index 000000000..815515269 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/cancel-annotation-import-job.rst @@ -0,0 +1,8 @@ +**To cancel an annotation import job** + +The following ``cancel-annotation-import-job`` example cancels an annotation import job with ID ``04f57618-xmpl-4fd0-9349-e5a85aefb997``. :: + + aws omics cancel-annotation-import-job \ + --job-id 04f57618-xmpl-4fd0-9349-e5a85aefb997 + +For more information, see `Omics Analytics `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/cancel-run.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/cancel-run.rst new file mode 100644 index 000000000..9520ffa73 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/cancel-run.rst @@ -0,0 +1,8 @@ +**To cancel a run** + +The following ``cancel-run`` example cancels a run with ID ``1234567``. :: + + aws omics cancel-run \ + --id 1234567 + +For more information, see `Run lifecycle in a workflow `__ in the *AWS HealthOmics User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/cancel-variant-import-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/cancel-variant-import-job.rst new file mode 100644 index 000000000..c085ce422 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/cancel-variant-import-job.rst @@ -0,0 +1,8 @@ +**To cancel a variant import job** + +The following ``cancel-variant-import-job`` example cancels a variant import job with ID ``69cb65d6-xmpl-4a4a-9025-4565794b684e``. :: + + aws omics cancel-variant-import-job \ + --job-id 69cb65d6-xmpl-4a4a-9025-4565794b684e + +For more information, see `Omics Analytics `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/complete-multipart-read-set-upload.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/complete-multipart-read-set-upload.rst new file mode 100644 index 000000000..cc253f1b8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/complete-multipart-read-set-upload.rst @@ -0,0 +1,19 @@ +**To conclude a multipart upload once you have uploaded all of the components.** + +The following ``complete-multipart-read-set-upload`` example concludes a multipart upload into a sequence store once all of the components have been uploaded. :: + + aws omics complete-multipart-read-set-upload \ + --sequence-store-id 0123456789 \ + --upload-id 1122334455 \ + --parts '[{"checksum":"gaCBQMe+rpCFZxLpoP6gydBoXaKKDA/Vobh5zBDb4W4=","partNumber":1,"partSource":"SOURCE1"}]' + + +Output:: + + { + "readSetId": "0000000001" + "readSetId": "0000000002" + "readSetId": "0000000003" + } + +For more information, see `Direct upload to a sequence store `__ in the *AWS HealthOmics User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-annotation-store-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-annotation-store-version.rst new file mode 100644 index 000000000..0e7f37021 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-annotation-store-version.rst @@ -0,0 +1,22 @@ +**To create a new version of an annotation store** + +The following ``create-annotation-store-version`` example creates a new version of an annotation store. :: + + aws omics create-annotation-store-version \ + --name my_annotation_store \ + --version-name my_version + +Output:: + + { + "creationTime": "2023-07-21T17:15:49.251040+00:00", + "id": "3b93cdef69d2", + "name": "my_annotation_store", + "reference": { + "referenceArn": "arn:aws:omics:us-west-2:555555555555:referenceStore/6505293348/reference/5987565360" + }, + "status": "CREATING", + "versionName": "my_version" + } + +For more information, see `Creating new versions of annotation stores `__ in the *AWS HealthOmics User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-annotation-store.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-annotation-store.rst new file mode 100644 index 000000000..88da14afd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-annotation-store.rst @@ -0,0 +1,97 @@ +**Example 1: To create a VCF annotation store** + +The following ``create-annotation-store`` example creates a VCF format annotation store. :: + + aws omics create-annotation-store \ + --name my_ann_store \ + --store-format VCF \ + --reference referenceArn=arn:aws:omics:us-west-2:123456789012:referenceStore/1234567890/reference/1234567890 + +Output:: + + { + "creationTime": "2022-11-23T22:48:39.226492Z", + "id": "0a91xmplc71f", + "name": "my_ann_store", + "reference": { + "referenceArn": "arn:aws:omics:us-west-2:123456789012:referenceStore/1234567890/reference/1234567890" + }, + "status": "CREATING", + "storeFormat": "VCF" + } + +**Example 2: To create a TSV annotation store** + +The following ``create-annotation-store`` example creates a TSV format annotation store. :: + + aws omics create-annotation-store \ + --name tsv_ann_store \ + --store-format TSV \ + --reference referenceArn=arn:aws:omics:us-west-2:123456789012:referenceStore/1234567890/reference/1234567890 \ + --store-options file://tsv-store-options.json + +``tsv-store-options.json`` configures format options for annotations. :: + + { + "tsvStoreOptions": { + "annotationType": "CHR_START_END_ZERO_BASE", + "formatToHeader": { + "CHR": "chromosome", + "START": "start", + "END": "end" + }, + "schema": [ + { + "chromosome": "STRING" + }, + { + "start": "LONG" + }, + { + "end": "LONG" + }, + { + "name": "STRING" + } + ] + } + } + +Output:: + + { + "creationTime": "2022-11-30T01:28:08.525586Z", + "id": "861cxmpl96b0", + "name": "tsv_ann_store", + "reference": { + "referenceArn": "arn:aws:omics:us-west-2:123456789012:referenceStore/1234567890/reference/1234567890" + }, + "status": "CREATING", + "storeFormat": "TSV", + "storeOptions": { + "tsvStoreOptions": { + "annotationType": "CHR_START_END_ZERO_BASE", + "formatToHeader": { + "CHR": "chromosome", + "END": "end", + "START": "start" + }, + "schema": [ + { + "chromosome": "STRING" + }, + { + "start": "LONG" + }, + { + "end": "LONG" + }, + { + "name": "STRING" + } + ] + } + } + } + +For more information, see `Omics Analytics `__ in the Amazon Omics Developer Guide. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-multipart-read-set-upload.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-multipart-read-set-upload.rst new file mode 100644 index 000000000..327ecd1ef --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-multipart-read-set-upload.rst @@ -0,0 +1,29 @@ +**To begin a multipart read set upload.** + +The following ``create-multipart-read-set-upload`` example initiates a multipart read set upload. :: + + aws omics create-multipart-read-set-upload \ + --sequence-store-id 0123456789 \ + --name HG00146 \ + --source-file-type FASTQ \ + --subject-id mySubject\ + --sample-id mySample\ + --description "FASTQ for HG00146"\ + --generated-from "1000 Genomes" + + +Output:: + + { + "creationTime": "2022-07-13T23:25:20Z", + "description": "FASTQ for HG00146", + "generatedFrom": "1000 Genomes", + "name": "HG00146", + "sampleId": "mySample", + "sequenceStoreId": "0123456789", + "sourceFileType": "FASTQ", + "subjectId": "mySubject", + "uploadId": "1122334455" + } + +For more information, see `Direct upload to a sequence store `__ in the *AWS HealthOmics User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-reference-store.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-reference-store.rst new file mode 100644 index 000000000..627b0764b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-reference-store.rst @@ -0,0 +1,17 @@ +**To create a reference store** + +The following ``create-reference-store`` example creates a reference store ``my-ref-store``. :: + + aws omics create-reference-store \ + --name my-ref-store + +Output:: + + { + "arn": "arn:aws:omics:us-west-2:123456789012:referenceStore/1234567890", + "creationTime": "2022-11-22T22:13:25.947Z", + "id": "1234567890", + "name": "my-ref-store" + } + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-run-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-run-group.rst new file mode 100644 index 000000000..3e7a4002b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-run-group.rst @@ -0,0 +1,20 @@ +**To create a run group** + +The following ``create-run-group`` example creates a run group named ``cram-converter``. :: + + aws omics create-run-group \ + --name cram-converter \ + --max-cpus 20 \ + --max-gpus 10 \ + --max-duration 600 \ + --max-runs 5 + +Output:: + + { + "arn": "arn:aws:omics:us-west-2:123456789012:runGroup/1234567", + "id": "1234567", + "tags": {} + } + +For more information, see `Creating run groups `__ in the *AWS HealthOmics User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-sequence-store.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-sequence-store.rst new file mode 100644 index 000000000..7b2dd19a2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-sequence-store.rst @@ -0,0 +1,17 @@ +**To create a sequence store** + +The following ``create-sequence-store`` example creates a sequence store. :: + + aws omics create-sequence-store \ + --name my-seq-store + +Output:: + + { + "arn": "arn:aws:omics:us-west-2:123456789012:sequenceStore/1234567890", + "creationTime": "2022-11-23T01:24:33.629Z", + "id": "1234567890", + "name": "my-seq-store" + } + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-share.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-share.rst new file mode 100644 index 000000000..d4778e6bb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-share.rst @@ -0,0 +1,18 @@ +**To create a share of a HealthOmics analytics store** + +The following ``create-share`` example shows how to create a share of a HealthOmics analytics store that can be accepted by a subscriber outside the account. :: + + aws omics create-share \ + --resource-arn "arn:aws:omics:us-west-2:555555555555:variantStore/omics_dev_var_store" \ + --principal-subscriber "123456789012" \ + --name "my_Share-123" + +Output:: + + { + "shareId": "495c21bedc889d07d0ab69d710a6841e-dd75ab7a1a9c384fa848b5bd8e5a7e0a", + "name": "my_Share-123", + "status": "PENDING" + } + +For more information, see `Cross-acount sharing `__ in the *AWS HealthOmics User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-variant-store.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-variant-store.rst new file mode 100644 index 000000000..44461a126 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-variant-store.rst @@ -0,0 +1,21 @@ +**To create a variant store** + +The following ``create-variant-store`` example creates a variant store named ``my_var_store``. :: + + aws omics create-variant-store \ + --name my_var_store \ + --reference referenceArn=arn:aws:omics:us-west-2:123456789012:referenceStore/1234567890/reference/1234567890 + +Output:: + + { + "creationTime": "2022-11-23T22:09:07.534499Z", + "id": "02dexmplcfdd", + "name": "my_var_store", + "reference": { + "referenceArn": "arn:aws:omics:us-west-2:123456789012:referenceStore/1234567890/reference/1234567890" + }, + "status": "CREATING" + } + +For more information, see `Omics Analytics `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-workflow.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-workflow.rst new file mode 100644 index 000000000..bcaf69366 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/create-workflow.rst @@ -0,0 +1,45 @@ +**To create a workflow** + +The following ``create-workflow`` example creates a WDL workflow. :: + + aws omics create-workflow \ + --name cram-converter \ + --engine WDL \ + --definition-zip fileb://workflow-crambam.zip \ + --parameter-template file://workflow-params.json + +``workflow-crambam.zip`` is a ZIP archive containing a workflow definition. ``workflow-params.json`` defines runtime parameters for the workflow. :: + + { + "ref_fasta" : { + "description": "Reference genome fasta file", + "optional": false + }, + "ref_fasta_index" : { + "description": "Index of the reference genome fasta file", + "optional": false + }, + "ref_dict" : { + "description": "dictionary file for 'ref_fasta'", + "optional": false + }, + "input_cram" : { + "description": "The Cram file to convert to BAM", + "optional": false + }, + "sample_name" : { + "description": "The name of the input sample, used to name the output BAM", + "optional": false + } + } + +Output:: + + { + "arn": "arn:aws:omics:us-west-2:123456789012:workflow/1234567", + "id": "1234567", + "status": "CREATING", + "tags": {} + } + +For more information, see `Creating private workflows `__ in the *AWS HealthOmics User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-annotation-store-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-annotation-store-versions.rst new file mode 100644 index 000000000..44aa2c7be --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-annotation-store-versions.rst @@ -0,0 +1,15 @@ +**To delete an annotation store version** + +The following ``delete-annotation-store-versions`` example deletes an annotation store version. :: + + aws omics delete-annotation-store-versions \ + --name my_annotation_store \ + --versions my_version + +Output:: + + { + "errors": [] + } + +For more information, see `Creating new versions of annotation stores `__ in the *AWS HealthOmics User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-annotation-store.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-annotation-store.rst new file mode 100644 index 000000000..a03a54cf9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-annotation-store.rst @@ -0,0 +1,14 @@ +**To delete an annotation store** + +The following ``delete-annotation-store`` example deletes an annotation store named ``my_vcf_store``. :: + + aws omics delete-annotation-store \ + --name my_vcf_store + +Output:: + + { + "status": "DELETING" + } + +For more information, see `Omics Analytics `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-reference-store.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-reference-store.rst new file mode 100644 index 000000000..461ea16fb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-reference-store.rst @@ -0,0 +1,8 @@ +**To delete a reference store** + +The following ``delete-reference-store`` example deletes a reference store with ID ``1234567890``. :: + + aws omics delete-reference-store \ + --id 1234567890 + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-reference.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-reference.rst new file mode 100644 index 000000000..d6aa8ec0c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-reference.rst @@ -0,0 +1,9 @@ +**To delete a reference** + +The following ``delete-reference`` example deletes a reference. :: + + aws omics delete-reference \ + --reference-store-id 1234567890 \ + --id 1234567890 + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-run-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-run-group.rst new file mode 100644 index 000000000..00aa3969a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-run-group.rst @@ -0,0 +1,8 @@ +**To delete a run group** + +The following ``delete-run-group`` example deletes a run group with ID ``1234567``. :: + + aws omics delete-run-group \ + --id 1234567 + +For more information, see `Deleting runs and run groups `__ in the *AWS HealthOmics User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-run.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-run.rst new file mode 100644 index 000000000..8cf48b483 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-run.rst @@ -0,0 +1,8 @@ +**To delete a workflow run** + +The following ``delete-run`` example deletes a run with ID ``1234567``. :: + + aws omics delete-run \ + --id 1234567 + +For more information, see `Deleting runs and run groups `__ in the *AWS HealthOmics User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-sequence-store.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-sequence-store.rst new file mode 100644 index 000000000..8b009b162 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-sequence-store.rst @@ -0,0 +1,8 @@ +**To delete a sequence store** + +The following ``delete-sequence-store`` example deletes a sequence store with ID ``1234567890``. :: + + aws omics delete-sequence-store \ + --id 1234567890 + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-share.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-share.rst new file mode 100644 index 000000000..b8b089c6f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-share.rst @@ -0,0 +1,14 @@ +**To delete a share of HealthOmics analytics data** + +The following ``delete-share`` example deletes a cross-account share of analytics data. :: + + aws omics delete-share \ + --share-id "495c21bedc889d07d0ab69d710a6841e-dd75ab7a1a9c384fa848b5bd8e5a7e0a" + +Output:: + + { + "status": "DELETING" + } + +For more information, see `Cross-account sharing `__ in the *AWS HealthOmics User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-variant-store.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-variant-store.rst new file mode 100644 index 000000000..948d7d511 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-variant-store.rst @@ -0,0 +1,14 @@ +**To delete a variant store** + +The following ``delete-variant-store`` example deletes a variant store named ``my_var_store``. :: + + aws omics delete-variant-store \ + --name my_var_store + +Output:: + + { + "status": "DELETING" + } + +For more information, see `Omics Analytics `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-workflow.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-workflow.rst new file mode 100644 index 000000000..ab6d74a73 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/delete-workflow.rst @@ -0,0 +1,8 @@ +**To delete a workflow** + +The following ``delete-workflow`` example deletes a workflow with ID ``1234567``. :: + + aws omics delete-workflow \ + --id 1234567 + +For more information, see `Delete a private workflow `__ in the *AWS HealthOmics User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-annotation-import-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-annotation-import-job.rst new file mode 100644 index 000000000..98ff9d06e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-annotation-import-job.rst @@ -0,0 +1,26 @@ +**To view an annotation import job** + +The following ``get-annotation-import-job`` example gets details about an annotation import job. :: + + aws omics get-annotation-import-job \ + --job-id 984162c7-xmpl-4d23-ab47-286f7950bfbf + +Output:: + + { + "creationTime": "2022-11-30T01:40:11.017746Z", + "destinationName": "tsv_ann_store", + "id": "984162c7-xmpl-4d23-ab47-286f7950bfbf", + "items": [ + { + "jobStatus": "COMPLETED", + "source": "s3://omics-artifacts-01d6xmpl4e72dd32/targetedregions.bed.gz" + } + ], + "roleArn": "arn:aws:iam::123456789012:role/omics-service-role-serviceRole-W8O1XMPL7QZ", + "runLeftNormalization": false, + "status": "COMPLETED", + "updateTime": "2022-11-30T01:42:39.134009Z" + } + +For more information, see `Omics Analytics `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-annotation-store-version.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-annotation-store-version.rst new file mode 100644 index 000000000..5ef9c5e86 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-annotation-store-version.rst @@ -0,0 +1,24 @@ +**To retrieve the metadata for an annotation store version** + +The following ``get-annotation-store-version`` example retrieves the metadata for the requested annotation store version. :: + + aws omics get-annotation-store-version \ + --name my_annotation_store \ + --version-name my_version + +Output:: + + { + "storeId": "4934045d1c6d", + "id": "2a3f4a44aa7b", + "status": "ACTIVE", + "versionArn": "arn:aws:omics:us-west-2:555555555555:annotationStore/my_annotation_store/version/my_version", + "name": "my_annotation_store", + "versionName": "my_version", + "creationTime": "2023-07-21T17:15:49.251040+00:00", + "updateTime": "2023-07-21T17:15:56.434223+00:00", + "statusMessage": "", + "versionSizeBytes": 0 + } + +For more information, see `Creating new versions of annotation stores `__ in the *AWS HealthOmics User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-annotation-store.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-annotation-store.rst new file mode 100644 index 000000000..269082a5f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-annotation-store.rst @@ -0,0 +1,24 @@ +**To view an annotation store** + +The following ``get-annotation-store`` example gets details about an annotation store named ``my_ann_store``. :: + + aws omics get-annotation-store \ + --name my_ann_store + +Output:: + + { + "creationTime": "2022-11-23T22:48:39.226492Z", + "id": "0a91xmplc71f", + "name": "my_ann_store", + "reference": { + "referenceArn": "arn:aws:omics:us-west-2:123456789012:referenceStore/1234567890/reference/1234567890" + }, + "status": "CREATING", + "storeArn": "arn:aws:omics:us-west-2:123456789012:annotationStore/my_ann_store", + "storeFormat": "VCF", + "storeSizeBytes": 0, + "tags": {} + } + +For more information, see `Omics Analytics `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-read-set-activation-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-read-set-activation-job.rst new file mode 100644 index 000000000..196e7c67f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-read-set-activation-job.rst @@ -0,0 +1,27 @@ +**To view a read set activation job** + +The following ``get-read-set-activation-job`` example gets details about a read set activation job. :: + + aws omics get-read-set-activation-job \ + --sequence-store-id 1234567890 \ + --id 1234567890 + +Output:: + + { + "completionTime": "2022-12-06T22:33:42.828Z", + "creationTime": "2022-12-06T22:32:45.213Z", + "id": "1234567890", + "sequenceStoreId": "1234567890", + "sources": [ + { + "readSetId": "1234567890", + "status": "FINISHED", + "statusMessage": "No activation needed as read set is already in ACTIVATING or ACTIVE state." + } + ], + "status": "COMPLETED", + "statusMessage": "The job completed successfully." + } + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-read-set-export-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-read-set-export-job.rst new file mode 100644 index 000000000..bbf5d07a4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-read-set-export-job.rst @@ -0,0 +1,21 @@ +**To view a read set export job** + +The following ``get-read-set-export-job`` example gets details about a read set export job. :: + + aws omics get-read-set-export-job \ + --sequence-store-id 1234567890 \ + --id 1234567890 + +Output:: + + { + "completionTime": "2022-12-06T22:39:14.491Z", + "creationTime": "2022-12-06T22:37:18.612Z", + "destination": "s3://omics-artifacts-01d6xmpl4e72dd32/read-set-export/", + "id": "1234567890", + "sequenceStoreId": "1234567890", + "status": "COMPLETED", + "statusMessage": "The job is submitted and will start soon." + } + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-read-set-import-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-read-set-import-job.rst new file mode 100644 index 000000000..3c8d9811c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-read-set-import-job.rst @@ -0,0 +1,73 @@ +**To view a read set import job** + +The following ``get-read-set-import-job`` example gets details about a read set import job. :: + + aws omics get-read-set-import-job \ + --sequence-store-id 1234567890 \ + --id 1234567890 + +Output:: + + { + "creationTime": "2022-11-23T01:36:38.158Z", + "id": "1234567890", + "roleArn": "arn:aws:iam::123456789012:role/omics-service-role-serviceRole-W8O1XMPL7QZ", + "sequenceStoreId": "1234567890", + "sources": [ + { + "name": "HG00100", + "referenceArn": "arn:aws:omics:us-west-2:123456789012:referenceStore/1234567890/reference/1234567890", + "sampleId": "bam-sample", + "sourceFileType": "BAM", + "sourceFiles": { + "source1": "s3://omics-artifacts-01d6xmpl4e72dd32/HG00100.chrom20.ILLUMINA.bwa.GBR.low_coverage.20101123.bam", + "source2": "" + }, + "status": "IN_PROGRESS", + "statusMessage": "The source job is currently in progress.", + "subjectId": "bam-subject", + "tags": { + "aws:omics:sampleId": "bam-sample", + "aws:omics:subjectId": "bam-subject" + } + }, + { + "name": "HG00146", + "referenceArn": "arn:aws:omics:us-west-2:123456789012:referenceStore/1234567890/reference/1234567890", + "sampleId": "fastq-sample", + "sourceFileType": "FASTQ", + "sourceFiles": { + "source1": "s3://omics-artifacts-01d6xmpl4e72dd32/SRR233106_1.filt.fastq.gz", + "source2": "s3://omics-artifacts-01d6xmpl4e72dd32/SRR233106_2.filt.fastq.gz" + }, + "status": "IN_PROGRESS", + "statusMessage": "The source job is currently in progress.", + "subjectId": "fastq-subject", + "tags": { + "aws:omics:sampleId": "fastq-sample", + "aws:omics:subjectId": "fastq-subject" + } + }, + { + "name": "HG00096", + "referenceArn": "arn:aws:omics:us-west-2:123456789012:referenceStore/1234567890/reference/1234567890", + "sampleId": "cram-sample", + "sourceFileType": "CRAM", + "sourceFiles": { + "source1": "s3://omics-artifacts-01d6xmpl4e72dd32/HG00096.alt_bwamem_GRCh38DH.20150718.GBR.low_coverage.cram", + "source2": "" + }, + "status": "IN_PROGRESS", + "statusMessage": "The source job is currently in progress.", + "subjectId": "cram-subject", + "tags": { + "aws:omics:sampleId": "cram-sample", + "aws:omics:subjectId": "cram-subject" + } + } + ], + "status": "IN_PROGRESS", + "statusMessage": "The job is currently in progress." + } + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-read-set-metadata.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-read-set-metadata.rst new file mode 100644 index 000000000..0153cf341 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-read-set-metadata.rst @@ -0,0 +1,41 @@ +**To view a read set** + +The following ``get-read-set-metadata`` example gets details about a read set's files. :: + + aws omics get-read-set-metadata \ + --sequence-store-id 1234567890 \ + --id 1234567890 + +Output:: + + { + "arn": "arn:aws:omics:us-west-2:123456789012:sequenceStore/1234567890/readSet/1234567890", + "creationTime": "2022-11-23T21:55:00.515Z", + "fileType": "FASTQ", + "files": { + "source1": { + "contentLength": 310054739, + "partSize": 104857600, + "totalParts": 3 + }, + "source2": { + "contentLength": 307846621, + "partSize": 104857600, + "totalParts": 3 + } + }, + "id": "1234567890", + "name": "HG00146", + "referenceArn": "arn:aws:omics:us-west-2:123456789012:referenceStore/1234567890/reference/1234567890", + "sampleId": "fastq-sample", + "sequenceInformation": { + "alignment": "UNALIGNED", + "totalBaseCount": 677717384, + "totalReadCount": 8917334 + }, + "sequenceStoreId": "1234567890", + "status": "ACTIVE", + "subjectId": "fastq-subject" + } + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-read-set.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-read-set.rst new file mode 100644 index 000000000..bbe3a9b10 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-read-set.rst @@ -0,0 +1,10 @@ +**To download a read set** + +The following ``get-read-set`` example downloads part 3 of a read set as ``1234567890.3.bam``. :: + + aws omics get-read-set \ + --sequence-store-id 1234567890 \ + --id 1234567890 \ + --part-number 3 1234567890.3.bam + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-reference-import-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-reference-import-job.rst new file mode 100644 index 000000000..b82a5aa25 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-reference-import-job.rst @@ -0,0 +1,28 @@ +**To view a reference import job** + +The following ``get-reference-import-job`` example example gets details about a reference import job. :: + + aws omics get-reference-import-job \ + --reference-store-id 1234567890 \ + --id 1234567890 + +Output:: + + { + "creationTime": "2022-11-22T22:25:41.124Z", + "id": "1234567890", + "referenceStoreId": "1234567890", + "roleArn": "arn:aws:iam::123456789012:role/omics-service-role-serviceRole-W8O1XMPL7QZ", + "sources": [ + { + "name": "assembly-38", + "sourceFile": "s3://omics-artifacts-01d6xmpl4e72dd32/Homo_sapiens_assembly38.fasta", + "status": "IN_PROGRESS", + "statusMessage": "The source job is currently in progress." + } + ], + "status": "IN_PROGRESS", + "statusMessage": "The job is currently in progress." + } + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-reference-metadata.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-reference-metadata.rst new file mode 100644 index 000000000..74b05ae83 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-reference-metadata.rst @@ -0,0 +1,34 @@ +**To view a reference** + +The following ``get-reference-metadata`` example gets details about a reference. :: + + aws omics get-reference-metadata \ + --reference-store-id 1234567890 \ + --id 1234567890 + +Output:: + + { + "arn": "arn:aws:omics:us-west-2:123456789012:referenceStore/1234567890/reference/1234567890", + "creationTime": "2022-11-22T22:27:09.033Z", + "files": { + "index": { + "contentLength": 160928, + "partSize": 104857600, + "totalParts": 1 + }, + "source": { + "contentLength": 3249912778, + "partSize": 104857600, + "totalParts": 31 + } + }, + "id": "1234567890", + "md5": "7ff134953dcca8c8997453bbb80b6b5e", + "name": "assembly-38", + "referenceStoreId": "1234567890", + "status": "ACTIVE", + "updateTime": "2022-11-22T22:27:09.033Z" + } + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-reference-store.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-reference-store.rst new file mode 100644 index 000000000..67b04350a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-reference-store.rst @@ -0,0 +1,17 @@ +**To view a reference store** + +The following ``get-reference-store`` example gets details about a reference store. :: + + aws omics get-reference-store \ + --id 1234567890 + +Output:: + + { + "arn": "arn:aws:omics:us-west-2:123456789012:referenceStore/1234567890", + "creationTime": "2022-09-23T23:27:20.364Z", + "id": "1234567890", + "name": "my-rstore-0" + } + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-reference.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-reference.rst new file mode 100644 index 000000000..9cb1de7e4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-reference.rst @@ -0,0 +1,10 @@ +**To download a genome reference** + +The following ``get-reference`` example downloads part 1 of a genome as ``hg38.1.fa``. :: + + aws omics get-reference \ + --reference-store-id 1234567890 \ + --id 1234567890 \ + --part-number 1 hg38.1.fa + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-run-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-run-group.rst new file mode 100644 index 000000000..cb898e8c3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-run-group.rst @@ -0,0 +1,20 @@ +**To view a run group** + +The following ``get-run-group`` example gets details about a run group. :: + + aws omics get-run-group \ + --id 1234567 + +Output:: + + { + "arn": "arn:aws:omics:us-west-2:123456789012:runGroup/1234567", + "creationTime": "2022-12-01T00:58:42.915219Z", + "id": "1234567", + "maxCpus": 20, + "maxDuration": 600, + "name": "cram-convert", + "tags": {} + } + +For more information, see `Creating run groups `__ in the *AWS HealthOmics User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-run-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-run-task.rst new file mode 100644 index 000000000..9f09c4476 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-run-task.rst @@ -0,0 +1,23 @@ +**To view a task** + +The following ``get-run-task`` example gets details about a workflow task. :: + + aws omics get-run-task \ + --id 1234567 \ + --task-id 1234567 + +Output:: + + { + "cpus": 1, + "creationTime": "2022-11-30T23:13:00.718651Z", + "logStream": "arn:aws:logs:us-west-2:123456789012:log-group:/aws/omics/WorkflowLog:log-stream:run/1234567/task/1234567", + "memory": 15, + "name": "CramToBamTask", + "startTime": "2022-11-30T23:17:47.016Z", + "status": "COMPLETED", + "stopTime": "2022-11-30T23:18:21.503Z", + "taskId": "1234567" + } + +For more information, see `Task lifecycle in a HealthOmics run `__ in the *AWS HealthOmics User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-run.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-run.rst new file mode 100644 index 000000000..475c4c35c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-run.rst @@ -0,0 +1,38 @@ +**To view a workflow run** + +The following ``get-run`` example gets details about a workflow run. :: + + aws omics get-run \ + --id 1234567 + +Output:: + + { + "arn": "arn:aws:omics:us-west-2:123456789012:run/1234567", + "creationTime": "2022-11-30T22:58:22.615865Z", + "digest": "sha256:c54bxmpl742dcc26f7fa1f10e37550ddd8f251f418277c0a58e895b801ed28cf", + "id": "1234567", + "name": "cram-to-bam", + "outputUri": "s3://omics-artifacts-01d6xmpl4e72dd32/workflow-output/", + "parameters": { + "ref_dict": "s3://omics-artifacts-01d6xmpl4e72dd32/Homo_sapiens_assembly38.dict", + "ref_fasta_index": "s3://omics-artifacts-01d6xmpl4e72dd32/Homo_sapiens_assembly38.fasta.fai", + "ref_fasta": "s3://omics-artifacts-01d6xmpl4e72dd32/Homo_sapiens_assembly38.fasta", + "sample_name": "NA12878", + "input_cram": "s3://omics-artifacts-01d6xmpl4e72dd32/NA12878.cram" + }, + "resourceDigests": { + "s3://omics-artifacts-01d6xmpl4e72dd32/Homo_sapiens_assembly38.fasta.fai": "etag:f76371b113734a56cde236bc0372de0a", + "s3://omics-artifacts-01d6xmpl4e72dd32/Homo_sapiens_assembly38.dict": "etag:3884c62eb0e53fa92459ed9bff133ae6", + "s3://omics-artifacts-01d6xmpl4e72dd32/Homo_sapiens_assembly38.fasta": "etag:e307d81c605fb91b7720a08f00276842-388", + "s3://omics-artifacts-01d6xmpl4e72dd32/NA12878.cram": "etag:a9f52976381286c6143b5cc681671ec6" + }, + "roleArn": "arn:aws:iam::123456789012:role/omics-service-role-serviceRole-W8O1XMPL7QZ", + "startedBy": "arn:aws:iam::123456789012:user/laptop-2020", + "status": "STARTING", + "tags": {}, + "workflowId": "1234567", + "workflowType": "PRIVATE" + } + +For more information, see `Run lifecycle in a workflow `__ in the *AWS HealthOmics User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-sequence-store.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-sequence-store.rst new file mode 100644 index 000000000..d87a83f8d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-sequence-store.rst @@ -0,0 +1,17 @@ +**To view a sequence store** + +The following ``get-sequence-store`` example gets details about a sequence store with ID ``1234567890``. :: + + aws omics get-sequence-store \ + --id 1234567890 + +Output:: + + { + "arn": "arn:aws:omics:us-east-1:123456789012:sequenceStore/1234567890", + "creationTime": "2022-11-23T19:55:48.376Z", + "id": "1234567890", + "name": "my-seq-store" + } + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-share.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-share.rst new file mode 100644 index 000000000..118bf4c95 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-share.rst @@ -0,0 +1,21 @@ +**To retrieves the metadata about a share of a HealthOmics analytics data** + +The following ``get-share`` example retrieves the metadata for a cross-account share of analytics data. :: + + aws omics get-share \ + --share-id "495c21bedc889d07d0ab69d710a6841e-dd75ab7a1a9c384fa848b5bd8e5a7e0a" + +Output:: + + { + "share": { + "shareId": "495c21bedc889d07d0ab69d710a6841e-dd75ab7a1a9c384fa848b5bd8e5a7e0a", + "name": "my_Share-123", + "resourceArn": "arn:aws:omics:us-west-2:555555555555:variantStore/omics_dev_var_store", + "principalSubscriber": "123456789012", + "ownerId": "555555555555", + "status": "PENDING" + } + } + +For more information, see `Cross-account sharing `__ in the *AWS HealthOmics User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-variant-import-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-variant-import-job.rst new file mode 100644 index 000000000..2728f9d5a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-variant-import-job.rst @@ -0,0 +1,26 @@ +**To view a variant import job** + +The following ``get-variant-import-job`` example gets details about a variant import job. :: + + aws omics get-variant-import-job \ + --job-id edd7b8ce-xmpl-47e2-bc99-258cac95a508 + +Output:: + + { + "creationTime": "2022-11-23T22:42:50.037812Z", + "destinationName": "my_var_store", + "id": "edd7b8ce-xmpl-47e2-bc99-258cac95a508", + "items": [ + { + "jobStatus": "IN_PROGRESS", + "source": "s3://omics-artifacts-01d6xmpl4e72dd32/Homo_sapiens_assembly38.known_indels.vcf.gz" + } + ], + "roleArn": "arn:aws:iam::123456789012:role/omics-service-role-serviceRole-W8O1XMPL7QZ", + "runLeftNormalization": false, + "status": "IN_PROGRESS", + "updateTime": "2022-11-23T22:43:05.898309Z" + } + +For more information, see `Omics Analytics `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-variant-store.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-variant-store.rst new file mode 100644 index 000000000..d1cca2baf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-variant-store.rst @@ -0,0 +1,24 @@ +**To view a variant store** + +The following ``get-variant-store`` example gets details about a variant store. :: + + aws omics get-variant-store \ + --name my_var_store + +Output:: + + { + "creationTime": "2022-11-23T22:09:07.534499Z", + "id": "02dexmplcfdd", + "name": "my_var_store", + "reference": { + "referenceArn": "arn:aws:omics:us-west-2:123456789012:referenceStore/1234567890/reference/1234567890" + }, + "status": "CREATING", + "storeArn": "arn:aws:omics:us-west-2:123456789012:variantStore/my_var_store", + "storeSizeBytes": 0, + "tags": {}, + "updateTime": "2022-11-23T22:09:24.931711Z" + } + +For more information, see `Omics Analytics `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-workflow.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-workflow.rst new file mode 100644 index 000000000..30fef1a16 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/get-workflow.rst @@ -0,0 +1,41 @@ +**To view a workflow** + +The following ``get-workflow`` example gets details about a workflow with ID ``1234567``. :: + + aws omics get-workflow \ + --id 1234567 + +Output:: + + { + "arn": "arn:aws:omics:us-west-2:123456789012:workflow/1234567", + "creationTime": "2022-11-30T22:33:16.225368Z", + "digest": "sha256:c54bxmpl742dcc26f7fa1f10e37550ddd8f251f418277c0a58e895b801ed28cf", + "engine": "WDL", + "id": "1234567", + "main": "workflow-crambam.wdl", + "name": "cram-converter", + "parameterTemplate": { + "ref_dict": { + "description": "dictionary file for 'ref_fasta'" + }, + "ref_fasta_index": { + "description": "Index of the reference genome fasta file" + }, + "ref_fasta": { + "description": "Reference genome fasta file" + }, + "input_cram": { + "description": "The Cram file to convert to BAM" + }, + "sample_name": { + "description": "The name of the input sample, used to name the output BAM" + } + }, + "status": "ACTIVE", + "statusMessage": "workflow-crambam.wdl\n workflow CramToBamFlow\n call CramToBamTask\n call ValidateSamFile\n task CramToBamTask\n task ValidateSamFile\n", + "tags": {}, + "type": "PRIVATE" + } + +For more information, see `Creating private workflows `__ in the *AWS HealthOmics User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-annotation-import-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-annotation-import-jobs.rst new file mode 100644 index 000000000..9a3a5aeaa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-annotation-import-jobs.rst @@ -0,0 +1,32 @@ +**To get a list of annotation import jobs** + +The following ``list-annotation-import-jobs`` gets a list of annotation import jobs. :: + + aws omics list-annotation-import-jobs + +Output:: + + { + "annotationImportJobs": [ + { + "creationTime": "2022-11-30T01:39:41.478294Z", + "destinationName": "gff_ann_store", + "id": "18a9e792-xmpl-4869-a105-e5b602900444", + "roleArn": "arn:aws:iam::123456789012:role/omics-service-role-serviceRole-W8O1XMPL7QZ", + "runLeftNormalization": false, + "status": "COMPLETED", + "updateTime": "2022-11-30T01:47:09.145178Z" + }, + { + "creationTime": "2022-11-30T00:45:58.007838Z", + "destinationName": "my_ann_store", + "id": "4e9eafc8-xmpl-431e-a0b2-3bda27cb600a", + "roleArn": "arn:aws:iam::123456789012:role/omics-service-role-serviceRole-W8O1XMPL7QZ", + "runLeftNormalization": false, + "status": "FAILED", + "updateTime": "2022-11-30T00:47:01.706325Z" + } + ] + } + +For more information, see `Omics Analytics `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-annotation-store-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-annotation-store-versions.rst new file mode 100644 index 000000000..cfc251b76 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-annotation-store-versions.rst @@ -0,0 +1,37 @@ +**To list all the versions of an annotation store.** + +The following ``list-annotation-store-versions`` example lists all versions that exist of an annotation store. :: + + aws omics list-annotation-store-versions \ + --name my_annotation_store + +Output:: + + { + "annotationStoreVersions": [ + { + "storeId": "4934045d1c6d", + "id": "2a3f4a44aa7b", + "status": "CREATING", + "versionArn": "arn:aws:omics:us-west-2:555555555555:annotationStore/my_annotation_store/version/my_version_2", + "name": "my_annotation_store", + "versionName": "my_version_2", + "creation Time": "2023-07-21T17:20:59.380043+00:00", + "versionSizeBytes": 0 + }, + { + "storeId": "4934045d1c6d", + "id": "4934045d1c6d", + "status": "ACTIVE", + "versionArn": "arn:aws:omics:us-west-2:555555555555:annotationStore/my_annotation_store/version/my_version_1", + "name": "my_annotation_store", + "versionName": "my_version_1", + "creationTime": "2023-07-21T17:15:49.251040+00:00", + "updateTime": "2023-07-21T17:15:56.434223+00:00", + "statusMessage": "", + "versionSizeBytes": 0 + } + + } + +For more information, see `Creating new versions of annotation stores `__ in the *AWS HealthOmics User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-annotation-stores.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-annotation-stores.rst new file mode 100644 index 000000000..64b7158bc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-annotation-stores.rst @@ -0,0 +1,28 @@ +**To get a list of annotation stores** + +The following ``list-annotation-stores`` example gets a list of annotation stores. :: + + aws omics list-annotation-stores + +Output:: + + { + "annotationStores": [ + { + "creationTime": "2022-11-23T22:48:39.226492Z", + "id": "0a91xmplc71f", + "name": "my_ann_store", + "reference": { + "referenceArn": "arn:aws:omics:us-west-2:123456789012:referenceStore/1234567890/reference/1234567890" + }, + "status": "ACTIVE", + "statusMessage": "", + "storeArn": "arn:aws:omics:us-west-2:123456789012:annotationStore/my_ann_store", + "storeFormat": "VCF", + "storeSizeBytes": 0, + "updateTime": "2022-11-23T22:53:27.372840Z" + } + ] + } + +For more information, see `Omics Analytics `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-multipart-read-set-uploads.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-multipart-read-set-uploads.rst new file mode 100644 index 000000000..51e7c2211 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-multipart-read-set-uploads.rst @@ -0,0 +1,51 @@ +**To list all multipart read set uploads and their statuses.** + +The following ``list-multipart-read-set-uploads`` example lists all multipart read set uploads and their statuses. :: + + aws omics list-multipart-read-set-uploads \ + --sequence-store-id 0123456789 + +Output:: + + { + "uploads": + [ + { + "sequenceStoreId": "0123456789", + "uploadId": "8749584421", + "sourceFileType": "FASTQ", + "subjectId": "mySubject", + "sampleId": "mySample", + "generatedFrom": "1000 Genomes", + "name": "HG00146", + "description": "FASTQ for HG00146", + "creationTime": "2023-11-29T19:22:51.349298+00:00" + }, + { + "sequenceStoreId": "0123456789", + "uploadId": "5290538638", + "sourceFileType": "BAM", + "subjectId": "mySubject", + "sampleId": "mySample", + "generatedFrom": "1000 Genomes", + "referenceArn": "arn:aws:omics:us-west-2:845448930428:referenceStore/8168613728/reference/2190697383", + "name": "HG00146", + "description": "BAM for HG00146", + "creationTime": "2023-11-29T19:23:33.116516+00:00" + }, + { + "sequenceStoreId": "0123456789", + "uploadId": "4174220862", + "sourceFileType": "BAM", + "subjectId": "mySubject", + "sampleId": "mySample", + "generatedFrom": "1000 Genomes", + "referenceArn": "arn:aws:omics:us-west-2:845448930428:referenceStore/8168613728/reference/2190697383", + "name": "HG00147", + "description": "BAM for HG00147", + "creationTime": "2023-11-29T19:23:47.007866+00:00" + } + ] + } + +For more information, see `Direct upload to a sequence store `__ in the *AWS HealthOmics User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-read-set-activation-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-read-set-activation-jobs.rst new file mode 100644 index 000000000..490f95149 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-read-set-activation-jobs.rst @@ -0,0 +1,28 @@ +**To get a list of read set activation jobs** + +The following ``list-read-set-activation-jobs`` example gets a list of activation jobs for a sequence store with id ``1234567890``. :: + + aws omics list-read-set-activation-jobs \ + --sequence-store-id 1234567890 + +Output:: + + { + "activationJobs": [ + { + "completionTime": "2022-12-06T22:33:42.828Z", + "creationTime": "2022-12-06T22:32:45.213Z", + "id": "1234567890", + "sequenceStoreId": "1234567890", + "status": "COMPLETED" + }, + { + "creationTime": "2022-12-06T22:35:10.100Z", + "id": "1234567890", + "sequenceStoreId": "1234567890", + "status": "IN_PROGRESS" + } + ] + } + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-read-set-export-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-read-set-export-jobs.rst new file mode 100644 index 000000000..a6849e9e8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-read-set-export-jobs.rst @@ -0,0 +1,30 @@ +**To gets a list of read set export jobs** + +The following ``list-read-set-export-jobs`` example gets a list of export jobs for a sequence store with id ``1234567890``. :: + + aws omics list-read-set-export-jobs \ + --sequence-store-id 1234567890 + +Output:: + + { + "exportJobs": [ + { + "completionTime": "2022-12-06T22:39:14.491Z", + "creationTime": "2022-12-06T22:37:18.612Z", + "destination": "s3://omics-artifacts-01d6xmpl4e72dd32/read-set-export/", + "id": "1234567890", + "sequenceStoreId": "1234567890", + "status": "COMPLETED" + }, + { + "creationTime": "2022-12-06T22:38:04.871Z", + "destination": "s3://omics-artifacts-01d6xmpl4e72dd32/read-set-export/", + "id": "1234567890", + "sequenceStoreId": "1234567890", + "status": "IN_PROGRESS" + } + ] + } + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-read-set-import-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-read-set-import-jobs.rst new file mode 100644 index 000000000..bf1872427 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-read-set-import-jobs.rst @@ -0,0 +1,31 @@ +**To get a list of read set import jobs** + +The following ``list-read-set-import-jobs`` example gets a list of import jobs for a sequence store with id ``1234567890``. :: + + aws omics list-read-set-import-jobs \ + --sequence-store-id 1234567890 + +Output:: + + { + "importJobs": [ + { + "completionTime": "2022-11-29T18:17:49.244Z", + "creationTime": "2022-11-29T17:32:47.700Z", + "id": "1234567890", + "roleArn": "arn:aws:iam::123456789012:role/omics-service-role-serviceRole-W8O1XMPL7QZ", + "sequenceStoreId": "1234567890", + "status": "COMPLETED" + }, + { + "completionTime": "2022-11-23T22:01:34.090Z", + "creationTime": "2022-11-23T21:52:43.289Z", + "id": "1234567890", + "roleArn": "arn:aws:iam::123456789012:role/omics-service-role-serviceRole-W8O1XMPL7QZ", + "sequenceStoreId": "1234567890", + "status": "COMPLETED_WITH_FAILURES" + } + ] + } + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-read-set-upload-parts.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-read-set-upload-parts.rst new file mode 100644 index 000000000..50def7b31 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-read-set-upload-parts.rst @@ -0,0 +1,32 @@ +**To list all parts in a requested multipart upload for a sequence store.** + +The following ``list-read-set-upload-parts`` example list all parts in a requested multipart upload for a sequence store. :: + + aws omics list-read-set-upload-parts \ + --sequence-store-id 0123456789 \ + --upload-id 1122334455 \ + --part-source SOURCE1 + +Output:: + + { + "parts": [ + { + "partNumber": 1, + "partSize": 94371840, + "file": "SOURCE1", + "checksum": "984979b9928ae8d8622286c4a9cd8e99d964a22d59ed0f5722e1733eb280e635", + "lastUpdatedTime": "2023-02-02T20:14:47.533000+00:00" + } + { + "partNumber": 2, + "partSize": 10471840, + "file": "SOURCE1", + "checksum": "984979b9928ae8d8622286c4a9cd8e99d964a22d59ed0f5722e1733eb280e635", + "lastUpdatedTime": "2023-02-02T20:14:47.533000+00:00" + } + ] + + } + +For more information, see `Direct upload to a sequence store `__ in the *AWS HealthOmics User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-read-sets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-read-sets.rst new file mode 100644 index 000000000..bc253da0c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-read-sets.rst @@ -0,0 +1,27 @@ +**To get a list of read sets** + +The following ``list-read-sets`` example gets a list of read sets for a sequence store with id ``1234567890``. :: + + aws omics list-read-sets \ + --sequence-store-id 1234567890 + +Output:: + + { + "readSets": [ + { + "arn": "arn:aws:omics:us-west-2:123456789012:sequenceStore/1234567890/readSet/1234567890", + "creationTime": "2022-11-23T21:55:00.515Z", + "fileType": "FASTQ", + "id": "1234567890", + "name": "HG00146", + "referenceArn": "arn:aws:omics:us-west-2:123456789012:referenceStore/1234567890/reference/1234567890", + "sampleId": "fastq-sample", + "sequenceStoreId": "1234567890", + "status": "ACTIVE", + "subjectId": "fastq-subject" + } + ] + } + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-reference-import-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-reference-import-jobs.rst new file mode 100644 index 000000000..62dfec741 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-reference-import-jobs.rst @@ -0,0 +1,30 @@ +**To get a list of reference import jobs** + +The following ``list-reference-import-jobs`` example gets a list of reference import jobs for a reference store with id ``1234567890``. :: + + aws omics list-reference-import-jobs \ + --reference-store-id 1234567890 + +Output:: + + { + "importJobs": [ + { + "completionTime": "2022-11-23T19:54:58.204Z", + "creationTime": "2022-11-23T19:53:20.729Z", + "id": "1234567890", + "referenceStoreId": "1234567890", + "roleArn": "arn:aws:iam::123456789012:role/omics-service-role-serviceRole-W8O1XMPL7QZ", + "status": "COMPLETED" + }, + { + "creationTime": "2022-11-23T20:34:03.250Z", + "id": "1234567890", + "referenceStoreId": "1234567890", + "roleArn": "arn:aws:iam::123456789012:role/omics-service-role-serviceRole-W8O1XMPL7QZ", + "status": "IN_PROGRESS" + } + ] + } + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-reference-stores.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-reference-stores.rst new file mode 100644 index 000000000..b8ced6fdf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-reference-stores.rst @@ -0,0 +1,20 @@ +**To get a list of reference stores** + +The following ``list-reference-stores`` example gets a list of reference stores. :: + + aws omics list-reference-stores + +Output:: + + { + "referenceStores": [ + { + "arn": "arn:aws:omics:us-west-2:123456789012:referenceStore/1234567890", + "creationTime": "2022-11-22T22:13:25.947Z", + "id": "1234567890", + "name": "my-ref-store" + } + ] + } + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-references.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-references.rst new file mode 100644 index 000000000..519df2bed --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-references.rst @@ -0,0 +1,25 @@ +**To get a list of references** + +The following ``list-references`` example gets a list of genome references for a reference store with id ``1234567890``. :: + + aws omics list-references \ + --reference-store-id 1234567890 + +Output:: + + { + "references": [ + { + "arn": "arn:aws:omics:us-west-2:123456789012:referenceStore/1234567890/reference/1234567890", + "creationTime": "2022-11-22T22:27:09.033Z", + "id": "1234567890", + "md5": "7ff134953dcca8c8997453bbb80b6b5e", + "name": "assembly-38", + "referenceStoreId": "1234567890", + "status": "ACTIVE", + "updateTime": "2022-11-22T22:27:09.033Z" + } + ] + } + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-run-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-run-groups.rst new file mode 100644 index 000000000..f418135bb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-run-groups.rst @@ -0,0 +1,22 @@ +**To get a list of run groups** + +The following ``list-run-groups`` example gets a list of run groups. :: + + aws omics list-run-groups + +Output:: + + { + "items": [ + { + "arn": "arn:aws:omics:us-west-2:123456789012:runGroup/1234567", + "creationTime": "2022-12-01T00:58:42.915219Z", + "id": "1234567", + "maxCpus": 20, + "maxDuration": 600, + "name": "cram-convert" + } + ] + } + +For more information, see `Creating run groups `__ in the *AWS HealthOmics User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-run-tasks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-run-tasks.rst new file mode 100644 index 000000000..112a997a7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-run-tasks.rst @@ -0,0 +1,35 @@ +**To get a list of tasks** + +The following ``list-run-tasks`` example gets a list of tasks for a workflow run. :: + + aws omics list-run-tasks \ + --id 1234567 + +Output:: + + { + "items": [ + { + "cpus": 1, + "creationTime": "2022-11-30T23:13:00.718651Z", + "memory": 15, + "name": "CramToBamTask", + "startTime": "2022-11-30T23:17:47.016Z", + "status": "COMPLETED", + "stopTime": "2022-11-30T23:18:21.503Z", + "taskId": "1234567" + }, + { + "cpus": 1, + "creationTime": "2022-11-30T23:18:32.315606Z", + "memory": 4, + "name": "ValidateSamFile", + "startTime": "2022-11-30T23:23:40.165Z", + "status": "COMPLETED", + "stopTime": "2022-11-30T23:24:14.766Z", + "taskId": "1234567" + } + ] + } + +For more information, see `Task lifecycle in a HealthOmics run `__ in the *AWS HealthOmics User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-runs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-runs.rst new file mode 100644 index 000000000..7cd1ec239 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-runs.rst @@ -0,0 +1,46 @@ +**To get a list of workflow runs** + +The following ``list-runs`` example gets a list of workflow runs. :: + + aws omics list-runs + +Output:: + + { + "items": [ + { + "arn": "arn:aws:omics:us-west-2:123456789012:run/1234567", + "creationTime": "2022-12-02T23:20:01.202074Z", + "id": "1234567", + "name": "cram-to-bam", + "priority": 1, + "startTime": "2022-12-02T23:29:18.115Z", + "status": "COMPLETED", + "stopTime": "2022-12-02T23:57:54.428812Z", + "storageCapacity": 10, + "workflowId": "1234567" + }, + { + "arn": "arn:aws:omics:us-west-2:123456789012:run/1234567", + "creationTime": "2022-12-03T00:16:57.180066Z", + "id": "1234567", + "name": "cram-to-bam", + "priority": 1, + "startTime": "2022-12-03T00:26:50.233Z", + "status": "FAILED", + "stopTime": "2022-12-03T00:37:21.451340Z", + "storageCapacity": 10, + "workflowId": "1234567" + }, + { + "arn": "arn:aws:omics:us-west-2:123456789012:run/1234567", + "creationTime": "2022-12-05T17:57:08.444817Z", + "id": "1234567", + "name": "cram-to-bam", + "status": "STARTING", + "workflowId": "1234567" + } + ] + } + +For more information, see `Run lifecycle in a workflow `__ in the *AWS HealthOmics User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-sequence-stores.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-sequence-stores.rst new file mode 100644 index 000000000..c0324b6af --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-sequence-stores.rst @@ -0,0 +1,20 @@ +**To get a list of sequence stores** + +The following ``list-sequence-stores`` example gets a list of sequence stores. :: + + aws omics list-sequence-stores + +Output:: + + { + "sequenceStores": [ + { + "arn": "arn:aws:omics:us-west-2:123456789012:sequenceStore/1234567890", + "creationTime": "2022-11-23T01:24:33.629Z", + "id": "1234567890", + "name": "my-seq-store" + } + ] + } + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-shares.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-shares.rst new file mode 100644 index 000000000..755e470ab --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-shares.rst @@ -0,0 +1,41 @@ +**To list the available shares of a HealthOmics analytics data** + +The following ``list-shares`` example lists all shares that have been created for a resource-owner. :: + + aws omics list-shares \ + --resource-owner SELF + +Output:: + + { + "shares": [ + { + "shareId": "595c1cbd-a008-4eca-a887-954d30c91c6e", + "name": "myShare", + "resourceArn": "arn:aws:omics:us-west-2:555555555555:variantStore/store_1", + "principalSubscriber": "123456789012", + "ownerId": "555555555555", + "status": "PENDING" + } + { + "shareId": "39b65d0d-4368-4a19-9814-b0e31d73c10a", + "name": "myShare3456", + "resourceArn": "arn:aws:omics:us-west-2:555555555555:variantStore/store_2", + "principalSubscriber": "123456789012", + "ownerId": "555555555555", + "status": "ACTIVE" + }, + { + "shareId": "203152f5-eef9-459d-a4e0-a691668d44ef", + "name": "myShare4", + "resourceArn": "arn:aws:omics:us-west-2:555555555555:variantStore/store_3", + "principalSubscriber": "123456789012", + "ownerId": "555555555555", + "status": "ACTIVE" + } + ] + } + + + +For more information, see `Cross-account sharing `__ in the *AWS HealthOmics User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-tags-for-resource.rst new file mode 100644 index 000000000..f852cc0bd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-tags-for-resource.rst @@ -0,0 +1,16 @@ +**To get a list of tags** + +The following ``list-tags-for-resource`` example gets a list of tags for a workflow with id ``1234567``. :: + + aws omics list-tags-for-resource \ + --resource-arn arn:aws:omics:us-west-2:123456789012:workflow/1234567 + +Output:: + + { + "tags": { + "department": "analytics" + } + } + +For more information, see `Tagging resources in Amazon Omics `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-variant-import-jobs.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-variant-import-jobs.rst new file mode 100644 index 000000000..1c9fb9ed8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-variant-import-jobs.rst @@ -0,0 +1,32 @@ +**To get a list of variant import jobs** + +The following ``list-variant-import-jobs`` example gets a list of variant import jobs. :: + + aws omics list-variant-import-jobs + +Output:: + + { + "variantImportJobs": [ + { + "creationTime": "2022-11-23T22:47:02.514002Z", + "destinationName": "my_var_store", + "id": "69cb65d6-xmpl-4a4a-9025-4565794b684e", + "roleArn": "arn:aws:iam::123456789012:role/omics-service-role-serviceRole-W8O1XMPL7QZ", + "runLeftNormalization": false, + "status": "COMPLETED", + "updateTime": "2022-11-23T22:49:17.976597Z" + }, + { + "creationTime": "2022-11-23T22:42:50.037812Z", + "destinationName": "my_var_store", + "id": "edd7b8ce-xmpl-47e2-bc99-258cac95a508", + "roleArn": "arn:aws:iam::123456789012:role/omics-service-role-serviceRole-W8O1XMPL7QZ", + "runLeftNormalization": false, + "status": "COMPLETED", + "updateTime": "2022-11-23T22:45:26.009880Z" + } + ] + } + +For more information, see `Omics Analytics `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-variant-stores.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-variant-stores.rst new file mode 100644 index 000000000..092f8dd4e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-variant-stores.rst @@ -0,0 +1,35 @@ +**To get a list of variant stores** + +The following ``list-variant-stores`` example gets a list of variant stores. :: + + aws omics list-variant-stores + +Output:: + + { + "variantStores": [ + { + "creationTime": "2022-11-23T22:09:07.534499Z", + "id": "02dexmplcfdd", + "name": "my_var_store", + "reference": { + "referenceArn": "arn:aws:omics:us-west-2:123456789012:referenceStore/1234567890/reference/1234567890" + }, + "status": "CREATING", + "storeArn": "arn:aws:omics:us-west-2:123456789012:variantStore/my_var_store", + "storeSizeBytes": 0, + "updateTime": "2022-11-23T22:09:24.931711Z" + }, + { + "creationTime": "2022-09-23T23:00:09.140265Z", + "id": "8777xmpl1a24", + "name": "myvstore0", + "status": "ACTIVE", + "storeArn": "arn:aws:omics:us-west-2:123456789012:variantStore/myvstore0", + "storeSizeBytes": 0, + "updateTime": "2022-09-23T23:03:26.013220Z" + } + ] + } + +For more information, see `Omics Analytics `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-workflows.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-workflows.rst new file mode 100644 index 000000000..2716639f4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/list-workflows.rst @@ -0,0 +1,32 @@ +**To get a list of workflows** + +The following ``list-workflows`` example gets a list of workflows. :: + + aws omics list-workflows + +Output:: + + { + "items": [ + { + "arn": "arn:aws:omics:us-west-2:123456789012:workflow/1234567", + "creationTime": "2022-09-23T23:08:22.041227Z", + "digest": "nSCNo/qMWFxmplXpUdokXJnwgneOaxyyc2YOxVxrJTE=", + "id": "1234567", + "name": "my-wkflow-0", + "status": "ACTIVE", + "type": "PRIVATE" + }, + { + "arn": "arn:aws:omics:us-west-2:123456789012:workflow/1234567", + "creationTime": "2022-11-30T22:33:16.225368Z", + "digest": "sha256:c54bxmpl742dcc26f7fa1f10e37550ddd8f251f418277c0a58e895b801ed28cf", + "id": "1234567", + "name": "cram-converter", + "status": "ACTIVE", + "type": "PRIVATE" + } + ] + } + +For more information, see `Creating private workflows `__ in the *AWS HealthOmics User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/start-annotation-import-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/start-annotation-import-job.rst new file mode 100644 index 000000000..b5c5a04b2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/start-annotation-import-job.rst @@ -0,0 +1,17 @@ +**To import annotations** + +The following ``start-annotation-import-job`` example imports annotations from Amazon S3. :: + + aws omics start-annotation-import-job \ + --destination-name tsv_ann_store \ + --no-run-left-normalization \ + --role-arn arn:aws:iam::123456789012:role/omics-service-role-serviceRole-W8O1XMPL7QZ \ + --items source=s3://omics-artifacts-01d6xmpl4e72dd32/targetedregions.bed.gz + +Output:: + + { + "jobId": "984162c7-xmpl-4d23-ab47-286f7950bfbf" + } + +For more information, see `Omics Analytics `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/start-read-set-activation-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/start-read-set-activation-job.rst new file mode 100644 index 000000000..dab0c5b8a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/start-read-set-activation-job.rst @@ -0,0 +1,18 @@ +**To activate an archived read set** + +The following ``start-read-set-activation-job`` example activates two read sets. :: + + aws omics start-read-set-activation-job \ + --sequence-store-id 1234567890 \ + --sources readSetId=1234567890 readSetId=1234567890 + +Output:: + + { + "creationTime": "2022-12-06T22:35:10.100Z", + "id": "1234567890", + "sequenceStoreId": "1234567890", + "status": "SUBMITTED" + } + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/start-read-set-export-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/start-read-set-export-job.rst new file mode 100644 index 000000000..a33be5c76 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/start-read-set-export-job.rst @@ -0,0 +1,22 @@ +**To export a read set** + +The following ``start-read-set-export-job`` example exports two read sets to Amazon S3. :: + + aws omics start-read-set-export-job \ + --sequence-store-id 1234567890 \ + --sources readSetId=1234567890 readSetId=1234567890 \ + --role-arn arn:aws:iam::123456789012:role/omics-service-role-serviceRole-W8O1XMPL7QZ + \ + --destination s3://omics-artifacts-01d6xmpl4e72dd32/read-set-export/ + +Output:: + + { + "creationTime": "2022-12-06T22:37:18.612Z", + "destination": "s3://omics-artifacts-01d6xmpl4e72dd32/read-set-export/", + "id": "1234567890", + "sequenceStoreId": "1234567890", + "status": "SUBMITTED" + } + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/start-read-set-import-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/start-read-set-import-job.rst new file mode 100644 index 000000000..7626e392a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/start-read-set-import-job.rst @@ -0,0 +1,37 @@ +**To import a read set** + +The following ``start-read-set-import-job`` example imports a read set. :: + + aws omics start-read-set-import-job \ + --sequence-store-id 1234567890 \ + --role-arn arn:aws:iam::123456789012:role/omics-service-role-serviceRole-W8O1XMPL7QZ \ + --sources file://readset-sources.json + +`readset-sources.json` is a JSON document with the following content. :: + + [ + { + "sourceFiles": + { + "source1": "s3://omics-artifacts-01d6xmpl4e72dd32/HG00100.chrom20.ILLUMINA.bwa.GBR.low_coverage.20101123.bam" + }, + "sourceFileType": "BAM", + "subjectId": "bam-subject", + "sampleId": "bam-sample", + "referenceArn": "arn:aws:omics:us-west-2:123456789012:referenceStore/1234567890/reference/1234567890", + "name": "HG00100" + } + ] + +Output:: + + { + "creationTime": "2022-11-23T01:36:38.158Z", + "id": "1234567890", + "roleArn": "arn:aws:iam::123456789012:role/omics-service-role-serviceRole-W8O1XMPL7QZ", + "sequenceStoreId": "1234567890", + "status": "SUBMITTED" + } + + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/start-reference-import-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/start-reference-import-job.rst new file mode 100644 index 000000000..491e14c5d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/start-reference-import-job.rst @@ -0,0 +1,20 @@ +**To import a reference genome** + +The following ``start-reference-import-job`` example imports a reference genome from Amazon S3. :: + + aws omics start-reference-import-job \ + --reference-store-id 1234567890 \ + --role-arn arn:aws:iam::123456789012:role/omics-service-role-serviceRole-W8O1XMPL7QZ \ + --sources sourceFile=s3://omics-artifacts-01d6xmpl4e72dd32/Homo_sapiens_assembly38.fasta,name=assembly-38 + +Output:: + + { + "creationTime": "2022-11-22T22:25:41.124Z", + "id": "1234567890", + "referenceStoreId": "1234567890", + "roleArn": "arn:aws:iam::123456789012:role/omics-service-role-serviceRole-W8O1XMPL7QZ", + "status": "SUBMITTED" + } + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/start-run.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/start-run.rst new file mode 100644 index 000000000..64caa29b2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/start-run.rst @@ -0,0 +1,48 @@ +**To run a workflow** + +The following ``start-run`` example runs a workflow with ID ``1234567``. :: + + aws omics start-run \ + --workflow-id 1234567 \ + --role-arn arn:aws:iam::123456789012:role/omics-service-role-serviceRole-W8O1XMPL7QZ \ + --name 'cram-to-bam' \ + --output-uri s3://omics-artifacts-01d6xmpl4e72dd32/workflow-output/ \ + --run-group-id 1234567 \ + --priority 1 \ + --storage-capacity 10 \ + --log-level ALL \ + --parameters file://workflow-inputs.json + +`workflow-inputs.json` is a JSON document with the following content. :: + + { + "sample_name": "NA12878", + "input_cram": "s3://omics-artifacts-01d6xmpl4e72dd32/NA12878.cram", + "ref_dict": "s3://omics-artifacts-01d6xmpl4e72dd32/Homo_sapiens_assembly38.dict", + "ref_fasta": "s3://omics-artifacts-01d6xmpl4e72dd32/Homo_sapiens_assembly38.fasta", + "ref_fasta_index": "omics-artifacts-01d6xmpl4e72dd32/Homo_sapiens_assembly38.fasta.fai" + } + +Output:: + + { + "arn": "arn:aws:omics:us-west-2:123456789012:run/1234567", + "id": "1234567", + "status": "PENDING", + "tags": {} + } + +For more information, see `Starting a run `__ in the *AWS HealthOmics User Guide*. + +**To load source files from Amazon Omics** + +You can also load source files from Amazon Omics storage, by using service-specific URIs. The following example `workflow-inputs.json` file uses Amazon Omics URIs for read set and reference genome sources. :: + + { + "sample_name": "NA12878", + "input_cram": "omics://123456789012.storage.us-west-2.amazonaws.com/1234567890/readSet/1234567890/source1", + "ref_dict": "s3://omics-artifacts-01d6xmpl4e72dd32/Homo_sapiens_assembly38.dict", + "ref_fasta": "omics://123456789012.storage.us-west-2.amazonaws.com/1234567890/reference/1234567890", + "ref_fasta_index": "omics://123456789012.storage.us-west-2.amazonaws.com/1234567890/reference/1234567890/index" + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/start-variant-import-job.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/start-variant-import-job.rst new file mode 100644 index 000000000..c5e9bcbe3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/start-variant-import-job.rst @@ -0,0 +1,17 @@ +**To import a variant file** + +The following ``start-variant-import-job`` example imports a VCF format variant file. :: + + aws omics start-variant-import-job \ + --destination-name my_var_store \ + --no-run-left-normalization \ + --role-arn arn:aws:iam::123456789012:role/omics-service-role-serviceRole-W8O1XMPL7QZ \ + --items source=s3://omics-artifacts-01d6xmpl4e72dd32/Homo_sapiens_assembly38.known_indels.vcf.gz + +Output:: + + { + "jobId": "edd7b8ce-xmpl-47e2-bc99-258cac95a508" + } + +For more information, see `Omics Analytics `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/tag-resource.rst new file mode 100644 index 000000000..955c085dc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/tag-resource.rst @@ -0,0 +1,9 @@ +**To tag a resource** + +The following ``tag-resource`` example adds a ``department`` tag to a workflow with id ``1234567``. :: + + aws omics tag-resource \ + --resource-arn arn:aws:omics:us-west-2:123456789012:workflow/1234567 \ + --tags department=analytics + +For more information, see `Tagging resources in Amazon Omics `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/untag-resource.rst new file mode 100644 index 000000000..73cc0e542 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/untag-resource.rst @@ -0,0 +1,9 @@ +**To remove a tag from a resource** + +The following ``untag-resource`` example removes the ``department`` tag from a workflow. :: + + aws omics untag-resource \ + --resource-arn arn:aws:omics:us-west-2:123456789012:workflow/1234567 \ + --tag-keys department + +For more information, see `Omics Storage `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/update-annotation-store.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/update-annotation-store.rst new file mode 100644 index 000000000..58e7b1831 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/update-annotation-store.rst @@ -0,0 +1,24 @@ +**To update an annotation store** + +The following ``update-annotation-store`` example updates the description of an annotation store named ``my_vcf_store``. :: + + aws omics update-annotation-store \ + --name my_vcf_store \ + --description "VCF annotation store" + +Output:: + + { + "creationTime": "2022-12-05T18:00:56.101860Z", + "description": "VCF annotation store", + "id": "bd6axmpl2444", + "name": "my_vcf_store", + "reference": { + "referenceArn": "arn:aws:omics:us-west-2:123456789012:referenceStore/1234567890/reference/1234567890" + }, + "status": "ACTIVE", + "storeFormat": "VCF", + "updateTime": "2022-12-05T18:13:16.100051Z" + } + +For more information, see `Omics Analytics `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/update-run-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/update-run-group.rst new file mode 100644 index 000000000..311a4e20b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/update-run-group.rst @@ -0,0 +1,21 @@ +**To update a run group** + +The following ``update-run-group`` example updates the settings of a run group with id ``1234567``. :: + + aws omics update-run-group \ + --id 1234567 \ + --max-cpus 10 + +Output:: + + { + "arn": "arn:aws:omics:us-west-2:123456789012:runGroup/1234567", + "creationTime": "2022-12-01T00:58:42.915219Z", + "id": "1234567", + "maxCpus": 10, + "maxDuration": 600, + "name": "cram-convert", + "tags": {} + } + +For more information, see `Omics Workflows `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/update-variant-store.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/update-variant-store.rst new file mode 100644 index 000000000..3af1aa9ee --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/update-variant-store.rst @@ -0,0 +1,23 @@ +**To update a variant store** + +The following ``update-variant-store`` example updates the description of a variant store named ``my_var_store``. :: + + aws omics update-variant-store \ + --name my_var_store \ + --description "variant store" + +Output:: + + { + "creationTime": "2022-11-23T22:09:07.534499Z", + "description": "variant store", + "id": "02dexmplcfdd", + "name": "my_var_store", + "reference": { + "referenceArn": "arn:aws:omics:us-west-2:123456789012:referenceStore/1234567890/reference/1234567890" + }, + "status": "ACTIVE", + "updateTime": "2022-12-05T18:23:37.686402Z" + } + +For more information, see `Omics Analytics `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/update-workflow.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/update-workflow.rst new file mode 100644 index 000000000..18b3ac4cf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/update-workflow.rst @@ -0,0 +1,9 @@ +**To update a workflow** + +The following ``update-workflow`` example updates the description of a workflow with ID ``1234567``. :: + + aws omics update-workflow \ + --id 1234567 \ + --description "copy workflow" + +For more information, see `Creating or updating a workflow `__ in the *AWS HealthOmics User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/upload-read-set-part.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/upload-read-set-part.rst new file mode 100644 index 000000000..ef9f54588 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/upload-read-set-part.rst @@ -0,0 +1,18 @@ +**To upload a read set part.** + +The following ``upload-read-set-part`` example uploads a specified part of a read set. :: + + aws omics upload-read-set-part \ + --sequence-store-id 0123456789 \ + --upload-id 1122334455 \ + --part-source SOURCE1 \ + --part-number 1 \ + --payload /path/to/file/read_1_part_1.fastq.gz + +Output:: + + { + "checksum": "984979b9928ae8d8622286c4a9cd8e99d964a22d59ed0f5722e1733eb280e635" + } + +For more information, see `Direct upload to a sequence store `__ in the *AWS HealthOmics User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/wait.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/wait.rst new file mode 100644 index 000000000..97821b410 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/omics/wait.rst @@ -0,0 +1,8 @@ +**To wait for an annotation store to be ready** + +The following ``wait`` example waits for an annotation store's status to be ``ACTIVE``. :: + + aws omics wait annotation-store-created \ + --name my_ann_store + +For more information, see `Omics Analytics `__ in the *Amazon Omics Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/accept-handshake.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/accept-handshake.rst new file mode 100755 index 000000000..0877352be --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/accept-handshake.rst @@ -0,0 +1,52 @@ +**To accept a handshake from another account** + +Bill, the owner of an organization, has previously invited Juan's account to join his organization. The following example shows Juan's account accepting the handshake and thus agreeing to the invitation. :: + + aws organizations accept-handshake --handshake-id h-examplehandshakeid111 + +The output shows the following: :: + + { + "Handshake": { + "Action": "INVITE", + "Arn": "arn:aws:organizations::111111111111:handshake/o-exampleorgid/invite/h-examplehandshakeid111", + "RequestedTimestamp": 1481656459.257, + "ExpirationTimestamp": 1482952459.257, + "Id": "h-examplehandshakeid111", + "Parties": [ + { + "Id": "o-exampleorgid", + "Type": "ORGANIZATION" + }, + { + "Id": "juan@example.com", + "Type": "EMAIL" + } + ], + "Resources": [ + { + "Resources": [ + { + "Type": "MASTER_EMAIL", + "Value": "bill@amazon.com" + }, + { + "Type": "MASTER_NAME", + "Value": "Org Master Account" + }, + { + "Type": "ORGANIZATION_FEATURE_SET", + "Value": "ALL" + } + ], + "Type": "ORGANIZATION", + "Value": "o-exampleorgid" + }, + { + "Type": "EMAIL", + "Value": "juan@example.com" + } + ], + "State": "ACCEPTED" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/attach-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/attach-policy.rst new file mode 100755 index 000000000..a3478e620 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/attach-policy.rst @@ -0,0 +1,17 @@ +**To attach a policy to a root, OU, or account** + +**Example 1** + +The following example shows how to attach a service control policy (SCP) to an OU: :: + + aws organizations attach-policy + --policy-id p-examplepolicyid111 + --target-id ou-examplerootid111-exampleouid111 + +**Example 2** + +The following example shows how to attach a service control policy directly to an account: :: + + aws organizations attach-policy + --policy-id p-examplepolicyid111 + --target-id 333333333333 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/cancel-handshake.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/cancel-handshake.rst new file mode 100755 index 000000000..e2a83da8a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/cancel-handshake.rst @@ -0,0 +1,56 @@ +**To cancel a handshake sent from another account** + +Bill previously sent an invitation to Susan's account to join his organization. He changes his mind and decides to cancel the invitation before Susan accepts it. The following example shows Bill's cancellation: :: + + aws organizations cancel-handshake --handshake-id h-examplehandshakeid111 + +The output includes a handshake object that shows that the state is now ``CANCELED``: :: + + { + "Handshake": { + "Id": "h-examplehandshakeid111", + "State":"CANCELED", + "Action": "INVITE", + "Arn": "arn:aws:organizations::111111111111:handshake/o-exampleorgid/invite/h-examplehandshakeid111", + "Parties": [ + { + "Id": "o-exampleorgid", + "Type": "ORGANIZATION" + }, + { + "Id": "susan@example.com", + "Type": "EMAIL" + } + ], + "Resources": [ + { + "Type": "ORGANIZATION", + "Value": "o-exampleorgid", + "Resources": [ + { + "Type": "MASTER_EMAIL", + "Value": "bill@example.com" + }, + { + "Type": "MASTER_NAME", + "Value": "Master Account" + }, + { + "Type": "ORGANIZATION_FEATURE_SET", + "Value": "CONSOLIDATED_BILLING" + } + ] + }, + { + "Type": "EMAIL", + "Value": "anika@example.com" + }, + { + "Type": "NOTES", + "Value": "This is a request for Susan's account to join Bob's organization." + } + ], + "RequestedTimestamp": 1.47008383521E9, + "ExpirationTimestamp": 1.47137983521E9 + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/create-account.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/create-account.rst new file mode 100755 index 000000000..9a6ea113b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/create-account.rst @@ -0,0 +1,20 @@ +**To create a member account that is automatically part of the organization** + +The following example shows how to create a member account in an organization. The member account is configured with the name Production Account and the email address of susan@example.com. Organizations automatically creates an IAM role using the default name of OrganizationAccountAccessRole because the roleName parameter is not specified. Also, the setting that allows IAM users or roles with sufficient permissions to access account billing data is set to the default value of ALLOW because the IamUserAccessToBilling parameter is not specified. Organizations automatically sends Susan a "Welcome to AWS" email: :: + + aws organizations create-account --email susan@example.com --account-name "Production Account" + +The output includes a request object that shows that the status is now ``IN_PROGRESS``: :: + + { + "CreateAccountStatus": { + "State": "IN_PROGRESS", + "Id": "car-examplecreateaccountrequestid111" + } + } + +You can later query the current status of the request by providing the Id response value to the describe-create-account-status command as the value for the create-account-request-id parameter. + +For more information, see `Creating an AWS Account in Your Organization`_ in the *AWS Organizations Users Guide*. + +.. _`Creating an AWS Account in Your Organization`: http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_create.html diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/create-organization.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/create-organization.rst new file mode 100755 index 000000000..9e217ece7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/create-organization.rst @@ -0,0 +1,48 @@ +**Example 1: To create a new organization** + +Bill wants to create an organization using credentials from account 111111111111. The following example shows that the account becomes the master account in the new organization. Because he does not specify a features set, the new organization defaults to all features enabled and service control policies are enabled on the root. :: + + aws organizations create-organization + +The output includes an organization object with details about the new organization: :: + + { + "Organization": { + "AvailablePolicyTypes": [ + { + "Status": "ENABLED", + "Type": "SERVICE_CONTROL_POLICY" + } + ], + "MasterAccountId": "111111111111", + "MasterAccountArn": "arn:aws:organizations::111111111111:account/o-exampleorgid/111111111111", + "MasterAccountEmail": "bill@example.com", + "FeatureSet": "ALL", + "Id": "o-exampleorgid", + "Arn": "arn:aws:organizations::111111111111:organization/o-exampleorgid" + } + } + +**Example 2: To create a new organization with only consolidated billing features enabled** + +The following example creates an organization that supports only the consolidated billing features: :: + + aws organizations create-organization --feature-set CONSOLIDATED_BILLING + +The output includes an organization object with details about the new organization: :: + + { + "Organization": { + "Arn": "arn:aws:organizations::111111111111:organization/o-exampleorgid", + "AvailablePolicyTypes": [], + "Id": "o-exampleorgid", + "MasterAccountArn": "arn:aws:organizations::111111111111:account/o-exampleorgid/111111111111", + "MasterAccountEmail": "bill@example.com", + "MasterAccountId": "111111111111", + "FeatureSet": "CONSOLIDATED_BILLING" + } + } + +For more information, see `Creating an Organization`_ in the *AWS Organizations Users Guide*. + +.. _`Creating an Organization`: http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_create.html diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/create-organizational-unit.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/create-organizational-unit.rst new file mode 100755 index 000000000..d30e50d96 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/create-organizational-unit.rst @@ -0,0 +1,15 @@ +**To create an OU in a root or parent OU** + +The following example shows how to create an OU that is named AccountingOU: :: + + aws organizations create-organizational-unit --parent-id r-examplerootid111 --name AccountingOU + +The output includes an organizationalUnit object with details about the new OU: :: + + { + "OrganizationalUnit": { + "Id": "ou-examplerootid111-exampleouid111", + "Arn": "arn:aws:organizations::111111111111:ou/o-exampleorgid/ou-examplerootid111-exampleouid111", + "Name": "AccountingOU" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/create-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/create-policy.rst new file mode 100755 index 000000000..47d106005 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/create-policy.rst @@ -0,0 +1,29 @@ +**Example 1: To create a policy with a text source file for the JSON policy** + +The following example shows you how to create an service control policy (SCP) named ``AllowAllS3Actions``. The policy contents are taken from a file on the local computer called ``policy.json``. :: + + aws organizations create-policy --content file://policy.json --name AllowAllS3Actions, --type SERVICE_CONTROL_POLICY --description "Allows delegation of all S3 actions" + +The output includes a policy object with details about the new policy: :: + + { + "Policy": { + "Content": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"s3:*\"],\"Resource\":[\"*\"]}]}", + "PolicySummary": { + "Arn": "arn:aws:organizations::o-exampleorgid:policy/service_control_policy/p-examplepolicyid111", + "Description": "Allows delegation of all S3 actions", + "Name": "AllowAllS3Actions", + "Type":"SERVICE_CONTROL_POLICY" + } + } + } + +**Example 2: To create a policy with a JSON policy as a parameter** + +The following example shows you how to create the same SCP, this time by embedding the policy contents as a JSON string in the parameter. The string must be escaped with backslashes before the double quotes to ensure that they are treated as literals in the parameter, which itself is surrounded by double quotes: :: + + aws organizations create-policy --content "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"s3:*\"],\"Resource\":[\"*\"]}]}" --name AllowAllS3Actions --type SERVICE_CONTROL_POLICY --description "Allows delegation of all S3 actions" + +For more information about creating and using policies in your organization, see `Managing Organization Policies`_ in the *AWS Organizations User Guide*. + +.. _`Managing Organization Policies`: http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies.html \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/decline-handshake.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/decline-handshake.rst new file mode 100755 index 000000000..989ba339b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/decline-handshake.rst @@ -0,0 +1,52 @@ +**To decline a handshake sent from another account** + +The following example shows that Susan, an admin who is the owner of account 222222222222, declines an invitation to join Bill's organization. The DeclineHandshake operation returns a handshake object, showing that the state is now DECLINED: :: + + aws organizations decline-handshake --handshake-id h-examplehandshakeid111 + +The output includes a handshake object that shows the new state of ``DECLINED``: :: + + { + "Handshake": { + "Id": "h-examplehandshakeid111", + "State": "DECLINED", + "Resources": [ + { + "Type": "ORGANIZATION", + "Value": "o-exampleorgid", + "Resources": [ + { + "Type": "MASTER_EMAIL", + "Value": "bill@example.com" + }, + { + "Type": "MASTER_NAME", + "Value": "Master Account" + } + ] + }, + { + "Type": "EMAIL", + "Value": "susan@example.com" + }, + { + "Type": "NOTES", + "Value": "This is an invitation to Susan's account to join the Bill's organization." + } + ], + "Parties": [ + { + "Type": "EMAIL", + "Id": "susan@example.com" + }, + { + "Type": "ORGANIZATION", + "Id": "o-exampleorgid" + } + ], + "Action": "INVITE", + "RequestedTimestamp": 1470684478.687, + "ExpirationTimestamp": 1471980478.687, + "Arn": "arn:aws:organizations::111111111111:handshake/o-exampleorgid/invite/h-examplehandshakeid111" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/delete-organization.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/delete-organization.rst new file mode 100755 index 000000000..0a6d03113 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/delete-organization.rst @@ -0,0 +1,5 @@ +**To delete an organization** + +The following example shows how to delete an organization. To perform this operation, you must be an admin of the master account in the organization. The example assumes that you previously removed all the member accounts, OUs, and policies from the organization: :: + + aws organizations delete-organization \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/delete-organizational-unit.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/delete-organizational-unit.rst new file mode 100755 index 000000000..f73e693f1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/delete-organizational-unit.rst @@ -0,0 +1,5 @@ +**To delete an OU** + +The following example shows how to delete an OU. The example assumes that you previously removed all accounts and other OUs from the OU: :: + + aws organizations delete-organizational-unit --organizational-unit-id ou-examplerootid111-exampleouid111 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/delete-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/delete-policy.rst new file mode 100755 index 000000000..a6a39ed1d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/delete-policy.rst @@ -0,0 +1,5 @@ +**To delete a policy** + +The following example shows how to delete a policy from an organization. The example assumes that you previously detached the policy from all entities: :: + + aws organizations delete-policy --policy-id p-examplepolicyid111 \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/describe-account.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/describe-account.rst new file mode 100755 index 000000000..0f40fc619 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/describe-account.rst @@ -0,0 +1,19 @@ +**To get the details about an account** + +The following example shows you how to request details about an account: :: + + aws organizations describe-account --account-id 555555555555 + +The output shows an account object with the details about the account: :: + + { + "Account": { + "Id": "555555555555", + "Arn": "arn:aws:organizations::111111111111:account/o-exampleorgid/555555555555", + "Name": "Beta account", + "Email": "anika@example.com", + "JoinedMethod": "INVITED", + "JoinedTimeStamp": 1481756563.134, + "Status": "ACTIVE" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/describe-create-account-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/describe-create-account-status.rst new file mode 100755 index 000000000..a01b19c2e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/describe-create-account-status.rst @@ -0,0 +1,20 @@ +**To get the latest status about a request to create an account** + +The following example shows how to request the latest status for a previous request to create an account in an organization. The specified --request-id comes from the response of the original call to create-account. The account creation request shows by the status field that Organizations successfully completed the creation of the account. + +Command:: + + aws organizations describe-create-account-status --create-account-request-id car-examplecreateaccountrequestid111 + +Output:: + + { + "CreateAccountStatus": { + "State": "SUCCEEDED", + "AccountId": "555555555555", + "AccountName": "Beta account", + "RequestedTimestamp": 1470684478.687, + "CompletedTimestamp": 1470684532.472, + "Id": "car-examplecreateaccountrequestid111" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/describe-handshake.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/describe-handshake.rst new file mode 100755 index 000000000..c6328b8f6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/describe-handshake.rst @@ -0,0 +1,48 @@ +**To get information about a handshake** + +The following example shows you how to request details about a handshake. The handshake ID comes either from the original call to ``InviteAccountToOrganization``, or from a call to ``ListHandshakesForAccount`` or ``ListHandshakesForOrganization``: :: + + aws organizations describe-handshake --handshake-id h-examplehandshakeid111 + +The output includes a handshake object that has all the details about the requested handshake: :: + + { + "Handshake": { + "Id": "h-examplehandshakeid111", + "State": "OPEN", + "Resources": [ + { + "Type": "ORGANIZATION", + "Value": "o-exampleorgid", + "Resources": [ + { + "Type": "MASTER_EMAIL", + "Value": "bill@example.com" + }, + { + "Type": "MASTER_NAME", + "Value": "Master Account" + } + ] + }, + { + "Type": "EMAIL", + "Value": "anika@example.com" + } + ], + "Parties": [ + { + "Type": "ORGANIZATION", + "Id": "o-exampleorgid" + }, + { + "Type": "EMAIL", + "Id": "anika@example.com" + } + ], + "Action": "INVITE", + "RequestedTimestamp": 1470158698.046, + "ExpirationTimestamp": 1471454698.046, + "Arn": "arn:aws:organizations::111111111111:handshake/o-exampleorgid/invite/h-examplehandshakeid111" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/describe-organization.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/describe-organization.rst new file mode 100755 index 000000000..04aaa2ac3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/describe-organization.rst @@ -0,0 +1,24 @@ +**To get information about the current organization** + +The following example shows you how to request details about an organization: :: + + aws organizations describe-organization + +The output includes an organization object that has the details about the organization: :: + + { + "Organization": { + "MasterAccountArn": "arn:aws:organizations::111111111111:account/o-exampleorgid/111111111111", + "MasterAccountEmail": "bill@example.com", + "MasterAccountId": "111111111111", + "Id": "o-exampleorgid", + "FeatureSet": "ALL", + "Arn": "arn:aws:organizations::111111111111:organization/o-exampleorgid", + "AvailablePolicyTypes": [ + { + "Status": "ENABLED", + "Type": "SERVICE_CONTROL_POLICY" + } + ] + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/describe-organizational-unit.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/describe-organizational-unit.rst new file mode 100755 index 000000000..f66d3877c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/describe-organizational-unit.rst @@ -0,0 +1,16 @@ +**To get information about an OU** + +The following ``describe-organizational-unit`` example requests details about an OU. :: + + aws organizations describe-organizational-unit \ + --organizational-unit-id ou-examplerootid111-exampleouid111 + +Output:: + + { + "OrganizationalUnit": { + "Name": "Accounting Group", + "Arn": "arn:aws:organizations::123456789012:ou/o-exampleorgid/ou-examplerootid111-exampleouid111", + "Id": "ou-examplerootid111-exampleouid111" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/describe-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/describe-policy.rst new file mode 100755 index 000000000..be2af5973 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/describe-policy.rst @@ -0,0 +1,21 @@ +**To get information about a policy** + +The following example shows how to request information about a policy: :: + + aws organizations describe-policy --policy-id p-examplepolicyid111 + +The output includes a policy object that contains details about the policy: :: + + { + "Policy": { + "Content": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": \"*\",\n \"Resource\": \"*\"\n }\n ]\n}", + "PolicySummary": { + "Arn": "arn:aws:organizations::111111111111:policy/o-exampleorgid/service_control_policy/p-examplepolicyid111", + "Type": "SERVICE_CONTROL_POLICY", + "Id": "p-examplepolicyid111", + "AwsManaged": false, + "Name": "AllowAllS3Actions", + "Description": "Enables admins to delegate S3 permissions" + } + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/detach-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/detach-policy.rst new file mode 100755 index 000000000..943a3be27 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/detach-policy.rst @@ -0,0 +1,5 @@ +**To detach a policy from a root, OU, or account** + +The following example shows how to detach a policy from an OU: :: + + aws organizations detach-policy --target-id ou-examplerootid111-exampleouid111 --policy-id p-examplepolicyid111 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/disable-policy-type.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/disable-policy-type.rst new file mode 100755 index 000000000..2e7a50325 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/disable-policy-type.rst @@ -0,0 +1,16 @@ +**To disable a policy type in a root** + +The following example shows how to disable the service control policy (SCP) policy type in a root: :: + + aws organizations disable-policy-type --root-id r-examplerootid111 --policy-type SERVICE_CONTROL_POLICY + +The output shows that the PolicyTypes response element no longer includes SERVICE_CONTROL_POLICY: :: + + { + "Root": { + "PolicyTypes": [], + "Name": "Root", + "Id": "r-examplerootid111", + "Arn": "arn:aws:organizations::111111111111:root/o-exampleorgid/r-examplerootid111" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/enable-all-features.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/enable-all-features.rst new file mode 100755 index 000000000..2365bb5ea --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/enable-all-features.rst @@ -0,0 +1,30 @@ +**To enable all features in an organization** + +This example shows the administrator asking all the invited accounts in the organization to approve enabled all features in the organization. AWS Organizations sends an email to the address that is registered with every invited member account asking the owner to approve the change to all features by accepting the handshake that is sent. After all invited member accounts accept the handshake, the organization administrator can finalize the change to all features, and those with appropriate permissions can create policies and apply them to roots, OUs, and accounts: :: + + aws organizations enable-all-features + +The output is a handshake object that is sent to all invited member accounts for approval: :: + + { + "Handshake": { + "Action": "ENABLE_ALL_FEATURES", + "Arn":"arn:aws:organizations::111111111111:handshake/o-exampleorgid/enable_all_features/h-examplehandshakeid111", + "ExpirationTimestamp":1.483127868609E9, + "Id":"h-examplehandshakeid111", + "Parties": [ + { + "id":"o-exampleorgid", + "type":"ORGANIZATION" + } + ], + "requestedTimestamp":1.481831868609E9, + "resources": [ + { + "type":"ORGANIZATION", + "value":"o-exampleorgid" + } + ], + "state":"REQUESTED" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/enable-policy-type.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/enable-policy-type.rst new file mode 100755 index 000000000..cc4ee3819 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/enable-policy-type.rst @@ -0,0 +1,21 @@ +**To enable the use of a policy type in a root** + +The following example shows how to enable the service control policy (SCP) policy type in a root: :: + + aws organizations enable-policy-type --root-id r-examplerootid111 --policy-type SERVICE_CONTROL_POLICY + +The output shows a root object with a policyTypes response element showing that SCPs are now enabled: :: + + { + "Root": { + "PolicyTypes": [ + { + "Status":"ENABLED", + "Type":"SERVICE_CONTROL_POLICY" + } + ], + "Id": "r-examplerootid111", + "Name": "Root", + "Arn": "arn:aws:organizations::111111111111:root/o-exampleorgid/r-examplerootid111" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/invite-account-to-organization.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/invite-account-to-organization.rst new file mode 100755 index 000000000..a5b253cf9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/invite-account-to-organization.rst @@ -0,0 +1,52 @@ +**To invite an account to join an organization** + +The following example shows the master account owned by bill@example.com inviting the account owned by juan@example.com to join an organization: :: + + aws organizations invite-account-to-organization --target '{"Type": "EMAIL", "Id": "juan@example.com"}' --notes "This is a request for Juan's account to join Bill's organization." + +The output includes a handshake structure that shows what is sent to the invited account: :: + + { + "Handshake": { + "Action": "INVITE", + "Arn": "arn:aws:organizations::111111111111:handshake/o-exampleorgid/invite/h-examplehandshakeid111", + "ExpirationTimestamp": 1482952459.257, + "Id": "h-examplehandshakeid111", + "Parties": [ + { + "Id": "o-exampleorgid", + "Type": "ORGANIZATION" + }, + { + "Id": "juan@example.com", + "Type": "EMAIL" + } + ], + "RequestedTimestamp": 1481656459.257, + "Resources": [ + { + "Resources": [ + { + "Type": "MASTER_EMAIL", + "Value": "bill@amazon.com" + }, + { + "Type": "MASTER_NAME", + "Value": "Org Master Account" + }, + { + "Type": "ORGANIZATION_FEATURE_SET", + "Value": "FULL" + } + ], + "Type": "ORGANIZATION", + "Value": "o-exampleorgid" + }, + { + "Type": "EMAIL", + "Value": "juan@example.com" + } + ], + "State": "OPEN" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/leave-organization.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/leave-organization.rst new file mode 100755 index 000000000..406aa8cf3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/leave-organization.rst @@ -0,0 +1,5 @@ +**To leave an organization as a member account** + +The following example shows the administrator of a member account requesting to leave the organization it is currently a member of: :: + + aws organizations leave-organization diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-accounts-for-parent.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-accounts-for-parent.rst new file mode 100755 index 000000000..56ffeafa6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-accounts-for-parent.rst @@ -0,0 +1,30 @@ +**To retrieve a list of all of the accounts in a specified parent root or OU** + +The following example shows how to request a list of the accounts in an OU: :: + + aws organizations list-accounts-for-parent --parent-id ou-examplerootid111-exampleouid111 + +The output includes a list of account summary objects. :: + + { + "Accounts": [ + { + "Arn": "arn:aws:organizations::111111111111:account/o-exampleorgid/333333333333", + "JoinedMethod": "INVITED", + "JoinedTimestamp": 1481835795.536, + "Id": "333333333333", + "Name": "Development Account", + "Email": "juan@example.com", + "Status": "ACTIVE" + }, + { + "Arn": "arn:aws:organizations::111111111111:account/o-exampleorgid/444444444444", + "JoinedMethod": "INVITED", + "JoinedTimestamp": 1481835812.143, + "Id": "444444444444", + "Name": "Test Account", + "Email": "anika@example.com", + "Status": "ACTIVE" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-accounts.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-accounts.rst new file mode 100755 index 000000000..fe50ef799 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-accounts.rst @@ -0,0 +1,48 @@ +**To retrieve a list of all of the accounts in an organization** + +The following example shows you how to request a list of the accounts in an organization: :: + + aws organizations list-accounts + +The output includes a list of account summary objects. :: + + { + "Accounts": [ + { + "Arn": "arn:aws:organizations::111111111111:account/o-exampleorgid/111111111111", + "JoinedMethod": "INVITED", + "JoinedTimestamp": 1481830215.45, + "Id": "111111111111", + "Name": "Master Account", + "Email": "bill@example.com", + "Status": "ACTIVE" + }, + { + "Arn": "arn:aws:organizations::111111111111:account/o-exampleorgid/222222222222", + "JoinedMethod": "INVITED", + "JoinedTimestamp": 1481835741.044, + "Id": "222222222222", + "Name": "Production Account", + "Email": "alice@example.com", + "Status": "ACTIVE" + }, + { + "Arn": "arn:aws:organizations::111111111111:account/o-exampleorgid/333333333333", + "JoinedMethod": "INVITED", + "JoinedTimestamp": 1481835795.536, + "Id": "333333333333", + "Name": "Development Account", + "Email": "juan@example.com", + "Status": "ACTIVE" + }, + { + "Arn": "arn:aws:organizations::111111111111:account/o-exampleorgid/444444444444", + "JoinedMethod": "INVITED", + "JoinedTimestamp": 1481835812.143, + "Id": "444444444444", + "Name": "Test Account", + "Email": "anika@example.com", + "Status": "ACTIVE" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-children.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-children.rst new file mode 100755 index 000000000..38862e781 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-children.rst @@ -0,0 +1,20 @@ +**To retrieve the child accounts and OUs of a parent OU or root** + +The following example you how to list the root or OU that contains that account 444444444444: :: + + aws organizations list-children --child-type ORGANIZATIONAL_UNIT --parent-id ou-examplerootid111-exampleouid111 + +The output shows the two child OUs that are contained by the parent: :: + + { + "Children": [ + { + "Id": "ou-examplerootid111-exampleouid111", + "Type":"ORGANIZATIONAL_UNIT" + }, + { + "Id":"ou-examplerootid111-exampleouid222", + "Type":"ORGANIZATIONAL_UNIT" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-create-account-status.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-create-account-status.rst new file mode 100755 index 000000000..1a79830ed --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-create-account-status.rst @@ -0,0 +1,39 @@ +**Example 1: To retrieve a list of the account creation requests made in the current organization** + +The following example shows how to request a list of account creation requests for an organization that have completed successfully: :: + + aws organizations list-create-account-status --states SUCCEEDED + +The output includes an array of objects with information about each request. :: + + { + "CreateAccountStatuses": [ + { + "AccountId": "444444444444", + "AccountName": "Developer Test Account", + "CompletedTimeStamp": 1481835812.143, + "Id": "car-examplecreateaccountrequestid111", + "RequestedTimeStamp": 1481829432.531, + "State": "SUCCEEDED" + } + ] + } + +**Example 2: To retrieve a list of the in progress account creation requests made in the current organization** + +The following example gets a list of in-progress account creation requests for an organization: :: + + aws organizations list-create-account-status --states IN_PROGRESS + +The output includes an array of objects with information about each request. :: + + { + "CreateAccountStatuses": [ + { + "State": "IN_PROGRESS", + "Id": "car-examplecreateaccountrequestid111", + "RequestedTimeStamp": 1481829432.531, + "AccountName": "Production Account" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-handshakes-for-account.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-handshakes-for-account.rst new file mode 100755 index 000000000..83d1c5149 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-handshakes-for-account.rst @@ -0,0 +1,52 @@ +**To retrieve a list of the handshakes sent to an account** + +The following example shows how to get a list of all handshakes that are associated with the account of the credentials that were used to call the operation: :: + + aws organizations list-handshakes-for-account + +The output includes a list of handshake structures with information about each handshake including its current state: :: + + { + "Handshake": { + "Action": "INVITE", + "Arn": "arn:aws:organizations::111111111111:handshake/o-exampleorgid/invite/h-examplehandshakeid111", + "ExpirationTimestamp": 1482952459.257, + "Id": "h-examplehandshakeid111", + "Parties": [ + { + "Id": "o-exampleorgid", + "Type": "ORGANIZATION" + }, + { + "Id": "juan@example.com", + "Type": "EMAIL" + } + ], + "RequestedTimestamp": 1481656459.257, + "Resources": [ + { + "Resources": [ + { + "Type": "MASTER_EMAIL", + "Value": "bill@amazon.com" + }, + { + "Type": "MASTER_NAME", + "Value": "Org Master Account" + }, + { + "Type": "ORGANIZATION_FEATURE_SET", + "Value": "FULL" + } + ], + "Type": "ORGANIZATION", + "Value": "o-exampleorgid" + }, + { + "Type": "EMAIL", + "Value": "juan@example.com" + } + ], + "State": "OPEN" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-handshakes-for-organization.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-handshakes-for-organization.rst new file mode 100755 index 000000000..6190af635 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-handshakes-for-organization.rst @@ -0,0 +1,100 @@ +**To retrieve a list of the handshakes associated with an organization** + +The following example shows how to get a list of handshakes that are associated with the current organization: :: + + aws organizations list-handshakes-for-organization + +The output shows two handshakes. The first one is an invitation to Juan's account and shows a state of OPEN. The second is an invitation to Anika's account and shows a state of ACCEPTED: :: + + { + "Handshakes": [ + { + "Action": "INVITE", + "Arn": "arn:aws:organizations::111111111111:handshake/o-exampleorgid/invite/h-examplehandshakeid111", + "ExpirationTimestamp": 1482952459.257, + "Id": "h-examplehandshakeid111", + "Parties": [ + { + "Id": "o-exampleorgid", + "Type": "ORGANIZATION" + }, + { + "Id": "juan@example.com", + "Type": "EMAIL" + } + ], + "RequestedTimestamp": 1481656459.257, + "Resources": [ + { + "Resources": [ + { + "Type": "MASTER_EMAIL", + "Value": "bill@amazon.com" + }, + { + "Type": "MASTER_NAME", + "Value": "Org Master Account" + }, + { + "Type": "ORGANIZATION_FEATURE_SET", + "Value": "FULL" + } + ], + "Type": "ORGANIZATION", + "Value": "o-exampleorgid" + }, + { + "Type": "EMAIL", + "Value": "juan@example.com" + }, + { + "Type":"NOTES", + "Value":"This is an invitation to Juan's account to join Bill's organization." + } + ], + "State": "OPEN" + }, + { + "Action": "INVITE", + "State":"ACCEPTED", + "Arn": "arn:aws:organizations::111111111111:handshake/o-exampleorgid/invite/h-examplehandshakeid111", + "ExpirationTimestamp": 1.471797437427E9, + "Id": "h-examplehandshakeid222", + "Parties": [ + { + "Id": "o-exampleorgid", + "Type": "ORGANIZATION" + }, + { + "Id": "anika@example.com", + "Type": "EMAIL" + } + ], + "RequestedTimestamp": 1.469205437427E9, + "Resources": [ + { + "Resources": [ + { + "Type":"MASTER_EMAIL", + "Value":"bill@example.com" + }, + { + "Type":"MASTER_NAME", + "Value":"Master Account" + } + ], + "Type":"ORGANIZATION", + "Value":"o-exampleorgid" + }, + { + "Type":"EMAIL", + "Value":"anika@example.com" + }, + { + "Type":"NOTES", + "Value":"This is an invitation to Anika's account to join Bill's organization." + } + ] + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-organizational-units-for-parent.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-organizational-units-for-parent.rst new file mode 100755 index 000000000..4dd5c2796 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-organizational-units-for-parent.rst @@ -0,0 +1,20 @@ +**To retrieve a list of the OUs in a parent OU or root** + +The following example shows you how to get a list of OUs in a specified root: :: + + aws organizations list-organizational-units-for-parent --parent-id r-examplerootid111 + +The output shows that the specified root contains two OUs and shows details of each: :: + + { + "OrganizationalUnits": [ + { + "Name": "AccountingDepartment", + "Arn": "arn:aws:organizations::o-exampleorgid:ou/r-examplerootid111/ou-examplerootid111-exampleouid111" + }, + { + "Name": "ProductionDepartment", + "Arn": "arn:aws:organizations::o-exampleorgid:ou/r-examplerootid111/ou-examplerootid111-exampleouid222" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-parents.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-parents.rst new file mode 100755 index 000000000..b792b1e85 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-parents.rst @@ -0,0 +1,17 @@ +**To list the parent OUs or roots for an account or child OU** + +The following example you how to list the root or parent OU that contains that account 444444444444: :: + + aws organizations list-parents --child-id 444444444444 + + +The output shows that the specified account is in the OU with specified ID: :: + + { + "Parents": [ + { + "Id": "ou-examplerootid111-exampleouid111", + "Type": "ORGANIZATIONAL_UNIT" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-policies-for-target.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-policies-for-target.rst new file mode 100755 index 000000000..cab1aa779 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-policies-for-target.rst @@ -0,0 +1,20 @@ +**To retrieve a list of the SCPs attached directly to an account** + +The following example shows how to get a list of all service control policies (SCPs), as specified by the Filter parameter, that are directly attached to an account: :: + + aws organizations list-policies-for-target --filter SERVICE_CONTROL_POLICY --target-id 444444444444 + +The output includes a list of policy structures with summary information about the policies. The list does not include policies that apply to the account because of inheritance from its location in an OU hierarchy: :: + + { + "Policies": [ + { + "Type": "SERVICE_CONTROL_POLICY", + "Name": "AllowAllEC2Actions", + "AwsManaged", false, + "Id": "p-examplepolicyid222", + "Arn": "arn:aws:organizations::o-exampleorgid:policy/service_control_policy/p-examplepolicyid222", + "Description": "Enables account admins to delegate permissions for any EC2 actions to users and roles in their accounts." + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-policies.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-policies.rst new file mode 100755 index 000000000..5fcb5cbbd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-policies.rst @@ -0,0 +1,36 @@ +**To retrieve a list of all policies in an organization of a certain type** + +The following example shows you how to get a list of SCPs, as specified by the filter parameter: :: + + aws organizations list-policies --filter SERVICE_CONTROL_POLICY + +The output includes a list of policies with summary information: :: + + { + "Policies": [ + { + "Type": "SERVICE_CONTROL_POLICY", + "Name": "AllowAllS3Actions", + "AwsManaged": false, + "Id": "p-examplepolicyid111", + "Arn": "arn:aws:organizations::111111111111:policy/service_control_policy/p-examplepolicyid111", + "Description": "Enables account admins to delegate permissions for any S3 actions to users and roles in their accounts." + }, + { + "Type": "SERVICE_CONTROL_POLICY", + "Name": "AllowAllEC2Actions", + "AwsManaged": false, + "Id": "p-examplepolicyid222", + "Arn": "arn:aws:organizations::111111111111:policy/service_control_policy/p-examplepolicyid222", + "Description": "Enables account admins to delegate permissions for any EC2 actions to users and roles in their accounts." + }, + { + "AwsManaged": true, + "Description": "Allows access to every operation", + "Type": "SERVICE_CONTROL_POLICY", + "Id": "p-FullAWSAccess", + "Arn": "arn:aws:organizations::aws:policy/service_control_policy/p-FullAWSAccess", + "Name": "FullAWSAccess" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-roots.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-roots.rst new file mode 100755 index 000000000..a1ba4f8f1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-roots.rst @@ -0,0 +1,23 @@ +**To retrieve a list of the roots in an organization** + +This example shows you how to get the list of roots for an organization: :: + + aws organizations list-roots + +The output includes a list of root structures with summary information: :: + + { + "Roots": [ + { + "Name": "Root", + "Arn": "arn:aws:organizations::111111111111:root/o-exampleorgid/r-examplerootid111", + "Id": "r-examplerootid111", + "PolicyTypes": [ + { + "Status":"ENABLED", + "Type":"SERVICE_CONTROL_POLICY" + } + ] + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-targets-for-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-targets-for-policy.rst new file mode 100755 index 000000000..e6da3822d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/list-targets-for-policy.rst @@ -0,0 +1,30 @@ +**To retrieve a list of the roots, OUs, and accounts that a policy is attached to** + +The following example shows how to get a list of the roots, OUs, and accounts that the specified policy is attached to: :: + + aws organizations list-targets-for-policy --policy-id p-FullAWSAccess + +The output includes a list of attachment objects with summary information about the roots, OUs, and accounts the policy is attached to: :: + + { + "Targets": [ + { + "Arn": "arn:aws:organizations::111111111111:root/o-exampleorgid/r-examplerootid111", + "Name": "Root", + "TargetId":"r-examplerootid111", + "Type":"ROOT" + }, + { + "Arn": "arn:aws:organizations::111111111111:account/o-exampleorgid/333333333333;", + "Name": "Developer Test Account", + "TargetId": "333333333333", + "Type": "ACCOUNT" + }, + { + "Arn":"arn:aws:organizations::111111111111:ou/o-exampleorgid/ou-examplerootid111-exampleouid111", + "Name":"Accounting", + "TargetId":"ou-examplerootid111-exampleouid111", + "Type":"ORGANIZATIONAL_UNIT" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/move-account.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/move-account.rst new file mode 100755 index 000000000..910930dbc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/move-account.rst @@ -0,0 +1,5 @@ +**To move an account between roots or OUs** + +The following example shows you how to move the master account in the organization from the root to an OU: :: + + aws organizations move-account --account-id 333333333333 --source-parent-id r-examplerootid111 --destination-parent-id ou-examplerootid111-exampleouid111 \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/remove-account-from-organization.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/remove-account-from-organization.rst new file mode 100755 index 000000000..e785fe916 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/remove-account-from-organization.rst @@ -0,0 +1,5 @@ +**To remove an account from an organization as the master account** + +The following example shows you how to remove an account from an organization: :: + + aws organizations remove-account-from-organization --account-id 333333333333 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/update-organizational-unit.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/update-organizational-unit.rst new file mode 100755 index 000000000..22ad211ad --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/update-organizational-unit.rst @@ -0,0 +1,15 @@ +**To rename an OU** + +This example shows you how to rename an OU: In this example, the OU is renamed "AccountingOU": :: + + aws organizations update-organizational-unit --organizational-unit-id ou-examplerootid111-exampleouid111 --name AccountingOU + +The output shows the new name: :: + + { + "OrganizationalUnit": { + "Id": "ou-examplerootid111-exampleouid111" + "Name": "AccountingOU", + "Arn": "arn:aws:organizations::111111111111:ou/o-exampleorgid/ou-examplerootid111-exampleouid111"" + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/update-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/update-policy.rst new file mode 100755 index 000000000..ce1c3b687 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/organizations/update-policy.rst @@ -0,0 +1,48 @@ +**Example 1: To rename a policy** + +The following ``update-policy`` example renames a policy and gives it a new description. :: + + aws organizations update-policy \ + --policy-id p-examplepolicyid111 \ + --name Renamed-Policy \ + --description "This description replaces the original." + +The output shows the new name and description. :: + + { + "Policy": { + "Content": "{\n \"Version\":\"2012-10-17\",\n \"Statement\":{\n \"Effect\":\"Allow\",\n \"Action\":\"ec2:*\",\n \"Resource\":\"*\"\n }\n}\n", + "PolicySummary": { + "Id": "p-examplepolicyid111", + "AwsManaged": false, + "Arn":"arn:aws:organizations::111111111111:policy/o-exampleorgid/service_control_policy/p-examplepolicyid111", + "Description": "This description replaces the original.", + "Name": "Renamed-Policy", + "Type": "SERVICE_CONTROL_POLICY" + } + } + } + +**Example 2: To replace a policy's JSON text content** + +The following example shows you how to replace the JSON text of the SCP in the previous example with a new JSON policy text string that allows S3 instead of EC2: :: + + aws organizations update-policy \ + --policy-id p-examplepolicyid111 \ + --content "{\"Version\":\"2012-10-17\",\"Statement\":{\"Effect\":\"Allow\",\"Action\":\"s3:*\",\"Resource\":\"*\"}}" + +The output shows the new content:: + + { + "Policy": { + "Content": "{ \"Version\": \"2012-10-17\", \"Statement\": { \"Effect\": \"Allow\", \"Action\": \"s3:*\", \"Resource\": \"*\" } }", + "PolicySummary": { + "Arn": "arn:aws:organizations::111111111111:policy/o-exampleorgid/service_control_policy/p-examplepolicyid111", + "AwsManaged": false; + "Description": "This description replaces the original.", + "Id": "p-examplepolicyid111", + "Name": "Renamed-Policy", + "Type": "SERVICE_CONTROL_POLICY" + } + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/outposts/get-outpost-instance-types.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/outposts/get-outpost-instance-types.rst new file mode 100644 index 000000000..1b58821c8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/outposts/get-outpost-instance-types.rst @@ -0,0 +1,29 @@ +**To get the instance types on your Outpost** + +The following ``get-outpost-instance-types`` example gets the instance types for the specified Outpost. :: + + aws outposts get-outpost-instance-types \ + --outpost-id op-0ab23c4567EXAMPLE + +Output:: + + { + "InstanceTypes": [ + { + "InstanceType": "c5d.large" + }, + { + "InstanceType": "i3en.24xlarge" + }, + { + "InstanceType": "m5d.large" + }, + { + "InstanceType": "r5d.large" + } + ], + "OutpostId": "op-0ab23c4567EXAMPLE", + "OutpostArn": "arn:aws:outposts:us-west-2:123456789012:outpost/op-0ab23c4567EXAMPLE" + } + +For more information, see `Launch an instance on your Outpost `__ in the *AWS Outposts User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/outposts/get-outpost.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/outposts/get-outpost.rst new file mode 100644 index 000000000..25f7ec615 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/outposts/get-outpost.rst @@ -0,0 +1,24 @@ +**To get Outpost details** + +The following ``get-outpost`` example displays the details for the specified Outpost. :: + + aws outposts get-outpost \ + --outpost-id op-0ab23c4567EXAMPLE + +Output:: + + { + "Outpost": { + "OutpostId": "op-0ab23c4567EXAMPLE", + "OwnerId": "123456789012", + "OutpostArn": "arn:aws:outposts:us-west-2:123456789012:outpost/op-0ab23c4567EXAMPLE", + "SiteId": "os-0ab12c3456EXAMPLE", + "Name": "EXAMPLE", + "LifeCycleStatus": "ACTIVE", + "AvailabilityZone": "us-west-2a", + "AvailabilityZoneId": "usw2-az1", + "Tags": {} + } + } + +For more information, see `Working with Outposts `__ in the *AWS Outposts User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/outposts/list-outposts.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/outposts/list-outposts.rst new file mode 100644 index 000000000..6872fcbbc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/outposts/list-outposts.rst @@ -0,0 +1,39 @@ +**To list Outposts** + +The following ``list-outposts`` example lists the Outposts in your AWS account. :: + + aws outposts list-outposts + +Output:: + + { + "Outposts": [ + { + "OutpostId": "op-0ab23c4567EXAMPLE", + "OwnerId": "123456789012", + "OutpostArn": "arn:aws:outposts:us-west-2:123456789012:outpost/op-0ab23c4567EXAMPLE", + "SiteId": "os-0ab12c3456EXAMPLE", + "Name": "EXAMPLE", + "Description": "example", + "LifeCycleStatus": "ACTIVE", + "AvailabilityZone": "us-west-2a", + "AvailabilityZoneId": "usw2-az1", + "Tags": { + "Name": "EXAMPLE" + } + }, + { + "OutpostId": "op-4fe3dc21baEXAMPLE", + "OwnerId": "123456789012", + "OutpostArn": "arn:aws:outposts:us-west-2:123456789012:outpost/op-4fe3dc21baEXAMPLE", + "SiteId": "os-0ab12c3456EXAMPLE", + "Name": "EXAMPLE2", + "LifeCycleStatus": "ACTIVE", + "AvailabilityZone": "us-west-2a", + "AvailabilityZoneId": "usw2-az1", + "Tags": {} + } + ] + } + +For more information, see `Working with Outposts `__ in the *AWS Outposts User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/outposts/list-sites.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/outposts/list-sites.rst new file mode 100644 index 000000000..7040dd6bb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/outposts/list-sites.rst @@ -0,0 +1,21 @@ +**To list sites** + +The following ``list-sites`` example lists the available Outpost sites in your AWS account. :: + + aws outposts list-sites + +Output:: + + { + "Sites": [ + { + "SiteId": "os-0ab12c3456EXAMPLE", + "AccountId": "123456789012", + "Name": "EXAMPLE", + "Description": "example", + "Tags": {} + } + ] + } + +For more information, see `Working with Outposts `__ in the *AWS Outposts User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/decrypt-data.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/decrypt-data.rst new file mode 100644 index 000000000..f9d6dcd2d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/decrypt-data.rst @@ -0,0 +1,18 @@ +**To decrypt ciphertext** + +The following ``decrypt-data`` example decrypts ciphertext data using a symmetric key. For this operation, the key must have ``KeyModesOfUse`` set to ``Decrypt`` and ``KeyUsage`` set to ``TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY``. :: + + aws payment-cryptography-data decrypt-data \ + --key-identifier arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h \ + --cipher-text 33612AB9D6929C3A828EB6030082B2BD \ + --decryption-attributes 'Symmetric={Mode=CBC}' + +Output:: + + { + "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h", + "KeyCheckValue": "71D7AE", + "PlainText": "31323334313233343132333431323334" + } + +For more information, see `Decrypt data `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/encrypt-data.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/encrypt-data.rst new file mode 100644 index 000000000..23e0025a0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/encrypt-data.rst @@ -0,0 +1,18 @@ +**To encrypt data** + +The following ``encrypt-data`` example encrypts plaintext data using a symmetric key. For this operation, the key must have ``KeyModesOfUse`` set to ``Encrypt`` and ``KeyUsage`` set to ``TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY``. :: + + aws payment-cryptography-data encrypt-data \ + --key-identifier arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h \ + --plain-text 31323334313233343132333431323334 \ + --encryption-attributes 'Symmetric={Mode=CBC}' + +Output:: + + { + "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h", + "KeyCheckValue": "71D7AE", + "CipherText": "33612AB9D6929C3A828EB6030082B2BD" + } + +For more information, see `Encrypt data `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/generate-card-validation-data.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/generate-card-validation-data.rst new file mode 100644 index 000000000..80ae5cd81 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/generate-card-validation-data.rst @@ -0,0 +1,18 @@ +**To generate a CVV** + +The following ``generate-card-validation-data`` example generates a CVV/CVV2. :: + + aws payment-cryptography-data generate-card-validation-data \ + --key-identifier arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h \ + --primary-account-number=171234567890123 \ + --generation-attributes CardVerificationValue2={CardExpiryDate=0123} + +Output:: + + { + "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h", + "KeyCheckValue": "CADDA1", + "ValidationData": "801" + } + +For more information, see `Generate card data `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/generate-mac.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/generate-mac.rst new file mode 100644 index 000000000..1b47a5c02 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/generate-mac.rst @@ -0,0 +1,18 @@ +**To generate a MAC** + +The following ``generate-card-validation-data`` example generates a Hash-Based Message Authentication Code (HMAC) for card data authentication using the algorithm HMAC_SHA256 and an HMAC encryption key. The key must have ``KeyUsage`` set to ``TR31_M7_HMAC_KEY`` and ``KeyModesOfUse`` to ``Generate``. :: + + aws payment-cryptography-data generate-mac \ + --key-identifier arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h \ + --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" \ + --generation-attributes Algorithm=HMAC_SHA256 + +Output:: + + { + "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h, + "KeyCheckValue": "2976E7", + "Mac": "ED87F26E961C6D0DDB78DA5038AA2BDDEA0DCE03E5B5E96BDDD494F4A7AA470C" + } + +For more information, see `Generate MAC `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/generate-pin-data.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/generate-pin-data.rst new file mode 100644 index 000000000..4337dd324 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/generate-pin-data.rst @@ -0,0 +1,25 @@ +**To generate a PIN** + +The following ``generate-card-validation-data`` example generate a new random PIN using the Visa PIN scheme. :: + + aws payment-cryptography-data generate-pin-data \ + --generation-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2 \ + --encryption-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt \ + --primary-account-number 171234567890123 \ + --pin-block-format ISO_FORMAT_0 \ + --generation-attributes VisaPin={PinVerificationKeyIndex=1} + +Output:: + + { + "GenerationKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2", + "GenerationKeyCheckValue": "7F2363", + "EncryptionKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt", + "EncryptionKeyCheckValue": "7CC9E2", + "EncryptedPinBlock": "AC17DC148BDA645E", + "PinData": { + "VerificationValue": "5507" + } + } + +For more information, see `Generate PIN data `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/re-encrypt-data.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/re-encrypt-data.rst new file mode 100644 index 000000000..7943cc754 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/re-encrypt-data.rst @@ -0,0 +1,20 @@ +**To re-encrypt data with a different key** + +The following ``re-encrypt-data`` example decrypts cipher text that was encrypted using an AES symmetric key and re-encrypts it using a Derived Unique Key Per Transaction (DUKPT) key. :: + + aws payment-cryptography-data re-encrypt-data \ + --incoming-key-identifier arn:aws:payment-cryptography:us-west-2:111122223333:key/hyvv7ymboitd4vfy \ + --outgoing-key-identifier arn:aws:payment-cryptography:us-west-2:111122223333:key/jl6ythkcvzesbxen \ + --cipher-text 4D2B0BDBA192D5AEFEAA5B3EC28E4A65383C313FFA25140101560F75FE1B99F27192A90980AB9334 \ + --incoming-encryption-attributes "Dukpt={Mode=ECB,KeySerialNumber=0123456789111111}" \ + --outgoing-encryption-attributes '{"Symmetric": {"Mode": "ECB"}}' + +Output:: + + { + "CipherText": "F94959DA30EEFF0C035483C6067667CF6796E3C1AD28C2B61F9CFEB772A8DD41C0D6822931E0D3B1", + "KeyArn": "arn:aws:payment-cryptography:us-west-2:111122223333:key/jl6ythkcvzesbxen", + "KeyCheckValue": "2E8CD9" + } + +For more information, see `Encrypt and decrypt data `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/translate-pin-data.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/translate-pin-data.rst new file mode 100644 index 000000000..19cfe7afd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/translate-pin-data.rst @@ -0,0 +1,21 @@ +**To translate PIN data** + +The following ``translate-pin-data`` example translates a PIN from PEK TDES encryption using ISO 0 PIN block to an AES ISO 4 PIN Block using the DUKPT algorithm. :: + + aws payment-cryptography-data translate-pin-data \ + --encrypted-pin-block "AC17DC148BDA645E" \ + --incoming-translation-attributes=IsoFormat0='{PrimaryAccountNumber=171234567890123}' \ + --incoming-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt \ + --outgoing-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/4pmyquwjs3yj4vwe \ + --outgoing-translation-attributes IsoFormat4="{PrimaryAccountNumber=171234567890123}" \ + --outgoing-dukpt-attributes KeySerialNumber="FFFF9876543210E00008" + +Output:: + + { + "PinBlock": "1F4209C670E49F83E75CC72E81B787D9", + "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt + "KeyCheckValue": "7CC9E2" + } + +For more information, see `Translate PIN data `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/verify-auth-request-cryptogram.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/verify-auth-request-cryptogram.rst new file mode 100644 index 000000000..afd435597 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/verify-auth-request-cryptogram.rst @@ -0,0 +1,21 @@ +**To verify an auth request** + +The following ``verify-auth-request-cryptogram`` example verifies an Authorization Request Cryptogram (ARQC). :: + + aws payment-cryptography-data verify-auth-request-cryptogram \ + --auth-request-cryptogram F6E1BD1E6037FB3E \ + --auth-response-attributes '{"ArpcMethod1": {"AuthResponseCode": "1111"}}' \ + --key-identifier arn:aws:payment-cryptography:us-west-2:111122223333:key/pboipdfzd4mdklya \ + --major-key-derivation-mode "EMV_OPTION_A" \ + --session-key-derivation-attributes '{"EmvCommon": {"ApplicationTransactionCounter": "1234","PanSequenceNumber": "01","PrimaryAccountNumber": "471234567890123"}}' \ + --transaction-data "123456789ABCDEF" + +Output:: + + { + "AuthResponseValue": "D899B8C6FBF971AA", + "KeyArn": "arn:aws:payment-cryptography:us-west-2:111122223333:key/pboipdfzd4mdklya", + "KeyCheckValue": "985792" + } + +For more information, see `Verify auth request (ARQC) cryptogram `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/verify-card-validation-data.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/verify-card-validation-data.rst new file mode 100644 index 000000000..8005c969e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/verify-card-validation-data.rst @@ -0,0 +1,18 @@ +**To validate a CVV** + +The following ``verify-card-validation-data`` example validates a CVV/CVV2 for a PAN. :: + + aws payment-cryptography-data verify-card-validation-data \ + --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \ + --primary-account-number=171234567890123 \ + --verification-attributes CardVerificationValue2={CardExpiryDate=0123} \ + --validation-data 801 + +Output:: + + { + "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi", + "KeyCheckValue": "CADDA1" + } + +For more information, see `Verify card data `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/verify-mac.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/verify-mac.rst new file mode 100644 index 000000000..814326b4e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/verify-mac.rst @@ -0,0 +1,18 @@ +**To verify a MAC** + +The following ``verify-mac`` example verifies a Hash-Based Message Authentication Code (HMAC) for card data authentication using the algorithm HMAC_SHA256 and an HMAC encryption key. :: + + aws payment-cryptography-data verify-mac \ + --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6 \ + --message-data "3b343038383439303031303733393431353d32343038323236303030373030303f33" \ + --verification-attributes='Algorithm=HMAC_SHA256' \ + --mac ED87F26E961C6D0DDB78DA5038AA2BDDEA0DCE03E5B5E96BDDD494F4A7AA470C + +Output:: + + { + "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6, + "KeyCheckValue": "2976E7", + } + +For more information, see `Verify MAC `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/verify-pin-data.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/verify-pin-data.rst new file mode 100644 index 000000000..3689a7eaa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography-data/verify-pin-data.rst @@ -0,0 +1,22 @@ +**To verify a PIN** + +The following ``verify-pin-data`` example validates a PIN for a PAN. :: + + aws payment-cryptography-data verify-pin-data \ + --verification-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2 \ + --encryption-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt \ + --primary-account-number 171234567890123 \ + --pin-block-format ISO_FORMAT_0 \ + --verification-attributes VisaPin="{PinVerificationKeyIndex=1,VerificationValue=5507}" \ + --encrypted-pin-block AC17DC148BDA645E + +Output:: + + { + "VerificationKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2", + "VerificationKeyCheckValue": "7F2363", + "EncryptionKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt", + "EncryptionKeyCheckValue": "7CC9E2", + } + +For more information, see `Verify PIN data `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/create-alias.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/create-alias.rst new file mode 100644 index 000000000..aa4521307 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/create-alias.rst @@ -0,0 +1,18 @@ +**To create an alias for a key** + +The following ``create-alias`` example creates an alias for a key. :: + + aws payment-cryptography create-alias \ + --alias-name alias/sampleAlias1 \ + --key-arn arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h + +Output:: + + { + "Alias": { + "AliasName": "alias/sampleAlias1", + "KeyArn": "arn:aws:payment-cryptography:us-west-2:123456789012:key/kwapwa6qaifllw2h" + } + } + +For more information, see `About aliases `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/create-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/create-key.rst new file mode 100644 index 000000000..5d6a840dc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/create-key.rst @@ -0,0 +1,41 @@ +**To create a key** + +The following ``create-key`` example generates a 2KEY TDES key you can use to generate and verify CVV/CVV2 values. :: + + aws payment-cryptography create-key \ + --exportable \ + --key-attributes KeyAlgorithm=TDES_2KEY, KeyUsage=TR31_C0_CARD_VERIFICATION_KEY,KeyClass=SYMMETRIC_KEY, KeyModesOfUse={Generate=true,Verify=true} + +Output:: + + { + "Key": { + "CreateTimestamp": "1686800690", + "Enabled": true, + "Exportable": true, + "KeyArn": "arn:aws:payment-cryptography:us-west-2:123456789012:key/kwapwa6qaifllw2h", + "KeyAttributes": { + "KeyAlgorithm": "TDES_2KEY", + "KeyClass": "SYMMETRIC_KEY", + "KeyModesOfUse": { + "Decrypt": false, + "DeriveKey": false, + "Encrypt": false, + "Generate": true, + "NoRestrictions": false, + "Sign": false, + "Unwrap": false, + "Verify": true, + "Wrap": false + }, + "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY" + }, + "KeyCheckValue": "F2E50F", + "KeyCheckValueAlgorithm": "ANSI_X9_24", + "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", + "KeyState": "CREATE_COMPLETE", + "UsageStartTimestamp": "1686800690" + } + } + +For more information, see `Generating keys `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/delete-alias.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/delete-alias.rst new file mode 100644 index 000000000..678ed0a7b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/delete-alias.rst @@ -0,0 +1,10 @@ +**To delete an alias** + +The following ``delete-alias`` example deletes an alias. It does not affect the key. :: + + aws payment-cryptography delete-alias \ + --alias-name alias/sampleAlias1 + +This command produces no output. + +For more information, see `About aliases `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/delete-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/delete-key.rst new file mode 100644 index 000000000..29bd19d81 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/delete-key.rst @@ -0,0 +1,41 @@ +**To delete a key** + +The following ``delete-key`` example schedules a key for deletion after 7 days, which is the default waiting period. :: + + aws payment-cryptography delete-key \ + --key-identifier arn:aws:payment-cryptography:us-west-2:123456789012:key/kwapwa6qaifllw2h + +Output:: + + { + "Key": { + "CreateTimestamp": "1686801198", + "DeletePendingTimestamp": "1687405998", + "Enabled": true, + "Exportable": true, + "KeyArn": "arn:aws:payment-cryptography:us-west-2:123456789012:key/kwapwa6qaifllw2h", + "KeyAttributes": { + "KeyAlgorithm": "TDES_2KEY", + "KeyClass": "SYMMETRIC_KEY", + "KeyModesOfUse": { + "Decrypt": false, + "DeriveKey": false, + "Encrypt": false, + "Generate": true, + "NoRestrictions": false, + "Sign": false, + "Unwrap": false, + "Verify": true, + "Wrap": false + }, + "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY" + }, + "KeyCheckValue": "F2E50F", + "KeyCheckValueAlgorithm": "ANSI_X9_24", + "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", + "KeyState": "DELETE_PENDING", + "UsageStartTimestamp": "1686801190" + } + } + +For more information, see `Deleting keys `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/export-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/export-key.rst new file mode 100644 index 000000000..04fff3293 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/export-key.rst @@ -0,0 +1,28 @@ +**To export a key** + +The following ``export-key`` example exports a key. :: + + aws payment-cryptography export-key \ + --export-key-identifier arn:aws:payment-cryptography:us-west-2:123456789012:key/lco3w6agsk7zgu2l \ + --key-material '{"Tr34KeyBlock": { \ + "CertificateAuthorityPublicKeyIdentifier": "arn:aws:payment-cryptography:us-west-2:123456789012:key/ftobshq7pvioc5fx", \ + "ExportToken": "export-token-cu4lg26ofcziixny", \ + "KeyBlockFormat": "X9_TR34_2012", \ + "WrappingKeyCertificate": file://wrapping-key-certificate.pem }}' + +Contents of ``wrapping-key-certificate.pem``:: + + LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUV2VENDQXFXZ0F3SUJBZ0lSQU1ZZS8xMXFUK2svVzlRUDJQOElVdWd3RFFZSktvWklodmNOQVFFTkJRQXcKZ1lreEN6QUpCZ05WQkFZVEFsVlRNUmt3RndZRFZRUUtEQkJCVjFNZ1EzSjVjSFJ2WjNKaGNHaDVNU0V3SHdZRApWUVFMREJoQlYxTWdVR0Y1YldWdWRDQkRjbmx3ZEc5bmNtRndhSGt4RVRBUEJnTlZCQWdNQ0ZacGNtZHBibWxoCk1SVXdFd1lEVlFRRERBd3dOelUxTlRZNU5UTTNOVEF4RWpBUUJnTlZCQWNNQ1VGeWJHbHVaM1J2YmpBZUZ3MHkKTXpBMk1UTXhOelV6TVROYUZ3MHlNekEyTWpBeE9EVXpNVEphTUN3eEZUQVRCZ05WQkFNTUREQTNOVFUxTmprMQpNemMxTURFVE1CRUdBMVVFQlJNS09URTFNRGMzTnpRMk9EQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQCkFEQ0NBUW9DZ2dFQkFNUjZsVTZ0SFJwcWtCQmI1Z2FFa0FrbVRxNEgwNUQ2UXR2MS9WemhSaThtNVBFMjVtMFIKVnRtZmsxcUEySi94TEROTEl3dHFDR3BIVldOM0JMdFhuSmh2Y1dNNkI0QlRRVXNicENMbG9PYW1jMGF0UXRmeQo0ZUhoWHJoT2lDMFVpR05zeTc5ZlltTkZ3Q3RrSDhvZzJXTEdYNldXNSszRzlTaFZKR3dhbWpNamtlOVo1a0FhCnJKZHk4Y2tsMTFBTS8wQjVZRFR2TU5KVTcyZnVUMlJ5KzVoRmdFTE14aS8vbGE1TnFCQWp5VTY0cmV3eGdVSjAKZ1pVM3lJU2F2UjFwMElNOFNvZzdXUHlkVlNNTitZeTdLMG1OL3lFa3FZTWQxZWxvS1I0OVV3V0hvdzFMcHVzcwpzMDh5a0diWGxsMnBvZ3NvSmZZaFFGWTc4UmRsTU9vY2dOc0NBd0VBQWFOOE1Ib3dDUVlEVlIwVEJBSXdBREFmCkJnTlZIU01FR0RBV2dCU2tDVlVEZzJGZDdPZWpVSUlVRnBvbUpxWG9FREFkQmdOVkhRNEVGZ1FVZU1sRzJ5dkgKamxsQzM2OUV2U3hIcXBBODVkMHdEZ1lEVlIwUEFRSC9CQVFEQWdXZ01CMEdBMVVkSlFRV01CUUdDQ3NHQVFVRgpCd01CQmdnckJnRUZCUWNEQWpBTkJna3Foa2lHOXcwQkFRMEZBQU9DQWdFQURNS2gxbnhYWWtncVkwYmMwVjA1ClNCUTBlcm5vMmsxbXdRQnhpUDBpcUpMdWNFUnF6b0RzOTBJWTN5SjhjMkMzU2kzU1JrVzBmQUhKR0VucTlzblgKbGdGWnRBZmtNbzR4Wllpb1JGZmY1TWdSOUdNaUZNQnVQS2tIeGxKc0R2NllSbnp1Zmkza1lDT1NzeWE4U2tTMQp2M2l2UEpLcTk3aDBBaThoNFQ3clBtN0NNSnYxZ0JTUEF4UVdtdndES2RrTjFsd0VudmtGdzlLZjhqeVpaNjhGCjlmUFV4Z1RvYm1MSmNialZxaFdsQ3U1VE9mSGNPR2RLRURwZE54RE12ODNZZ1ZaWUszclc4UHVxWWIyWFdMR2IKdmFISXh2RGVnOVJwNDByVVpETGVyalptb0gwUWpEZmxCV1RYK0JqU3ZLMm5yUGpzZzJIUC91S1VncVIwQWM5eAo0UjF5YjU2cHh3eU54TUU2NmFTVWNVQ3F1WTloY1Q3eWxWNjc3REVhRHpLTG1abnpMcWdWZU5PaUtzQTMvTi9hCnI2UW56VjNabEtJbCs5aWZwNTVPaTVLMXFyWFkyeVlPL1V2SXBXZjAxcFNFUERHN0hXSllnaGorbXpDRFVkM24KdldBeHBjUXlYRGlybS8wSkRZTWtuYzhjK2Z4QmxQR3ZiT2cwWldOeVUwSVpqRmx3aDVwUnIrMnRkT3lhRkZrNApWNytmMkpRWXdKZWgzWDdQL0N6WldKMlQvbnVzaVZXd0Y2K0hueDQ2ZHVGTzhXSWJZTnJUU1hTQnFEV04vdWpZCjBwYUhwS1poUTJOVnV1M0t3a2JaTDUzRjBRM09EVjcydGtiTHJyajZvOUNGd3JGUFluV0owSWtsemN0d1VtQ24KNjd5TzlSVjVzcC83YlNxTkhYNFRuNmc9Ci0tLS0tRU5EIENFUlRJRklDQVRFEXAMPLE= + + +Output:: + + { + "WrappedKey": { + "KeyMaterial": "308205A106092A864886F70D010702A08205923082058E020101310D300B06096086480165030402013082031F06092A864886F70D010703A08203100482030C020100318201F4308201F002010030819F308189310B300906035504061302555331193017060355040A0C104157532043727970746F6772617068793121301F060355040B0C18415753205061796D656E742043727970746F6772617068793111300F06035504080C0856697267696E69613115301306035504030C0C3037353535363935333735303112301006035504070C0941726C696E67746F6E021100C61EFF5D6A4FE93F5BD40FD8FF0852E8304506092A864886F70D0101073038300D06096086480165030402010500301806092A864886F70D010108300B0609608648016503040201300D06092A864886F70D0101090400048201008B09AFE9DFF1EA4E97F8651B6B3B51A3BFF68B0365F3956AD34A64B015185BB3FFB3DC7D5812B0D21D58436EAEC131F8110389E2A9F22DA146805A4D818BDCD6AA0387284188CEF5691565A849659C117AAD0042DF5D2C290386710B58A8C63A298C99280EB75861B793302F78299DE64853433227F23DBB383A605DA23620546DCA92B2D3CD8B486339D303844D807C2D6AF17CF1ABF191F63ACFF0E0F8A91AA5B22C1A0D9EE663854D1D76CEE37FE3A0113C8577B57F173ECD69FA752A8A1AEF49AB2A62D39F091FF9AA0FD4CB695D084637DBA7EF7DA2E657BBBF0C5FCC355DB37866B7BBD5AE065DC0FD399A8E0FC19C10943D5059507DC822DED6AFA67A3082010D06092A864886F70D0107013081FF06082A864886F70D030704085050B8007C2CE5608081E8DC683EECE2BF1FC1D209D5F6642E01E58DC76FF7926B576CB6884B6723C63DDE91D8E6C75DFC4E94F1CDDA8A3E863BE8A7E1DFCD2115E251675F73388D022A28247ED66D7892AA57800750A5F84313ACC3616449A703D7DFC770F50C816F224FB038E675FB1751916699FD00585C1B2EA19FECEE696611FA65B4E8516210D884E351201A888A47D874B1ACDDF4AE7F6F59D0780A5BE3E788DD6FB4E6AC1B9D966443881E9998A625CFB10A35D943B21A3ABB902CF68AD6F7FE7B0C18FF05B94C10E254017203541AFF71E440A42C8B915A84B341F923EF657280DB7B19F769E29725FF7E5999859C318202553082025102010130819E308189310B300906035504061302555331193017060355040A0C104157532043727970746F6772617068793121301F060355040B0C18415753205061796D656E742043727970746F6772617068793111300F06035504080C0856697267696E69613115301306035504030C0C3037353535363935333735303112301006035504070C0941726C696E67746F6E02106BD452CE836B7D2A717B69DB8FAF3679300B0609608648016503040201A0818A301806092A864886F70D010903310B06092A864886F70D010703301C06092A864886F70D010905310F170D3233303631333139303234305A301F06092A864886F70D0107013112041044303131324B30544230304530303030302F06092A864886F70D010904312204209AD3A76A89E2F58433DF669174A6F4D4B6B3D60A8A7341712CB666CA6AE4125E300D06092A864886F70D0101010500048201009BA48B242A227AD05243DBB99ACF6249D626CEF086DAFD8B064592EFF1205CFE6713D5FC373D8CD53AF9A88292E143A4B9C1887792E8E7F6310503B1FD8F0F89F735DFF11CC55114859B902841E4D163D64E19DFAE0151B93590C8D770E47E939DF08242897F9319DC6AB272C26DE2ACC539BF055CE528B139D61B45542FF35D2ABDE34EEF5BE19D1C48679187B455864EDD3D976CDC80070A6A6635DF5A00AF08CBBF309C4D59A4710A531A719562D390394A736E9F2DED502B2F766BA56727DFB0C6A92FD4D2BABC69BDDBD6B17EB376FA9ADD83C2974292447E63F26D168E66A4558ED97E417BDE97837188DB4F414A2219BAC50A8D726CD54C3C1EXAMPLE", + "WrappedKeyMaterialFormat": "TR34_KEY_BLOCK" + } + } + + +For more information, see `Export keys `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/get-alias.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/get-alias.rst new file mode 100644 index 000000000..e06181a67 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/get-alias.rst @@ -0,0 +1,17 @@ +**To get an alias** + +The following ``get-alias`` example returns the ARN of the key associated with the alias. :: + + aws payment-cryptography get-alias \ + --alias-name alias/sampleAlias1 + +Output:: + + { + "Alias": { + "AliasName": "alias/sampleAlias1", + "KeyArn": "arn:aws:payment-cryptography:us-west-2:123456789012:key/kwapwa6qaifllw2h" + } + } + +For more information, see `About aliases `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/get-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/get-key.rst new file mode 100644 index 000000000..383e72356 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/get-key.rst @@ -0,0 +1,41 @@ +**To get the metadata of a key** + +The following ``get-key`` example returns the metadata of the key associated with the alias. This operation does not return cryptographic material. :: + + aws payment-cryptography get-key \ + --key-identifier alias/sampleAlias1 + +Output:: + + { + "Key": { + "CreateTimestamp": "1686800690", + "DeletePendingTimestamp": "1687405998", + "Enabled": true, + "Exportable": true, + "KeyArn": "arn:aws:payment-cryptography:us-west-2:123456789012:key/kwapwa6qaifllw2h", + "KeyAttributes": { + "KeyAlgorithm": "TDES_2KEY", + "KeyClass": "SYMMETRIC_KEY", + "KeyModesOfUse": { + "Decrypt": false, + "DeriveKey": false, + "Encrypt": false, + "Generate": true, + "NoRestrictions": false, + "Sign": false, + "Unwrap": false, + "Verify": true, + "Wrap": false + }, + "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY" + }, + "KeyCheckValue": "F2E50F", + "KeyCheckValueAlgorithm": "ANSI_X9_24", + "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", + "KeyState": "DELETE_PENDING", + "UsageStartTimestamp": "1686801190" + } + } + +For more information, see `Get keys `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/get-parameters-for-export.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/get-parameters-for-export.rst new file mode 100644 index 000000000..8652f686b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/get-parameters-for-export.rst @@ -0,0 +1,48 @@ +**To initialize the export process** + +The following ``get-parameters-for-export`` example generates a key pair, signs the key, and then returns the certificate and certificate root. :: + + aws payment-cryptography get-parameters-for-export \ + --signing-key-algorithm RSA_2048 \ + --key-material-type TR34_KEY_BLOCK + +Output:: + + { + "ExportToken": "export-token-ep5cwyzune7oya53", + "ParametersValidUntilTimestamp": "1687415640", + "SigningKeyAlgorithm": "RSA_2048", + "SigningKeyCertificate": + + "MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC + VVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 + b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd + BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN + MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD + VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z + b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt + YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ + 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T + rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE + Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 + nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb + FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb + NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=", + "SigningKeyCertificateChain": + "NIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC + VVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 + b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd + BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN + MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD + VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z + b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt + YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ + 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T + rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE + Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 + nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb + FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb + NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=" + } + +For more information, see `Export keys `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/get-parameters-for-import.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/get-parameters-for-import.rst new file mode 100644 index 000000000..80b5c2666 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/get-parameters-for-import.rst @@ -0,0 +1,47 @@ +**To initialize the import process** + +The following ``get-parameters-for-import`` example generates a key pair, signs the key, and then returns the certificate and certificate root. :: + + aws payment-cryptography get-parameters-for-import \ + --key-material-type TR34_KEY_BLOCK \ + --wrapping-key-algorithm RSA_2048 + +Output:: + + { + "ImportToken": "import-token-qgmafpaa7nt2kfbb", + "ParametersValidUntilTimestamp": "1687415640", + "WrappingKeyAlgorithm": "RSA_2048", + "WrappingKeyCertificate": + "MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC + VVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 + b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd + BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN + MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD + VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z + b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt + YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ + 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T + rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE + Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 + nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb + FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb + NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=", + "WrappingKeyCertificateChain": + "NIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC + VVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 + b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd + BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN + MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD + VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z + b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt + YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ + 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T + rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE + Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 + nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb + FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb + NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=" + } + +For more information, see `Import keys `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/get-public-key-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/get-public-key-certificate.rst new file mode 100644 index 000000000..ef92d9130 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/get-public-key-certificate.rst @@ -0,0 +1,43 @@ +**To return the public key** + +The following ``get-public-key-certificate`` example returns the public key portion of a key pair. :: + + aws payment-cryptography get-public-key-certificate \ + --key-identifier arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h + +Output:: + + { + "KeyCertificate": + "MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC + VVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 + b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd + BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN + MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD + VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z + b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt + YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ + 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T + rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE + Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 + nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb + FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb + NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=", + "KeyCertificateChain": + "NIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC + VVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 + b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd + BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN + MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD + VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z + b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt + YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ + 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T + rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE + Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 + nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb + FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb + NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=" + } + +For more information, see `Get the public key/certificate associated with a key pair `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/import-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/import-key.rst new file mode 100644 index 000000000..60b36b620 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/import-key.rst @@ -0,0 +1,52 @@ +**To import a TR-34 key** + +The following ``import-key`` example imports a TR-34 key. :: + + aws payment-cryptography import-key \ + --key-material='{ "Tr34KeyBlock": {" \ + CertificateAuthorityPublicKeyIdentifier": "arn:aws:payment-cryptography:us-west-2:123456789012:key/rmm5wn2q564njnjm", \ + "ImportToken": "import-token-5ott6ho5nts7bbcg", \ + "KeyBlockFormat": "X9_TR34_2012", \ + "SigningKeyCertificate": file://signing-key-certificate.pem, \ + "WrappedKeyBlock": file://wrapped-key-block.pem }}' + +Contents of ``signing-key-certificate.pem``:: + + LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUV2RENDQXFTZ0F3SUJBZ0lRYWVCK25IbE1WZU1PR1ZiNjU1Q2JzREFOQmdrcWhraUc5dzBCQVEwRkFEQ0IKaVRFTE1Ba0dBMVVFQmhNQ1ZWTXhHVEFYQmdOVkJBb01FRUZYVXlCRGNubHdkRzluY21Gd2FIa3hJVEFmQmdOVgpCQXNNR0VGWFV5QlFZWGx0Wlc1MElFTnllWEIwYjJkeVlYQm9lVEVSTUE4R0ExVUVDQXdJVm1seVoybHVhV0V4CkZUQVRCZ05WQkFNTUREVXlPVEF5TnpRMU5UUTVOVEVTTUJBR0ExVUVCd3dKUVhKc2FXNW5kRzl1TUI0WERUSXoKTURZd09USXlNVEkxTUZvWERUSXpNRFl4TmpJek1USTFNRm93TERFVk1CTUdBMVVFQXd3TU5USTVNREkzTkRVMQpORGsxTVJNd0VRWURWUVFGRXdvek1EVTRNVGszTkRjNE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBCk1JSUJDZ0tDQVFFQXdMc0dGb0pqOTVJY0UxL1p1OGZxak40SDVHTFJHVGZQSkFyWWJLbjA4WXVrQTE0SjRBSHEKWGR6ZlY5MjcvVTJZTWN2S3FsNlk5SVQwejZhTVBGbDVYemZWNU1YVW5YMlJxYTladU1ndDhGSDJJYWxsMEQ3bgo0V0RjUkg3TERQdEhXZTRaVmh3aExRVEFQa1I2dUxTWC84UDhSN2lrSWpkVkI4SytjVitnbHh0clB1Vkh5TzNxCjhXRUl3a1lYVTFDVjJybHptNklzWjcycjhPcXJWcHNiZEhERENBelJ2YUtPN3hMNU1RUGVFMFcvdkxmRGdrYmoKb2h4VHl6Z3dRSlJFK21tUXdCRmlIeXdaY2F5Y1FZdXdzTktoK0xPWXJpN0ZGM2lRRTJlYlY5Mm4zZER5NDRtcQpUSjFHUWJENndFM3ZHS0xnYXNqMVl0WVNSTk9xNld1UTV3SURBUUFCbzN3d2VqQUpCZ05WSFJNRUFqQUFNQjhHCkExVWRJd1FZTUJhQUZHMVBsWElaUGdETVU0WjVwRTc3dE8xYmV2eDVNQjBHQTFVZERnUVdCQlFwanByQXFoZGMKVmF2dElTRnBBNkswVzJMcmJUQU9CZ05WSFE4QkFmOEVCQU1DQmFBd0hRWURWUjBsQkJZd0ZBWUlLd1lCQlFVSApBd0VHQ0NzR0FRVUZCd01DTUEwR0NTcUdTSWIzRFFFQkRRVUFBNElDQVFCOXVxcFVadU1oK1kzQXhXSklNUkx5Cmlob2gvR0xIanh1aVhxK1IvdFRxbTBNYTA3R2dvbGxhRkdIZzZMei9ELy9ZRDB2UHdYc1dVOE5qY0Vib095aGcKc0hmay9hVGxjRnovZm51MVlkRUpvYUpFdW15bDkwSTBMNyswUmJNYXJScWU0bC9yQlQ4YTM3R0JyQ0x0ZUlyRgorcnp1cmovU1BDM1FiUWkvOVBzWmlieTFKMlFxTzVVRUJncEYreklaVk84dzgwMzVEK1YrUXhsY2RaUGVLS2JnCmI5WHNSeHF3cUZIVUVRM2tybXdVZUZveERlbm91QmxKMVFzOTVXUHBpVk9zYUFvbkJkYUtEbFBaRTlqdG1zZkwKMER3b1lRRy92bHdWN0pIVnNNd0dleml2VGJXaWFNdmZTTkxIMmVZMG9rblhFcHlHcmlWMjczSVFqVU1QTXBMNgpjODh3OUYzcTJnY0x6Nk0ycEFHUTZ0SVBrZ2c3aUZjbk9haGp4Ty9ORFZrS0xxbXZ0eFFlcUk2VDRveWRuWkVWCkdOMjBISStZcFVud09Eem1GL1k5TXZQQXFtdGJka2dZZGRJWExtbU9ORlF1dm4wenp0Tm01NzNTN0NSYWxCNTgKeFhyNm1iak1MQU1tcmZGQmNrU0NYaUZ6Y3gvNHJTRGJtbU9INWM0dGxiNEM3SzF5QU96NWo3OHhWOWNQOTM3SQpwczcrZUFZRkFpYTdzZGpuS3hNUDN4ZVVTM0tNS2FGMzg2TGRYbkRwdTFyczhVRWhPeDhqakt6RWplWU9qV3hLClo5Mjd1Yzd0b2kwZlcvT2tzT3NnWVlybmttSEhyd3p0NXRBc2llcjFyWXFGK2lYa1Y4TzRxSzI0bHc4cXFPanUKS3htVHMzY0NlTmdGNUZhVmhCV1Zjdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0= + +Contents of ``wrapped-key-block.pem``:: + + 3082059806092A864886F70D010702A082058930820585020101310D300B06096086480165030402013082031606092A864886F70D010703A082030704820303020100318201F3308201EF02010030819E308189310B300906035504061302555331193017060355040A0C104157532043727970746F6772617068793121301F060355040B0C18415753205061796D656E742043727970746F6772617068793111300F06035504080C0856697267696E69613115301306035504030C0C3532393032373435353439353112301006035504070C0941726C696E67746F6E021026C5E52507841B72C59D9F0065548DC1304506092A864886F70D0101073038300D06096086480165030402010500301806092A864886F70D010108300B0609608648016503040201300D06092A864886F70D01010904000482010013D3C2E9405CA45A947BA6EA098DD5A83A7E6CFF4E140B141634EBFF9E0F78057B5C22013574BA8C8D8D64B43C391E1D9CDF081B33D15CDE3AB2DB21CAE7380E64B0A09A8C45B8A0F87659638E6E30D4351E9B941EDD384183DA169ADDF71FC64E06487F8750B74B2CD3AB4F8534C024AE04BD7C070CB685A250EB2A8C1EEDEBFA387935466D152E063D3EBEDD6231216EEE5145983C74D755C050D191E6E41DC2BDB09E78CDA203C2767270E3E56C6E24EB1090904462743B054098DE278A18C71577CAE1EC13CF776055224F299DBF1BC96C11F339DEE1A2CD130A275959820FBE5C34C0CB21DB6404F868B348D5A6F8ED8E5DC5BC681F6115BA278879FF8F3082010506092A864886F70D0107013081F706082A864886F70D0307040857F8BFE99B4493AD8081E05DEE59D9E60520DB8A15869BB840F1CC908DAE6CC6F6BE79DDF72DD8EA84F881D7DFB4A186CDC622B29E3F97AEB7C00872D1BB47FE235D9204F80A4D3EF502309ECD967F8F70A2F741738ACE7B7CA0AA2EBB0DACD3126F7831F79AF6DC3C74CEBF7D0947301245F42C59508FBC0318C03F02E37EDF014C4D0170ACC4E992EC7E9B85D95BF87F75FD2E0B938E2D8E807872DE4017F8530D59A48C9F68AF5BEC1B2115D7555C248F980DF28C69619E508317F0C20461AE26CD0D55896FEE71E1EA89F7F9B5DC047F9BD063210E1F09D9566EF2AF6472AD44A8ACC0180AC1995CDE318202553082025102010130819E308189310B300906035504061302555331193017060355040A0C104157532043727970746F6772617068793121301F060355040B0C18415753205061796D656E742043727970746F6772617068793111300F06035504080C0856697267696E69613115301306035504030C0C3532393032373435353439353112301006035504070C0941726C696E67746F6E021069E07E9C794C55E30E1956FAE7909BB0300B0609608648016503040201A0818A301806092A864886F70D010903310B06092A864886F70D010703301C06092A864886F70D010905310F170D3233303630393233333934365A301F06092A864886F70D0107013112041044303131324330544330304530303030302F06092A864886F70D01090431220420D6413C502DC4552B495B9A8449F9A3BF9E6DCB31AD56A1D158DB482BDF06EEAD300D06092A864886F70D010101050004820100313BA7BCDFE6C55F3544A8E7D9973A346DDAD17CC5C506DE72B8B7E490891702E753C445FED78D5477C5E5A2BF63378B2F12CE6C22C1A543BCC41FA978568F65C0171DBF3E438E70FD68DAB52BA1DEB294C4ED92CD6EAA684B4352AF6C53924048931595FC7F1FF642E82B12DBD8B8578DA200DC0CCE2FA075897CDA6D5257C78DC2B515015CC414E78B49075AFF333C7CEAFF81F5EEC44C5C9F6BD32898E6983A7CEA40DD5C0CF9CD51DB3E712ED1C755E0A9DA38286872B46D7119088A76728DC08AECB0F624B34E15349E5B2334900E57885A6461AC6E74B35A3FFF5C010ACE5F15DE9D867A5160D30217997E7DE6319A74F5D55D44A934908A3BC1602D22 + +Output:: + + { + "Key": { + "CreateTimestamp": "2023-06-09T16:56:27.621000-07:00", + "Enabled": true, + "KeyArn": "arn:aws:payment-cryptography:us-west-2:123456789012:key/bzmvgyxdg3sktwxd", + "KeyAttributes": { + "KeyAlgorithm": "TDES_2KEY", + "KeyClass": "SYMMETRIC_KEY", + "KeyModesOfUse": { + "Decrypt": false, + "DeriveKey": false, + "Encrypt": false, + "Generate": true, + "NoRestrictions": false, + "Sign": false, + "Unwrap": false, + "Verify": true, + "Wrap": false + }, + "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY" + }, + "KeyCheckValue": "D9B20E", + "KeyCheckValueAlgorithm": "ANSI_X9_24", + "KeyOrigin": "EXTERNAL", + "KeyState": "CREATE_COMPLETE", + "UsageStartTimestamp": "2023-06-09T16:56:27.621000-07:00" + } + } + +For more information, see `Import keys `__ in the *AWS Payment Cryptography User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/list-aliases.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/list-aliases.rst new file mode 100644 index 000000000..3598bbfc2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/list-aliases.rst @@ -0,0 +1,22 @@ +**To get a list of aliases** + +The following ``list-aliases`` example shows all of the aliases in your account in this Region. :: + + aws payment-cryptography list-aliases + +Output:: + + { + "Aliases": [ + { + "AliasName": "alias/sampleAlias1", + "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h" + }, + { + "AliasName": "alias/sampleAlias2", + "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h" + } + ] + } + +For more information, see `About aliases `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/list-keys.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/list-keys.rst new file mode 100644 index 000000000..78093f389 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/list-keys.rst @@ -0,0 +1,41 @@ +**To get a list of keys** + +The following ``list-keys`` example shows all of the keys in your account in this Region. :: + + aws payment-cryptography list-keys + +Output:: + + { + "Keys": [ + { + "CreateTimestamp": "1666506840", + "Enabled": false, + "Exportable": true, + "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h", + "KeyAttributes": { + "KeyAlgorithm": "TDES_3KEY", + "KeyClass": "SYMMETRIC_KEY", + "KeyModesOfUse": { + "Decrypt": true, + "DeriveKey": false, + "Encrypt": true, + "Generate": false, + "NoRestrictions": false, + "Sign": false, + "Unwrap": true, + "Verify": false, + "Wrap": true + }, + "KeyUsage": "TR31_P1_PIN_GENERATION_KEY" + }, + "KeyCheckValue": "369D", + "KeyCheckValueAlgorithm": "ANSI_X9_24", + "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", + "KeyState": "CREATE_COMPLETE", + "UsageStopTimestamp": "1666938840" + } + ] + } + +For more information, see `List keys `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/list-tags-for-resource.rst new file mode 100644 index 000000000..ae769f864 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/list-tags-for-resource.rst @@ -0,0 +1,23 @@ +**To get the list of tags for a key** + +The following ``list-tags-for-resource`` example gets the tags for a key. :: + + aws payment-cryptography list-tags-for-resource \ + --resource-arn arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h + +Output:: + + { + "Tags": [ + { + "Key": "BIN", + "Value": "20151120" + }, + { + "Key": "Project", + "Value": "Production" + } + ] + } + +For more information, see `Managing key tags with API operations `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/restore-key.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/restore-key.rst new file mode 100644 index 000000000..55ed5dbf6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/restore-key.rst @@ -0,0 +1,40 @@ +**To restore a key that is scheduled for deletion** + +The following ``restore-key`` example cancels the deletion of a key. :: + + aws payment-cryptography restore-key \ + --key-identifier arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h + +Output:: + + { + "Key": { + "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h", + "KeyAttributes": { + "KeyUsage": "TR31_V2_VISA_PIN_VERIFICATION_KEY", + "KeyClass": "SYMMETRIC_KEY", + "KeyAlgorithm": "TDES_3KEY", + "KeyModesOfUse": { + "Encrypt": false, + "Decrypt": false, + "Wrap": false, + "Unwrap": false, + "Generate": true, + "Sign": false, + "Verify": true, + "DeriveKey": false, + "NoRestrictions": false + } + }, + "KeyCheckValue": "", + "KeyCheckValueAlgorithm": "ANSI_X9_24", + "Enabled": false, + "Exportable": true, + "KeyState": "CREATE_COMPLETE", + "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", + "CreateTimestamp": "1686800690", + "UsageStopTimestamp": "1687405998" + } + } + +For more information, see `Deleting keys `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/start-key-usage.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/start-key-usage.rst new file mode 100644 index 000000000..37db8ac1f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/start-key-usage.rst @@ -0,0 +1,40 @@ +**To enable a key** + +The following ``start-key-usage`` example enables a key to be used. :: + + aws payment-cryptography start-key-usage \ + --key-identifier arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h + +Output:: + + { + "Key": { + "CreateTimestamp": "1686800690", + "Enabled": true, + "Exportable": true, + "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/alsuwfxug3pgy6xh", + "KeyAttributes": { + "KeyAlgorithm": "TDES_3KEY", + "KeyClass": "SYMMETRIC_KEY", + "KeyModesOfUse": { + "Decrypt": true, + "DeriveKey": false, + "Encrypt": true, + "Generate": false, + "NoRestrictions": false, + "Sign": false, + "Unwrap": true, + "Verify": false, + "Wrap": true + }, + "KeyUsage": "TR31_P1_PIN_GENERATION_KEY" + }, + "KeyCheckValue": "369D", + "KeyCheckValueAlgorithm": "ANSI_X9_24", + "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", + "KeyState": "CREATE_COMPLETE", + "UsageStartTimestamp": "1686800690" + } + } + +For more information, see `Enabling and disabling keys `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/stop-key-usage.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/stop-key-usage.rst new file mode 100644 index 000000000..943e7b248 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/stop-key-usage.rst @@ -0,0 +1,40 @@ +**To disable a key** + +The following ``stop-key-usage`` example disables a key. :: + + aws payment-cryptography stop-key-usage \ + --key-identifier arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h + +Output:: + + { + "Key": { + "CreateTimestamp": "1686800690", + "Enabled": true, + "Exportable": true, + "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/alsuwfxug3pgy6xh", + "KeyAttributes": { + "KeyAlgorithm": "TDES_3KEY", + "KeyClass": "SYMMETRIC_KEY", + "KeyModesOfUse": { + "Decrypt": true, + "DeriveKey": false, + "Encrypt": true, + "Generate": false, + "NoRestrictions": false, + "Sign": false, + "Unwrap": true, + "Verify": false, + "Wrap": true + }, + "KeyUsage": "TR31_P1_PIN_GENERATION_KEY" + }, + "KeyCheckValue": "369D", + "KeyCheckValueAlgorithm": "ANSI_X9_24", + "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", + "KeyState": "CREATE_COMPLETE", + "UsageStartTimestamp": "1686800690" + } + } + +For more information, see `Enabling and disabling keys `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/tag-resource.rst new file mode 100644 index 000000000..1fa1703aa --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/tag-resource.rst @@ -0,0 +1,11 @@ +**To tag a key** + +The following ``tag-resource`` example tags a key. :: + + aws payment-cryptography tag-resource \ + --resource-arn arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h \ + --tags Key=sampleTag,Value=sampleValue + +This command produces no output. + +For more information, see `Managing key tags `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/untag-resource.rst new file mode 100644 index 000000000..aa011875f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/untag-resource.rst @@ -0,0 +1,11 @@ +**To remove a tag from a key** + +The following ``untag-resource`` example removes a tag from a key. :: + + aws payment-cryptography untag-resource \ + --resource-arn arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h \ + --tag-keys sampleTag + +This command produces no output. + +For more information, see `Managing key tags `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/update-alias.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/update-alias.rst new file mode 100644 index 000000000..84d328650 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/payment-cryptography/update-alias.rst @@ -0,0 +1,18 @@ +**To update an alias** + +The following ``update-alias`` example associates the alias with a different key. :: + + aws payment-cryptography update-alias \ + --alias-name alias/sampleAlias1 \ + --key-arn arn:aws:payment-cryptography:us-east-2:123456789012:key/tqv5yij6wtxx64pi + +Output:: + + { + "Alias": { + "AliasName": "alias/sampleAlias1", + "KeyArn": "arn:aws:payment-cryptography:us-west-2:123456789012:key/tqv5yij6wtxx64pi " + } + } + +For more information, see `About aliases `__ in the *AWS Payment Cryptography User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/create-performance-analysis-report.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/create-performance-analysis-report.rst new file mode 100644 index 000000000..718b20e71 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/create-performance-analysis-report.rst @@ -0,0 +1,17 @@ +**To create a performance analysis report** + +The following ``create-performance-analysis-report`` example creates a performance analysis report with the start time ``1682969503`` and end time ``1682979503`` for the database ``db-abcdefg123456789``. :: + + aws pi create-performance-analysis-report \ + --service-type RDS \ + --identifier db-abcdefg123456789 \ + --start-time 1682969503 \ + --end-time 1682979503 + +Output:: + + { + "AnalysisReportId": "report-0234d3ed98e28fb17" + } + +For more information about creating performance analysis reports, see `Creating a performance analysis report in Performance Insights `__ in the *Amazon RDS User Guide* and `Creating a performance analysis report in Performance Insights `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/delete-performance-analysis-report.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/delete-performance-analysis-report.rst new file mode 100644 index 000000000..0b4c30393 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/delete-performance-analysis-report.rst @@ -0,0 +1,12 @@ +**To delete a performance analysis report** + +The following ``delete-performance-analysis-report`` example deletes the performance analysis report with the report ID ``report-0d99cc91c4422ee61``. :: + + aws pi delete-performance-analysis-report \ + --service-type RDS \ + --identifier db-abcdefg123456789 \ + --analysis-report-id report-0d99cc91c4422ee61 + +This command produces no output. + +For more information about deleting performance analysis reports, see `Deleting a performance analysis report in Performance Insights `__ in the *Amazon RDS User Guide* and `Deleting a performance analysis report in Performance Insights `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/describe-dimension-keys.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/describe-dimension-keys.rst new file mode 100644 index 000000000..89156d5b1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/describe-dimension-keys.rst @@ -0,0 +1,88 @@ +**Example 1: To describe dimension keys** + +This example requests the names of all wait events. The data is summarized by event name, and the aggregate values of those events over the specified time period. + +Command:: + + aws pi describe-dimension-keys --service-type RDS --identifier db-LKCGOBK26374TPTDFXOIWVCPPM --start-time 1527026400 --end-time 1527080400 --metric db.load.avg --group-by '{"Group":"db.wait_event"}' + +Output:: + + { + "AlignedEndTime": 1.5270804E9, + "AlignedStartTime": 1.5270264E9, + "Keys": [ + { + "Dimensions": {"db.wait_event.name": "wait/synch/mutex/innodb/aurora_lock_thread_slot_futex"}, + "Total": 0.05906906851195666 + }, + { + "Dimensions": {"db.wait_event.name": "wait/io/aurora_redo_log_flush"}, + "Total": 0.015824722186149193 + }, + { + "Dimensions": {"db.wait_event.name": "CPU"}, + "Total": 0.008014396230265477 + }, + { + "Dimensions": {"db.wait_event.name": "wait/io/aurora_respond_to_client"}, + "Total": 0.0036361612526204477 + }, + { + "Dimensions": {"db.wait_event.name": "wait/io/table/sql/handler"}, + "Total": 0.0019108398419382965 + }, + { + "Dimensions": {"db.wait_event.name": "wait/synch/cond/mysys/my_thread_var::suspend"}, + "Total": 8.533847837782684E-4 + }, + { + "Dimensions": {"db.wait_event.name": "wait/io/file/csv/data"}, + "Total": 6.864181956477376E-4 + }, + { + "Dimensions": {"db.wait_event.name": "Unknown"}, + "Total": 3.895887056379051E-4 + }, + { + "Dimensions": {"db.wait_event.name": "wait/synch/mutex/sql/FILE_AS_TABLE::LOCK_shim_lists"}, + "Total": 3.710368625122906E-5 + }, + { + "Dimensions": {"db.wait_event.name": "wait/lock/table/sql/handler"}, + "Total": 0 + } + ] + } + +**Example 2: To find the SQL ID for statements contributing the most to DB load** + +The following ``describe-dimension-keys`` requests the SQL statement and SQL ID for the 10 statements that contributed the most to DB load. :: + + aws pi describe-dimension-keys \ + --service-type RDS \ + --identifier db-abcdefg123456789 \ + --start-time 2023-05-01T00:00:00Z \ + --end-time 2023-05-01T01:00:00Z \ + --metric db.load.avg \ + --group-by '{"Group": "db.sql", "Dimensions": ["db.sql.id", "db.sql.statement"],"Limit": 10}' + +Output:: + + { + "AlignedEndTime": 1.5270804E9, + "AlignedStartTime": 1.5270264E9, + "Identifier": "db-abcdefg123456789", + "MetricList": [ + { + "Keys": [ + { + "Dimensions": {"db.sql.id": "AKIAIOSFODNN7EXAMPLE", "db.sql.statement": "SELECT * FROM customers WHERE customer_id = 123"}, + "Total": 25.5,"Partitions": [12.3, 13.2] + } + ] + } + ] + } + +For more information about dimensions in Performance Insights, see `Database load `__ in the *Amazon RDS User Guide* and `Database load `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/get-dimension-key-details.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/get-dimension-key-details.rst new file mode 100644 index 000000000..59324127c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/get-dimension-key-details.rst @@ -0,0 +1,25 @@ +**To get details for a specified dimension group for a DB instance** + +The following ``get-dimension-key-details`` example retrieves the full text of a SQL statement for DB instance ``db-10BCD2EFGHIJ3KL4M5NO6PQRS5``. The ``--group`` is ``db.sql``, and the ``--group-identifier`` is ``db.sql.id``. In this example, ``example-sql-id`` represents a SQL ID retrieved by using the ``get-resource-metrics`` or ``describe-dimension-keys`` operations. In this example, the dimensions details are available. Thus, Performance Insights retrieves the full text of the SQL statement, without truncating it. :: + + aws pi get-dimension-key-details \ + --service-type RDS \ + --identifier db-10BCD2EFGHIJ3KL4M5NO6PQRS5 \ + --group db.sql \ + --group-identifier example-sql-id \ + --requested-dimensions statement + +Output:: + + { + "Dimensions":[ + { + "Value": "SELECT e.last_name, d.department_name FROM employees e, departments d WHERE e.department_id=d.department_id", + "Dimension": "db.sql.statement", + "Status": "AVAILABLE" + }, + ... + ] + } + +For more information about dimensions in Performance Insights, see `Database load `__ in the *Amazon RDS User Guide* and `Database load `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/get-performance-analysis-report.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/get-performance-analysis-report.rst new file mode 100644 index 000000000..d0dc03ead --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/get-performance-analysis-report.rst @@ -0,0 +1,27 @@ +**To get a performance analysis report** + +The following ``get-performance-analysis-report`` example gets the performance analysis report for the database ``db-abcdefg123456789`` with the report ID ``report-0d99cc91c4422ee61``. The response provides the report status, ID, time details, and insights. :: + + aws pi get-performance-analysis-report \ + --service-type RDS \ + --identifier db-abcdefg123456789 \ + --analysis-report-id report-0d99cc91c4422ee61 + +Output:: + + { + "AnalysisReport": { + "Status": "Succeeded", + "ServiceType": "RDS", + "Identifier": "db-abcdefg123456789", + "StartTime": 1680583486.584, + "AnalysisReportId": "report-0d99cc91c4422ee61", + "EndTime": 1680587086.584, + "CreateTime": 1680587087.139, + "Insights": [ + ... (Condensed for space) + ] + } + } + +For more information about performance analysis reports, see `Analyzing database performance for a period of time `__ in the *Amazon RDS User Guide* and `Analyzing database performance for a period of time `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/get-resource-metadata.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/get-resource-metadata.rst new file mode 100644 index 000000000..4e60a14db --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/get-resource-metadata.rst @@ -0,0 +1,20 @@ +**To get resource metadata for a database** + +The following ``get-resource-metadata`` example gets the resource metadata for the database ``db-abcdefg123456789``. The response shows that SQL digest statistics are enabled. :: + + aws pi get-resource-metadata \ + --service-type RDS \ + --identifier db-abcdefg123456789 + +Output:: + + { + "Identifier": "db-abcdefg123456789", + "Features":{ + "SQL_DIGEST_STATISTICS":{ + "Status": "ENABLED" + } + } + } + +For more information about SQL statistics for Performance Insights, see `SQL statistics for Performance Insights `__ in the *Amazon RDS User Guide* and `SQL statistics for Performance Insights `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/get-resource-metrics.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/get-resource-metrics.rst new file mode 100644 index 000000000..71d5cf022 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/get-resource-metrics.rst @@ -0,0 +1,67 @@ +**To get resource metrics** + +This example requests data points for the *db.wait_event* dimension group, and for the *db.wait_event.name* dimension within that group. In the response, the relevant data points are grouped by the requested dimension (*db.wait_event.name*). + + + +Command:: + + aws pi get-resource-metrics --service-type RDS --identifier db-LKCGOBK26374TPTDFXOIWVCPPM --start-time 1527026400 --end-time 1527080400 --period-in-seconds 300 --metric db.load.avg --metric-queries file://metric-queries.json + +The arguments for ``--metric-queries`` are stored in a JSON file, ``metric-queries.json``. Here are the contents of that file:: + + [ + { + "Metric": "db.load.avg", + "GroupBy": { + "Group":"db.wait_event" + } + } + ] + + +Output:: + + { + "AlignedEndTime": 1.5270804E9, + "AlignedStartTime": 1.5270264E9, + "Identifier": "db-LKCGOBK26374TPTDFXOIWVCPPM", + "MetricList": [ + { + "Key": { + "Metric": "db.load.avg" + }, + "DataPoints": [ + { + "Timestamp": 1527026700.0, + "Value": 1.3533333333333333 + }, + { + "Timestamp": 1527027000.0, + "Value": 0.88 + }, + <...remaining output omitted...> + ] + }, + { + "Key": { + "Metric": "db.load.avg", + "Dimensions": { + "db.wait_event.name": "wait/synch/mutex/innodb/aurora_lock_thread_slot_futex" + } + }, + "DataPoints": [ + { + "Timestamp": 1527026700.0, + "Value": 0.8566666666666667 + }, + { + "Timestamp": 1527027000.0, + "Value": 0.8633333333333333 + }, + <...remaining output omitted...> + ], + }, + <...remaining output omitted...> + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/list-available-resource-dimensions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/list-available-resource-dimensions.rst new file mode 100644 index 000000000..4f21e072c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/list-available-resource-dimensions.rst @@ -0,0 +1,48 @@ +**To list the dimensions that can be queried for a metric type on a DB instance** + +The following ``list-available-resource-dimensions`` example lists the ``db.load`` metrics you can query for the database ``db-abcdefg123456789``. :: + + aws pi list-available-resource-dimensions \ + --service-type RDS \ + --identifier db-abcdefg123456789 \ + --metrics db.load + +Output:: + + { + "MetricDimensions": [ + { + "Metric": "db.load", + "Groups": [ + { + "Group": "db.user", + "Dimensions": [ + { + "Identifier": "db.user.id" + }, + { + "Identifier": "db.user.name" + } + ] + }, + { + "Group": "db.sql_tokenized", + "Dimensions": [ + { + "Identifier": "db.sql_tokenized.id" + }, + { + "Identifier": "db.sql_tokenized.db_id" + }, + { + "Identifier": "db.sql_tokenized.statement" + } + ] + }, + ... + ] + } + ] + } + +For more information about dimensions in Performance Insights, see `Database load `__ in the *Amazon RDS User Guide* and `Database load `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/list-available-resource-metrics.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/list-available-resource-metrics.rst new file mode 100644 index 000000000..589bf1ee7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/list-available-resource-metrics.rst @@ -0,0 +1,29 @@ +**To list the metrics that can be queried for a metric type on a DB instance** + +The following ``list-available-resource-metrics`` example lists the ``db.load`` metrics you can query for the database ``db-abcdefg123456789``. :: + + aws pi list-available-resource-metrics \ + --service-type RDS \ + --identifier db-abcdefg123456789 \ + --metric-types "os" "db" + +Output:: + + { + "Metrics": [ + { + "Description": "The number of virtual CPUs for the DB instance", + "Metric": "os.general.numVCPUs", + "Unit": "vCPUs" + }, + ......, + { + "Description": "Time spent reading data file blocks by backends in this instance", + "Metric": "db.IO.read_latency", + "Unit": "Milliseconds per block" + }, + ...... + ] + } + +For more information about metrics in Performance Insights, see `Database load `__ in the *Amazon RDS User Guide* and `Database load `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/list-performance-analysis-reports.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/list-performance-analysis-reports.rst new file mode 100644 index 000000000..10e135200 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/list-performance-analysis-reports.rst @@ -0,0 +1,44 @@ +**To list performance analysis reports for a database** + +The following ``list-performance-analysis-reports`` example lists performance analysis reports for the database ``db-abcdefg123456789``. The response lists all the reports with the report ID, status, and time period details. :: + + aws pi list-performance-analysis-reports \ + --service-type RDS \ + --identifier db-abcdefg123456789 + +Output:: + + { + "AnalysisReports": [ + { + "Status": "Succeeded", + "EndTime": 1680587086.584, + "CreateTime": 1680587087.139, + "StartTime": 1680583486.584, + "AnalysisReportId": "report-0d99cc91c4422ee61" + }, + { + "Status": "Succeeded", + "EndTime": 1681491137.914, + "CreateTime": 1681491145.973, + "StartTime": 1681487537.914, + "AnalysisReportId": "report-002633115cc002233" + }, + { + "Status": "Succeeded", + "EndTime": 1681493499.849, + "CreateTime": 1681493507.762, + "StartTime": 1681489899.849, + "AnalysisReportId": "report-043b1e006b47246f9" + }, + { + "Status": "InProgress", + "EndTime": 1682979503.0, + "CreateTime": 1682979618.994, + "StartTime": 1682969503.0, + "AnalysisReportId": "report-01ad15f9b88bcbd56" + } + ] + } + +For more information about performance analysis reports, see `Analyzing database performance for a period of time `__ in the *Amazon RDS User Guide* and `Analyzing database performance for a period of time `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/list-tags-for-resource.rst new file mode 100644 index 000000000..7fe98060d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/list-tags-for-resource.rst @@ -0,0 +1,20 @@ +**To list tags for a performance analysis report** + +The following ``list-tags-for-resource`` example lists tags for a performance analysis report with the report ID ``report-0d99cc91c4422ee61``. :: + + aws pi list-tags-for-resource \ + --service-type RDS \ + --resource-arn arn:aws:pi:us-west-2:123456789012:perf-reports/RDS/db-abcdefg123456789/report-0d99cc91c4422ee61 + +Output:: + + { + "Tags": [ + { + "Value": "test-tag", + "Key": "name" + } + ] + } + +For more information about tagging performance analysis reports, see `Adding tags to a performance analysis report in Performance Insights `__ in the *Amazon RDS User Guide* and `Adding tags to a performance analysis report in Performance Insights `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/tag-resource.rst new file mode 100644 index 000000000..dd5dc1fe6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/tag-resource.rst @@ -0,0 +1,12 @@ +**To add a tag to a performance analysis report** + +The following ``tag-resource`` example adds the tag key ``name`` with the tag value ``test-tag`` to a performance analysis report with the report ID ``report-0d99cc91c4422ee61``. :: + + aws pi tag-resource \ + --service-type RDS \ + --resource-arn arn:aws:pi:us-west-2:123456789012:perf-reports/RDS/db-abcdefg123456789/report-0d99cc91c4422ee61 \ + --tags Key=name,Value=test-tag + +This command produces no output. + +For more information about tagging performance analysis reports, see `Adding tags to a performance analysis report in Performance Insights `__ in the *Amazon RDS User Guide* and `Adding tags to a performance analysis report in Performance Insights `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/untag-resource.rst new file mode 100644 index 000000000..1c3d09b35 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pi/untag-resource.rst @@ -0,0 +1,12 @@ +**To delete a tag for a performance analysis report** + +The following ``untag-resource`` example deletes the tag ``name`` for a performance analysis report with the report ID ``report-0d99cc91c4422ee61``. :: + + aws pi untag-resource \ + --service-type RDS \ + --resource-arn arn:aws:pi:us-west-2:123456789012:perf-reports/RDS/db-abcdefg123456789/report-0d99cc91c4422ee61 \ + --tag-keys name + +This command produces no output. + +For more information about tagging performance analysis reports, see `Adding tags to a performance analysis report in Performance Insights `__ in the *Amazon RDS User Guide* and `Adding tags to a performance analysis report in Performance Insights `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/create-app.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/create-app.rst new file mode 100755 index 000000000..a3cbf3a70 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/create-app.rst @@ -0,0 +1,37 @@ +**Example 1: To create an application** + +The following ``create-app`` example creates a new application (project). :: + + aws pinpoint create-app \ + --create-application-request Name=ExampleCorp + +Output:: + + { + "ApplicationResponse": { + "Arn": "arn:aws:mobiletargeting:us-west-2:AIDACKCEVSQ6C2EXAMPLE:apps/810c7aab86d42fb2b56c8c966example", + "Id": "810c7aab86d42fb2b56c8c966example", + "Name": "ExampleCorp", + "tags": {} + } + } + +**Example 2: To create an application that is tagged** + +The following ``create-app`` example creates a new application (project) and associates a tag (key and value) with the application. :: + + aws pinpoint create-app \ + --create-application-request Name=ExampleCorp,tags={"Stack"="Test"} + +Output:: + + { + "ApplicationResponse": { + "Arn": "arn:aws:mobiletargeting:us-west-2:AIDACKCEVSQ6C2EXAMPLE:apps/810c7aab86d42fb2b56c8c966example", + "Id": "810c7aab86d42fb2b56c8c966example", + "Name": "ExampleCorp", + "tags": { + "Stack": "Test" + } + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/create-sms-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/create-sms-template.rst new file mode 100644 index 000000000..d5e5626cc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/create-sms-template.rst @@ -0,0 +1,27 @@ +**Creates a message template for messages that are sent through the SMS channel** + +The following ``create-sms-template`` example creates a SMS message template. :: + + aws pinpoint create-sms-template \ + --template-name TestTemplate \ + --sms-template-request file://myfile.json \ + --region us-east-1 + +Contents of ``myfile.json``:: + + { + "Body": "hello\n how are you?\n food is good", + "TemplateDescription": "Test SMS Template" + } + +Output:: + + { + "CreateTemplateMessageBody": { + "Arn": "arn:aws:mobiletargeting:us-east-1:AIDACKCEVSQ6C2EXAMPLE:templates/TestTemplate/SMS", + "Message": "Created", + "RequestID": "8c36b17f-a0b0-400f-ac21-29e9b62a975d" + } + } + +For more information, see `Amazon Pinpoint message templates `__ in the *Amazon Pinpoint User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/delete-app.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/delete-app.rst new file mode 100755 index 000000000..031375165 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/delete-app.rst @@ -0,0 +1,17 @@ +**To delete an application** + +The following ``delete-app`` example deletes an application (project). :: + + aws pinpoint delete-app \ + --application-id 810c7aab86d42fb2b56c8c966example + +Output:: + + { + "ApplicationResponse": { + "Arn": "arn:aws:mobiletargeting:us-west-2:AIDACKCEVSQ6C2EXAMPLE:apps/810c7aab86d42fb2b56c8c966example", + "Id": "810c7aab86d42fb2b56c8c966example", + "Name": "ExampleCorp", + "tags": {} + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-apns-channel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-apns-channel.rst new file mode 100644 index 000000000..d866e3358 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-apns-channel.rst @@ -0,0 +1,25 @@ +**To retrieve information about the status and settings of the APNs channel for an application** + +The following ``get-apns-channel`` example retrieves information about the status and settings of the APNs channel for an application. :: + + aws pinpoint get-apns-channel \ + --application-id 9ab1068eb0a6461c86cce7f27ce0efd7 \ + --region us-east-1 + +Output:: + + { + "APNSChannelResponse": { + "ApplicationId": "9ab1068eb0a6461c86cce7f27ce0efd7", + "CreationDate": "2019-05-09T21:54:45.082Z", + "DefaultAuthenticationMethod": "CERTIFICATE", + "Enabled": true, + "HasCredential": true, + "HasTokenKey": false, + "Id": "apns", + "IsArchived": false, + "LastModifiedDate": "2019-05-09T22:04:01.067Z", + "Platform": "APNS", + "Version": 2 + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-app.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-app.rst new file mode 100644 index 000000000..601e0a68b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-app.rst @@ -0,0 +1,21 @@ +**To retrieve information about an application (project)** + +The following ``get-app`` example retrieves information about an application (project). :: + + aws pinpoint get-app \ + --application-id 810c7aab86d42fb2b56c8c966example \ + --region us-east-1 + +Output:: + + { + "ApplicationResponse": { + "Arn": "arn:aws:mobiletargeting:us-east-1:AIDACKCEVSQ6C2EXAMPLE:apps/810c7aab86d42fb2b56c8c966example", + "Id": "810c7aab86d42fb2b56c8c966example", + "Name": "ExampleCorp", + "tags": { + "Year": "2019", + "Stack": "Production" + } + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-apps.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-apps.rst new file mode 100755 index 000000000..f26a4a481 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-apps.rst @@ -0,0 +1,41 @@ +**To retrieve information about all of your applications** + +The following ``get-apps`` example retrieves information about all of your applications (projects). :: + + aws pinpoint get-apps + +Output:: + + { + "ApplicationsResponse": { + "Item": [ + { + "Arn": "arn:aws:mobiletargeting:us-west-2:AIDACKCEVSQ6C2EXAMPLE:apps/810c7aab86d42fb2b56c8c966example", + "Id": "810c7aab86d42fb2b56c8c966example", + "Name": "ExampleCorp", + "tags": { + "Year": "2019", + "Stack": "Production" + } + }, + { + "Arn": "arn:aws:mobiletargeting:us-west-2:AIDACKCEVSQ6C2EXAMPLE:apps/42d8c7eb0990a57ba1d5476a3example", + "Id": "42d8c7eb0990a57ba1d5476a3example", + "Name": "AnyCompany", + "tags": {} + }, + { + "Arn": "arn:aws:mobiletargeting:us-west-2:AIDACKCEVSQ6C2EXAMPLE:apps/80f5c382b638ffe5ad12376bbexample", + "Id": "80f5c382b638ffe5ad12376bbexample", + "Name": "ExampleCorp_Test", + "tags": { + "Year": "2019", + "Stack": "Test" + } + } + ], + "NextToken": "eyJDcmVhdGlvbkRhdGUiOiIyMDE5LTA3LTE2VDE0OjM4OjUzLjkwM1oiLCJBY2NvdW50SWQiOiI1MTIzOTcxODM4NzciLCJBcHBJZCI6Ijk1ZTM2MGRiMzBkMjQ1ZjRiYTYwYjhlMzllMzZlNjZhIn0" + } + } + +The presence of the ``NextToken`` response value indicates that there is more output available. Call the command again and supply that value as the ``NextToken`` input parameter. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-campaign.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-campaign.rst new file mode 100644 index 000000000..582a1d658 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-campaign.rst @@ -0,0 +1,51 @@ +**To retrieve information about the status, configuration, and other settings for a campaign** + +The following ``get-campaign`` example retrieves information about the status, configuration, and other settings for a campaign. :: + + aws pinpoint get-campaign \ + --application-id 6e0b7591a90841d2b5d93fa11143e5a7 \ + --campaign-id a1e63c6cc0eb43ed826ffcc3cc90b30d \ + --region us-east-1 + +Output:: + + { + "CampaignResponse": { + "AdditionalTreatments": [], + "ApplicationId": "6e0b7591a90841d2b5d93fa11143e5a7", + "Arn": "arn:aws:mobiletargeting:us-east-1:AIDACKCEVSQ6C2EXAMPLE:apps/6e0b7591a90841d2b5d93fa11143e5a7/campaigns/a1e63c6cc0eb43ed826ffcc3cc90b30d", + "CreationDate": "2019-10-08T18:40:16.581Z", + "Description": " ", + "HoldoutPercent": 0, + "Id": "a1e63c6cc0eb43ed826ffcc3cc90b30d", + "IsPaused": false, + "LastModifiedDate": "2019-10-08T18:40:16.581Z", + "Limits": { + "Daily": 0, + "MaximumDuration": 60, + "MessagesPerSecond": 50, + "Total": 0 + }, + "MessageConfiguration": { + "EmailMessage": { + "FromAddress": "sender@example.com", + "HtmlBody": "\n \n \n \n\nHello\n", + "Title": "PinpointDemo" + } + }, + "Name": "MyCampaign", + "Schedule": { + "IsLocalTime": false, + "StartTime": "IMMEDIATE", + "Timezone": "utc" + }, + "SegmentId": "b66c9e42f71444b2aa2e0ffc1df28f60", + "SegmentVersion": 1, + "State": { + "CampaignStatus": "COMPLETED" + }, + "tags": {}, + "TemplateConfiguration": {}, + "Version": 1 + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-campaigns.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-campaigns.rst new file mode 100644 index 000000000..06c13c8f1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-campaigns.rst @@ -0,0 +1,88 @@ +**To retrieves information about the status, configuration, and other settings for all the campaigns that are associated with an application** + +The following ``get-campaigns`` example retrieves information about the status, configuration, and other settings for all the campaigns that are associated with an application. :: + + aws pinpoint get-campaigns \ + --application-id 6e0b7591a90841d2b5d93fa11143e5a7 \ + --region us-east-1 + +Output:: + + { + "CampaignsResponse": { + "Item": [ + { + "AdditionalTreatments": [], + "ApplicationId": "6e0b7591a90841d2b5d93fa11143e5a7", + "Arn": "arn:aws:mobiletargeting:us-east-1:AIDACKCEVSQ6C2EXAMPLE:apps/6e0b7591a90841d2b5d93fa11143e5a7/campaigns/7e1280344c8f4a9aa40a00b006fe44f1", + "CreationDate": "2019-10-08T18:40:22.905Z", + "Description": " ", + "HoldoutPercent": 0, + "Id": "7e1280344c8f4a9aa40a00b006fe44f1", + "IsPaused": false, + "LastModifiedDate": "2019-10-08T18:40:22.905Z", + "Limits": {}, + "MessageConfiguration": { + "EmailMessage": { + "FromAddress": "sender@example.com", + "HtmlBody": "\n \n \n \n\nHello\n", + "Title": "PInpointDemo Test" + } + }, + "Name": "MyCampaign1", + "Schedule": { + "IsLocalTime": false, + "QuietTime": {}, + "StartTime": "IMMEDIATE", + "Timezone": "UTC" + }, + "SegmentId": "b66c9e42f71444b2aa2e0ffc1df28f60", + "SegmentVersion": 1, + "State": { + "CampaignStatus": "COMPLETED" + }, + "tags": {}, + "TemplateConfiguration": {}, + "Version": 1 + }, + { + "AdditionalTreatments": [], + "ApplicationId": "6e0b7591a90841d2b5d93fa11143e5a7", + "Arn": "arn:aws:mobiletargeting:us-east-1:AIDACKCEVSQ6C2EXAMPLE:apps/6e0b7591a90841d2b5d93fa11143e5a7/campaigns/a1e63c6cc0eb43ed826ffcc3cc90b30d", + "CreationDate": "2019-10-08T18:40:16.581Z", + "Description": " ", + "HoldoutPercent": 0, + "Id": "a1e63c6cc0eb43ed826ffcc3cc90b30d", + "IsPaused": false, + "LastModifiedDate": "2019-10-08T18:40:16.581Z", + "Limits": { + "Daily": 0, + "MaximumDuration": 60, + "MessagesPerSecond": 50, + "Total": 0 + }, + "MessageConfiguration": { + "EmailMessage": { + "FromAddress": "sender@example.com", + "HtmlBody": "\n \n \n \n\nDemo\n", + "Title": "PinpointDemo" + } + }, + "Name": "MyCampaign2", + "Schedule": { + "IsLocalTime": false, + "StartTime": "IMMEDIATE", + "Timezone": "utc" + }, + "SegmentId": "b66c9e42f71444b2aa2e0ffc1df28f60", + "SegmentVersion": 1, + "State": { + "CampaignStatus": "COMPLETED" + }, + "tags": {}, + "TemplateConfiguration": {}, + "Version": 1 + } + ] + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-channels.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-channels.rst new file mode 100644 index 000000000..64643a2b8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-channels.rst @@ -0,0 +1,49 @@ +**To retrieves information about the history and status of each channel for an application** + +The following ``get-channels`` example retrieves information about the history and status of each channel for an application. :: + + aws pinpoint get-channels \ + --application-id 6e0b7591a90841d2b5d93fa11143e5a7 \ + --region us-east-1 + +Output:: + + { + "ChannelsResponse": { + "Channels": { + "GCM": { + "ApplicationId": "6e0b7591a90841d2b5d93fa11143e5a7", + "CreationDate": "2019-10-08T18:28:23.182Z", + "Enabled": true, + "HasCredential": true, + "Id": "gcm", + "IsArchived": false, + "LastModifiedDate": "2019-10-08T18:28:23.182Z", + "Version": 1 + }, + "SMS": { + "ApplicationId": "6e0b7591a90841d2b5d93fa11143e5a7", + "CreationDate": "2019-10-08T18:39:18.511Z", + "Enabled": true, + "Id": "sms", + "IsArchived": false, + "LastModifiedDate": "2019-10-08T18:39:18.511Z", + "Version": 1 + }, + "EMAIL": { + "ApplicationId": "6e0b7591a90841d2b5d93fa11143e5a7", + "CreationDate": "2019-10-08T18:27:23.990Z", + "Enabled": true, + "Id": "email", + "IsArchived": false, + "LastModifiedDate": "2019-10-08T18:27:23.990Z", + "Version": 1 + }, + "IN_APP": { + "Enabled": true, + "IsArchived": false, + "Version": 0 + } + } + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-email-channel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-email-channel.rst new file mode 100644 index 000000000..f65b272f5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-email-channel.rst @@ -0,0 +1,26 @@ +**To retrieve information about the status and settings of the Email channel for an application** + +The following ``get-email-channel`` example retrieves status and settings of the Email channel for an application. :: + + aws pinpoint get-email-channel \ + --application-id 6e0b7591a90841d2b5d93fa11143e5a7 \ + --region us-east-1 + +Output:: + + { + "EmailChannelResponse": { + "ApplicationId": "6e0b7591a90841d2b5d93fa11143e5a7", + "CreationDate": "2019-10-08T18:27:23.990Z", + "Enabled": true, + "FromAddress": "sender@example.com", + "Id": "email", + "Identity": "arn:aws:ses:us-east-1:AIDACKCEVSQ6C2EXAMPLE:identity/sender@example.com", + "IsArchived": false, + "LastModifiedDate": "2019-10-08T18:27:23.990Z", + "MessagesPerSecond": 1, + "Platform": "EMAIL", + "RoleArn": "arn:aws:iam::AIDACKCEVSQ6C2EXAMPLE:role/pinpoint-events", + "Version": 1 + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-endpoint.rst new file mode 100644 index 000000000..ab3c859af --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-endpoint.rst @@ -0,0 +1,40 @@ +**To retrieve information about the settings and attributes of a specific endpoint for an application** + +The following ``get-endpoint`` example retrieves information about the settings and attributes of a specific endpoint for an application. :: + + aws pinpoint get-endpoint \ + --application-id 611e3e3cdd47474c9c1399a505665b91 \ + --endpoint-id testendpoint \ + --region us-east-1 + +Output:: + + { + "EndpointResponse": { + "Address": "+11234567890", + "ApplicationId": "611e3e3cdd47474c9c1399a505665b91", + "Attributes": {}, + "ChannelType": "SMS", + "CohortId": "63", + "CreationDate": "2019-01-28T23:55:11.534Z", + "EffectiveDate": "2021-08-06T00:04:51.763Z", + "EndpointStatus": "ACTIVE", + "Id": "testendpoint", + "Location": { + "Country": "USA" + }, + "Metrics": { + "SmsDelivered": 1.0 + }, + "OptOut": "ALL", + "RequestId": "a204b1f2-7e26-48a7-9c80-b49a2143489d", + "User": { + "UserAttributes": { + "Age": [ + "24" + ] + }, + "UserId": "testuser" + } + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-gcm-channel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-gcm-channel.rst new file mode 100644 index 000000000..a7c70350b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-gcm-channel.rst @@ -0,0 +1,23 @@ +**To retrieve information about the status and settings of the GCM channel for an application** + +The following ``get-gcm-channel`` example retrieves information about the status and settings of the GCM channel for an application. :: + + aws pinpoint get-gcm-channel \ + --application-id 6e0b7591a90841d2b5d93fa11143e5a7 \ + --region us-east-1 + +Output:: + + { + "GCMChannelResponse": { + "ApplicationId": "6e0b7591a90841d2b5d93fa11143e5a7", + "CreationDate": "2019-10-08T18:28:23.182Z", + "Enabled": true, + "HasCredential": true, + "Id": "gcm", + "IsArchived": false, + "LastModifiedDate": "2019-10-08T18:28:23.182Z", + "Platform": "GCM", + "Version": 1 + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-sms-channel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-sms-channel.rst new file mode 100644 index 000000000..9047274f8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-sms-channel.rst @@ -0,0 +1,24 @@ +**To retrieve information about the status and settings of the SMS channel for an application** + +The following ``get-sms-channel`` example retrieves status and settings of the sms channel for an application. :: + + aws pinpoint get-sms-channel \ + --application-id 6e0b7591a90841d2b5d93fa11143e5a7 \ + --region us-east-1 + +Output:: + + { + "SMSChannelResponse": { + "ApplicationId": "6e0b7591a90841d2b5d93fa11143e5a7", + "CreationDate": "2019-10-08T18:39:18.511Z", + "Enabled": true, + "Id": "sms", + "IsArchived": false, + "LastModifiedDate": "2019-10-08T18:39:18.511Z", + "Platform": "SMS", + "PromotionalMessagesPerSecond": 20, + "TransactionalMessagesPerSecond": 20, + "Version": 1 + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-sms-template.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-sms-template.rst new file mode 100644 index 000000000..f25f4ca77 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-sms-template.rst @@ -0,0 +1,25 @@ +**Retrieves the content and settings of a message template for messages that are sent through the SMS channel** + +The following ``get-sms-template`` example retrieves the content and settings of a SMS message template. :: + + aws pinpoint get-sms-template \ + --template-name TestTemplate \ + --region us-east-1 + +Output:: + + { + "SMSTemplateResponse": { + "Arn": "arn:aws:mobiletargeting:us-east-1:AIDACKCEVSQ6C2EXAMPLE:templates/TestTemplate/SMS", + "Body": "hello\n how are you?\n food is good", + "CreationDate": "2023-06-20T21:37:30.124Z", + "LastModifiedDate": "2023-06-20T21:37:30.124Z", + "tags": {}, + "TemplateDescription": "Test SMS Template", + "TemplateName": "TestTemplate", + "TemplateType": "SMS", + "Version": "1" + } + } + +For more information, see `Amazon Pinpoint message templates `__ in the *Amazon Pinpoint User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-voice-channel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-voice-channel.rst new file mode 100644 index 000000000..c40cbdff7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/get-voice-channel.rst @@ -0,0 +1,23 @@ +**To retrieve information about the status and settings of the voice channel for an application** + +The following ``get-voice-channel`` example retrieves status and settings of the voice channel for an application. :: + + aws pinpoint get-voice-channel \ + --application-id 6e0b7591a90841d2b5d93fa11143e5a7 \ + --region us-east-1 + +Output:: + + { + "VoiceChannelResponse": { + "ApplicationId": "6e0b7591a90841d2b5d93fa11143e5a7", + "CreationDate": "2022-04-28T00:17:03.836Z", + "Enabled": true, + "Id": "voice", + "IsArchived": false, + "LastModifiedDate": "2022-04-28T00:17:03.836Z", + "Platform": "VOICE", + "Version": 1 + } + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/list-tags-for-resource.rst new file mode 100755 index 000000000..8500592a0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/list-tags-for-resource.rst @@ -0,0 +1,19 @@ +**To retrieve a list of tags for a resource** + +The following ``list-tags-for-resource`` example retrieves all the tags (key names and values) that are associated with the specified resource. :: + + aws pinpoint list-tags-for-resource \ + --resource-arn arn:aws:mobiletargeting:us-west-2:AIDACKCEVSQ6C2EXAMPLE:apps/810c7aab86d42fb2b56c8c966example + +Output:: + + { + "TagsModel": { + "tags": { + "Year": "2019", + "Stack": "Production" + } + } + } + +For more information, see 'Tagging Amazon Pinpoint Resources '__ in the *Amazon Pinpoint Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/phone-number-validate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/phone-number-validate.rst new file mode 100644 index 000000000..5dd627576 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/phone-number-validate.rst @@ -0,0 +1,28 @@ +**Retrieves information about a phone number** + +The following ``phone-number-validate`` retrieves information about a phone number. :: + + aws pinpoint phone-number-validate \ + --number-validate-request PhoneNumber="+12065550142" \ + --region us-east-1 + +Output:: + + { + "NumberValidateResponse": { + "Carrier": "ExampleCorp Mobile", + "City": "Seattle", + "CleansedPhoneNumberE164": "+12065550142", + "CleansedPhoneNumberNational": "2065550142", + "Country": "United States", + "CountryCodeIso2": "US", + "CountryCodeNumeric": "1", + "OriginalPhoneNumber": "+12065550142", + "PhoneType": "MOBILE", + "PhoneTypeCode": 0, + "Timezone": "America/Los_Angeles", + "ZipCode": "98101" + } + } + +For more information, see `Amazon Pinpoint SMS channel `__ in the *Amazon Pinpoint User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/send-messages.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/send-messages.rst new file mode 100644 index 000000000..788ea1cd2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/send-messages.rst @@ -0,0 +1,41 @@ +**To send SMS message using the endpoint of an application** + +The following ``send-messages`` example sends a direct message for an application with an endpoint. :: + + aws pinpoint send-messages \ + --application-id 611e3e3cdd47474c9c1399a505665b91 \ + --message-request file://myfile.json \ + --region us-west-2 + +Contents of ``myfile.json``:: + + { + "MessageConfiguration": { + "SMSMessage": { + "Body": "hello, how are you?" + } + }, + "Endpoints": { + "testendpoint": {} + } + } + +Output:: + + { + "MessageResponse": { + "ApplicationId": "611e3e3cdd47474c9c1399a505665b91", + "EndpointResult": { + "testendpoint": { + "Address": "+12345678900", + "DeliveryStatus": "SUCCESSFUL", + "MessageId": "itnuqhai5alf1n6ahv3udc05n7hhddr6gb3lq6g0", + "StatusCode": 200, + "StatusMessage": "MessageId: itnuqhai5alf1n6ahv3udc05n7hhddr6gb3lq6g0" + } + }, + "RequestId": "c7e23264-04b2-4a46-b800-d24923f74753" + } + } + +For more information, see `Amazon Pinpoint SMS channel `__ in the *Amazon Pinpoint User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/send-users-messages.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/send-users-messages.rst new file mode 100644 index 000000000..5a55c896e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/send-users-messages.rst @@ -0,0 +1,43 @@ +**To send SMS message for an user of an application** + +The following ``send-users-messages`` example sends a direct message for an user of an application. :: + + aws pinpoint send-users-messages \ + --application-id 611e3e3cdd47474c9c1399a505665b91 \ + --send-users-message-request file://myfile.json \ + --region us-west-2 + +Contents of ``myfile.json``:: + + { + "MessageConfiguration": { + "SMSMessage": { + "Body": "hello, how are you?" + } + }, + "Users": { + "testuser": {} + } + } + +Output:: + + { + "SendUsersMessageResponse": { + "ApplicationId": "611e3e3cdd47474c9c1399a505665b91", + "RequestId": "e0b12cf5-2359-11e9-bb0b-d5fb91876b25", + "Result": { + "testuser": { + "testuserendpoint": { + "DeliveryStatus": "SUCCESSFUL", + "MessageId": "7qu4hk5bqhda3i7i2n4pjf98qcuh8b7p45ifsmo0", + "StatusCode": 200, + "StatusMessage": "MessageId: 7qu4hk5bqhda3i7i2n4pjf98qcuh8b7p45ifsmo0", + "Address": "+12345678900" + } + } + } + } + } + +For more information, see `Amazon Pinpoint SMS channel `__ in the *Amazon Pinpoint User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/tag-resource.rst new file mode 100755 index 000000000..7bb104b13 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/tag-resource.rst @@ -0,0 +1,11 @@ +**To add tags to a resource** + +The following example adds two tags (key names and values) to a resource. :: + + aws pinpoint list-tags-for-resource \ + --resource-arn arn:aws:mobiletargeting:us-east-1:AIDACKCEVSQ6C2EXAMPLE:apps/810c7aab86d42fb2b56c8c966example \ + --tags-model tags={Stack=Production,Year=2019} + +This command produces no output. + +For more information, see 'Tagging Amazon Pinpoint Resources '__ in the *Amazon Pinpoint Developer Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/untag-resource.rst new file mode 100755 index 000000000..3f9d90a5a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/untag-resource.rst @@ -0,0 +1,21 @@ +**Example 1: To remove a tag from a resource** + +The following ``untag-resource`` example removes the specified tag (key name and value) from a resource. :: + + aws pinpoint untag-resource \ + --resource-arn arn:aws:mobiletargeting:us-west-2:AIDACKCEVSQ6C2EXAMPLE:apps/810c7aab86d42fb2b56c8c966example \ + --tag-keys Year + +This command produces no output. + +**Example 2: To remove multiple tags from a resource** + +The following ``untag-resource`` example removes the specified tags (key names and values) from a resource. :: + + aws pinpoint untag-resource \ + --resource-arn arn:aws:mobiletargeting:us-east-1:AIDACKCEVSQ6C2EXAMPLE:apps/810c7aab86d42fb2b56c8c966example \ + --tag-keys Year Stack + +This command produces no output. + +For more information, see 'Tagging Amazon Pinpoint Resources '__ in the *Amazon Pinpoint Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/update-sms-channel.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/update-sms-channel.rst new file mode 100644 index 000000000..d9de48c1d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pinpoint/update-sms-channel.rst @@ -0,0 +1,27 @@ +**To enable SMS channel or to update the status and settings of the SMS channel for an application.** + +The following ``update-sms-channel`` example enables SMS channel for an SMS channel for an application. :: + + aws pinpoint update-sms-channel \ + --application-id 611e3e3cdd47474c9c1399a505665b91 \ + --sms-channel-request Enabled=true \ + --region us-west-2 + +Output:: + + { + "SMSChannelResponse": { + "ApplicationId": "611e3e3cdd47474c9c1399a505665b91", + "CreationDate": "2019-01-28T23:25:25.224Z", + "Enabled": true, + "Id": "sms", + "IsArchived": false, + "LastModifiedDate": "2023-05-18T23:22:50.977Z", + "Platform": "SMS", + "PromotionalMessagesPerSecond": 20, + "TransactionalMessagesPerSecond": 20, + "Version": 3 + } + } + +For more information, see `Amazon Pinpoint SMS channel `__ in the *Amazon Pinpoint User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/create-pipe.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/create-pipe.rst new file mode 100644 index 000000000..9185c24c6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/create-pipe.rst @@ -0,0 +1,23 @@ +**To Create a pipe** + +The following ``create-pipe`` example creates a Pipe named ``Demo_Pipe`` with SQS as the source and CloudWatch Log Group as the target for the Pipe. :: + + aws pipes create-pipe \ + --name Demo_Pipe \ + --desired-state RUNNING \ + --role-arn arn:aws:iam::123456789012:role/service-role/Amazon_EventBridge_Pipe_Demo_Pipe_28b3aa4f \ + --source arn:aws:sqs:us-east-1:123456789012:Demo_Queue \ + --target arn:aws:logs:us-east-1:123456789012:log-group:/aws/pipes/Demo_LogGroup + +Output:: + + { + "Arn": "arn:aws:pipes:us-east-1:123456789012:pipe/Demo_Pipe", + "Name": "Demo_Pipe", + "DesiredState": "RUNNING", + "CurrentState": "CREATING", + "CreationTime": "2024-10-08T12:33:59-05:00", + "LastModifiedTime": "2024-10-08T12:33:59.684839-05:00" + } + +For more information, see `Amazon EventBridge Pipes concepts `__ in the *Amazon EventBridge User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/delete-pipe.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/delete-pipe.rst new file mode 100644 index 000000000..1d33e88ae --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/delete-pipe.rst @@ -0,0 +1,19 @@ +**To delete an existing pipe** + +The following ``delete-pipe`` example deletes a Pipe named ``Demo_Pipe`` in the specified account. :: + + aws pipes delete-pipe \ + --name Demo_Pipe + +Output:: + + { + "Arn": "arn:aws:pipes:us-east-1:123456789012:pipe/Demo_Pipe", + "Name": "Demo_Pipe", + "DesiredState": "STOPPED", + "CurrentState": "DELETING", + "CreationTime": "2024-10-08T09:29:10-05:00", + "LastModifiedTime": "2024-10-08T11:57:22-05:00" + } + +For more information, see `Amazon EventBridge Pipes concepts `__ in the *Amazon EventBridge User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/describe-pipe.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/describe-pipe.rst new file mode 100644 index 000000000..41ecb7cd7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/describe-pipe.rst @@ -0,0 +1,37 @@ +**To retrieve information about a Pipe** + +The following ``describe-pipe`` example displays information about the Pipe ``Demo_Pipe`` in the specified account. :: + + aws pipes describe-pipe \ + --name Demo_Pipe + +Output:: + + { + "Arn": "arn:aws:pipes:us-east-1:123456789012:pipe/Demo_Pipe", + "Name": "Demo_Pipe", + "DesiredState": "RUNNING", + "CurrentState": "RUNNING", + "StateReason": "User initiated", + "Source": "arn:aws:sqs:us-east-1:123456789012:Demo_Queue", + "SourceParameters": { + "SqsQueueParameters": { + "BatchSize": 1 + } + }, + "EnrichmentParameters": {}, + "Target": "arn:aws:logs:us-east-1:123456789012:log-group:/aws/pipes/Demo_LogGroup", + "TargetParameters": {}, + "RoleArn": "arn:aws:iam::123456789012:role/service-role/Amazon_EventBridge_Pipe_Demo_Pipe_28b3aa4f", + "Tags": {}, + "CreationTime": "2024-10-08T09:29:10-05:00", + "LastModifiedTime": "2024-10-08T10:23:47-05:00", + "LogConfiguration": { + "CloudwatchLogsLogDestination": { + "LogGroupArn": "arn:aws:logs:us-east-1:123456789012:log-group:/aws/vendedlogs/pipes/Demo_Pipe" + }, + "Level": "ERROR" + } + } + +For more information, see `Amazon EventBridge Pipes concepts `__ in the *Amazon EventBridge User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/list-pipes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/list-pipes.rst new file mode 100644 index 000000000..c44bf99d0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/list-pipes.rst @@ -0,0 +1,25 @@ +**To retrieve a list of Pipes** + +The following ``list-pipes`` example shows all the pipes in the specified account. :: + + aws pipes list-pipes + +Output:: + + { + "Pipes": [ + { + "Name": "Demo_Pipe", + "Arn": "arn:aws:pipes:us-east-1:123456789012:pipe/Demo_Pipe", + "DesiredState": "RUNNING", + "CurrentState": "RUNNING", + "StateReason": "User initiated", + "CreationTime": "2024-10-08T09:29:10-05:00", + "LastModifiedTime": "2024-10-08T10:23:47-05:00", + "Source": "arn:aws:sqs:us-east-1:123456789012:Demo_Queue", + "Target": "arn:aws:logs:us-east-1:123456789012:log-group:/aws/pipes/Demo_LogGroup" + } + ] + } + +For more information, see `Amazon EventBridge Pipes concepts `__ in the *Amazon EventBridge User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/list-tags-for-resource.rst new file mode 100644 index 000000000..c3c07fccd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/list-tags-for-resource.rst @@ -0,0 +1,17 @@ +**To list the tags associated with an existing pipe** + +The following ``list-tags-for-resource`` example lists all the tags associated with a pipe named ``Demo_Pipe`` in the specified account. :: + + aws pipes list-tags-for-resource \ + --resource-arn arn:aws:pipes:us-east-1:123456789012:pipe/Demo_Pipe + +Output:: + + { + "tags": { + "stack": "Production", + "team": "DevOps" + } + } + +For more information, see `Amazon EventBridge Pipes concepts `__ in the *Amazon EventBridge User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/start-pipe.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/start-pipe.rst new file mode 100644 index 000000000..f621e7332 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/start-pipe.rst @@ -0,0 +1,19 @@ +**To start an existing pipe** + +The following ``start-pipe`` example starts a Pipe named ``Demo_Pipe`` in the specified account. :: + + aws pipes start-pipe \ + --name Demo_Pipe + +Output:: + + { + "Arn": "arn:aws:pipes:us-east-1:123456789012:pipe/Demo_Pipe", + "Name": "Demo_Pipe", + "DesiredState": "RUNNING", + "CurrentState": "STARTING", + "CreationTime": "2024-10-08T09:29:10-05:00", + "LastModifiedTime": "2024-10-08T10:17:24-05:00" + } + +For more information, see `Starting or stopping an Amazon EventBridge pipe `__ in the *Amazon EventBridge User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/stop-pipe.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/stop-pipe.rst new file mode 100644 index 000000000..5248d8673 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/stop-pipe.rst @@ -0,0 +1,19 @@ +**To stop an existing pipe** + +The following ``stop-pipe`` example stops a Pipe named ``Demo_Pipe`` in the specified account. :: + + aws pipes stop-pipe \ + --name Demo_Pipe + +Output:: + + { + "Arn": "arn:aws:pipes:us-east-1:123456789012:pipe/Demo_Pipe", + "Name": "Demo_Pipe", + "DesiredState": "STOPPED", + "CurrentState": "STOPPING", + "CreationTime": "2024-10-08T09:29:10-05:00", + "LastModifiedTime": "2024-10-08T09:29:49-05:00" + } + +For more information, see `Starting or stopping an Amazon EventBridge pipe `__ in the *Amazon EventBridge User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/tag-resource.rst new file mode 100644 index 000000000..c6c7d281a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/tag-resource.rst @@ -0,0 +1,9 @@ +**To Tag an existing pipe** + +The following ``tag-resource`` example tags a Pipe named ``Demo_Pipe``. If the command succeeds, no output is returned. :: + + aws pipes tag-resource \ + --resource-arn arn:aws:pipes:us-east-1:123456789012:pipe/Demo_Pipe \ + --tags stack=Production + +For more information, see `Amazon EventBridge Pipes concepts `__ in the *Amazon EventBridge User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/untag-resource.rst new file mode 100644 index 000000000..3f342430a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/untag-resource.rst @@ -0,0 +1,9 @@ +**To remove a Tag from an existing pipe** + +The following ``untag-resource`` example removes a tag with the key ``stack`` from the Pipe named ``Demo_Pipe``. If the command succeeds, no output is returned. :: + + aws pipes untag-resource \ + --resource-arn arn:aws:pipes:us-east-1:123456789012:pipe/Demo_Pipe \ + --tags stack + +For more information, see `Amazon EventBridge Pipes concepts `__ in the *Amazon EventBridge User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/update-pipe.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/update-pipe.rst new file mode 100644 index 000000000..c6d7f4168 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pipes/update-pipe.rst @@ -0,0 +1,22 @@ +**To update an existing pipe** + +The following ``update-pipe`` example updates the Pipe named ``Demo_Pipe`` by adding a CloudWatch Log configuration parameter, enure to update the execution role of the pipe so that it has the correct permissions for Log destination. :: + + aws pipes update-pipe \ + --name Demo_Pipe \ + --desired-state RUNNING \ + --log-configuration CloudwatchLogsLogDestination={LogGroupArn=arn:aws:logs:us-east-1:123456789012:log-group:/aws/vendedlogs/pipes/Demo_Pipe},Level=TRACE \ + --role-arn arn:aws:iam::123456789012:role/service-role/Amazon_EventBridge_Pipe_Demo_Pipe_28b3aa4f + +Output:: + + { + "Arn": "arn:aws:pipes:us-east-1:123456789012:pipe/Demo_Pipe", + "Name": "Demo_Pipe", + "DesiredState": "RUNNING", + "CurrentState": "UPDATING", + "CreationTime": "2024-10-08T09:29:10-05:00", + "LastModifiedTime": "2024-10-08T11:35:48-05:00" + } + +For more information, see `Amazon EventBridge Pipes concepts `__ in the *Amazon EventBridge User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/polly/delete-lexicon.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/polly/delete-lexicon.rst new file mode 100644 index 000000000..ff471a027 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/polly/delete-lexicon.rst @@ -0,0 +1,10 @@ +**To delete a lexicon** + +The following ``delete-lexicon`` example deletes the specified lexicon. :: + + aws polly delete-lexicon \ + --name w3c + +This command produces no output. + +For more information, see `Using the DeleteLexicon operation `__ in the *Amazon Polly Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/polly/get-lexicon.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/polly/get-lexicon.rst new file mode 100644 index 000000000..d7f4d225c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/polly/get-lexicon.rst @@ -0,0 +1,25 @@ +**To retrieve the content of a lexicon** + +The following ``get-lexicon`` example retrieves the content of the specified pronunciation lexicon. :: + + aws polly get-lexicon \ + --name w3c + +Output:: + + { + "Lexicon": { + "Content": "\n\n \n W3C\n World Wide Web Consortium\n \n\n", + "Name": "w3c" + }, + "LexiconAttributes": { + "Alphabet": "ipa", + "LanguageCode": "en-US", + "LastModified": 1603908910.99, + "LexiconArn": "arn:aws:polly:us-west-2:880185128111:lexicon/w3c", + "LexemesCount": 1, + "Size": 492 + } + } + +For more information, see `Using the GetLexicon operation `__ in the *Amazon Polly Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/polly/get-speech-synthesis-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/polly/get-speech-synthesis-task.rst new file mode 100644 index 000000000..64b726d9c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/polly/get-speech-synthesis-task.rst @@ -0,0 +1,23 @@ +**To get information about a speech synthesis task** + +The following ``get-speech-synthesis-task`` example retrieves information about the specified speech synthesis task. :: + + aws polly get-speech-synthesis-task \ + --task-id 70b61c0f-57ce-4715-a247-cae8729dcce9 + +Output:: + + { + "SynthesisTask": { + "TaskId": "70b61c0f-57ce-4715-a247-cae8729dcce9", + "TaskStatus": "completed", + "OutputUri": "https://s3.us-west-2.amazonaws.com/amzn-s3-demo-bucket/70b61c0f-57ce-4715-a247-cae8729dcce9.mp3", + "CreationTime": 1603911042.689, + "RequestCharacters": 1311, + "OutputFormat": "mp3", + "TextType": "text", + "VoiceId": "Joanna" + } + } + +For more information, see `Creating long audio files `__ in the *Amazon Polly Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/polly/list-lexicons.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/polly/list-lexicons.rst new file mode 100644 index 000000000..72adbe4a2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/polly/list-lexicons.rst @@ -0,0 +1,25 @@ +**To list your lexicons** + +The following ``list-lexicons`` example lists your pronunciation lexicons. :: + + aws polly list-lexicons + +Output:: + + { + "Lexicons": [ + { + "Name": "w3c", + "Attributes": { + "Alphabet": "ipa", + "LanguageCode": "en-US", + "LastModified": 1603908910.99, + "LexiconArn": "arn:aws:polly:us-east-2:123456789012:lexicon/w3c", + "LexemesCount": 1, + "Size": 492 + } + } + ] + } + +For more information, see `Using the ListLexicons operation `__ in the *Amazon Polly Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/polly/list-speech-synthesis-tasks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/polly/list-speech-synthesis-tasks.rst new file mode 100644 index 000000000..5ddbdccb0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/polly/list-speech-synthesis-tasks.rst @@ -0,0 +1,25 @@ +**To list your speech synthesis tasks** + +The following ``list-speech-synthesis-tasks`` example lists your speech synthesis tasks. :: + + aws polly list-speech-synthesis-tasks + +Output:: + + { + "SynthesisTasks": [ + { + "TaskId": "70b61c0f-57ce-4715-a247-cae8729dcce9", + "TaskStatus": "completed", + "OutputUri": "https://s3.us-west-2.amazonaws.com/amzn-s3-demo-bucket/70b61c0f-57ce-4715-a247-cae8729dcce9.mp3", + "CreationTime": 1603911042.689, + "RequestCharacters": 1311, + "OutputFormat": "mp3", + "TextType": "text", + "VoiceId": "Joanna" + } + ] + } + +For more information, see `Creating long audio files `__ in the *Amazon Polly Developer Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/polly/put-lexicon.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/polly/put-lexicon.rst new file mode 100644 index 000000000..3246f7bfe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/polly/put-lexicon.rst @@ -0,0 +1,29 @@ +**To store a lexicon** + +The following ``put-lexicon`` example stores the specified pronunciation lexicon. The ``example.pls`` file specifies a W3C PLS-compliant lexicon. :: + + aws polly put-lexicon \ + --name w3c \ + --content file://example.pls + +Contents of ``example.pls`` :: + + { + + + + W3C + World Wide Web Consortium + + + } + +This command produces no output. + +For more information, see `Using the PutLexicon operation `__ in the *Amazon Polly Developer Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/polly/start-speech-synthesis-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/polly/start-speech-synthesis-task.rst new file mode 100644 index 000000000..740fcde3f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/polly/start-speech-synthesis-task.rst @@ -0,0 +1,27 @@ +**To synthesize text** + +The following ``start-speech-synthesis-task`` example synthesizes the text in ``text_file.txt`` and stores the resulting MP3 file in the specified bucket. :: + + aws polly start-speech-synthesis-task \ + --output-format mp3 \ + --output-s3-bucket-name amzn-s3-demo-bucket \ + --text file://text_file.txt \ + --voice-id Joanna + +Output:: + + { + "SynthesisTask": { + "TaskId": "70b61c0f-57ce-4715-a247-cae8729dcce9", + "TaskStatus": "scheduled", + "OutputUri": "https://s3.us-east-2.amazonaws.com/amzn-s3-demo-bucket/70b61c0f-57ce-4715-a247-cae8729dcce9.mp3", + "CreationTime": 1603911042.689, + "RequestCharacters": 1311, + "OutputFormat": "mp3", + "TextType": "text", + "VoiceId": "Joanna" + } + } + +For more information, see `Creating long audio files `__ in the *Amazon Polly Developer Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pricing/describe-services.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pricing/describe-services.rst new file mode 100644 index 000000000..c21e31240 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pricing/describe-services.rst @@ -0,0 +1,82 @@ +**To retrieve service metadata** + +This example retrieves the metadata for the Amazon EC2 service code. + +Command:: + + aws pricing describe-services --service-code AmazonEC2 --format-version aws_v1 --max-items 1 + +Output:: + + { + "Services": [ + { + "ServiceCode": "AmazonEC2", + "AttributeNames": [ + "volumeType", + "maxIopsvolume", + "instance", + "instanceCapacity10xlarge", + "locationType", + "instanceFamily", + "operatingSystem", + "clockSpeed", + "LeaseContractLength", + "ecu", + "networkPerformance", + "instanceCapacity8xlarge", + "group", + "maxThroughputvolume", + "gpuMemory", + "ebsOptimized", + "elasticGpuType", + "maxVolumeSize", + "gpu", + "processorFeatures", + "intelAvxAvailable", + "instanceCapacity4xlarge", + "servicecode", + "groupDescription", + "processorArchitecture", + "physicalCores", + "productFamily", + "enhancedNetworkingSupported", + "intelTurboAvailable", + "memory", + "dedicatedEbsThroughput", + "vcpu", + "OfferingClass", + "instanceCapacityLarge", + "capacitystatus", + "termType", + "storage", + "intelAvx2Available", + "storageMedia", + "physicalProcessor", + "provisioned", + "servicename", + "PurchaseOption", + "instanceCapacity18xlarge", + "instanceType", + "tenancy", + "usagetype", + "normalizationSizeFactor", + "instanceCapacity2xlarge", + "instanceCapacity16xlarge", + "maxIopsBurstPerformance", + "instanceCapacity12xlarge", + "instanceCapacity32xlarge", + "instanceCapacityXlarge", + "licenseModel", + "currentGeneration", + "preInstalledSw", + "location", + "instanceCapacity24xlarge", + "instanceCapacity9xlarge", + "instanceCapacityMedium", + "operation" + ] + } + ], + "FormatVersion": "aws_v1" + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pricing/get-attribute-values.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pricing/get-attribute-values.rst new file mode 100644 index 000000000..339767af0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pricing/get-attribute-values.rst @@ -0,0 +1,22 @@ +**To retrieve a list of attribute values** + +The following ``get-attribute-values`` example retrieves a list of values available for the given attribute. :: + + aws pricing get-attribute-values \ + --service-code AmazonEC2 \ + --attribute-name volumeType \ + --max-items 2 + +Output:: + + { + "NextToken": "eyJOZXh0VG9rZW4iOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAyfQ==", + "AttributeValues": [ + { + "Value": "Cold HDD" + }, + { + "Value": "General Purpose" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/pricing/get-products.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pricing/get-products.rst new file mode 100644 index 000000000..34eba01b5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/pricing/get-products.rst @@ -0,0 +1,32 @@ +**To retrieve a list of products** + +This example retrieves a list of products that match the given criteria. + +Command:: + + aws pricing get-products --filters file://filters.json --format-version aws_v1 --max-results 1 --service-code AmazonEC2 + +filters.json:: + + [ + { + "Type": "TERM_MATCH", + "Field": "ServiceCode", + "Value": "AmazonEC2" + }, + { + "Type": "TERM_MATCH", + "Field": "volumeType", + "Value": "Provisioned IOPS" + } + ] + +Output:: + + { + "FormatVersion": "aws_v1", + "NextToken": "WGDY7ko8fQXdlaUZVdasFQ==:RVSagyIFn770XQOzdUIcO9BY6ucBG9itXAZGZF/zioUzOsUKh6PCcPWaOyPZRiMePb986TeoKYB9l55fw/CyoMq5ymnGmT1Vj39TljbbAlhcqnVfTmPIilx8Uy5bdDaBYy/e/2Ofw9Edzsykbs8LTBuNbiDQ+BBds5yeI9AQkUepruKk3aEahFPxJ55kx/zk", + "PriceList": [ + "{\"product\":{\"productFamily\":\"Storage\",\"attributes\":{\"storageMedia\":\"SSD-backed\",\"maxThroughputvolume\":\"320 MB/sec\",\"volumeType\":\"Provisioned IOPS\",\"maxIopsvolume\":\"20000\",\"servicecode\":\"AmazonEC2\",\"usagetype\":\"APS1-EBS:VolumeUsage.piops\",\"locationType\":\"AWS Region\",\"location\":\"Asia Pacific (Singapore)\",\"servicename\":\"Amazon Elastic Compute Cloud\",\"maxVolumeSize\":\"16 TiB\",\"operation\":\"\"},\"sku\":\"3MKHN58N7RDDVGKJ\"},\"serviceCode\":\"AmazonEC2\",\"terms\":{\"OnDemand\":{\"3MKHN58N7RDDVGKJ.JRTCKXETXF\":{\"priceDimensions\":{\"3MKHN58N7RDDVGKJ.JRTCKXETXF.6YS6EN2CT7\":{\"unit\":\"GB-Mo\",\"endRange\":\"Inf\",\"description\":\"$0.138 per GB-month of Provisioned IOPS SSD (io1) provisioned storage - Asia Pacific (Singapore)\",\"appliesTo\":[],\"rateCode\":\"3MKHN58N7RDDVGKJ.JRTCKXETXF.6YS6EN2CT7\",\"beginRange\":\"0\",\"pricePerUnit\":{\"USD\":\"0.1380000000\"}}},\"sku\":\"3MKHN58N7RDDVGKJ\",\"effectiveDate\":\"2018-08-01T00:00:00Z\",\"offerTermCode\":\"JRTCKXETXF\",\"termAttributes\":{}}}},\"version\":\"20180808005701\",\"publicationDate\":\"2018-08-08T00:57:01Z\"}" + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/cancel-service-instance-deployment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/cancel-service-instance-deployment.rst new file mode 100644 index 000000000..7a9490c6f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/cancel-service-instance-deployment.rst @@ -0,0 +1,28 @@ +**To cancel a service instance deployment** + +The following ``cancel-service-instance-deployment`` example cancels a service instance deployment. :: + + aws proton cancel-service-instance-deployment \ + --service-instance-name "instance-one" \ + --service-name "simple-svc" + +Output:: + + { + "serviceInstance": { + "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/service-instance/instance-one", + "createdAt": "2021-04-02T21:29:59.962000+00:00", + "deploymentStatus": "CANCELLING", + "environmentName": "simple-env", + "lastDeploymentAttemptedAt": "2021-04-02T21:45:15.406000+00:00", + "lastDeploymentSucceededAt": "2021-04-02T21:38:00.823000+00:00", + "name": "instance-one", + "serviceName": "simple-svc", + "spec": "proton: ServiceSpec\npipeline:\n my_sample_pipeline_optional_input: abc\n my_sample_pipeline_required_input: '123'\ninstances:\n- name: my-instance\n environment: MySimpleEnv\n spec:\n my_sample_service_instance_optional_input: def\n my_sample_service_instance_required_input: '456'\n- name: my-other-instance\n environment: MySimpleEnv\n spec:\n my_sample_service_instance_required_input: '789'\n", + "templateMajorVersion": "1", + "templateMinorVersion": "1", + "templateName": "svc-simple" + } + } + +For more information, see `Update a service instance `__ in the *The AWS Proton Administrator Guide* or `Update a service instance `__ in the *The AWS Proton User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/cancel-service-pipeline-deployment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/cancel-service-pipeline-deployment.rst new file mode 100644 index 000000000..9b6fff323 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/cancel-service-pipeline-deployment.rst @@ -0,0 +1,23 @@ +**To cancel a service pipeline deployment** + +The following ``cancel-service-pipeline-deployment`` example cancels a service pipeline deployment. :: + + aws proton cancel-service-pipeline-deployment \ + --service-name "simple-svc" + +Output:: + + { + "pipeline": { + "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/pipeline", + "createdAt": "2021-04-02T21:29:59.962000+00:00", + "deploymentStatus": "CANCELLING", + "lastDeploymentAttemptedAt": "2021-04-02T22:02:45.095000+00:00", + "lastDeploymentSucceededAt": "2021-04-02T21:39:28.991000+00:00", + "templateMajorVersion": "1", + "templateMinorVersion": "1", + "templateName": "svc-simple" + } + } + +For more information, see `Update a service pipeline `__ in the *The AWS Proton Administrator Guide* or `Update a service pipeline `__ in the *The AWS Proton User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/create-service.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/create-service.rst new file mode 100644 index 000000000..dc19b7a17 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/create-service.rst @@ -0,0 +1,44 @@ +**To create a service** + +The following ``create-service`` example creates a service with a service pipeline. :: + + aws proton create-service \ + --name "MySimpleService" \ + --template-name "fargate-service" \ + --template-major-version "1" \ + --branch-name "mainline" \ + --repository-connection-arn "arn:aws:codestar-connections:region-id:account-id:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" \ + --repository-id "myorg/myapp" \ + --spec file://spec.yaml + +Contents of ``spec.yaml``:: + + proton: ServiceSpec + + pipeline: + my_sample_pipeline_required_input: "hello" + my_sample_pipeline_optional_input: "bye" + + instances: + - name: "acme-network-dev" + environment: "ENV_NAME" + spec: + my_sample_service_instance_required_input: "hi" + my_sample_service_instance_optional_input: "ho" + +Output:: + + { + "service": { + "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService", + "createdAt": "2020-11-18T19:50:27.460000+00:00", + "lastModifiedAt": "2020-11-18T19:50:27.460000+00:00", + "name": "MySimpleService", + "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "repositoryId": "myorg/myapp", + "status": "CREATE_IN_PROGRESS", + "templateName": "fargate-service" + } + } + +For more information, see `Create a service `__ in the *The AWS Proton Administrator Guide* and `Create a service `__ in the *The AWS Proton User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/delete-service.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/delete-service.rst new file mode 100644 index 000000000..d7cd7c14e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/delete-service.rst @@ -0,0 +1,25 @@ +**To delete a service** + +The following ``delete-service`` example deletes a service. :: + + aws proton delete-service \ + --name "simple-svc" + +Output:: + + { + "service": { + "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc", + "branchName": "mainline", + "createdAt": "2020-11-28T22:40:50.512000+00:00", + "description": "Edit by updating description", + "lastModifiedAt": "2020-11-29T00:30:39.248000+00:00", + "name": "simple-svc", + "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "repositoryId": "myorg/myapp", + "status": "DELETE_IN_PROGRESS", + "templateName": "fargate-service" + } + } + +For more information, see `Delete a service `__ in the *The AWS Proton Administrator Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/get-service-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/get-service-instance.rst new file mode 100644 index 000000000..d01953186 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/get-service-instance.rst @@ -0,0 +1,28 @@ +**To get service instance details** + +The following ``get-service-instance`` example gets detail data for a service instance. :: + + aws proton get-service-instance \ + --name "instance-one" \ + --service-name "simple-svc" + +Output:: + + { + "serviceInstance": { + "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/service-instance/instance-one", + "createdAt": "2020-11-28T22:40:50.512000+00:00", + "deploymentStatus": "SUCCEEDED", + "environmentName": "simple-env", + "lastDeploymentAttemptedAt": "2020-11-28T22:40:50.512000+00:00", + "lastDeploymentSucceededAt": "2020-11-28T22:40:50.512000+00:00", + "name": "instance-one", + "serviceName": "simple-svc", + "spec": "proton: ServiceSpec\npipeline:\n my_sample_pipeline_optional_input: hello world\n my_sample_pipeline_required_input: pipeline up\ninstances:\n- name: instance-one\n environment: my-simple-env\n spec:\n my_sample_service_instance_optional_input: Ola\n my_sample_service_instance_required_input: Ciao\n", + "templateMajorVersion": "1", + "templateMinorVersion": "0", + "templateName": "svc-simple" + } + } + +For more information, see `View service data `__ in the *The AWS Proton Administrator Guide* or `View service data `__ in the *The AWS Proton User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/get-service.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/get-service.rst new file mode 100644 index 000000000..e44bb7984 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/get-service.rst @@ -0,0 +1,36 @@ +**To get service details** + +The following ``get-service`` example gets detail data for a service. :: + + aws proton get-service \ + --name "simple-svc" + +Output:: + + { + "service": { + "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc", + "branchName": "mainline", + "createdAt": "2020-11-28T22:40:50.512000+00:00", + "lastModifiedAt": "2020-11-28T22:44:51.207000+00:00", + "name": "simple-svc", + "pipeline": { + "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/pipeline/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "createdAt": "2020-11-28T22:40:50.512000+00:00", + "deploymentStatus": "SUCCEEDED", + "lastDeploymentAttemptedAt": "2020-11-28T22:40:50.512000+00:00", + "lastDeploymentSucceededAt": "2020-11-28T22:40:50.512000+00:00", + "spec": "proton: ServiceSpec\npipeline:\n my_sample_pipeline_required_input: hello\n my_sample_pipeline_optional_input: bye\ninstances:\n- name: instance-svc-simple\n environment: my-simple-env\n spec:\n my_sample_service_instance_required_input: hi\n my_sample_service_instance_optional_input: ho\n", + "templateMajorVersion": "1", + "templateMinorVersion": "1", + "templateName": "svc-simple" + }, + "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", + "repositoryId": "myorg/myapp", + "spec": "proton: ServiceSpec\npipeline:\n my_sample_pipeline_required_input: hello\n my_sample_pipeline_optional_input: bye\ninstances:\n- name: instance-svc-simple\n environment: my-simple-env\n spec:\n my_sample_service_instance_required_input: hi\n my_sample_service_instance_optional_input: ho\n", + "status": "ACTIVE", + "templateName": "svc-simple" + } + } + +For more information, see `View service data `__ in the *The AWS Proton Administrator Guide* or `View service data `__ in the *The AWS Proton User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/list-service-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/list-service-instances.rst new file mode 100644 index 000000000..224213981 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/list-service-instances.rst @@ -0,0 +1,56 @@ +**Example 1: To list all service instances** + +The following ``list-service-instances`` example lists service instances. :: + + aws proton list-service-instances + +Output:: + + { + "serviceInstances": [ + { + "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/service-instance/instance-one", + "createdAt": "2020-11-28T22:40:50.512000+00:00", + "deploymentStatus": "SUCCEEDED", + "environmentArn": "arn:aws:proton:region-id:123456789012:environment/simple-env", + "lastDeploymentAttemptedAt": "2020-11-28T22:40:50.512000+00:00", + "lastDeploymentSucceededAt": "2020-11-28T22:40:50.512000+00:00", + "name": "instance-one", + "serviceName": "simple-svc", + "templateMajorVersion": "1", + "templateMinorVersion": "0", + "templateName": "fargate-service" + } + ] + } + +For more information, see `View service instance data `__ in the *The AWS Proton Administrator Guide* or `View service instance data `__ in the *The AWS Proton User Guide*. + +**Example 2: To list the specified service instance** + +The following ``get-service-instance`` example gets a service instance. :: + + aws proton get-service-instance \ + --name "instance-one" \ + --service-name "simple-svc" + +Output:: + + { + "serviceInstance": { + "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/service-instance/instance-one", + "createdAt": "2020-11-28T22:40:50.512000+00:00", + "deploymentStatus": "SUCCEEDED", + "environmentName": "simple-env", + "lastDeploymentAttemptedAt": "2020-11-28T22:40:50.512000+00:00", + "lastDeploymentSucceededAt": "2020-11-28T22:40:50.512000+00:00", + "name": "instance-one", + "serviceName": "simple-svc", + "spec": "proton: ServiceSpec\npipeline:\n my_sample_pipeline_optional_input: hello world\n my_sample_pipeline_required_input: pipeline up\ninstances:\n- name: instance-one\n environment: my-simple-env\n spec:\n my_sample_service_instance_optional_input: Ola\n my_sample_service_instance_required_input: Ciao\n", + "templateMajorVersion": "1", + "templateMinorVersion": "0", + "templateName": "svc-simple" + } + } + +For more information, see `View service instance data `__ in the *The AWS Proton Administrator Guide* or `View service instance data `__ in the *The AWS Proton User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/update-service-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/update-service-instance.rst new file mode 100644 index 000000000..a27976906 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/update-service-instance.rst @@ -0,0 +1,48 @@ +**To update a service instance to a new minor version** + +The following ``update-service-instance`` example updates a service instance to a new minor version of its service template that adds a new instance named "my-other-instance" with a new required input. :: + + aws proton update-service-instance \ + --service-name "simple-svc" \ + --spec "file://service-spec.yaml " \ + --template-major-version "1" \ + --template-minor-version "1" \ + --deployment-type "MINOR_VERSION" \ + --name "instance-one" + +Contents of ``service-spec.yaml``:: + + proton: ServiceSpec + pipeline: + my_sample_pipeline_optional_input: "abc" + my_sample_pipeline_required_input: "123" + instances: + - name: "instance-one" + environment: "simple-env" + spec: + my_sample_service_instance_optional_input: "def" + my_sample_service_instance_required_input: "456" + - name: "my-other-instance" + environment: "simple-env" + spec: + my_sample_service_instance_required_input: "789" + +Output:: + + { + "serviceInstance": { + "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/service-instance/instance-one", + "createdAt": "2021-04-02T21:29:59.962000+00:00", + "deploymentStatus": "IN_PROGRESS", + "environmentName": "arn:aws:proton:region-id:123456789012:environment/simple-env", + "lastDeploymentAttemptedAt": "2021-04-02T21:38:00.823000+00:00", + "lastDeploymentSucceededAt": "2021-04-02T21:29:59.962000+00:00", + "name": "instance-one", + "serviceName": "simple-svc", + "templateMajorVersion": "1", + "templateMinorVersion": "0", + "templateName": "svc-simple" + } + } + +For more information, see `Update a service instance `__ in the *The AWS Proton Administrator Guide* or `Update a service instance `__ in the *The AWS Proton User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/update-service-pipeline.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/update-service-pipeline.rst new file mode 100644 index 000000000..b436feb7c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/update-service-pipeline.rst @@ -0,0 +1,28 @@ +**To update a service pipeline** + +The following ``update-service-pipeline`` example updates a service pipeline to a new minor version of its service template. :: + + aws proton update-service-pipeline \ + --service-name "simple-svc" \ + --spec "file://service-spec.yaml" \ + --template-major-version "1" \ + --template-minor-version "1" \ + --deployment-type "MINOR_VERSION" + +Output:: + + { + "pipeline": { + "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/pipeline/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "createdAt": "2021-04-02T21:29:59.962000+00:00", + "deploymentStatus": "IN_PROGRESS", + "lastDeploymentAttemptedAt": "2021-04-02T21:39:28.991000+00:00", + "lastDeploymentSucceededAt": "2021-04-02T21:29:59.962000+00:00", + "spec": "proton: ServiceSpec\n\npipeline:\n my_sample_pipeline_optional_input: \"abc\"\n my_sample_pipeline_required_input: \"123\"\n\ninstances:\n - name: \"my-instance\"\n environment: \"MySimpleEnv\"\n spec:\n my_sample_service_instance_optional_input: \"def\"\n my_sample_service_instance_required_input: \"456\"\n - name: \"my-other-instance\"\n environment: \"MySimpleEnv\"\n spec:\n my_sample_service_instance_required_input: \"789\"\n", + "templateMajorVersion": "1", + "templateMinorVersion": "0", + "templateName": "svc-simple" + } + } + +For more information, see `Update a service pipeline `__ in the *The AWS Proton Administrator Guide* or `Update a service pipeline `__ in the *The AWS Proton User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/update-service.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/update-service.rst new file mode 100644 index 000000000..7f68cfb2a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/proton/update-service.rst @@ -0,0 +1,26 @@ +**To update a service** + +The following ``update-service`` example edits a service description. :: + + aws proton update-service \ + --name "MySimpleService" \ + --description "Edit by updating description" + +Output:: + + { + "service": { + "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService", + "branchName": "mainline", + "createdAt": "2021-03-12T22:39:42.318000+00:00", + "description": "Edit by updating description", + "lastModifiedAt": "2021-03-12T22:44:21.975000+00:00", + "name": "MySimpleService", + "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "repositoryId": "myorg/myapp", + "status": "ACTIVE", + "templateName": "fargate-service" + } + } + +For more information, see `Edit a service `__ in the *The AWS Proton Administrator Guide* or `Edit a service `__ in the *The AWS Proton User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/accept-resource-share-invitation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/accept-resource-share-invitation.rst new file mode 100644 index 000000000..dd021d8c8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/accept-resource-share-invitation.rst @@ -0,0 +1,20 @@ +**To accept a resource share invitation** + +The following ``accept-resource-share-invitation`` example accepts the specified resource share invitation. Principals in the invited account can immediately start using the resources in the share. :: + + aws ram accept-resource-share-invitation \ + --resource-share-invitation-arn arn:aws:ram:us-west-2:111111111111:resource-share-invitation/1e3477be-4a95-46b4-bbe0-c4001EXAMPLE + +Output:: + + { + "resourceShareInvitation": { + "resourceShareInvitationArn": "arn:aws:ram:us-west-2:111111111111:resource-share-invitation/1e3477be-4a95-46b4-bbe0-c4001EXAMPLE", + "resourceShareName": "MyLicenseShare", + "resourceShareArn": "arn:aws:ram:us-west-2:111111111111:resource-share/27d09b4b-5e12-41d1-a4f2-19dedEXAMPLE", + "senderAccountId": "111111111111", + "receiverAccountId": "222222222222", + "invitationTimestamp": "2021-09-22T15:07:35.620000-07:00", + "status": "ACCEPTED" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/associate-resource-share-permission.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/associate-resource-share-permission.rst new file mode 100644 index 000000000..f1b2c81d6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/associate-resource-share-permission.rst @@ -0,0 +1,14 @@ +**To associate a RAM managed permission with a resource share** + +The following ``associate-resource-share-permission`` example replaces the existing managed permission for the relevant resource type with the specified managed permission. Access to all resources of the relevant resource type is governed by the new permission. :: + + aws ram associate-resource-share-permission \ + --permission-arn arn:aws:ram::aws:permission/AWSRAMPermissionGlueDatabaseReadWrite \ + --replace \ + --resource-share-arn arn:aws:ram:us-west-2:123456789012:resource-share/27d09b4b-5e12-41d1-a4f2-19dedEXAMPLE + +Output:: + + { + "returnValue": true + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/associate-resource-share.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/associate-resource-share.rst new file mode 100644 index 000000000..7b064a4a1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/associate-resource-share.rst @@ -0,0 +1,43 @@ +**Example 1: To associate a resource with a resource share** + +The following ``associate-resource-share`` example adds a license configuration to the specified resource share. :: + + aws ram associate-resource-share \ + --resource-share arn:aws:ram:us-west-2:123456789012:resource-share/27d09b4b-5e12-41d1-a4f2-19dedEXAMPLE \ + --resource-arns arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-36be0485f5ae379cc74cf8e92EXAMPLE + +Output:: + + { + "resourceShareAssociations": [ + { + "resourceShareArn": "arn:aws:ram:us-west-2:123456789012:resource-share/27d09b4b-5e12-41d1-a4f2-19dedEXAMPLE", + "associatedEntity": "arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-36be0485f5ae379cc74cf8e92EXAMPLE", + "associationType": "RESOURCE", + "status": "ASSOCIATING", + "external": false + } + ] + } + +**Example 2: To associate a principal with a resource share** + +The following ``associate-resource-share`` example grants access for the specified resource share to all accounts in the specified organizational unit. :: + + aws ram associate-resource-share \ + --resource-share-arn arn:aws:ram:us-west-2:123456789012:resource-share/27d09b4b-5e12-41d1-a4f2-19dedEXAMPLE \ + --principals arn:aws:organizations::123456789012:ou/o-63bEXAMPLE/ou-46xi-rEXAMPLE + +Output:: + + { + "resourceShareAssociations": [ + { + "status": "ASSOCIATING", + "associationType": "PRINCIPAL", + "associatedEntity": "arn:aws:organizations::123456789012:ou/o-63bEXAMPLE/ou-46xi-rEXAMPLE", + "external": false, + "resourceShareArn": "arn:aws:ram:us-west-2:123456789012:resource-share/27d09b4b-5e12-41d1-a4f2-19dedEXAMPLE" + } + ] + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/create-resource-share.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/create-resource-share.rst new file mode 100644 index 000000000..086cce5c9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/create-resource-share.rst @@ -0,0 +1,51 @@ +**Example 1: To create a resource share** + +The following ``create-resource-share`` example creates an empty resource share with the specified name. You must separately add resources, principals, and permissions to the share. :: + + aws ram create-resource-share \ + --name MyNewResourceShare + +Output:: + + { + "resourceShare": { + "resourceShareArn": "arn:aws:ram:us-west-2:123456789012:resource-share/4476c27d-8feb-4b21-afe9-7de23EXAMPLE", + "name": "MyNewResourceShare", + "owningAccountId": "123456789012", + "allowExternalPrincipals": true, + "status": "ACTIVE", + "creationTime": 1634586271.302, + "lastUpdatedTime": 1634586271.302 + } + } + +**Example 2: To create a resource share with AWS accounts as principals** + +The following ``create-resource-share`` example creates a resource share and grants access to the specified AWS account (222222222222). If the specified principals are not part of the same AWS Organization, then invitations are sent and must be accepted before access is granted. :: + + aws ram create-resource-share \ + --name MyNewResourceShare \ + --principals 222222222222 + +**Example 3: To create a resource share restricted to your AWS Organization** + +The following ``create-resource-share`` example creates a resource share that is restricted to accounts in the AWS Organization that your account is a member of, and adds the specified OU as a principal. All accounts in that OU can use the resources in the resource share. :: + + aws ram create-resource-share \ + --name MyNewResourceShare \ + --no-allow-external-principals \ + --principals arn:aws:organizations::123456789012:ou/o-63bEXAMPLE/ou-46xi-rEXAMPLE + +Output:: + + { + "resourceShare": { + "resourceShareArn": "arn:aws:ram:us-west-2:123456789012:resource-share/7be8694e-095c-41ca-9ce8-7be4aEXAMPLE", + "name": "MyNewResourceShare", + "owningAccountId": "123456789012", + "allowExternalPrincipals": false, + "status": "ACTIVE", + "creationTime": 1634587042.49, + "lastUpdatedTime": 1634587042.49 + } + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/delete-resource-share.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/delete-resource-share.rst new file mode 100644 index 000000000..f0ec27433 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/delete-resource-share.rst @@ -0,0 +1,12 @@ +**To delete a resource share** + +The following ``delete-resource-share`` example deletes the specified resource share. :: + + aws ram delete-resource-share \ + --resource-share-arn arn:aws:ram:us-west-2:123456789012:resource-share/7ab63972-b505-7e2a-420d-6f5d3EXAMPLE + +The following output indicates success:: + + { + "returnValue": true + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/disassociate-resource-share-permission.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/disassociate-resource-share-permission.rst new file mode 100644 index 000000000..7f8d1c189 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/disassociate-resource-share-permission.rst @@ -0,0 +1,13 @@ +**To remove a RAM managed permission for a resource type from a resource share** + +The following ``disassociate-resource-share-permission`` example removes the RAM managed permission for Glue databases from the specified resource share. :: + + aws ram disassociate-resource-share-permission \ + --resource-share-arn arn:aws:ram:us-west-2:123456789012:resource-share/27d09b4b-5e12-41d1-a4f2-19dedEXAMPLE \ + --permission-arn arn:aws:ram::aws:permission/AWSRAMPermissionGlueDatabaseReadWrite + +Output:: + + { + "returnValue": true + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/disassociate-resource-share.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/disassociate-resource-share.rst new file mode 100644 index 000000000..7cb095e8a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/disassociate-resource-share.rst @@ -0,0 +1,19 @@ +**To remove a resource from a resource share** + +The following ``disassociate-resource-share`` example removes the specified resource, in this case a VPC subnet, from the specified resource share. Any principals with access to the resource share can no longer perform operations on that resource. :: + + aws ram disassociate-resource-share \ + --resource-arns arn:aws:ec2:us-west-2:123456789012:subnet/subnet-0250c25a1fEXAMPLE \ + --resource-share-arn arn:aws:ram:us-west-2:123456789012:resource-share/7ab63972-b505-7e2a-420d-6f5d3EXAMPLE + +Output:: + + { + "resourceShareAssociations": [ + "resourceShareArn": "arn:aws:ram:us-west-2:123456789012:resource-share/7ab63972-b505-7e2a-420d-6f5d3EXAMPLE", + "associatedEntity": "arn:aws:ec2:us-west-2:123456789012:subnet/subnet-0250c25a1fEXAMPLE", + "associationType": "RESOURCE", + "status": "DISASSOCIATING", + "external": false + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/enable-sharing-with-aws-organization.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/enable-sharing-with-aws-organization.rst new file mode 100644 index 000000000..211934cc0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/enable-sharing-with-aws-organization.rst @@ -0,0 +1,11 @@ +**To enable resource sharing across AWS Organizations** + +The following ``enable-sharing-with-aws-organization`` example enables resource sharing across your organization and organizational units. :: + + aws ram enable-sharing-with-aws-organization + +The following output indicates success. :: + + { + "returnValue": true + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/get-permission.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/get-permission.rst new file mode 100644 index 000000000..bb3f7407b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/get-permission.rst @@ -0,0 +1,22 @@ +**To retrieve the details for a RAM managed permission** + +The following ``get-permission`` example displays the details for the default version of the specified RAM managed permission. :: + + aws ram get-permission \ + --permission-arn arn:aws:ram::aws:permission/AWSRAMPermissionGlueTableReadWriteForDatabase + +Output:: + + { + "permission": { + "arn": "arn:aws:ram::aws:permission/AWSRAMPermissionGlueTableReadWriteForDatabase", + "version": "2", + "defaultVersion": true, + "name": "AWSRAMPermissionGlueTableReadWriteForDatabase", + "resourceType": "glue:Database", + "permission": "{\"Effect\":\"Allow\",\"Action\":[\"glue:GetTable\", \"glue:UpdateTable\", \"glue:DeleteTable\", \"glue:BatchDeleteTable\", \"glue:BatchDeleteTableVersion\", \"glue:GetTableVersion\", \"glue:GetTableVersions\", \"glue:GetPartition\", \"glue:GetPartitions\", \"glue:BatchGetPartition\", \"glue:BatchCreatePartition\", \"glue:CreatePartition\", \"glue:UpdatePartition\", \"glue:BatchDeletePartition\", \"glue:DeletePartition\", \"glue:GetTables\", \"glue:SearchTables\"]}", + "creationTime": 1624912434.431, + "lastUpdatedTime": 1624912434.431, + "isResourceTypeDefault": false + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/get-resource-policies.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/get-resource-policies.rst new file mode 100644 index 000000000..e3eec289b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/get-resource-policies.rst @@ -0,0 +1,14 @@ +**To get the policies for a resource** + +The following ``get-resource-policies`` example displays the resource-based permission policies for the specified resource associated with a resource share. :: + + aws ram get-resource-policies \ + --resource-arns arn:aws:ec2:us-west-2:123456789012:subnet/subnet-0250c25a1fEXAMPLE + +Output:: + + { + "policies": [ + "{\"Version\":\"2008-10-17\",\"Statement\":[{\"Sid\":\"RamStatement1\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[]},\"Action\":[\"ec2:RunInstances\",\"ec2:CreateNetworkInterface\",\"ec2:DescribeSubnets\"],\"Resource\":\"arn:aws:ec2:us-west-2:123456789012:subnet/subnet-0250c25a1fEXAMPLE\"}]}" + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/get-resource-share-associations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/get-resource-share-associations.rst new file mode 100644 index 000000000..692ae4471 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/get-resource-share-associations.rst @@ -0,0 +1,58 @@ +**Example 1: To list all resource associations for all resource types** + +The following ``get-resource-share-associations`` example lists the resource associations for all resource types across all of your resource shares. :: + + aws ram get-resource-share-associations \ + --association-type RESOURCE + +Output:: + + { + "resourceShareAssociations": [ + { + "resourceShareArn": "arn:aws:ram:us-west-2:123456789012:resource-share/7ab63972-b505-7e2a-420d-6f5d3EXAMPLE", + "associatedEntity": "arn:aws:ec2:us-west-2:123456789012:subnet/subnet-0250c25a1fEXAMPLE", + "resourceShareName": "MySubnetShare", + "associationType": "RESOURCE", + "status": "ASSOCIATED", + "creationTime": 1565303590.973, + "lastUpdatedTime": 1565303591.695, + "external": false + }, + { + "resourceShareArn": "arn:aws:ram:us-west-2:123456789012:resource-share/8167bdfe-4480-4a01-8632-315e0EXAMPLE", + "associatedEntity": "arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-36be0485f5ae379cc74cf8e92EXAMPLE", + "resourceShareName": "MyLicenseShare", + "associationType": "RESOURCE", + "status": "ASSOCIATED", + "creationTime": 1632342958.457, + "lastUpdatedTime": 1632342958.907, + "external": false + } + ] + } + +**Example 2: To list principal associations for a resource share** + +The following ``get-resource-share-associations`` example lists only the principal associations for only the specified resource share. :: + + aws ram get-resource-share-associations \ + --resource-share-arns arn:aws:ram:us-west-2:123456789012:resource-share/7be8694e-095c-41ca-9ce8-7be4aEXAMPLE \ + --association-type PRINCIPAL + +Output:: + + { + "resourceShareAssociations": [ + { + "resourceShareArn": "arn:aws:ram:us-west-2:123456789012:resource-share/7be8694e-095c-41ca-9ce8-7be4aEXAMPLE", + "resourceShareName": "MyNewResourceShare", + "associatedEntity": "arn:aws:organizations::123456789012:ou/o-63bEXAMPLE/ou-46xi-rEXAMPLE", + "associationType": "PRINCIPAL", + "status": "ASSOCIATED", + "creationTime": 1634587042.49, + "lastUpdatedTime": 1634587044.291, + "external": false + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/get-resource-share-invitations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/get-resource-share-invitations.rst new file mode 100644 index 000000000..4f12b12e2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/get-resource-share-invitations.rst @@ -0,0 +1,21 @@ +**To list your resource share invitations** + +The following ``get-resource-share-invitations`` example lists your current resource share invitations. :: + + aws ram get-resource-share-invitations + +Output:: + + { + "resourceShareInvitations": [ + { + "resourceShareInvitationArn": "arn:aws:ram:us-west2-1:111111111111:resource-share-invitation/32b639f0-14b8-7e8f-55ea-e6117EXAMPLE", + "resourceShareName": "project-resource-share", + "resourceShareArn": "arn:aws:ram:us-west-2:111111111111:resource-share/fcb639f0-1449-4744-35bc-a983fEXAMPLE", + "senderAccountId": "111111111111", + "receiverAccountId": "222222222222", + "invitationTimestamp": 1565312166.258, + "status": "PENDING" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/get-resource-shares.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/get-resource-shares.rst new file mode 100644 index 000000000..0f06487e2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/get-resource-shares.rst @@ -0,0 +1,50 @@ +**Example 1: To list resource shares you own and share with others** + +The following ``get-resource-shares`` example lists the resource shares that created and are sharing with others. :: + + aws ram get-resource-shares \ + --resource-owner SELF + +Output:: + + { + "resourceShares": [ + { + "resourceShareArn": "arn:aws:ram:us-west-2:123456789012:resource-share/3ab63985-99d9-1cd2-7d24-75e93EXAMPLE", + "name": "my-resource-share", + "owningAccountId": "123456789012", + "allowExternalPrincipals": false, + "status": "ACTIVE", + "tags": [ + { + "key": "project", + "value": "lima" + } + ] + "creationTime": 1565295733.282, + "lastUpdatedTime": 1565295733.282 + }, + { + "resourceShareArn": "arn:aws:ram:us-west-2:123456789012:resource-share/7ab63972-b505-7e2a-420d-6f5d3EXAMPLE", + "name": "my-resource-share", + "owningAccountId": "123456789012", + "allowExternalPrincipals": true, + "status": "ACTIVE", + "creationTime": 1565295733.282, + "lastUpdatedTime": 1565295733.282 + } + ] + } + +**Example 2: To list resource shares owned by others and shared with you** + +The following ``get-resource-shares`` example lists the resource shares that others created and shared with you. In this example, there are none. :: + + aws ram get-resource-shares \ + --resource-owner OTHER-ACCOUNTS + +Output:: + + { + "resourceShares": [] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/list-pending-invitation-resources.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/list-pending-invitation-resources.rst new file mode 100644 index 000000000..50a4e1ba5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/list-pending-invitation-resources.rst @@ -0,0 +1,29 @@ +**To list the resources that are available in a pending resource share** + +The following ``list-pending-invitation-resources`` example lists all of the resources that are in the resource share associated with the specified invitation. :: + + aws ram list-pending-invitation-resources \ + --resource-share-invitation-arn arn:aws:ram:us-west-2:123456789012:resource-share-invitation/1e3477be-4a95-46b4-bbe0-c4001EXAMPLE + +Output:: + + { + "resources": [ + { + "arn": "arn:aws:ec2:us-west-2:123456789012:subnet/subnet-04a555b0e6EXAMPLE", + "resourceShareArn": "arn:aws:ram:us-west-2:123456789012:resource-share/7be8694e-095c-41ca-9ce8-7be4aEXAMPLE", + "creationTime": 1634676051.269, + "lastUpdatedTime": 1634676052.07, + "status": "AVAILABLE", + "type": "ec2:Subnet" + }, + { + "arn": "arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-36be0485f5ae379cc74cf8e92EXAMPLE", + "resourceShareArn": "arn:aws:ram:us-west-2:123456789012:resource-share/7ab63972-b505-7e2a-420d-6f5d3EXAMPLE", + "creationTime": 1624912434.431, + "lastUpdatedTime": 1624912434.431, + "status": "AVAILABLE", + "type": "license-manager:LicenseConfiguration" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/list-permissions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/list-permissions.rst new file mode 100644 index 000000000..66a204f1c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/list-permissions.rst @@ -0,0 +1,95 @@ +**To list the available RAM managed permissions** + +The following ``list-permissions`` example lists all of the RAM managed permissions available for only the AWS Glue database resource type. :: + + aws ram list-permissions \ + --resource-type glue:Database + +Output:: + + { + "permissions": [ + { + "arn": "arn:aws:ram::aws:permission/AWSRAMDefaultPermissionGlueDatabase", + "version": "1", + "defaultVersion": true, + "name": "AWSRAMDefaultPermissionGlueDatabase", + "resourceType": "glue:Database", + "creationTime": 1592007820.935, + "lastUpdatedTime": 1592007820.935, + "isResourceTypeDefault": true + }, + { + "arn": "arn:aws:ram::aws:permission/AWSRAMPermissionGlueAllTablesReadWriteForDatabase", + "version": "2", + "defaultVersion": true, + "name": "AWSRAMPermissionGlueAllTablesReadWriteForDatabase", + "resourceType": "glue:Database", + "creationTime": 1624912413.323, + "lastUpdatedTime": 1624912413.323, + "isResourceTypeDefault": false + }, + { + "arn": "arn:aws:ram::aws:permission/AWSRAMPermissionGlueDatabaseReadWrite", + "version": "2", + "defaultVersion": true, + "name": "AWSRAMPermissionGlueDatabaseReadWrite", + "resourceType": "glue:Database", + "creationTime": 1624912417.4, + "lastUpdatedTime": 1624912417.4, + "isResourceTypeDefault": false + }, + { + "arn": "arn:aws:ram::aws:permission/AWSRAMPermissionGlueTableReadWriteForDatabase", + "version": "2", + "defaultVersion": true, + "name": "AWSRAMPermissionGlueTableReadWriteForDatabase", + "resourceType": "glue:Database", + "creationTime": 1624912434.431, + "lastUpdatedTime": 1624912434.431, + "isResourceTypeDefault": false + } + ] + } + +The following ``list-permissions`` example displays the available RAM managed permissions for all resource types. :: + + aws ram list-permissions + +Output:: + + { + "permissions": [ + { + "arn": "arn:aws:ram::aws:permission/AWSRAMBlankEndEntityCertificateAPICSRPassthroughIssuanceCertificateAuthority", + "version": "1", + "defaultVersion": true, + "name": "AWSRAMBlankEndEntityCertificateAPICSRPassthroughIssuanceCertificateAuthority", + "resourceType": "acm-pca:CertificateAuthority", + "creationTime": 1623264861.085, + "lastUpdatedTime": 1623264861.085, + "isResourceTypeDefault": false + }, + { + "arn": "arn:aws:ram::aws:permission/AWSRAMDefaultPermissionAppMesh", + "version": "1", + "defaultVersion": true, + "name": "AWSRAMDefaultPermissionAppMesh", + "resourceType": "appmesh:Mesh", + "creationTime": 1589307188.584, + "lastUpdatedTime": 1589307188.584, + "isResourceTypeDefault": true + }, + ...TRUNCATED FOR BREVITY... + { + "arn": "arn:aws:ram::aws:permission/AWSRAMSubordinateCACertificatePathLen0IssuanceCertificateAuthority", + "version": "1", + "defaultVersion": true, + "name": "AWSRAMSubordinateCACertificatePathLen0IssuanceCertificateAuthority", + "resourceType": "acm-pca:CertificateAuthority", + "creationTime": 1623264876.75, + "lastUpdatedTime": 1623264876.75, + "isResourceTypeDefault": false + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/list-principals.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/list-principals.rst new file mode 100644 index 000000000..6eaaaf8ca --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/list-principals.rst @@ -0,0 +1,20 @@ +**To list principals with access to a resource** + +The following ``list-principals`` example displays a list of the principals that can access resources of the specified type through any resource shares. :: + + aws ram list-principals \ + --resource-type ec2:Subnet + +Output:: + + { + "principals": [ + { + "id": "arn:aws:organizations::123456789012:ou/o-gx7EXAMPLE/ou-29c5-zEXAMPLE", + "resourceShareArn": "arn:aws:ram:us-west-2:123456789012:resource-share/7ab63972-b505-7e2a-420d-6f5d3EXAMPLE", + "creationTime": 1565298209.737, + "lastUpdatedTime": 1565298211.019, + "external": false + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/list-resource-share-permissions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/list-resource-share-permissions.rst new file mode 100644 index 000000000..db59b452d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/list-resource-share-permissions.rst @@ -0,0 +1,27 @@ +**To list all of the RAM managed permissions currently attached to a resource share** + +The following ``list-resource-share-permissions`` example lists all of the RAM managed permissions that are attached to the specified resource share. :: + + aws ram list-resource-share-permissions \ + --resource-share-arn arn:aws:ram:us-west-2:123456789012:resource-share/27d09b4b-5e12-41d1-a4f2-19dedEXAMPLE + +Output:: + + { + "permissions": [ + { + "arn": "arn:aws:ram::aws:permission/AWSRAMDefaultPermissionLicenseConfiguration", + "version": "1", + "resourceType": "license-manager:LicenseConfiguration", + "status": "ASSOCIATED", + "lastUpdatedTime": 1632342984.234 + }, + { + "arn": "arn:aws:ram::aws:permission/AWSRAMPermissionGlueDatabaseReadWrite", + "version": "2", + "resourceType": "glue:Database", + "status": "ASSOCIATED", + "lastUpdatedTime": 1632512462.297 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/list-resource-types.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/list-resource-types.rst new file mode 100644 index 000000000..053708ba7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/list-resource-types.rst @@ -0,0 +1,29 @@ +**To list the resource types that are supported by AWS RAM** + +The following ``list-resource-types`` example lists all of the resource types currently supported by AWS RAM. :: + + aws ram list-resource-types + +Output:: + + { + "resourceTypes": [ + { + "resourceType": "route53resolver:FirewallRuleGroup", + "serviceName": "route53resolver" + }, + { + "resourceType": "ec2:LocalGatewayRouteTable", + "serviceName": "ec2" + }, + ...OUTPUT TRUNCATED FOR BREVITY... + { + "resourceType": "ec2:Subnet", + "serviceName": "ec2" + }, + { + "resourceType": "ec2:TransitGatewayMulticastDomain", + "serviceName": "ec2" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/list-resources.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/list-resources.rst new file mode 100644 index 000000000..d1e3f1d55 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/list-resources.rst @@ -0,0 +1,22 @@ +**To list the resources associated with a resource share** + +The following ``list-resources`` example lists all resources in the specified resource share that are of the specified resource type. :: + + aws ram list-resources \ + --resource-type ec2:Subnet \ + --resource-owner SELF \ + --resource-share-arn arn:aws:ram:us-west-2:123456789012:resource-share/7ab63972-b505-7e2a-420d-6f5d3EXAMPLE + +Output:: + + { + "resources": [ + { + "arn": "aarn:aws:ec2:us-west-2:123456789012:subnet/subnet-0250c25a1f4e15235", + "type": "ec2:Subnet", + "resourceShareArn": "arn:aws:ram:us-west-2:123456789012:resource-share/7ab63972-b505-7e2a-420d-6f5d3EXAMPLE", + "creationTime": 1565301545.023, + "lastUpdatedTime": 1565301545.947 + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/promote-resource-share-created-from-policy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/promote-resource-share-created-from-policy.rst new file mode 100644 index 000000000..453210704 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/promote-resource-share-created-from-policy.rst @@ -0,0 +1,12 @@ +**To promote a resource-policy based resource share to full functionality in AWS RAM** + +The following ``promote-resource-share-created-from-policy`` example takes a resource share that you created implicitly by attaching a resource-based policy, and converts it to be fully functional with the AWS RAM console and its CLI and API operations. :: + + aws ram promote-resource-share-created-from-policy \ + --resource-share-arn arn:aws:ram:us-east-1:123456789012:resource-share/91fa8429-2d06-4032-909a-90909EXAMPLE + +Output:: + + { + "returnValue": true + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/reject-resource-share-invitation.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/reject-resource-share-invitation.rst new file mode 100644 index 000000000..43388a084 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/reject-resource-share-invitation.rst @@ -0,0 +1,20 @@ +**To reject a resource share invitation** + +The following ``reject-resource-share-invitation`` example rejects the specified resource share invitation. :: + + aws ram reject-resource-share-invitation \ + --resource-share-invitation-arn arn:aws:ram:us-west-2:111111111111:resource-share-invitation/32b639f0-14b8-7e8f-55ea-e6117EXAMPLE + +Output:: + + "resourceShareInvitations": [ + { + "resourceShareInvitationArn": "arn:aws:ram:us-west2-1:111111111111:resource-share-invitation/32b639f0-14b8-7e8f-55ea-e6117EXAMPLE", + "resourceShareName": "project-resource-share", + "resourceShareArn": "arn:aws:ram:us-west-2:111111111111:resource-share/fcb639f0-1449-4744-35bc-a983fEXAMPLE", + "senderAccountId": "111111111111", + "receiverAccountId": "222222222222", + "invitationTimestamp": 1565319592.463, + "status": "REJECTED" + } + ] diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/tag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/tag-resource.rst new file mode 100644 index 000000000..52a66a0a8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/tag-resource.rst @@ -0,0 +1,9 @@ +**To add tags to a resource share** + +The following ``tag-resource`` example adds a tag key ``project`` and associated value ``lima`` to the specified resource share. :: + + aws ram tag-resource \ + --tags key=project,value=lima \ + --resource-share-arn arn:aws:ram:us-west-2:123456789012:resource-share/7ab63972-b505-7e2a-420d-6f5d3EXAMPLE + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/untag-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/untag-resource.rst new file mode 100644 index 000000000..ede7ed4d2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/untag-resource.rst @@ -0,0 +1,9 @@ +**To remove tags from a resource share** + +The following ``untag-resource`` example removes the ``project`` tag key and associated value from the specified resource share. :: + + aws ram untag-resource \ + --tag-keys project \ + --resource-share-arn arn:aws:ram:us-west-2:123456789012:resource-share/7ab63972-b505-7e2a-420d-6f5d3EXAMPLE + +This command produces no output. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/update-resource-share.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/update-resource-share.rst new file mode 100644 index 000000000..36d6b4293 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/ram/update-resource-share.rst @@ -0,0 +1,21 @@ +**To update a resource share** + +The following ``update-resource-share`` example changes the specified resource share to allow external principals that are not in an AWS Organization. :: + + aws ram update-resource-share \ + --allow-external-principals \ + --resource-share-arn arn:aws:ram:us-west-2:123456789012:resource-share/7ab63972-b505-7e2a-420d-6f5d3EXAMPLE + +Output:: + + { + "resourceShare": { + "resourceShareArn": "arn:aws:ram:us-west-2:123456789012:resource-share/7ab63972-b505-7e2a-420d-6f5d3EXAMPLE", + "name": "my-resource-share", + "owningAccountId": "123456789012", + "allowExternalPrincipals": true, + "status": "ACTIVE", + "creationTime": 1565295733.282, + "lastUpdatedTime": 1565303080.023 + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds-data/batch-execute-statement.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds-data/batch-execute-statement.rst new file mode 100644 index 000000000..1b53b13af --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds-data/batch-execute-statement.rst @@ -0,0 +1,16 @@ +**To execute a batch SQL statement** + +The following ``batch-execute-statement`` example executes a batch SQL statement over an array of data with a parameter set. :: + + aws rds-data batch-execute-statement \ + --resource-arn "arn:aws:rds:us-west-2:123456789012:cluster:mydbcluster" \ + --database "mydb" \ + --secret-arn "arn:aws:secretsmanager:us-west-2:123456789012:secret:mysecret" \ + --sql "insert into mytable values (:id, :val)" \ + --parameter-sets "[[{\"name\": \"id\", \"value\": {\"longValue\": 1}},{\"name\": \"val\", \"value\": {\"stringValue\": \"ValueOne\"}}], + [{\"name\": \"id\", \"value\": {\"longValue\": 2}},{\"name\": \"val\", \"value\": {\"stringValue\": \"ValueTwo\"}}], + [{\"name\": \"id\", \"value\": {\"longValue\": 3}},{\"name\": \"val\", \"value\": {\"stringValue\": \"ValueThree\"}}]]" + +This command produces no output. + +For more information, see `Using the Data API for Aurora Serverless `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds-data/begin-transaction.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds-data/begin-transaction.rst new file mode 100644 index 000000000..6816cdbeb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds-data/begin-transaction.rst @@ -0,0 +1,16 @@ +**To start a SQL transaction** + +The following ``begin-transaction`` example starts a SQL transaction. :: + + aws rds-data begin-transaction \ + --resource-arn "arn:aws:rds:us-west-2:123456789012:cluster:mydbcluster" \ + --database "mydb" \ + --secret-arn "arn:aws:secretsmanager:us-west-2:123456789012:secret:mysecret" + +Output:: + + { + "transactionId": "ABC1234567890xyz" + } + +For more information, see `Using the Data API for Aurora Serverless `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds-data/commit-transaction.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds-data/commit-transaction.rst new file mode 100644 index 000000000..90dacd8cf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds-data/commit-transaction.rst @@ -0,0 +1,16 @@ +**To commit a SQL transaction** + +The following ``commit-transaction`` example ends the specified SQL transaction and commits the changes that you made as part of it. :: + + aws rds-data commit-transaction \ + --resource-arn "arn:aws:rds:us-west-2:123456789012:cluster:mydbcluster" \ + --secret-arn "arn:aws:secretsmanager:us-west-2:123456789012:secret:mysecret" \ + --transaction-id "ABC1234567890xyz" + +Output:: + + { + "transactionStatus": "Transaction Committed" + } + +For more information, see `Using the Data API for Aurora Serverless `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds-data/execute-statement.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds-data/execute-statement.rst new file mode 100644 index 000000000..2963dc86c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds-data/execute-statement.rst @@ -0,0 +1,36 @@ +**Example 1: To execute a SQL statement that is part of a transaction** + +The following ``execute-statement`` example runs a SQL statement that is part of a transaction. :: + + aws rds-data execute-statement \ + --resource-arn "arn:aws:rds:us-west-2:123456789012:cluster:mydbcluster" \ + --database "mydb" \ + --secret-arn "arn:aws:secretsmanager:us-west-2:123456789012:secret:mysecret" \ + --sql "update mytable set quantity=5 where id=201" \ + --transaction-id "ABC1234567890xyz" + +Output:: + + { + "numberOfRecordsUpdated": 1 + } + +**Example 2: To execute a SQL statement with parameters** + +The following ``execute-statement`` example runs a SQL statement with parameters. :: + + aws rds-data execute-statement \ + --resource-arn "arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster" \ + --database "mydb" \ + --secret-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret" \ + --sql "insert into mytable values (:id, :val)" \ + --parameters "[{\"name\": \"id\", \"value\": {\"longValue\": 1}},{\"name\": \"val\", \"value\": {\"stringValue\": \"value1\"}}]" + +Output:: + + { + "numberOfRecordsUpdated": 1 + } + +For more information, see `Using the Data API for Aurora Serverless `__ in the *Amazon RDS User Guide*. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds-data/rollback-transaction.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds-data/rollback-transaction.rst new file mode 100644 index 000000000..7e998ff35 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds-data/rollback-transaction.rst @@ -0,0 +1,16 @@ +**To roll back a SQL transaction** + +The following ``rollback-transaction`` example rolls back the specified SQL transaction. :: + + aws rds-data rollback-transaction \ + --resource-arn "arn:aws:rds:us-west-2:123456789012:cluster:mydbcluster" \ + --secret-arn "arn:aws:secretsmanager:us-west-2:123456789012:secret:mysecret" \ + --transaction-id "ABC1234567890xyz" + +Output:: + + { + "transactionStatus": "Rollback Complete" + } + +For more information, see `Using the Data API for Aurora Serverless `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/add-option-to-option-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/add-option-to-option-group.rst new file mode 100644 index 000000000..4198a2172 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/add-option-to-option-group.rst @@ -0,0 +1,61 @@ +**To add an option to an option group** + +The following ``add-option-to-option-group`` example adds an option to the specified option group. :: + + aws rds add-option-to-option-group \ + --option-group-name myoptiongroup \ + --options OptionName=OEM,Port=5500,DBSecurityGroupMemberships=default \ + --apply-immediately + +Output:: + + { + "OptionGroup": { + "OptionGroupName": "myoptiongroup", + "OptionGroupDescription": "Test Option Group", + "EngineName": "oracle-ee", + "MajorEngineVersion": "12.1", + "Options": [ + { + "OptionName": "Timezone", + "OptionDescription": "Change time zone", + "Persistent": true, + "Permanent": false, + "OptionSettings": [ + { + "Name": "TIME_ZONE", + "Value": "Australia/Sydney", + "DefaultValue": "UTC", + "Description": "Specifies the timezone the user wants to change the system time to", + "ApplyType": "DYNAMIC", + "DataType": "STRING", + "AllowedValues": "Africa/Cairo,Africa/Casablanca,Africa/Harare,Africa/Lagos,Africa/Luanda,Africa/Monrovia,Africa/Nairobi,Africa/Tripoli,Africa/Windhoek,America/Araguaina,America/Argentina/Buenos_Aires,America/Asuncion,America/Bogota,America/Caracas,America/Chicago,America/Chihuahua,America/Cuiaba,America/Denver,America/Detroit,America/Fortaleza,America/Godthab,America/Guatemala,America/Halifax,America/Lima,America/Los_Angeles,America/Manaus,America/Matamoros,America/Mexico_City,America/Monterrey,America/Montevideo,America/New_York,America/Phoenix,America/Santiago,America/Sao_Paulo,America/Tijuana,America/Toronto,Asia/Amman,Asia/Ashgabat,Asia/Baghdad,Asia/Baku,Asia/Bangkok,Asia/Beirut,Asia/Calcutta,Asia/Damascus,Asia/Dhaka,Asia/Hong_Kong,Asia/Irkutsk,Asia/Jakarta,Asia/Jerusalem,Asia/Kabul,Asia/Karachi,Asia/Kathmandu,Asia/Kolkata,Asia/Krasnoyarsk,Asia/Magadan,Asia/Manila,Asia/Muscat,Asia/Novosibirsk,Asia/Rangoon,Asia/Riyadh,Asia/Seoul,Asia/Shanghai,Asia/Singapore,Asia/Taipei,Asia/Tehran,Asia/Tokyo,Asia/Ulaanbaatar,Asia/Vladivostok,Asia/Yakutsk,Asia/Yerevan,Atlantic/Azores,Atlantic/Cape_Verde,Australia/Adelaide,Australia/Brisbane,Australia/Darwin,Australia/Eucla,Australia/Hobart,Australia/Lord_Howe,Australia/Perth,Australia/Sydney,Brazil/DeNoronha,Brazil/East,Canada/Newfoundland,Canada/Saskatchewan,Etc/GMT-3,Europe/Amsterdam,Europe/Athens,Europe/Berlin,Europe/Dublin,Europe/Helsinki,Europe/Kaliningrad,Europe/London,Europe/Madrid,Europe/Moscow,Europe/Paris,Europe/Prague,Europe/Rome,Europe/Sarajevo,Pacific/Apia,Pacific/Auckland,Pacific/Chatham,Pacific/Fiji,Pacific/Guam,Pacific/Honolulu,Pacific/Kiritimati,Pacific/Marquesas,Pacific/Samoa,Pacific/Tongatapu,Pacific/Wake,US/Alaska,US/Central,US/East-Indiana,US/Eastern,US/Pacific,UTC", + "IsModifiable": true, + "IsCollection": false + } + ], + "DBSecurityGroupMemberships": [], + "VpcSecurityGroupMemberships": [] + }, + { + "OptionName": "OEM", + "OptionDescription": "Oracle 12c EM Express", + "Persistent": false, + "Permanent": false, + "Port": 5500, + "OptionSettings": [], + "DBSecurityGroupMemberships": [ + { + "DBSecurityGroupName": "default", + "Status": "authorized" + } + ], + "VpcSecurityGroupMemberships": [] + } + ], + "AllowsVpcAndNonVpcInstanceMemberships": false, + "OptionGroupArn": "arn:aws:rds:us-east-1:123456789012:og:myoptiongroup" + } + } + +For more information, see `Adding an Option to an Option Group `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/add-role-to-db-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/add-role-to-db-cluster.rst new file mode 100644 index 000000000..90deb7108 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/add-role-to-db-cluster.rst @@ -0,0 +1,11 @@ +**To associate an AWS Identity and Access Management (IAM) role with a DB cluster** + +The following ``add-role-to-db-cluster`` example associates a role with a DB cluster. :: + + aws rds add-role-to-db-cluster \ + --db-cluster-identifier mydbcluster \ + --role-arn arn:aws:iam::123456789012:role/RDSLoadFromS3 + +This command produces no output. + +For more information, see `Associating an IAM role with an Amazon Aurora MySQL DB cluster `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/add-role-to-db-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/add-role-to-db-instance.rst new file mode 100644 index 000000000..6c45e6bc5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/add-role-to-db-instance.rst @@ -0,0 +1,12 @@ +**To associate an AWS Identity and Access Management (IAM) role with a DB instance** + +The following ``add-role-to-db-instance`` example adds the role to an Oracle DB instance named ``test-instance``. :: + + aws rds add-role-to-db-instance \ + --db-instance-identifier test-instance \ + --feature-name S3_INTEGRATION \ + --role-arn arn:aws:iam::111122223333:role/rds-s3-integration-role + +This command produces no output. + +For more information, see `Prerequisites for Amazon RDS Oracle Integration with Amazon S3 `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/add-source-identifier-to-subscription.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/add-source-identifier-to-subscription.rst new file mode 100644 index 000000000..28615aa67 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/add-source-identifier-to-subscription.rst @@ -0,0 +1,30 @@ +**To add a source identifier to a subscription** + +The following ``add-source-identifier`` example adds another source identifier to an existing subscription. :: + + aws rds add-source-identifier-to-subscription \ + --subscription-name my-instance-events \ + --source-identifier test-instance-repl + +Output:: + + { + "EventSubscription": { + "SubscriptionCreationTime": "Tue Jul 31 23:22:01 UTC 2018", + "CustSubscriptionId": "my-instance-events", + "EventSubscriptionArn": "arn:aws:rds:us-east-1:123456789012:es:my-instance-events", + "Enabled": false, + "Status": "modifying", + "EventCategoriesList": [ + "backup", + "recovery" + ], + "CustomerAwsId": "123456789012", + "SnsTopicArn": "arn:aws:sns:us-east-1:123456789012:interesting-events", + "SourceType": "db-instance", + "SourceIdsList": [ + "test-instance", + "test-instance-repl" + ] + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/add-tags-to-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/add-tags-to-resource.rst new file mode 100644 index 000000000..ad11238bd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/add-tags-to-resource.rst @@ -0,0 +1,11 @@ +**To add tags to a resource** + +The following ``add-tags-to-resource`` example add tags to an RDS database. :: + + aws rds add-tags-to-resource \ + --resource-name arn:aws:rds:us-east-1:123456789012:db:database-mysql \ + --tags "[{\"Key\": \"Name\",\"Value\": \"MyDatabase\"},{\"Key\": \"Environment\",\"Value\": \"test\"}]" + +This command produces no output. + +For more information, see `Tagging Amazon RDS Resources `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/apply-pending-maintenance-action.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/apply-pending-maintenance-action.rst new file mode 100644 index 000000000..af4beb578 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/apply-pending-maintenance-action.rst @@ -0,0 +1,26 @@ +**To apply pending maintenance actions** + +The following ``apply-pending-maintenance-action`` example applies the pending maintenance actions for a DB cluster. :: + + aws rds apply-pending-maintenance-action \ + --resource-identifier arn:aws:rds:us-east-1:123456789012:cluster:my-db-cluster \ + --apply-action system-update \ + --opt-in-type immediate + +Output:: + + { + "ResourcePendingMaintenanceActions": { + "ResourceIdentifier": "arn:aws:rds:us-east-1:123456789012:cluster:my-db-cluster", + "PendingMaintenanceActionDetails": [ + { + "Action": "system-update", + "OptInStatus": "immediate", + "CurrentApplyDate": "2021-01-23T01:07:36.100Z", + "Description": "Upgrade to Aurora PostgreSQL 3.3.2" + } + ] + } + } + +For more information, see `Maintaining a DB instance `__ in the *Amazon RDS User Guide* and `Maintaining an Amazon Aurora DB cluster `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/authorize-db-security-group-ingress.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/authorize-db-security-group-ingress.rst new file mode 100644 index 000000000..81a3f11a7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/authorize-db-security-group-ingress.rst @@ -0,0 +1,27 @@ +**To associate an AWS Identity and Access Management (IAM) role with a DB instance** + +The following ``authorize-db-security-group-ingress`` example configures the default security group with an ingress rule for the CIDR IP range 192.0.2.0/24. :: + + aws rds authorize-db-security-group-ingress \ + --db-security-group-name default \ + --cidrip 192.0.2.0/24 + +Output:: + + { + "DBSecurityGroup": { + "OwnerId": "123456789012", + "DBSecurityGroupName": "default", + "DBSecurityGroupDescription": "default", + "EC2SecurityGroups": [], + "IPRanges": [ + { + "Status": "authorizing", + "CIDRIP": "192.0.2.0/24" + } + ], + "DBSecurityGroupArn": "arn:aws:rds:us-east-1:111122223333:secgrp:default" + } + } + +For more information, see `Authorizing Network Access to a DB Security Group from an IP Range `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/backtrack-db-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/backtrack-db-cluster.rst new file mode 100644 index 000000000..318df0afd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/backtrack-db-cluster.rst @@ -0,0 +1,7 @@ +**To backtrack an Aurora DB cluster** + +The following ``backtrack-db-cluster`` example backtracks the specified DB cluster sample-cluster to March 19, 2018, at 10 a.m. :: + + aws rds backtrack-db-cluster --db-cluster-identifier sample-cluster --backtrack-to 2018-03-19T10:00:00+00:00 + +This command outputs a JSON block that acknowledges the change to the RDS resource. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/cancel-export-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/cancel-export-task.rst new file mode 100644 index 000000000..29e7820f7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/cancel-export-task.rst @@ -0,0 +1,23 @@ +**To cancel a snapshot export to Amazon S3** + +The following ``cancel-export-task`` example cancels an export task in progress that is exporting a snapshot to Amazon S3. :: + + aws rds cancel-export-task \ + --export-task-identifier my-s3-export-1 + +Output:: + + { + "ExportTaskIdentifier": "my-s3-export-1", + "SourceArn": "arn:aws:rds:us-east-1:123456789012:snapshot:publisher-final-snapshot", + "SnapshotTime": "2019-03-24T20:01:09.815Z", + "S3Bucket": "amzn-s3-demo-bucket", + "S3Prefix": "", + "IamRoleArn": "arn:aws:iam::123456789012:role/service-role/export-snap-S3-role", + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/abcd0000-7bfd-4594-af38-aabbccddeeff", + "Status": "CANCELING", + "PercentProgress": 0, + "TotalExtractedDataInGB": 0 + } + +For more information, see `Canceling a snapshot export task `__ in the *Amazon RDS User Guide* or `Canceling a snapshot export task `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/copy-db-cluster-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/copy-db-cluster-parameter-group.rst new file mode 100644 index 000000000..c54c5cbd3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/copy-db-cluster-parameter-group.rst @@ -0,0 +1,21 @@ +**To copy a DB cluster parameter group** + +The following ``copy-db-cluster-parameter-group`` example makes a copy of a DB cluster parameter group. :: + + aws rds copy-db-cluster-parameter-group \ + --source-db-cluster-parameter-group-identifier mydbclusterpg \ + --target-db-cluster-parameter-group-identifier mydbclusterpgcopy \ + --target-db-cluster-parameter-group-description "Copy of mydbclusterpg parameter group" + +Output:: + + { + "DBClusterParameterGroup": { + "DBClusterParameterGroupName": "mydbclusterpgcopy", + "DBClusterParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:cluster-pg:mydbclusterpgcopy", + "DBParameterGroupFamily": "aurora-mysql5.7", + "Description": "Copy of mydbclusterpg parameter group" + } + } + +For more information, see `Copying a DB Cluster Parameter Group `__ in the *Amazon Aurora Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/copy-db-cluster-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/copy-db-cluster-snapshot.rst new file mode 100644 index 000000000..74d45eb65 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/copy-db-cluster-snapshot.rst @@ -0,0 +1,40 @@ +**To copy a DB cluster snapshot** + +The following ``copy-db-cluster-snapshot`` example creates a copy of a DB cluster snapshot, including its tags. :: + + aws rds copy-db-cluster-snapshot \ + --source-db-cluster-snapshot-identifier arn:aws:rds:us-east-1:123456789012:cluster-snapshot:rds:myaurora-2019-06-04-09-16 + --target-db-cluster-snapshot-identifier myclustersnapshotcopy \ + --copy-tags + +Output:: + + { + "DBClusterSnapshot": { + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1e" + ], + "DBClusterSnapshotIdentifier": "myclustersnapshotcopy", + "DBClusterIdentifier": "myaurora", + "SnapshotCreateTime": "2019-06-04T09:16:42.649Z", + "Engine": "aurora-mysql", + "AllocatedStorage": 0, + "Status": "available", + "Port": 0, + "VpcId": "vpc-6594f31c", + "ClusterCreateTime": "2019-04-15T14:18:42.785Z", + "MasterUsername": "myadmin", + "EngineVersion": "5.7.mysql_aurora.2.04.2", + "LicenseModel": "aurora-mysql", + "SnapshotType": "manual", + "PercentProgress": 100, + "StorageEncrypted": true, + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE", + "DBClusterSnapshotArn": "arn:aws:rds:us-east-1:123456789012:cluster-snapshot:myclustersnapshotcopy", + "IAMDatabaseAuthenticationEnabled": false + } + } + +For more information, see `Copying a Snapshot `__ in the *Amazon Aurora User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/copy-db-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/copy-db-parameter-group.rst new file mode 100644 index 000000000..5a6aa8918 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/copy-db-parameter-group.rst @@ -0,0 +1,21 @@ +**To copy a DB cluster parameter group** + +The following ``copy-db-parameter-group`` example makes a copy of a DB parameter group. :: + + aws rds copy-db-parameter-group \ + --source-db-parameter-group-identifier mydbpg \ + --target-db-parameter-group-identifier mydbpgcopy \ + --target-db-parameter-group-description "Copy of mydbpg parameter group" + +Output:: + + { + "DBParameterGroup": { + "DBParameterGroupName": "mydbpgcopy", + "DBParameterGroupArn": "arn:aws:rds:us-east-1:814387698303:pg:mydbpgcopy", + "DBParameterGroupFamily": "mysql5.7", + "Description": "Copy of mydbpg parameter group" + } + } + +For more information, see `Copying a DB Parameter Group `__ in the *Amazon RDS Users Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/copy-db-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/copy-db-snapshot.rst new file mode 100644 index 000000000..bc48c3b03 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/copy-db-snapshot.rst @@ -0,0 +1,42 @@ +**To copy a DB snapshot** + +The following ``copy-db-snapshot`` example creates a copy of a DB snapshot. :: + + aws rds copy-db-snapshot \ + --source-db-snapshot-identifier rds:database-mysql-2019-06-06-08-38 + --target-db-snapshot-identifier mydbsnapshotcopy + +Output:: + + { + "DBSnapshot": { + "VpcId": "vpc-6594f31c", + "Status": "creating", + "Encrypted": true, + "SourceDBSnapshotIdentifier": "arn:aws:rds:us-east-1:123456789012:snapshot:rds:database-mysql-2019-06-06-08-38", + "MasterUsername": "admin", + "Iops": 1000, + "Port": 3306, + "LicenseModel": "general-public-license", + "DBSnapshotArn": "arn:aws:rds:us-east-1:123456789012:snapshot:mydbsnapshotcopy", + "EngineVersion": "5.6.40", + "OptionGroupName": "default:mysql-5-6", + "ProcessorFeatures": [], + "Engine": "mysql", + "StorageType": "io1", + "DbiResourceId": "db-ZI7UJ5BLKMBYFGX7FDENCKADC4", + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE", + "SnapshotType": "manual", + "IAMDatabaseAuthenticationEnabled": false, + "SourceRegion": "us-east-1", + "DBInstanceIdentifier": "database-mysql", + "InstanceCreateTime": "2019-04-30T15:45:53.663Z", + "AvailabilityZone": "us-east-1f", + "PercentProgress": 0, + "AllocatedStorage": 100, + "DBSnapshotIdentifier": "mydbsnapshotcopy" + } + } + + +For more information, see `Copying a Snapshot `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/copy-option-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/copy-option-group.rst new file mode 100644 index 000000000..f3923a4d6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/copy-option-group.rst @@ -0,0 +1,24 @@ +**To copy an option group** + +The following ``copy-option-group`` example makes a copy of an option group. :: + + aws rds copy-option-group \ + --source-option-group-identifier myoptiongroup \ + --target-option-group-identifier new-option-group \ + --target-option-group-description "My option group copy" + +Output:: + + { + "OptionGroup": { + "Options": [], + "OptionGroupName": "new-option-group", + "MajorEngineVersion": "11.2", + "OptionGroupDescription": "My option group copy", + "AllowsVpcAndNonVpcInstanceMemberships": true, + "EngineName": "oracle-ee", + "OptionGroupArn": "arn:aws:rds:us-east-1:123456789012:og:new-option-group" + } + } + +For more information, see `Making a Copy of an Option Group `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-blue-green-deployment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-blue-green-deployment.rst new file mode 100644 index 000000000..2d6d6f3ed --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-blue-green-deployment.rst @@ -0,0 +1,124 @@ +**Example 1: To create a blue/green deployment for an RDS for MySQL DB instance** + +The following ``create-blue-green-deployment`` example creates a blue/green deployment for a MySQL DB instance. :: + + aws rds create-blue-green-deployment \ + --blue-green-deployment-name bgd-cli-test-instance \ + --source arn:aws:rds:us-east-1:123456789012:db:my-db-instance \ + --target-engine-version 8.0 \ + --target-db-parameter-group-name mysql-80-group + +Output:: + + { + "BlueGreenDeployment": { + "BlueGreenDeploymentIdentifier": "bgd-v53303651eexfake", + "BlueGreenDeploymentName": "bgd-cli-test-instance", + "Source": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance", + "SwitchoverDetails": [ + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-1" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-2" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-3" + } + ], + "Tasks": [ + { + "Name": "CREATING_READ_REPLICA_OF_SOURCE", + "Status": "PENDING" + }, + { + "Name": "DB_ENGINE_VERSION_UPGRADE", + "Status": "PENDING" + }, + { + "Name": "CONFIGURE_BACKUPS", + "Status": "PENDING" + }, + { + "Name": "CREATING_TOPOLOGY_OF_SOURCE", + "Status": "PENDING" + } + ], + "Status": "PROVISIONING", + "CreateTime": "2022-02-25T21:18:51.183000+00:00" + } + } + +For more information, see `Creating a blue/green deployment `__ in the *Amazon RDS User Guide*. + +**Example 2: To create a blue/green deployment for an Aurora MySQL DB cluster** + +The following ``create-blue-green-deployment`` example creates a blue/green deployment for an Aurora MySQL DB cluster. :: + + aws rds create-blue-green-deployment \ + --blue-green-deployment-name my-blue-green-deployment \ + --source arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster \ + --target-engine-version 8.0 \ + --target-db-cluster-parameter-group-name ams-80-binlog-enabled \ + --target-db-parameter-group-name mysql-80-cluster-group + +Output:: + + { + "BlueGreenDeployment": { + "BlueGreenDeploymentIdentifier": "bgd-wi89nwzglccsfake", + "BlueGreenDeploymentName": "my-blue-green-deployment", + "Source": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster", + "SwitchoverDetails": [ + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster", + "Status": "PROVISIONING" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-1", + "Status": "PROVISIONING" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-2", + "Status": "PROVISIONING" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-3", + "Status": "PROVISIONING" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-excluded-member-endpoint", + "Status": "PROVISIONING" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-reader-endpoint", + "Status": "PROVISIONING" + } + ], + "Tasks": [ + { + "Name": "CREATING_READ_REPLICA_OF_SOURCE", + "Status": "PENDING" + }, + { + "Name": "DB_ENGINE_VERSION_UPGRADE", + "Status": "PENDING" + }, + { + "Name": "CREATE_DB_INSTANCES_FOR_CLUSTER", + "Status": "PENDING" + }, + { + "Name": "CREATE_CUSTOM_ENDPOINTS", + "Status": "PENDING" + } + ], + "Status": "PROVISIONING", + "CreateTime": "2022-02-25T21:12:00.288000+00:00" + } + } + +For more information, see `Creating a blue/green deployment `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-cluster-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-cluster-endpoint.rst new file mode 100644 index 000000000..38e6472ee --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-cluster-endpoint.rst @@ -0,0 +1,29 @@ +**To create a custom DB cluster endpoint** + +The following ``create-db-cluster-endpoint`` example creates a custom DB cluster endpoint and associate it with the specified Aurora DB cluster. :: + + aws rds create-db-cluster-endpoint \ + --db-cluster-endpoint-identifier mycustomendpoint \ + --endpoint-type reader \ + --db-cluster-identifier mydbcluster \ + --static-members dbinstance1 dbinstance2 + +Output:: + + { + "DBClusterEndpointIdentifier": "mycustomendpoint", + "DBClusterIdentifier": "mydbcluster", + "DBClusterEndpointResourceIdentifier": "cluster-endpoint-ANPAJ4AE5446DAEXAMPLE", + "Endpoint": "mycustomendpoint.cluster-custom-cnpexample.us-east-1.rds.amazonaws.com", + "Status": "creating", + "EndpointType": "CUSTOM", + "CustomEndpointType": "READER", + "StaticMembers": [ + "dbinstance1", + "dbinstance2" + ], + "ExcludedMembers": [], + "DBClusterEndpointArn": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:mycustomendpoint" + } + +For more information, see `Amazon Aurora Connection Management `__ in the *Amazon Aurora User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-cluster-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-cluster-parameter-group.rst new file mode 100644 index 000000000..d140728d6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-cluster-parameter-group.rst @@ -0,0 +1,21 @@ +**To create a DB cluster parameter group** + +The following ``create-db-cluster-parameter-group`` example creates a DB cluster parameter group. :: + + aws rds create-db-cluster-parameter-group \ + --db-cluster-parameter-group-name mydbclusterparametergroup \ + --db-parameter-group-family aurora5.6 \ + --description "My new cluster parameter group" + +Output:: + + { + "DBClusterParameterGroup": { + "DBClusterParameterGroupName": "mydbclusterparametergroup", + "DBParameterGroupFamily": "aurora5.6", + "Description": "My new cluster parameter group", + "DBClusterParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:cluster-pg:mydbclusterparametergroup" + } + } + +For more information, see `Creating a DB Cluster Parameter Group `__ in the *Amazon Aurora User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-cluster-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-cluster-snapshot.rst new file mode 100644 index 000000000..cf61f0771 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-cluster-snapshot.rst @@ -0,0 +1,39 @@ +**To create a DB cluster snapshot** + +The following ``create-db-cluster-snapshot`` example creates a DB cluster snapshot. :: + + aws rds create-db-cluster-snapshot \ + --db-cluster-identifier mydbcluster \ + --db-cluster-snapshot-identifier mydbclustersnapshot + +Output:: + + { + "DBClusterSnapshot": { + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1e" + ], + "DBClusterSnapshotIdentifier": "mydbclustersnapshot", + "DBClusterIdentifier": "mydbcluster", + "SnapshotCreateTime": "2019-06-18T21:21:00.469Z", + "Engine": "aurora-mysql", + "AllocatedStorage": 1, + "Status": "creating", + "Port": 0, + "VpcId": "vpc-6594f31c", + "ClusterCreateTime": "2019-04-15T14:18:42.785Z", + "MasterUsername": "myadmin", + "EngineVersion": "5.7.mysql_aurora.2.04.2", + "LicenseModel": "aurora-mysql", + "SnapshotType": "manual", + "PercentProgress": 0, + "StorageEncrypted": true, + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE", + "DBClusterSnapshotArn": "arn:aws:rds:us-east-1:123456789012:cluster-snapshot:mydbclustersnapshot", + "IAMDatabaseAuthenticationEnabled": false + } + } + +For more information, see `Creating a DB Cluster Snapshot `__ in the *Amazon Aurora User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-cluster.rst new file mode 100644 index 000000000..02181f03c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-cluster.rst @@ -0,0 +1,118 @@ +**Example 1: To create a MySQL 5.7--compatible DB cluster** + +The following ``create-db-cluster`` example creates a MySQL 5.7-compatible DB cluster using the default engine version. Replace the sample password ``secret99`` with a secure password. When you use the console to create a DB cluster, Amazon RDS automatically creates the writer DB instance for your DB cluster. However, when you use the AWS CLI to create a DB cluster, you must explicitly create the writer DB instance for your DB cluster using the ``create-db-instance`` AWS CLI command. :: + + aws rds create-db-cluster \ + --db-cluster-identifier sample-cluster \ + --engine aurora-mysql \ + --engine-version 5.7 \ + --master-username admin \ + --master-user-password secret99 \ + --db-subnet-group-name default \ + --vpc-security-group-ids sg-0b9130572daf3dc16 + +Output:: + + { + "DBCluster": { + "DBSubnetGroup": "default", + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-0b9130572daf3dc16", + "Status": "active" + } + ], + "AllocatedStorage": 1, + "AssociatedRoles": [], + "PreferredBackupWindow": "09:12-09:42", + "ClusterCreateTime": "2023-02-27T23:21:33.048Z", + "DeletionProtection": false, + "IAMDatabaseAuthenticationEnabled": false, + "ReadReplicaIdentifiers": [], + "EngineMode": "provisioned", + "Engine": "aurora-mysql", + "StorageEncrypted": false, + "MultiAZ": false, + "PreferredMaintenanceWindow": "mon:04:31-mon:05:01", + "HttpEndpointEnabled": false, + "BackupRetentionPeriod": 1, + "DbClusterResourceId": "cluster-ANPAJ4AE5446DAEXAMPLE", + "DBClusterIdentifier": "sample-cluster", + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1e" + ], + "MasterUsername": "master", + "EngineVersion": "5.7.mysql_aurora.2.11.1", + "DBClusterArn": "arn:aws:rds:us-east-1:123456789012:cluster:sample-cluster", + "DBClusterMembers": [], + "Port": 3306, + "Status": "creating", + "Endpoint": "sample-cluster.cluster-cnpexample.us-east-1.rds.amazonaws.com", + "DBClusterParameterGroup": "default.aurora-mysql5.7", + "HostedZoneId": "Z2R2ITUGPM61AM", + "ReaderEndpoint": "sample-cluster.cluster-ro-cnpexample.us-east-1.rds.amazonaws.com", + "CopyTagsToSnapshot": false + } + } + +**Example 2: To create a PostgreSQL--compatible DB cluster** + +The following ``create-db-cluster`` example creates a PostgreSQL-compatible DB cluster using the default engine version. Replace the example password ``secret99`` with a secure password. When you use the console to create a DB cluster, Amazon RDS automatically creates the writer DB instance for your DB cluster. However, when you use the AWS CLI to create a DB cluster, you must explicitly create the writer DB instance for your DB cluster using the ``create-db-instance`` AWS CLI command. :: + + aws rds create-db-cluster \ + --db-cluster-identifier sample-pg-cluster \ + --engine aurora-postgresql \ + --master-username master \ + --master-user-password secret99 \ + --db-subnet-group-name default \ + --vpc-security-group-ids sg-0b9130572daf3dc16 + +Output:: + + { + "DBCluster": { + "Endpoint": "sample-pg-cluster.cluster-cnpexample.us-east-1.rds.amazonaws.com", + "HttpEndpointEnabled": false, + "DBClusterMembers": [], + "EngineMode": "provisioned", + "CopyTagsToSnapshot": false, + "HostedZoneId": "Z2R2ITUGPM61AM", + "IAMDatabaseAuthenticationEnabled": false, + "AllocatedStorage": 1, + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-0b9130572daf3dc16", + "Status": "active" + } + ], + "DeletionProtection": false, + "StorageEncrypted": false, + "BackupRetentionPeriod": 1, + "PreferredBackupWindow": "09:56-10:26", + "ClusterCreateTime": "2023-02-27T23:26:08.371Z", + "DBClusterParameterGroup": "default.aurora-postgresql13", + "EngineVersion": "13.7", + "Engine": "aurora-postgresql", + "Status": "creating", + "DBClusterIdentifier": "sample-pg-cluster", + "MultiAZ": false, + "Port": 5432, + "DBClusterArn": "arn:aws:rds:us-east-1:123456789012:cluster:sample-pg-cluster", + "AssociatedRoles": [], + "DbClusterResourceId": "cluster-ANPAJ4AE5446DAEXAMPLE", + "PreferredMaintenanceWindow": "wed:03:33-wed:04:03", + "ReaderEndpoint": "sample-pg-cluster.cluster-ro-cnpexample.us-east-1.rds.amazonaws.com", + "MasterUsername": "master", + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1c" + ], + "ReadReplicaIdentifiers": [], + "DBSubnetGroup": "default" + } + } + +For more information, see `Creating an Amazon Aurora DB cluster `__ in the *Amazon Aurora User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-instance-read-replica.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-instance-read-replica.rst new file mode 100644 index 000000000..0f3405e1d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-instance-read-replica.rst @@ -0,0 +1,20 @@ +**To create a DB instance read replica** + +This example creates a read replica of an existing DB instance named ``test-instance``. The read replica is named ``test-instance-repl``. :: + + aws rds create-db-instance-read-replica \ + --db-instance-identifier test-instance-repl \ + --source-db-instance-identifier test-instance + +Output:: + + { + "DBInstance": { + "IAMDatabaseAuthenticationEnabled": false, + "MonitoringInterval": 0, + "DBInstanceArn": "arn:aws:rds:us-east-1:123456789012:db:test-instance-repl", + "ReadReplicaSourceDBInstanceIdentifier": "test-instance", + "DBInstanceIdentifier": "test-instance-repl", + ...some output truncated... + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-instance.rst new file mode 100644 index 000000000..d43b721c3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-instance.rst @@ -0,0 +1,106 @@ +**To create a DB instance** + +The following ``create-db-instance`` example uses the required options to launch a new DB instance. :: + + aws rds create-db-instance \ + --db-instance-identifier test-mysql-instance \ + --db-instance-class db.t3.micro \ + --engine mysql \ + --master-username admin \ + --master-user-password secret99 \ + --allocated-storage 20 + +Output:: + + { + "DBInstance": { + "DBInstanceIdentifier": "test-mysql-instance", + "DBInstanceClass": "db.t3.micro", + "Engine": "mysql", + "DBInstanceStatus": "creating", + "MasterUsername": "admin", + "AllocatedStorage": 20, + "PreferredBackupWindow": "12:55-13:25", + "BackupRetentionPeriod": 1, + "DBSecurityGroups": [], + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-12345abc", + "Status": "active" + } + ], + "DBParameterGroups": [ + { + "DBParameterGroupName": "default.mysql5.7", + "ParameterApplyStatus": "in-sync" + } + ], + "DBSubnetGroup": { + "DBSubnetGroupName": "default", + "DBSubnetGroupDescription": "default", + "VpcId": "vpc-2ff2ff2f", + "SubnetGroupStatus": "Complete", + "Subnets": [ + { + "SubnetIdentifier": "subnet-########", + "SubnetAvailabilityZone": { + "Name": "us-west-2c" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-########", + "SubnetAvailabilityZone": { + "Name": "us-west-2d" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-########", + "SubnetAvailabilityZone": { + "Name": "us-west-2a" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-########", + "SubnetAvailabilityZone": { + "Name": "us-west-2b" + }, + "SubnetStatus": "Active" + } + ] + }, + "PreferredMaintenanceWindow": "sun:08:07-sun:08:37", + "PendingModifiedValues": { + "MasterUserPassword": "****" + }, + "MultiAZ": false, + "EngineVersion": "5.7.22", + "AutoMinorVersionUpgrade": true, + "ReadReplicaDBInstanceIdentifiers": [], + "LicenseModel": "general-public-license", + "OptionGroupMemberships": [ + { + "OptionGroupName": "default:mysql-5-7", + "Status": "in-sync" + } + ], + "PubliclyAccessible": true, + "StorageType": "gp2", + "DbInstancePort": 0, + "StorageEncrypted": false, + "DbiResourceId": "db-5555EXAMPLE44444444EXAMPLE", + "CACertificateIdentifier": "rds-ca-2019", + "DomainMemberships": [], + "CopyTagsToSnapshot": false, + "MonitoringInterval": 0, + "DBInstanceArn": "arn:aws:rds:us-west-2:123456789012:db:test-mysql-instance", + "IAMDatabaseAuthenticationEnabled": false, + "PerformanceInsightsEnabled": false, + "DeletionProtection": false, + "AssociatedRoles": [] + } + } + +For more information, see `Creating an Amazon RDS DB Instance `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-parameter-group.rst new file mode 100644 index 000000000..474cee295 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-parameter-group.rst @@ -0,0 +1,21 @@ +**To create a DB parameter group** + +The following ``create-db-parameter-group`` example creates a DB parameter group. :: + + aws rds create-db-parameter-group \ + --db-parameter-group-name mydbparametergroup \ + --db-parameter-group-family MySQL5.6 \ + --description "My new parameter group" + +Output:: + + { + "DBParameterGroup": { + "DBParameterGroupName": "mydbparametergroup", + "DBParameterGroupFamily": "mysql5.6", + "Description": "My new parameter group", + "DBParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:pg:mydbparametergroup" + } + } + +For more information, see `Creating a DB Parameter Group `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-proxy-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-proxy-endpoint.rst new file mode 100644 index 000000000..3af58a32f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-proxy-endpoint.rst @@ -0,0 +1,34 @@ +**To create a DB proxy endpoint for an RDS database** + +The following ``create-db-proxy-endpoint`` example creates a DB proxy endpoint. :: + + aws rds create-db-proxy-endpoint \ + --db-proxy-name proxyExample \ + --db-proxy-endpoint-name "proxyep1" \ + --vpc-subnet-ids subnetgroup1 subnetgroup2 + +Output:: + + { + "DBProxyEndpoint": { + "DBProxyEndpointName": "proxyep1", + "DBProxyEndpointArn": "arn:aws:rds:us-east-1:123456789012:db-proxy-endpoint:prx-endpoint-0123a01b12345c0ab", + "DBProxyName": "proxyExample", + "Status": "creating", + "VpcId": "vpc-1234567", + "VpcSecurityGroupIds": [ + "sg-1234", + "sg-5678" + ], + "VpcSubnetIds": [ + "subnetgroup1", + "subnetgroup2" + ], + "Endpoint": "proxyep1.endpoint.proxy-ab0cd1efghij.us-east-1.rds.amazonaws.com", + "CreatedDate": "2023-04-05T16:09:33.452000+00:00", + "TargetRole": "READ_WRITE", + "IsDefault": false + } + } + +For more information, see `Creating a proxy endpoint `__ in the *Amazon RDS User Guide* and `Creating a proxy endpoint `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-proxy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-proxy.rst new file mode 100644 index 000000000..03f470e1d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-proxy.rst @@ -0,0 +1,47 @@ +**To create a DB proxy for an RDS database** + +The following ``create-db-proxy`` example creates a DB proxy. :: + + aws rds create-db-proxy \ + --db-proxy-name proxyExample \ + --engine-family MYSQL \ + --auth Description="proxydescription1",AuthScheme="SECRETS",SecretArn="arn:aws:secretsmanager:us-west-2:123456789123:secret:secretName-1234f",IAMAuth="DISABLED",ClientPasswordAuthType="MYSQL_NATIVE_PASSWORD" \ + --role-arn arn:aws:iam::123456789123:role/ProxyRole \ + --vpc-subnet-ids subnetgroup1 subnetgroup2 + +Output:: + + { + "DBProxy": { + "DBProxyName": "proxyExample", + "DBProxyArn": "arn:aws:rds:us-east-1:123456789012:db-proxy:prx-0123a01b12345c0ab", + "EngineFamily": "MYSQL", + "VpcId": "vpc-1234567", + "VpcSecuritytGroupIds": [ + "sg-1234", + "sg-5678", + "sg-9101" + ], + "VpcSubnetIds": [ + "subnetgroup1", + "subnetgroup2" + ], + "Auth": "[ + { + "Description": "proxydescription1", + "AuthScheme": "SECRETS", + "SecretArn": "arn:aws:secretsmanager:us-west-2:123456789123:secret:proxysecret1-Abcd1e", + "IAMAuth": "DISABLED" + } + ]", + "RoleArn": "arn:aws:iam::12345678912:role/ProxyRole", + "Endpoint": "proxyExample.proxy-ab0cd1efghij.us-east-1.rds.amazonaws.com", + "RequireTLS": false, + "IdleClientTimeout": 1800, + "DebuggingLogging": false, + "CreatedDate": "2023-04-05T16:09:33.452000+00:00", + "UpdatedDate": "2023-04-13T01:49:38.568000+00:00" + } + } + +For more information, see `Creating an RDS Proxy `__ in the *Amazon RDS User Guide* and `Creating an RDS Proxy `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-security-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-security-group.rst new file mode 100644 index 000000000..999eb84cf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-security-group.rst @@ -0,0 +1,21 @@ +**To create an Amazon RDS DB security group** + +The following ``create-db-security-group`` command creates a new Amazon RDS DB security group:: + + aws rds create-db-security-group --db-security-group-name mysecgroup --db-security-group-description "My Test Security Group" + +In the example, the new DB security group is named ``mysecgroup`` and has a description. + +Output:: + + { + "DBSecurityGroup": { + "OwnerId": "123456789012", + "DBSecurityGroupName": "mysecgroup", + "DBSecurityGroupDescription": "My Test Security Group", + "VpcId": "vpc-a1b2c3d4", + "EC2SecurityGroups": [], + "IPRanges": [], + "DBSecurityGroupArn": "arn:aws:rds:us-west-2:123456789012:secgrp:mysecgroup" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-shard-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-shard-group.rst new file mode 100644 index 000000000..7234e86a9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-shard-group.rst @@ -0,0 +1,216 @@ +**Example 1: To create an Aurora PostgreSQL primary DB cluster** + +The following ``create-db-cluster`` example creates an Aurora PostgreSQL SQL primary DB cluster that's compatible with Aurora Serverless v2 and Aurora Limitless Database. :: + + aws rds create-db-cluster \ + --db-cluster-identifier my-sv2-cluster \ + --engine aurora-postgresql \ + --engine-version 15.2-limitless \ + --storage-type aurora-iopt1 \ + --serverless-v2-scaling-configuration MinCapacity=2,MaxCapacity=16 \ + --enable-limitless-database \ + --master-username myuser \ + --master-user-password mypassword \ + --enable-cloudwatch-logs-exports postgresql + +Output:: + + { + "DBCluster": { + "AllocatedStorage": 1, + "AvailabilityZones": [ + "us-east-2b", + "us-east-2c", + "us-east-2a" + ], + "BackupRetentionPeriod": 1, + "DBClusterIdentifier": "my-sv2-cluster", + "DBClusterParameterGroup": "default.aurora-postgresql15", + "DBSubnetGroup": "default", + "Status": "creating", + "Endpoint": "my-sv2-cluster.cluster-cekycexample.us-east-2.rds.amazonaws.com", + "ReaderEndpoint": "my-sv2-cluster.cluster-ro-cekycexample.us-east-2.rds.amazonaws.com", + "MultiAZ": false, + "Engine": "aurora-postgresql", + "EngineVersion": "15.2-limitless", + "Port": 5432, + "MasterUsername": "myuser", + "PreferredBackupWindow": "06:05-06:35", + "PreferredMaintenanceWindow": "mon:08:25-mon:08:55", + "ReadReplicaIdentifiers": [], + "DBClusterMembers": [], + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-########", + "Status": "active" + } + ], + "HostedZoneId": "Z2XHWR1EXAMPLE", + "StorageEncrypted": false, + "DbClusterResourceId": "cluster-XYEDT6ML6FHIXH4Q2J1EXAMPLE", + "DBClusterArn": "arn:aws:rds:us-east-2:123456789012:cluster:my-sv2-cluster", + "AssociatedRoles": [], + "IAMDatabaseAuthenticationEnabled": false, + "ClusterCreateTime": "2024-02-19T16:24:07.771000+00:00", + "EnabledCloudwatchLogsExports": [ + "postgresql" + ], + "EngineMode": "provisioned", + "DeletionProtection": false, + "HttpEndpointEnabled": false, + "CopyTagsToSnapshot": false, + "CrossAccountClone": false, + "DomainMemberships": [], + "TagList": [], + "StorageType": "aurora-iopt1", + "AutoMinorVersionUpgrade": true, + "ServerlessV2ScalingConfiguration": { + "MinCapacity": 2.0, + "MaxCapacity": 16.0 + }, + "NetworkType": "IPV4", + "IOOptimizedNextAllowedModificationTime": "2024-03-21T16:24:07.781000+00:00", + "LimitlessDatabase": { + "Status": "not-in-use", + "MinRequiredACU": 96.0 + } + } + } + +**Example 2: To create the primary (writer) DB instance** + +The following ``create-db-instance`` example creates an Aurora Serverless v2 primary (writer) DB instance. When you use the console to create a DB cluster, Amazon RDS automatically creates the writer DB instance for your DB cluster. However, when you use the AWS CLI to create a DB cluster, you must explicitly create the writer DB instance for your DB cluster using the ``create-db-instance`` AWS CLI command. :: + + aws rds create-db-instance \ + --db-instance-identifier my-sv2-instance \ + --db-cluster-identifier my-sv2-cluster \ + --engine aurora-postgresql \ + --db-instance-class db.serverless + +Output:: + + { + "DBInstance": { + "DBInstanceIdentifier": "my-sv2-instance", + "DBInstanceClass": "db.serverless", + "Engine": "aurora-postgresql", + "DBInstanceStatus": "creating", + "MasterUsername": "myuser", + "AllocatedStorage": 1, + "PreferredBackupWindow": "06:05-06:35", + "BackupRetentionPeriod": 1, + "DBSecurityGroups": [], + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-########", + "Status": "active" + } + ], + "DBParameterGroups": [ + { + "DBParameterGroupName": "default.aurora-postgresql15", + "ParameterApplyStatus": "in-sync" + } + ], + "DBSubnetGroup": { + "DBSubnetGroupName": "default", + "DBSubnetGroupDescription": "default", + "VpcId": "vpc-########", + "SubnetGroupStatus": "Complete", + "Subnets": [ + { + "SubnetIdentifier": "subnet-########", + "SubnetAvailabilityZone": { + "Name": "us-east-2c" + }, + "SubnetOutpost": {}, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-########", + "SubnetAvailabilityZone": { + "Name": "us-east-2a" + }, + "SubnetOutpost": {}, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-########", + "SubnetAvailabilityZone": { + "Name": "us-east-2b" + }, + "SubnetOutpost": {}, + "SubnetStatus": "Active" + } + ] + }, + "PreferredMaintenanceWindow": "fri:09:01-fri:09:31", + "PendingModifiedValues": { + "PendingCloudwatchLogsExports": { + "LogTypesToEnable": [ + "postgresql" + ] + } + }, + "MultiAZ": false, + "EngineVersion": "15.2-limitless", + "AutoMinorVersionUpgrade": true, + "ReadReplicaDBInstanceIdentifiers": [], + "LicenseModel": "postgresql-license", + "OptionGroupMemberships": [ + { + "OptionGroupName": "default:aurora-postgresql-15", + "Status": "in-sync" + } + ], + "PubliclyAccessible": false, + "StorageType": "aurora-iopt1", + "DbInstancePort": 0, + "DBClusterIdentifier": "my-sv2-cluster", + "StorageEncrypted": false, + "DbiResourceId": "db-BIQTE3B3K3RM7M74SK5EXAMPLE", + "CACertificateIdentifier": "rds-ca-rsa2048-g1", + "DomainMemberships": [], + "CopyTagsToSnapshot": false, + "MonitoringInterval": 0, + "PromotionTier": 1, + "DBInstanceArn": "arn:aws:rds:us-east-2:123456789012:db:my-sv2-instance", + "IAMDatabaseAuthenticationEnabled": false, + "PerformanceInsightsEnabled": false, + "DeletionProtection": false, + "AssociatedRoles": [], + "TagList": [], + "CustomerOwnedIpEnabled": false, + "BackupTarget": "region", + "NetworkType": "IPV4", + "StorageThroughput": 0, + "CertificateDetails": { + "CAIdentifier": "rds-ca-rsa2048-g1" + }, + "DedicatedLogVolume": false + } + } + +**Example 3: To create the DB shard group** + +The following ``create-db-shard-group`` example creates a DB shard group in your Aurora PostgreSQL primary DB cluster. :: + + aws rds create-db-shard-group \ + --db-shard-group-identifier my-db-shard-group \ + --db-cluster-identifier my-sv2-cluster \ + --max-acu 768 + +Output:: + + { + "DBShardGroupResourceId": "shardgroup-a6e3a0226aa243e2ac6c7a1234567890", + "DBShardGroupIdentifier": "my-db-shard-group", + "DBClusterIdentifier": "my-sv2-cluster", + "MaxACU": 768.0, + "ComputeRedundancy": 0, + "Status": "creating", + "PubliclyAccessible": false, + "Endpoint": "my-sv2-cluster.limitless-cekycexample.us-east-2.rds.amazonaws.com" + } + +For more information, see `Using Aurora Serverless v2 `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-snapshot.rst new file mode 100644 index 000000000..459450032 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-snapshot.rst @@ -0,0 +1,39 @@ +**To create a DB snapshot** + +The following ``create-db-snapshot`` example creates a DB snapshot. :: + + aws rds create-db-snapshot \ + --db-instance-identifier database-mysql \ + --db-snapshot-identifier mydbsnapshot + +Output:: + + { + "DBSnapshot": { + "DBSnapshotIdentifier": "mydbsnapshot", + "DBInstanceIdentifier": "database-mysql", + "Engine": "mysql", + "AllocatedStorage": 100, + "Status": "creating", + "Port": 3306, + "AvailabilityZone": "us-east-1b", + "VpcId": "vpc-6594f31c", + "InstanceCreateTime": "2019-04-30T15:45:53.663Z", + "MasterUsername": "admin", + "EngineVersion": "5.6.40", + "LicenseModel": "general-public-license", + "SnapshotType": "manual", + "Iops": 1000, + "OptionGroupName": "default:mysql-5-6", + "PercentProgress": 0, + "StorageType": "io1", + "Encrypted": true, + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE", + "DBSnapshotArn": "arn:aws:rds:us-east-1:123456789012:snapshot:mydbsnapshot", + "IAMDatabaseAuthenticationEnabled": false, + "ProcessorFeatures": [], + "DbiResourceId": "db-AKIAIOSFODNN7EXAMPLE" + } + } + +For more information, see `Creating a DB Snapshot `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-subnet-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-subnet-group.rst new file mode 100644 index 000000000..ccf608c61 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-db-subnet-group.rst @@ -0,0 +1,45 @@ +**To create a DB subnet group** + +The following ``create-db-subnet-group`` example creates a DB subnet group called ``mysubnetgroup`` using existing subnets. :: + + aws rds create-db-subnet-group \ + --db-subnet-group-name mysubnetgroup \ + --db-subnet-group-description "test DB subnet group" \ + --subnet-ids '["subnet-0a1dc4e1a6f123456","subnet-070dd7ecb3aaaaaaa","subnet-00f5b198bc0abcdef"]' + +Output:: + + { + "DBSubnetGroup": { + "DBSubnetGroupName": "mysubnetgroup", + "DBSubnetGroupDescription": "test DB subnet group", + "VpcId": "vpc-0f08e7610a1b2c3d4", + "SubnetGroupStatus": "Complete", + "Subnets": [ + { + "SubnetIdentifier": "subnet-070dd7ecb3aaaaaaa", + "SubnetAvailabilityZone": { + "Name": "us-west-2b" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-00f5b198bc0abcdef", + "SubnetAvailabilityZone": { + "Name": "us-west-2d" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-0a1dc4e1a6f123456", + "SubnetAvailabilityZone": { + "Name": "us-west-2b" + }, + "SubnetStatus": "Active" + } + ], + "DBSubnetGroupArn": "arn:aws:rds:us-west-2:0123456789012:subgrp:mysubnetgroup" + } + } + +For more information, see `Creating a DB Instance in a VPC `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-event-subscription.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-event-subscription.rst new file mode 100644 index 000000000..81dec8a99 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-event-subscription.rst @@ -0,0 +1,28 @@ +**To create an event subscription** + +The following ``create-event-subscription`` example creates a subscription for backup and recovery events for DB instances in the current AWS account. Notifications are sent to an Amazon Simple Notification Service topic, specified by ``--sns-topic-arn``. :: + + aws rds create-event-subscription \ + --subscription-name my-instance-events \ + --source-type db-instance \ + --event-categories '["backup","recovery"]' \ + --sns-topic-arn arn:aws:sns:us-east-1:123456789012:interesting-events + +Output:: + + { + "EventSubscription": { + "Status": "creating", + "CustSubscriptionId": "my-instance-events", + "SubscriptionCreationTime": "Tue Jul 31 23:22:01 UTC 2018", + "EventCategoriesList": [ + "backup", + "recovery" + ], + "SnsTopicArn": "arn:aws:sns:us-east-1:123456789012:interesting-events", + "CustomerAwsId": "123456789012", + "EventSubscriptionArn": "arn:aws:rds:us-east-1:123456789012:es:my-instance-events", + "SourceType": "db-instance", + "Enabled": true + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-global-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-global-cluster.rst new file mode 100644 index 000000000..15c604ea5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-global-cluster.rst @@ -0,0 +1,25 @@ +**To create a global DB cluster** + +The following ``create-global-cluster`` example creates a new Aurora MySQL-compatible global DB cluster. :: + + aws rds create-global-cluster \ + --global-cluster-identifier myglobalcluster \ + --engine aurora-mysql + +Output:: + + { + "GlobalCluster": { + "GlobalClusterIdentifier": "myglobalcluster", + "GlobalClusterResourceId": "cluster-f0e523bfe07aabb", + "GlobalClusterArn": "arn:aws:rds::123456789012:global-cluster:myglobalcluster", + "Status": "available", + "Engine": "aurora-mysql", + "EngineVersion": "5.7.mysql_aurora.2.07.2", + "StorageEncrypted": false, + "DeletionProtection": false, + "GlobalClusterMembers": [] + } + } + +For more information, see `Creating an Aurora global database `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-option-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-option-group.rst new file mode 100644 index 000000000..9217f0ab1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/create-option-group.rst @@ -0,0 +1,23 @@ +**To Create an Amazon RDS option group** + +The following ``create-option-group`` command creates a new Amazon RDS option group for ``Oracle Enterprise Edition`` version ``11.2`, is named ``MyOptionGroup`` and includes a description. :: + + aws rds create-option-group \ + --option-group-name MyOptionGroup \ + --engine-name oracle-ee \ + --major-engine-version 11.2 \ + --option-group-description "Oracle Database Manager Database Control" + +Output:: + + { + "OptionGroup": { + "OptionGroupName": "myoptiongroup", + "OptionGroupDescription": "Oracle Database Manager Database Control", + "EngineName": "oracle-ee", + "MajorEngineVersion": "11.2", + "Options": [], + "AllowsVpcAndNonVpcInstanceMemberships": true, + "OptionGroupArn": "arn:aws:rds:us-west-2:123456789012:og:myoptiongroup" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-blue-green-deployment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-blue-green-deployment.rst new file mode 100644 index 000000000..251978a01 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-blue-green-deployment.rst @@ -0,0 +1,137 @@ +**Example 1: To delete resources in green environment for an RDS for MySQL DB instance** + +The following ``delete-blue-green-deployment`` example deletes the resources in a green environment for an RDS for MySQL DB instance. :: + + aws rds delete-blue-green-deployment \ + --blue-green-deployment-identifier bgd-v53303651eexfake \ + --delete-target + +Output:: + + { + "BlueGreenDeployment": { + "BlueGreenDeploymentIdentifier": "bgd-v53303651eexfake", + "BlueGreenDeploymentName": "bgd-cli-test-instance", + "Source": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance", + "Target": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-green-rkfbpe", + "SwitchoverDetails": [ + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-green-rkfbpe", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-1-green-j382ha", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-2", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-2-green-ejv4ao", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-3", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-3-green-vlpz3t", + "Status": "AVAILABLE" + } + ], + "Tasks": [ + { + "Name": "CREATING_READ_REPLICA_OF_SOURCE", + "Status": "COMPLETED" + }, + { + "Name": "DB_ENGINE_VERSION_UPGRADE", + "Status": "COMPLETED" + }, + { + "Name": "CONFIGURE_BACKUPS", + "Status": "COMPLETED" + }, + { + "Name": "CREATING_TOPOLOGY_OF_SOURCE", + "Status": "COMPLETED" + } + ], + "Status": "DELETING", + "CreateTime": "2022-02-25T21:18:51.183000+00:00", + "DeleteTime": "2022-02-25T22:25:31.331000+00:00" + } + } + +For more information, see `Deleting a blue/green deployment `__ in the *Amazon RDS User Guide*. + +**Example 2: To delete resources in green environment for an Aurora MySQL DB cluster** + +The following ``delete-blue-green-deployment`` example deletes the resources in a green environment for an Aurora MySQL DB cluster. :: + + aws rds delete-blue-green-deployment \ + --blue-green-deployment-identifier bgd-wi89nwzglccsfake \ + --delete-target + +Output:: + + { + "BlueGreenDeployment": { + "BlueGreenDeploymentIdentifier": "bgd-wi89nwzglccsfake", + "BlueGreenDeploymentName": "my-blue-green-deployment", + "Source": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster", + "Target": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster-green-3rnukl", + "SwitchoverDetails": [ + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster-green-3rnukl", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-1-green-gpmaxf", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-2", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-2-green-j2oajq", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-3", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-3-green-mkxies", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-excluded-member-endpoint", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-excluded-member-endpoint-green-4sqjrq", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-reader-endpoint", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-reader-endpoint-green-gwwzlg", + "Status": "AVAILABLE" + } + ], + "Tasks": [ + { + "Name": "CREATING_READ_REPLICA_OF_SOURCE", + "Status": "COMPLETED" + }, + { + "Name": "DB_ENGINE_VERSION_UPGRADE", + "Status": "COMPLETED" + }, + { + "Name": "CREATE_DB_INSTANCES_FOR_CLUSTER", + "Status": "COMPLETED" + }, + { + "Name": "CREATE_CUSTOM_ENDPOINTS", + "Status": "COMPLETED" + } + ], + "Status": "DELETING", + "CreateTime": "2022-02-25T21:12:00.288000+00:00", + "DeleteTime": "2022-02-25T22:29:11.336000+00:00" + } + } + +For more information, see `Deleting a blue/green deployment `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-cluster-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-cluster-endpoint.rst new file mode 100644 index 000000000..c538b79e9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-cluster-endpoint.rst @@ -0,0 +1,27 @@ +**To delete a custom DB cluster endpoint** + +The following ``delete-db-cluster-endpoint`` example deletes the specified custom DB cluster endpoint. :: + + aws rds delete-db-cluster-endpoint \ + --db-cluster-endpoint-identifier mycustomendpoint + +Output:: + + { + "DBClusterEndpointIdentifier": "mycustomendpoint", + "DBClusterIdentifier": "mydbcluster", + "DBClusterEndpointResourceIdentifier": "cluster-endpoint-ANPAJ4AE5446DAEXAMPLE", + "Endpoint": "mycustomendpoint.cluster-custom-cnpexample.us-east-1.rds.amazonaws.com", + "Status": "deleting", + "EndpointType": "CUSTOM", + "CustomEndpointType": "READER", + "StaticMembers": [ + "dbinstance1", + "dbinstance2", + "dbinstance3" + ], + "ExcludedMembers": [], + "DBClusterEndpointArn": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:mycustomendpoint" + } + +For more information, see `Amazon Aurora Connection Management `__ in the *Amazon Aurora User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-cluster-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-cluster-parameter-group.rst new file mode 100644 index 000000000..57d0f1ac2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-cluster-parameter-group.rst @@ -0,0 +1,10 @@ +**To delete a DB cluster parameter group** + +The following ``delete-db-cluster-parameter-group`` example deletes the specified DB cluster parameter group. :: + + aws rds delete-db-cluster-parameter-group \ + --db-cluster-parameter-group-name mydbclusterparametergroup + +This command produces no output. + +For more information, see `Working with DB Parameter Groups and DB Cluster Parameter Groups `__ in the *Amazon Aurora User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-cluster-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-cluster-snapshot.rst new file mode 100644 index 000000000..e16c3ba1f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-cluster-snapshot.rst @@ -0,0 +1,38 @@ +**To delete a DB cluster snapshot** + +The following ``delete-db-cluster-snapshot`` example deletes the specified DB cluster snapshot. :: + + aws rds delete-db-cluster-snapshot \ + --db-cluster-snapshot-identifier mydbclustersnapshot + +Output:: + + { + "DBClusterSnapshot": { + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1e" + ], + "DBClusterSnapshotIdentifier": "mydbclustersnapshot", + "DBClusterIdentifier": "mydbcluster", + "SnapshotCreateTime": "2019-06-18T21:21:00.469Z", + "Engine": "aurora-mysql", + "AllocatedStorage": 0, + "Status": "available", + "Port": 0, + "VpcId": "vpc-6594f31c", + "ClusterCreateTime": "2019-04-15T14:18:42.785Z", + "MasterUsername": "myadmin", + "EngineVersion": "5.7.mysql_aurora.2.04.2", + "LicenseModel": "aurora-mysql", + "SnapshotType": "manual", + "PercentProgress": 100, + "StorageEncrypted": true, + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE", + "DBClusterSnapshotArn": "arn:aws:rds:us-east-1:123456789012:cluster-snapshot:mydbclustersnapshot", + "IAMDatabaseAuthenticationEnabled": false + } + } + +For more information, see `Deleting a Snapshot `__ in the *Amazon Aurora User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-cluster.rst new file mode 100644 index 000000000..f08191f6d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-cluster.rst @@ -0,0 +1,54 @@ +**Example 1: To delete a DB instance in a DB cluster** + +The following ``delete-db-instance`` example deletes the final DB instance in a DB cluster. You can't delete a DB cluster if it contains DB instances that aren't in the **deleting** state. You can't take a final snapshot when deleting a DB instance in a DB cluster. :: + + aws rds delete-db-instance \ + --db-instance-identifier database-3 + +Output:: + + { + "DBInstance": { + "DBInstanceIdentifier": "database-3", + "DBInstanceClass": "db.r4.large", + "Engine": "aurora-postgresql", + "DBInstanceStatus": "deleting", + + ...output omitted... + + } + } + +For more information, see `Deleting a DB Instance in an Aurora DB Cluster `__ in the *Amazon Aurora User Guide*. + +**Example 2: To delete a DB cluster** + +The following ``delete-db-cluster`` example deletes the DB cluster named ``mycluster`` and takes a final snapshot named ``mycluster-final-snapshot``. The status of the DB cluster is **available** while the snapshot is being taken. To follow the progress of the deletion, use the ``describe-db-clusters`` CLI command. :: + + aws rds delete-db-cluster \ + --db-cluster-identifier mycluster \ + --no-skip-final-snapshot \ + --final-db-snapshot-identifier mycluster-final-snapshot + +Output:: + + { + "DBCluster": { + "AllocatedStorage": 20, + "AvailabilityZones": [ + "eu-central-1b", + "eu-central-1c", + "eu-central-1a" + ], + "BackupRetentionPeriod": 7, + "DBClusterIdentifier": "mycluster", + "DBClusterParameterGroup": "default.aurora-postgresql10", + "DBSubnetGroup": "default-vpc-aa11bb22", + "Status": "available", + + ...output omitted... + + } + } + +For more information, see `Aurora Clusters with a Single DB Instance `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-instance-automated-backup.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-instance-automated-backup.rst new file mode 100644 index 000000000..b5fafe366 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-instance-automated-backup.rst @@ -0,0 +1,36 @@ +**To delete a replicated automated backup from a Region** + +The following ``delete-db-instance-automated-backup`` example deletes the automated backup with the specified Amazon Resource Name (ARN). :: + + aws rds delete-db-instance-automated-backup \ + --db-instance-automated-backups-arn "arn:aws:rds:us-west-2:123456789012:auto-backup:ab-jkib2gfq5rv7replzadausbrktni2bn4example" + +Output:: + + { + "DBInstanceAutomatedBackup": { + "DBInstanceArn": "arn:aws:rds:us-east-1:123456789012:db:new-orcl-db", + "DbiResourceId": "db-JKIB2GFQ5RV7REPLZA4EXAMPLE", + "Region": "us-east-1", + "DBInstanceIdentifier": "new-orcl-db", + "RestoreWindow": {}, + "AllocatedStorage": 20, + "Status": "deleting", + "Port": 1521, + "AvailabilityZone": "us-east-1b", + "VpcId": "vpc-########", + "InstanceCreateTime": "2020-12-04T15:28:31Z", + "MasterUsername": "admin", + "Engine": "oracle-se2", + "EngineVersion": "12.1.0.2.v21", + "LicenseModel": "bring-your-own-license", + "OptionGroupName": "default:oracle-se2-12-1", + "Encrypted": false, + "StorageType": "gp2", + "IAMDatabaseAuthenticationEnabled": false, + "BackupRetentionPeriod": 7, + "DBInstanceAutomatedBackupsArn": "arn:aws:rds:us-west-2:123456789012:auto-backup:ab-jkib2gfq5rv7replzadausbrktni2bn4example" + } + } + +For more information, see `Deleting replicated backups `__ in the *Amazon RDS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-instance.rst new file mode 100644 index 000000000..c5f2f2b16 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-instance.rst @@ -0,0 +1,17 @@ +**To delete a DB instance** + +The following ``delete-db-instance`` example deletes the specified DB instance after creating a final DB snapshot named ``test-instance-final-snap``. :: + + aws rds delete-db-instance \ + --db-instance-identifier test-instance \ + --final-db-snapshot-identifier test-instance-final-snap + +Output:: + + { + "DBInstance": { + "DBInstanceIdentifier": "test-instance", + "DBInstanceStatus": "deleting", + ...some output truncated... + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-parameter-group.rst new file mode 100644 index 000000000..2037be52b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-parameter-group.rst @@ -0,0 +1,10 @@ +**To delete a DB parameter group** + +The following ``command`` example deletes a DB parameter group. :: + + aws rds delete-db-parameter-group \ + --db-parameter-group-name mydbparametergroup + +This command produces no output. + +For more information, see `Working with DB Parameter Groups `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-proxy-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-proxy-endpoint.rst new file mode 100644 index 000000000..e7ad99631 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-proxy-endpoint.rst @@ -0,0 +1,33 @@ +**To delete a DB proxy endpoint for an RDS database** + +The following ``delete-db-proxy-endpoint`` example deletes a DB proxy endpoint for the target database. :: + + aws rds delete-db-proxy-endpoint \ + --db-proxy-endpoint-name proxyEP1 + +Output:: + + { + "DBProxyEndpoint": + { + "DBProxyEndpointName": "proxyEP1", + "DBProxyEndpointArn": "arn:aws:rds:us-east-1:123456789012:db-proxy-endpoint:prx-endpoint-0123a01b12345c0ab", + "DBProxyName": "proxyExample", + "Status": "deleting", + "VpcId": "vpc-1234567", + "VpcSecurityGroupIds": [ + "sg-1234", + "sg-5678" + ], + "VpcSubnetIds": [ + "subnetgroup1", + "subnetgroup2" + ], + "Endpoint": "proxyEP1.endpoint.proxy-ab0cd1efghij.us-east-1.rds.amazonaws.com", + "CreatedDate": "2023-04-13T01:49:38.568000+00:00", + "TargetRole": "READ_ONLY", + "IsDefault": false + } + } + +For more information, see `Deleting a proxy endpoint `__ in the *Amazon RDS User Guide* and `Deleting a proxy endpoint `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-proxy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-proxy.rst new file mode 100644 index 000000000..04d72bf41 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-proxy.rst @@ -0,0 +1,43 @@ +**To delete a DB proxy for an RDS database** + +The following ``delete-db-proxy`` example deletes a DB proxy. :: + + aws rds delete-db-proxy \ + --db-proxy-name proxyExample + +Output:: + + { + "DBProxy": + { + "DBProxyName": "proxyExample", + "DBProxyArn": "arn:aws:rds:us-east-1:123456789012:db-proxy:prx-0123a01b12345c0ab", + "Status": "deleting", + "EngineFamily": "PostgreSQL", + "VpcId": "vpc-1234567", + "VpcSecurityGroupIds": [ + "sg-1234", + "sg-5678" + ], + "VpcSubnetIds": [ + "subnetgroup1", + "subnetgroup2" + ], + "Auth": "[ + { + "Description": "proxydescription`" + "AuthScheme": "SECRETS", + "SecretArn": "arn:aws:secretsmanager:us-west-2:123456789123:secret:proxysecret1-Abcd1e", + "IAMAuth": "DISABLED" + } ], + "RoleArn": "arn:aws:iam::12345678912:role/ProxyPostgreSQLRole", + "Endpoint": "proxyExample.proxy-ab0cd1efghij.us-east-1.rds.amazonaws.com", + "RequireTLS": false, + "IdleClientTimeout": 1800, + "DebuggingLogging": false, + "CreatedDate": "2023-04-05T16:09:33.452000+00:00", + "UpdatedDate": "2023-04-13T01:49:38.568000+00:00" + } + } + +For more information, see `Deleting an RDS Proxy `__ in the *Amazon RDS User Guide* and `Deleting an RDS Proxy `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-security-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-security-group.rst new file mode 100644 index 000000000..77c451a6a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-security-group.rst @@ -0,0 +1,10 @@ +**To delete a DB security group** + +The following ``delete-db-security-group`` example deletes a DB security group named ``mysecuritygroup``. :: + + aws rds delete-db-security-group \ + --db-security-group-name mysecuritygroup + +This command produces no output. + +For more information, see `Working with DB security groups (EC2-Classic platform) `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-shard-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-shard-group.rst new file mode 100644 index 000000000..dd6f806ec --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-shard-group.rst @@ -0,0 +1,33 @@ +**Example 1: To delete a DB shard group unsuccessfully** + +The following ``delete-db-shard-group`` example shows the error that occurs when you try to delete a DB shard group before deleting all of your databases and schemas. :: + + aws rds delete-db-shard-group \ + --db-shard-group-identifier limitless-test-shard-grp + +Output:: + + An error occurred (InvalidDBShardGroupState) when calling the DeleteDBShardGroup operation: Unable to delete the DB shard group limitless-test-db-shard-group. + Delete all of your Limitless Database databases and schemas, then try again. + +**Example 2: To delete a DB shard group successfully** + +The following ``delete-db-shard-group`` example deletes a DB shard group after you've deleted all of your databases and schemas, including the ``public`` schema. :: + + aws rds delete-db-shard-group \ + --db-shard-group-identifier limitless-test-shard-grp + +Output:: + + { + "DBShardGroupResourceId": "shardgroup-7bb446329da94788b3f957746example", + "DBShardGroupIdentifier": "limitless-test-shard-grp", + "DBClusterIdentifier": "limitless-test-cluster", + "MaxACU": 768.0, + "ComputeRedundancy": 0, + "Status": "deleting", + "PubliclyAccessible": true, + "Endpoint": "limitless-test-cluster.limitless-cekycexample.us-east-2.rds.amazonaws.com" + } + +For more information, see `Deleting Aurora DB clusters and DB instances `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-snapshot.rst new file mode 100644 index 000000000..28dea86e1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-snapshot.rst @@ -0,0 +1,39 @@ +**To delete a DB snapshot** + +The following ``delete-db-snapshot`` example deletes the specified DB snapshot. :: + + aws rds delete-db-snapshot \ + --db-snapshot-identifier mydbsnapshot + +Output:: + + { + "DBSnapshot": { + "DBSnapshotIdentifier": "mydbsnapshot", + "DBInstanceIdentifier": "database-mysql", + "SnapshotCreateTime": "2019-06-18T22:08:40.702Z", + "Engine": "mysql", + "AllocatedStorage": 100, + "Status": "deleted", + "Port": 3306, + "AvailabilityZone": "us-east-1b", + "VpcId": "vpc-6594f31c", + "InstanceCreateTime": "2019-04-30T15:45:53.663Z", + "MasterUsername": "admin", + "EngineVersion": "5.6.40", + "LicenseModel": "general-public-license", + "SnapshotType": "manual", + "Iops": 1000, + "OptionGroupName": "default:mysql-5-6", + "PercentProgress": 100, + "StorageType": "io1", + "Encrypted": true, + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE", + "DBSnapshotArn": "arn:aws:rds:us-east-1:123456789012:snapshot:mydbsnapshot", + "IAMDatabaseAuthenticationEnabled": false, + "ProcessorFeatures": [], + "DbiResourceId": "db-AKIAIOSFODNN7EXAMPLE" + } + } + +For more information, see `Deleting a Snapshot `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-subnet-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-subnet-group.rst new file mode 100644 index 000000000..be9f348a9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-db-subnet-group.rst @@ -0,0 +1,9 @@ +**To delete a DB subnet group** + +The following ``delete-db-subnet-group`` example deletes the DB subnet group called ``mysubnetgroup``. :: + + aws rds delete-db-subnet-group --db-subnet-group-name mysubnetgroup + +This command produces no output. + +For more information, see `Working with a DB Instance in a VPC `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-event-subscription.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-event-subscription.rst new file mode 100644 index 000000000..624cc8bcc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-event-subscription.rst @@ -0,0 +1,27 @@ +**To delete an event subscription** + +The following ``delete-event-subscription`` example deletes the specified event subscription. :: + + aws rds delete-event-subscription --subscription-name my-instance-events + +Output:: + + { + "EventSubscription": { + "EventSubscriptionArn": "arn:aws:rds:us-east-1:123456789012:es:my-instance-events", + "CustomerAwsId": "123456789012", + "Enabled": false, + "SourceIdsList": [ + "test-instance" + ], + "SourceType": "db-instance", + "EventCategoriesList": [ + "backup", + "recovery" + ], + "SubscriptionCreationTime": "2018-07-31 23:22:01.893", + "CustSubscriptionId": "my-instance-events", + "SnsTopicArn": "arn:aws:sns:us-east-1:123456789012:interesting-events", + "Status": "deleting" + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-global-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-global-cluster.rst new file mode 100644 index 000000000..522313199 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-global-cluster.rst @@ -0,0 +1,24 @@ +**To delete a global DB cluster** + +The following ``delete-global-cluster`` example deletes an Aurora MySQL-compatible global DB cluster. The output shows the cluster that you're deleting, but subsequent ``describe-global-clusters`` commands don't list that DB cluster. :: + + aws rds delete-global-cluster \ + --global-cluster-identifier myglobalcluster + +Output:: + + { + "GlobalCluster": { + "GlobalClusterIdentifier": "myglobalcluster", + "GlobalClusterResourceId": "cluster-f0e523bfe07aabb", + "GlobalClusterArn": "arn:aws:rds::123456789012:global-cluster:myglobalcluster", + "Status": "available", + "Engine": "aurora-mysql", + "EngineVersion": "5.7.mysql_aurora.2.07.2", + "StorageEncrypted": false, + "DeletionProtection": false, + "GlobalClusterMembers": [] + } + } + +For more information, see `Deleting an Aurora global database `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-option-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-option-group.rst new file mode 100644 index 000000000..cad3f0cba --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/delete-option-group.rst @@ -0,0 +1,10 @@ +**To delete an option group** + +The following ``delete-option-group`` example deletes the specified option group. :: + + aws rds delete-option-group \ + --option-group-name myoptiongroup + +This command produces no output. + +For more information, see `Deleting an Option Group `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/deregister-db-proxy-targets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/deregister-db-proxy-targets.rst new file mode 100644 index 000000000..f345d0671 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/deregister-db-proxy-targets.rst @@ -0,0 +1,11 @@ +**To deregister a DB proxy target from database target group** + +The following ``deregister-db-proxy-targets`` example removes the association between the proxy ``proxyExample`` and its target. :: + + aws rds deregister-db-proxy-targets \ + --db-proxy-name proxyExample \ + --db-instance-identifiers database-1 + +This command produces no output. + +For more information, see `Deleting an RDS Proxy `__ in the *Amazon RDS User Guide* and `Deleting an RDS Proxy `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-account-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-account-attributes.rst new file mode 100644 index 000000000..cd105cdad --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-account-attributes.rst @@ -0,0 +1,87 @@ +**To describe account attributes** + +The following ``describe-account-attributes`` example retrieves the attributes for the current AWS account. :: + + aws rds describe-account-attributes + +Output:: + + { + "AccountQuotas": [ + { + "Max": 40, + "Used": 4, + "AccountQuotaName": "DBInstances" + }, + { + "Max": 40, + "Used": 0, + "AccountQuotaName": "ReservedDBInstances" + }, + { + "Max": 100000, + "Used": 40, + "AccountQuotaName": "AllocatedStorage" + }, + { + "Max": 25, + "Used": 0, + "AccountQuotaName": "DBSecurityGroups" + }, + { + "Max": 20, + "Used": 0, + "AccountQuotaName": "AuthorizationsPerDBSecurityGroup" + }, + { + "Max": 50, + "Used": 1, + "AccountQuotaName": "DBParameterGroups" + }, + { + "Max": 100, + "Used": 3, + "AccountQuotaName": "ManualSnapshots" + }, + { + "Max": 20, + "Used": 0, + "AccountQuotaName": "EventSubscriptions" + }, + { + "Max": 50, + "Used": 1, + "AccountQuotaName": "DBSubnetGroups" + }, + { + "Max": 20, + "Used": 1, + "AccountQuotaName": "OptionGroups" + }, + { + "Max": 20, + "Used": 6, + "AccountQuotaName": "SubnetsPerDBSubnetGroup" + }, + { + "Max": 5, + "Used": 0, + "AccountQuotaName": "ReadReplicasPerMaster" + }, + { + "Max": 40, + "Used": 1, + "AccountQuotaName": "DBClusters" + }, + { + "Max": 50, + "Used": 0, + "AccountQuotaName": "DBClusterParameterGroups" + }, + { + "Max": 5, + "Used": 0, + "AccountQuotaName": "DBClusterRoles" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-blue-green-deployments.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-blue-green-deployments.rst new file mode 100644 index 000000000..3ba673cbe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-blue-green-deployments.rst @@ -0,0 +1,333 @@ +**Example 1: To describe a blue/green deployment of an RDS DB instance after creation completes** + +The following ``describe-blue-green-deployment`` example retrieves the details of a blue/green deployment after creation completes. :: + + aws rds describe-blue-green-deployments \ + --blue-green-deployment-identifier bgd-v53303651eexfake + +Output:: + + { + "BlueGreenDeployments": [ + { + "BlueGreenDeploymentIdentifier": "bgd-v53303651eexfake", + "BlueGreenDeploymentName": "bgd-cli-test-instance", + "Source": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance", + "Target": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-green-rkfbpe", + "SwitchoverDetails": [ + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-green-rkfbpe", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-1-green-j382ha", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-2", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-2-green-ejv4ao", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-3", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-3-green-vlpz3t", + "Status": "AVAILABLE" + } + ], + "Tasks": [ + { + "Name": "CREATING_READ_REPLICA_OF_SOURCE", + "Status": "COMPLETED" + }, + { + "Name": "DB_ENGINE_VERSION_UPGRADE", + "Status": "COMPLETED" + }, + { + "Name": "CONFIGURE_BACKUPS", + "Status": "COMPLETED" + }, + { + "Name": "CREATING_TOPOLOGY_OF_SOURCE", + "Status": "COMPLETED" + } + ], + "Status": "AVAILABLE", + "CreateTime": "2022-02-25T21:18:51.183000+00:00" + } + ] + } + +For more information, see `Viewing a blue/green deployment `__ in the *Amazon RDS User Guide*. + +**Example 2: To describe a blue/green deployment for an Aurora MySQL DB cluster** + +The following ``describe-blue-green-deployment`` example retrieves the details of a blue/green deployment. :: + + aws rds describe-blue-green-deployments \ + --blue-green-deployment-identifier bgd-wi89nwzglccsfake + +Output:: + + { + "BlueGreenDeployments": [ + { + "BlueGreenDeploymentIdentifier": "bgd-wi89nwzglccsfake", + "BlueGreenDeploymentName": "my-blue-green-deployment", + "Source": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster", + "Target": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster-green-3rnukl", + "SwitchoverDetails": [ + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster-green-3rnukl", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-1-green-gpmaxf", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-2", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-2-green-j2oajq", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-3", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-3-green-mkxies", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-excluded-member-endpoint", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-excluded-member-endpoint-green-4sqjrq", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-reader-endpoint", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-reader-endpoint-green-gwwzlg", + "Status": "AVAILABLE" + } + ], + "Tasks": [ + { + "Name": "CREATING_READ_REPLICA_OF_SOURCE", + "Status": "COMPLETED" + }, + { + "Name": "DB_ENGINE_VERSION_UPGRADE", + "Status": "COMPLETED" + }, + { + "Name": "CREATE_DB_INSTANCES_FOR_CLUSTER", + "Status": "COMPLETED" + }, + { + "Name": "CREATE_CUSTOM_ENDPOINTS", + "Status": "COMPLETED" + } + ], + "Status": "AVAILABLE", + "CreateTime": "2022-02-25T21:12:00.288000+00:00" + } + ] + } + +For more information, see `Viewing a blue/green deployment `__ in the *Amazon Aurora User Guide*. + + +**Example 3: To describe a blue/green deployment for an Aurora MySQL cluster after switchover** + +The following ``describe-blue-green-deployment`` example retrieves the details about a blue/green deployment after the green environment is promoted to be the production environment. :: + + aws rds describe-blue-green-deployments \ + --blue-green-deployment-identifier bgd-wi89nwzglccsfake + +Output:: + + { + "BlueGreenDeployments": [ + { + "BlueGreenDeploymentIdentifier": "bgd-wi89nwzglccsfake", + "BlueGreenDeploymentName": "my-blue-green-deployment", + "Source": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster-old1", + "Target": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster", + "SwitchoverDetails": [ + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster-old1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster", + "Status": "SWITCHOVER_COMPLETED" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-1-old1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-1", + "Status": "SWITCHOVER_COMPLETED" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-2-old1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-2", + "Status": "SWITCHOVER_COMPLETED" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-3-old1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-3", + "Status": "SWITCHOVER_COMPLETED" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-excluded-member-endpoint-old1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-excluded-member-endpoint", + "Status": "SWITCHOVER_COMPLETED" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-reader-endpoint-old1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-reader-endpoint", + "Status": "SWITCHOVER_COMPLETED" + } + ], + "Tasks": [ + { + "Name": "CREATING_READ_REPLICA_OF_SOURCE", + "Status": "COMPLETED" + }, + { + "Name": "DB_ENGINE_VERSION_UPGRADE", + "Status": "COMPLETED" + }, + { + "Name": "CREATE_DB_INSTANCES_FOR_CLUSTER", + "Status": "COMPLETED" + }, + { + "Name": "CREATE_CUSTOM_ENDPOINTS", + "Status": "COMPLETED" + } + ], + "Status": "SWITCHOVER_COMPLETED", + "CreateTime": "2022-02-25T22:38:49.522000+00:00" + } + ] + } + +For more information, see `Viewing a blue/green deployment `__ in the *Amazon Aurora User Guide*. + +**Example 4: To describe a combined blue/green deployment** + +The following ``describe-blue-green-deployment`` example retrieves the details of a combined blue/green deployment. :: + + aws rds describe-blue-green-deployments + +Output:: + + { + "BlueGreenDeployments": [ + { + "BlueGreenDeploymentIdentifier": "bgd-wi89nwzgfakelccs", + "BlueGreenDeploymentName": "my-blue-green-deployment", + "Source": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster", + "Target": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster-green-3rnukl", + "SwitchoverDetails": [ + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster-green-3rnukl", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-1-green-gpmaxf", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-2", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-2-green-j2oajq", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-3", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-3-green-mkxies", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-excluded-member-endpoint", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-excluded-member-endpoint-green-4sqjrq", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-reader-endpoint", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-reader-endpoint-green-gwwzlg", + "Status": "AVAILABLE" + } + ], + "Tasks": [ + { + "Name": "CREATING_READ_REPLICA_OF_SOURCE", + "Status": "COMPLETED" + }, + { + "Name": "DB_ENGINE_VERSION_UPGRADE", + "Status": "COMPLETED" + }, + { + "Name": "CREATE_DB_INSTANCES_FOR_CLUSTER", + "Status": "COMPLETED" + }, + { + "Name": "CREATE_CUSTOM_ENDPOINTS", + "Status": "COMPLETED" + } + ], + "Status": "AVAILABLE", + "CreateTime": "2022-02-25T21:12:00.288000+00:00" + }, + { + "BlueGreenDeploymentIdentifier": "bgd-v5330365fake1eex", + "BlueGreenDeploymentName": "bgd-cli-test-instance", + "Source": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-old1", + "Target": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance", + "SwitchoverDetails": [ + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-old1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance", + "Status": "SWITCHOVER_COMPLETED" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-1-old1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-1", + "Status": "SWITCHOVER_COMPLETED" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-2-old1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-2", + "Status": "SWITCHOVER_COMPLETED" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-3-old1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-3", + "Status": "SWITCHOVER_COMPLETED" + } + ], + "Tasks": [ + { + "Name": "CREATING_READ_REPLICA_OF_SOURCE", + "Status": "COMPLETED" + }, + { + "Name": "DB_ENGINE_VERSION_UPGRADE", + "Status": "COMPLETED" + }, + { + "Name": "CONFIGURE_BACKUPS", + "Status": "COMPLETED" + }, + { + "Name": "CREATING_TOPOLOGY_OF_SOURCE", + "Status": "COMPLETED" + } + ], + "Status": "SWITCHOVER_COMPLETED", + "CreateTime": "2022-02-25T22:33:22.225000+00:00" + } + ] + } + +For more information, see `Viewing a blue/green deployment `__ in the *Amazon RDS User Guide* and `Viewing a blue/green deployment `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-certificates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-certificates.rst new file mode 100644 index 000000000..087d5ba64 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-certificates.rst @@ -0,0 +1,52 @@ +**To describe certificates** + +The following ``describe-certificates`` example retrieves the details of the certificate associated with the user's default region. :: + + aws rds describe-certificates + +Output:: + + { + "Certificates": [ + { + "CertificateIdentifier": "rds-ca-ecc384-g1", + "CertificateType": "CA", + "Thumbprint": "2ee3dcc06e50192559b13929e73484354f23387d", + "ValidFrom": "2021-05-24T22:06:59+00:00", + "ValidTill": "2121-05-24T23:06:59+00:00", + "CertificateArn": "arn:aws:rds:us-west-2::cert:rds-ca-ecc384-g1", + "CustomerOverride": false + }, + { + "CertificateIdentifier": "rds-ca-rsa4096-g1", + "CertificateType": "CA", + "Thumbprint": "19da4f2af579a8ae1f6a0fa77aa5befd874b4cab", + "ValidFrom": "2021-05-24T22:03:20+00:00", + "ValidTill": "2121-05-24T23:03:20+00:00", + "CertificateArn": "arn:aws:rds:us-west-2::cert:rds-ca-rsa4096-g1", + "CustomerOverride": false + }, + { + "CertificateIdentifier": "rds-ca-rsa2048-g1", + "CertificateType": "CA", + "Thumbprint": "7c40cb42714b6fdb2b296f9bbd0e8bb364436a76", + "ValidFrom": "2021-05-24T21:59:00+00:00", + "ValidTill": "2061-05-24T22:59:00+00:00", + "CertificateArn": "arn:aws:rds:us-west-2::cert:rds-ca-rsa2048-g1", + "CustomerOverride": true, + "CustomerOverrideValidTill": "2061-05-24T22:59:00+00:00" + }, + { + "CertificateIdentifier": "rds-ca-2019", + "CertificateType": "CA", + "Thumbprint": "d40ddb29e3750dffa671c3140bbf5f478d1c8096", + "ValidFrom": "2019-08-22T17:08:50+00:00", + "ValidTill": "2024-08-22T17:08:50+00:00", + "CertificateArn": "arn:aws:rds:us-west-2::cert:rds-ca-2019", + "CustomerOverride": false + } + ], + "DefaultCertificateForNewLaunches": "rds-ca-rsa2048-g1" + } + +For more information, see `Using SSL/TLS to encrypt a connection to a DB instance `__ in the *Amazon RDS User Guide* and `Using SSL/TLS to encrypt a connection to a DB cluster `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-cluster-backtracks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-cluster-backtracks.rst new file mode 100644 index 000000000..3e609ea85 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-cluster-backtracks.rst @@ -0,0 +1,31 @@ +**To describe backtracks for a DB cluster** + +The following ``describe-db-cluster-backtracks`` example retrieves details about the specified DB cluster. :: + + aws rds describe-db-cluster-backtracks \ + --db-cluster-identifier mydbcluster + +Output:: + + { + "DBClusterBacktracks": [ + { + "DBClusterIdentifier": "mydbcluster", + "BacktrackIdentifier": "2f5f5294-0dd2-44c9-9f50-EXAMPLE", + "BacktrackTo": "2021-02-12T04:59:22Z", + "BacktrackedFrom": "2021-02-12T14:37:31.640Z", + "BacktrackRequestCreationTime": "2021-02-12T14:36:18.819Z", + "Status": "COMPLETED" + }, + { + "DBClusterIdentifier": "mydbcluster", + "BacktrackIdentifier": "3c7a6421-af2a-4ea3-ae95-EXAMPLE", + "BacktrackTo": "2021-02-11T22:53:46Z", + "BacktrackedFrom": "2021-02-12T00:09:27.006Z", + "BacktrackRequestCreationTime": "2021-02-12T00:07:53.487Z", + "Status": "COMPLETED" + } + ] + } + +For more information, see `Backtracking an Aurora DB cluster `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-cluster-endpoints.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-cluster-endpoints.rst new file mode 100644 index 000000000..9c0635bff --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-cluster-endpoints.rst @@ -0,0 +1,58 @@ +**Example 1: To describe DB cluster endpoints** + +The following ``describe-db-cluster-endpoints`` example retrieves details for your DB cluster endpoints. The most common kinds of Aurora clusters have two endpoints. One endpoint has type ``WRITER``. You can use this endpoint for all SQL statements. The other endpoint has type ``READER``. You can use this endpoint only for SELECT and other read-only SQL statements. :: + + aws rds describe-db-cluster-endpoints + +Output:: + + { + "DBClusterEndpoints": [ + { + "DBClusterIdentifier": "my-database-1", + "Endpoint": "my-database-1.cluster-cnpexample.us-east-1.rds.amazonaws.com", + "Status": "creating", + "EndpointType": "WRITER" + }, + { + "DBClusterIdentifier": "my-database-1", + "Endpoint": "my-database-1.cluster-ro-cnpexample.us-east-1.rds.amazonaws.com", + "Status": "creating", + "EndpointType": "READER" + }, + { + "DBClusterIdentifier": "mydbcluster", + "Endpoint": "mydbcluster.cluster-cnpexamle.us-east-1.rds.amazonaws.com", + "Status": "available", + "EndpointType": "WRITER" + }, + { + "DBClusterIdentifier": "mydbcluster", + "Endpoint": "mydbcluster.cluster-ro-cnpexample.us-east-1.rds.amazonaws.com", + "Status": "available", + "EndpointType": "READER" + } + ] + } + +**Example 2: To describe DB cluster endpoints of a single DB cluster** + +The following ``describe-db-cluster-endpoints`` example retrieves details for the DB cluster endpoints of a single specified DB cluster. Aurora Serverless clusters have only a single endpoint with a type of ``WRITER``. :: + + aws rds describe-db-cluster-endpoints \ + --db-cluster-identifier serverless-cluster + +Output:: + + { + "DBClusterEndpoints": [ + { + "Status": "available", + "Endpoint": "serverless-cluster.cluster-cnpexample.us-east-1.rds.amazonaws.com", + "DBClusterIdentifier": "serverless-cluster", + "EndpointType": "WRITER" + } + ] + } + +For more information, see `Amazon Aurora Connection Management `__ in the *Amazon Aurora User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-cluster-parameter-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-cluster-parameter-groups.rst new file mode 100644 index 000000000..449d024e4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-cluster-parameter-groups.rst @@ -0,0 +1,44 @@ +**To describe DB cluster parameter groups** + +The following ``describe-db-cluster-parameter-groups`` example retrieves details for your DB cluster parameter groups. :: + + aws rds describe-db-cluster-parameter-groups + +Output:: + + { + "DBClusterParameterGroups": [ + { + "DBClusterParameterGroupName": "default.aurora-mysql5.7", + "DBParameterGroupFamily": "aurora-mysql5.7", + "Description": "Default cluster parameter group for aurora-mysql5.7", + "DBClusterParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:cluster-pg:default.aurora-mysql5.7" + }, + { + "DBClusterParameterGroupName": "default.aurora-postgresql9.6", + "DBParameterGroupFamily": "aurora-postgresql9.6", + "Description": "Default cluster parameter group for aurora-postgresql9.6", + "DBClusterParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:cluster-pg:default.aurora-postgresql9.6" + }, + { + "DBClusterParameterGroupName": "default.aurora5.6", + "DBParameterGroupFamily": "aurora5.6", + "Description": "Default cluster parameter group for aurora5.6", + "DBClusterParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:cluster-pg:default.aurora5.6" + }, + { + "DBClusterParameterGroupName": "mydbclusterpg", + "DBParameterGroupFamily": "aurora-mysql5.7", + "Description": "My DB cluster parameter group", + "DBClusterParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:cluster-pg:mydbclusterpg" + }, + { + "DBClusterParameterGroupName": "mydbclusterpgcopy", + "DBParameterGroupFamily": "aurora-mysql5.7", + "Description": "Copy of mydbclusterpg parameter group", + "DBClusterParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:cluster-pg:mydbclusterpgcopy" + } + ] + } + +For more information, see `Working with DB Parameter Groups and DB Cluster Parameter Groups `__ in the *Amazon Aurora User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-cluster-parameters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-cluster-parameters.rst new file mode 100644 index 000000000..beb1e12d3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-cluster-parameters.rst @@ -0,0 +1,141 @@ +**Example 1: To describe the parameters in a DB cluster parameter group** + +The following ``describe-db-cluster-parameters`` example retrieves details about the parameters in a DB cluster parameter group. :: + + aws rds describe-db-cluster-parameters \ + --db-cluster-parameter-group-name mydbclusterpg + +Output:: + + { + "Parameters": [ + { + "ParameterName": "allow-suspicious-udfs", + "Description": "Controls whether user-defined functions that have only an xxx symbol for the main function can be loaded", + "Source": "engine-default", + "ApplyType": "static", + "DataType": "boolean", + "AllowedValues": "0,1", + "IsModifiable": false, + "ApplyMethod": "pending-reboot", + "SupportedEngineModes": [ + "provisioned" + ] + }, + { + "ParameterName": "aurora_lab_mode", + "ParameterValue": "0", + "Description": "Enables new features in the Aurora engine.", + "Source": "engine-default", + "ApplyType": "static", + "DataType": "boolean", + "AllowedValues": "0,1", + "IsModifiable": true, + "ApplyMethod": "pending-reboot", + "SupportedEngineModes": [ + "provisioned" + ] + }, + ...some output truncated... + ] + } + +**Example 2: To list only the parameter names in a DB cluster parameter group** + +The following ``describe-db-cluster-parameters`` example retrieves only the names of the parameters in a DB cluster parameter group. :: + + aws rds describe-db-cluster-parameters \ + --db-cluster-parameter-group-name default.aurora-mysql5.7 \ + --query 'Parameters[].{ParameterName:ParameterName}' + +Output:: + + [ + { + "ParameterName": "allow-suspicious-udfs" + }, + { + "ParameterName": "aurora_binlog_read_buffer_size" + }, + { + "ParameterName": "aurora_binlog_replication_max_yield_seconds" + }, + { + "ParameterName": "aurora_binlog_use_large_read_buffer" + }, + { + "ParameterName": "aurora_lab_mode" + }, + + ...some output truncated... + } + ] + +**Example 3: To describe only the modifiable parameters in a DB cluster parameter group** + +The following ``describe-db-cluster-parameters`` example retrieves the names of only the parameters that you can modify in a DB cluster parameter group. :: + + aws rds describe-db-cluster-parameters \ + --db-cluster-parameter-group-name default.aurora-mysql5.7 \ + --query 'Parameters[].{ParameterName:ParameterName,IsModifiable:IsModifiable} | [?IsModifiable == `true`]' + +Output:: + + [ + { + "ParameterName": "aurora_binlog_read_buffer_size", + "IsModifiable": true + }, + { + "ParameterName": "aurora_binlog_replication_max_yield_seconds", + "IsModifiable": true + }, + { + "ParameterName": "aurora_binlog_use_large_read_buffer", + "IsModifiable": true + }, + { + "ParameterName": "aurora_lab_mode", + "IsModifiable": true + }, + + ...some output truncated... + } + ] + +**Example 4: To describe only the modifiable Boolean parameters in a DB cluster parameter group** + +The following ``describe-db-cluster-parameters`` example retrieves the names of only the parameters that you can modify in a DB cluster parameter group and that have a Boolean data type. :: + + aws rds describe-db-cluster-parameters \ + --db-cluster-parameter-group-name default.aurora-mysql5.7 \ + --query 'Parameters[].{ParameterName:ParameterName,DataType:DataType,IsModifiable:IsModifiable} | [?DataType == `boolean`] | [?IsModifiable == `true`]' + +Output:: + + [ + { + "DataType": "boolean", + "ParameterName": "aurora_binlog_use_large_read_buffer", + "IsModifiable": true + }, + { + "DataType": "boolean", + "ParameterName": "aurora_lab_mode", + "IsModifiable": true + }, + { + "DataType": "boolean", + "ParameterName": "autocommit", + "IsModifiable": true + }, + { + "DataType": "boolean", + "ParameterName": "automatic_sp_privileges", + "IsModifiable": true + }, + ...some output truncated... + } + ] + +For more information, see `Working with DB Parameter Groups and DB Cluster Parameter Groups `__ in the *Amazon Aurora User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-cluster-snapshot-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-cluster-snapshot-attributes.rst new file mode 100644 index 000000000..83a5c532b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-cluster-snapshot-attributes.rst @@ -0,0 +1,24 @@ +**To describe the attribute names and values for a DB cluster snapshot** + +The following ``describe-db-cluster-snapshot-attributes`` example retrieves details of the attribute names and values for the specified DB cluster snapshot. :: + + aws rds describe-db-cluster-snapshot-attributes \ + --db-cluster-snapshot-identifier myclustersnapshot + +Output:: + + { + "DBClusterSnapshotAttributesResult": { + "DBClusterSnapshotIdentifier": "myclustersnapshot", + "DBClusterSnapshotAttributes": [ + { + "AttributeName": "restore", + "AttributeValues": [ + "123456789012" + ] + } + ] + } + } + +For more information, see `Sharing a DB Cluster Snapshot `__ in the *Amazon Aurora User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-cluster-snapshots.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-cluster-snapshots.rst new file mode 100644 index 000000000..00850b7b4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-cluster-snapshots.rst @@ -0,0 +1,65 @@ +**To describe a DB cluster snapshot for a DB cluster** + +The following ``describe-db-cluster-snapshots`` example retrieves the details for the DB cluster snapshots for the specified DB cluster. :: + + aws rds describe-db-cluster-snapshots \ + --db-cluster-identifier mydbcluster + +Output:: + + { + "DBClusterSnapshots": [ + { + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1e" + ], + "DBClusterSnapshotIdentifier": "myclustersnapshotcopy", + "DBClusterIdentifier": "mydbcluster", + "SnapshotCreateTime": "2019-06-04T09:16:42.649Z", + "Engine": "aurora-mysql", + "AllocatedStorage": 0, + "Status": "available", + "Port": 0, + "VpcId": "vpc-6594f31c", + "ClusterCreateTime": "2019-04-15T14:18:42.785Z", + "MasterUsername": "myadmin", + "EngineVersion": "5.7.mysql_aurora.2.04.2", + "LicenseModel": "aurora-mysql", + "SnapshotType": "manual", + "PercentProgress": 100, + "StorageEncrypted": true, + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE", + "DBClusterSnapshotArn": "arn:aws:rds:us-east-1:814387698303:cluster-snapshot:myclustersnapshotcopy", + "IAMDatabaseAuthenticationEnabled": false + }, + { + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1e" + ], + "DBClusterSnapshotIdentifier": "rds:mydbcluster-2019-06-20-09-16", + "DBClusterIdentifier": "mydbcluster", + "SnapshotCreateTime": "2019-06-20T09:16:26.569Z", + "Engine": "aurora-mysql", + "AllocatedStorage": 0, + "Status": "available", + "Port": 0, + "VpcId": "vpc-6594f31c", + "ClusterCreateTime": "2019-04-15T14:18:42.785Z", + "MasterUsername": "myadmin", + "EngineVersion": "5.7.mysql_aurora.2.04.2", + "LicenseModel": "aurora-mysql", + "SnapshotType": "automated", + "PercentProgress": 100, + "StorageEncrypted": true, + "KmsKeyId": "arn:aws:kms:us-east-1:814387698303:key/AKIAIOSFODNN7EXAMPLE", + "DBClusterSnapshotArn": "arn:aws:rds:us-east-1:123456789012:cluster-snapshot:rds:mydbcluster-2019-06-20-09-16", + "IAMDatabaseAuthenticationEnabled": false + } + ] + } + +For more information, see `Creating a DB Cluster Snapshot `__ in the *Amazon Aurora User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-clusters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-clusters.rst new file mode 100644 index 000000000..7a82185c8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-clusters.rst @@ -0,0 +1,141 @@ +**Example 1: To describe a DB cluster** + +The following ``describe-db-clusters`` example retrieves the details of the specified DB cluster. :: + + aws rds describe-db-clusters \ + --db-cluster-identifier mydbcluster + +Output:: + + { + "DBClusters": [ + { + "AllocatedStorage": 1, + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1e" + ], + "BackupRetentionPeriod": 1, + "DatabaseName": "mydbcluster", + "DBClusterIdentifier": "mydbcluster", + "DBClusterParameterGroup": "default.aurora-mysql5.7", + "DBSubnetGroup": "default", + "Status": "available", + "EarliestRestorableTime": "2019-06-19T09:16:28.210Z", + "Endpoint": "mydbcluster.cluster-cnpexample.us-east-1.rds.amazonaws.com", + "ReaderEndpoint": "mydbcluster.cluster-ro-cnpexample.us-east-1.rds.amazonaws.com", + "MultiAZ": true, + "Engine": "aurora-mysql", + "EngineVersion": "5.7.mysql_aurora.2.04.2", + "LatestRestorableTime": "2019-06-20T22:38:14.908Z", + "Port": 3306, + "MasterUsername": "myadmin", + "PreferredBackupWindow": "09:09-09:39", + "PreferredMaintenanceWindow": "sat:04:09-sat:04:39", + "ReadReplicaIdentifiers": [], + "DBClusterMembers": [ + { + "DBInstanceIdentifier": "dbinstance3", + "IsClusterWriter": false, + "DBClusterParameterGroupStatus": "in-sync", + "PromotionTier": 1 + }, + { + "DBInstanceIdentifier": "dbinstance1", + "IsClusterWriter": false, + "DBClusterParameterGroupStatus": "in-sync", + "PromotionTier": 1 + }, + { + "DBInstanceIdentifier": "dbinstance2", + "IsClusterWriter": false, + "DBClusterParameterGroupStatus": "in-sync", + "PromotionTier": 1 + }, + { + "DBInstanceIdentifier": "mydbcluster", + "IsClusterWriter": false, + "DBClusterParameterGroupStatus": "in-sync", + "PromotionTier": 1 + }, + { + "DBInstanceIdentifier": "mydbcluster-us-east-1b", + "IsClusterWriter": false, + "DBClusterParameterGroupStatus": "in-sync", + "PromotionTier": 1 + }, + { + "DBInstanceIdentifier": "mydbcluster", + "IsClusterWriter": true, + "DBClusterParameterGroupStatus": "in-sync", + "PromotionTier": 1 + } + ], + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-0b9130572daf3dc16", + "Status": "active" + } + ], + "HostedZoneId": "Z2R2ITUGPM61AM", + "StorageEncrypted": true, + "KmsKeyId": "arn:aws:kms:us-east-1:814387698303:key/AKIAIOSFODNN7EXAMPLE", + "DbClusterResourceId": "cluster-AKIAIOSFODNN7EXAMPLE", + "DBClusterArn": "arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster", + "AssociatedRoles": [], + "IAMDatabaseAuthenticationEnabled": false, + "ClusterCreateTime": "2019-04-15T14:18:42.785Z", + "EngineMode": "provisioned", + "DeletionProtection": false, + "HttpEndpointEnabled": false + } + ] + } + +**Example 2: To list certain attributes of all DB clusters** + +The following ``describe-db-clusters`` example retrieves only the ``DBClusterIdentifier``, ``Endpoint``, and ``ReaderEndpoint`` attributes of all your DB clusters in the current AWS Region. :: + + aws rds describe-db-clusters \ + --query 'DBClusters[].{DBClusterIdentifier:DBClusterIdentifier,Endpoint:Endpoint,ReaderEndpoint:ReaderEndpoint}' + +Output:: + + [ + { + "Endpoint": "cluster-57-2020-05-01-2270.cluster-cnpexample.us-east-1.rds.amazonaws.com", + "ReaderEndpoint": "cluster-57-2020-05-01-2270.cluster-ro-cnpexample.us-east-1.rds.amazonaws.com", + "DBClusterIdentifier": "cluster-57-2020-05-01-2270" + }, + { + "Endpoint": "cluster-57-2020-05-01-4615.cluster-cnpexample.us-east-1.rds.amazonaws.com", + "ReaderEndpoint": "cluster-57-2020-05-01-4615.cluster-ro-cnpexample.us-east-1.rds.amazonaws.com", + "DBClusterIdentifier": "cluster-57-2020-05-01-4615" + }, + { + "Endpoint": "pg2-cluster.cluster-cnpexample.us-east-1.rds.amazonaws.com", + "ReaderEndpoint": "pg2-cluster.cluster-ro-cnpexample.us-east-1.rds.amazonaws.com", + "DBClusterIdentifier": "pg2-cluster" + }, + ...output omitted... + } + ] + +**Example 3: To list DB clusters with a specific attribute** + +The following ``describe-db-clusters`` example retrieves only the ``DBClusterIdentifier`` and ``Engine`` attributes of your DB clusters that use the ``aurora-postgresql`` DB engine. :: + + aws rds describe-db-clusters \ + --query 'DBClusters[].{DBClusterIdentifier:DBClusterIdentifier,Engine:Engine} | [?Engine == `aurora-postgresql`]' + +Output:: + + [ + { + "Engine": "aurora-postgresql", + "DBClusterIdentifier": "pg2-cluster" + } + ] + +For more information, see `Amazon Aurora DB Clusters `__ in the *Amazon Aurora User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-engine-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-engine-versions.rst new file mode 100644 index 000000000..369010232 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-engine-versions.rst @@ -0,0 +1,44 @@ +**To describe the DB engine versions for the MySQL DB engine** + +The following ``describe-db-engine-versions`` example displays details about each of the DB engine versions for the specified DB engine. :: + + aws rds describe-db-engine-versions \ + --engine mysql + +Output:: + + { + "DBEngineVersions": [ + { + "Engine": "mysql", + "EngineVersion": "5.5.46", + "DBParameterGroupFamily": "mysql5.5", + "DBEngineDescription": "MySQL Community Edition", + "DBEngineVersionDescription": "MySQL 5.5.46", + "ValidUpgradeTarget": [ + { + "Engine": "mysql", + "EngineVersion": "5.5.53", + "Description": "MySQL 5.5.53", + "AutoUpgrade": false, + "IsMajorVersionUpgrade": false + }, + { + "Engine": "mysql", + "EngineVersion": "5.5.54", + "Description": "MySQL 5.5.54", + "AutoUpgrade": false, + "IsMajorVersionUpgrade": false + }, + { + "Engine": "mysql", + "EngineVersion": "5.5.57", + "Description": "MySQL 5.5.57", + "AutoUpgrade": false, + "IsMajorVersionUpgrade": false + }, + ...some output truncated... + ] + } + +For more information, see `What Is Amazon Relational Database Service (Amazon RDS)? `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-instance-automated-backups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-instance-automated-backups.rst new file mode 100644 index 000000000..1c036b9e7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-instance-automated-backups.rst @@ -0,0 +1,39 @@ +**To describe the automated backups for a DB instance** + +The following ``describe-db-instance-automated-backups`` example displays details about the automated backups for the specified DB instance. The details include replicated automated backups in other AWS Regions. :: + + aws rds describe-db-instance-automated-backups \ + --db-instance-identifier new-orcl-db + +Output:: + + { + "DBInstanceAutomatedBackups": [ + { + "DBInstanceArn": "arn:aws:rds:us-east-1:123456789012:db:new-orcl-db", + "DbiResourceId": "db-JKIB2GFQ5RV7REPLZA4EXAMPLE", + "Region": "us-east-1", + "DBInstanceIdentifier": "new-orcl-db", + "RestoreWindow": { + "EarliestTime": "2020-12-07T21:05:20.939Z", + "LatestTime": "2020-12-07T21:05:20.939Z" + }, + "AllocatedStorage": 20, + "Status": "replicating", + "Port": 1521, + "InstanceCreateTime": "2020-12-04T15:28:31Z", + "MasterUsername": "admin", + "Engine": "oracle-se2", + "EngineVersion": "12.1.0.2.v21", + "LicenseModel": "bring-your-own-license", + "OptionGroupName": "default:oracle-se2-12-1", + "Encrypted": false, + "StorageType": "gp2", + "IAMDatabaseAuthenticationEnabled": false, + "BackupRetentionPeriod": 14, + "DBInstanceAutomatedBackupsArn": "arn:aws:rds:us-west-2:123456789012:auto-backup:ab-jkib2gfq5rv7replzadausbrktni2bn4example" + } + ] + } + +For more information, see `Finding information about replicated backups `__ in the *Amazon RDS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-instances.rst new file mode 100755 index 000000000..1fe197f8a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-instances.rst @@ -0,0 +1,26 @@ +**To describe a DB instance** + +The following ``describe-db-instances`` example retrieves details about the specified DB instance. :: + + aws rds describe-db-instances \ + --db-instance-identifier mydbinstancecf + +Output:: + + { + "DBInstances": [ + { + "DBInstanceIdentifier": "mydbinstancecf", + "DBInstanceClass": "db.t3.small", + "Engine": "mysql", + "DBInstanceStatus": "available", + "MasterUsername": "masterawsuser", + "Endpoint": { + "Address": "mydbinstancecf.abcexample.us-east-1.rds.amazonaws.com", + "Port": 3306, + "HostedZoneId": "Z2R2ITUGPM61AM" + }, + ...some output truncated... + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-log-files.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-log-files.rst new file mode 100644 index 000000000..0e69d5e99 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-log-files.rst @@ -0,0 +1,43 @@ +**To describe the log files for a DB instance** + +The following ``describe-db-log-files`` example retrieves details about the log files for the specified DB instance. :: + + aws rds describe-db-log-files -\ + -db-instance-identifier test-instance + +Output:: + + { + "DescribeDBLogFiles": [ + { + "Size": 0, + "LastWritten": 1533060000000, + "LogFileName": "error/mysql-error-running.log" + }, + { + "Size": 2683, + "LastWritten": 1532994300000, + "LogFileName": "error/mysql-error-running.log.0" + }, + { + "Size": 107, + "LastWritten": 1533057300000, + "LogFileName": "error/mysql-error-running.log.18" + }, + { + "Size": 13105, + "LastWritten": 1532991000000, + "LogFileName": "error/mysql-error-running.log.23" + }, + { + "Size": 0, + "LastWritten": 1533061200000, + "LogFileName": "error/mysql-error.log" + }, + { + "Size": 3519, + "LastWritten": 1532989252000, + "LogFileName": "mysqlUpgrade" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-parameter-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-parameter-groups.rst new file mode 100644 index 000000000..2868c7a55 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-parameter-groups.rst @@ -0,0 +1,39 @@ +**To describe your DB parameter group** + +The following ``describe-db-parameter-groups`` example retrieves details about your DB parameter groups. :: + + aws rds describe-db-parameter-groups + +Output:: + + { + "DBParameterGroups": [ + { + "DBParameterGroupName": "default.aurora-mysql5.7", + "DBParameterGroupFamily": "aurora-mysql5.7", + "Description": "Default parameter group for aurora-mysql5.7", + "DBParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:pg:default.aurora-mysql5.7" + }, + { + "DBParameterGroupName": "default.aurora-postgresql9.6", + "DBParameterGroupFamily": "aurora-postgresql9.6", + "Description": "Default parameter group for aurora-postgresql9.6", + "DBParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:pg:default.aurora-postgresql9.6" + }, + { + "DBParameterGroupName": "default.aurora5.6", + "DBParameterGroupFamily": "aurora5.6", + "Description": "Default parameter group for aurora5.6", + "DBParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:pg:default.aurora5.6" + }, + { + "DBParameterGroupName": "default.mariadb10.1", + "DBParameterGroupFamily": "mariadb10.1", + "Description": "Default parameter group for mariadb10.1", + "DBParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:pg:default.mariadb10.1" + }, + ...some output truncated... + ] + } + +For more information, see `Working with DB Parameter Groups `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-parameters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-parameters.rst new file mode 100644 index 000000000..702a8a8bb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-parameters.rst @@ -0,0 +1,36 @@ +**To describe the parameters in a DB parameter group** + +The following ``describe-db-parameters`` example retrieves the details of the specified DB parameter group. :: + + aws rds describe-db-parameters \ + --db-parameter-group-name mydbpg + +Output:: + + { + "Parameters": [ + { + "ParameterName": "allow-suspicious-udfs", + "Description": "Controls whether user-defined functions that have only an xxx symbol for the main function can be loaded", + "Source": "engine-default", + "ApplyType": "static", + "DataType": "boolean", + "AllowedValues": "0,1", + "IsModifiable": false, + "ApplyMethod": "pending-reboot" + }, + { + "ParameterName": "auto_generate_certs", + "Description": "Controls whether the server autogenerates SSL key and certificate files in the data directory, if they do not already exist.", + "Source": "engine-default", + "ApplyType": "static", + "DataType": "boolean", + "AllowedValues": "0,1", + "IsModifiable": false, + "ApplyMethod": "pending-reboot" + }, + ...some output truncated... + ] + } + +For more information, see `Working with DB Parameter Groups `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-proxies.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-proxies.rst new file mode 100644 index 000000000..a3097c6c7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-proxies.rst @@ -0,0 +1,72 @@ +**To describe a DB proxy for an RDS database** + +The following ``describe-db-proxies`` example returns information about DB proxies. :: + + aws rds describe-db-proxies + +Output:: + + { + "DBProxies": [ + { + "DBProxyName": "proxyExample1", + "DBProxyArn": "arn:aws:rds:us-east-1:123456789012:db-proxy:prx-0123a01b12345c0ab", + "Status": "available", + "EngineFamily": "PostgreSQL", + "VpcId": "vpc-1234567", + "VpcSecurityGroupIds": [ + "sg-1234" + ], + "VpcSubnetIds": [ + "subnetgroup1", + "subnetgroup2" + ], + "Auth": "[ + { + "Description": "proxydescription1" + "AuthScheme": "SECRETS", + "SecretArn": "arn:aws:secretsmanager:us-west-2:123456789123:secret:secretName-1234f", + "IAMAuth": "DISABLED" + } + ]", + "RoleArn": "arn:aws:iam::12345678912??:role/ProxyPostgreSQLRole", + "Endpoint": "proxyExample1.proxy-ab0cd1efghij.us-east-1.rds.amazonaws.com", + "RequireTLS": false, + "IdleClientTimeout": 1800, + "DebuggingLogging": false, + "CreatedDate": "2023-04-05T16:09:33.452000+00:00", + "UpdatedDate": "2023-04-13T01:49:38.568000+00:00" + }, + { + "DBProxyName": "proxyExample2", + "DBProxyArn": "arn:aws:rds:us-east-1:123456789012:db-proxy:prx-1234a12b23456c1ab", + "Status": "available", + "EngineFamily": "PostgreSQL", + "VpcId": "sg-1234567", + "VpcSecurityGroupIds": [ + "sg-1234" + ], + "VpcSubnetIds": [ + "subnetgroup1", + "subnetgroup2" + ], + "Auth": "[ + { + "Description": "proxydescription2" + "AuthScheme": "SECRETS", + "SecretArn": "aarn:aws:secretsmanager:us-west-2:123456789123:secret:secretName-1234f", + "IAMAuth": "DISABLED" + } + ]", + "RoleArn": "arn:aws:iam::12345678912:role/ProxyPostgreSQLRole", + "Endpoint": "proxyExample2.proxy-ab0cd1efghij.us-east-1.rds.amazonaws.com", + "RequireTLS": false, + "IdleClientTimeout": 1800, + "DebuggingLogging": false, + "CreatedDate": "2022-01-05T16:19:33.452000+00:00", + "UpdatedDate": "2023-04-13T01:49:38.568000+00:00" + } + ] + } + +For more information, see `Viewing an RDS Proxy `__ in the *Amazon RDS User Guide* and `Viewing an RDS Proxy `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-proxy-endpoints.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-proxy-endpoints.rst new file mode 100644 index 000000000..9662850b0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-proxy-endpoints.rst @@ -0,0 +1,50 @@ +**To describe a DB proxy endpoints** + +The following ``describe-db-proxy-endpoints`` example returns information about DB proxy endpoints. :: + + aws rds describe-db-proxy-endpoints + +Output:: + + { + "DBProxyEndpoints": [ + { + "DBProxyEndpointName": "proxyEndpoint1", + "DBProxyEndpointArn": "arn:aws:rds:us-east-1:123456789012:db-proxy-endpoint:prx-endpoint-0123a01b12345c0ab", + "DBProxyName": "proxyExample", + "Status": "available", + "VpcId": "vpc-1234567", + "VpcSecurityGroupIds": [ + "sg-1234" + ], + "VpcSubnetIds": [ + "subnetgroup1", + "subnetgroup2" + ], + "Endpoint": "proxyEndpoint1.endpoint.proxy-ab0cd1efghij.us-east-1.rds.amazonaws.com", + "CreatedDate": "2023-04-05T16:09:33.452000+00:00", + "TargetRole": "READ_WRITE", + "IsDefault": false + }, + { + "DBProxyEndpointName": "proxyEndpoint2", + "DBProxyEndpointArn": "arn:aws:rds:us-east-1:123456789012:db-proxy-endpoint:prx-endpoint-4567a01b12345c0ab", + "DBProxyName": "proxyExample2", + "Status": "available", + "VpcId": "vpc1234567", + "VpcSecurityGroupIds": [ + "sg-5678" + ], + "VpcSubnetIds": [ + "subnetgroup1", + "subnetgroup2" + ], + "Endpoint": "proxyEndpoint2.endpoint.proxy-cd1ef2klmnop.us-east-1.rds.amazonaws.com", + "CreatedDate": "2023-04-05T16:09:33.452000+00:00", + "TargetRole": "READ_WRITE", + "IsDefault": false + } + ] + } + +For more information, see `Viewing a proxy endpoint `__ in the *Amazon RDS User Guide* and `Creating a proxy endpoint `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-proxy-target-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-proxy-target-groups.rst new file mode 100644 index 000000000..241f1867c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-proxy-target-groups.rst @@ -0,0 +1,29 @@ +**To describe a DB proxy endpoints** + +The following ``describe-db-proxy-target-groups`` example returns information about DB proxy target groups. :: + + aws rds describe-db-proxy-target-groups \ + --db-proxy-name proxyExample + +Output:: + + { + "TargetGroups": + { + "DBProxyName": "proxyExample", + "TargetGroupName": "default", + "TargetGroupArn": "arn:aws:rds:us-east-1:123456789012:target-group:prx-tg-0123a01b12345c0ab", + "IsDefault": true, + "Status": "available", + "ConnectionPoolConfig": { + "MaxConnectionsPercent": 100, + "MaxIdleConnectionsPercent": 50, + "ConnectionBorrowTimeout": 120, + "SessionPinningFilters": [] + }, + "CreatedDate": "2023-05-02T18:41:19.495000+00:00", + "UpdatedDate": "2023-05-02T18:41:21.762000+00:00" + } + } + +For more information, see `Viewing an RDS Proxy `__ in the *Amazon RDS User Guide* and `Viewing an RDS Proxy `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-proxy-targets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-proxy-targets.rst new file mode 100644 index 000000000..8b09b3a94 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-proxy-targets.rst @@ -0,0 +1,28 @@ +**To describe DB proxy targets** + +The following ``describe-db-proxy-targets`` example returns information about DB proxy targets. :: + + aws rds describe-db-proxy-targets \ + --db-proxy-name proxyExample + +Output:: + + { + "Targets": [ + { + "Endpoint": "database1.ab0cd1efghij.us-east-1.rds.amazonaws.com", + "TrackedClusterId": "database1", + "RdsResourceId": "database1-instance-1", + "Port": 3306, + "Type": "RDS_INSTANCE", + "Role": "READ_WRITE", + "TargetHealth": { + "State": "UNAVAILABLE", + "Reason": "PENDING_PROXY_CAPACITY", + "Description": "DBProxy Target is waiting for proxy to scale to desired capacity" + } + } + ] + } + +For more information, see `Viewing an RDS proxy `__ in the *Amazon RDS User Guide* and `Viewing an RDS proxy `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-recommendations.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-recommendations.rst new file mode 100644 index 000000000..f66da5c00 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-recommendations.rst @@ -0,0 +1,302 @@ +**Example 1: To list all DB recommendations** + +The following ``describe-db-recommendations`` example lists all DB recommendations in your AWS account. :: + + aws rds describe-db-recommendations + +Output:: + + { + "DBRecommendations": [ + { + "RecommendationId": "12ab3cde-f456-7g8h-9012-i3j45678k9lm", + "TypeId": "config_recommendation::old_minor_version", + "Severity": "informational", + "ResourceArn": "arn:aws:rds:us-west-2:111122223333:db:database-1", + "Status": "active", + "CreatedTime": "2024-02-21T23:14:19.292000+00:00", + "UpdatedTime": "2024-02-21T23:14:19+00:00", + "Detection": "**[resource-name]** is not running the latest minor DB engine version", + "Recommendation": "Upgrade to latest engine version", + "Description": "Your database resources aren't running the latest minor DB engine version. The latest minor version contains the latest security fixes and other improvements.", + "RecommendedActions": [ + { + "ActionId": "12ab34c5de6fg7h89i0jk1lm234n5678", + "Operation": "modifyDbInstance", + "Parameters": [ + { + "Key": "EngineVersion", + "Value": "5.7.44" + }, + { + "Key": "DBInstanceIdentifier", + "Value": "database-1" + } + ], + "ApplyModes": [ + "immediately", + "next-maintenance-window" + ], + "Status": "ready", + "ContextAttributes": [ + { + "Key": "Recommended value", + "Value": "5.7.44" + }, + { + "Key": "Current engine version", + "Value": "5.7.42" + } + ] + } + ], + "Category": "security", + "Source": "RDS", + "TypeDetection": "**[resource-count] resources** are not running the latest minor DB engine version", + "TypeRecommendation": "Upgrade to latest engine version", + "Impact": "Reduced database performance and data security at risk", + "AdditionalInfo": "We recommend that you maintain your database with the latest DB engine minor version as this version includes the latest security and functionality fixes. The DB engine minor version upgrades contain only the changes which are backward-compatible with earlier minor versions of the same major version of the DB engine.", + "Links": [ + { + "Text": "Upgrading an RDS DB instance engine version", + "Url": "https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Upgrading.html" + }, + { + "Text": "Using Amazon RDS Blue/Green Deployments for database updates for Amazon Aurora", + "Url": "https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html" + }, + { + "Text": "Using Amazon RDS Blue/Green Deployments for database updates for Amazon RDS", + "Url": "https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html" + } + ] + } + ] + } + +For more information, see `Viewing and responding to Amazon RDS recommendations `__ in the *Amazon RDS User Guide* and `Viewing and responding to Amazon RDS recommendations `__ in the *Amazon Aurora User Guide*. + +**Example 2: To list high severity DB recommendations** + +The following ``describe-db-recommendations`` example lists high severity DB recommendations in your AWS account. :: + + aws rds describe-db-recommendations \ + --filters Name=severity,Values=high + +Output:: + + { + "DBRecommendations": [ + { + "RecommendationId": "12ab3cde-f456-7g8h-9012-i3j45678k9lm", + "TypeId": "config_recommendation::rds_extended_support", + "Severity": "high", + "ResourceArn": "arn:aws:rds:us-west-2:111122223333:db:database-1", + "Status": "active", + "CreatedTime": "2024-02-21T23:14:19.392000+00:00", + "UpdatedTime": "2024-02-21T23:14:19+00:00", + "Detection": "Your databases will be auto-enrolled to RDS Extended Support on February 29", + "Recommendation": "Upgrade your major version before February 29, 2024 to avoid additional charges", + "Description": "Your PostgreSQL 11 and MySQL 5.7 databases will be automatically enrolled into RDS Extended Support on February 29, 2024. To avoid the increase in charges due to RDS Extended Support, we recommend upgrading your databases to a newer major engine version before February 29, 2024.\nTo learn more about the RDS Extended Support pricing, refer to the pricing page.", + "RecommendedActions": [ + { + "ActionId": "12ab34c5de6fg7h89i0jk1lm234n5678", + "Parameters": [], + "ApplyModes": [ + "manual" + ], + "Status": "ready", + "ContextAttributes": [] + } + ], + "Category": "cost optimization", + "Source": "RDS", + "TypeDetection": "Your database will be auto-enrolled to RDS Extended Support on February 29", + "TypeRecommendation": "Upgrade your major version before February 29, 2024 to avoid additional charges", + "Impact": "Increase in charges due to RDS Extended Support", + "AdditionalInfo": "With Amazon RDS Extended Support, you can continue running your database on a major engine version past the RDS end of standard support date for an additional cost. This paid feature gives you more time to upgrade to a supported major engine version.\nDuring Extended Support, Amazon RDS will supply critical CVE patches and bug fixes.", + "Links": [ + { + "Text": "Amazon RDS Extended Support pricing for RDS for MySQL", + "Url": "https://aws.amazon.com/rds/mysql/pricing/" + }, + { + "Text": "Amazon RDS Extended Support for RDS for MySQL and PostgreSQL databases", + "Url": "https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html" + }, + { + "Text": "Amazon RDS Extended Support pricing for Amazon Aurora PostgreSQL", + "Url": "https://aws.amazon.com/rds/aurora/pricing/" + }, + { + "Text": "Amazon RDS Extended Support for Aurora PostgreSQL databases", + "Url": "https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html" + }, + { + "Text": "Amazon RDS Extended Support pricing for RDS for PostgreSQL", + "Url": "https://aws.amazon.com/rds/postgresql/pricing/" + } + ] + } + ] + } + +For more information, see `Viewing and responding to Amazon RDS recommendations `__ in the *Amazon RDS User Guide* and `Viewing and responding to Amazon RDS recommendations `__ in the *Amazon Aurora User Guide*. + +**Example 3: To list DB recommendations for a specified DB instance** + +The following ``describe-db-recommendations`` example lists all DB recommendations for a specified DB instance. :: + + aws rds describe-db-recommendations \ + --filters Name=dbi-resource-id,Values=database-1 + +Output:: + + { + "DBRecommendations": [ + { + "RecommendationId": "12ab3cde-f456-7g8h-9012-i3j45678k9lm", + "TypeId": "config_recommendation::old_minor_version", + "Severity": "informational", + "ResourceArn": "arn:aws:rds:us-west-2:111122223333:db:database-1", + "Status": "active", + "CreatedTime": "2024-02-21T23:14:19.292000+00:00", + "UpdatedTime": "2024-02-21T23:14:19+00:00", + "Detection": "**[resource-name]** is not running the latest minor DB engine version", + "Recommendation": "Upgrade to latest engine version", + "Description": "Your database resources aren't running the latest minor DB engine version. The latest minor version contains the latest security fixes and other improvements.", + "RecommendedActions": [ + { + "ActionId": "12ab34c5de6fg7h89i0jk1lm234n5678", + "Operation": "modifyDbInstance", + "Parameters": [ + { + "Key": "EngineVersion", + "Value": "5.7.44" + }, + { + "Key": "DBInstanceIdentifier", + "Value": "database-1" + } + ], + "ApplyModes": [ + "immediately", + "next-maintenance-window" + ], + "Status": "ready", + "ContextAttributes": [ + { + "Key": "Recommended value", + "Value": "5.7.44" + }, + { + "Key": "Current engine version", + "Value": "5.7.42" + } + ] + } + ], + "Category": "security", + "Source": "RDS", + "TypeDetection": "**[resource-count] resources** are not running the latest minor DB engine version", + "TypeRecommendation": "Upgrade to latest engine version", + "Impact": "Reduced database performance and data security at risk", + "AdditionalInfo": "We recommend that you maintain your database with the latest DB engine minor version as this version includes the latest security and functionality fixes. The DB engine minor version upgrades contain only the changes which are backward-compatible with earlier minor versions of the same major version of the DB engine.", + "Links": [ + { + "Text": "Upgrading an RDS DB instance engine version", + "Url": "https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Upgrading.html" + }, + { + "Text": "Using Amazon RDS Blue/Green Deployments for database updates for Amazon Aurora", + "Url": "https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html" + }, + { + "Text": "Using Amazon RDS Blue/Green Deployments for database updates for Amazon RDS", + "Url": "https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html" + } + ] + } + ] + } + +For more information, see `Viewing and responding to Amazon RDS recommendations `__ in the *Amazon RDS User Guide* and `Viewing and responding to Amazon RDS recommendations `__ in the *Amazon Aurora User Guide*. + +**Example 4: To list all active DB recommendations** + +The following ``describe-db-recommendations`` example lists all active DB recommendations in your AWS account. :: + + aws rds describe-db-recommendations \ + --filters Name=status,Values=active + +Output:: + + { + "DBRecommendations": [ + { + "RecommendationId": "12ab3cde-f456-7g8h-9012-i3j45678k9lm", + "TypeId": "config_recommendation::old_minor_version", + "Severity": "informational", + "ResourceArn": "arn:aws:rds:us-west-2:111122223333:db:database-1", + "Status": "active", + "CreatedTime": "2024-02-21T23:14:19.292000+00:00", + "UpdatedTime": "2024-02-21T23:14:19+00:00", + "Detection": "**[resource-name]** is not running the latest minor DB engine version", + "Recommendation": "Upgrade to latest engine version", + "Description": "Your database resources aren't running the latest minor DB engine version. The latest minor version contains the latest security fixes and other improvements.", + "RecommendedActions": [ + { + "ActionId": "12ab34c5de6fg7h89i0jk1lm234n5678", + "Operation": "modifyDbInstance", + "Parameters": [ + { + "Key": "EngineVersion", + "Value": "5.7.44" + }, + { + "Key": "DBInstanceIdentifier", + "Value": "database-1" + } + ], + "ApplyModes": [ + "immediately", + "next-maintenance-window" + ], + "Status": "ready", + "ContextAttributes": [ + { + "Key": "Recommended value", + "Value": "5.7.44" + }, + { + "Key": "Current engine version", + "Value": "5.7.42" + } + ] + } + ], + "Category": "security", + "Source": "RDS", + "TypeDetection": "**[resource-count] resources** are not running the latest minor DB engine version", + "TypeRecommendation": "Upgrade to latest engine version", + "Impact": "Reduced database performance and data security at risk", + "AdditionalInfo": "We recommend that you maintain your database with the latest DB engine minor version as this version includes the latest security and functionality fixes. The DB engine minor version upgrades contain only the changes which are backward-compatible with earlier minor versions of the same major version of the DB engine.", + "Links": [ + { + "Text": "Upgrading an RDS DB instance engine version", + "Url": "https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Upgrading.html" + }, + { + "Text": "Using Amazon RDS Blue/Green Deployments for database updates for Amazon Aurora", + "Url": "https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html" + }, + { + "Text": "Using Amazon RDS Blue/Green Deployments for database updates for Amazon RDS", + "Url": "https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html" + } + ] + } + ] + } + +For more information, see `Viewing and responding to Amazon RDS recommendations `__ in the *Amazon RDS User Guide* and `Viewing and responding to Amazon RDS recommendations `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-security-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-security-groups.rst new file mode 100644 index 000000000..c0595e7ba --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-security-groups.rst @@ -0,0 +1,31 @@ +**To list DB security groups** + +The following ``describe-db-security-groups`` example lists DB security groups. :: + + aws rds describe-db-security-groups + +Output:: + + { + "DBSecurityGroups": [ + { + "OwnerId": "123456789012", + "DBSecurityGroupName": "default", + "DBSecurityGroupDescription": "default", + "EC2SecurityGroups": [], + "IPRanges": [], + "DBSecurityGroupArn": "arn:aws:rds:us-west-1:111122223333:secgrp:default" + }, + { + "OwnerId": "123456789012", + "DBSecurityGroupName": "mysecgroup", + "DBSecurityGroupDescription": "My Test Security Group", + "VpcId": "vpc-1234567f", + "EC2SecurityGroups": [], + "IPRanges": [], + "DBSecurityGroupArn": "arn:aws:rds:us-west-1:111122223333:secgrp:mysecgroup" + } + ] + } + +For more information, see `Listing Available DB Security Groups `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-shard-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-shard-groups.rst new file mode 100644 index 000000000..8f6a04abe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-shard-groups.rst @@ -0,0 +1,34 @@ +**Example 1: To describe DB shard groups** + +The following ``describe-db-shard-groups`` example retrieves the details of your DB shard groups. :: + + aws rds describe-db-shard-groups + +Output:: + + { + "DBShardGroups": [ + { + "DBShardGroupResourceId": "shardgroup-7bb446329da94788b3f957746example", + "DBShardGroupIdentifier": "limitless-test-shard-grp", + "DBClusterIdentifier": "limitless-test-cluster", + "MaxACU": 768.0, + "ComputeRedundancy": 0, + "Status": "available", + "PubliclyAccessible": true, + "Endpoint": "limitless-test-cluster.limitless-cekycexample.us-east-2.rds.amazonaws.com" + }, + { + "DBShardGroupResourceId": "shardgroup-a6e3a0226aa243e2ac6c7a1234567890", + "DBShardGroupIdentifier": "my-db-shard-group", + "DBClusterIdentifier": "my-sv2-cluster", + "MaxACU": 768.0, + "ComputeRedundancy": 0, + "Status": "available", + "PubliclyAccessible": false, + "Endpoint": "my-sv2-cluster.limitless-cekycexample.us-east-2.rds.amazonaws.com" + } + ] + } + +For more information, see `Amazon Aurora DB Clusters `__ in the *Amazon Aurora User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-snapshot-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-snapshot-attributes.rst new file mode 100644 index 000000000..667a2f70a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-snapshot-attributes.rst @@ -0,0 +1,25 @@ +**To describe the attribute names and values for a DB snapshot** + +The following ``describe-db-snapshot-attributes`` example describes the attribute names and values for a DB snapshot. :: + + aws rds describe-db-snapshot-attributes \ + --db-snapshot-identifier mydbsnapshot + +Output:: + + { + "DBSnapshotAttributesResult": { + "DBSnapshotIdentifier": "mydbsnapshot", + "DBSnapshotAttributes": [ + { + "AttributeName": "restore", + "AttributeValues": [ + "123456789012", + "210987654321" + ] + } + ] + } + } + +For more information, see `Sharing a DB Snapshot `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-snapshots.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-snapshots.rst new file mode 100644 index 000000000..80d8611c7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-snapshots.rst @@ -0,0 +1,54 @@ +**Example 1: To describe a DB snapshot for a DB instance** + +The following ``describe-db-snapshots`` example retrieves the details of a DB snapshot for a DB instance. :: + + aws rds describe-db-snapshots \ + --db-snapshot-identifier mydbsnapshot + +Output:: + + { + "DBSnapshots": [ + { + "DBSnapshotIdentifier": "mydbsnapshot", + "DBInstanceIdentifier": "mysqldb", + "SnapshotCreateTime": "2018-02-08T22:28:08.598Z", + "Engine": "mysql", + "AllocatedStorage": 20, + "Status": "available", + "Port": 3306, + "AvailabilityZone": "us-east-1f", + "VpcId": "vpc-6594f31c", + "InstanceCreateTime": "2018-02-08T22:24:55.973Z", + "MasterUsername": "mysqladmin", + "EngineVersion": "5.6.37", + "LicenseModel": "general-public-license", + "SnapshotType": "manual", + "OptionGroupName": "default:mysql-5-6", + "PercentProgress": 100, + "StorageType": "gp2", + "Encrypted": false, + "DBSnapshotArn": "arn:aws:rds:us-east-1:123456789012:snapshot:mydbsnapshot", + "IAMDatabaseAuthenticationEnabled": false, + "ProcessorFeatures": [], + "DbiResourceId": "db-AKIAIOSFODNN7EXAMPLE" + } + ] + } + +For more information, see `Creating a DB Snapshot `__ in the *Amazon RDS User Guide*. + +**Example 2: To find the number of manual snapshots taken** + +The following ``describe-db-snapshots`` example uses the ``length`` operator in the ``--query`` option to return the number of manual snapshots that have been taken in a particular AWS Region. :: + + aws rds describe-db-snapshots \ + --snapshot-type manual \ + --query "length(*[].{DBSnapshots:SnapshotType})" \ + --region eu-central-1 + +Output:: + + 35 + +For more information, see `Creating a DB Snapshot `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-subnet-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-subnet-groups.rst new file mode 100644 index 000000000..7e6d2a62b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-db-subnet-groups.rst @@ -0,0 +1,51 @@ +**To describe a DB subnet group** + +The following ``describe-db-subnet-groups`` example retrieves the details of the specified DB subnet group. :: + + aws rds describe-db-subnet-groups + +Output:: + + { + "DBSubnetGroups": [ + { + "DBSubnetGroupName": "mydbsubnetgroup", + "DBSubnetGroupDescription": "My DB Subnet Group", + "VpcId": "vpc-971c12ee", + "SubnetGroupStatus": "Complete", + "Subnets": [ + { + "SubnetIdentifier": "subnet-d8c8e7f4", + "SubnetAvailabilityZone": { + "Name": "us-east-1a" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-718fdc7d", + "SubnetAvailabilityZone": { + "Name": "us-east-1f" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-cbc8e7e7", + "SubnetAvailabilityZone": { + "Name": "us-east-1a" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-0ccde220", + "SubnetAvailabilityZone": { + "Name": "us-east-1a" + }, + "SubnetStatus": "Active" + } + ], + "DBSubnetGroupArn": "arn:aws:rds:us-east-1:123456789012:subgrp:mydbsubnetgroup" + } + ] + } + +For more information, see `Amazon Virtual Private Cloud VPCs and Amazon RDS `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-engine-default-cluster-parameters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-engine-default-cluster-parameters.rst new file mode 100644 index 000000000..b9830b119 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-engine-default-cluster-parameters.rst @@ -0,0 +1,29 @@ +**To describe the default engine and system parameter information for the Aurora database engine** + +The following ``describe-engine-default-cluster-parameters`` example retrieves the details of the default engine and system parameter information for Aurora DB clusters with MySQL 5.7 compatibility. :: + + aws rds describe-engine-default-cluster-parameters \ + --db-parameter-group-family aurora-mysql5.7 + +Output:: + + { + "EngineDefaults": { + "Parameters": [ + { + "ParameterName": "aurora_load_from_s3_role", + "Description": "IAM role ARN used to load data from AWS S3", + "Source": "engine-default", + "ApplyType": "dynamic", + "DataType": "string", + "IsModifiable": true, + "SupportedEngineModes": [ + "provisioned" + ] + }, + ...some output truncated... + ] + } + } + +For more information, see `Working with DB Parameter Groups and DB Cluster Parameter Groups `__ in the *Amazon Aurora User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-engine-default-parameters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-engine-default-parameters.rst new file mode 100644 index 000000000..8b7fa81bf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-engine-default-parameters.rst @@ -0,0 +1,27 @@ +**To describe the default engine and system parameter information for the database engine** + +The following ``describe-engine-default-parameters`` example retrieves details for the default engine and system parameter information for MySQL 5.7 DB instances. :: + + aws rds describe-engine-default-parameters \ + --db-parameter-group-family mysql5.7 + +Output:: + + { + "EngineDefaults": { + "Parameters": [ + { + "ParameterName": "allow-suspicious-udfs", + "Description": "Controls whether user-defined functions that have only an xxx symbol for the main function can be loaded", + "Source": "engine-default", + "ApplyType": "static", + "DataType": "boolean", + "AllowedValues": "0,1", + "IsModifiable": false + }, + ...some output truncated... + ] + } + } + +For more information, see `Working with DB Parameter Groups `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-event-categories.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-event-categories.rst new file mode 100644 index 000000000..f74dbe967 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-event-categories.rst @@ -0,0 +1,67 @@ +**To describe event categories** + +The following ``describe-event-categories`` example retrieves details about the event categories for all available event sources. :: + + aws rds describe-event-categories + +Output:: + + { + "EventCategoriesMapList": [ + { + "SourceType": "db-instance", + "EventCategories": [ + "deletion", + "read replica", + "failover", + "restoration", + "maintenance", + "low storage", + "configuration change", + "backup", + "creation", + "availability", + "recovery", + "failure", + "backtrack", + "notification" + ] + }, + { + "SourceType": "db-security-group", + "EventCategories": [ + "configuration change", + "failure" + ] + }, + { + "SourceType": "db-parameter-group", + "EventCategories": [ + "configuration change" + ] + }, + { + "SourceType": "db-snapshot", + "EventCategories": [ + "deletion", + "creation", + "restoration", + "notification" + ] + }, + { + "SourceType": "db-cluster", + "EventCategories": [ + "failover", + "failure", + "notification" + ] + }, + { + "SourceType": "db-cluster-snapshot", + "EventCategories": [ + "backup" + ] + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-event-subscriptions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-event-subscriptions.rst new file mode 100644 index 000000000..911fd0f50 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-event-subscriptions.rst @@ -0,0 +1,27 @@ +**To describe event subscriptions** + +This example describes all of the Amazon RDS event subscriptions for the current AWS account. :: + + aws rds describe-event-subscriptions + +Output:: + + { + "EventSubscriptionsList": [ + { + "EventCategoriesList": [ + "backup", + "recovery" + ], + "Enabled": true, + "EventSubscriptionArn": "arn:aws:rds:us-east-1:123456789012:es:my-instance-events", + "Status": "creating", + "SourceType": "db-instance", + "CustomerAwsId": "123456789012", + "SubscriptionCreationTime": "2018-07-31 23:22:01.893", + "CustSubscriptionId": "my-instance-events", + "SnsTopicArn": "arn:aws:sns:us-east-1:123456789012:interesting-events" + }, + ...some output truncated... + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-events.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-events.rst new file mode 100644 index 000000000..f97ffbd52 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-events.rst @@ -0,0 +1,34 @@ +**To describe events** + +The following ``describe-events`` example retrieves details for the events that have occurred for the specified DB instance. :: + + aws rds describe-events \ + --source-identifier test-instance \ + --source-type db-instance + +Output:: + + { + "Events": [ + { + "SourceType": "db-instance", + "SourceIdentifier": "test-instance", + "EventCategories": [ + "backup" + ], + "Message": "Backing up DB instance", + "Date": "2018-07-31T23:09:23.983Z", + "SourceArn": "arn:aws:rds:us-east-1:123456789012:db:test-instance" + }, + { + "SourceType": "db-instance", + "SourceIdentifier": "test-instance", + "EventCategories": [ + "backup" + ], + "Message": "Finished DB Instance backup", + "Date": "2018-07-31T23:15:13.049Z", + "SourceArn": "arn:aws:rds:us-east-1:123456789012:db:test-instance" + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-export-tasks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-export-tasks.rst new file mode 100644 index 000000000..dd18e0943 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-export-tasks.rst @@ -0,0 +1,40 @@ +**To describe snapshot export tasks** + +The following ``describe-export-tasks`` example returns information about snapshot exports to Amazon S3. :: + + aws rds describe-export-tasks + +Output:: + + { + "ExportTasks": [ + { + "ExportTaskIdentifier": "test-snapshot-export", + "SourceArn": "arn:aws:rds:us-west-2:123456789012:snapshot:test-snapshot", + "SnapshotTime": "2020-03-02T18:26:28.163Z", + "TaskStartTime": "2020-03-02T18:57:56.896Z", + "TaskEndTime": "2020-03-02T19:10:31.985Z", + "S3Bucket": "amzn-s3-demo-bucket", + "S3Prefix": "", + "IamRoleArn": "arn:aws:iam::123456789012:role/service-role/ExportRole", + "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/abcd0000-7fca-4128-82f2-aabbccddeeff", + "Status": "COMPLETE", + "PercentProgress": 100, + "TotalExtractedDataInGB": 0 + }, + { + "ExportTaskIdentifier": "my-s3-export", + "SourceArn": "arn:aws:rds:us-west-2:123456789012:snapshot:db5-snapshot-test", + "SnapshotTime": "2020-03-27T20:48:42.023Z", + "S3Bucket": "amzn-s3-demo-bucket", + "S3Prefix": "", + "IamRoleArn": "arn:aws:iam::123456789012:role/service-role/ExportRole", + "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/abcd0000-7fca-4128-82f2-aabbccddeeff", + "Status": "STARTING", + "PercentProgress": 0, + "TotalExtractedDataInGB": 0 + } + ] + } + +For more information, see `Monitoring Snapshot Exports `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-global-clusters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-global-clusters.rst new file mode 100644 index 000000000..b9cd425d3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-global-clusters.rst @@ -0,0 +1,25 @@ +**To describe global DB clusters** + +The following ``describe-global-clusters`` example lists Aurora global DB clusters in the current AWS Region. :: + + aws rds describe-global-clusters + +Output:: + + { + "GlobalClusters": [ + { + "GlobalClusterIdentifier": "myglobalcluster", + "GlobalClusterResourceId": "cluster-f5982077e3b5aabb", + "GlobalClusterArn": "arn:aws:rds::123456789012:global-cluster:myglobalcluster", + "Status": "available", + "Engine": "aurora-mysql", + "EngineVersion": "5.7.mysql_aurora.2.07.2", + "StorageEncrypted": false, + "DeletionProtection": false, + "GlobalClusterMembers": [] + } + ] + } + +For more information, see `Managing an Aurora global database `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-option-group-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-option-group-options.rst new file mode 100644 index 000000000..4dd2ffb60 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-option-group-options.rst @@ -0,0 +1,61 @@ +**To describe all available options** + +The following ``describe-option-group-options`` example lists two options for an Oracle Database 19c instance. :: + + aws rds describe-option-group-options \ + --engine-name oracle-ee \ + --major-engine-version 19 \ + --max-items 2 + +Output:: + + { + "OptionGroupOptions": [ + { + "Name": "APEX", + "Description": "Oracle Application Express Runtime Environment", + "EngineName": "oracle-ee", + "MajorEngineVersion": "19", + "MinimumRequiredMinorEngineVersion": "0.0.0.ru-2019-07.rur-2019-07.r1", + "PortRequired": false, + "OptionsDependedOn": [], + "OptionsConflictsWith": [], + "Persistent": false, + "Permanent": false, + "RequiresAutoMinorEngineVersionUpgrade": false, + "VpcOnly": false, + "SupportsOptionVersionDowngrade": false, + "OptionGroupOptionSettings": [], + "OptionGroupOptionVersions": [ + { + "Version": "19.1.v1", + "IsDefault": true + }, + { + "Version": "19.2.v1", + "IsDefault": false + } + ] + }, + { + "Name": "APEX-DEV", + "Description": "Oracle Application Express Development Environment", + "EngineName": "oracle-ee", + "MajorEngineVersion": "19", + "MinimumRequiredMinorEngineVersion": "0.0.0.ru-2019-07.rur-2019-07.r1", + "PortRequired": false, + "OptionsDependedOn": [ + "APEX" + ], + "OptionsConflictsWith": [], + "Persistent": false, + "Permanent": false, + "RequiresAutoMinorEngineVersionUpgrade": false, + "VpcOnly": false, + "OptionGroupOptionSettings": [] + } + ], + "NextToken": "eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAyfQ==" + } + +For more information, see `Listing the Options and Option Settings for an Option Group `__ in the *Amazon RDS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-option-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-option-groups.rst new file mode 100644 index 000000000..784602937 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-option-groups.rst @@ -0,0 +1,25 @@ +**To describe the available option groups** + +The following ``describe-option-groups`` example lists the options groups for an Oracle Database 19c instance. :: + + aws rds describe-option-groups \ + --engine-name oracle-ee \ + --major-engine-version 19 + +Output:: + + { + "OptionGroupsList": [ + { + "OptionGroupName": "default:oracle-ee-19", + "OptionGroupDescription": "Default option group for oracle-ee 19", + "EngineName": "oracle-ee", + "MajorEngineVersion": "19", + "Options": [], + "AllowsVpcAndNonVpcInstanceMemberships": true, + "OptionGroupArn": "arn:aws:rds:us-west-1:111122223333:og:default:oracle-ee-19" + } + ] + } + +For more information, see `Listing the Options and Option Settings for an Option Group `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-orderable-db-instance-options.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-orderable-db-instance-options.rst new file mode 100644 index 000000000..3a670dca4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-orderable-db-instance-options.rst @@ -0,0 +1,46 @@ +**To describe orderable DB instance options** + +The following ``describe-orderable-db-instance-options`` example retrieves details about the orderable options for a DB instances running the MySQL DB engine. :: + + aws rds describe-orderable-db-instance-options \ + --engine mysql + +Output:: + + { + "OrderableDBInstanceOptions": [ + { + "MinStorageSize": 5, + "ReadReplicaCapable": true, + "MaxStorageSize": 6144, + "AvailabilityZones": [ + { + "Name": "us-east-1a" + }, + { + "Name": "us-east-1b" + }, + { + "Name": "us-east-1c" + }, + { + "Name": "us-east-1d" + } + ], + "SupportsIops": false, + "AvailableProcessorFeatures": [], + "MultiAZCapable": true, + "DBInstanceClass": "db.m1.large", + "Vpc": true, + "StorageType": "gp2", + "LicenseModel": "general-public-license", + "EngineVersion": "5.5.46", + "SupportsStorageEncryption": false, + "SupportsEnhancedMonitoring": true, + "Engine": "mysql", + "SupportsIAMDatabaseAuthentication": false, + "SupportsPerformanceInsights": false + } + ] + ...some output truncated... + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-pending-maintenance-actions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-pending-maintenance-actions.rst new file mode 100644 index 000000000..3e77d1c00 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-pending-maintenance-actions.rst @@ -0,0 +1,23 @@ +**To list resources with at least one pending maintenance action** + +The following ``describe-pending-maintenance-actions`` example lists the pending maintenance action for a DB instance. :: + + aws rds describe-pending-maintenance-actions + +Output:: + + { + "PendingMaintenanceActions": [ + { + "ResourceIdentifier": "arn:aws:rds:us-west-2:123456789012:cluster:global-db1-cl1", + "PendingMaintenanceActionDetails": [ + { + "Action": "system-update", + "Description": "Upgrade to Aurora PostgreSQL 2.4.2" + } + ] + } + ] + } + +For more information, see `Maintaining a DB Instance `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-reserved-db-instances-offerings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-reserved-db-instances-offerings.rst new file mode 100644 index 000000000..66839c81b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-reserved-db-instances-offerings.rst @@ -0,0 +1,30 @@ +**To describe reserved DB instance offerings** + +The following ``describe-reserved-db-instances-offerings`` example retrieves details about reserved DB instance options for ``oracle``. :: + + aws rds describe-reserved-db-instances-offerings \ + --product-description oracle + +Output:: + + { + "ReservedDBInstancesOfferings": [ + { + "CurrencyCode": "USD", + "UsagePrice": 0.0, + "ProductDescription": "oracle-se2(li)", + "ReservedDBInstancesOfferingId": "005bdee3-9ef4-4182-aa0c-58ef7cb6c2f8", + "MultiAZ": true, + "DBInstanceClass": "db.m4.xlarge", + "OfferingType": "Partial Upfront", + "RecurringCharges": [ + { + "RecurringChargeAmount": 0.594, + "RecurringChargeFrequency": "Hourly" + } + ], + "FixedPrice": 4089.0, + "Duration": 31536000 + }, + ...some output truncated... + } \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-reserved-db-instances.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-reserved-db-instances.rst new file mode 100644 index 000000000..38cf71ba1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-reserved-db-instances.rst @@ -0,0 +1,37 @@ +**To describe reserved DB instances** + +The following ``describe-reserved-db-instances`` example retrieves details about any reserved DB instances in the current AWS account. :: + + aws rds describe-reserved-db-instances + +Output:: + + { + "ReservedDBInstances": [ + { + "ReservedDBInstanceId": "myreservedinstance", + "ReservedDBInstancesOfferingId": "12ab34cd-59af-4b2c-a660-1abcdef23456", + "DBInstanceClass": "db.t3.micro", + "StartTime": "2020-06-01T13:44:21.436Z", + "Duration": 31536000, + "FixedPrice": 0.0, + "UsagePrice": 0.0, + "CurrencyCode": "USD", + "DBInstanceCount": 1, + "ProductDescription": "sqlserver-ex(li)", + "OfferingType": "No Upfront", + "MultiAZ": false, + "State": "payment-pending", + "RecurringCharges": [ + { + "RecurringChargeAmount": 0.014, + "RecurringChargeFrequency": "Hourly" + } + ], + "ReservedDBInstanceArn": "arn:aws:rds:us-west-2:123456789012:ri:myreservedinstance", + "LeaseId": "a1b2c3d4-6b69-4a59-be89-5e11aa446666" + } + ] + } + +For more information, see `Reserved DB Instances for Amazon RDS `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-source-regions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-source-regions.rst new file mode 100644 index 000000000..edcabe726 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-source-regions.rst @@ -0,0 +1,141 @@ +**To describe source Regions** + +The following ``describe-source-regions`` example retrieves details about all source AWS Regions. It also shows that automated backups can be replicated only from US West (Oregon) to the destination AWS Region, US East (N. Virginia). :: + + aws rds describe-source-regions \ + --region us-east-1 + +Output:: + + { + "SourceRegions": [ + { + "RegionName": "af-south-1", + "Endpoint": "https://rds.af-south-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": false + }, + { + "RegionName": "ap-east-1", + "Endpoint": "https://rds.ap-east-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": false + }, + { + "RegionName": "ap-northeast-1", + "Endpoint": "https://rds.ap-northeast-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "ap-northeast-2", + "Endpoint": "https://rds.ap-northeast-2.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "ap-northeast-3", + "Endpoint": "https://rds.ap-northeast-3.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": false + }, + { + "RegionName": "ap-south-1", + "Endpoint": "https://rds.ap-south-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "ap-southeast-1", + "Endpoint": "https://rds.ap-southeast-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "ap-southeast-2", + "Endpoint": "https://rds.ap-southeast-2.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "ap-southeast-3", + "Endpoint": "https://rds.ap-southeast-3.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": false + }, + { + "RegionName": "ca-central-1", + "Endpoint": "https://rds.ca-central-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "eu-north-1", + "Endpoint": "https://rds.eu-north-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "eu-south-1", + "Endpoint": "https://rds.eu-south-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": false + }, + { + "RegionName": "eu-west-1", + "Endpoint": "https://rds.eu-west-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "eu-west-2", + "Endpoint": "https://rds.eu-west-2.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "eu-west-3", + "Endpoint": "https://rds.eu-west-3.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "me-central-1", + "Endpoint": "https://rds.me-central-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": false + }, + { + "RegionName": "me-south-1", + "Endpoint": "https://rds.me-south-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": false + }, + { + "RegionName": "sa-east-1", + "Endpoint": "https://rds.sa-east-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "us-east-2", + "Endpoint": "https://rds.us-east-2.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "us-west-1", + "Endpoint": "https://rds.us-west-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "us-west-2", + "Endpoint": "https://rds.us-west-2.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + } + ] + } + +For more information, see `Finding information about replicated backups `__ in the *Amazon RDS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-valid-db-instance-modifications.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-valid-db-instance-modifications.rst new file mode 100644 index 000000000..aa4e7cffc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/describe-valid-db-instance-modifications.rst @@ -0,0 +1,95 @@ +**To describe valid modifications for a DB instance** + +The following ``describe-valid-db-instance-modifications`` example retrieves details about the valid modifications for the specified DB instance. :: + + aws rds describe-valid-db-instance-modifications \ + --db-instance-identifier test-instance + +Output:: + + { + "ValidDBInstanceModificationsMessage": { + "ValidProcessorFeatures": [], + "Storage": [ + { + "StorageSize": [ + { + "Step": 1, + "To": 20, + "From": 20 + }, + { + "Step": 1, + "To": 6144, + "From": 22 + } + ], + "ProvisionedIops": [ + { + "Step": 1, + "To": 0, + "From": 0 + } + ], + "IopsToStorageRatio": [ + { + "To": 0.0, + "From": 0.0 + } + ], + "StorageType": "gp2" + }, + { + "StorageSize": [ + { + "Step": 1, + "To": 6144, + "From": 100 + } + ], + "ProvisionedIops": [ + { + "Step": 1, + "To": 40000, + "From": 1000 + } + ], + "IopsToStorageRatio": [ + { + "To": 50.0, + "From": 1.0 + } + ], + "StorageType": "io1" + }, + { + "StorageSize": [ + { + "Step": 1, + "To": 20, + "From": 20 + }, + { + "Step": 1, + "To": 3072, + "From": 22 + } + ], + "ProvisionedIops": [ + { + "Step": 1, + "To": 0, + "From": 0 + } + ], + "IopsToStorageRatio": [ + { + "To": 0.0, + "From": 0.0 + } + ], + "StorageType": "magnetic" + } + ] + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/download-db-log-file-portion.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/download-db-log-file-portion.rst new file mode 100644 index 000000000..3dd10e852 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/download-db-log-file-portion.rst @@ -0,0 +1,22 @@ +**Example 1: To download the latest part of a DB log file** + +The following ``download-db-log-file-portion`` example downloads only the latest part of your log file, saving it to a local file named ``tail.txt``. :: + + aws rds download-db-log-file-portion \ + --db-instance-identifier test-instance \ + --log-file-name log.txt \ + --output text > tail.txt + +The saved file might contain blank lines. They appear at the end of each part of the log file while being downloaded. + +**Example 2: To download an entire DB log file** + +The following ``download-db-log-file-portion`` example downloads the entire log file, using the ``--starting-token 0`` parameter, and saves the output to a local file named ``full.txt``. :: + + aws rds download-db-log-file-portion \ + --db-instance-identifier test-instance \ + --log-file-name log.txt \ + --starting-token 0 \ + --output text > full.txt + +The saved file might contain blank lines. They appear at the end of each part of the log file while being downloaded. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/generate-auth-token.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/generate-auth-token.rst new file mode 100644 index 000000000..b2866a45a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/generate-auth-token.rst @@ -0,0 +1,13 @@ +**To generate an authentication token** + +The following ``generate-db-auth-token`` example generates an authentication token for use with IAM database authentication. :: + + aws rds generate-db-auth-token \ + --hostname aurmysql-test.cdgmuqiadpid.us-west-2.rds.amazonaws.com \ + --port 3306 \ + --region us-east-1 \ + --username jane_doe + +Output:: + + aurmysql-test.cdgmuqiadpid.us-west-2.rds.amazonaws.com:3306/?Action=connect&DBUser=jane_doe&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIESZCNJ3OEXAMPLE%2F20180731%2Fus-east-1%2Frds-db%2Faws4_request&X-Amz-Date=20180731T235209Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=5a8753ebEXAMPLEa2c724e5667797EXAMPLE9d6ec6e3f427191fa41aeEXAMPLE diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/generate-db-auth-token.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/generate-db-auth-token.rst new file mode 100644 index 000000000..577b921c0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/generate-db-auth-token.rst @@ -0,0 +1,15 @@ +**To generate an IAM authentication token** + +The following ``generate-db-auth-token`` example generates IAM authentication token to connect to a database. :: + + aws rds generate-db-auth-token \ + --hostname mydb.123456789012.us-east-1.rds.amazonaws.com \ + --port 3306 \ + --region us-east-1 \ + --username db_user + +Output:: + + mydb.123456789012.us-east-1.rds.amazonaws.com:3306/?Action=connect&DBUser=db_user&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIEXAMPLE%2Fus-east-1%2Frds-db%2Faws4_request&X-Amz-Date=20210123T011543Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=88987EXAMPLE1EXAMPLE2EXAMPLE3EXAMPLE4EXAMPLE5EXAMPLE6 + +For more information, see `Connecting to your DB instance using IAM authentication `__ in the *Amazon RDS User Guide* and `Connecting to your DB cluster using IAM authentication `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/list-tags-for-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/list-tags-for-resource.rst new file mode 100644 index 000000000..60a8a53c4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/list-tags-for-resource.rst @@ -0,0 +1,23 @@ +**To list tags on an Amazon RDS resource** + +The following ``list-tags-for-resource`` example lists all tags on a DB instance. :: + + aws rds list-tags-for-resource \ + --resource-name arn:aws:rds:us-east-1:123456789012:db:orcl1 + +Output:: + + { + "TagList": [ + { + "Key": "Environment", + "Value": "test" + }, + { + "Key": "Name", + "Value": "MyDatabase" + } + ] + } + +For more information, see `Tagging Amazon RDS Resources `__ in the *Amazon RDS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-certificates.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-certificates.rst new file mode 100644 index 000000000..313494f08 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-certificates.rst @@ -0,0 +1,23 @@ +**To temporarily override the system-default SSL/TLS certificate for new DB instances** + +The following ``modify-certificates`` example temporarily overrides the system-default SSL/TLS certificate for new DB instances. :: + + aws rds modify-certificates \ + --certificate-identifier rds-ca-2019 + +Output:: + + { + "Certificate": { + "CertificateIdentifier": "rds-ca-2019", + "CertificateType": "CA", + "Thumbprint": "EXAMPLE123456789012", + "ValidFrom": "2019-09-19T18:16:53Z", + "ValidTill": "2024-08-22T17:08:50Z", + "CertificateArn": "arn:aws:rds:us-east-1::cert:rds-ca-2019", + "CustomerOverride": true, + "CustomerOverrideValidTill": "2024-08-22T17:08:50Z" + } + } + +For more information, see `Rotating your SSL/TLS certificate `__ in the *Amazon RDS User Guide* and `Rotating your SSL/TLS certificate `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-current-db-cluster-capacity.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-current-db-cluster-capacity.rst new file mode 100644 index 000000000..8d2c79621 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-current-db-cluster-capacity.rst @@ -0,0 +1,19 @@ +**To scale the capacity of an Aurora Serverless DB cluster** + +The following ``modify-current-db-cluster-capacity`` example scales the capacity of an Aurora Serverless DB cluster to 8. :: + + aws rds modify-current-db-cluster-capacity \ + --db-cluster-identifier mydbcluster \ + --capacity 8 + +Output:: + + { + "DBClusterIdentifier": "mydbcluster", + "PendingCapacity": 8, + "CurrentCapacity": 1, + "SecondsBeforeTimeout": 300, + "TimeoutAction": "ForceApplyCapacityChange" + } + +For more information, see `Scaling Aurora Serverless v1 DB cluster capacity manually `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-cluster-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-cluster-endpoint.rst new file mode 100644 index 000000000..d408d29a5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-cluster-endpoint.rst @@ -0,0 +1,28 @@ +**To modify a custom DB cluster endpoint** + +The following ``modify-db-cluster-endpoint`` example modifies the specified custom DB cluster endpoint. :: + + aws rds modify-db-cluster-endpoint \ + --db-cluster-endpoint-identifier mycustomendpoint \ + --static-members dbinstance1 dbinstance2 dbinstance3 + +Output:: + + { + "DBClusterEndpointIdentifier": "mycustomendpoint", + "DBClusterIdentifier": "mydbcluster", + "DBClusterEndpointResourceIdentifier": "cluster-endpoint-ANPAJ4AE5446DAEXAMPLE", + "Endpoint": "mycustomendpoint.cluster-custom-cnpexample.us-east-1.rds.amazonaws.com", + "Status": "modifying", + "EndpointType": "CUSTOM", + "CustomEndpointType": "READER", + "StaticMembers": [ + "dbinstance1", + "dbinstance2", + "dbinstance3" + ], + "ExcludedMembers": [], + "DBClusterEndpointArn": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:mycustomendpoint" + } + +For more information, see `Amazon Aurora Connection Management `__ in the *Amazon Aurora User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-cluster-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-cluster-parameter-group.rst new file mode 100644 index 000000000..c659452dc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-cluster-parameter-group.rst @@ -0,0 +1,16 @@ +**To modify parameters in a DB cluster parameter group** + +The following ``modify-db-cluster-parameter-group`` example modifies the values of parameters in a DB cluster parameter group. :: + + aws rds modify-db-cluster-parameter-group \ + --db-cluster-parameter-group-name mydbclusterpg \ + --parameters "ParameterName=server_audit_logging,ParameterValue=1,ApplyMethod=immediate" \ + "ParameterName=server_audit_logs_upload,ParameterValue=1,ApplyMethod=immediate" + +Output:: + + { + "DBClusterParameterGroupName": "mydbclusterpg" + } + +For more information, see `Working with DB parameter groups and DB cluster parameter groups `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-cluster-snapshot-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-cluster-snapshot-attribute.rst new file mode 100644 index 000000000..3aa08bd3e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-cluster-snapshot-attribute.rst @@ -0,0 +1,26 @@ +**To modify a DB cluster snapshot attribute** + +The following ``modify-db-cluster-snapshot-attribute`` example makes changes to the specified DB cluster snapshot attribute. :: + + aws rds modify-db-cluster-snapshot-attribute \ + --db-cluster-snapshot-identifier myclustersnapshot \ + --attribute-name restore \ + --values-to-add 123456789012 + +Output:: + + { + "DBClusterSnapshotAttributesResult": { + "DBClusterSnapshotIdentifier": "myclustersnapshot", + "DBClusterSnapshotAttributes": [ + { + "AttributeName": "restore", + "AttributeValues": [ + "123456789012" + ] + } + ] + } + } + +For more information, see `Restoring from a DB Cluster Snapshot `__ in the *Amazon Aurora User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-cluster.rst new file mode 100644 index 000000000..ba40e3579 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-cluster.rst @@ -0,0 +1,125 @@ +**Example 1: To modify a DB cluster** + +The following ``modify-db-cluster`` example changes the master user password for the DB cluster named ``cluster-2`` and sets the backup retention period to 14 days. The ``--apply-immediately`` parameter causes the changes to be made immediately, instead of waiting until the next maintenance window. :: + + aws rds modify-db-cluster \ + --db-cluster-identifier cluster-2 \ + --backup-retention-period 14 \ + --master-user-password newpassword99 \ + --apply-immediately + +Output:: + + { + "DBCluster": { + "AllocatedStorage": 1, + "AvailabilityZones": [ + "eu-central-1b", + "eu-central-1c", + "eu-central-1a" + ], + "BackupRetentionPeriod": 14, + "DatabaseName": "", + "DBClusterIdentifier": "cluster-2", + "DBClusterParameterGroup": "default.aurora5.6", + "DBSubnetGroup": "default-vpc-2305ca49", + "Status": "available", + "EarliestRestorableTime": "2020-06-03T02:07:29.637Z", + "Endpoint": "cluster-2.cluster-############.eu-central-1.rds.amazonaws.com", + "ReaderEndpoint": "cluster-2.cluster-ro-############.eu-central-1.rds.amazonaws.com", + "MultiAZ": false, + "Engine": "aurora", + "EngineVersion": "5.6.10a", + "LatestRestorableTime": "2020-06-04T15:11:25.748Z", + "Port": 3306, + "MasterUsername": "admin", + "PreferredBackupWindow": "01:55-02:25", + "PreferredMaintenanceWindow": "thu:21:14-thu:21:44", + "ReadReplicaIdentifiers": [], + "DBClusterMembers": [ + { + "DBInstanceIdentifier": "cluster-2-instance-1", + "IsClusterWriter": true, + "DBClusterParameterGroupStatus": "in-sync", + "PromotionTier": 1 + } + ], + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-20a5c047", + "Status": "active" + } + ], + "HostedZoneId": "Z1RLNU0EXAMPLE", + "StorageEncrypted": true, + "KmsKeyId": "arn:aws:kms:eu-central-1:123456789012:key/d1bd7c8f-5cdb-49ca-8a62-a1b2c3d4e5f6", + "DbClusterResourceId": "cluster-AGJ7XI77XVIS6FUXHU1EXAMPLE", + "DBClusterArn": "arn:aws:rds:eu-central-1:123456789012:cluster:cluster-2", + "AssociatedRoles": [], + "IAMDatabaseAuthenticationEnabled": false, + "ClusterCreateTime": "2020-04-03T14:44:02.764Z", + "EngineMode": "provisioned", + "DeletionProtection": false, + "HttpEndpointEnabled": false, + "CopyTagsToSnapshot": true, + "CrossAccountClone": false, + "DomainMemberships": [] + } + } + +For more information, see `Modifying an Amazon Aurora DB Cluster `__ in the *Amazon Aurora User Guide*. + +**Example 2: To associate VPC security group with a DB cluster** + +The following ``modify-db-instance`` example associates a specific VPC security group and removes DB security groups from a DB cluster. :: + + aws rds modify-db-cluster \ + --db-cluster-identifier dbName \ + --vpc-security-group-ids sg-ID + +Output:: + + { + "DBCluster": { + "AllocatedStorage": 1, + "AvailabilityZones": [ + "us-west-2c", + "us-west-2b", + "us-west-2a" + ], + "BackupRetentionPeriod": 1, + "DBClusterIdentifier": "dbName", + "DBClusterParameterGroup": "default.aurora-mysql8.0", + "DBSubnetGroup": "default", + "Status": "available", + "EarliestRestorableTime": "2024-02-15T01:12:13.966000+00:00", + "Endpoint": "dbName.cluster-abcdefghji.us-west-2.rds.amazonaws.com", + "ReaderEndpoint": "dbName.cluster-ro-abcdefghji.us-west-2.rds.amazonaws.com", + "MultiAZ": false, + "Engine": "aurora-mysql", + "EngineVersion": "8.0.mysql_aurora.3.04.1", + "LatestRestorableTime": "2024-02-15T02:25:33.696000+00:00", + "Port": 3306, + "MasterUsername": "admin", + "PreferredBackupWindow": "10:59-11:29", + "PreferredMaintenanceWindow": "thu:08:54-thu:09:24", + "ReadReplicaIdentifiers": [], + "DBClusterMembers": [ + { + "DBInstanceIdentifier": "dbName-instance-1", + "IsClusterWriter": true, + "DBClusterParameterGroupStatus": "in-sync", + "PromotionTier": 1 + } + ], + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-ID", + "Status": "active" + } + ], + ...output omitted... + } + } + +For more information, see `Controlling access with security groups `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-instance.rst new file mode 100644 index 000000000..e4f7f2cb0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-instance.rst @@ -0,0 +1,102 @@ +**Example 1: To modify a DB instance** + +The following ``modify-db-instance`` example associates an option group and a parameter group with a compatible Microsoft SQL Server DB instance. The ``--apply-immediately`` parameter causes the option and parameter groups to be associated immediately, instead of waiting until the next maintenance window. :: + + aws rds modify-db-instance \ + --db-instance-identifier database-2 \ + --option-group-name test-se-2017 \ + --db-parameter-group-name test-sqlserver-se-2017 \ + --apply-immediately + +Output:: + + { + "DBInstance": { + "DBInstanceIdentifier": "database-2", + "DBInstanceClass": "db.r4.large", + "Engine": "sqlserver-se", + "DBInstanceStatus": "available", + + ...output omitted... + + "DBParameterGroups": [ + { + "DBParameterGroupName": "test-sqlserver-se-2017", + "ParameterApplyStatus": "applying" + } + ], + "AvailabilityZone": "us-west-2d", + + ...output omitted... + + "MultiAZ": true, + "EngineVersion": "14.00.3281.6.v1", + "AutoMinorVersionUpgrade": false, + "ReadReplicaDBInstanceIdentifiers": [], + "LicenseModel": "license-included", + "OptionGroupMemberships": [ + { + "OptionGroupName": "test-se-2017", + "Status": "pending-apply" + } + ], + "CharacterSetName": "SQL_Latin1_General_CP1_CI_AS", + "SecondaryAvailabilityZone": "us-west-2c", + "PubliclyAccessible": true, + "StorageType": "gp2", + + ...output omitted... + + "DeletionProtection": false, + "AssociatedRoles": [], + "MaxAllocatedStorage": 1000 + } + } + +For more information, see `Modifying an Amazon RDS DB Instance `__ in the *Amazon RDS User Guide*. + +**Example 2: To associate VPC security group with a DB instance** + +The following ``modify-db-instance`` example associates a specific VPC security group and removes DB security groups from a DB instance:: + + aws rds modify-db-instance \ + --db-instance-identifier dbName \ + --vpc-security-group-ids sg-ID + +Output:: + + { + "DBInstance": { + "DBInstanceIdentifier": "dbName", + "DBInstanceClass": "db.t3.micro", + "Engine": "mysql", + "DBInstanceStatus": "available", + "MasterUsername": "admin", + "Endpoint": { + "Address": "dbName.abcdefghijk.us-west-2.rds.amazonaws.com", + "Port": 3306, + "HostedZoneId": "ABCDEFGHIJK1234" + }, + "AllocatedStorage": 20, + "InstanceCreateTime": "2024-02-15T00:37:58.793000+00:00", + "PreferredBackupWindow": "11:57-12:27", + "BackupRetentionPeriod": 7, + "DBSecurityGroups": [], + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-ID", + "Status": "active" + } + ], + ... output omitted ... + "MultiAZ": false, + "EngineVersion": "8.0.35", + "AutoMinorVersionUpgrade": true, + "ReadReplicaDBInstanceIdentifiers": [], + "LicenseModel": "general-public-license", + + ... output omitted ... + } + } + +For more information, see `Controlling access with security groups `__ in the *Amazon RDS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-parameter-group.rst new file mode 100644 index 000000000..7f86a1ca9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-parameter-group.rst @@ -0,0 +1,16 @@ +**To modify a DB parameter group** + +The following ``modify-db-parameter-group`` example changes the value of the ``clr enabled`` parameter in a DB parameter group. The ``--apply-immediately`` parameter causes the DB parameter group to be modified immediately, instead of waiting until the next maintenance window. :: + + aws rds modify-db-parameter-group \ + --db-parameter-group-name test-sqlserver-se-2017 \ + --parameters "ParameterName='clr enabled',ParameterValue=1,ApplyMethod=immediate" + + +Output:: + + { + "DBParameterGroupName": "test-sqlserver-se-2017" + } + +For more information, see `Modifying Parameters in a DB Parameter Group `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-proxy-endpoint.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-proxy-endpoint.rst new file mode 100644 index 000000000..9ffd97dd1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-proxy-endpoint.rst @@ -0,0 +1,33 @@ +**To modify a DB proxy endpoint for an RDS database** + +The following ``modify-db-proxy-endpoint`` example modifies a DB proxy endpoint ``proxyEndpoint`` to set the read-timeout to 65 seconds. :: + + aws rds modify-db-proxy-endpoint \ + --db-proxy-endpoint-name proxyEndpoint \ + --cli-read-timeout 65 + +Output:: + + { + "DBProxyEndpoint": + { + "DBProxyEndpointName": "proxyEndpoint", + "DBProxyEndpointArn": "arn:aws:rds:us-east-1:123456789012:db-proxy-endpoint:prx-endpoint-0123a01b12345c0ab", + "DBProxyName": "proxyExample", + "Status": "available", + "VpcId": "vpc-1234567", + "VpcSecurityGroupIds": [ + "sg-1234" + ], + "VpcSubnetIds": [ + "subnetgroup1", + "subnetgroup2" + ], + "Endpoint": "proxyEndpoint.endpoint.proxyExample-ab0cd1efghij.us-east-1.rds.amazonaws.com", + "CreatedDate": "2023-04-05T16:09:33.452000+00:00", + "TargetRole": "READ_WRITE", + "IsDefault": "false" + } + } + +For more information, see `Modifying a proxy endpoint `__ in the *Amazon RDS User Guide* and `Modifying a proxy endpoint `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-proxy-target-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-proxy-target-group.rst new file mode 100644 index 000000000..5b80bea4b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-proxy-target-group.rst @@ -0,0 +1,34 @@ +**To modify a DB proxy endpoints** + +The following ``modify-db-proxy-target-group`` example modifies a DB proxy target group to set the maximum connections to 80 percent and maximum idle connections to 10 percent. :: + + aws rds modify-db-proxy-target-group \ + --target-group-name default \ + --db-proxy-name proxyExample \ + --connection-pool-config MaxConnectionsPercent=80,MaxIdleConnectionsPercent=10 + + +Output:: + + { + "DBProxyTargetGroup": + { + "DBProxyName": "proxyExample", + "TargetGroupName": "default", + "TargetGroupArn": "arn:aws:rds:us-east-1:123456789012:target-group:prx-tg-0123a01b12345c0ab", + "IsDefault": true, + "Status": "available", + "ConnectionPoolConfig": { + "MaxConnectionsPercent": 80, + "MaxIdleConnectionsPercent": 10, + "ConnectionBorrowTimeout": 120, + "SessionPinningFilters": [] + }, + "CreatedDate": "2023-05-02T18:41:19.495000+00:00", + "UpdatedDate": "2023-05-02T18:41:21.762000+00:00" + } + } + +For more information, see `Modifying an RDS Proxy `__ in the *Amazon RDS User Guide* and `Modifying an RDS Proxy `__ in the *Amazon Aurora User Guide*. + + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-proxy.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-proxy.rst new file mode 100644 index 000000000..aefbd0cd7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-proxy.rst @@ -0,0 +1,44 @@ +**To modify a DB proxy for an RDS database** + +The following ``modify-db-proxy`` example modifies a DB proxy named ``proxyExample`` to require SSL for its connections. :: + + aws rds modify-db-proxy \ + --db-proxy-name proxyExample \ + --require-tls + +Output:: + + { + "DBProxy": + { + "DBProxyName": "proxyExample", + "DBProxyArn": "arn:aws:rds:us-east-1:123456789012:db-proxy:prx-0123a01b12345c0ab", + "Status": "modifying" + "EngineFamily": "PostgreSQL", + "VpcId": "sg-1234567", + "VpcSecurityGroupIds": [ + "sg-1234" + ], + "VpcSubnetIds": [ + "subnetgroup1", + "subnetgroup2" + ], + "Auth": "[ + { + "Description": "proxydescription1", + "AuthScheme": "SECRETS", + "SecretArn": "arn:aws:secretsmanager:us-west-2:123456789123:secret:proxysecret1-Abcd1e", + "IAMAuth": "DISABLED" + } + ]", + "RoleArn": "arn:aws:iam::12345678912:role/ProxyPostgreSQLRole", + "Endpoint": "proxyExample.proxy-ab0cd1efghij.us-east-1.rds.amazonaws.com", + "RequireTLS": true, + "IdleClientTimeout": 1800, + "DebuggingLogging": false, + "CreatedDate": "2023-04-05T16:09:33.452000+00:00", + "UpdatedDate": "2023-04-13T01:49:38.568000+00:00" + } + } + +For more information, see `Modify an RDS Proxy `__ in the *Amazon RDS User Guide* and `Creating an RDS Proxy `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-shard-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-shard-group.rst new file mode 100644 index 000000000..cb45a8b38 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-shard-group.rst @@ -0,0 +1,61 @@ +**Example 1: To modify a DB shard group** + +The following ``modify-db-shard-group`` example changes the maximum capacity of a DB shard group. :: + + aws rds modify-db-shard-group \ + --db-shard-group-identifier my-db-shard-group \ + --max-acu 1000 + +Output:: + + { + "DBShardGroups": [ + { + "DBShardGroupResourceId": "shardgroup-a6e3a0226aa243e2ac6c7a1234567890", + "DBShardGroupIdentifier": "my-db-shard-group", + "DBClusterIdentifier": "my-sv2-cluster", + "MaxACU": 768.0, + "ComputeRedundancy": 0, + "Status": "available", + "PubliclyAccessible": false, + "Endpoint": "my-sv2-cluster.limitless-cekycexample.us-east-2.rds.amazonaws.com" + } + ] + } + +For more information, see `Amazon Aurora DB Clusters `__ in the *Amazon Aurora User Guide*. + +**Example 2: To describe your DB shard groups** + +The following ``describe-db-shard-groups`` example retrieves the details of your DB shard groups after you run the ``modify-db-shard-group`` command. The maximum capacity of the DB shard group ``my-db-shard-group`` is now 1000 Aurora capacity units (ACUs). :: + + aws rds describe-db-shard-groups + +Output:: + + { + "DBShardGroups": [ + { + "DBShardGroupResourceId": "shardgroup-7bb446329da94788b3f957746example", + "DBShardGroupIdentifier": "limitless-test-shard-grp", + "DBClusterIdentifier": "limitless-test-cluster", + "MaxACU": 768.0, + "ComputeRedundancy": 0, + "Status": "available", + "PubliclyAccessible": true, + "Endpoint": "limitless-test-cluster.limitless-cekycexample.us-east-2.rds.amazonaws.com" + }, + { + "DBShardGroupResourceId": "shardgroup-a6e3a0226aa243e2ac6c7a1234567890", + "DBShardGroupIdentifier": "my-db-shard-group", + "DBClusterIdentifier": "my-sv2-cluster", + "MaxACU": 1000.0, + "ComputeRedundancy": 0, + "Status": "available", + "PubliclyAccessible": false, + "Endpoint": "my-sv2-cluster.limitless-cekycexample.us-east-2.rds.amazonaws.com" + } + ] + } + +For more information, see `Amazon Aurora DB Clusters `__ in the *Amazon Aurora User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-snapshot-attribute.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-snapshot-attribute.rst new file mode 100644 index 000000000..cc6f888ae --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-snapshot-attribute.rst @@ -0,0 +1,54 @@ +**Example 1: To enable two AWS accounts to restore a DB snapshot** + +The following ``modify-db-snapshot-attribute`` example grants permission to two AWS accounts, with the identifiers ``111122223333`` and ``444455556666``, to restore the DB snapshot named ``mydbsnapshot``. :: + + aws rds modify-db-snapshot-attribute \ + --db-snapshot-identifier mydbsnapshot \ + --attribute-name restore \ + --values-to-add {"111122223333","444455556666"} + +Output:: + + { + "DBSnapshotAttributesResult": { + "DBSnapshotIdentifier": "mydbsnapshot", + "DBSnapshotAttributes": [ + { + "AttributeName": "restore", + "AttributeValues": [ + "111122223333", + "444455556666" + ] + } + ] + } + } + +For more information, see `Sharing a Snapshot `__ in the *Amazon RDS User Guide*. + +**Example 2: To prevent an AWS account from restoring a DB snapshot** + +The following ``modify-db-snapshot-attribute`` example removes permission from a particular AWS account to restore the DB snapshot named ``mydbsnapshot``. When specifying a single account, the account identifier can't be surrounded by quotations marks or braces. :: + + aws rds modify-db-snapshot-attribute \ + --db-snapshot-identifier mydbsnapshot \ + --attribute-name restore \ + --values-to-remove 444455556666 + +Output:: + + { + "DBSnapshotAttributesResult": { + "DBSnapshotIdentifier": "mydbsnapshot", + "DBSnapshotAttributes": [ + { + "AttributeName": "restore", + "AttributeValues": [ + "111122223333" + ] + } + ] + } + } + +For more information, see `Sharing a Snapshot `__ in the *Amazon RDS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-snapshot-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-snapshot-attributes.rst new file mode 100644 index 000000000..ca32a805d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-snapshot-attributes.rst @@ -0,0 +1,27 @@ +**To modify a DB snapshot attribute** + +The following ``modify-db-snapshot-attribute`` example permits two AWS account identifiers, ``111122223333`` and ``444455556666``, to restore the DB snapshot named ``mydbsnapshot``. :: + + aws rds modify-db-snapshot-attribute \ + --db-snapshot-identifier mydbsnapshot \ + --attribute-name restore \ + --values-to-add '["111122223333","444455556666"]' + +Output:: + + { + "DBSnapshotAttributesResult": { + "DBSnapshotIdentifier": "mydbsnapshot", + "DBSnapshotAttributes": [ + { + "AttributeName": "restore", + "AttributeValues": [ + "111122223333", + "444455556666" + ] + } + ] + } + } + +For more information, see `Sharing a Snapshot `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-snapshot.rst new file mode 100644 index 000000000..5bc7d1e18 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-snapshot.rst @@ -0,0 +1,38 @@ +**To modify a DB snapshot** + +The following ``modify-db-snapshot`` example upgrades a PostgeSQL 10.6 snapshot named ``db5-snapshot-upg-test`` to PostgreSQL 11.7. The new DB engine version is shown after the snapshot has finished upgrading and its status is **available**. :: + + aws rds modify-db-snapshot \ + --db-snapshot-identifier db5-snapshot-upg-test \ + --engine-version 11.7 + +Output:: + + { + "DBSnapshot": { + "DBSnapshotIdentifier": "db5-snapshot-upg-test", + "DBInstanceIdentifier": "database-5", + "SnapshotCreateTime": "2020-03-27T20:49:17.092Z", + "Engine": "postgres", + "AllocatedStorage": 20, + "Status": "upgrading", + "Port": 5432, + "AvailabilityZone": "us-west-2a", + "VpcId": "vpc-2ff27557", + "InstanceCreateTime": "2020-03-27T19:59:04.735Z", + "MasterUsername": "postgres", + "EngineVersion": "10.6", + "LicenseModel": "postgresql-license", + "SnapshotType": "manual", + "OptionGroupName": "default:postgres-11", + "PercentProgress": 100, + "StorageType": "gp2", + "Encrypted": false, + "DBSnapshotArn": "arn:aws:rds:us-west-2:123456789012:snapshot:db5-snapshot-upg-test", + "IAMDatabaseAuthenticationEnabled": false, + "ProcessorFeatures": [], + "DbiResourceId": "db-GJMF75LM42IL6BTFRE4UZJ5YM4" + } + } + +For more information, see `Upgrading a PostgreSQL DB Snapshot `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-subnet-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-subnet-group.rst new file mode 100644 index 000000000..0c75aa4c7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-db-subnet-group.rst @@ -0,0 +1,51 @@ +**To modify a DB subnet group** + +The following ``modify-db-subnet-group`` example adds a subnet with the ID ``subnet-08e41f9e230222222`` to the DB subnet group named ``mysubnetgroup``. To keep the existing subnets in the subnet group, include their IDs as values in the ``--subnet-ids`` option. Make sure to have subnets with at least two different Availability Zones in the DB subnet group. :: + + aws rds modify-db-subnet-group \ + --db-subnet-group-name mysubnetgroup \ + --subnet-ids '["subnet-0a1dc4e1a6f123456","subnet-070dd7ecb3aaaaaaa","subnet-00f5b198bc0abcdef","subnet-08e41f9e230222222"]' + +Output:: + + { + "DBSubnetGroup": { + "DBSubnetGroupName": "mysubnetgroup", + "DBSubnetGroupDescription": "test DB subnet group", + "VpcId": "vpc-0f08e7610a1b2c3d4", + "SubnetGroupStatus": "Complete", + "Subnets": [ + { + "SubnetIdentifier": "subnet-08e41f9e230222222", + "SubnetAvailabilityZone": { + "Name": "us-west-2a" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-070dd7ecb3aaaaaaa", + "SubnetAvailabilityZone": { + "Name": "us-west-2b" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-00f5b198bc0abcdef", + "SubnetAvailabilityZone": { + "Name": "us-west-2d" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-0a1dc4e1a6f123456", + "SubnetAvailabilityZone": { + "Name": "us-west-2b" + }, + "SubnetStatus": "Active" + } + ], + "DBSubnetGroupArn": "arn:aws:rds:us-west-2:534026745191:subgrp:mysubnetgroup" + } + } + +For more information, see `Step 3: Create a DB Subnet Group `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-event-subscription.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-event-subscription.rst new file mode 100644 index 000000000..a27fb1322 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-event-subscription.rst @@ -0,0 +1,26 @@ +**To modify an event subscription** + +The following ``modify-event-subscription`` example disables the specified event subscription, so that it no longer publishes notifications to the specified Amazon Simple Notification Service topic. :: + + aws rds modify-event-subscription \ + --subscription-name my-instance-events \ + --no-enabled + +Output:: + + { + "EventSubscription": { + "EventCategoriesList": [ + "backup", + "recovery" + ], + "CustomerAwsId": "123456789012", + "SourceType": "db-instance", + "SubscriptionCreationTime": "Tue Jul 31 23:22:01 UTC 2018", + "EventSubscriptionArn": "arn:aws:rds:us-east-1:123456789012:es:my-instance-events", + "SnsTopicArn": "arn:aws:sns:us-east-1:123456789012:interesting-events", + "CustSubscriptionId": "my-instance-events", + "Status": "modifying", + "Enabled": false + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-global-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-global-cluster.rst new file mode 100644 index 000000000..4e1a35471 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/modify-global-cluster.rst @@ -0,0 +1,25 @@ +**To modify a global DB cluster** + +The following ``modify-global-cluster`` example enables deletion protection for an Aurora MySQL-compatible global DB cluster. :: + + aws rds modify-global-cluster \ + --global-cluster-identifier myglobalcluster \ + --deletion-protection + +Output:: + + { + "GlobalCluster": { + "GlobalClusterIdentifier": "myglobalcluster", + "GlobalClusterResourceId": "cluster-f0e523bfe07aabb", + "GlobalClusterArn": "arn:aws:rds::123456789012:global-cluster:myglobalcluster", + "Status": "available", + "Engine": "aurora-mysql", + "EngineVersion": "5.7.mysql_aurora.2.07.2", + "StorageEncrypted": false, + "DeletionProtection": true, + "GlobalClusterMembers": [] + } + } + +For more information, see `Managing an Aurora global database `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/promote-read-replica-db-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/promote-read-replica-db-cluster.rst new file mode 100644 index 000000000..ac48b11fc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/promote-read-replica-db-cluster.rst @@ -0,0 +1,25 @@ +**To promote a DB cluster read replica** + +The following ``promote-read-replica-db-cluster`` example promotes the specified read replica to become a standalone DB cluster. :: + + aws rds promote-read-replica-db-cluster \ + --db-cluster-identifier mydbcluster-1 + +Output:: + + { + "DBCluster": { + "AllocatedStorage": 1, + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1c" + ], + "BackupRetentionPeriod": 1, + "DatabaseName": "", + "DBClusterIdentifier": "mydbcluster-1", + ...some output truncated... + } + } + +For more information, see `Promoting a read replica to be a DB cluster `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/promote-read-replica.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/promote-read-replica.rst new file mode 100644 index 000000000..f81e4b182 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/promote-read-replica.rst @@ -0,0 +1,18 @@ +**To promote a read replica** + +The following ``promote-read-replica`` example promotes the specified read replica to become a standalone DB instance. :: + + aws rds promote-read-replica \ + --db-instance-identifier test-instance-repl + +Output:: + + { + "DBInstance": { + "DBInstanceArn": "arn:aws:rds:us-east-1:123456789012:db:test-instance-repl", + "StorageType": "standard", + "ReadReplicaSourceDBInstanceIdentifier": "test-instance", + "DBInstanceStatus": "modifying", + ...some output truncated... + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/purchase-reserved-db-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/purchase-reserved-db-instance.rst new file mode 100644 index 000000000..37dd044b3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/purchase-reserved-db-instance.rst @@ -0,0 +1,7 @@ +**To purchase a reserved DB instance offering** + +The following ``purchase-reserved-db-instances-offering`` example purchases a reserved DB instance offering. The ``reserved-db-instances-offering-id`` must be a valid offering ID, as returned by the ``describe-reserved-db-instances-offering`` command. + + aws rds purchase-reserved-db-instances-offering \ + --reserved-db-instances-offering-id 438012d3-4a52-4cc7-b2e3-8dff72e0e706 + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/purchase-reserved-db-instances-offerings.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/purchase-reserved-db-instances-offerings.rst new file mode 100644 index 000000000..02e84fd17 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/purchase-reserved-db-instances-offerings.rst @@ -0,0 +1,71 @@ +**Example 1: To find a reserved DB instance to purchase** + +The following ``describe-reserved-db-instances-offerings`` example lists the available reserved MySQL DB instances with the db.t2.micro instance class and a duration of one year. The offering ID is required for purchasing a reserved DB instance. :: + + aws rds describe-reserved-db-instances-offerings \ + --product-description mysql \ + --db-instance-class db.t2.micro \ + --duration 1 + +Output:: + + { + "ReservedDBInstancesOfferings": [ + { + "ReservedDBInstancesOfferingId": "8ba30be1-b9ec-447f-8f23-6114e3f4c7b4", + "DBInstanceClass": "db.t2.micro", + "Duration": 31536000, + "FixedPrice": 51.0, + "UsagePrice": 0.0, + "CurrencyCode": "USD", + "ProductDescription": "mysql", + "OfferingType": "Partial Upfront", + "MultiAZ": false, + "RecurringCharges": [ + { + "RecurringChargeAmount": 0.006, + "RecurringChargeFrequency": "Hourly" + } + ] + }, + ... some output truncated ... + ] + } + +For more information, see `Reserved DB Instances for Amazon RDS `__ in the *Amazon RDS User Guide*. + +**Example 2: To purchase a reserved DB instance** + +The following ``purchase-reserved-db-instances-offering`` example shows how to buy the reserved DB instance offering from the previous example. + + aws rds purchase-reserved-db-instances-offering \ + --reserved-db-instances-offering-id 8ba30be1-b9ec-447f-8f23-6114e3f4c7b4 + +Output:: + + { + "ReservedDBInstance": { + "ReservedDBInstanceId": "ri-2020-06-29-16-54-57-670", + "ReservedDBInstancesOfferingId": "8ba30be1-b9ec-447f-8f23-6114e3f4c7b4", + "DBInstanceClass": "db.t2.micro", + "StartTime": "2020-06-29T16:54:57.670Z", + "Duration": 31536000, + "FixedPrice": 51.0, + "UsagePrice": 0.0, + "CurrencyCode": "USD", + "DBInstanceCount": 1, + "ProductDescription": "mysql", + "OfferingType": "Partial Upfront", + "MultiAZ": false, + "State": "payment-pending", + "RecurringCharges": [ + { + "RecurringChargeAmount": 0.006, + "RecurringChargeFrequency": "Hourly" + } + ], + "ReservedDBInstanceArn": "arn:aws:rds:us-west-2:123456789012:ri:ri-2020-06-29-16-54-57-670" + } + } + +For more information, see `Reserved DB Instances for Amazon RDS `__ in the *Amazon RDS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/reboot-db-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/reboot-db-instance.rst new file mode 100644 index 000000000..47c76e407 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/reboot-db-instance.rst @@ -0,0 +1,28 @@ +**To reboot a DB instance** + +The following ``reboot-db-instance`` example starts a reboot of the specified DB instance. :: + + aws rds reboot-db-instance \ + --db-instance-identifier test-mysql-instance + +Output:: + + { + "DBInstance": { + "DBInstanceIdentifier": "test-mysql-instance", + "DBInstanceClass": "db.t3.micro", + "Engine": "mysql", + "DBInstanceStatus": "rebooting", + "MasterUsername": "admin", + "Endpoint": { + "Address": "test-mysql-instance.############.us-west-2.rds.amazonaws.com", + "Port": 3306, + "HostedZoneId": "Z1PVIF0EXAMPLE" + }, + + ... output omitted... + + } + } + +For more information, see `Rebooting a DB Instance `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/reboot-db-shard-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/reboot-db-shard-group.rst new file mode 100644 index 000000000..5fa635d08 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/reboot-db-shard-group.rst @@ -0,0 +1,60 @@ +**Example 1: To reboot a DB shard group** + +The following ``reboot-db-shard-group`` example reboots a DB shard group. :: + + aws rds reboot-db-shard-group \ + --db-shard-group-identifier my-db-shard-group + +Output:: + + { + "DBShardGroups": [ + { + "DBShardGroupResourceId": "shardgroup-a6e3a0226aa243e2ac6c7a1234567890", + "DBShardGroupIdentifier": "my-db-shard-group", + "DBClusterIdentifier": "my-sv2-cluster", + "MaxACU": 1000.0, + "ComputeRedundancy": 0, + "Status": "available", + "PubliclyAccessible": false, + "Endpoint": "my-sv2-cluster.limitless-cekycexample.us-east-2.rds.amazonaws.com" + } + ] + } + +For more information, see `Rebooting an Amazon Aurora DB cluster or Amazon Aurora DB instance `__ in the *Amazon Aurora User Guide*. + +**Example 2: To describe your DB shard groups** + +The following ``describe-db-shard-groups`` example retrieves the details of your DB shard groups after you run the ``reboot-db-shard-group`` command. The DB shard group ``my-db-shard-group`` is now rebooting. :: + + aws rds describe-db-shard-groups + +Output:: + + { + "DBShardGroups": [ + { + "DBShardGroupResourceId": "shardgroup-7bb446329da94788b3f957746example", + "DBShardGroupIdentifier": "limitless-test-shard-grp", + "DBClusterIdentifier": "limitless-test-cluster", + "MaxACU": 768.0, + "ComputeRedundancy": 0, + "Status": "available", + "PubliclyAccessible": true, + "Endpoint": "limitless-test-cluster.limitless-cekycexample.us-east-2.rds.amazonaws.com" + }, + { + "DBShardGroupResourceId": "shardgroup-a6e3a0226aa243e2ac6c7a1234567890", + "DBShardGroupIdentifier": "my-db-shard-group", + "DBClusterIdentifier": "my-sv2-cluster", + "MaxACU": 1000.0, + "ComputeRedundancy": 0, + "Status": "rebooting", + "PubliclyAccessible": false, + "Endpoint": "my-sv2-cluster.limitless-cekycexample.us-east-2.rds.amazonaws.com" + } + ] + } + +For more information, see `Rebooting an Amazon Aurora DB cluster or Amazon Aurora DB instance `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/register-db-proxy-targets.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/register-db-proxy-targets.rst new file mode 100644 index 000000000..6883ba28b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/register-db-proxy-targets.rst @@ -0,0 +1,33 @@ +**To register a DB proxy with a database** + +The following ``register-db-proxy-targets`` example creates the association between a database and a proxy. :: + + aws rds register-db-proxy-targets \ + --db-proxy-name proxyExample \ + --db-cluster-identifiers database-5 + +Output:: + + { + "DBProxyTargets": [ + { + "RdsResourceId": "database-5", + "Port": 3306, + "Type": "TRACKED_CLUSTER", + "TargetHealth": { + "State": "REGISTERING" + } + }, + { + "Endpoint": "database-5instance-1.ab0cd1efghij.us-east-1.rds.amazonaws.com", + "RdsResourceId": "database-5", + "Port": 3306, + "Type": "RDS_INSTANCE", + "TargetHealth": { + "State": "REGISTERING" + } + } + ] + } + +For more information, see `Creating an RDS proxy `__ in the *Amazon RDS User Guide* and `Creating an RDS proxy `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/remove-from-global-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/remove-from-global-cluster.rst new file mode 100644 index 000000000..1ef0dfb4a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/remove-from-global-cluster.rst @@ -0,0 +1,40 @@ +**To detach an Aurora secondary cluster from an Aurora global database cluster** + +The following ``remove-from-global-cluster`` example detaches an Aurora secondary cluster from an Aurora global database cluster. The cluster changes from being read-only to a standalone cluster with read-write capability. :: + + aws rds remove-from-global-cluster \ + --region us-west-2 \ + --global-cluster-identifier myglobalcluster \ + --db-cluster-identifier arn:aws:rds:us-west-2:123456789012:cluster:DB-1 + +Output:: + + { + "GlobalCluster": { + "GlobalClusterIdentifier": "myglobalcluster", + "GlobalClusterResourceId": "cluster-abc123def456gh", + "GlobalClusterArn": "arn:aws:rds::123456789012:global-cluster:myglobalcluster", + "Status": "available", + "Engine": "aurora-postgresql", + "EngineVersion": "10.11", + "StorageEncrypted": true, + "DeletionProtection": false, + "GlobalClusterMembers": [ + { + "DBClusterArn": "arn:aws:rds:us-east-1:123456789012:cluster:js-global-cluster", + "Readers": [ + "arn:aws:rds:us-west-2:123456789012:cluster:DB-1" + ], + "IsWriter": true + }, + { + "DBClusterArn": "arn:aws:rds:us-west-2:123456789012:cluster:DB-1", + "Readers": [], + "IsWriter": false, + "GlobalWriteForwardingStatus": "disabled" + } + ] + } + } + +For more information, see `Removing a cluster from an Amazon Aurora global database `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/remove-option-from-option-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/remove-option-from-option-group.rst new file mode 100644 index 000000000..8c634252f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/remove-option-from-option-group.rst @@ -0,0 +1,24 @@ +**To delete an option from an option group** + +The following ``remove-option-from-option-group`` example removes the ``OEM`` option from ``myoptiongroup``. :: + + aws rds remove-option-from-option-group \ + --option-group-name myoptiongroup \ + --options OEM \ + --apply-immediately + +Output:: + + { + "OptionGroup": { + "OptionGroupName": "myoptiongroup", + "OptionGroupDescription": "Test", + "EngineName": "oracle-ee", + "MajorEngineVersion": "19", + "Options": [], + "AllowsVpcAndNonVpcInstanceMemberships": true, + "OptionGroupArn": "arn:aws:rds:us-east-1:123456789012:og:myoptiongroup" + } + } + +For more information, see `Removing an Option from an Option Group `__ in the *Amazon Aurora User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/remove-role-from-db-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/remove-role-from-db-cluster.rst new file mode 100644 index 000000000..5c8112cb5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/remove-role-from-db-cluster.rst @@ -0,0 +1,11 @@ +**To disassociate an AWS Identity and Access Management (IAM) role from a DB cluster** + +The following ``remove-role-from-db-cluster`` example removes a role from a DB cluster. :: + + aws rds remove-role-from-db-cluster \ + --db-cluster-identifier mydbcluster \ + --role-arn arn:aws:iam::123456789012:role/RDSLoadFromS3 + +This command produces no output. + +For more information, see `Associating an IAM role with an Amazon Aurora MySQL DB cluster `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/remove-role-from-db-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/remove-role-from-db-instance.rst new file mode 100644 index 000000000..196236379 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/remove-role-from-db-instance.rst @@ -0,0 +1,12 @@ +**To disassociate an AWS Identity and Access Management (IAM) role from a DB instance** + +The following ``remove-role-from-db-instance`` example removes the role named ``rds-s3-integration-role`` from an Oracle DB instance named ``test-instance``. :: + + aws rds remove-role-from-db-instance \ + --db-instance-identifier test-instance \ + --feature-name S3_INTEGRATION \ + --role-arn arn:aws:iam::111122223333:role/rds-s3-integration-role + +This command produces no output. + +For more information, see `Disabling RDS SQL Server Integration with S3 `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/remove-source-identifier-from-subscription.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/remove-source-identifier-from-subscription.rst new file mode 100644 index 000000000..b809d695f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/remove-source-identifier-from-subscription.rst @@ -0,0 +1,29 @@ +**To remove a source identifier from a subscription** + +The following ``remove-source-identifier`` example removes the specified source identifier from an existing subscription. :: + + aws rds remove-source-identifier-from-subscription \ + --subscription-name my-instance-events \ + --source-identifier test-instance-repl + +Output:: + + { + "EventSubscription": { + "EventSubscriptionArn": "arn:aws:rds:us-east-1:123456789012:es:my-instance-events", + "SubscriptionCreationTime": "Tue Jul 31 23:22:01 UTC 2018", + "EventCategoriesList": [ + "backup", + "recovery" + ], + "SnsTopicArn": "arn:aws:sns:us-east-1:123456789012:interesting-events", + "Status": "modifying", + "CustSubscriptionId": "my-instance-events", + "CustomerAwsId": "123456789012", + "SourceIdsList": [ + "test-instance" + ], + "SourceType": "db-instance", + "Enabled": false + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/remove-tags-from-resource.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/remove-tags-from-resource.rst new file mode 100644 index 000000000..cc446cbf1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/remove-tags-from-resource.rst @@ -0,0 +1,11 @@ +**To remove tags from a resource** + +The following ``remove-tags-from-resource`` example removes tags from a resource. :: + + aws rds remove-tags-from-resource \ + --resource-name arn:aws:rds:us-east-1:123456789012:db:mydbinstance \ + --tag-keys Name Environment + +This command produces no output. + +For more information, see `Tagging Amazon RDS resources `__ in the *Amazon RDS User Guide* and `Tagging Amazon RDS resources `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/reset-db-cluster-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/reset-db-cluster-parameter-group.rst new file mode 100644 index 000000000..099af5581 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/reset-db-cluster-parameter-group.rst @@ -0,0 +1,32 @@ +**Example 1: To reset all parameters to their default values** + +The following ``reset-db-cluster-parameter-group`` example resets all parameter values in a customer-created DB cluster parameter group to their default values. :: + + aws rds reset-db-cluster-parameter-group \ + --db-cluster-parameter-group-name mydbclpg \ + --reset-all-parameters + +Output:: + + { + "DBClusterParameterGroupName": "mydbclpg" + } + +For more information, see `Working with DB parameter groups and DB cluster parameter groups `__ in the *Amazon Aurora User Guide*. + +**Example 2: To reset specific parameters to their default values** + +The following ``reset-db-cluster-parameter-group`` example resets the parameter values for specific parameters to their default values in a customer-created DB cluster parameter group. :: + + aws rds reset-db-cluster-parameter-group \ + --db-cluster-parameter-group-name mydbclpgy \ + --parameters "ParameterName=max_connections,ApplyMethod=immediate" \ + "ParameterName=max_allowed_packet,ApplyMethod=immediate" + +Output:: + + { + "DBClusterParameterGroupName": "mydbclpg" + } + +For more information, see `Working with DB parameter groups and DB cluster parameter groups `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/reset-db-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/reset-db-parameter-group.rst new file mode 100644 index 000000000..0eb3205cd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/reset-db-parameter-group.rst @@ -0,0 +1,32 @@ +**Example 1: To reset all parameters to their default values** + +The following ``reset-db-parameter-group`` example resets all parameter values in a customer-created DB parameter group to their default values. :: + + aws rds reset-db-parameter-group \ + --db-parameter-group-name mypg \ + --reset-all-parameters + +Output:: + + { + "DBParameterGroupName": "mypg" + } + +For more information, see `Working with DB parameter groups `__ in the *Amazon RDS User Guide* and `Working with DB parameter groups and DB cluster parameter groups `__ in the *Amazon Aurora User Guide*. + +**Example 2: To reset specific parameters to their default values** + +The following ``reset-db-parameter-group`` example resets the parameter values for specific parameters to their default values in a customer-created DB parameter group. :: + + aws rds reset-db-parameter-group \ + --db-parameter-group-name mypg \ + --parameters "ParameterName=max_connections,ApplyMethod=immediate" \ + "ParameterName=max_allowed_packet,ApplyMethod=immediate" + +Output:: + + { + "DBParameterGroupName": "mypg" + } + +For more information, see `Working with DB parameter groups `__ in the *Amazon RDS User Guide* and `Working with DB parameter groups and DB cluster parameter groups `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/restore-db-cluster-from-s3.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/restore-db-cluster-from-s3.rst new file mode 100644 index 000000000..3f7fe445d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/restore-db-cluster-from-s3.rst @@ -0,0 +1,64 @@ +**To restore an Amazon Aurora DB cluster from Amazon S3** + +The following ``restore-db-cluster-from-s3`` example restores an Amazon Aurora MySQL version 5.7-compatible DB cluster from a MySQL 5.7 DB backup file in Amazon S3. :: + + aws rds restore-db-cluster-from-s3 \ + --db-cluster-identifier cluster-s3-restore \ + --engine aurora-mysql \ + --master-username admin \ + --master-user-password mypassword \ + --s3-bucket-name amzn-s3-demo-bucket \ + --s3-prefix test-backup \ + --s3-ingestion-role-arn arn:aws:iam::123456789012:role/service-role/TestBackup \ + --source-engine mysql \ + --source-engine-version 5.7.28 + +Output:: + + { + "DBCluster": { + "AllocatedStorage": 1, + "AvailabilityZones": [ + "us-west-2c", + "us-west-2a", + "us-west-2b" + ], + "BackupRetentionPeriod": 1, + "DBClusterIdentifier": "cluster-s3-restore", + "DBClusterParameterGroup": "default.aurora-mysql5.7", + "DBSubnetGroup": "default", + "Status": "creating", + "Endpoint": "cluster-s3-restore.cluster-co3xyzabc123.us-west-2.rds.amazonaws.com", + "ReaderEndpoint": "cluster-s3-restore.cluster-ro-co3xyzabc123.us-west-2.rds.amazonaws.com", + "MultiAZ": false, + "Engine": "aurora-mysql", + "EngineVersion": "5.7.12", + "Port": 3306, + "MasterUsername": "admin", + "PreferredBackupWindow": "11:15-11:45", + "PreferredMaintenanceWindow": "thu:12:19-thu:12:49", + "ReadReplicaIdentifiers": [], + "DBClusterMembers": [], + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-########", + "Status": "active" + } + ], + "HostedZoneId": "Z1PVIF0EXAMPLE", + "StorageEncrypted": false, + "DbClusterResourceId": "cluster-SU5THYQQHOWCXZZDGXREXAMPLE", + "DBClusterArn": "arn:aws:rds:us-west-2:123456789012:cluster:cluster-s3-restore", + "AssociatedRoles": [], + "IAMDatabaseAuthenticationEnabled": false, + "ClusterCreateTime": "2020-07-27T14:22:08.095Z", + "EngineMode": "provisioned", + "DeletionProtection": false, + "HttpEndpointEnabled": false, + "CopyTagsToSnapshot": false, + "CrossAccountClone": false, + "DomainMemberships": [] + } + } + +For more information, see `Migrating Data from MySQL by Using an Amazon S3 Bucket `__ in the *Amazon Aurora User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/restore-db-cluster-from-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/restore-db-cluster-from-snapshot.rst new file mode 100644 index 000000000..01a3a194e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/restore-db-cluster-from-snapshot.rst @@ -0,0 +1,61 @@ +**To restore a DB cluster from a snapshot** + +The following ``restore-db-cluster-from-snapshot`` restores an Aurora PostgreSQL DB cluster compatible with PostgreSQL version 10.7 from a DB cluster snapshot named ``test-instance-snapshot``. :: + + aws rds restore-db-cluster-from-snapshot \ + --db-cluster-identifier newdbcluster \ + --snapshot-identifier test-instance-snapshot \ + --engine aurora-postgresql \ + --engine-version 10.7 + +Output:: + + { + "DBCluster": { + "AllocatedStorage": 1, + "AvailabilityZones": [ + "us-west-2c", + "us-west-2a", + "us-west-2b" + ], + "BackupRetentionPeriod": 7, + "DatabaseName": "", + "DBClusterIdentifier": "newdbcluster", + "DBClusterParameterGroup": "default.aurora-postgresql10", + "DBSubnetGroup": "default", + "Status": "creating", + "Endpoint": "newdbcluster.cluster-############.us-west-2.rds.amazonaws.com", + "ReaderEndpoint": "newdbcluster.cluster-ro-############.us-west-2.rds.amazonaws.com", + "MultiAZ": false, + "Engine": "aurora-postgresql", + "EngineVersion": "10.7", + "Port": 5432, + "MasterUsername": "postgres", + "PreferredBackupWindow": "09:33-10:03", + "PreferredMaintenanceWindow": "sun:12:22-sun:12:52", + "ReadReplicaIdentifiers": [], + "DBClusterMembers": [], + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-########", + "Status": "active" + } + ], + "HostedZoneId": "Z1PVIF0EXAMPLE", + "StorageEncrypted": true, + "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/287364e4-33e3-4755-a3b0-a1b2c3d4e5f6", + "DbClusterResourceId": "cluster-5DSB5IFQDDUVAWOUWM1EXAMPLE", + "DBClusterArn": "arn:aws:rds:us-west-2:123456789012:cluster:newdbcluster", + "AssociatedRoles": [], + "IAMDatabaseAuthenticationEnabled": false, + "ClusterCreateTime": "2020-06-05T15:06:58.634Z", + "EngineMode": "provisioned", + "DeletionProtection": false, + "HttpEndpointEnabled": false, + "CopyTagsToSnapshot": false, + "CrossAccountClone": false, + "DomainMemberships": [] + } + } + +For more information, see `Restoring from a DB Cluster Snapshot `__ in the *Amazon Aurora User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/restore-db-cluster-to-point-in-time.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/restore-db-cluster-to-point-in-time.rst new file mode 100644 index 000000000..9f4cff945 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/restore-db-cluster-to-point-in-time.rst @@ -0,0 +1,63 @@ +**To restore a DB cluster to a specified time** + +The following ``restore-db-cluster-to-point-in-time`` example restores the DB cluster named ``database-4`` to the latest possible time. Using ``copy-on-write`` as the restore type restores the new DB cluster as a clone of the source DB cluster. :: + + aws rds restore-db-cluster-to-point-in-time \ + --source-db-cluster-identifier database-4 \ + --db-cluster-identifier sample-cluster-clone \ + --restore-type copy-on-write \ + --use-latest-restorable-time + + + +Output:: + + { + "DBCluster": { + "AllocatedStorage": 1, + "AvailabilityZones": [ + "us-west-2c", + "us-west-2a", + "us-west-2b" + ], + "BackupRetentionPeriod": 7, + "DatabaseName": "", + "DBClusterIdentifier": "sample-cluster-clone", + "DBClusterParameterGroup": "default.aurora-postgresql10", + "DBSubnetGroup": "default", + "Status": "creating", + "Endpoint": "sample-cluster-clone.cluster-############.us-west-2.rds.amazonaws.com", + "ReaderEndpoint": "sample-cluster-clone.cluster-ro-############.us-west-2.rds.amazonaws.com", + "MultiAZ": false, + "Engine": "aurora-postgresql", + "EngineVersion": "10.7", + "Port": 5432, + "MasterUsername": "postgres", + "PreferredBackupWindow": "09:33-10:03", + "PreferredMaintenanceWindow": "sun:12:22-sun:12:52", + "ReadReplicaIdentifiers": [], + "DBClusterMembers": [], + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-########", + "Status": "active" + } + ], + "HostedZoneId": "Z1PVIF0EXAMPLE", + "StorageEncrypted": true, + "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/287364e4-33e3-4755-a3b0-a1b2c3d4e5f6", + "DbClusterResourceId": "cluster-BIZ77GDSA2XBSTNPFW1EXAMPLE", + "DBClusterArn": "arn:aws:rds:us-west-2:123456789012:cluster:sample-cluster-clone", + "AssociatedRoles": [], + "IAMDatabaseAuthenticationEnabled": false, + "CloneGroupId": "8d19331a-099a-45a4-b4aa-11aa22bb33cc44dd", + "ClusterCreateTime": "2020-03-10T19:57:38.967Z", + "EngineMode": "provisioned", + "DeletionProtection": false, + "HttpEndpointEnabled": false, + "CopyTagsToSnapshot": false, + "CrossAccountClone": false + } + } + +For more information, see `Restoring a DB Cluster to a Specified Time `__ in the *Amazon Aurora User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/restore-db-instance-from-db-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/restore-db-instance-from-db-snapshot.rst new file mode 100644 index 000000000..8a500a169 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/restore-db-instance-from-db-snapshot.rst @@ -0,0 +1,40 @@ +**To restore a DB instance from a DB snapshot** + +The following ``restore-db-instance-from-db-snapshot`` example creates a new DB instance named ``db7-new-instance`` with the ``db.t3.small`` DB instance class from the specified DB snapshot. The source DB instance from which the snapshot was taken uses a deprecated DB instance class, so you can't upgrade it. :: + + aws rds restore-db-instance-from-db-snapshot \ + --db-instance-identifier db7-new-instance \ + --db-snapshot-identifier db7-test-snapshot \ + --db-instance-class db.t3.small + + +Output:: + + { + "DBInstance": { + "DBInstanceIdentifier": "db7-new-instance", + "DBInstanceClass": "db.t3.small", + "Engine": "mysql", + "DBInstanceStatus": "creating", + + ...output omitted... + + "PreferredMaintenanceWindow": "mon:07:37-mon:08:07", + "PendingModifiedValues": {}, + "MultiAZ": false, + "EngineVersion": "5.7.22", + "AutoMinorVersionUpgrade": true, + "ReadReplicaDBInstanceIdentifiers": [], + "LicenseModel": "general-public-license", + + ...output omitted... + + "DBInstanceArn": "arn:aws:rds:us-west-2:123456789012:db:db7-new-instance", + "IAMDatabaseAuthenticationEnabled": false, + "PerformanceInsightsEnabled": false, + "DeletionProtection": false, + "AssociatedRoles": [] + } + } + +For more information, see `Restoring from a DB Snapshot `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/restore-db-instance-from-s3.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/restore-db-instance-from-s3.rst new file mode 100644 index 000000000..287a9024c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/restore-db-instance-from-s3.rst @@ -0,0 +1,10 @@ +**To restore a DB instance from a backup in Amazon S3** + +The following ``restore-db-instance-from-s3`` example creates a new DB instance named ``restored-test-instance`` from an existing backup in the ``my-backups`` S3 bucket. :: + + aws rds restore-db-instance-from-s3 \ + --db-instance-identifier restored-test-instance \ + --allocated-storage 250 --db-instance-class db.m4.large --engine mysql \ + --master-username master --master-user-password secret99 \ + --s3-bucket-name my-backups --s3-ingestion-role-arn arn:aws:iam::123456789012:role/my-role \ + --source-engine mysql --source-engine-version 5.6.27 diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/restore-db-instance-to-point-in-time.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/restore-db-instance-to-point-in-time.rst new file mode 100644 index 000000000..82662d10e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/restore-db-instance-to-point-in-time.rst @@ -0,0 +1,61 @@ +**Example 1: To restore a DB instance to a point in time** + +The following ``restore-db-instance-to-point-in-time`` example restores ``test-instance`` to a new DB instance named ``restored-test-instance``, as of the specified time. :: + + aws rds restore-db-instance-to-point-in-time \ + --source-db-instance-identifier test-instance \ + --target-db-instance restored-test-instance \ + --restore-time 2018-07-30T23:45:00.000Z + +Output:: + + { + "DBInstance": { + "AllocatedStorage": 20, + "DBInstanceArn": "arn:aws:rds:us-east-1:123456789012:db:restored-test-instance", + "DBInstanceStatus": "creating", + "DBInstanceIdentifier": "restored-test-instance", + ...some output omitted... + } + } + +For more information, see `Restoring a DB instance to a specified time `__ in the *Amazon RDS User Guide*. + +**Example 2: To restore a DB instance to a specified time from a replicated backup** + +The following ``restore-db-instance-to-point-in-time`` example restores an Oracle DB instance to the specified time from a replicated automated backup. :: + + aws rds restore-db-instance-to-point-in-time \ + --source-db-instance-automated-backups-arn "arn:aws:rds:us-west-2:123456789012:auto-backup:ab-jkib2gfq5rv7replzadausbrktni2bn4example" \ + --target-db-instance-identifier myorclinstance-from-replicated-backup \ + --restore-time 2020-12-08T18:45:00.000Z + +Output:: + + { + "DBInstance": { + "DBInstanceIdentifier": "myorclinstance-from-replicated-backup", + "DBInstanceClass": "db.t3.micro", + "Engine": "oracle-se2", + "DBInstanceStatus": "creating", + "MasterUsername": "admin", + "DBName": "ORCL", + "AllocatedStorage": 20, + "PreferredBackupWindow": "07:45-08:15", + "BackupRetentionPeriod": 14, + ... some output omitted ... + "DbiResourceId": "db-KGLXG75BGVIWKQT7NQ4EXAMPLE", + "CACertificateIdentifier": "rds-ca-2019", + "DomainMemberships": [], + "CopyTagsToSnapshot": false, + "MonitoringInterval": 0, + "DBInstanceArn": "arn:aws:rds:us-west-2:123456789012:db:myorclinstance-from-replicated-backup", + "IAMDatabaseAuthenticationEnabled": false, + "PerformanceInsightsEnabled": false, + "DeletionProtection": false, + "AssociatedRoles": [], + "TagList": [] + } + } + +For more information, see `Restoring to a specified time from a replicated backup `__ in the *Amazon RDS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/start-activity-stream.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/start-activity-stream.rst new file mode 100644 index 000000000..4e6c95978 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/start-activity-stream.rst @@ -0,0 +1,22 @@ +**To start a database activity stream** + +The following ``start-activity-stream`` example starts an asynchronous activity stream to monitor an Aurora cluster named my-pg-cluster. :: + + aws rds start-activity-stream \ + --region us-east-1 \ + --mode async \ + --kms-key-id arn:aws:kms:us-east-1:1234567890123:key/a12c345d-6ef7-890g-h123-456i789jk0l1 \ + --resource-arn arn:aws:rds:us-east-1:1234567890123:cluster:my-pg-cluster \ + --apply-immediately + +Output:: + + { + "KmsKeyId": "arn:aws:kms:us-east-1:1234567890123:key/a12c345d-6ef7-890g-h123-456i789jk0l1", + "KinesisStreamName": "aws-rds-das-cluster-0ABCDEFGHI1JKLM2NOPQ3R4S", + "Status": "starting", + "Mode": "async", + "ApplyImmediately": true + } + +For more information, see `Starting a database activity stream `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/start-db-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/start-db-cluster.rst new file mode 100644 index 000000000..20686433b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/start-db-cluster.rst @@ -0,0 +1,25 @@ +**To start a DB cluster** + +The following ``start-db-cluster`` example starts a DB cluster and its DB instances. :: + + aws rds start-db-cluster \ + --db-cluster-identifier mydbcluster + +Output:: + + { + "DBCluster": { + "AllocatedStorage": 1, + "AvailabilityZones": [ + "us-east-1a", + "us-east-1e", + "us-east-1b" + ], + "BackupRetentionPeriod": 1, + "DatabaseName": "mydb", + "DBClusterIdentifier": "mydbcluster", + ...some output truncated... + } + } + +For more information, see `Stopping and starting an Amazon Aurora DB cluster `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/start-db-instance-automated-backups-replication.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/start-db-instance-automated-backups-replication.rst new file mode 100644 index 000000000..3d4558f24 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/start-db-instance-automated-backups-replication.rst @@ -0,0 +1,36 @@ +**To enable cross-Region automated backups** + +The following ``start-db-instance-automated-backups-replication`` example replicates automated backups from a DB instance in the US East (N. Virginia) Region to US West (Oregon). The backup retention period is 14 days. :: + + aws rds start-db-instance-automated-backups-replication \ + --region us-west-2 \ + --source-db-instance-arn "arn:aws:rds:us-east-1:123456789012:db:new-orcl-db" \ + --backup-retention-period 14 + +Output:: + + { + "DBInstanceAutomatedBackup": { + "DBInstanceArn": "arn:aws:rds:us-east-1:123456789012:db:new-orcl-db", + "DbiResourceId": "db-JKIB2GFQ5RV7REPLZA4EXAMPLE", + "Region": "us-east-1", + "DBInstanceIdentifier": "new-orcl-db", + "RestoreWindow": {}, + "AllocatedStorage": 20, + "Status": "pending", + "Port": 1521, + "InstanceCreateTime": "2020-12-04T15:28:31Z", + "MasterUsername": "admin", + "Engine": "oracle-se2", + "EngineVersion": "12.1.0.2.v21", + "LicenseModel": "bring-your-own-license", + "OptionGroupName": "default:oracle-se2-12-1", + "Encrypted": false, + "StorageType": "gp2", + "IAMDatabaseAuthenticationEnabled": false, + "BackupRetentionPeriod": 14, + "DBInstanceAutomatedBackupsArn": "arn:aws:rds:us-west-2:123456789012:auto-backup:ab-jkib2gfq5rv7replzadausbrktni2bn4example" + } + } + +For more information, see `Enabling cross-Region automated backups `__ in the *Amazon RDS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/start-db-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/start-db-instance.rst new file mode 100644 index 000000000..8ce7d6ddc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/start-db-instance.rst @@ -0,0 +1,15 @@ +**To start a DB instance** + +The following ``start-db-instance`` example starts the specified DB instance. :: + + aws rds start-db-instance \ + --db-instance-identifier test-instance + +Output:: + + { + "DBInstance": { + "DBInstanceStatus": "starting", + ...some output truncated... + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/start-export-task.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/start-export-task.rst new file mode 100644 index 000000000..d99476c90 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/start-export-task.rst @@ -0,0 +1,26 @@ +**To export a snapshot to Amazon S3** + +The following ``start-export-task`` example exports a DB snapshot named ``db5-snapshot-test`` to the Amazon S3 bucket named ``amzn-s3-demo-bucket``. :: + + aws rds start-export-task \ + --export-task-identifier my-s3-export \ + --source-arn arn:aws:rds:us-west-2:123456789012:snapshot:db5-snapshot-test \ + --s3-bucket-name amzn-s3-demo-bucket \ + --iam-role-arn arn:aws:iam::123456789012:role/service-role/ExportRole \ + --kms-key-id arn:aws:kms:us-west-2:123456789012:key/abcd0000-7fca-4128-82f2-aabbccddeeff + +Output:: + + { + "ExportTaskIdentifier": "my-s3-export", + "SourceArn": "arn:aws:rds:us-west-2:123456789012:snapshot:db5-snapshot-test", + "SnapshotTime": "2020-03-27T20:48:42.023Z", + "S3Bucket": "amzn-s3-demo-bucket", + "IamRoleArn": "arn:aws:iam::123456789012:role/service-role/ExportRole", + "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/abcd0000-7fca-4128-82f2-aabbccddeeff", + "Status": "STARTING", + "PercentProgress": 0, + "TotalExtractedDataInGB": 0 + } + +For more information, see `Exporting a Snapshot to an Amazon S3 Bucket `__ in the *Amazon RDS User Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/stop-activity-stream.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/stop-activity-stream.rst new file mode 100644 index 000000000..e89573851 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/stop-activity-stream.rst @@ -0,0 +1,18 @@ +**To stop a database activity stream** + +The following ``stop-activity-stream`` example stops an activity stream in an Aurora cluster named my-pg-cluster. :: + + aws rds stop-activity-stream \ + --region us-east-1 \ + --resource-arn arn:aws:rds:us-east-1:1234567890123:cluster:my-pg-cluster \ + --apply-immediately + +Output:: + + { + "KmsKeyId": "arn:aws:kms:us-east-1:1234567890123:key/a12c345d-6ef7-890g-h123-456i789jk0l1", + "KinesisStreamName": "aws-rds-das-cluster-0ABCDEFGHI1JKLM2NOPQ3R4S", + "Status": "stopping" + } + +For more information, see `Stopping an activity stream `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/stop-db-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/stop-db-cluster.rst new file mode 100644 index 000000000..f3ecac2ea --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/stop-db-cluster.rst @@ -0,0 +1,25 @@ +**To stop a DB cluster** + +The following ``stop-db-cluster`` example stops a DB cluster and its DB instances. :: + + aws rds stop-db-cluster \ + --db-cluster-identifier mydbcluster + +Output:: + + { + "DBCluster": { + "AllocatedStorage": 1, + "AvailabilityZones": [ + "us-east-1a", + "us-east-1e", + "us-east-1b" + ], + "BackupRetentionPeriod": 1, + "DatabaseName": "mydb", + "DBClusterIdentifier": "mydbcluster", + ...some output truncated... + } + } + +For more information, see `Stopping and starting an Amazon Aurora DB cluster `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/stop-db-instance-automated-backups-replication.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/stop-db-instance-automated-backups-replication.rst new file mode 100644 index 000000000..45facbd1f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/stop-db-instance-automated-backups-replication.rst @@ -0,0 +1,38 @@ +**To stop replicating automated backups** + +The following ``stop-db-instance-automated-backups-replication`` ends replication of automated backups to the US West (Oregon) Region. Replicated backups are retained according to the set backup retention period. :: + + aws rds stop-db-instance-automated-backups-replication \ + --region us-west-2 \ + --source-db-instance-arn "arn:aws:rds:us-east-1:123456789012:db:new-orcl-db" + +Output:: + + { + "DBInstanceAutomatedBackup": { + "DBInstanceArn": "arn:aws:rds:us-east-1:123456789012:db:new-orcl-db", + "DbiResourceId": "db-JKIB2GFQ5RV7REPLZA4EXAMPLE", + "Region": "us-east-1", + "DBInstanceIdentifier": "new-orcl-db", + "RestoreWindow": { + "EarliestTime": "2020-12-04T23:13:21.030Z", + "LatestTime": "2020-12-07T19:59:57Z" + }, + "AllocatedStorage": 20, + "Status": "replicating", + "Port": 1521, + "InstanceCreateTime": "2020-12-04T15:28:31Z", + "MasterUsername": "admin", + "Engine": "oracle-se2", + "EngineVersion": "12.1.0.2.v21", + "LicenseModel": "bring-your-own-license", + "OptionGroupName": "default:oracle-se2-12-1", + "Encrypted": false, + "StorageType": "gp2", + "IAMDatabaseAuthenticationEnabled": false, + "BackupRetentionPeriod": 7, + "DBInstanceAutomatedBackupsArn": "arn:aws:rds:us-west-2:123456789012:auto-backup:ab-jkib2gfq5rv7replzadausbrktni2bn4example" + } + } + +For more information, see `Stopping automated backup replication `__ in the *Amazon RDS User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/stop-db-instance.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/stop-db-instance.rst new file mode 100644 index 000000000..779a6331e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/stop-db-instance.rst @@ -0,0 +1,15 @@ +**To stop a DB instance** + +The following ``stop-db-instance`` example stops the specified DB instance. :: + + aws rds stop-db-instance \ + --db-instance-identifier test-instance + +Output:: + + { + "DBInstance": { + "DBInstanceStatus": "stopping", + ...some output truncated... + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/switchover-blue-green-deployment.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/switchover-blue-green-deployment.rst new file mode 100644 index 000000000..11e4de861 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/rds/switchover-blue-green-deployment.rst @@ -0,0 +1,135 @@ +**Example 1: To switch a blue/green deployment for an RDS DB instance** + +The following ``switchover-blue-green-deployment`` example promotes the specified green environment as the new production environment. :: + + aws rds switchover-blue-green-deployment \ + --blue-green-deployment-identifier bgd-wi89nwzglccsfake \ + --switchover-timeout 300 + +Output:: + + { + "BlueGreenDeployment": { + "BlueGreenDeploymentIdentifier": "bgd-v53303651eexfake", + "BlueGreenDeploymentName": "bgd-cli-test-instance", + "Source": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance", + "Target": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-green-blhi1e", + "SwitchoverDetails": [ + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-green-blhi1e", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-1-green-k5fv7u", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-2", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-2-green-ggsh8m", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-3", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-3-green-o2vwm0", + "Status": "AVAILABLE" + } + ], + "Tasks": [ + { + "Name": "CREATING_READ_REPLICA_OF_SOURCE", + "Status": "COMPLETED" + }, + { + "Name": "DB_ENGINE_VERSION_UPGRADE", + "Status": "COMPLETED" + }, + { + "Name": "CONFIGURE_BACKUPS", + "Status": "COMPLETED" + }, + { + "Name": "CREATING_TOPOLOGY_OF_SOURCE", + "Status": "COMPLETED" + } + ], + "Status": "SWITCHOVER_IN_PROGRESS", + "CreateTime": "2022-02-25T22:33:22.225000+00:00" + } + } + +For more information, see `Switching a blue/green deployment `__ in the *Amazon RDS User Guide*. + +**Example 2: To promote a blue/green deployment for an Aurora MySQL DB cluster** + +The following ``switchover-blue-green-deployment`` example promotes the specified green environment as the new production environment. :: + + aws rds switchover-blue-green-deployment \ + --blue-green-deployment-identifier bgd-wi89nwzglccsfake \ + --switchover-timeout 300 + +Output:: + + { + "BlueGreenDeployment": { + "BlueGreenDeploymentIdentifier": "bgd-wi89nwzglccsfake", + "BlueGreenDeploymentName": "my-blue-green-deployment", + "Source": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster", + "Target": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster-green-3ud8z6", + "SwitchoverDetails": [ + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster-green-3ud8z6", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-1-green-bvxc73", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-2", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-2-green-7wc4ie", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-3", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-3-green-p4xxkz", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-excluded-member-endpoint", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-excluded-member-endpoint-green-np1ikl", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-reader-endpoint", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-reader-endpoint-green-miszlf", + "Status": "AVAILABLE" + } + ], + "Tasks": [ + { + "Name": "CREATING_READ_REPLICA_OF_SOURCE", + "Status": "COMPLETED" + }, + { + "Name": "DB_ENGINE_VERSION_UPGRADE", + "Status": "COMPLETED" + }, + { + "Name": "CREATE_DB_INSTANCES_FOR_CLUSTER", + "Status": "COMPLETED" + }, + { + "Name": "CREATE_CUSTOM_ENDPOINTS", + "Status": "COMPLETED" + } + ], + "Status": "SWITCHOVER_IN_PROGRESS", + "CreateTime": "2022-02-25T22:38:49.522000+00:00" + } + } + +For more information, see `Switching a blue/green deployment `__ in the *Amazon Aurora User Guide*. \ No newline at end of file diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/accept-reserved-node-exchange.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/accept-reserved-node-exchange.rst new file mode 100755 index 000000000..fd95966b5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/accept-reserved-node-exchange.rst @@ -0,0 +1,34 @@ +**To accept reserved node exchange** + +The following ``accept-reserved-node-exchange`` example accepts exchange of a DC1 reserved node for a DC2 reserved node. :: + + aws redshift accept-reserved-node-exchange / + --reserved-node-id 12345678-12ab-12a1-1a2a-12ab-12a12EXAMPLE / + --target-reserved-node-offering-id 12345678-12ab-12a1-1a2a-12ab-12a12EXAMPLE + +Output:: + + { + "ExchangedReservedNode": { + "ReservedNodeId": "12345678-12ab-12a1-1a2a-12ab-12a12EXAMPLE", + "ReservedNodeOfferingId": "12345678-12ab-12a1-1a2a-12ab-12a12EXAMPLE", + "NodeType": "dc2.large", + "StartTime": "2019-12-06T21:17:26Z", + "Duration": 31536000, + "FixedPrice": 0.0, + "UsagePrice": 0.0, + "CurrencyCode": "USD", + "NodeCount": 1, + "State": "exchanging", + "OfferingType": "All Upfront", + "RecurringCharges": [ + { + "RecurringChargeAmount": 0.0, + "RecurringChargeFrequency": "Hourly" + } + ], + "ReservedNodeOfferingType": "Regular" + } + } + +For more information, see `Upgrading Reserved Nodes With the AWS CLI `__ in the *Amazon Redshift Cluster Management Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/authorize-cluster-security-group-ingress.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/authorize-cluster-security-group-ingress.rst new file mode 100644 index 000000000..3d7fdcb1b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/authorize-cluster-security-group-ingress.rst @@ -0,0 +1,19 @@ +Authorizing Access to an EC2 Security Group +------------------------------------------- + +This example authorizes access to a named Amazon EC2 security group. + +Command:: + + aws redshift authorize-cluster-security-group-ingress --cluster-security-group-name mysecuritygroup --ec2-security-group-name myec2securitygroup --ec2-security-group-owner-id 123445677890 + +Authorizing Access to a CIDR range +---------------------------------- + +This example authorizes access to a CIDR range. + +Command:: + + aws redshift authorize-cluster-security-group-ingress --cluster-security-group-name mysecuritygroup --cidrip 192.168.100.100/32 + + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/authorize-snapshot-access.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/authorize-snapshot-access.rst new file mode 100644 index 000000000..a96de4cd8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/authorize-snapshot-access.rst @@ -0,0 +1,39 @@ +Authorize an AWS Account to Restore a Snapshot +---------------------------------------------- + +This example authorizes the AWS account ``444455556666`` to restore the snapshot ``my-snapshot-id``. +By default, the output is in JSON format. + +Command:: + + aws redshift authorize-snapshot-access --snapshot-id my-snapshot-id --account-with-restore-access 444455556666 + +Result:: + + { + "Snapshot": { + "Status": "available", + "SnapshotCreateTime": "2013-07-17T22:04:18.947Z", + "EstimatedSecondsToCompletion": 0, + "AvailabilityZone": "us-east-1a", + "ClusterVersion": "1.0", + "MasterUsername": "adminuser", + "Encrypted": false, + "OwnerAccount": "111122223333", + "BackupProgressInMegabytes": 11.0, + "ElapsedTimeInSeconds": 0, + "DBName": "dev", + "CurrentBackupRateInMegabytesPerSecond: 0.1534, + "ClusterCreateTime": "2013-01-22T21:59:29.559Z", + "ActualIncrementalBackupSizeInMegabytes"; 11.0, + "SnapshotType": "manual", + "NodeType": "dw.hs1.xlarge", + "ClusterIdentifier": "mycluster", + "TotalBackupSizeInMegabytes": 20.0, + "Port": 5439, + "NumberOfNodes": 2, + "SnapshotIdentifier": "my-snapshot-id" + } + } + + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/batch-delete-cluster-snapshots.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/batch-delete-cluster-snapshots.rst new file mode 100755 index 000000000..544a020f0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/batch-delete-cluster-snapshots.rst @@ -0,0 +1,17 @@ +**To delete a set of cluster snapshots** + +The following ``batch-delete-cluster-snapshots`` example deletes a set of manual cluster snapshots. :: + + aws redshift batch-delete-cluster-snapshots \ + --identifiers SnapshotIdentifier=mycluster-2019-11-06-14-12 SnapshotIdentifier=mycluster-2019-11-06-14-20 + +Output:: + + { + "Resources": [ + "mycluster-2019-11-06-14-12", + "mycluster-2019-11-06-14-20" + ] + } + +For more information, see `Amazon Redshift Snapshots `__ in the *Amazon Redshift Cluster Management Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/batch-modify-cluster-snapshots.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/batch-modify-cluster-snapshots.rst new file mode 100755 index 000000000..517ac0f89 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/batch-modify-cluster-snapshots.rst @@ -0,0 +1,31 @@ +**To modify a set of cluster snapshots** + +The following ``batch-modify-cluster-snapshots`` example modifies the settings for a set of cluster snapshots. :: + + aws redshift batch-modify-cluster-snapshots \ + --snapshot-identifier-list mycluster-2019-11-06-16-31 mycluster-2019-11-06-16-32 \ + --manual-snapshot-retention-period 30 + +Output:: + + { + "Resources": [ + "mycluster-2019-11-06-16-31", + "mycluster-2019-11-06-16-32" + ], + "Errors": [], + "ResponseMetadata": { + "RequestId": "12345678-12ab-12a1-1a2a-12ab-12a12EXAMPLE", + "HTTPStatusCode": 200, + "HTTPHeaders": { + "x-amzn-requestid": "12345678-12ab-12a1-1a2a-12ab-12a12EXAMPLE, + "content-type": "text/xml", + "content-length": "480", + "date": "Sat, 07 Dec 2019 00:36:09 GMT", + "connection": "keep-alive" + }, + "RetryAttempts": 0 + } + } + +For more information, see `Amazon Redshift Snapshots `__ in the *Amazon Redshift Cluster Management Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/cancel-resize.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/cancel-resize.rst new file mode 100755 index 000000000..0e8da0f2e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/cancel-resize.rst @@ -0,0 +1,19 @@ +**To cancel resize of a cluster** + +The following ``cancel-resize`` example cancels a classic resize operation for a cluster. :: + + aws redshift cancel-resize \ + --cluster-identifier mycluster + +Output:: + + { + "TargetNodeType": "dc2.large", + "TargetNumberOfNodes": 2, + "TargetClusterType": "multi-node", + "Status": "CANCELLING", + "ResizeType": "ClassicResize", + "TargetEncryptionType": "NONE" + } + +For more information, see `Resizing Clusters in Amazon Redshift `__ in the *Amazon Redshift Cluster Management Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/copy-cluster-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/copy-cluster-snapshot.rst new file mode 100644 index 000000000..b0e9b54b1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/copy-cluster-snapshot.rst @@ -0,0 +1,33 @@ +Get a Description of All Cluster Versions +----------------------------------------- + +This example returns a description of all cluster versions. By default, the output is in JSON format. + +Command:: + + aws redshift copy-cluster-snapshot --source-snapshot-identifier cm:examplecluster-2013-01-22-19-27-58 --target-snapshot-identifier my-saved-snapshot-copy + +Result:: + + { + "Snapshot": { + "Status": "available", + "SnapshotCreateTime": "2013-01-22T19:27:58.931Z", + "AvailabilityZone": "us-east-1c", + "ClusterVersion": "1.0", + "MasterUsername": "adminuser", + "DBName": "dev", + "ClusterCreateTime": "2013-01-22T19:23:59.368Z", + "SnapshotType": "manual", + "NodeType": "dw.hs1.xlarge", + "ClusterIdentifier": "examplecluster", + "Port": 5439, + "NumberOfNodes": "2", + "SnapshotIdentifier": "my-saved-snapshot-copy" + }, + "ResponseMetadata": { + "RequestId": "3b279691-64e3-11e2-bec0-17624ad140dd" + } + } + + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-cluster-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-cluster-parameter-group.rst new file mode 100644 index 000000000..1fda0daca --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-cluster-parameter-group.rst @@ -0,0 +1,23 @@ +Create a Cluster Parameter Group +-------------------------------- + +This example creates a new cluster parameter group. + +Command:: + + aws redshift create-cluster-parameter-group --parameter-group-name myclusterparametergroup --parameter-group-family redshift-1.0 --description "My first cluster parameter group" + +Result:: + + { + "ClusterParameterGroup": { + "ParameterGroupFamily": "redshift-1.0", + "Description": "My first cluster parameter group", + "ParameterGroupName": "myclusterparametergroup" + }, + "ResponseMetadata": { + "RequestId": "739448f0-64cc-11e2-8f7d-3b939af52818" + } + } + + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-cluster-security-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-cluster-security-group.rst new file mode 100644 index 000000000..524f3c574 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-cluster-security-group.rst @@ -0,0 +1,40 @@ +Creating a Cluster Security Group +--------------------------------- + +This example creates a new cluster security group. By default, the output is in JSON format. + +Command:: + + aws redshift create-cluster-security-group --cluster-security-group-name mysecuritygroup --description "This is my cluster security group" + +Result:: + + { + "create_cluster_security_group_response": { + "create_cluster_security_group_result": { + "cluster_security_group": { + "description": "This is my cluster security group", + "owner_id": "300454760768", + "cluster_security_group_name": "mysecuritygroup", + "ec2_security_groups": \[], + "ip_ranges": \[] + } + }, + "response_metadata": { + "request_id": "5df486a0-343a-11e2-b0d8-d15d0ef48549" + } + } + } + +You can also obtain the same information in text format using the ``--output text`` option. + +Command:: + + aws redshift create-cluster-security-group --cluster-security-group-name mysecuritygroup --description "This is my cluster security group" --output text + +Result:: + + This is my cluster security group 300454760768 mysecuritygroup + a0c0bfab-343a-11e2-95d2-c3dc9fe8ab57 + + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-cluster-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-cluster-snapshot.rst new file mode 100644 index 000000000..198367feb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-cluster-snapshot.rst @@ -0,0 +1,33 @@ +Create a Cluster Snapshot +------------------------- + +This example creates a new cluster snapshot. By default, the output is in JSON format. + +Command:: + + aws redshift create-cluster-snapshot --cluster-identifier mycluster --snapshot-identifier my-snapshot-id + +Result:: + + { + "Snapshot": { + "Status": "creating", + "SnapshotCreateTime": "2013-01-22T22:20:33.548Z", + "AvailabilityZone": "us-east-1a", + "ClusterVersion": "1.0", + "MasterUsername": "adminuser", + "DBName": "dev", + "ClusterCreateTime": "2013-01-22T21:59:29.559Z", + "SnapshotType": "manual", + "NodeType": "dw.hs1.xlarge", + "ClusterIdentifier": "mycluster", + "Port": 5439, + "NumberOfNodes": "2", + "SnapshotIdentifier": "my-snapshot-id" + }, + "ResponseMetadata": { + "RequestId": "f024d1a5-64e1-11e2-88c5-53eb05787dfb" + } + } + + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-cluster-subnet-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-cluster-subnet-group.rst new file mode 100644 index 000000000..a7eebd324 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-cluster-subnet-group.rst @@ -0,0 +1,32 @@ +Create a Cluster Subnet Group +----------------------------- + +This example creates a new cluster subnet group. + +Command:: + + aws redshift create-cluster-subnet-group --cluster-subnet-group-name mysubnetgroup --description "My subnet group" --subnet-ids subnet-763fdd1c + +Result:: + + { + "ClusterSubnetGroup": { + "Subnets": [ + { + "SubnetStatus": "Active", + "SubnetIdentifier": "subnet-763fdd1c", + "SubnetAvailabilityZone": { + "Name": "us-east-1a" + } + } ], + "VpcId": "vpc-7e3fdd14", + "SubnetGroupStatus": "Complete", + "Description": "My subnet group", + "ClusterSubnetGroupName": "mysubnetgroup" + }, + "ResponseMetadata": { + "RequestId": "500b8ce2-698f-11e2-9790-fd67517fb6fd" + } + } + + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-cluster.rst new file mode 100644 index 000000000..3e158e6dc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-cluster.rst @@ -0,0 +1,45 @@ +Create a Cluster with Minimal Parameters +---------------------------------------- + +This example creates a cluster with the minimal set of parameters. By default, the output is in JSON format. + +Command:: + + aws redshift create-cluster --node-type dw.hs1.xlarge --number-of-nodes 2 --master-username adminuser --master-user-password TopSecret1 --cluster-identifier mycluster + +Result:: + + { + "Cluster": { + "NodeType": "dw.hs1.xlarge", + "ClusterVersion": "1.0", + "PubliclyAccessible": "true", + "MasterUsername": "adminuser", + "ClusterParameterGroups": [ + { + "ParameterApplyStatus": "in-sync", + "ParameterGroupName": "default.redshift-1.0" + } ], + "ClusterSecurityGroups": [ + { + "Status": "active", + "ClusterSecurityGroupName": "default" + } ], + "AllowVersionUpgrade": true, + "VpcSecurityGroups": \[], + "PreferredMaintenanceWindow": "sat:03:30-sat:04:00", + "AutomatedSnapshotRetentionPeriod": 1, + "ClusterStatus": "creating", + "ClusterIdentifier": "mycluster", + "DBName": "dev", + "NumberOfNodes": 2, + "PendingModifiedValues": { + "MasterUserPassword": "\****" + } + }, + "ResponseMetadata": { + "RequestId": "7cf4bcfc-64dd-11e2-bea9-49e0ce183f07" + } + } + + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-event-subscription.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-event-subscription.rst new file mode 100755 index 000000000..b3de6a08e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-event-subscription.rst @@ -0,0 +1,31 @@ +**To create a notification subscription for an event** + +The following ``create-event-subscription`` example creates an event notification subscription. :: + + aws redshift create-event-subscription \ + --subscription-name mysubscription \ + --sns-topic-arn arn:aws:sns:us-west-2:123456789012:MySNStopic \ + --source-type cluster \ + --source-ids mycluster + +Output:: + + { + "EventSubscription": { + "CustomerAwsId": "123456789012", + "CustSubscriptionId": "mysubscription", + "SnsTopicArn": "arn:aws:sns:us-west-2:123456789012:MySNStopic", + "Status": "active", + "SubscriptionCreationTime": "2019-12-09T20:05:19.365Z", + "SourceType": "cluster", + "SourceIdsList": [ + "mycluster" + ], + "EventCategoriesList": [], + "Severity": "INFO", + "Enabled": true, + "Tags": [] + } + } + +For more information, see `Subscribing to Amazon Redshift Event Notifications `__ in the *Amazon Redshift Cluster Management Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-hsm-client-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-hsm-client-certificate.rst new file mode 100755 index 000000000..b0d0d6a0c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-hsm-client-certificate.rst @@ -0,0 +1,32 @@ +**To create an HSM client certificate** + +The following ``create-hsm-client-certificate`` example generates an HSM client certificate that a cluster can use to connect to an HSM. :: + + aws redshift create-hsm-client-certificate \ + --hsm-client-certificate-identifier myhsmclientcert + +Output:: + + { + "HsmClientCertificate": { + "HsmClientCertificateIdentifier": "myhsmclientcert", + "HsmClientCertificatePublicKey": "-----BEGIN CERTIFICATE----- + MIICiEXAMPLECQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC + VVMxCzAJBgNVBAgTEXAMPLEwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 + b24xFDASBgNVBAsTC0lBTSBDb25EXAMPLEIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd + BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb2EXAMPLETEwNDI1MjA0NTIxWhcN + MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBEXAMPLEMRAwDgYD + EXAMPLETZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z + b2xlMRIwEAEXAMPLEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt + YXpvbi5jb20wgZ8wDQYJKEXAMPLEAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ + 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk6EXAMPLE3G93vUEIO3IyNoH/f0wYK8m9T + rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugEXAMPLEzZswY6786m86gpE + Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEEXAMPLEEAtCu4 + nUhVVxYUEXAMPLEh8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb + FFBjvSfpJIlJ00zbhNYS5f6GEXAMPLEl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb + NYiytVbZPQUQ5Yaxu2jXnimvw3rEXAMPLE=-----END CERTIFICATE-----\n", + "Tags": [] + } + } + +For more information, see `Amazon Redshift API Permissions Reference `__ in the *Amazon Redshift Cluster Management Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-hsm-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-hsm-configuration.rst new file mode 100755 index 000000000..6018736b7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-hsm-configuration.rst @@ -0,0 +1,23 @@ +**To create an HSM configuration** + +The following ``create-hsm-configuration`` example creates the specified HSM configuration that contains information required by a cluster to store and use database encryption keys in a hardware security module (HSM). :: + + aws redshift create-hsm-configuration / + --hsm-configuration-identifier myhsmconnection + --description "My HSM connection" + --hsm-ip-address 192.0.2.09 + --hsm-partition-name myhsmpartition / + --hsm-partition-password A1b2c3d4 / + --hsm-server-public-certificate myhsmclientcert + +Output:: + + { + "HsmConfiguration": { + "HsmConfigurationIdentifier": "myhsmconnection", + "Description": "My HSM connection", + "HsmIpAddress": "192.0.2.09", + "HsmPartitionName": "myhsmpartition", + "Tags": [] + } + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-snapshot-copy-grant.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-snapshot-copy-grant.rst new file mode 100755 index 000000000..90b9828c1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-snapshot-copy-grant.rst @@ -0,0 +1,18 @@ +**To create a snapshot copy grant** + +The following ``create-snapshot-copy-grant`` example creates a snapshot copy grant and encrypts copied snapshots in a destination AWS Region. :: + + aws redshift create-snapshot-copy-grant \ + --snapshot-copy-grant-name mysnapshotcopygrantname + +Output:: + + { + "SnapshotCopyGrant": { + "SnapshotCopyGrantName": "mysnapshotcopygrantname", + "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/bPxRfih3yCo8nvbEXAMPLEKEY", + "Tags": [] + } + } + +For more information, see `Amazon Redshift Database Encryption `__ in the *Amazon Redshift Cluster Management Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-snapshot-schedule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-snapshot-schedule.rst new file mode 100755 index 000000000..363b0c589 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-snapshot-schedule.rst @@ -0,0 +1,21 @@ +**To create snapshot schedule** + +The following ``create-snapshot-schedule`` example creates a snapshot schedule with the specified description and a rate of every 12 hours. :: + + aws redshift create-snapshot-schedule \ + --schedule-definitions "rate(12 hours)" \ + --schedule-identifier mysnapshotschedule \ + --schedule-description "My schedule description" + +Output:: + + { + "ScheduleDefinitions": [ + "rate(12 hours)" + ], + "ScheduleIdentifier": "mysnapshotschedule", + "ScheduleDescription": "My schedule description", + "Tags": [] + } + +For more information, see `Automated Snapshot Schedules `__ in the *Amazon Redshift Cluster Management Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-tags.rst new file mode 100755 index 000000000..e21771695 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/create-tags.rst @@ -0,0 +1,11 @@ +**To create tags for a cluster** + +The following ``create-tags`` example adds the specified tag key/value pair to the specified cluster. :: + + aws redshift create-tags \ + --resource-name arn:aws:redshift:us-west-2:123456789012:cluster:mycluster \ + --tags "Key"="mytags","Value"="tag1" + +This command does not produce any output. + +For more information, see `Tagging Resources in Amazon Redshift `__ in the *Amazon Redshift Cluster Management Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-cluster-parameter-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-cluster-parameter-group.rst new file mode 100644 index 000000000..9ae7973d7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-cluster-parameter-group.rst @@ -0,0 +1,9 @@ +Delete a Cluster Parameter Group +-------------------------------- + +This example deletes a cluster parameter group. + +Command:: + + aws redshift delete-cluster-parameter-group --parameter-group-name myclusterparametergroup + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-cluster-security-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-cluster-security-group.rst new file mode 100644 index 000000000..68f47960f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-cluster-security-group.rst @@ -0,0 +1,9 @@ +Delete a Cluster Security Group +------------------------------- + +This example deletes a cluster security group. + +Command:: + + aws redshift delete-cluster-security-group --cluster-security-group-name mysecuritygroup + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-cluster-snapshot.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-cluster-snapshot.rst new file mode 100644 index 000000000..d1920bc11 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-cluster-snapshot.rst @@ -0,0 +1,9 @@ +Delete a Cluster Snapshot +------------------------- + +This example deletes a cluster snapshot. + +Command:: + + aws redshift delete-cluster-snapshot --snapshot-identifier my-snapshot-id + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-cluster-subnet-group.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-cluster-subnet-group.rst new file mode 100644 index 000000000..29b0cf9e6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-cluster-subnet-group.rst @@ -0,0 +1,18 @@ +Delete a Cluster subnet Group +----------------------------- + +This example deletes a cluster subnet group. + +Command:: + + aws redshift delete-cluster-subnet-group --cluster-subnet-group-name mysubnetgroup + +Result:: + + { + "ResponseMetadata": { + "RequestId": "253fbffd-6993-11e2-bc3a-47431073908a" + } + } + + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-cluster.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-cluster.rst new file mode 100644 index 000000000..495bfe120 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-cluster.rst @@ -0,0 +1,21 @@ +Delete a Cluster with No Final Cluster Snapshot +----------------------------------------------- + +This example deletes a cluster, forcing data deletion so no final cluster snapshot +is created. + +Command:: + + aws redshift delete-cluster --cluster-identifier mycluster --skip-final-cluster-snapshot + + +Delete a Cluster, Allowing a Final Cluster Snapshot +--------------------------------------------------- + +This example deletes a cluster, but specifies a final cluster snapshot. + +Command:: + + aws redshift delete-cluster --cluster-identifier mycluster --final-cluster-snapshot-identifier myfinalsnapshot + + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-event-subscription.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-event-subscription.rst new file mode 100755 index 000000000..7f19037a2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-event-subscription.rst @@ -0,0 +1,10 @@ +**To delete event subscription** + +The following ``delete-event-subscription`` example deletes the specified event notification subscription. :: + + aws redshift delete-event-subscription \ + --subscription-name mysubscription + +This command does not produce any output. + +For more information, see `Subscribing to Amazon Redshift Event Notifications `__ in the *Amazon Redshift Cluster Management Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-hsm-client-certificate.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-hsm-client-certificate.rst new file mode 100755 index 000000000..8ba2f6925 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-hsm-client-certificate.rst @@ -0,0 +1,10 @@ +**To delete HSM client certificate** + +The following ``delete-hsm-client-certificate`` example deletes an HSM client certificate. :: + + aws redshift delete-hsm-client-certificate \ + --hsm-client-certificate-identifier myhsmclientcert + +This command does not produce any output. + +For more information, see `Amazon Redshift API Permissions Reference `__ in the *Amazon Redshift Cluster Management Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-hsm-configuration.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-hsm-configuration.rst new file mode 100755 index 000000000..93e44bcc1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-hsm-configuration.rst @@ -0,0 +1,8 @@ +**To delete an HSM configuration** + +The following ``delete-hsm-configuration`` example deletes the specified HSM configuration from the current AWS account. :: + + aws redshift delete-hsm-configuration / + --hsm-configuration-identifier myhsmconnection + +This command does not produce any output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-scheduled-action.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-scheduled-action.rst new file mode 100755 index 000000000..665c29ef1 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-scheduled-action.rst @@ -0,0 +1,8 @@ +**To delete scheduled action** + +The following ``delete-scheduled-action`` example deletes the specified scheduled action. :: + + aws redshift delete-scheduled-action \ + --scheduled-action-name myscheduledaction + +This command does not produce any output. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-snapshot-copy-grant.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-snapshot-copy-grant.rst new file mode 100755 index 000000000..1dee4e0d2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-snapshot-copy-grant.rst @@ -0,0 +1,10 @@ +**To delete snapshot copy grant** + +The following ``delete-snapshot-copy-grant`` example deletes the specified snapshot copy grant. :: + + aws redshift delete-snapshot-copy-grant \ + --snapshot-copy-grant-name mysnapshotcopygrantname + +This command does not produce any output. + +For more information, see `Amazon Redshift Database Encryption `__ in the *Amazon Redshift Cluster Management Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-snapshot-schedule.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-snapshot-schedule.rst new file mode 100755 index 000000000..2585bdc0d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-snapshot-schedule.rst @@ -0,0 +1,10 @@ +**To delete snapshot schedule** + +The following ``delete-snapshot-schedule`` example deletes the specified snapshot schedule. You must disassociate clusters before deleting the schedule. :: + + aws redshift delete-snapshot-schedule \ + --schedule-identifier mysnapshotschedule + +This command does not produce any output. + +For more information, see `Automated Snapshot Schedules `__ in the *Amazon Redshift Cluster Management Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-tags.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-tags.rst new file mode 100755 index 000000000..672cbcfcc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/delete-tags.rst @@ -0,0 +1,11 @@ +**To delete tags from a cluster** + +The following ``delete-tags`` example deletes the tags with the specified key names from the specified cluster. :: + + aws redshift delete-tags \ + --resource-name arn:aws:redshift:us-west-2:123456789012:cluster:mycluster \ + --tag-keys "clustertagkey" "clustertagvalue" + +This command does not produce any output. + +For more information, see `Tagging Resources in Amazon Redshift `__ in the *Amazon Redshift Cluster Management Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-account-attributes.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-account-attributes.rst new file mode 100755 index 000000000..c24265769 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-account-attributes.rst @@ -0,0 +1,20 @@ +**To describe attributes of an AWS account** + +The following ``describe-account-attributes`` example displays the attributes attached to the calling AWS account. :: + + aws redshift describe-account-attributes + +Output:: + + { + "AccountAttributes": [ + { + "AttributeName": "max-defer-maintenance-duration", + "AttributeValues": [ + { + "AttributeValue": "45" + } + ] + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-db-revisions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-db-revisions.rst new file mode 100755 index 000000000..f5d589c1a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-db-revisions.rst @@ -0,0 +1,19 @@ +**To describe DB revisions for a cluster** + +The following ``describe-cluster-db-revisions`` example displays the details of an array of ``ClusterDbRevision`` objects for the specified cluster. :: + + aws redshift describe-cluster-db-revisions \ + --cluster-identifier mycluster + +Output:: + + { + "ClusterDbRevisions": [ + { + "ClusterIdentifier": "mycluster", + "CurrentDatabaseRevision": "11420", + "DatabaseRevisionReleaseDate": "2019-11-22T16:43:49.597Z", + "RevisionTargets": [] + } + ] + } diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-parameter-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-parameter-groups.rst new file mode 100644 index 000000000..619f62439 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-parameter-groups.rst @@ -0,0 +1,36 @@ +Get a Description of All Cluster Parameter Groups +------------------------------------------------- + +This example returns a description of all cluster parameter groups for the +account, with column headers. By default, the output is in JSON format. + +Command:: + + aws redshift describe-cluster-parameter-groups + +Result:: + + { + "ParameterGroups": [ + { + "ParameterGroupFamily": "redshift-1.0", + "Description": "My first cluster parameter group", + "ParameterGroupName": "myclusterparametergroup" + } ], + "ResponseMetadata": { + "RequestId": "8ceb8f6f-64cc-11e2-bea9-49e0ce183f07" + } + } + +You can also obtain the same information in text format using the ``--output text`` option. + +Command:: + + aws redshift describe-cluster-parameter-groups --output text + +Result:: + + redshift-1.0 My first cluster parameter group myclusterparametergroup + RESPONSEMETADATA 9e665a36-64cc-11e2-8f7d-3b939af52818 + + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-parameters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-parameters.rst new file mode 100644 index 000000000..e661a83ae --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-parameters.rst @@ -0,0 +1,52 @@ +Retrieve the Parameters for a Specified Cluster Parameter Group +--------------------------------------------------------------- + +This example retrieves the parameters for the named parameter group. By default, the output is in JSON format. + +Command:: + + aws redshift describe-cluster-parameters --parameter-group-name myclusterparametergroup + +Result:: + + { + "Parameters": [ + { + "Description": "Sets the display format for date and time values.", + "DataType": "string", + "IsModifiable": true, + "Source": "engine-default", + "ParameterValue": "ISO, MDY", + "ParameterName": "datestyle" + }, + { + "Description": "Sets the number of digits displayed for floating-point values", + "DataType": "integer", + "IsModifiable": true, + "AllowedValues": "-15-2", + "Source": "engine-default", + "ParameterValue": "0", + "ParameterName": "extra_float_digits" + }, + (...remaining output omitted...) + ] + } + +You can also obtain the same information in text format using the ``--output text`` option. + +Command:: + + aws redshift describe-cluster-parameters --parameter-group-name myclusterparametergroup --output text + +Result:: + + RESPONSEMETADATA cdac40aa-64cc-11e2-9e70-918437dd236d + Sets the display format for date and time values. string True engine-default ISO, MDY datestyle + Sets the number of digits displayed for floating-point values integer True -15-2 engine-default 0 extra_float_digits + This parameter applies a user-defined label to a group of queries that are run during the same session.. string True engine-default default query_group + require ssl for all databaseconnections boolean True true,false engine-default false require_ssl + Sets the schema search order for names that are not schema-qualified. string True engine-default $user, public search_path + Aborts any statement that takes over the specified number of milliseconds. integer True engine-default 0 statement_timeout + wlm json configuration string True engine-default \[{"query_concurrency":5}] wlm_json_configuration + + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-security-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-security-groups.rst new file mode 100644 index 000000000..b53dbc094 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-security-groups.rst @@ -0,0 +1,37 @@ +Get a Description of All Cluster Security Groups +------------------------------------------------ + +This example returns a description of all cluster security groups for the account. +By default, the output is in JSON format. + +Command:: + + aws redshift describe-cluster-security-groups + +Result:: + + { + "ClusterSecurityGroups": [ + { + "OwnerId": "100447751468", + "Description": "default", + "ClusterSecurityGroupName": "default", + "EC2SecurityGroups": \[], + "IPRanges": [ + { + "Status": "authorized", + "CIDRIP": "0.0.0.0/0" + } + ] + }, + { + "OwnerId": "100447751468", + "Description": "This is my cluster security group", + "ClusterSecurityGroupName": "mysecuritygroup", + "EC2SecurityGroups": \[], + "IPRanges": \[] + }, + (...remaining output omitted...) + ] + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-snapshots.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-snapshots.rst new file mode 100644 index 000000000..b5f6846d8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-snapshots.rst @@ -0,0 +1,68 @@ +Get a Description of All Cluster Snapshots +------------------------------------------ + +This example returns a description of all cluster snapshots for the +account. By default, the output is in JSON format. + +Command:: + + aws redshift describe-cluster-snapshots + +Result:: + + { + "Snapshots": [ + { + "Status": "available", + "SnapshotCreateTime": "2013-07-17T22:02:22.852Z", + "EstimatedSecondsToCompletion": -1, + "AvailabilityZone": "us-east-1a", + "ClusterVersion": "1.0", + "MasterUsername": "adminuser", + "Encrypted": false, + "OwnerAccount": "111122223333", + "BackupProgressInMegabytes": 20.0, + "ElapsedTimeInSeconds": 0, + "DBName": "dev", + "CurrentBackupRateInMegabytesPerSecond: 0.0, + "ClusterCreateTime": "2013-01-22T21:59:29.559Z", + "ActualIncrementalBackupSizeInMegabytes"; 20.0 + "SnapshotType": "automated", + "NodeType": "dw.hs1.xlarge", + "ClusterIdentifier": "mycluster", + "Port": 5439, + "TotalBackupSizeInMegabytes": 20.0, + "NumberOfNodes": "2", + "SnapshotIdentifier": "cm:mycluster-2013-01-22-22-04-18" + }, + { + "EstimatedSecondsToCompletion": 0, + "OwnerAccount": "111122223333", + "CurrentBackupRateInMegabytesPerSecond: 0.1534, + "ActualIncrementalBackupSizeInMegabytes"; 11.0, + "NumberOfNodes": "2", + "Status": "available", + "ClusterVersion": "1.0", + "MasterUsername": "adminuser", + "AccountsWithRestoreAccess": [ + { + "AccountID": "444455556666" + } ], + "TotalBackupSizeInMegabytes": 20.0, + "DBName": "dev", + "BackupProgressInMegabytes": 11.0, + "ClusterCreateTime": "2013-01-22T21:59:29.559Z", + "ElapsedTimeInSeconds": 0, + "ClusterIdentifier": "mycluster", + "SnapshotCreateTime": "2013-07-17T22:04:18.947Z", + "AvailabilityZone": "us-east-1a", + "NodeType": "dw.hs1.xlarge", + "Encrypted": false, + "SnapshotType": "manual", + "Port": 5439, + "SnapshotIdentifier": "my-snapshot-id" + } ] + } + (...remaining output omitted...) + + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-subnet-groups.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-subnet-groups.rst new file mode 100644 index 000000000..9e9869a1f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-subnet-groups.rst @@ -0,0 +1,34 @@ +Get a Description of All Cluster Subnet Groups +---------------------------------------------- + +This example returns a description of all cluster subnet groups. By default, the output is in JSON format. + +Command:: + + aws redshift describe-cluster-subnet-groups + +Result:: + + { + "ClusterSubnetGroups": [ + { + "Subnets": [ + { + "SubnetStatus": "Active", + "SubnetIdentifier": "subnet-763fdd1c", + "SubnetAvailabilityZone": { + "Name": "us-east-1a" + } + } + ], + "VpcId": "vpc-7e3fdd14", + "SubnetGroupStatus": "Complete", + "Description": "My subnet group", + "ClusterSubnetGroupName": "mysubnetgroup" + } + ], + "ResponseMetadata": { + "RequestId": "37fa8c89-6990-11e2-8f75-ab4018764c77" + } + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-tracks.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-tracks.rst new file mode 100755 index 000000000..46f4021ba --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-tracks.rst @@ -0,0 +1,42 @@ +**To describe cluster tracks** + +The following ``describe-cluster-tracks`` example displays details of the available maintenance tracks. :: + + aws redshift describe-cluster-tracks \ + --maintenance-track-name current + +Output:: + + { + "MaintenanceTracks": [ + { + "MaintenanceTrackName": "current", + "DatabaseVersion": "1.0.11420", + "UpdateTargets": [ + { + "MaintenanceTrackName": "preview_features", + "DatabaseVersion": "1.0.11746", + "SupportedOperations": [ + { + "OperationName": "restore-from-cluster-snapshot" + } + ] + }, + { + "MaintenanceTrackName": "trailing", + "DatabaseVersion": "1.0.11116", + "SupportedOperations": [ + { + "OperationName": "restore-from-cluster-snapshot" + }, + { + "OperationName": "modify-cluster" + } + ] + } + ] + } + ] + } + +For more information, see `Choosing Cluster Maintenance Tracks `__ in the *Amazon Redshift Cluster Management Guide*. diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-versions.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-versions.rst new file mode 100644 index 000000000..fbb113d41 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-cluster-versions.rst @@ -0,0 +1,23 @@ +Get a Description of All Cluster Versions +----------------------------------------- + +This example returns a description of all cluster versions. By default, the output is in JSON format. + +Command:: + + aws redshift describe-cluster-versions + +Result:: + + { + "ClusterVersions": [ + { + "ClusterVersion": "1.0", + "Description": "Initial release", + "ClusterParameterGroupFamily": "redshift-1.0" + } ], + "ResponseMetadata": { + "RequestId": "16a53de3-64cc-11e2-bec0-17624ad140dd" + } + } + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-clusters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-clusters.rst new file mode 100644 index 000000000..ec3afa6b4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-clusters.rst @@ -0,0 +1,64 @@ +Get a Description of All Clusters +--------------------------------- + +This example returns a description of all clusters for the account. By default, the output is in JSON format. + +Command:: + + aws redshift describe-clusters + +Result:: + + { + "Clusters": [ + { + "NodeType": "dw.hs1.xlarge", + "Endpoint": { + "Port": 5439, + "Address": "mycluster.coqoarplqhsn.us-east-1.redshift.amazonaws.com" + }, + "ClusterVersion": "1.0", + "PubliclyAccessible": "true", + "MasterUsername": "adminuser", + "ClusterParameterGroups": [ + { + "ParameterApplyStatus": "in-sync", + "ParameterGroupName": "default.redshift-1.0" + } ], + "ClusterSecurityGroups": [ + { + "Status": "active", + "ClusterSecurityGroupName": "default" + } ], + "AllowVersionUpgrade": true, + "VpcSecurityGroups": \[], + "AvailabilityZone": "us-east-1a", + "ClusterCreateTime": "2013-01-22T21:59:29.559Z", + "PreferredMaintenanceWindow": "sat:03:30-sat:04:00", + "AutomatedSnapshotRetentionPeriod": 1, + "ClusterStatus": "available", + "ClusterIdentifier": "mycluster", + "DBName": "dev", + "NumberOfNodes": 2, + "PendingModifiedValues": {} + } ], + "ResponseMetadata": { + "RequestId": "65b71cac-64df-11e2-8f5b-e90bd6c77476" + } + } + +You can also obtain the same information in text format using the ``--output text`` option. + +Command:: + + aws redshift describe-clusters --output text + +Result:: + + dw.hs1.xlarge 1.0 true adminuser True us-east-1a 2013-01-22T21:59:29.559Z sat:03:30-sat:04:00 1 available mycluster dev 2 + ENDPOINT 5439 mycluster.coqoarplqhsn.us-east-1.redshift.amazonaws.com + in-sync default.redshift-1.0 + active default + PENDINGMODIFIEDVALUES + RESPONSEMETADATA 934281a8-64df-11e2-b07c-f7fbdd006c67 + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-default-cluster-parameters.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-default-cluster-parameters.rst new file mode 100644 index 000000000..910f05b0a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-default-cluster-parameters.rst @@ -0,0 +1,40 @@ +Get a Description of Default Cluster Parameters +----------------------------------------------- + +This example returns a description of the default cluster parameters for the +``redshift-1.0`` family. By default, the output is in JSON format. + +Command:: + + aws redshift describe-default-cluster-parameters --parameter-group-family redshift-1.0 + +Result:: + + { + "DefaultClusterParameters": { + "ParameterGroupFamily": "redshift-1.0", + "Parameters": [ + { + "Description": "Sets the display format for date and time values.", + "DataType": "string", + "IsModifiable": true, + "Source": "engine-default", + "ParameterValue": "ISO, MDY", + "ParameterName": "datestyle" + }, + { + "Description": "Sets the number of digits displayed for floating-point values", + "DataType": "integer", + "IsModifiable": true, + "AllowedValues": "-15-2", + "Source": "engine-default", + "ParameterValue": "0", + "ParameterName": "extra_float_digits" + }, + (...remaining output omitted...) + ] + } + } + +.. tip:: To see a list of valid parameter group families, use the ``describe-cluster-parameter-groups`` command. + diff --git a/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-event-categories.rst b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-event-categories.rst new file mode 100755 index 000000000..7bbad2ee6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/awscli/examples/redshift/describe-event-categories.rst @@ -0,0 +1,42 @@ +**To describe event categories for a cluster** + +The following ``describe-event-categories`` example displays details for the event categories for a cluster. :: + + aws redshift describe-event-categories \ + --source-type cluster + +Output:: + + { + "EventCategoriesMapList": [ + { + "SourceType": "cluster", + "Events": [ + { + "EventId": "REDSHIFT-EVENT-2000", + "EventCategories": [ + "management" + ], + "EventDescription": "Cluster created at
foo`` into + # `` foo``. + for prev, cur in zip(self.children[:-1], self.children[1:]): + if ( + isinstance(prev, DataNode) + and prev.endswith_whitespace() + and cur.startswith_whitespace() + ): + cur.lstrip() + # Same logic, but for situations like ``bar ``: + for cur, nxt in zip(self.children[:-1], self.children[1:]): + if ( + isinstance(nxt, DataNode) + and cur.endswith_whitespace() + and nxt.startswith_whitespace() + ): + cur.rstrip() + # Recurse into children + for child in self.children: + child.collapse_whitespace() + + def _write_start(self, doc): + handler_name = f'start_{self.tag}' + if hasattr(doc.style, handler_name): + getattr(doc.style, handler_name)(self.attrs) + + def _write_end(self, doc, next_child): + handler_name = f'end_{self.tag}' + if hasattr(doc.style, handler_name): + if handler_name == 'end_a': + # We use lookahead to determine if a space is needed after a link node + getattr(doc.style, handler_name)(next_child) + else: + getattr(doc.style, handler_name)() + + +class DataNode(Node): + """ + A Node that contains only string data. + """ + + def __init__(self, data, parent=None): + super().__init__(parent) + if not isinstance(data, str): + raise ValueError(f"Expecting string type, {type(data)} given.") + self._leading_whitespace = '' + self._trailing_whitespace = '' + self._stripped_data = '' + if data == '': + return + if data.isspace(): + self._trailing_whitespace = data + return + first_non_space = next( + idx for idx, ch in enumerate(data) if not ch.isspace() + ) + last_non_space = len(data) - next( + idx for idx, ch in enumerate(reversed(data)) if not ch.isspace() + ) + self._leading_whitespace = data[:first_non_space] + self._trailing_whitespace = data[last_non_space:] + self._stripped_data = data[first_non_space:last_non_space] + + @property + def data(self): + return ( + f'{self._leading_whitespace}{self._stripped_data}' + f'{self._trailing_whitespace}' + ) + + def is_whitespace(self): + return self._stripped_data == '' and ( + self._leading_whitespace != '' or self._trailing_whitespace != '' + ) + + def startswith_whitespace(self): + return self._leading_whitespace != '' or ( + self._stripped_data == '' and self._trailing_whitespace != '' + ) + + def endswith_whitespace(self): + return self._trailing_whitespace != '' or ( + self._stripped_data == '' and self._leading_whitespace != '' + ) + + def lstrip(self): + if self._leading_whitespace != '': + self._leading_whitespace = '' + elif self._stripped_data == '': + self.rstrip() + + def rstrip(self): + if self._trailing_whitespace != '': + self._trailing_whitespace = '' + elif self._stripped_data == '': + self.lstrip() + + def collapse_whitespace(self): + """Noop, ``DataNode.write`` always collapses whitespace""" + return + + def write(self, doc): + words = doc.translate_words(self._stripped_data.split()) + str_data = ( + f'{self._leading_whitespace}{" ".join(words)}' + f'{self._trailing_whitespace}' + ) + if str_data != '': + doc.handle_data(str_data) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/docs/bcdoc/restdoc.py b/rep_localstack/lib/python3.12/site-packages/botocore/docs/bcdoc/restdoc.py new file mode 100644 index 000000000..3868126cc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/docs/bcdoc/restdoc.py @@ -0,0 +1,285 @@ +# Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import logging +import os +import re + +from botocore.compat import OrderedDict +from botocore.docs.bcdoc.docstringparser import DocStringParser +from botocore.docs.bcdoc.style import ReSTStyle + +DEFAULT_AWS_DOCS_LINK = 'https://docs.aws.amazon.com/index.html' +DOCUMENTATION_LINK_REGEX = re.compile( + r'`AWS API Documentation ' + r'`_' +) +LARGE_SECTION_MESSAGE = """ + + **{}** + :: + + # This section is too large to render. + # Please see the AWS API Documentation linked below. + + {} + """ +LOG = logging.getLogger('bcdocs') +SECTION_LINE_LIMIT_CONFIG = { + 'response-example': {'name': 'Response Syntax', 'line_limit': 1500}, + 'description': {'name': 'Response Structure', 'line_limit': 5000}, + 'request-example': {'name': 'Request Syntax', 'line_limit': 1500}, + 'request-params': {'name': 'Parameters', 'line_limit': 5000}, +} +SECTION_METHOD_PATH_DEPTH = { + 'client-api': 4, + 'paginator-api': 3, + 'waiter-api': 3, +} + + +class ReSTDocument: + def __init__(self, target='man'): + self.style = ReSTStyle(self) + self.target = target + self.parser = DocStringParser(self) + self.keep_data = True + self.do_translation = False + self.translation_map = {} + self.hrefs = {} + self._writes = [] + self._last_doc_string = None + + def _write(self, s): + if self.keep_data and s is not None: + self._writes.append(s) + + def write(self, content): + """ + Write content into the document. + """ + self._write(content) + + def writeln(self, content): + """ + Write content on a newline. + """ + self._write(f'{self.style.spaces()}{content}\n') + + def peek_write(self): + """ + Returns the last content written to the document without + removing it from the stack. + """ + return self._writes[-1] + + def pop_write(self): + """ + Removes and returns the last content written to the stack. + """ + return self._writes.pop() if len(self._writes) > 0 else None + + def push_write(self, s): + """ + Places new content on the stack. + """ + self._writes.append(s) + + def getvalue(self): + """ + Returns the current content of the document as a string. + """ + if self.hrefs: + self.style.new_paragraph() + for refname, link in self.hrefs.items(): + self.style.link_target_definition(refname, link) + return ''.join(self._writes).encode('utf-8') + + def translate_words(self, words): + return [self.translation_map.get(w, w) for w in words] + + def handle_data(self, data): + if data and self.keep_data: + self._write(data) + + def include_doc_string(self, doc_string): + if doc_string: + try: + start = len(self._writes) + self.parser.feed(doc_string) + self.parser.close() + end = len(self._writes) + self._last_doc_string = (start, end) + except Exception: + LOG.debug('Error parsing doc string', exc_info=True) + LOG.debug(doc_string) + + def remove_last_doc_string(self): + # Removes all writes inserted by last doc string + if self._last_doc_string is not None: + start, end = self._last_doc_string + del self._writes[start:end] + + +class DocumentStructure(ReSTDocument): + def __init__(self, name, section_names=None, target='man', context=None): + """Provides a Hierarichial structure to a ReSTDocument + + You can write to it similiar to as you can to a ReSTDocument but + has an innate structure for more orginaztion and abstraction. + + :param name: The name of the document + :param section_names: A list of sections to be included + in the document. + :param target: The target documentation of the Document structure + :param context: A dictionary of data to store with the strucuture. These + are only stored per section not the entire structure. + """ + super().__init__(target=target) + self._name = name + self._structure = OrderedDict() + self._path = [self._name] + self._context = {} + if context is not None: + self._context = context + if section_names is not None: + self._generate_structure(section_names) + + @property + def name(self): + """The name of the document structure""" + return self._name + + @property + def path(self): + """ + A list of where to find a particular document structure in the + overlying document structure. + """ + return self._path + + @path.setter + def path(self, value): + self._path = value + + @property + def available_sections(self): + return list(self._structure) + + @property + def context(self): + return self._context + + def _generate_structure(self, section_names): + for section_name in section_names: + self.add_new_section(section_name) + + def add_new_section(self, name, context=None): + """Adds a new section to the current document structure + + This document structure will be considered a section to the + current document structure but will in itself be an entirely + new document structure that can be written to and have sections + as well + + :param name: The name of the section. + :param context: A dictionary of data to store with the strucuture. These + are only stored per section not the entire structure. + :rtype: DocumentStructure + :returns: A new document structure to add to but lives as a section + to the document structure it was instantiated from. + """ + # Add a new section + section = self.__class__( + name=name, target=self.target, context=context + ) + section.path = self.path + [name] + # Indent the section apporpriately as well + section.style.indentation = self.style.indentation + section.translation_map = self.translation_map + section.hrefs = self.hrefs + self._structure[name] = section + return section + + def get_section(self, name): + """Retrieve a section""" + return self._structure[name] + + def has_section(self, name): + return name in self._structure + + def delete_section(self, name): + """Delete a section""" + del self._structure[name] + + def flush_structure(self, docs_link=None): + """Flushes a doc structure to a ReSTructed string + + The document is flushed out in a DFS style where sections and their + subsections' values are added to the string as they are visited. + """ + # We are at the root flush the links at the beginning of the + # document + path_length = len(self.path) + if path_length == 1: + if self.hrefs: + self.style.new_paragraph() + for refname, link in self.hrefs.items(): + self.style.link_target_definition(refname, link) + # Clear docs_link at the correct depth to prevent passing a non-related link. + elif path_length == SECTION_METHOD_PATH_DEPTH.get(self.path[1]): + docs_link = None + value = self.getvalue() + for name, section in self._structure.items(): + # Checks is the AWS API Documentation link has been generated. + # If it has been generated, it gets passed as a the doc_link parameter. + match = DOCUMENTATION_LINK_REGEX.search(value.decode()) + docs_link = ( + f'{match.group(0)}\n\n'.encode() if match else docs_link + ) + value += section.flush_structure(docs_link) + + # Replace response/request sections if the line number exceeds our limit. + # The section is replaced with a message linking to AWS API Documentation. + line_count = len(value.splitlines()) + section_config = SECTION_LINE_LIMIT_CONFIG.get(self.name) + aws_docs_link = ( + docs_link.decode() + if docs_link is not None + else DEFAULT_AWS_DOCS_LINK + ) + if section_config and line_count > section_config['line_limit']: + value = LARGE_SECTION_MESSAGE.format( + section_config['name'], aws_docs_link + ).encode() + return value + + def getvalue(self): + return ''.join(self._writes).encode('utf-8') + + def remove_all_sections(self): + self._structure = OrderedDict() + + def clear_text(self): + self._writes = [] + + def add_title_section(self, title): + title_section = self.add_new_section('title') + title_section.style.h1(title) + return title_section + + def write_to_file(self, full_path, file_name): + if not os.path.exists(full_path): + os.makedirs(full_path) + sub_resource_file_path = os.path.join(full_path, f'{file_name}.rst') + with open(sub_resource_file_path, 'wb') as f: + f.write(self.flush_structure()) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/docs/bcdoc/style.py b/rep_localstack/lib/python3.12/site-packages/botocore/docs/bcdoc/style.py new file mode 100644 index 000000000..205d238d7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/docs/bcdoc/style.py @@ -0,0 +1,447 @@ +# Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import logging + +logger = logging.getLogger('bcdocs') +# Terminal punctuation where a space is not needed before. +PUNCTUATION_CHARACTERS = ('.', ',', '?', '!', ':', ';') + + +class BaseStyle: + def __init__(self, doc, indent_width=2): + self.doc = doc + self.indent_width = indent_width + self._indent = 0 + self.keep_data = True + + @property + def indentation(self): + return self._indent + + @indentation.setter + def indentation(self, value): + self._indent = value + + def new_paragraph(self): + return f'\n{self.spaces()}' + + def indent(self): + self._indent += 1 + + def dedent(self): + if self._indent > 0: + self._indent -= 1 + + def spaces(self): + return ' ' * (self._indent * self.indent_width) + + def bold(self, s): + return s + + def ref(self, link, title=None): + return link + + def h2(self, s): + return s + + def h3(self, s): + return s + + def underline(self, s): + return s + + def italics(self, s): + return s + + def add_trailing_space_to_previous_write(self): + # Adds a trailing space if none exists. This is mainly used for + # ensuring inline code and links are separated from surrounding text. + last_write = self.doc.pop_write() + if last_write is None: + last_write = '' + if last_write != '' and last_write[-1] != ' ': + last_write += ' ' + self.doc.push_write(last_write) + + +class ReSTStyle(BaseStyle): + def __init__(self, doc, indent_width=2): + BaseStyle.__init__(self, doc, indent_width) + self.do_p = True + self.a_href = None + self.list_depth = 0 + + def new_paragraph(self): + self.doc.write(f'\n\n{self.spaces()}') + + def new_line(self): + self.doc.write(f'\n{self.spaces()}') + + def _start_inline(self, markup): + # Insert space between any directly adjacent bold and italic inlines to + # avoid situations like ``**abc***def*``. + try: + last_write = self.doc.peek_write() + except IndexError: + pass + else: + if last_write in ('*', '**') and markup in ('*', '**'): + self.doc.write(' ') + self.doc.write(markup) + + def _end_inline(self, markup): + # Remove empty and self-closing tags like ```` and ````. + # If we simply translate that directly then we end up with something + # like ****, which rst will assume is a heading instead of an empty + # bold. + last_write = self.doc.pop_write() + if last_write == markup: + return + self.doc.push_write(last_write) + self.doc.write(markup) + + def start_bold(self, attrs=None): + self._start_inline('**') + + def end_bold(self): + self._end_inline('**') + + def start_b(self, attrs=None): + self.doc.do_translation = True + self.start_bold(attrs) + + def end_b(self): + self.doc.do_translation = False + self.end_bold() + + def bold(self, s): + if s: + self.start_bold() + self.doc.write(s) + self.end_bold() + + def ref(self, title, link=None): + if link is None: + link = title + self.doc.write(f':doc:`{title} <{link}>`') + + def _heading(self, s, border_char): + border = border_char * len(s) + self.new_paragraph() + self.doc.write(f'{border}\n{s}\n{border}') + self.new_paragraph() + + def h1(self, s): + self._heading(s, '*') + + def h2(self, s): + self._heading(s, '=') + + def h3(self, s): + self._heading(s, '-') + + def start_italics(self, attrs=None): + self._start_inline('*') + + def end_italics(self): + self._end_inline('*') + + def italics(self, s): + if s: + self.start_italics() + self.doc.write(s) + self.end_italics() + + def start_p(self, attrs=None): + if self.do_p: + self.doc.write(f'\n\n{self.spaces()}') + + def end_p(self): + if self.do_p: + self.doc.write(f'\n\n{self.spaces()}') + + def start_code(self, attrs=None): + self.doc.do_translation = True + self.add_trailing_space_to_previous_write() + self._start_inline('``') + + def end_code(self): + self.doc.do_translation = False + self._end_inline('``') + + def code(self, s): + if s: + self.start_code() + self.doc.write(s) + self.end_code() + + def start_note(self, attrs=None): + self.new_paragraph() + self.doc.write('.. note::') + self.indent() + self.new_paragraph() + + def end_note(self): + self.dedent() + self.new_paragraph() + + def start_important(self, attrs=None): + self.new_paragraph() + self.doc.write('.. warning::') + self.indent() + self.new_paragraph() + + def end_important(self): + self.dedent() + self.new_paragraph() + + def start_danger(self, attrs=None): + self.new_paragraph() + self.doc.write('.. danger::') + self.indent() + self.new_paragraph() + + def end_danger(self): + self.dedent() + self.new_paragraph() + + def start_a(self, attrs=None): + # Write an empty space to guard against zero whitespace + # before an "a" tag. Example: hiExample + self.add_trailing_space_to_previous_write() + if attrs: + for attr_key, attr_value in attrs: + if attr_key == 'href': + # Removes unnecessary whitespace around the href link. + # Example: Example + self.a_href = attr_value.strip() + self.doc.write('`') + else: + # There are some model documentation that + # looks like this: DescribeInstances. + # In this case we just write out an empty + # string. + self.doc.write(' ') + self.doc.do_translation = True + + def link_target_definition(self, refname, link): + self.doc.writeln(f'.. _{refname}: {link}') + + def sphinx_reference_label(self, label, text=None): + if text is None: + text = label + if self.doc.target == 'html': + self.doc.write(f':ref:`{text} <{label}>`') + else: + self.doc.write(text) + + def _clean_link_text(self): + doc = self.doc + # Pop till we reach the link start character to retrieve link text. + last_write = doc.pop_write() + while not last_write.startswith('`'): + last_write = doc.pop_write() + last_write + if last_write != '': + # Remove whitespace from the start of link text. + if last_write.startswith('` '): + last_write = f'`{last_write[1:].lstrip(" ")}' + doc.push_write(last_write) + + def end_a(self, next_child=None): + self.doc.do_translation = False + if self.a_href: + self._clean_link_text() + last_write = self.doc.pop_write() + last_write = last_write.rstrip(' ') + if last_write and last_write != '`': + if ':' in last_write: + last_write = last_write.replace(':', r'\:') + self.doc.push_write(last_write) + self.doc.push_write(f' <{self.a_href}>`__') + elif last_write == '`': + # Look at start_a(). It will do a self.doc.write('`') + # which is the start of the link title. If that is the + # case then there was no link text. We should just + # use an inline link. The syntax of this is + # ``_ + self.doc.push_write(f'`<{self.a_href}>`__') + else: + self.doc.push_write(self.a_href) + self.doc.hrefs[self.a_href] = self.a_href + self.doc.write('`__') + self.a_href = None + + def start_i(self, attrs=None): + self.doc.do_translation = True + self.start_italics() + + def end_i(self): + self.doc.do_translation = False + self.end_italics() + + def start_li(self, attrs=None): + self.new_line() + self.do_p = False + self.doc.write('* ') + + def end_li(self): + self.do_p = True + self.new_line() + + def li(self, s): + if s: + self.start_li() + self.doc.writeln(s) + self.end_li() + + def start_ul(self, attrs=None): + if self.list_depth != 0: + self.indent() + self.list_depth += 1 + self.new_paragraph() + + def end_ul(self): + self.list_depth -= 1 + if self.list_depth != 0: + self.dedent() + self.new_paragraph() + + def start_ol(self, attrs=None): + # TODO: Need to control the bullets used for LI items + if self.list_depth != 0: + self.indent() + self.list_depth += 1 + self.new_paragraph() + + def end_ol(self): + self.list_depth -= 1 + if self.list_depth != 0: + self.dedent() + self.new_paragraph() + + def start_examples(self, attrs=None): + self.doc.keep_data = False + + def end_examples(self): + self.doc.keep_data = True + + def start_fullname(self, attrs=None): + self.doc.keep_data = False + + def end_fullname(self): + self.doc.keep_data = True + + def start_codeblock(self, attrs=None): + self.doc.write('::') + self.indent() + self.new_paragraph() + + def end_codeblock(self): + self.dedent() + self.new_paragraph() + + def codeblock(self, code): + """ + Literal code blocks are introduced by ending a paragraph with + the special marker ::. The literal block must be indented + (and, like all paragraphs, separated from the surrounding + ones by blank lines). + """ + self.start_codeblock() + self.doc.writeln(code) + self.end_codeblock() + + def toctree(self): + if self.doc.target == 'html': + self.doc.write('\n.. toctree::\n') + self.doc.write(' :maxdepth: 1\n') + self.doc.write(' :titlesonly:\n\n') + else: + self.start_ul() + + def tocitem(self, item, file_name=None): + if self.doc.target == 'man': + self.li(item) + else: + if file_name: + self.doc.writeln(f' {file_name}') + else: + self.doc.writeln(f' {item}') + + def hidden_toctree(self): + if self.doc.target == 'html': + self.doc.write('\n.. toctree::\n') + self.doc.write(' :maxdepth: 1\n') + self.doc.write(' :hidden:\n\n') + + def hidden_tocitem(self, item): + if self.doc.target == 'html': + self.tocitem(item) + + def table_of_contents(self, title=None, depth=None): + self.doc.write('.. contents:: ') + if title is not None: + self.doc.writeln(title) + if depth is not None: + self.doc.writeln(f' :depth: {depth}') + + def start_sphinx_py_class(self, class_name): + self.new_paragraph() + self.doc.write(f'.. py:class:: {class_name}') + self.indent() + self.new_paragraph() + + def end_sphinx_py_class(self): + self.dedent() + self.new_paragraph() + + def start_sphinx_py_method(self, method_name, parameters=None): + self.new_paragraph() + content = f'.. py:method:: {method_name}' + if parameters is not None: + content += f'({parameters})' + self.doc.write(content) + self.indent() + self.new_paragraph() + + def end_sphinx_py_method(self): + self.dedent() + self.new_paragraph() + + def start_sphinx_py_attr(self, attr_name): + self.new_paragraph() + self.doc.write(f'.. py:attribute:: {attr_name}') + self.indent() + self.new_paragraph() + + def end_sphinx_py_attr(self): + self.dedent() + self.new_paragraph() + + def write_py_doc_string(self, docstring): + docstring_lines = docstring.splitlines() + for docstring_line in docstring_lines: + self.doc.writeln(docstring_line) + + def external_link(self, title, link): + if self.doc.target == 'html': + self.doc.write(f'`{title} <{link}>`_') + else: + self.doc.write(title) + + def internal_link(self, title, page): + if self.doc.target == 'html': + self.doc.write(f':doc:`{title} <{page}>`') + else: + self.doc.write(title) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/docs/client.py b/rep_localstack/lib/python3.12/site-packages/botocore/docs/client.py new file mode 100644 index 000000000..26bb604c3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/docs/client.py @@ -0,0 +1,451 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import os + +from botocore import xform_name +from botocore.compat import OrderedDict +from botocore.docs.bcdoc.restdoc import DocumentStructure +from botocore.docs.example import ResponseExampleDocumenter +from botocore.docs.method import ( + document_custom_method, + document_model_driven_method, + get_instance_public_methods, +) +from botocore.docs.params import ResponseParamsDocumenter +from botocore.docs.sharedexample import document_shared_examples +from botocore.docs.utils import DocumentedShape, get_official_service_name + + +def _allowlist_generate_presigned_url(method_name, service_name, **kwargs): + if method_name != 'generate_presigned_url': + return None + return service_name in ['s3'] + + +class ClientDocumenter: + _CLIENT_METHODS_FILTERS = [ + _allowlist_generate_presigned_url, + ] + + def __init__(self, client, root_docs_path, shared_examples=None): + self._client = client + self._client_class_name = self._client.__class__.__name__ + self._root_docs_path = root_docs_path + self._shared_examples = shared_examples + if self._shared_examples is None: + self._shared_examples = {} + self._service_name = self._client.meta.service_model.service_name + + def document_client(self, section): + """Documents a client and its methods + + :param section: The section to write to. + """ + self._add_title(section) + self._add_class_signature(section) + client_methods = self._get_client_methods() + self._add_client_intro(section, client_methods) + self._add_client_methods(client_methods) + + def _get_client_methods(self): + client_methods = get_instance_public_methods(self._client) + return self._filter_client_methods(client_methods) + + def _filter_client_methods(self, client_methods): + filtered_methods = {} + for method_name, method in client_methods.items(): + include = self._filter_client_method( + method=method, + method_name=method_name, + service_name=self._service_name, + ) + if include: + filtered_methods[method_name] = method + return filtered_methods + + def _filter_client_method(self, **kwargs): + # Apply each filter to the method + for filter in self._CLIENT_METHODS_FILTERS: + filter_include = filter(**kwargs) + # Use the first non-None value returned by any of the filters + if filter_include is not None: + return filter_include + # Otherwise default to including it + return True + + def _add_title(self, section): + section.style.h2('Client') + + def _add_client_intro(self, section, client_methods): + section = section.add_new_section('intro') + # Write out the top level description for the client. + official_service_name = get_official_service_name( + self._client.meta.service_model + ) + section.write( + f"A low-level client representing {official_service_name}" + ) + section.style.new_line() + section.include_doc_string( + self._client.meta.service_model.documentation + ) + + # Write out the client example instantiation. + self._add_client_creation_example(section) + + # List out all of the possible client methods. + section.style.dedent() + section.style.new_paragraph() + section.writeln('These are the available methods:') + section.style.toctree() + for method_name in sorted(client_methods): + section.style.tocitem(f'{self._service_name}/client/{method_name}') + + def _add_class_signature(self, section): + section.style.start_sphinx_py_class( + class_name=f'{self._client_class_name}.Client' + ) + + def _add_client_creation_example(self, section): + section.style.start_codeblock() + section.style.new_line() + section.write( + f'client = session.create_client(\'{self._service_name}\')' + ) + section.style.end_codeblock() + + def _add_client_methods(self, client_methods): + for method_name in sorted(client_methods): + # Create a new DocumentStructure for each client method and add contents. + method_doc_structure = DocumentStructure( + method_name, target='html' + ) + self._add_client_method( + method_doc_structure, method_name, client_methods[method_name] + ) + # Write client methods in individual/nested files. + # Path: /reference/services//client/.rst + client_dir_path = os.path.join( + self._root_docs_path, self._service_name, 'client' + ) + method_doc_structure.write_to_file(client_dir_path, method_name) + + def _add_client_method(self, section, method_name, method): + breadcrumb_section = section.add_new_section('breadcrumb') + breadcrumb_section.style.ref( + self._client_class_name, f'../../{self._service_name}' + ) + breadcrumb_section.write(f' / Client / {method_name}') + section.add_title_section(method_name) + method_section = section.add_new_section( + method_name, + context={'qualifier': f'{self._client_class_name}.Client.'}, + ) + if self._is_custom_method(method_name): + self._add_custom_method( + method_section, + method_name, + method, + ) + else: + self._add_model_driven_method(method_section, method_name) + + def _is_custom_method(self, method_name): + return method_name not in self._client.meta.method_to_api_mapping + + def _add_custom_method(self, section, method_name, method): + document_custom_method(section, method_name, method) + + def _add_method_exceptions_list(self, section, operation_model): + error_section = section.add_new_section('exceptions') + error_section.style.new_line() + error_section.style.bold('Exceptions') + error_section.style.new_line() + for error in operation_model.error_shapes: + class_name = ( + f'{self._client_class_name}.Client.exceptions.{error.name}' + ) + error_section.style.li(f':py:class:`{class_name}`') + + def _add_model_driven_method(self, section, method_name): + service_model = self._client.meta.service_model + operation_name = self._client.meta.method_to_api_mapping[method_name] + operation_model = service_model.operation_model(operation_name) + + example_prefix = f'response = client.{method_name}' + full_method_name = ( + f"{section.context.get('qualifier', '')}{method_name}" + ) + document_model_driven_method( + section, + full_method_name, + operation_model, + event_emitter=self._client.meta.events, + method_description=operation_model.documentation, + example_prefix=example_prefix, + ) + + # Add any modeled exceptions + if operation_model.error_shapes: + self._add_method_exceptions_list(section, operation_model) + + # Add the shared examples + shared_examples = self._shared_examples.get(operation_name) + if shared_examples: + document_shared_examples( + section, operation_model, example_prefix, shared_examples + ) + + +class ClientExceptionsDocumenter: + _USER_GUIDE_LINK = ( + 'https://docs.aws.amazon.com/boto3/latest/guide/error-handling.html' + ) + _GENERIC_ERROR_SHAPE = DocumentedShape( + name='Error', + type_name='structure', + documentation=('Normalized access to common exception attributes.'), + members=OrderedDict( + [ + ( + 'Code', + DocumentedShape( + name='Code', + type_name='string', + documentation=( + 'An identifier specifying the exception type.' + ), + ), + ), + ( + 'Message', + DocumentedShape( + name='Message', + type_name='string', + documentation=( + 'A descriptive message explaining why the exception ' + 'occured.' + ), + ), + ), + ] + ), + ) + + def __init__(self, client, root_docs_path): + self._client = client + self._client_class_name = self._client.__class__.__name__ + self._service_name = self._client.meta.service_model.service_name + self._root_docs_path = root_docs_path + + def document_exceptions(self, section): + self._add_title(section) + self._add_overview(section) + self._add_exceptions_list(section) + self._add_exception_classes() + + def _add_title(self, section): + section.style.h2('Client Exceptions') + + def _add_overview(self, section): + section.style.new_line() + section.write( + 'Client exceptions are available on a client instance ' + 'via the ``exceptions`` property. For more detailed instructions ' + 'and examples on the exact usage of client exceptions, see the ' + 'error handling ' + ) + section.style.external_link( + title='user guide', + link=self._USER_GUIDE_LINK, + ) + section.write('.') + section.style.new_line() + + def _exception_class_name(self, shape): + return f'{self._client_class_name}.Client.exceptions.{shape.name}' + + def _add_exceptions_list(self, section): + error_shapes = self._client.meta.service_model.error_shapes + if not error_shapes: + section.style.new_line() + section.write('This client has no modeled exception classes.') + section.style.new_line() + return + section.style.new_line() + section.writeln('The available client exceptions are:') + section.style.toctree() + for shape in error_shapes: + section.style.tocitem( + f'{self._service_name}/client/exceptions/{shape.name}' + ) + + def _add_exception_classes(self): + for shape in self._client.meta.service_model.error_shapes: + # Create a new DocumentStructure for each exception method and add contents. + exception_doc_structure = DocumentStructure( + shape.name, target='html' + ) + self._add_exception_class(exception_doc_structure, shape) + # Write exceptions in individual/nested files. + # Path: /reference/services//client/exceptions/.rst + exception_dir_path = os.path.join( + self._root_docs_path, + self._service_name, + 'client', + 'exceptions', + ) + exception_doc_structure.write_to_file( + exception_dir_path, shape.name + ) + + def _add_exception_class(self, section, shape): + breadcrumb_section = section.add_new_section('breadcrumb') + breadcrumb_section.style.ref( + self._client_class_name, f'../../../{self._service_name}' + ) + breadcrumb_section.write(f' / Client / exceptions / {shape.name}') + section.add_title_section(shape.name) + class_section = section.add_new_section(shape.name) + class_name = self._exception_class_name(shape) + class_section.style.start_sphinx_py_class(class_name=class_name) + self._add_top_level_documentation(class_section, shape) + self._add_exception_catch_example(class_section, shape) + self._add_response_attr(class_section, shape) + class_section.style.end_sphinx_py_class() + + def _add_top_level_documentation(self, section, shape): + if shape.documentation: + section.style.new_line() + section.include_doc_string(shape.documentation) + section.style.new_line() + + def _add_exception_catch_example(self, section, shape): + section.style.new_line() + section.style.bold('Example') + section.style.new_paragraph() + section.style.start_codeblock() + section.write('try:') + section.style.indent() + section.style.new_line() + section.write('...') + section.style.dedent() + section.style.new_line() + section.write(f'except client.exceptions.{shape.name} as e:') + section.style.indent() + section.style.new_line() + section.write('print(e.response)') + section.style.dedent() + section.style.end_codeblock() + + def _add_response_attr(self, section, shape): + response_section = section.add_new_section('response') + response_section.style.start_sphinx_py_attr('response') + self._add_response_attr_description(response_section) + self._add_response_example(response_section, shape) + self._add_response_params(response_section, shape) + response_section.style.end_sphinx_py_attr() + + def _add_response_attr_description(self, section): + section.style.new_line() + section.include_doc_string( + 'The parsed error response. All exceptions have a top level ' + '``Error`` key that provides normalized access to common ' + 'exception atrributes. All other keys are specific to this ' + 'service or exception class.' + ) + section.style.new_line() + + def _add_response_example(self, section, shape): + example_section = section.add_new_section('syntax') + example_section.style.new_line() + example_section.style.bold('Syntax') + example_section.style.new_paragraph() + documenter = ResponseExampleDocumenter( + service_name=self._service_name, + operation_name=None, + event_emitter=self._client.meta.events, + ) + documenter.document_example( + example_section, + shape, + include=[self._GENERIC_ERROR_SHAPE], + ) + + def _add_response_params(self, section, shape): + params_section = section.add_new_section('Structure') + params_section.style.new_line() + params_section.style.bold('Structure') + params_section.style.new_paragraph() + documenter = ResponseParamsDocumenter( + service_name=self._service_name, + operation_name=None, + event_emitter=self._client.meta.events, + ) + documenter.document_params( + params_section, + shape, + include=[self._GENERIC_ERROR_SHAPE], + ) + + +class ClientContextParamsDocumenter: + _CONFIG_GUIDE_LINK = ( + 'https://docs.aws.amazon.com/boto3/latest/guide/configuration.html' + ) + + OMITTED_CONTEXT_PARAMS = { + 's3': ( + 'Accelerate', + 'DisableMultiRegionAccessPoints', + 'ForcePathStyle', + 'UseArnRegion', + ), + 's3control': ('UseArnRegion',), + } + + def __init__(self, service_name, context_params): + self._service_name = service_name + self._context_params = context_params + + def document_context_params(self, section): + self._add_title(section) + self._add_overview(section) + self._add_context_params_list(section) + + def _add_title(self, section): + section.style.h2('Client Context Parameters') + + def _add_overview(self, section): + section.style.new_line() + section.write( + 'Client context parameters are configurable on a client ' + 'instance via the ``client_context_params`` parameter in the ' + '``Config`` object. For more detailed instructions and examples ' + 'on the exact usage of context params see the ' + ) + section.style.external_link( + title='configuration guide', + link=self._CONFIG_GUIDE_LINK, + ) + section.write('.') + section.style.new_line() + + def _add_context_params_list(self, section): + section.style.new_line() + sn = f'``{self._service_name}``' + section.writeln(f'The available {sn} client context params are:') + for param in self._context_params: + section.style.new_line() + name = f'``{xform_name(param.name)}``' + section.write(f'* {name} ({param.type}) - {param.documentation}') diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/docs/docstring.py b/rep_localstack/lib/python3.12/site-packages/botocore/docs/docstring.py new file mode 100644 index 000000000..93b2e6b23 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/docs/docstring.py @@ -0,0 +1,97 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +from botocore.docs.bcdoc.restdoc import DocumentStructure +from botocore.docs.method import document_model_driven_method +from botocore.docs.paginator import document_paginate_method +from botocore.docs.waiter import document_wait_method + + +class LazyLoadedDocstring(str): + """Used for lazily loading docstrings + + You can instantiate this class and assign it to a __doc__ value. + The docstring will not be generated till accessed via __doc__ or + help(). Note that all docstring classes **must** subclass from + this class. It cannot be used directly as a docstring. + """ + + def __init__(self, *args, **kwargs): + """ + The args and kwargs are the same as the underlying document + generation function. These just get proxied to the underlying + function. + """ + super().__init__() + self._gen_args = args + self._gen_kwargs = kwargs + self._docstring = None + + def __new__(cls, *args, **kwargs): + # Needed in order to sub class from str with args and kwargs + return super().__new__(cls) + + def _write_docstring(self, *args, **kwargs): + raise NotImplementedError( + '_write_docstring is not implemented. Please subclass from ' + 'this class and provide your own _write_docstring method' + ) + + def expandtabs(self, tabsize=8): + """Expands tabs to spaces + + So this is a big hack in order to get lazy loaded docstring work + for the ``help()``. In the ``help()`` function, ``pydoc`` and + ``inspect`` are used. At some point the ``inspect.cleandoc`` + method is called. To clean the docs ``expandtabs`` is called + and that is where we override the method to generate and return the + docstrings. + """ + if self._docstring is None: + self._generate() + return self._docstring.expandtabs(tabsize) + + def __str__(self): + return self._generate() + + # __doc__ of target will use either __repr__ or __str__ of this class. + __repr__ = __str__ + + def _generate(self): + # Generate the docstring if it is not already cached. + if self._docstring is None: + self._docstring = self._create_docstring() + return self._docstring + + def _create_docstring(self): + docstring_structure = DocumentStructure('docstring', target='html') + # Call the document method function with the args and kwargs + # passed to the class. + self._write_docstring( + docstring_structure, *self._gen_args, **self._gen_kwargs + ) + return docstring_structure.flush_structure().decode('utf-8') + + +class ClientMethodDocstring(LazyLoadedDocstring): + def _write_docstring(self, *args, **kwargs): + document_model_driven_method(*args, **kwargs) + + +class WaiterDocstring(LazyLoadedDocstring): + def _write_docstring(self, *args, **kwargs): + document_wait_method(*args, **kwargs) + + +class PaginatorDocstring(LazyLoadedDocstring): + def _write_docstring(self, *args, **kwargs): + document_paginate_method(*args, **kwargs) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/docs/example.py b/rep_localstack/lib/python3.12/site-packages/botocore/docs/example.py new file mode 100644 index 000000000..cb43db550 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/docs/example.py @@ -0,0 +1,236 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +from botocore.docs.shape import ShapeDocumenter +from botocore.docs.utils import py_default + + +class BaseExampleDocumenter(ShapeDocumenter): + def document_example( + self, section, shape, prefix=None, include=None, exclude=None + ): + """Generates an example based on a shape + + :param section: The section to write the documentation to. + + :param shape: The shape of the operation. + + :param prefix: Anything to be included before the example + + :type include: Dictionary where keys are parameter names and + values are the shapes of the parameter names. + :param include: The parameter shapes to include in the documentation. + + :type exclude: List of the names of the parameters to exclude. + :param exclude: The names of the parameters to exclude from + documentation. + """ + history = [] + section.style.new_line() + section.style.start_codeblock() + if prefix is not None: + section.write(prefix) + self.traverse_and_document_shape( + section=section, + shape=shape, + history=history, + include=include, + exclude=exclude, + ) + final_blank_line_section = section.add_new_section('final-blank-line') + final_blank_line_section.style.new_line() + + def document_recursive_shape(self, section, shape, **kwargs): + section.write('{\'... recursive ...\'}') + + def document_shape_default( + self, section, shape, history, include=None, exclude=None, **kwargs + ): + py_type = self._get_special_py_default(shape) + if py_type is None: + py_type = py_default(shape.type_name) + + if self._context.get('streaming_shape') == shape: + py_type = 'StreamingBody()' + section.write(py_type) + + def document_shape_type_string( + self, section, shape, history, include=None, exclude=None, **kwargs + ): + if 'enum' in shape.metadata: + for i, enum in enumerate(shape.metadata['enum']): + section.write(f'\'{enum}\'') + if i < len(shape.metadata['enum']) - 1: + section.write('|') + else: + self.document_shape_default(section, shape, history) + + def document_shape_type_list( + self, section, shape, history, include=None, exclude=None, **kwargs + ): + param_shape = shape.member + list_section = section.add_new_section('list-value') + self._start_nested_param(list_section, '[') + param_section = list_section.add_new_section( + 'member', context={'shape': param_shape.name} + ) + self.traverse_and_document_shape( + section=param_section, shape=param_shape, history=history + ) + ending_comma_section = list_section.add_new_section('ending-comma') + ending_comma_section.write(',') + ending_bracket_section = list_section.add_new_section('ending-bracket') + self._end_nested_param(ending_bracket_section, ']') + + def document_shape_type_structure( + self, section, shape, history, include=None, exclude=None, **kwargs + ): + if not shape.members: + section.write('{}') + return + + section = section.add_new_section('structure-value') + self._start_nested_param(section, '{') + + input_members = self._add_members_to_shape(shape.members, include) + + for i, param in enumerate(input_members): + if exclude and param in exclude: + continue + param_section = section.add_new_section(param) + param_section.write(f'\'{param}\': ') + param_shape = input_members[param] + param_value_section = param_section.add_new_section( + 'member-value', context={'shape': param_shape.name} + ) + self.traverse_and_document_shape( + section=param_value_section, + shape=param_shape, + history=history, + name=param, + ) + if i < len(input_members) - 1: + ending_comma_section = param_section.add_new_section( + 'ending-comma' + ) + ending_comma_section.write(',') + ending_comma_section.style.new_line() + self._end_structure(section, '{', '}') + + def document_shape_type_map( + self, section, shape, history, include=None, exclude=None, **kwargs + ): + map_section = section.add_new_section('map-value') + self._start_nested_param(map_section, '{') + value_shape = shape.value + key_section = map_section.add_new_section( + 'key', context={'shape': shape.key.name} + ) + key_section.write('\'string\': ') + value_section = map_section.add_new_section( + 'value', context={'shape': value_shape.name} + ) + self.traverse_and_document_shape( + section=value_section, shape=value_shape, history=history + ) + end_bracket_section = map_section.add_new_section('ending-bracket') + self._end_nested_param(end_bracket_section, '}') + + def _add_members_to_shape(self, members, include): + if include: + members = members.copy() + for param in include: + members[param.name] = param + return members + + def _start_nested_param(self, section, start=None): + if start is not None: + section.write(start) + section.style.indent() + section.style.indent() + section.style.new_line() + + def _end_nested_param(self, section, end=None): + section.style.dedent() + section.style.dedent() + section.style.new_line() + if end is not None: + section.write(end) + + def _end_structure(self, section, start, end): + # If there are no members in the strucuture, then make sure the + # start and the end bracket are on the same line, by removing all + # previous text and writing the start and end. + if not section.available_sections: + section.clear_text() + section.write(start + end) + self._end_nested_param(section) + else: + end_bracket_section = section.add_new_section('ending-bracket') + self._end_nested_param(end_bracket_section, end) + + +class ResponseExampleDocumenter(BaseExampleDocumenter): + EVENT_NAME = 'response-example' + + def document_shape_type_event_stream( + self, section, shape, history, **kwargs + ): + section.write('EventStream(') + self.document_shape_type_structure(section, shape, history, **kwargs) + end_section = section.add_new_section('event-stream-end') + end_section.write(')') + + +class RequestExampleDocumenter(BaseExampleDocumenter): + EVENT_NAME = 'request-example' + + def document_shape_type_structure( + self, section, shape, history, include=None, exclude=None, **kwargs + ): + param_format = '\'%s\'' + operator = ': ' + start = '{' + end = '}' + + if len(history) <= 1: + operator = '=' + start = '(' + end = ')' + param_format = '%s' + section = section.add_new_section('structure-value') + self._start_nested_param(section, start) + input_members = self._add_members_to_shape(shape.members, include) + + for i, param in enumerate(input_members): + if exclude and param in exclude: + continue + param_section = section.add_new_section(param) + param_section.write(param_format % param) + param_section.write(operator) + param_shape = input_members[param] + param_value_section = param_section.add_new_section( + 'member-value', context={'shape': param_shape.name} + ) + self.traverse_and_document_shape( + section=param_value_section, + shape=param_shape, + history=history, + name=param, + ) + if i < len(input_members) - 1: + ending_comma_section = param_section.add_new_section( + 'ending-comma' + ) + ending_comma_section.write(',') + ending_comma_section.style.new_line() + self._end_structure(section, start, end) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/docs/method.py b/rep_localstack/lib/python3.12/site-packages/botocore/docs/method.py new file mode 100644 index 000000000..5db906c8d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/docs/method.py @@ -0,0 +1,328 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import inspect +import types + +from botocore.docs.example import ( + RequestExampleDocumenter, + ResponseExampleDocumenter, +) +from botocore.docs.params import ( + RequestParamsDocumenter, + ResponseParamsDocumenter, +) + +AWS_DOC_BASE = 'https://docs.aws.amazon.com/goto/WebAPI' + + +def get_instance_public_methods(instance): + """Retrieves an objects public methods + + :param instance: The instance of the class to inspect + :rtype: dict + :returns: A dictionary that represents an instance's methods where + the keys are the name of the methods and the + values are the handler to the method. + """ + instance_members = inspect.getmembers(instance) + instance_methods = {} + for name, member in instance_members: + if not name.startswith('_'): + if inspect.ismethod(member): + instance_methods[name] = member + return instance_methods + + +def document_model_driven_signature( + section, name, operation_model, include=None, exclude=None +): + """Documents the signature of a model-driven method + + :param section: The section to write the documentation to. + + :param name: The name of the method + + :param operation_model: The operation model for the method + + :type include: Dictionary where keys are parameter names and + values are the shapes of the parameter names. + :param include: The parameter shapes to include in the documentation. + + :type exclude: List of the names of the parameters to exclude. + :param exclude: The names of the parameters to exclude from + documentation. + """ + params = {} + if operation_model.input_shape: + params = operation_model.input_shape.members + + parameter_names = list(params.keys()) + + if include is not None: + for member in include: + parameter_names.append(member.name) + + if exclude is not None: + for member in exclude: + if member in parameter_names: + parameter_names.remove(member) + + signature_params = '' + if parameter_names: + signature_params = '**kwargs' + section.style.start_sphinx_py_method(name, signature_params) + + +def document_custom_signature( + section, name, method, include=None, exclude=None +): + """Documents the signature of a custom method + + :param section: The section to write the documentation to. + + :param name: The name of the method + + :param method: The handle to the method being documented + + :type include: Dictionary where keys are parameter names and + values are the shapes of the parameter names. + :param include: The parameter shapes to include in the documentation. + + :type exclude: List of the names of the parameters to exclude. + :param exclude: The names of the parameters to exclude from + documentation. + """ + signature = inspect.signature(method) + # "raw" class methods are FunctionType and they include "self" param + # object methods are MethodType and they skip the "self" param + if isinstance(method, types.FunctionType): + self_param = next(iter(signature.parameters)) + self_kind = signature.parameters[self_param].kind + # safety check that we got the right parameter + assert self_kind == inspect.Parameter.POSITIONAL_OR_KEYWORD + new_params = signature.parameters.copy() + del new_params[self_param] + signature = signature.replace(parameters=new_params.values()) + signature_params = str(signature).lstrip('(') + signature_params = signature_params.rstrip(')') + section.style.start_sphinx_py_method(name, signature_params) + + +def document_custom_method(section, method_name, method): + """Documents a non-data driven method + + :param section: The section to write the documentation to. + + :param method_name: The name of the method + + :param method: The handle to the method being documented + """ + full_method_name = f"{section.context.get('qualifier', '')}{method_name}" + document_custom_signature(section, full_method_name, method) + method_intro_section = section.add_new_section('method-intro') + method_intro_section.writeln('') + doc_string = inspect.getdoc(method) + if doc_string is not None: + method_intro_section.style.write_py_doc_string(doc_string) + + +def document_model_driven_method( + section, + method_name, + operation_model, + event_emitter, + method_description=None, + example_prefix=None, + include_input=None, + include_output=None, + exclude_input=None, + exclude_output=None, + document_output=True, + include_signature=True, +): + """Documents an individual method + + :param section: The section to write to + + :param method_name: The name of the method + + :param operation_model: The model of the operation + + :param event_emitter: The event emitter to use to emit events + + :param example_prefix: The prefix to use in the method example. + + :type include_input: Dictionary where keys are parameter names and + values are the shapes of the parameter names. + :param include_input: The parameter shapes to include in the + input documentation. + + :type include_output: Dictionary where keys are parameter names and + values are the shapes of the parameter names. + :param include_input: The parameter shapes to include in the + output documentation. + + :type exclude_input: List of the names of the parameters to exclude. + :param exclude_input: The names of the parameters to exclude from + input documentation. + + :type exclude_output: List of the names of the parameters to exclude. + :param exclude_input: The names of the parameters to exclude from + output documentation. + + :param document_output: A boolean flag to indicate whether to + document the output. + + :param include_signature: Whether or not to include the signature. + It is useful for generating docstrings. + """ + # Add the signature if specified. + if include_signature: + document_model_driven_signature( + section, + method_name, + operation_model, + include=include_input, + exclude=exclude_input, + ) + + # Add the description for the method. + method_intro_section = section.add_new_section('method-intro') + method_intro_section.include_doc_string(method_description) + if operation_model.deprecated: + method_intro_section.style.start_danger() + method_intro_section.writeln( + 'This operation is deprecated and may not function as ' + 'expected. This operation should not be used going forward ' + 'and is only kept for the purpose of backwards compatiblity.' + ) + method_intro_section.style.end_danger() + service_uid = operation_model.service_model.metadata.get('uid') + if service_uid is not None: + method_intro_section.style.new_paragraph() + method_intro_section.write("See also: ") + link = f"{AWS_DOC_BASE}/{service_uid}/{operation_model.name}" + method_intro_section.style.external_link( + title="AWS API Documentation", link=link + ) + method_intro_section.writeln('') + + # Add the example section. + example_section = section.add_new_section('request-example') + example_section.style.new_paragraph() + example_section.style.bold('Request Syntax') + + context = { + 'special_shape_types': { + 'streaming_input_shape': operation_model.get_streaming_input(), + 'streaming_output_shape': operation_model.get_streaming_output(), + 'eventstream_output_shape': operation_model.get_event_stream_output(), + }, + } + + if operation_model.input_shape: + RequestExampleDocumenter( + service_name=operation_model.service_model.service_name, + operation_name=operation_model.name, + event_emitter=event_emitter, + context=context, + ).document_example( + example_section, + operation_model.input_shape, + prefix=example_prefix, + include=include_input, + exclude=exclude_input, + ) + else: + example_section.style.new_paragraph() + example_section.style.start_codeblock() + example_section.write(example_prefix + '()') + + # Add the request parameter documentation. + request_params_section = section.add_new_section('request-params') + if operation_model.input_shape: + RequestParamsDocumenter( + service_name=operation_model.service_model.service_name, + operation_name=operation_model.name, + event_emitter=event_emitter, + context=context, + ).document_params( + request_params_section, + operation_model.input_shape, + include=include_input, + exclude=exclude_input, + ) + + # Add the return value documentation + return_section = section.add_new_section('return') + return_section.style.new_line() + if operation_model.output_shape is not None and document_output: + return_section.write(':rtype: dict') + return_section.style.new_line() + return_section.write(':returns: ') + return_section.style.indent() + return_section.style.new_line() + + # If the operation is an event stream, describe the tagged union + event_stream_output = operation_model.get_event_stream_output() + if event_stream_output: + event_section = return_section.add_new_section('event-stream') + event_section.style.new_paragraph() + event_section.write( + 'The response of this operation contains an ' + ':class:`.EventStream` member. When iterated the ' + ':class:`.EventStream` will yield events based on the ' + 'structure below, where only one of the top level keys ' + 'will be present for any given event.' + ) + event_section.style.new_line() + + # Add an example return value + return_example_section = return_section.add_new_section( + 'response-example' + ) + return_example_section.style.new_line() + return_example_section.style.bold('Response Syntax') + return_example_section.style.new_paragraph() + ResponseExampleDocumenter( + service_name=operation_model.service_model.service_name, + operation_name=operation_model.name, + event_emitter=event_emitter, + context=context, + ).document_example( + return_example_section, + operation_model.output_shape, + include=include_output, + exclude=exclude_output, + ) + + # Add a description for the return value + return_description_section = return_section.add_new_section( + 'description' + ) + return_description_section.style.new_line() + return_description_section.style.bold('Response Structure') + return_description_section.style.new_paragraph() + ResponseParamsDocumenter( + service_name=operation_model.service_model.service_name, + operation_name=operation_model.name, + event_emitter=event_emitter, + context=context, + ).document_params( + return_description_section, + operation_model.output_shape, + include=include_output, + exclude=exclude_output, + ) + else: + return_section.write(':returns: None') diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/docs/paginator.py b/rep_localstack/lib/python3.12/site-packages/botocore/docs/paginator.py new file mode 100644 index 000000000..e177125f4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/docs/paginator.py @@ -0,0 +1,240 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import os + +from botocore import xform_name +from botocore.compat import OrderedDict +from botocore.docs.bcdoc.restdoc import DocumentStructure +from botocore.docs.method import document_model_driven_method +from botocore.docs.utils import DocumentedShape +from botocore.utils import get_service_module_name + + +class PaginatorDocumenter: + def __init__(self, client, service_paginator_model, root_docs_path): + self._client = client + self._client_class_name = self._client.__class__.__name__ + self._service_name = self._client.meta.service_model.service_name + self._service_paginator_model = service_paginator_model + self._root_docs_path = root_docs_path + self._USER_GUIDE_LINK = ( + 'https://docs.aws.amazon.com/boto3/latest/guide/paginators.html' + ) + + def document_paginators(self, section): + """Documents the various paginators for a service + + param section: The section to write to. + """ + section.style.h2('Paginators') + self._add_overview(section) + section.style.new_line() + section.writeln('The available paginators are:') + section.style.toctree() + + paginator_names = sorted( + self._service_paginator_model._paginator_config + ) + + # List the available paginators and then document each paginator. + for paginator_name in paginator_names: + section.style.tocitem( + f'{self._service_name}/paginator/{paginator_name}' + ) + # Create a new DocumentStructure for each paginator and add contents. + paginator_doc_structure = DocumentStructure( + paginator_name, target='html' + ) + self._add_paginator(paginator_doc_structure, paginator_name) + # Write paginators in individual/nested files. + # Path: /reference/services//paginator/.rst + paginator_dir_path = os.path.join( + self._root_docs_path, self._service_name, 'paginator' + ) + paginator_doc_structure.write_to_file( + paginator_dir_path, paginator_name + ) + + def _add_paginator(self, section, paginator_name): + breadcrumb_section = section.add_new_section('breadcrumb') + breadcrumb_section.style.ref( + self._client_class_name, f'../../{self._service_name}' + ) + breadcrumb_section.write(f' / Paginator / {paginator_name}') + section.add_title_section(paginator_name) + + # Docment the paginator class + paginator_section = section.add_new_section(paginator_name) + paginator_section.style.start_sphinx_py_class( + class_name=( + f'{self._client_class_name}.Paginator.{paginator_name}' + ) + ) + paginator_section.style.start_codeblock() + paginator_section.style.new_line() + + # Document how to instantiate the paginator. + paginator_section.write( + f"paginator = client.get_paginator('{xform_name(paginator_name)}')" + ) + paginator_section.style.end_codeblock() + paginator_section.style.new_line() + # Get the pagination model for the particular paginator. + paginator_config = self._service_paginator_model.get_paginator( + paginator_name + ) + document_paginate_method( + section=paginator_section, + paginator_name=paginator_name, + event_emitter=self._client.meta.events, + service_model=self._client.meta.service_model, + paginator_config=paginator_config, + ) + + def _add_overview(self, section): + section.style.new_line() + section.write( + 'Paginators are available on a client instance ' + 'via the ``get_paginator`` method. For more detailed instructions ' + 'and examples on the usage of paginators, see the ' + 'paginators ' + ) + section.style.external_link( + title='user guide', + link=self._USER_GUIDE_LINK, + ) + section.write('.') + section.style.new_line() + + +def document_paginate_method( + section, + paginator_name, + event_emitter, + service_model, + paginator_config, + include_signature=True, +): + """Documents the paginate method of a paginator + + :param section: The section to write to + + :param paginator_name: The name of the paginator. It is snake cased. + + :param event_emitter: The event emitter to use to emit events + + :param service_model: The service model + + :param paginator_config: The paginator config associated to a particular + paginator. + + :param include_signature: Whether or not to include the signature. + It is useful for generating docstrings. + """ + # Retrieve the operation model of the underlying operation. + operation_model = service_model.operation_model(paginator_name) + + # Add representations of the request and response parameters + # we want to include in the description of the paginate method. + # These are parameters we expose via the botocore interface. + pagination_config_members = OrderedDict() + + pagination_config_members['MaxItems'] = DocumentedShape( + name='MaxItems', + type_name='integer', + documentation=( + '

The total number of items to return. If the total ' + 'number of items available is more than the value ' + 'specified in max-items then a NextToken ' + 'will be provided in the output that you can use to ' + 'resume pagination.

' + ), + ) + + if paginator_config.get('limit_key', None): + pagination_config_members['PageSize'] = DocumentedShape( + name='PageSize', + type_name='integer', + documentation='

The size of each page.

', + ) + + pagination_config_members['StartingToken'] = DocumentedShape( + name='StartingToken', + type_name='string', + documentation=( + '

A token to specify where to start paginating. ' + 'This is the NextToken from a previous ' + 'response.

' + ), + ) + + botocore_pagination_params = [ + DocumentedShape( + name='PaginationConfig', + type_name='structure', + documentation=( + '

A dictionary that provides parameters to control ' + 'pagination.

' + ), + members=pagination_config_members, + ) + ] + + botocore_pagination_response_params = [ + DocumentedShape( + name='NextToken', + type_name='string', + documentation=('

A token to resume pagination.

'), + ) + ] + + service_pagination_params = [] + + # Add the normal input token of the method to a list + # of input paramters that we wish to hide since we expose our own. + if isinstance(paginator_config['input_token'], list): + service_pagination_params += paginator_config['input_token'] + else: + service_pagination_params.append(paginator_config['input_token']) + + # Hide the limit key in the documentation. + if paginator_config.get('limit_key', None): + service_pagination_params.append(paginator_config['limit_key']) + + # Hide the output tokens in the documentation. + service_pagination_response_params = [] + if isinstance(paginator_config['output_token'], list): + service_pagination_response_params += paginator_config['output_token'] + else: + service_pagination_response_params.append( + paginator_config['output_token'] + ) + + paginate_description = ( + 'Creates an iterator that will paginate through responses ' + f'from :py:meth:`{get_service_module_name(service_model)}.Client.{xform_name(paginator_name)}`.' + ) + + document_model_driven_method( + section, + 'paginate', + operation_model, + event_emitter=event_emitter, + method_description=paginate_description, + example_prefix='response_iterator = paginator.paginate', + include_input=botocore_pagination_params, + include_output=botocore_pagination_response_params, + exclude_input=service_pagination_params, + exclude_output=service_pagination_response_params, + include_signature=include_signature, + ) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/docs/params.py b/rep_localstack/lib/python3.12/site-packages/botocore/docs/params.py new file mode 100644 index 000000000..7e0f398b0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/docs/params.py @@ -0,0 +1,302 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +from botocore.docs.shape import ShapeDocumenter +from botocore.docs.utils import py_type_name + + +class BaseParamsDocumenter(ShapeDocumenter): + def document_params(self, section, shape, include=None, exclude=None): + """Fills out the documentation for a section given a model shape. + + :param section: The section to write the documentation to. + + :param shape: The shape of the operation. + + :type include: Dictionary where keys are parameter names and + values are the shapes of the parameter names. + :param include: The parameter shapes to include in the documentation. + + :type exclude: List of the names of the parameters to exclude. + :param exclude: The names of the parameters to exclude from + documentation. + """ + history = [] + self.traverse_and_document_shape( + section=section, + shape=shape, + history=history, + name=None, + include=include, + exclude=exclude, + ) + + def document_recursive_shape(self, section, shape, **kwargs): + self._add_member_documentation(section, shape, **kwargs) + + def document_shape_default( + self, section, shape, history, include=None, exclude=None, **kwargs + ): + self._add_member_documentation(section, shape, **kwargs) + + def document_shape_type_list( + self, section, shape, history, include=None, exclude=None, **kwargs + ): + self._add_member_documentation(section, shape, **kwargs) + param_shape = shape.member + param_section = section.add_new_section( + param_shape.name, context={'shape': shape.member.name} + ) + self._start_nested_param(param_section) + self.traverse_and_document_shape( + section=param_section, + shape=param_shape, + history=history, + name=None, + ) + section = section.add_new_section('end-list') + self._end_nested_param(section) + + def document_shape_type_map( + self, section, shape, history, include=None, exclude=None, **kwargs + ): + self._add_member_documentation(section, shape, **kwargs) + + key_section = section.add_new_section( + 'key', context={'shape': shape.key.name} + ) + self._start_nested_param(key_section) + self._add_member_documentation(key_section, shape.key) + + param_section = section.add_new_section( + shape.value.name, context={'shape': shape.value.name} + ) + param_section.style.indent() + self._start_nested_param(param_section) + self.traverse_and_document_shape( + section=param_section, + shape=shape.value, + history=history, + name=None, + ) + + end_section = section.add_new_section('end-map') + self._end_nested_param(end_section) + self._end_nested_param(end_section) + + def document_shape_type_structure( + self, + section, + shape, + history, + include=None, + exclude=None, + name=None, + **kwargs, + ): + members = self._add_members_to_shape(shape.members, include) + self._add_member_documentation(section, shape, name=name) + for param in members: + if exclude and param in exclude: + continue + param_shape = members[param] + param_section = section.add_new_section( + param, context={'shape': param_shape.name} + ) + self._start_nested_param(param_section) + self.traverse_and_document_shape( + section=param_section, + shape=param_shape, + history=history, + name=param, + ) + section = section.add_new_section('end-structure') + self._end_nested_param(section) + + def _add_member_documentation(self, section, shape, **kwargs): + pass + + def _add_members_to_shape(self, members, include): + if include: + members = members.copy() + for param in include: + members[param.name] = param + return members + + def _document_non_top_level_param_type(self, type_section, shape): + special_py_type = self._get_special_py_type_name(shape) + py_type = py_type_name(shape.type_name) + + type_format = '(%s) --' + if special_py_type is not None: + # Special type can reference a linked class. + # Italicizing it blows away the link. + type_section.write(type_format % special_py_type) + else: + type_section.style.italics(type_format % py_type) + type_section.write(' ') + + def _start_nested_param(self, section): + section.style.indent() + section.style.new_line() + + def _end_nested_param(self, section): + section.style.dedent() + section.style.new_line() + + +class ResponseParamsDocumenter(BaseParamsDocumenter): + """Generates the description for the response parameters""" + + EVENT_NAME = 'response-params' + + def _add_member_documentation(self, section, shape, name=None, **kwargs): + name_section = section.add_new_section('param-name') + name_section.write('- ') + if name is not None: + name_section.style.bold(f'{name}') + name_section.write(' ') + type_section = section.add_new_section('param-type') + self._document_non_top_level_param_type(type_section, shape) + + documentation_section = section.add_new_section('param-documentation') + if shape.documentation: + documentation_section.style.indent() + if getattr(shape, 'is_tagged_union', False): + tagged_union_docs = section.add_new_section( + 'param-tagged-union-docs' + ) + note = ( + '.. note::' + ' This is a Tagged Union structure. Only one of the ' + ' following top level keys will be set: %s. ' + ' If a client receives an unknown member it will ' + ' set ``SDK_UNKNOWN_MEMBER`` as the top level key, ' + ' which maps to the name or tag of the unknown ' + ' member. The structure of ``SDK_UNKNOWN_MEMBER`` is ' + ' as follows' + ) + tagged_union_members_str = ', '.join( + [f'``{key}``' for key in shape.members.keys()] + ) + unknown_code_example = ( + '\'SDK_UNKNOWN_MEMBER\': {\'name\': \'UnknownMemberName\'}' + ) + tagged_union_docs.write(note % (tagged_union_members_str)) + example = section.add_new_section('param-unknown-example') + example.style.codeblock(unknown_code_example) + documentation_section.include_doc_string(shape.documentation) + section.style.new_paragraph() + + def document_shape_type_event_stream( + self, section, shape, history, **kwargs + ): + self.document_shape_type_structure(section, shape, history, **kwargs) + + +class RequestParamsDocumenter(BaseParamsDocumenter): + """Generates the description for the request parameters""" + + EVENT_NAME = 'request-params' + + def document_shape_type_structure( + self, section, shape, history, include=None, exclude=None, **kwargs + ): + if len(history) > 1: + self._add_member_documentation(section, shape, **kwargs) + section.style.indent() + members = self._add_members_to_shape(shape.members, include) + for i, param in enumerate(members): + if exclude and param in exclude: + continue + param_shape = members[param] + param_section = section.add_new_section( + param, context={'shape': param_shape.name} + ) + param_section.style.new_line() + is_required = param in shape.required_members + self.traverse_and_document_shape( + section=param_section, + shape=param_shape, + history=history, + name=param, + is_required=is_required, + ) + section = section.add_new_section('end-structure') + if len(history) > 1: + section.style.dedent() + section.style.new_line() + + def _add_member_documentation( + self, + section, + shape, + name=None, + is_top_level_param=False, + is_required=False, + **kwargs, + ): + py_type = self._get_special_py_type_name(shape) + if py_type is None: + py_type = py_type_name(shape.type_name) + if is_top_level_param: + type_section = section.add_new_section('param-type') + type_section.write(f':type {name}: {py_type}') + end_type_section = type_section.add_new_section('end-param-type') + end_type_section.style.new_line() + name_section = section.add_new_section('param-name') + name_section.write(f':param {name}: ') + + else: + name_section = section.add_new_section('param-name') + name_section.write('- ') + if name is not None: + name_section.style.bold(f'{name}') + name_section.write(' ') + type_section = section.add_new_section('param-type') + self._document_non_top_level_param_type(type_section, shape) + + if is_required: + is_required_section = section.add_new_section('is-required') + is_required_section.style.indent() + is_required_section.style.bold('[REQUIRED]') + is_required_section.write(' ') + if shape.documentation: + documentation_section = section.add_new_section( + 'param-documentation' + ) + documentation_section.style.indent() + if getattr(shape, 'is_tagged_union', False): + tagged_union_docs = section.add_new_section( + 'param-tagged-union-docs' + ) + note = ( + '.. note::' + ' This is a Tagged Union structure. Only one of the ' + ' following top level keys can be set: %s. ' + ) + tagged_union_members_str = ', '.join( + [f'``{key}``' for key in shape.members.keys()] + ) + tagged_union_docs.write(note % (tagged_union_members_str)) + documentation_section.include_doc_string(shape.documentation) + self._add_special_trait_documentation(documentation_section, shape) + end_param_section = section.add_new_section('end-param') + end_param_section.style.new_paragraph() + + def _add_special_trait_documentation(self, section, shape): + if 'idempotencyToken' in shape.metadata: + self._append_idempotency_documentation(section) + + def _append_idempotency_documentation(self, section): + docstring = 'This field is autopopulated if not provided.' + section.write(docstring) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/docs/service.py b/rep_localstack/lib/python3.12/site-packages/botocore/docs/service.py new file mode 100644 index 000000000..d20a889dc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/docs/service.py @@ -0,0 +1,133 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +from botocore.docs.bcdoc.restdoc import DocumentStructure +from botocore.docs.client import ( + ClientContextParamsDocumenter, + ClientDocumenter, + ClientExceptionsDocumenter, +) +from botocore.docs.paginator import PaginatorDocumenter +from botocore.docs.waiter import WaiterDocumenter +from botocore.exceptions import DataNotFoundError + + +class ServiceDocumenter: + def __init__(self, service_name, session, root_docs_path): + self._session = session + self._service_name = service_name + self._root_docs_path = root_docs_path + + self._client = self._session.create_client( + service_name, + region_name='us-east-1', + aws_access_key_id='foo', + aws_secret_access_key='bar', + ) + self._event_emitter = self._client.meta.events + + self.sections = [ + 'title', + 'client-api', + 'client-exceptions', + 'paginator-api', + 'waiter-api', + 'client-context-params', + ] + + def document_service(self): + """Documents an entire service. + + :returns: The reStructured text of the documented service. + """ + doc_structure = DocumentStructure( + self._service_name, section_names=self.sections, target='html' + ) + self.title(doc_structure.get_section('title')) + self.client_api(doc_structure.get_section('client-api')) + self.client_exceptions(doc_structure.get_section('client-exceptions')) + self.paginator_api(doc_structure.get_section('paginator-api')) + self.waiter_api(doc_structure.get_section('waiter-api')) + context_params_section = doc_structure.get_section( + 'client-context-params' + ) + self.client_context_params(context_params_section) + return doc_structure.flush_structure() + + def title(self, section): + section.style.h1(self._client.__class__.__name__) + self._event_emitter.emit( + f"docs.title.{self._service_name}", section=section + ) + + def table_of_contents(self, section): + section.style.table_of_contents(title='Table of Contents', depth=2) + + def client_api(self, section): + examples = None + try: + examples = self.get_examples(self._service_name) + except DataNotFoundError: + pass + + ClientDocumenter( + self._client, self._root_docs_path, examples + ).document_client(section) + + def client_exceptions(self, section): + ClientExceptionsDocumenter( + self._client, self._root_docs_path + ).document_exceptions(section) + + def paginator_api(self, section): + try: + service_paginator_model = self._session.get_paginator_model( + self._service_name + ) + except DataNotFoundError: + return + if service_paginator_model._paginator_config: + paginator_documenter = PaginatorDocumenter( + self._client, service_paginator_model, self._root_docs_path + ) + paginator_documenter.document_paginators(section) + + def waiter_api(self, section): + if self._client.waiter_names: + service_waiter_model = self._session.get_waiter_model( + self._service_name + ) + waiter_documenter = WaiterDocumenter( + self._client, service_waiter_model, self._root_docs_path + ) + waiter_documenter.document_waiters(section) + + def get_examples(self, service_name, api_version=None): + loader = self._session.get_component('data_loader') + examples = loader.load_service_model( + service_name, 'examples-1', api_version + ) + return examples['examples'] + + def client_context_params(self, section): + omitted_params = ClientContextParamsDocumenter.OMITTED_CONTEXT_PARAMS + params_to_omit = omitted_params.get(self._service_name, []) + service_model = self._client.meta.service_model + raw_context_params = service_model.client_context_parameters + context_params = [ + p for p in raw_context_params if p.name not in params_to_omit + ] + if context_params: + context_param_documenter = ClientContextParamsDocumenter( + self._service_name, context_params + ) + context_param_documenter.document_context_params(section) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/docs/shape.py b/rep_localstack/lib/python3.12/site-packages/botocore/docs/shape.py new file mode 100644 index 000000000..640a5d18e --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/docs/shape.py @@ -0,0 +1,135 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + + +# NOTE: This class should not be instantiated and its +# ``traverse_and_document_shape`` method called directly. It should be +# inherited from a Documenter class with the appropriate methods +# and attributes. +from botocore.utils import is_json_value_header + + +class ShapeDocumenter: + EVENT_NAME = '' + + def __init__( + self, service_name, operation_name, event_emitter, context=None + ): + self._service_name = service_name + self._operation_name = operation_name + self._event_emitter = event_emitter + self._context = context + if context is None: + self._context = {'special_shape_types': {}} + + def traverse_and_document_shape( + self, + section, + shape, + history, + include=None, + exclude=None, + name=None, + is_required=False, + ): + """Traverses and documents a shape + + Will take a self class and call its appropriate methods as a shape + is traversed. + + :param section: The section to document. + + :param history: A list of the names of the shapes that have been + traversed. + + :type include: Dictionary where keys are parameter names and + values are the shapes of the parameter names. + :param include: The parameter shapes to include in the documentation. + + :type exclude: List of the names of the parameters to exclude. + :param exclude: The names of the parameters to exclude from + documentation. + + :param name: The name of the shape. + + :param is_required: If the shape is a required member. + """ + param_type = shape.type_name + if getattr(shape, 'serialization', {}).get('eventstream'): + param_type = 'event_stream' + if shape.name in history: + self.document_recursive_shape(section, shape, name=name) + else: + history.append(shape.name) + is_top_level_param = len(history) == 2 + if hasattr(shape, 'is_document_type') and shape.is_document_type: + param_type = 'document' + getattr( + self, + f"document_shape_type_{param_type}", + self.document_shape_default, + )( + section, + shape, + history=history, + name=name, + include=include, + exclude=exclude, + is_top_level_param=is_top_level_param, + is_required=is_required, + ) + if is_top_level_param: + self._event_emitter.emit( + f"docs.{self.EVENT_NAME}.{self._service_name}.{self._operation_name}.{name}", + section=section, + ) + at_overlying_method_section = len(history) == 1 + if at_overlying_method_section: + self._event_emitter.emit( + f"docs.{self.EVENT_NAME}.{self._service_name}.{self._operation_name}.complete-section", + section=section, + ) + history.pop() + + def _get_special_py_default(self, shape): + special_defaults = { + 'document_type': '{...}|[...]|123|123.4|\'string\'|True|None', + 'jsonvalue_header': '{...}|[...]|123|123.4|\'string\'|True|None', + 'streaming_input_shape': 'b\'bytes\'|file', + 'streaming_output_shape': 'StreamingBody()', + 'eventstream_output_shape': 'EventStream()', + } + return self._get_value_for_special_type(shape, special_defaults) + + def _get_special_py_type_name(self, shape): + special_type_names = { + 'document_type': ':ref:`document`', + 'jsonvalue_header': 'JSON serializable', + 'streaming_input_shape': 'bytes or seekable file-like object', + 'streaming_output_shape': ':class:`.StreamingBody`', + 'eventstream_output_shape': ':class:`.EventStream`', + } + return self._get_value_for_special_type(shape, special_type_names) + + def _get_value_for_special_type(self, shape, special_type_map): + if is_json_value_header(shape): + return special_type_map['jsonvalue_header'] + if hasattr(shape, 'is_document_type') and shape.is_document_type: + return special_type_map['document_type'] + for special_type, marked_shape in self._context[ + 'special_shape_types' + ].items(): + if special_type in special_type_map: + if shape == marked_shape: + return special_type_map[special_type] + return None diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/docs/sharedexample.py b/rep_localstack/lib/python3.12/site-packages/botocore/docs/sharedexample.py new file mode 100644 index 000000000..29d3df5fc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/docs/sharedexample.py @@ -0,0 +1,227 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import numbers +import re + +from botocore.docs.utils import escape_controls +from botocore.utils import parse_timestamp + + +class SharedExampleDocumenter: + def document_shared_example( + self, example, prefix, section, operation_model + ): + """Documents a single shared example based on its definition. + + :param example: The model of the example + + :param prefix: The prefix to use in the method example. + + :param section: The section to write to. + + :param operation_model: The model of the operation used in the example + """ + section.style.new_paragraph() + section.write(example.get('description')) + section.style.new_line() + self.document_input( + section, example, prefix, operation_model.input_shape + ) + self.document_output(section, example, operation_model.output_shape) + + def document_input(self, section, example, prefix, shape): + input_section = section.add_new_section('input') + input_section.style.start_codeblock() + if prefix is not None: + input_section.write(prefix) + params = example.get('input', {}) + comments = example.get('comments') + if comments: + comments = comments.get('input') + param_section = input_section.add_new_section('parameters') + self._document_params(param_section, params, comments, [], shape) + closing_section = input_section.add_new_section('input-close') + closing_section.style.new_line() + closing_section.style.new_line() + closing_section.write('print(response)') + closing_section.style.end_codeblock() + + def document_output(self, section, example, shape): + output_section = section.add_new_section('output') + output_section.style.new_line() + output_section.write('Expected Output:') + output_section.style.new_line() + output_section.style.start_codeblock() + params = example.get('output', {}) + + # There might not be an output, but we will return metadata anyway + params['ResponseMetadata'] = {"...": "..."} + comments = example.get('comments') + if comments: + comments = comments.get('output') + self._document_dict(output_section, params, comments, [], shape, True) + closing_section = output_section.add_new_section('output-close') + closing_section.style.end_codeblock() + + def _document(self, section, value, comments, path, shape): + """ + :param section: The section to add the docs to. + + :param value: The input / output values representing the parameters that + are included in the example. + + :param comments: The dictionary containing all the comments to be + applied to the example. + + :param path: A list describing where the documenter is in traversing the + parameters. This is used to find the equivalent location + in the comments dictionary. + """ + if isinstance(value, dict): + self._document_dict(section, value, comments, path, shape) + elif isinstance(value, list): + self._document_list(section, value, comments, path, shape) + elif isinstance(value, numbers.Number): + self._document_number(section, value, path) + elif shape and shape.type_name == 'timestamp': + self._document_datetime(section, value, path) + else: + self._document_str(section, value, path) + + def _document_dict( + self, section, value, comments, path, shape, top_level=False + ): + dict_section = section.add_new_section('dict-value') + self._start_nested_value(dict_section, '{') + for key, val in value.items(): + path.append(f'.{key}') + item_section = dict_section.add_new_section(key) + item_section.style.new_line() + item_comment = self._get_comment(path, comments) + if item_comment: + item_section.write(item_comment) + item_section.style.new_line() + item_section.write(f"'{key}': ") + + # Shape could be none if there is no output besides ResponseMetadata + item_shape = None + if shape: + if shape.type_name == 'structure': + item_shape = shape.members.get(key) + elif shape.type_name == 'map': + item_shape = shape.value + self._document(item_section, val, comments, path, item_shape) + path.pop() + dict_section_end = dict_section.add_new_section('ending-brace') + self._end_nested_value(dict_section_end, '}') + if not top_level: + dict_section_end.write(',') + + def _document_params(self, section, value, comments, path, shape): + param_section = section.add_new_section('param-values') + self._start_nested_value(param_section, '(') + for key, val in value.items(): + path.append(f'.{key}') + item_section = param_section.add_new_section(key) + item_section.style.new_line() + item_comment = self._get_comment(path, comments) + if item_comment: + item_section.write(item_comment) + item_section.style.new_line() + item_section.write(key + '=') + + # Shape could be none if there are no input parameters + item_shape = None + if shape: + item_shape = shape.members.get(key) + self._document(item_section, val, comments, path, item_shape) + path.pop() + param_section_end = param_section.add_new_section('ending-parenthesis') + self._end_nested_value(param_section_end, ')') + + def _document_list(self, section, value, comments, path, shape): + list_section = section.add_new_section('list-section') + self._start_nested_value(list_section, '[') + item_shape = shape.member + for index, val in enumerate(value): + item_section = list_section.add_new_section(index) + item_section.style.new_line() + path.append(f'[{index}]') + item_comment = self._get_comment(path, comments) + if item_comment: + item_section.write(item_comment) + item_section.style.new_line() + self._document(item_section, val, comments, path, item_shape) + path.pop() + list_section_end = list_section.add_new_section('ending-bracket') + self._end_nested_value(list_section_end, '],') + + def _document_str(self, section, value, path): + # We do the string conversion because this might accept a type that + # we don't specifically address. + safe_value = escape_controls(value) + section.write(f"'{safe_value}',") + + def _document_number(self, section, value, path): + section.write(f"{str(value)},") + + def _document_datetime(self, section, value, path): + datetime_tuple = parse_timestamp(value).timetuple() + datetime_str = str(datetime_tuple[0]) + for i in range(1, len(datetime_tuple)): + datetime_str += ", " + str(datetime_tuple[i]) + section.write(f"datetime({datetime_str}),") + + def _get_comment(self, path, comments): + key = re.sub(r'^\.', '', ''.join(path)) + if comments and key in comments: + return '# ' + comments[key] + else: + return '' + + def _start_nested_value(self, section, start): + section.write(start) + section.style.indent() + section.style.indent() + + def _end_nested_value(self, section, end): + section.style.dedent() + section.style.dedent() + section.style.new_line() + section.write(end) + + +def document_shared_examples( + section, operation_model, example_prefix, shared_examples +): + """Documents the shared examples + + :param section: The section to write to. + + :param operation_model: The model of the operation. + + :param example_prefix: The prefix to use in the method example. + + :param shared_examples: The shared JSON examples from the model. + """ + container_section = section.add_new_section('shared-examples') + container_section.style.new_paragraph() + container_section.style.bold('Examples') + documenter = SharedExampleDocumenter() + for example in shared_examples: + documenter.document_shared_example( + example=example, + section=container_section.add_new_section(example['id']), + prefix=example_prefix, + operation_model=operation_model, + ) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/docs/translator.py b/rep_localstack/lib/python3.12/site-packages/botocore/docs/translator.py new file mode 100644 index 000000000..0b0a30893 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/docs/translator.py @@ -0,0 +1,62 @@ +# Copyright 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +from docutils import nodes +from sphinx.locale import admonitionlabels +from sphinx.writers.html5 import HTML5Translator as SphinxHTML5Translator + + +class BotoHTML5Translator(SphinxHTML5Translator): + """Extension of Sphinx's ``HTML5Translator`` for Botocore documentation.""" + + IGNORE_IMPLICIT_HEADINGS = [ + '[REQUIRED]', + ] + + def visit_admonition(self, node, name=""): + """Uses the h3 tag for admonition titles instead of the p tag.""" + self.body.append( + self.starttag(node, "div", CLASS=("admonition " + name)) + ) + if name: + title = ( + f"

{admonitionlabels[name]}

" + ) + self.body.append(title) + + def is_implicit_heading(self, node): + """Determines if a node is an implicit heading. + + An implicit heading is represented by a paragraph node whose only + child is a strong node with text that isnt in `IGNORE_IMPLICIT_HEADINGS`. + """ + return ( + len(node) == 1 + and isinstance(node[0], nodes.strong) + and len(node[0]) == 1 + and isinstance(node[0][0], nodes.Text) + and node[0][0].astext() not in self.IGNORE_IMPLICIT_HEADINGS + ) + + def visit_paragraph(self, node): + """Visit a paragraph HTML element. + + Replaces implicit headings with an h3 tag and defers to default + behavior for normal paragraph elements. + """ + if self.is_implicit_heading(node): + text = node[0][0] + self.body.append(f'

{text}

\n') + # Do not visit the current nodes children or call its depart method. + raise nodes.SkipNode + else: + super().visit_paragraph(node) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/docs/utils.py b/rep_localstack/lib/python3.12/site-packages/botocore/docs/utils.py new file mode 100644 index 000000000..161e26022 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/docs/utils.py @@ -0,0 +1,225 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import re +from collections import namedtuple + + +def py_type_name(type_name): + """Get the Python type name for a given model type. + + >>> py_type_name('list') + 'list' + >>> py_type_name('structure') + 'dict' + + :rtype: string + """ + return { + 'blob': 'bytes', + 'character': 'string', + 'double': 'float', + 'long': 'integer', + 'map': 'dict', + 'structure': 'dict', + 'timestamp': 'datetime', + }.get(type_name, type_name) + + +def py_default(type_name): + """Get the Python default value for a given model type. + + >>> py_default('string') + '\'string\'' + >>> py_default('list') + '[...]' + >>> py_default('unknown') + '...' + + :rtype: string + """ + return { + 'double': '123.0', + 'long': '123', + 'integer': '123', + 'string': "'string'", + 'blob': "b'bytes'", + 'boolean': 'True|False', + 'list': '[...]', + 'map': '{...}', + 'structure': '{...}', + 'timestamp': 'datetime(2015, 1, 1)', + }.get(type_name, '...') + + +def get_official_service_name(service_model): + """Generate the official name of an AWS Service + + :param service_model: The service model representing the service + """ + official_name = service_model.metadata.get('serviceFullName') + short_name = service_model.metadata.get('serviceAbbreviation', '') + if short_name.startswith('Amazon'): + short_name = short_name[7:] + if short_name.startswith('AWS'): + short_name = short_name[4:] + if short_name and short_name.lower() not in official_name.lower(): + official_name += f' ({short_name})' + return official_name + + +_DocumentedShape = namedtuple( + 'DocumentedShape', + [ + 'name', + 'type_name', + 'documentation', + 'metadata', + 'members', + 'required_members', + ], +) + + +class DocumentedShape(_DocumentedShape): + """Use this class to inject new shapes into a model for documentation""" + + def __new__( + cls, + name, + type_name, + documentation, + metadata=None, + members=None, + required_members=None, + ): + if metadata is None: + metadata = [] + if members is None: + members = [] + if required_members is None: + required_members = [] + return super().__new__( + cls, + name, + type_name, + documentation, + metadata, + members, + required_members, + ) + + +class AutoPopulatedParam: + def __init__(self, name, param_description=None): + self.name = name + self.param_description = param_description + if param_description is None: + self.param_description = ( + 'Please note that this parameter is automatically populated ' + 'if it is not provided. Including this parameter is not ' + 'required\n' + ) + + def document_auto_populated_param(self, event_name, section, **kwargs): + """Documents auto populated parameters + + It will remove any required marks for the parameter, remove the + parameter from the example, and add a snippet about the parameter + being autopopulated in the description. + """ + if event_name.startswith('docs.request-params'): + if self.name in section.available_sections: + section = section.get_section(self.name) + if 'is-required' in section.available_sections: + section.delete_section('is-required') + description_section = section.get_section( + 'param-documentation' + ) + description_section.writeln(self.param_description) + elif event_name.startswith('docs.request-example'): + section = section.get_section('structure-value') + if self.name in section.available_sections: + section.delete_section(self.name) + + +class HideParamFromOperations: + """Hides a single parameter from multiple operations. + + This method will remove a parameter from documentation and from + examples. This method is typically used for things that are + automatically populated because a user would be unable to provide + a value (e.g., a checksum of a serialized XML request body).""" + + def __init__(self, service_name, parameter_name, operation_names): + """ + :type service_name: str + :param service_name: Name of the service to modify. + + :type parameter_name: str + :param parameter_name: Name of the parameter to modify. + + :type operation_names: list + :param operation_names: Operation names to modify. + """ + self._parameter_name = parameter_name + self._params_events = set() + self._example_events = set() + # Build up the sets of relevant event names. + param_template = 'docs.request-params.%s.%s.complete-section' + example_template = 'docs.request-example.%s.%s.complete-section' + for name in operation_names: + self._params_events.add(param_template % (service_name, name)) + self._example_events.add(example_template % (service_name, name)) + + def hide_param(self, event_name, section, **kwargs): + if event_name in self._example_events: + # Modify the structure value for example events. + section = section.get_section('structure-value') + elif event_name not in self._params_events: + return + if self._parameter_name in section.available_sections: + section.delete_section(self._parameter_name) + + +class AppendParamDocumentation: + """Appends documentation to a specific parameter""" + + def __init__(self, parameter_name, doc_string): + self._parameter_name = parameter_name + self._doc_string = doc_string + + def append_documentation(self, event_name, section, **kwargs): + if self._parameter_name in section.available_sections: + section = section.get_section(self._parameter_name) + description_section = section.get_section('param-documentation') + description_section.writeln(self._doc_string) + + +_CONTROLS = { + '\n': '\\n', + '\r': '\\r', + '\t': '\\t', + '\b': '\\b', + '\f': '\\f', +} +# Combines all CONTROLS keys into a big or regular expression +_ESCAPE_CONTROLS_RE = re.compile('|'.join(map(re.escape, _CONTROLS))) + + +# Based on the match get the appropriate replacement from CONTROLS +def _CONTROLS_MATCH_HANDLER(match): + return _CONTROLS[match.group(0)] + + +def escape_controls(value): + return _ESCAPE_CONTROLS_RE.sub(_CONTROLS_MATCH_HANDLER, value) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/docs/waiter.py b/rep_localstack/lib/python3.12/site-packages/botocore/docs/waiter.py new file mode 100644 index 000000000..fcc8ed454 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/docs/waiter.py @@ -0,0 +1,180 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import os + +from botocore import xform_name +from botocore.compat import OrderedDict +from botocore.docs.bcdoc.restdoc import DocumentStructure +from botocore.docs.method import document_model_driven_method +from botocore.docs.utils import DocumentedShape +from botocore.utils import get_service_module_name + + +class WaiterDocumenter: + def __init__(self, client, service_waiter_model, root_docs_path): + self._client = client + self._client_class_name = self._client.__class__.__name__ + self._service_name = self._client.meta.service_model.service_name + self._service_waiter_model = service_waiter_model + self._root_docs_path = root_docs_path + self._USER_GUIDE_LINK = ( + 'https://docs.aws.amazon.com/' + 'boto3/latest/guide/clients.html#waiters' + ) + + def document_waiters(self, section): + """Documents the various waiters for a service. + + :param section: The section to write to. + """ + section.style.h2('Waiters') + self._add_overview(section) + section.style.new_line() + section.writeln('The available waiters are:') + section.style.toctree() + for waiter_name in self._service_waiter_model.waiter_names: + section.style.tocitem(f'{self._service_name}/waiter/{waiter_name}') + # Create a new DocumentStructure for each waiter and add contents. + waiter_doc_structure = DocumentStructure( + waiter_name, target='html' + ) + self._add_single_waiter(waiter_doc_structure, waiter_name) + # Write waiters in individual/nested files. + # Path: /reference/services//waiter/.rst + waiter_dir_path = os.path.join( + self._root_docs_path, self._service_name, 'waiter' + ) + waiter_doc_structure.write_to_file(waiter_dir_path, waiter_name) + + def _add_single_waiter(self, section, waiter_name): + breadcrumb_section = section.add_new_section('breadcrumb') + breadcrumb_section.style.ref( + self._client_class_name, f'../../{self._service_name}' + ) + breadcrumb_section.write(f' / Waiter / {waiter_name}') + section.add_title_section(waiter_name) + waiter_section = section.add_new_section(waiter_name) + waiter_section.style.start_sphinx_py_class( + class_name=f"{self._client_class_name}.Waiter.{waiter_name}" + ) + + # Add example on how to instantiate waiter. + waiter_section.style.start_codeblock() + waiter_section.style.new_line() + waiter_section.write( + f'waiter = client.get_waiter(\'{xform_name(waiter_name)}\')' + ) + waiter_section.style.end_codeblock() + + # Add information on the wait() method + waiter_section.style.new_line() + document_wait_method( + section=waiter_section, + waiter_name=waiter_name, + event_emitter=self._client.meta.events, + service_model=self._client.meta.service_model, + service_waiter_model=self._service_waiter_model, + ) + + def _add_overview(self, section): + section.style.new_line() + section.write( + 'Waiters are available on a client instance ' + 'via the ``get_waiter`` method. For more detailed instructions ' + 'and examples on the usage or waiters, see the ' + 'waiters ' + ) + section.style.external_link( + title='user guide', + link=self._USER_GUIDE_LINK, + ) + section.write('.') + section.style.new_line() + + +def document_wait_method( + section, + waiter_name, + event_emitter, + service_model, + service_waiter_model, + include_signature=True, +): + """Documents a the wait method of a waiter + + :param section: The section to write to + + :param waiter_name: The name of the waiter + + :param event_emitter: The event emitter to use to emit events + + :param service_model: The service model + + :param service_waiter_model: The waiter model associated to the service + + :param include_signature: Whether or not to include the signature. + It is useful for generating docstrings. + """ + waiter_model = service_waiter_model.get_waiter(waiter_name) + operation_model = service_model.operation_model(waiter_model.operation) + + waiter_config_members = OrderedDict() + + waiter_config_members['Delay'] = DocumentedShape( + name='Delay', + type_name='integer', + documentation=( + '

The amount of time in seconds to wait between ' + f'attempts. Default: {waiter_model.delay}

' + ), + ) + + waiter_config_members['MaxAttempts'] = DocumentedShape( + name='MaxAttempts', + type_name='integer', + documentation=( + '

The maximum number of attempts to be made. ' + f'Default: {waiter_model.max_attempts}

' + ), + ) + + botocore_waiter_params = [ + DocumentedShape( + name='WaiterConfig', + type_name='structure', + documentation=( + '

A dictionary that provides parameters to control ' + 'waiting behavior.

' + ), + members=waiter_config_members, + ) + ] + + wait_description = ( + f'Polls :py:meth:`{get_service_module_name(service_model)}.Client.' + f'{xform_name(waiter_model.operation)}` every {waiter_model.delay} ' + 'seconds until a successful state is reached. An error is ' + f'raised after {waiter_model.max_attempts} failed checks.' + ) + + document_model_driven_method( + section, + 'wait', + operation_model, + event_emitter=event_emitter, + method_description=wait_description, + example_prefix='waiter.wait', + include_input=botocore_waiter_params, + document_output=False, + include_signature=include_signature, + ) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/endpoint.py b/rep_localstack/lib/python3.12/site-packages/botocore/endpoint.py new file mode 100644 index 000000000..f393de78f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/endpoint.py @@ -0,0 +1,449 @@ +# Copyright (c) 2012-2013 Mitch Garnaat http://garnaat.org/ +# Copyright 2012-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import datetime +import logging +import os +import threading +import time +import uuid + +from botocore import parsers +from botocore.awsrequest import create_request_object +from botocore.compat import get_current_datetime +from botocore.exceptions import HTTPClientError +from botocore.history import get_global_history_recorder +from botocore.hooks import first_non_none_response +from botocore.httpchecksum import handle_checksum_body +from botocore.httpsession import URLLib3Session +from botocore.response import StreamingBody +from botocore.utils import ( + get_environ_proxies, + is_valid_endpoint_url, + is_valid_ipv6_endpoint_url, +) + +logger = logging.getLogger(__name__) +history_recorder = get_global_history_recorder() +DEFAULT_TIMEOUT = 60 +MAX_POOL_CONNECTIONS = 10 + + +def convert_to_response_dict(http_response, operation_model): + """Convert an HTTP response object to a request dict. + + This converts the HTTP response object to a dictionary. + + :type http_response: botocore.awsrequest.AWSResponse + :param http_response: The HTTP response from an AWS service request. + + :rtype: dict + :return: A response dictionary which will contain the following keys: + * headers (dict) + * status_code (int) + * body (string or file-like object) + + """ + response_dict = { + 'headers': http_response.headers, + 'status_code': http_response.status_code, + 'context': { + 'operation_name': operation_model.name, + }, + } + if response_dict['status_code'] >= 300: + response_dict['body'] = http_response.content + elif operation_model.has_event_stream_output: + response_dict['body'] = http_response.raw + elif operation_model.has_streaming_output: + length = response_dict['headers'].get('content-length') + response_dict['body'] = StreamingBody(http_response.raw, length) + else: + response_dict['body'] = http_response.content + return response_dict + + +class Endpoint: + """ + Represents an endpoint for a particular service in a specific + region. Only an endpoint can make requests. + + :ivar service: The Service object that describes this endpoints + service. + :ivar host: The fully qualified endpoint hostname. + :ivar session: The session object. + """ + + def __init__( + self, + host, + endpoint_prefix, + event_emitter, + response_parser_factory=None, + http_session=None, + ): + self._endpoint_prefix = endpoint_prefix + self._event_emitter = event_emitter + self.host = host + self._lock = threading.Lock() + if response_parser_factory is None: + response_parser_factory = parsers.ResponseParserFactory() + self._response_parser_factory = response_parser_factory + self.http_session = http_session + if self.http_session is None: + self.http_session = URLLib3Session() + + def __repr__(self): + return f'{self._endpoint_prefix}({self.host})' + + def close(self): + self.http_session.close() + + def make_request(self, operation_model, request_dict): + logger.debug( + "Making request for %s with params: %s", + operation_model, + request_dict, + ) + return self._send_request(request_dict, operation_model) + + def create_request(self, params, operation_model=None): + request = create_request_object(params) + if operation_model: + request.stream_output = any( + [ + operation_model.has_streaming_output, + operation_model.has_event_stream_output, + ] + ) + service_id = operation_model.service_model.service_id.hyphenize() + event_name = f'request-created.{service_id}.{operation_model.name}' + self._event_emitter.emit( + event_name, + request=request, + operation_name=operation_model.name, + ) + prepared_request = self.prepare_request(request) + return prepared_request + + def _encode_headers(self, headers): + # In place encoding of headers to utf-8 if they are unicode. + for key, value in headers.items(): + if isinstance(value, str): + headers[key] = value.encode('utf-8') + + def prepare_request(self, request): + self._encode_headers(request.headers) + return request.prepare() + + def _calculate_ttl( + self, response_received_timestamp, date_header, read_timeout + ): + local_timestamp = get_current_datetime() + date_conversion = datetime.datetime.strptime( + date_header, "%a, %d %b %Y %H:%M:%S %Z" + ) + estimated_skew = date_conversion - response_received_timestamp + ttl = ( + local_timestamp + + datetime.timedelta(seconds=read_timeout) + + estimated_skew + ) + return ttl.strftime('%Y%m%dT%H%M%SZ') + + def _set_ttl(self, retries_context, read_timeout, success_response): + response_date_header = success_response[0].headers.get('Date') + has_streaming_input = retries_context.get('has_streaming_input') + if response_date_header and not has_streaming_input: + try: + response_received_timestamp = get_current_datetime() + retries_context['ttl'] = self._calculate_ttl( + response_received_timestamp, + response_date_header, + read_timeout, + ) + except Exception: + logger.debug( + "Exception received when updating retries context with TTL", + exc_info=True, + ) + + def _update_retries_context(self, context, attempt, success_response=None): + retries_context = context.setdefault('retries', {}) + retries_context['attempt'] = attempt + if 'invocation-id' not in retries_context: + retries_context['invocation-id'] = str(uuid.uuid4()) + + if success_response: + read_timeout = context['client_config'].read_timeout + self._set_ttl(retries_context, read_timeout, success_response) + + def _send_request(self, request_dict, operation_model): + attempts = 1 + context = request_dict['context'] + self._update_retries_context(context, attempts) + request = self.create_request(request_dict, operation_model) + success_response, exception = self._get_response( + request, operation_model, context + ) + while self._needs_retry( + attempts, + operation_model, + request_dict, + success_response, + exception, + ): + attempts += 1 + self._update_retries_context(context, attempts, success_response) + # If there is a stream associated with the request, we need + # to reset it before attempting to send the request again. + # This will ensure that we resend the entire contents of the + # body. + request.reset_stream() + # Create a new request when retried (including a new signature). + request = self.create_request(request_dict, operation_model) + success_response, exception = self._get_response( + request, operation_model, context + ) + if ( + success_response is not None + and 'ResponseMetadata' in success_response[1] + ): + # We want to share num retries, not num attempts. + total_retries = attempts - 1 + success_response[1]['ResponseMetadata']['RetryAttempts'] = ( + total_retries + ) + if exception is not None: + raise exception + else: + return success_response + + def _get_response(self, request, operation_model, context): + # This will return a tuple of (success_response, exception) + # and success_response is itself a tuple of + # (http_response, parsed_dict). + # If an exception occurs then the success_response is None. + # If no exception occurs then exception is None. + success_response, exception = self._do_get_response( + request, operation_model, context + ) + kwargs_to_emit = { + 'response_dict': None, + 'parsed_response': None, + 'context': context, + 'exception': exception, + } + if success_response is not None: + http_response, parsed_response = success_response + kwargs_to_emit['parsed_response'] = parsed_response + kwargs_to_emit['response_dict'] = convert_to_response_dict( + http_response, operation_model + ) + service_id = operation_model.service_model.service_id.hyphenize() + self._event_emitter.emit( + f"response-received.{service_id}.{operation_model.name}", + **kwargs_to_emit, + ) + return success_response, exception + + def _do_get_response(self, request, operation_model, context): + try: + logger.debug("Sending http request: %s", request) + history_recorder.record( + 'HTTP_REQUEST', + { + 'method': request.method, + 'headers': request.headers, + 'streaming': operation_model.has_streaming_input, + 'url': request.url, + 'body': request.body, + }, + ) + service_id = operation_model.service_model.service_id.hyphenize() + event_name = f"before-send.{service_id}.{operation_model.name}" + responses = self._event_emitter.emit(event_name, request=request) + http_response = first_non_none_response(responses) + if http_response is None: + http_response = self._send(request) + except HTTPClientError as e: + return (None, e) + except Exception as e: + logger.debug( + "Exception received when sending HTTP request.", exc_info=True + ) + return (None, e) + # This returns the http_response and the parsed_data. + response_dict = convert_to_response_dict( + http_response, operation_model + ) + handle_checksum_body( + http_response, + response_dict, + context, + operation_model, + ) + + http_response_record_dict = response_dict.copy() + http_response_record_dict['streaming'] = ( + operation_model.has_streaming_output + ) + history_recorder.record('HTTP_RESPONSE', http_response_record_dict) + + protocol = operation_model.service_model.resolved_protocol + customized_response_dict = {} + self._event_emitter.emit( + f"before-parse.{service_id}.{operation_model.name}", + operation_model=operation_model, + response_dict=response_dict, + customized_response_dict=customized_response_dict, + ) + parser = self._response_parser_factory.create_parser(protocol) + parsed_response = parser.parse( + response_dict, operation_model.output_shape + ) + parsed_response.update(customized_response_dict) + # Do a second parsing pass to pick up on any modeled error fields + # NOTE: Ideally, we would push this down into the parser classes but + # they currently have no reference to the operation or service model + # The parsers should probably take the operation model instead of + # output shape but we can't change that now + if http_response.status_code >= 300: + self._add_modeled_error_fields( + response_dict, + parsed_response, + operation_model, + parser, + ) + history_recorder.record('PARSED_RESPONSE', parsed_response) + return (http_response, parsed_response), None + + def _add_modeled_error_fields( + self, + response_dict, + parsed_response, + operation_model, + parser, + ): + error_code = parsed_response.get("Error", {}).get("Code") + if error_code is None: + return + service_model = operation_model.service_model + error_shape = service_model.shape_for_error_code(error_code) + if error_shape is None: + return + modeled_parse = parser.parse(response_dict, error_shape) + # TODO: avoid naming conflicts with ResponseMetadata and Error + parsed_response.update(modeled_parse) + + def _needs_retry( + self, + attempts, + operation_model, + request_dict, + response=None, + caught_exception=None, + ): + service_id = operation_model.service_model.service_id.hyphenize() + event_name = f"needs-retry.{service_id}.{operation_model.name}" + responses = self._event_emitter.emit( + event_name, + response=response, + endpoint=self, + operation=operation_model, + attempts=attempts, + caught_exception=caught_exception, + request_dict=request_dict, + ) + handler_response = first_non_none_response(responses) + if handler_response is None: + return False + else: + # Request needs to be retried, and we need to sleep + # for the specified number of times. + logger.debug( + "Response received to retry, sleeping for %s seconds", + handler_response, + ) + time.sleep(handler_response) + return True + + def _send(self, request): + return self.http_session.send(request) + + +class EndpointCreator: + def __init__(self, event_emitter): + self._event_emitter = event_emitter + + def create_endpoint( + self, + service_model, + region_name, + endpoint_url, + verify=None, + response_parser_factory=None, + timeout=DEFAULT_TIMEOUT, + max_pool_connections=MAX_POOL_CONNECTIONS, + http_session_cls=URLLib3Session, + proxies=None, + socket_options=None, + client_cert=None, + proxies_config=None, + ): + if not is_valid_endpoint_url( + endpoint_url + ) and not is_valid_ipv6_endpoint_url(endpoint_url): + raise ValueError(f"Invalid endpoint: {endpoint_url}") + + if proxies is None: + proxies = self._get_proxies(endpoint_url) + endpoint_prefix = service_model.endpoint_prefix + + logger.debug('Setting %s timeout as %s', endpoint_prefix, timeout) + http_session = http_session_cls( + timeout=timeout, + proxies=proxies, + verify=self._get_verify_value(verify), + max_pool_connections=max_pool_connections, + socket_options=socket_options, + client_cert=client_cert, + proxies_config=proxies_config, + ) + + return Endpoint( + endpoint_url, + endpoint_prefix=endpoint_prefix, + event_emitter=self._event_emitter, + response_parser_factory=response_parser_factory, + http_session=http_session, + ) + + def _get_proxies(self, url): + # We could also support getting proxies from a config file, + # but for now proxy support is taken from the environment. + return get_environ_proxies(url) + + def _get_verify_value(self, verify): + # This is to account for: + # https://github.com/kennethreitz/requests/issues/1436 + # where we need to honor REQUESTS_CA_BUNDLE because we're creating our + # own request objects. + # First, if verify is not None, then the user explicitly specified + # a value so this automatically wins. + if verify is not None: + return verify + # Otherwise use the value from REQUESTS_CA_BUNDLE, or default to + # True if the env var does not exist. + return os.environ.get('REQUESTS_CA_BUNDLE', True) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/endpoint_provider.py b/rep_localstack/lib/python3.12/site-packages/botocore/endpoint_provider.py new file mode 100644 index 000000000..d76f9ac24 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/endpoint_provider.py @@ -0,0 +1,723 @@ +# Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +""" +NOTE: All classes and functions in this module are considered private and are +subject to abrupt breaking changes. Please do not use them directly. + +To view the raw JSON that the objects in this module represent, please +go to any `endpoint-rule-set.json` file in /botocore/data/// +or you can look at the test files in /tests/unit/data/endpoints/valid-rules/ +""" + +import logging +import re +from enum import Enum +from string import Formatter +from typing import NamedTuple + +from botocore import xform_name +from botocore.compat import IPV4_RE, quote, urlparse +from botocore.exceptions import EndpointResolutionError +from botocore.utils import ( + ArnParser, + InvalidArnException, + is_valid_ipv4_endpoint_url, + is_valid_ipv6_endpoint_url, + lru_cache_weakref, + normalize_url_path, + percent_encode, +) + +logger = logging.getLogger(__name__) + +TEMPLATE_STRING_RE = re.compile(r"\{[a-zA-Z#]+\}") +GET_ATTR_RE = re.compile(r"(\w*)\[(\d+)\]") +VALID_HOST_LABEL_RE = re.compile( + r"^(?!-)[a-zA-Z\d-]{1,63}(?= len(value): + return None + return value[index] + else: + value = value[part] + return value + + def format_partition_output(self, partition): + output = partition["outputs"] + output["name"] = partition["id"] + return output + + def is_partition_match(self, region, partition): + matches_regex = re.match(partition["regionRegex"], region) is not None + return region in partition["regions"] or matches_regex + + def aws_partition(self, value): + """Match a region string to an AWS partition. + + :type value: str + :rtype: dict + """ + partitions = self.partitions_data['partitions'] + + if value is not None: + for partition in partitions: + if self.is_partition_match(value, partition): + return self.format_partition_output(partition) + + # return the default partition if no matches were found + aws_partition = partitions[0] + return self.format_partition_output(aws_partition) + + def aws_parse_arn(self, value): + """Parse and validate string for ARN components. + + :type value: str + :rtype: dict + """ + if value is None or not value.startswith("arn:"): + return None + + try: + arn_dict = ARN_PARSER.parse_arn(value) + except InvalidArnException: + return None + + # partition, resource, and service are required + if not all( + (arn_dict["partition"], arn_dict["service"], arn_dict["resource"]) + ): + return None + + arn_dict["accountId"] = arn_dict.pop("account") + + resource = arn_dict.pop("resource") + arn_dict["resourceId"] = resource.replace(":", "/").split("/") + + return arn_dict + + def is_valid_host_label(self, value, allow_subdomains): + """Evaluates whether a value is a valid host label per + RFC 1123. If allow_subdomains is True, split on `.` and validate + each component separately. + + :type value: str + :type allow_subdomains: bool + :rtype: bool + """ + if value is None or allow_subdomains is False and value.count(".") > 0: + return False + + if allow_subdomains is True: + return all( + self.is_valid_host_label(label, False) + for label in value.split(".") + ) + + return VALID_HOST_LABEL_RE.match(value) is not None + + def string_equals(self, value1, value2): + """Evaluates two string values for equality. + + :type value1: str + :type value2: str + :rtype: bool + """ + if not all(isinstance(val, str) for val in (value1, value2)): + msg = f"Both values must be strings, not {type(value1)} and {type(value2)}." + raise EndpointResolutionError(msg=msg) + return value1 == value2 + + def uri_encode(self, value): + """Perform percent-encoding on an input string. + + :type value: str + :rytpe: str + """ + if value is None: + return None + + return percent_encode(value) + + def parse_url(self, value): + """Parse a URL string into components. + + :type value: str + :rtype: dict + """ + if value is None: + return None + + url_components = urlparse(value) + try: + # url_parse may assign non-integer values to + # `port` and will fail when accessed. + url_components.port + except ValueError: + return None + + scheme = url_components.scheme + query = url_components.query + # URLs with queries are not supported + if scheme not in ("https", "http") or len(query) > 0: + return None + + path = url_components.path + normalized_path = quote(normalize_url_path(path)) + if not normalized_path.endswith("/"): + normalized_path = f"{normalized_path}/" + + return { + "scheme": scheme, + "authority": url_components.netloc, + "path": path, + "normalizedPath": normalized_path, + "isIp": is_valid_ipv4_endpoint_url(value) + or is_valid_ipv6_endpoint_url(value), + } + + def boolean_equals(self, value1, value2): + """Evaluates two boolean values for equality. + + :type value1: bool + :type value2: bool + :rtype: bool + """ + if not all(isinstance(val, bool) for val in (value1, value2)): + msg = f"Both arguments must be bools, not {type(value1)} and {type(value2)}." + raise EndpointResolutionError(msg=msg) + return value1 is value2 + + def is_ascii(self, value): + """Evaluates if a string only contains ASCII characters. + + :type value: str + :rtype: bool + """ + try: + value.encode("ascii") + return True + except UnicodeEncodeError: + return False + + def substring(self, value, start, stop, reverse): + """Computes a substring given the start index and end index. If `reverse` is + True, slice the string from the end instead. + + :type value: str + :type start: int + :type end: int + :type reverse: bool + :rtype: str + """ + if not isinstance(value, str): + msg = f"Input must be a string, not {type(value)}." + raise EndpointResolutionError(msg=msg) + if start >= stop or len(value) < stop or not self.is_ascii(value): + return None + + if reverse is True: + r_start = len(value) - stop + r_stop = len(value) - start + return value[r_start:r_stop] + + return value[start:stop] + + def _not(self, value): + """A function implementation of the logical operator `not`. + + :type value: Any + :rtype: bool + """ + return not value + + def aws_is_virtual_hostable_s3_bucket(self, value, allow_subdomains): + """Evaluates whether a value is a valid bucket name for virtual host + style bucket URLs. To pass, the value must meet the following criteria: + 1. is_valid_host_label(value) is True + 2. length between 3 and 63 characters (inclusive) + 3. does not contain uppercase characters + 4. is not formatted as an IP address + + If allow_subdomains is True, split on `.` and validate + each component separately. + + :type value: str + :type allow_subdomains: bool + :rtype: bool + """ + if ( + value is None + or len(value) < 3 + or value.lower() != value + or IPV4_RE.match(value) is not None + ): + return False + + return self.is_valid_host_label( + value, allow_subdomains=allow_subdomains + ) + + +# maintains backwards compatibility as `Library` was misspelled +# in earlier versions +RuleSetStandardLibary = RuleSetStandardLibrary + + +class BaseRule: + """Base interface for individual endpoint rules.""" + + def __init__(self, conditions, documentation=None): + self.conditions = conditions + self.documentation = documentation + + def evaluate(self, scope_vars, rule_lib): + raise NotImplementedError() + + def evaluate_conditions(self, scope_vars, rule_lib): + """Determine if all conditions in a rule are met. + + :type scope_vars: dict + :type rule_lib: RuleSetStandardLibrary + :rtype: bool + """ + for func_signature in self.conditions: + result = rule_lib.call_function(func_signature, scope_vars) + if result is False or result is None: + return False + return True + + +class RuleSetEndpoint(NamedTuple): + """A resolved endpoint object returned by a rule.""" + + url: str + properties: dict + headers: dict + + +class EndpointRule(BaseRule): + def __init__(self, endpoint, **kwargs): + super().__init__(**kwargs) + self.endpoint = endpoint + + def evaluate(self, scope_vars, rule_lib): + """Determine if conditions are met to provide a valid endpoint. + + :type scope_vars: dict + :rtype: RuleSetEndpoint + """ + if self.evaluate_conditions(scope_vars, rule_lib): + url = rule_lib.resolve_value(self.endpoint["url"], scope_vars) + properties = self.resolve_properties( + self.endpoint.get("properties", {}), + scope_vars, + rule_lib, + ) + headers = self.resolve_headers(scope_vars, rule_lib) + return RuleSetEndpoint( + url=url, properties=properties, headers=headers + ) + + return None + + def resolve_properties(self, properties, scope_vars, rule_lib): + """Traverse `properties` attribute, resolving any template strings. + + :type properties: dict/list/str + :type scope_vars: dict + :type rule_lib: RuleSetStandardLibrary + :rtype: dict + """ + if isinstance(properties, list): + return [ + self.resolve_properties(prop, scope_vars, rule_lib) + for prop in properties + ] + elif isinstance(properties, dict): + return { + key: self.resolve_properties(value, scope_vars, rule_lib) + for key, value in properties.items() + } + elif rule_lib.is_template(properties): + return rule_lib.resolve_template_string(properties, scope_vars) + + return properties + + def resolve_headers(self, scope_vars, rule_lib): + """Iterate through headers attribute resolving all values. + + :type scope_vars: dict + :type rule_lib: RuleSetStandardLibrary + :rtype: dict + """ + resolved_headers = {} + headers = self.endpoint.get("headers", {}) + + for header, values in headers.items(): + resolved_headers[header] = [ + rule_lib.resolve_value(item, scope_vars) for item in values + ] + return resolved_headers + + +class ErrorRule(BaseRule): + def __init__(self, error, **kwargs): + super().__init__(**kwargs) + self.error = error + + def evaluate(self, scope_vars, rule_lib): + """If an error rule's conditions are met, raise an error rule. + + :type scope_vars: dict + :type rule_lib: RuleSetStandardLibrary + :rtype: EndpointResolutionError + """ + if self.evaluate_conditions(scope_vars, rule_lib): + error = rule_lib.resolve_value(self.error, scope_vars) + raise EndpointResolutionError(msg=error) + return None + + +class TreeRule(BaseRule): + """A tree rule is non-terminal meaning it will never be returned to a provider. + Additionally this means it has no attributes that need to be resolved. + """ + + def __init__(self, rules, **kwargs): + super().__init__(**kwargs) + self.rules = [RuleCreator.create(**rule) for rule in rules] + + def evaluate(self, scope_vars, rule_lib): + """If a tree rule's conditions are met, iterate its sub-rules + and return first result found. + + :type scope_vars: dict + :type rule_lib: RuleSetStandardLibrary + :rtype: RuleSetEndpoint/EndpointResolutionError + """ + if self.evaluate_conditions(scope_vars, rule_lib): + for rule in self.rules: + # don't share scope_vars between rules + rule_result = rule.evaluate(scope_vars.copy(), rule_lib) + if rule_result: + return rule_result + return None + + +class RuleCreator: + endpoint = EndpointRule + error = ErrorRule + tree = TreeRule + + @classmethod + def create(cls, **kwargs): + """Create a rule instance from metadata. + + :rtype: TreeRule/EndpointRule/ErrorRule + """ + rule_type = kwargs.pop("type") + try: + rule_class = getattr(cls, rule_type) + except AttributeError: + raise EndpointResolutionError( + msg=f"Unknown rule type: {rule_type}. A rule must " + "be of type tree, endpoint or error." + ) + else: + return rule_class(**kwargs) + + +class ParameterType(Enum): + """Translation from `type` attribute to native Python type.""" + + string = str + boolean = bool + stringarray = tuple + + +class ParameterDefinition: + """The spec of an individual parameter defined in a RuleSet.""" + + def __init__( + self, + name, + parameter_type, + documentation=None, + builtIn=None, + default=None, + required=None, + deprecated=None, + ): + self.name = name + try: + self.parameter_type = getattr( + ParameterType, parameter_type.lower() + ).value + except AttributeError: + raise EndpointResolutionError( + msg=f"Unknown parameter type: {parameter_type}. " + "A parameter must be of type string, boolean, or stringarray." + ) + self.documentation = documentation + self.builtin = builtIn + self.default = default + self.required = required + self.deprecated = deprecated + + def validate_input(self, value): + """Perform base validation on parameter input. + + :type value: Any + :raises: EndpointParametersError + """ + + if not isinstance(value, self.parameter_type): + raise EndpointResolutionError( + msg=f"Value ({self.name}) is the wrong " + f"type. Must be {self.parameter_type}." + ) + if self.deprecated is not None: + depr_str = f"{self.name} has been deprecated." + msg = self.deprecated.get("message") + since = self.deprecated.get("since") + if msg: + depr_str += f"\n{msg}" + if since: + depr_str += f"\nDeprecated since {since}." + logger.info(depr_str) + + return None + + def process_input(self, value): + """Process input against spec, applying default if value is None.""" + if value is None: + if self.default is not None: + return self.default + if self.required: + raise EndpointResolutionError( + msg=f"Cannot find value for required parameter {self.name}" + ) + # in all other cases, the parameter will keep the value None + else: + self.validate_input(value) + return value + + +class RuleSet: + """Collection of rules to derive a routable service endpoint.""" + + def __init__( + self, version, parameters, rules, partitions, documentation=None + ): + self.version = version + self.parameters = self._ingest_parameter_spec(parameters) + self.rules = [RuleCreator.create(**rule) for rule in rules] + self.rule_lib = RuleSetStandardLibrary(partitions) + self.documentation = documentation + + def _ingest_parameter_spec(self, parameters): + return { + name: ParameterDefinition( + name, + spec["type"], + spec.get("documentation"), + spec.get("builtIn"), + spec.get("default"), + spec.get("required"), + spec.get("deprecated"), + ) + for name, spec in parameters.items() + } + + def process_input_parameters(self, input_params): + """Process each input parameter against its spec. + + :type input_params: dict + """ + for name, spec in self.parameters.items(): + value = spec.process_input(input_params.get(name)) + if value is not None: + input_params[name] = value + return None + + def evaluate(self, input_parameters): + """Evaluate input parameters against rules returning first match. + + :type input_parameters: dict + """ + self.process_input_parameters(input_parameters) + for rule in self.rules: + evaluation = rule.evaluate(input_parameters.copy(), self.rule_lib) + if evaluation is not None: + return evaluation + return None + + +class EndpointProvider: + """Derives endpoints from a RuleSet for given input parameters.""" + + def __init__(self, ruleset_data, partition_data): + self.ruleset = RuleSet(**ruleset_data, partitions=partition_data) + + @lru_cache_weakref(maxsize=CACHE_SIZE) + def resolve_endpoint(self, **input_parameters): + """Match input parameters to a rule. + + :type input_parameters: dict + :rtype: RuleSetEndpoint + """ + params_for_error = input_parameters.copy() + endpoint = self.ruleset.evaluate(input_parameters) + if endpoint is None: + param_string = "\n".join( + [f"{key}: {value}" for key, value in params_for_error.items()] + ) + raise EndpointResolutionError( + msg=f"No endpoint found for parameters:\n{param_string}" + ) + return endpoint diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/errorfactory.py b/rep_localstack/lib/python3.12/site-packages/botocore/errorfactory.py new file mode 100644 index 000000000..6084e51da --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/errorfactory.py @@ -0,0 +1,90 @@ +# Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +from botocore.exceptions import ClientError +from botocore.utils import get_service_module_name + + +class BaseClientExceptions: + ClientError = ClientError + + def __init__(self, code_to_exception): + """Base class for exceptions object on a client + + :type code_to_exception: dict + :param code_to_exception: Mapping of error codes (strings) to exception + class that should be raised when encountering a particular + error code. + """ + self._code_to_exception = code_to_exception + + def from_code(self, error_code): + """Retrieves the error class based on the error code + + This is helpful for identifying the exception class needing to be + caught based on the ClientError.parsed_reponse['Error']['Code'] value + + :type error_code: string + :param error_code: The error code associated to a ClientError exception + + :rtype: ClientError or a subclass of ClientError + :returns: The appropriate modeled exception class for that error + code. If the error code does not match any of the known + modeled exceptions then return a generic ClientError. + """ + return self._code_to_exception.get(error_code, self.ClientError) + + def __getattr__(self, name): + exception_cls_names = [ + exception_cls.__name__ + for exception_cls in self._code_to_exception.values() + ] + raise AttributeError( + rf"{self} object has no attribute {name}. " + rf"Valid exceptions are: {', '.join(exception_cls_names)}" + ) + + +class ClientExceptionsFactory: + def __init__(self): + self._client_exceptions_cache = {} + + def create_client_exceptions(self, service_model): + """Creates a ClientExceptions object for the particular service client + + :type service_model: botocore.model.ServiceModel + :param service_model: The service model for the client + + :rtype: object that subclasses from BaseClientExceptions + :returns: The exceptions object of a client that can be used + to grab the various different modeled exceptions. + """ + service_name = service_model.service_name + if service_name not in self._client_exceptions_cache: + client_exceptions = self._create_client_exceptions(service_model) + self._client_exceptions_cache[service_name] = client_exceptions + return self._client_exceptions_cache[service_name] + + def _create_client_exceptions(self, service_model): + cls_props = {} + code_to_exception = {} + for error_shape in service_model.error_shapes: + exception_name = str(error_shape.name) + exception_cls = type(exception_name, (ClientError,), {}) + cls_props[exception_name] = exception_cls + code = str(error_shape.error_code) + code_to_exception[code] = exception_cls + cls_name = str(get_service_module_name(service_model) + 'Exceptions') + client_exceptions_cls = type( + cls_name, (BaseClientExceptions,), cls_props + ) + return client_exceptions_cls(code_to_exception) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/eventstream.py b/rep_localstack/lib/python3.12/site-packages/botocore/eventstream.py new file mode 100644 index 000000000..865e65b78 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/eventstream.py @@ -0,0 +1,622 @@ +# Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +"""Binary Event Stream Decoding""" + +from binascii import crc32 +from struct import unpack + +from botocore.exceptions import EventStreamError + +# byte length of the prelude (total_length + header_length + prelude_crc) +_PRELUDE_LENGTH = 12 +_MAX_HEADERS_LENGTH = 128 * 1024 # 128 Kb +_MAX_PAYLOAD_LENGTH = 24 * 1024 * 1024 # 24 Mb + + +class ParserError(Exception): + """Base binary flow encoding parsing exception.""" + + pass + + +class DuplicateHeader(ParserError): + """Duplicate header found in the event.""" + + def __init__(self, header): + message = f'Duplicate header present: "{header}"' + super().__init__(message) + + +class InvalidHeadersLength(ParserError): + """Headers length is longer than the maximum.""" + + def __init__(self, length): + message = f'Header length of {length} exceeded the maximum of {_MAX_HEADERS_LENGTH}' + super().__init__(message) + + +class InvalidPayloadLength(ParserError): + """Payload length is longer than the maximum.""" + + def __init__(self, length): + message = f'Payload length of {length} exceeded the maximum of {_MAX_PAYLOAD_LENGTH}' + super().__init__(message) + + +class ChecksumMismatch(ParserError): + """Calculated checksum did not match the expected checksum.""" + + def __init__(self, expected, calculated): + message = f'Checksum mismatch: expected 0x{expected:08x}, calculated 0x{calculated:08x}' + super().__init__(message) + + +class NoInitialResponseError(ParserError): + """An event of type initial-response was not received. + + This exception is raised when the event stream produced no events or + the first event in the stream was not of the initial-response type. + """ + + def __init__(self): + message = 'First event was not of the initial-response type' + super().__init__(message) + + +class DecodeUtils: + """Unpacking utility functions used in the decoder. + + All methods on this class take raw bytes and return a tuple containing + the value parsed from the bytes and the number of bytes consumed to parse + that value. + """ + + UINT8_BYTE_FORMAT = '!B' + UINT16_BYTE_FORMAT = '!H' + UINT32_BYTE_FORMAT = '!I' + INT8_BYTE_FORMAT = '!b' + INT16_BYTE_FORMAT = '!h' + INT32_BYTE_FORMAT = '!i' + INT64_BYTE_FORMAT = '!q' + PRELUDE_BYTE_FORMAT = '!III' + + # uint byte size to unpack format + UINT_BYTE_FORMAT = { + 1: UINT8_BYTE_FORMAT, + 2: UINT16_BYTE_FORMAT, + 4: UINT32_BYTE_FORMAT, + } + + @staticmethod + def unpack_true(data): + """This method consumes none of the provided bytes and returns True. + + :type data: bytes + :param data: The bytes to parse from. This is ignored in this method. + + :rtype: tuple + :rtype: (bool, int) + :returns: The tuple (True, 0) + """ + return True, 0 + + @staticmethod + def unpack_false(data): + """This method consumes none of the provided bytes and returns False. + + :type data: bytes + :param data: The bytes to parse from. This is ignored in this method. + + :rtype: tuple + :rtype: (bool, int) + :returns: The tuple (False, 0) + """ + return False, 0 + + @staticmethod + def unpack_uint8(data): + """Parse an unsigned 8-bit integer from the bytes. + + :type data: bytes + :param data: The bytes to parse from. + + :rtype: (int, int) + :returns: A tuple containing the (parsed integer value, bytes consumed) + """ + value = unpack(DecodeUtils.UINT8_BYTE_FORMAT, data[:1])[0] + return value, 1 + + @staticmethod + def unpack_uint32(data): + """Parse an unsigned 32-bit integer from the bytes. + + :type data: bytes + :param data: The bytes to parse from. + + :rtype: (int, int) + :returns: A tuple containing the (parsed integer value, bytes consumed) + """ + value = unpack(DecodeUtils.UINT32_BYTE_FORMAT, data[:4])[0] + return value, 4 + + @staticmethod + def unpack_int8(data): + """Parse a signed 8-bit integer from the bytes. + + :type data: bytes + :param data: The bytes to parse from. + + :rtype: (int, int) + :returns: A tuple containing the (parsed integer value, bytes consumed) + """ + value = unpack(DecodeUtils.INT8_BYTE_FORMAT, data[:1])[0] + return value, 1 + + @staticmethod + def unpack_int16(data): + """Parse a signed 16-bit integer from the bytes. + + :type data: bytes + :param data: The bytes to parse from. + + :rtype: tuple + :rtype: (int, int) + :returns: A tuple containing the (parsed integer value, bytes consumed) + """ + value = unpack(DecodeUtils.INT16_BYTE_FORMAT, data[:2])[0] + return value, 2 + + @staticmethod + def unpack_int32(data): + """Parse a signed 32-bit integer from the bytes. + + :type data: bytes + :param data: The bytes to parse from. + + :rtype: tuple + :rtype: (int, int) + :returns: A tuple containing the (parsed integer value, bytes consumed) + """ + value = unpack(DecodeUtils.INT32_BYTE_FORMAT, data[:4])[0] + return value, 4 + + @staticmethod + def unpack_int64(data): + """Parse a signed 64-bit integer from the bytes. + + :type data: bytes + :param data: The bytes to parse from. + + :rtype: tuple + :rtype: (int, int) + :returns: A tuple containing the (parsed integer value, bytes consumed) + """ + value = unpack(DecodeUtils.INT64_BYTE_FORMAT, data[:8])[0] + return value, 8 + + @staticmethod + def unpack_byte_array(data, length_byte_size=2): + """Parse a variable length byte array from the bytes. + + The bytes are expected to be in the following format: + [ length ][0 ... length bytes] + where length is an unsigned integer represented in the smallest number + of bytes to hold the maximum length of the array. + + :type data: bytes + :param data: The bytes to parse from. + + :type length_byte_size: int + :param length_byte_size: The byte size of the preceding integer that + represents the length of the array. Supported values are 1, 2, and 4. + + :rtype: (bytes, int) + :returns: A tuple containing the (parsed byte array, bytes consumed). + """ + uint_byte_format = DecodeUtils.UINT_BYTE_FORMAT[length_byte_size] + length = unpack(uint_byte_format, data[:length_byte_size])[0] + bytes_end = length + length_byte_size + array_bytes = data[length_byte_size:bytes_end] + return array_bytes, bytes_end + + @staticmethod + def unpack_utf8_string(data, length_byte_size=2): + """Parse a variable length utf-8 string from the bytes. + + The bytes are expected to be in the following format: + [ length ][0 ... length bytes] + where length is an unsigned integer represented in the smallest number + of bytes to hold the maximum length of the array and the following + bytes are a valid utf-8 string. + + :type data: bytes + :param bytes: The bytes to parse from. + + :type length_byte_size: int + :param length_byte_size: The byte size of the preceding integer that + represents the length of the array. Supported values are 1, 2, and 4. + + :rtype: (str, int) + :returns: A tuple containing the (utf-8 string, bytes consumed). + """ + array_bytes, consumed = DecodeUtils.unpack_byte_array( + data, length_byte_size + ) + return array_bytes.decode('utf-8'), consumed + + @staticmethod + def unpack_uuid(data): + """Parse a 16-byte uuid from the bytes. + + :type data: bytes + :param data: The bytes to parse from. + + :rtype: (bytes, int) + :returns: A tuple containing the (uuid bytes, bytes consumed). + """ + return data[:16], 16 + + @staticmethod + def unpack_prelude(data): + """Parse the prelude for an event stream message from the bytes. + + The prelude for an event stream message has the following format: + [total_length][header_length][prelude_crc] + where each field is an unsigned 32-bit integer. + + :rtype: ((int, int, int), int) + :returns: A tuple of ((total_length, headers_length, prelude_crc), + consumed) + """ + return (unpack(DecodeUtils.PRELUDE_BYTE_FORMAT, data), _PRELUDE_LENGTH) + + +def _validate_checksum(data, checksum, crc=0): + # To generate the same numeric value across all Python versions and + # platforms use crc32(data) & 0xffffffff. + computed_checksum = crc32(data, crc) & 0xFFFFFFFF + if checksum != computed_checksum: + raise ChecksumMismatch(checksum, computed_checksum) + + +class MessagePrelude: + """Represents the prelude of an event stream message.""" + + def __init__(self, total_length, headers_length, crc): + self.total_length = total_length + self.headers_length = headers_length + self.crc = crc + + @property + def payload_length(self): + """Calculates the total payload length. + + The extra minus 4 bytes is for the message CRC. + + :rtype: int + :returns: The total payload length. + """ + return self.total_length - self.headers_length - _PRELUDE_LENGTH - 4 + + @property + def payload_end(self): + """Calculates the byte offset for the end of the message payload. + + The extra minus 4 bytes is for the message CRC. + + :rtype: int + :returns: The byte offset from the beginning of the event stream + message to the end of the payload. + """ + return self.total_length - 4 + + @property + def headers_end(self): + """Calculates the byte offset for the end of the message headers. + + :rtype: int + :returns: The byte offset from the beginning of the event stream + message to the end of the headers. + """ + return _PRELUDE_LENGTH + self.headers_length + + +class EventStreamMessage: + """Represents an event stream message.""" + + def __init__(self, prelude, headers, payload, crc): + self.prelude = prelude + self.headers = headers + self.payload = payload + self.crc = crc + + def to_response_dict(self, status_code=200): + message_type = self.headers.get(':message-type') + if message_type == 'error' or message_type == 'exception': + status_code = 400 + return { + 'status_code': status_code, + 'headers': self.headers, + 'body': self.payload, + } + + +class EventStreamHeaderParser: + """Parses the event headers from an event stream message. + + Expects all of the header data upfront and creates a dictionary of headers + to return. This object can be reused multiple times to parse the headers + from multiple event stream messages. + """ + + # Maps header type to appropriate unpacking function + # These unpacking functions return the value and the amount unpacked + _HEADER_TYPE_MAP = { + # boolean_true + 0: DecodeUtils.unpack_true, + # boolean_false + 1: DecodeUtils.unpack_false, + # byte + 2: DecodeUtils.unpack_int8, + # short + 3: DecodeUtils.unpack_int16, + # integer + 4: DecodeUtils.unpack_int32, + # long + 5: DecodeUtils.unpack_int64, + # byte_array + 6: DecodeUtils.unpack_byte_array, + # string + 7: DecodeUtils.unpack_utf8_string, + # timestamp + 8: DecodeUtils.unpack_int64, + # uuid + 9: DecodeUtils.unpack_uuid, + } + + def __init__(self): + self._data = None + + def parse(self, data): + """Parses the event stream headers from an event stream message. + + :type data: bytes + :param data: The bytes that correspond to the headers section of an + event stream message. + + :rtype: dict + :returns: A dictionary of header key, value pairs. + """ + self._data = data + return self._parse_headers() + + def _parse_headers(self): + headers = {} + while self._data: + name, value = self._parse_header() + if name in headers: + raise DuplicateHeader(name) + headers[name] = value + return headers + + def _parse_header(self): + name = self._parse_name() + value = self._parse_value() + return name, value + + def _parse_name(self): + name, consumed = DecodeUtils.unpack_utf8_string(self._data, 1) + self._advance_data(consumed) + return name + + def _parse_type(self): + type, consumed = DecodeUtils.unpack_uint8(self._data) + self._advance_data(consumed) + return type + + def _parse_value(self): + header_type = self._parse_type() + value_unpacker = self._HEADER_TYPE_MAP[header_type] + value, consumed = value_unpacker(self._data) + self._advance_data(consumed) + return value + + def _advance_data(self, consumed): + self._data = self._data[consumed:] + + +class EventStreamBuffer: + """Streaming based event stream buffer + + A buffer class that wraps bytes from an event stream providing parsed + messages as they become available via an iterable interface. + """ + + def __init__(self): + self._data = b'' + self._prelude = None + self._header_parser = EventStreamHeaderParser() + + def add_data(self, data): + """Add data to the buffer. + + :type data: bytes + :param data: The bytes to add to the buffer to be used when parsing + """ + self._data += data + + def _validate_prelude(self, prelude): + if prelude.headers_length > _MAX_HEADERS_LENGTH: + raise InvalidHeadersLength(prelude.headers_length) + + if prelude.payload_length > _MAX_PAYLOAD_LENGTH: + raise InvalidPayloadLength(prelude.payload_length) + + def _parse_prelude(self): + prelude_bytes = self._data[:_PRELUDE_LENGTH] + raw_prelude, _ = DecodeUtils.unpack_prelude(prelude_bytes) + prelude = MessagePrelude(*raw_prelude) + # The minus 4 removes the prelude crc from the bytes to be checked + _validate_checksum(prelude_bytes[: _PRELUDE_LENGTH - 4], prelude.crc) + self._validate_prelude(prelude) + return prelude + + def _parse_headers(self): + header_bytes = self._data[_PRELUDE_LENGTH : self._prelude.headers_end] + return self._header_parser.parse(header_bytes) + + def _parse_payload(self): + prelude = self._prelude + payload_bytes = self._data[prelude.headers_end : prelude.payload_end] + return payload_bytes + + def _parse_message_crc(self): + prelude = self._prelude + crc_bytes = self._data[prelude.payload_end : prelude.total_length] + message_crc, _ = DecodeUtils.unpack_uint32(crc_bytes) + return message_crc + + def _parse_message_bytes(self): + # The minus 4 includes the prelude crc to the bytes to be checked + message_bytes = self._data[ + _PRELUDE_LENGTH - 4 : self._prelude.payload_end + ] + return message_bytes + + def _validate_message_crc(self): + message_crc = self._parse_message_crc() + message_bytes = self._parse_message_bytes() + _validate_checksum(message_bytes, message_crc, crc=self._prelude.crc) + return message_crc + + def _parse_message(self): + crc = self._validate_message_crc() + headers = self._parse_headers() + payload = self._parse_payload() + message = EventStreamMessage(self._prelude, headers, payload, crc) + self._prepare_for_next_message() + return message + + def _prepare_for_next_message(self): + # Advance the data and reset the current prelude + self._data = self._data[self._prelude.total_length :] + self._prelude = None + + def next(self): + """Provides the next available message parsed from the stream + + :rtype: EventStreamMessage + :returns: The next event stream message + """ + if len(self._data) < _PRELUDE_LENGTH: + raise StopIteration() + + if self._prelude is None: + self._prelude = self._parse_prelude() + + if len(self._data) < self._prelude.total_length: + raise StopIteration() + + return self._parse_message() + + def __next__(self): + return self.next() + + def __iter__(self): + return self + + +class EventStream: + """Wrapper class for an event stream body. + + This wraps the underlying streaming body, parsing it for individual events + and yielding them as they come available through the iterator interface. + + The following example uses the S3 select API to get structured data out of + an object stored in S3 using an event stream. + + **Example:** + :: + from botocore.session import Session + + s3 = Session().create_client('s3') + response = s3.select_object_content( + Bucket='bucketname', + Key='keyname', + ExpressionType='SQL', + RequestProgress={'Enabled': True}, + Expression="SELECT * FROM S3Object s", + InputSerialization={'CSV': {}}, + OutputSerialization={'CSV': {}}, + ) + # This is the event stream in the response + event_stream = response['Payload'] + end_event_received = False + with open('output', 'wb') as f: + # Iterate over events in the event stream as they come + for event in event_stream: + # If we received a records event, write the data to a file + if 'Records' in event: + data = event['Records']['Payload'] + f.write(data) + # If we received a progress event, print the details + elif 'Progress' in event: + print(event['Progress']['Details']) + # End event indicates that the request finished successfully + elif 'End' in event: + print('Result is complete') + end_event_received = True + if not end_event_received: + raise Exception("End event not received, request incomplete.") + """ + + def __init__(self, raw_stream, output_shape, parser, operation_name): + self._raw_stream = raw_stream + self._output_shape = output_shape + self._operation_name = operation_name + self._parser = parser + self._event_generator = self._create_raw_event_generator() + + def __iter__(self): + for event in self._event_generator: + parsed_event = self._parse_event(event) + if parsed_event: + yield parsed_event + + def _create_raw_event_generator(self): + event_stream_buffer = EventStreamBuffer() + for chunk in self._raw_stream.stream(): + event_stream_buffer.add_data(chunk) + yield from event_stream_buffer + + def _parse_event(self, event): + response_dict = event.to_response_dict() + parsed_response = self._parser.parse(response_dict, self._output_shape) + if response_dict['status_code'] == 200: + return parsed_response + else: + raise EventStreamError(parsed_response, self._operation_name) + + def get_initial_response(self): + try: + initial_event = next(self._event_generator) + event_type = initial_event.headers.get(':event-type') + if event_type == 'initial-response': + return initial_event + except StopIteration: + pass + raise NoInitialResponseError() + + def close(self): + """Closes the underlying streaming body.""" + self._raw_stream.close() diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/exceptions.py b/rep_localstack/lib/python3.12/site-packages/botocore/exceptions.py new file mode 100644 index 000000000..294bbf402 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/exceptions.py @@ -0,0 +1,857 @@ +# Copyright (c) 2012-2013 Mitch Garnaat http://garnaat.org/ +# Copyright 2012-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +from botocore.vendored import requests +from botocore.vendored.requests.packages import urllib3 + + +def _exception_from_packed_args(exception_cls, args=None, kwargs=None): + # This is helpful for reducing Exceptions that only accept kwargs as + # only positional arguments can be provided for __reduce__ + # Ideally, this would also be a class method on the BotoCoreError + # but instance methods cannot be pickled. + if args is None: + args = () + if kwargs is None: + kwargs = {} + return exception_cls(*args, **kwargs) + + +class BotoCoreError(Exception): + """ + The base exception class for BotoCore exceptions. + + :ivar msg: The descriptive message associated with the error. + """ + + fmt = 'An unspecified error occurred' + + def __init__(self, **kwargs): + msg = self.fmt.format(**kwargs) + Exception.__init__(self, msg) + self.kwargs = kwargs + + def __reduce__(self): + return _exception_from_packed_args, (self.__class__, None, self.kwargs) + + +class DataNotFoundError(BotoCoreError): + """ + The data associated with a particular path could not be loaded. + + :ivar data_path: The data path that the user attempted to load. + """ + + fmt = 'Unable to load data for: {data_path}' + + +class UnknownServiceError(DataNotFoundError): + """Raised when trying to load data for an unknown service. + + :ivar service_name: The name of the unknown service. + + """ + + fmt = ( + "Unknown service: '{service_name}'. Valid service names are: " + "{known_service_names}" + ) + + +class UnknownRegionError(BotoCoreError): + """Raised when trying to load data for an unknown region. + + :ivar region_name: The name of the unknown region. + + """ + + fmt = "Unknown region: '{region_name}'. {error_msg}" + + +class ApiVersionNotFoundError(BotoCoreError): + """ + The data associated with either the API version or a compatible one + could not be loaded. + + :ivar data_path: The data path that the user attempted to load. + :ivar api_version: The API version that the user attempted to load. + """ + + fmt = 'Unable to load data {data_path} for: {api_version}' + + +class HTTPClientError(BotoCoreError): + fmt = 'An HTTP Client raised an unhandled exception: {error}' + + def __init__(self, request=None, response=None, **kwargs): + self.request = request + self.response = response + super().__init__(**kwargs) + + def __reduce__(self): + return _exception_from_packed_args, ( + self.__class__, + (self.request, self.response), + self.kwargs, + ) + + +class ConnectionError(BotoCoreError): + fmt = 'An HTTP Client failed to establish a connection: {error}' + + +class InvalidIMDSEndpointError(BotoCoreError): + fmt = 'Invalid endpoint EC2 Instance Metadata endpoint: {endpoint}' + + +class InvalidIMDSEndpointModeError(BotoCoreError): + fmt = ( + 'Invalid EC2 Instance Metadata endpoint mode: {mode}' + ' Valid endpoint modes (case-insensitive): {valid_modes}.' + ) + + +class EndpointConnectionError(ConnectionError): + fmt = 'Could not connect to the endpoint URL: "{endpoint_url}"' + + +class SSLError(ConnectionError, requests.exceptions.SSLError): + fmt = 'SSL validation failed for {endpoint_url} {error}' + + +class ConnectionClosedError(HTTPClientError): + fmt = ( + 'Connection was closed before we received a valid response ' + 'from endpoint URL: "{endpoint_url}".' + ) + + +class ReadTimeoutError( + HTTPClientError, + requests.exceptions.ReadTimeout, + urllib3.exceptions.ReadTimeoutError, +): + fmt = 'Read timeout on endpoint URL: "{endpoint_url}"' + + +class ConnectTimeoutError(ConnectionError, requests.exceptions.ConnectTimeout): + fmt = 'Connect timeout on endpoint URL: "{endpoint_url}"' + + +class ProxyConnectionError(ConnectionError, requests.exceptions.ProxyError): + fmt = 'Failed to connect to proxy URL: "{proxy_url}"' + + +class ResponseStreamingError(HTTPClientError): + fmt = 'An error occurred while reading from response stream: {error}' + + +class NoCredentialsError(BotoCoreError): + """ + No credentials could be found. + """ + + fmt = 'Unable to locate credentials' + + +class NoAuthTokenError(BotoCoreError): + """ + No authorization token could be found. + """ + + fmt = 'Unable to locate authorization token' + + +class TokenRetrievalError(BotoCoreError): + """ + Error attempting to retrieve a token from a remote source. + + :ivar provider: The name of the token provider. + :ivar error_msg: The msg explaining why the token could not be retrieved. + + """ + + fmt = 'Error when retrieving token from {provider}: {error_msg}' + + +class PartialCredentialsError(BotoCoreError): + """ + Only partial credentials were found. + + :ivar cred_var: The missing credential variable name. + + """ + + fmt = 'Partial credentials found in {provider}, missing: {cred_var}' + + +class CredentialRetrievalError(BotoCoreError): + """ + Error attempting to retrieve credentials from a remote source. + + :ivar provider: The name of the credential provider. + :ivar error_msg: The msg explaining why credentials could not be + retrieved. + + """ + + fmt = 'Error when retrieving credentials from {provider}: {error_msg}' + + +class UnknownSignatureVersionError(BotoCoreError): + """ + Requested Signature Version is not known. + + :ivar signature_version: The name of the requested signature version. + """ + + fmt = 'Unknown Signature Version: {signature_version}.' + + +class ServiceNotInRegionError(BotoCoreError): + """ + The service is not available in requested region. + + :ivar service_name: The name of the service. + :ivar region_name: The name of the region. + """ + + fmt = 'Service {service_name} not available in region {region_name}' + + +class BaseEndpointResolverError(BotoCoreError): + """Base error for endpoint resolving errors. + + Should never be raised directly, but clients can catch + this exception if they want to generically handle any errors + during the endpoint resolution process. + + """ + + +class NoRegionError(BaseEndpointResolverError): + """No region was specified.""" + + fmt = 'You must specify a region.' + + +class EndpointVariantError(BaseEndpointResolverError): + """ + Could not construct modeled endpoint variant. + + :ivar error_msg: The message explaining why the modeled endpoint variant + is unable to be constructed. + + """ + + fmt = ( + 'Unable to construct a modeled endpoint with the following ' + 'variant(s) {tags}: ' + ) + + +class UnknownEndpointError(BaseEndpointResolverError, ValueError): + """ + Could not construct an endpoint. + + :ivar service_name: The name of the service. + :ivar region_name: The name of the region. + """ + + fmt = ( + 'Unable to construct an endpoint for ' + '{service_name} in region {region_name}' + ) + + +class UnknownFIPSEndpointError(BaseEndpointResolverError): + """ + Could not construct a FIPS endpoint. + + :ivar service_name: The name of the service. + :ivar region_name: The name of the region. + """ + + fmt = ( + 'The provided FIPS pseudo-region "{region_name}" is not known for ' + 'the service "{service_name}". A FIPS compliant endpoint cannot be ' + 'constructed.' + ) + + +class ProfileNotFound(BotoCoreError): + """ + The specified configuration profile was not found in the + configuration file. + + :ivar profile: The name of the profile the user attempted to load. + """ + + fmt = 'The config profile ({profile}) could not be found' + + +class ConfigParseError(BotoCoreError): + """ + The configuration file could not be parsed. + + :ivar path: The path to the configuration file. + """ + + fmt = 'Unable to parse config file: {path}' + + +class ConfigNotFound(BotoCoreError): + """ + The specified configuration file could not be found. + + :ivar path: The path to the configuration file. + """ + + fmt = 'The specified config file ({path}) could not be found.' + + +class MissingParametersError(BotoCoreError): + """ + One or more required parameters were not supplied. + + :ivar object: The object that has missing parameters. + This can be an operation or a parameter (in the + case of inner params). The str() of this object + will be used so it doesn't need to implement anything + other than str(). + :ivar missing: The names of the missing parameters. + """ + + fmt = ( + 'The following required parameters are missing for ' + '{object_name}: {missing}' + ) + + +class ValidationError(BotoCoreError): + """ + An exception occurred validating parameters. + + Subclasses must accept a ``value`` and ``param`` + argument in their ``__init__``. + + :ivar value: The value that was being validated. + :ivar param: The parameter that failed validation. + :ivar type_name: The name of the underlying type. + """ + + fmt = "Invalid value ('{value}') for param {param} of type {type_name} " + + +class ParamValidationError(BotoCoreError): + fmt = 'Parameter validation failed:\n{report}' + + +# These exceptions subclass from ValidationError so that code +# can just 'except ValidationError' to catch any possibly validation +# error. +class UnknownKeyError(ValidationError): + """ + Unknown key in a struct parameter. + + :ivar value: The value that was being checked. + :ivar param: The name of the parameter. + :ivar choices: The valid choices the value can be. + """ + + fmt = ( + "Unknown key '{value}' for param '{param}'. Must be one of: {choices}" + ) + + +class RangeError(ValidationError): + """ + A parameter value was out of the valid range. + + :ivar value: The value that was being checked. + :ivar param: The parameter that failed validation. + :ivar min_value: The specified minimum value. + :ivar max_value: The specified maximum value. + """ + + fmt = ( + 'Value out of range for param {param}: ' + '{min_value} <= {value} <= {max_value}' + ) + + +class UnknownParameterError(ValidationError): + """ + Unknown top level parameter. + + :ivar name: The name of the unknown parameter. + :ivar operation: The name of the operation. + :ivar choices: The valid choices the parameter name can be. + """ + + fmt = ( + "Unknown parameter '{name}' for operation {operation}. Must be one " + "of: {choices}" + ) + + +class InvalidRegionError(ValidationError, ValueError): + """ + Invalid region_name provided to client or resource. + + :ivar region_name: region_name that was being validated. + """ + + fmt = "Provided region_name '{region_name}' doesn't match a supported format." + + +class AliasConflictParameterError(ValidationError): + """ + Error when an alias is provided for a parameter as well as the original. + + :ivar original: The name of the original parameter. + :ivar alias: The name of the alias + :ivar operation: The name of the operation. + """ + + fmt = ( + "Parameter '{original}' and its alias '{alias}' were provided " + "for operation {operation}. Only one of them may be used." + ) + + +class UnknownServiceStyle(BotoCoreError): + """ + Unknown style of service invocation. + + :ivar service_style: The style requested. + """ + + fmt = 'The service style ({service_style}) is not understood.' + + +class PaginationError(BotoCoreError): + fmt = 'Error during pagination: {message}' + + +class OperationNotPageableError(BotoCoreError): + fmt = 'Operation cannot be paginated: {operation_name}' + + +class ChecksumError(BotoCoreError): + """The expected checksum did not match the calculated checksum.""" + + fmt = ( + 'Checksum {checksum_type} failed, expected checksum ' + '{expected_checksum} did not match calculated checksum ' + '{actual_checksum}.' + ) + + +class UnseekableStreamError(BotoCoreError): + """Need to seek a stream, but stream does not support seeking.""" + + fmt = ( + 'Need to rewind the stream {stream_object}, but stream ' + 'is not seekable.' + ) + + +class WaiterError(BotoCoreError): + """Waiter failed to reach desired state.""" + + fmt = 'Waiter {name} failed: {reason}' + + def __init__(self, name, reason, last_response): + super().__init__(name=name, reason=reason) + self.last_response = last_response + + +class IncompleteReadError(BotoCoreError): + """HTTP response did not return expected number of bytes.""" + + fmt = '{actual_bytes} read, but total bytes expected is {expected_bytes}.' + + +class InvalidExpressionError(BotoCoreError): + """Expression is either invalid or too complex.""" + + fmt = 'Invalid expression {expression}: Only dotted lookups are supported.' + + +class UnknownCredentialError(BotoCoreError): + """Tried to insert before/after an unregistered credential type.""" + + fmt = 'Credential named {name} not found.' + + +class WaiterConfigError(BotoCoreError): + """Error when processing waiter configuration.""" + + fmt = 'Error processing waiter config: {error_msg}' + + +class UnknownClientMethodError(BotoCoreError): + """Error when trying to access a method on a client that does not exist.""" + + fmt = 'Client does not have method: {method_name}' + + +class UnsupportedSignatureVersionError(BotoCoreError): + """Error when trying to use an unsupported Signature Version.""" + + fmt = 'Signature version(s) are not supported: {signature_version}' + + +class ClientError(Exception): + MSG_TEMPLATE = ( + 'An error occurred ({error_code}) when calling the {operation_name} ' + 'operation{retry_info}: {error_message}' + ) + + def __init__(self, error_response, operation_name): + retry_info = self._get_retry_info(error_response) + error = error_response.get('Error', {}) + msg = self.MSG_TEMPLATE.format( + error_code=error.get('Code', 'Unknown'), + error_message=error.get('Message', 'Unknown'), + operation_name=operation_name, + retry_info=retry_info, + ) + super().__init__(msg) + self.response = error_response + self.operation_name = operation_name + + def _get_retry_info(self, response): + retry_info = '' + if 'ResponseMetadata' in response: + metadata = response['ResponseMetadata'] + if metadata.get('MaxAttemptsReached', False): + if 'RetryAttempts' in metadata: + retry_info = ( + f" (reached max retries: {metadata['RetryAttempts']})" + ) + return retry_info + + def __reduce__(self): + # Subclasses of ClientError's are dynamically generated and + # cannot be pickled unless they are attributes of a + # module. So at the very least return a ClientError back. + return ClientError, (self.response, self.operation_name) + + +class EventStreamError(ClientError): + pass + + +class UnsupportedTLSVersionWarning(Warning): + """Warn when an openssl version that uses TLS 1.2 is required""" + + pass + + +class ImminentRemovalWarning(Warning): + pass + + +class InvalidDNSNameError(BotoCoreError): + """Error when virtual host path is forced on a non-DNS compatible bucket""" + + fmt = ( + 'Bucket named {bucket_name} is not DNS compatible. Virtual ' + 'hosted-style addressing cannot be used. The addressing style ' + 'can be configured by removing the addressing_style value ' + 'or setting that value to \'path\' or \'auto\' in the AWS Config ' + 'file or in the botocore.client.Config object.' + ) + + +class InvalidS3AddressingStyleError(BotoCoreError): + """Error when an invalid path style is specified""" + + fmt = ( + 'S3 addressing style {s3_addressing_style} is invalid. Valid options ' + 'are: \'auto\', \'virtual\', and \'path\'' + ) + + +class UnsupportedS3ArnError(BotoCoreError): + """Error when S3 ARN provided to Bucket parameter is not supported""" + + fmt = ( + 'S3 ARN {arn} provided to "Bucket" parameter is invalid. Only ' + 'ARNs for S3 access-points are supported.' + ) + + +class UnsupportedS3ControlArnError(BotoCoreError): + """Error when S3 ARN provided to S3 control parameter is not supported""" + + fmt = 'S3 ARN "{arn}" provided is invalid for this operation. {msg}' + + +class InvalidHostLabelError(BotoCoreError): + """Error when an invalid host label would be bound to an endpoint""" + + fmt = ( + 'Invalid host label to be bound to the hostname of the endpoint: ' + '"{label}".' + ) + + +class UnsupportedOutpostResourceError(BotoCoreError): + """Error when S3 Outpost ARN provided to Bucket parameter is incomplete""" + + fmt = ( + 'S3 Outpost ARN resource "{resource_name}" provided to "Bucket" ' + 'parameter is invalid. Only ARNs for S3 Outpost arns with an ' + 'access-point sub-resource are supported.' + ) + + +class UnsupportedS3ConfigurationError(BotoCoreError): + """Error when an unsupported configuration is used with access-points""" + + fmt = 'Unsupported configuration when using S3: {msg}' + + +class UnsupportedS3AccesspointConfigurationError(BotoCoreError): + """Error when an unsupported configuration is used with access-points""" + + fmt = 'Unsupported configuration when using S3 access-points: {msg}' + + +class InvalidEndpointDiscoveryConfigurationError(BotoCoreError): + """Error when invalid value supplied for endpoint_discovery_enabled""" + + fmt = ( + 'Unsupported configuration value for endpoint_discovery_enabled. ' + 'Expected one of ("true", "false", "auto") but got {config_value}.' + ) + + +class UnsupportedS3ControlConfigurationError(BotoCoreError): + """Error when an unsupported configuration is used with S3 Control""" + + fmt = 'Unsupported configuration when using S3 Control: {msg}' + + +class InvalidRetryConfigurationError(BotoCoreError): + """Error when invalid retry configuration is specified""" + + fmt = ( + 'Cannot provide retry configuration for "{retry_config_option}". ' + 'Valid retry configuration options are: {valid_options}' + ) + + +class InvalidMaxRetryAttemptsError(InvalidRetryConfigurationError): + """Error when invalid retry configuration is specified""" + + fmt = ( + 'Value provided to "max_attempts": {provided_max_attempts} must ' + 'be an integer greater than or equal to {min_value}.' + ) + + +class InvalidRetryModeError(InvalidRetryConfigurationError): + """Error when invalid retry mode configuration is specified""" + + fmt = ( + 'Invalid value provided to "mode": "{provided_retry_mode}" must ' + 'be one of: {valid_modes}' + ) + + +class InvalidS3UsEast1RegionalEndpointConfigError(BotoCoreError): + """Error for invalid s3 us-east-1 regional endpoints configuration""" + + fmt = ( + 'S3 us-east-1 regional endpoint option ' + '{s3_us_east_1_regional_endpoint_config} is ' + 'invalid. Valid options are: "legacy", "regional"' + ) + + +class InvalidSTSRegionalEndpointsConfigError(BotoCoreError): + """Error when invalid sts regional endpoints configuration is specified""" + + fmt = ( + 'STS regional endpoints option {sts_regional_endpoints_config} is ' + 'invalid. Valid options are: "legacy", "regional"' + ) + + +class StubResponseError(BotoCoreError): + fmt = ( + 'Error getting response stub for operation {operation_name}: {reason}' + ) + + +class StubAssertionError(StubResponseError, AssertionError): + pass + + +class UnStubbedResponseError(StubResponseError): + pass + + +class InvalidConfigError(BotoCoreError): + fmt = '{error_msg}' + + +class InfiniteLoopConfigError(InvalidConfigError): + fmt = ( + 'Infinite loop in credential configuration detected. Attempting to ' + 'load from profile {source_profile} which has already been visited. ' + 'Visited profiles: {visited_profiles}' + ) + + +class RefreshWithMFAUnsupportedError(BotoCoreError): + fmt = 'Cannot refresh credentials: MFA token required.' + + +class MD5UnavailableError(BotoCoreError): + fmt = "This system does not support MD5 generation." + + +class MissingDependencyException(BotoCoreError): + fmt = "Missing Dependency: {msg}" + + +class MetadataRetrievalError(BotoCoreError): + fmt = "Error retrieving metadata: {error_msg}" + + +class UndefinedModelAttributeError(Exception): + pass + + +class MissingServiceIdError(UndefinedModelAttributeError): + fmt = ( + "The model being used for the service {service_name} is missing the " + "serviceId metadata property, which is required." + ) + + def __init__(self, **kwargs): + msg = self.fmt.format(**kwargs) + Exception.__init__(self, msg) + self.kwargs = kwargs + + +class SSOError(BotoCoreError): + fmt = ( + "An unspecified error happened when resolving AWS credentials or an " + "access token from SSO." + ) + + +class SSOTokenLoadError(SSOError): + fmt = "Error loading SSO Token: {error_msg}" + + +class UnauthorizedSSOTokenError(SSOError): + fmt = ( + "The SSO session associated with this profile has expired or is " + "otherwise invalid. To refresh this SSO session run aws sso login " + "with the corresponding profile." + ) + + +class LoginError(BotoCoreError): + fmt = ( + "An unspecified error happened when resolving AWS credentials or " + "refreshing a login session profile." + ) + + +class LoginRefreshRequired(LoginError): + fmt = "Your session has expired or credentials have changed. Please reauthenticate using 'aws login'." + + +class LoginInsufficientPermissions(LoginError): + fmt = ( + "Unable to create or refresh login credentials due to insufficient " + "permissions. You may be missing permission for the 'signin:CreateOAuth2Token' action." + ) + + +class LoginTokenLoadError(LoginError): + fmt = "Error loading login session token: {error_msg}" + + +class LoginAuthorizationCodeError(LoginError): + fmt = "Error loading or redeeming a login authorization code: {error_msg} " + + +class CapacityNotAvailableError(BotoCoreError): + fmt = 'Insufficient request capacity available.' + + +class InvalidProxiesConfigError(BotoCoreError): + fmt = 'Invalid configuration value(s) provided for proxies_config.' + + +class InvalidDefaultsMode(BotoCoreError): + fmt = ( + 'Client configured with invalid defaults mode: {mode}. ' + 'Valid defaults modes include: {valid_modes}.' + ) + + +class AwsChunkedWrapperError(BotoCoreError): + fmt = '{error_msg}' + + +class FlexibleChecksumError(BotoCoreError): + fmt = '{error_msg}' + + +class InvalidEndpointConfigurationError(BotoCoreError): + fmt = 'Invalid endpoint configuration: {msg}' + + +class EndpointProviderError(BotoCoreError): + """Base error for the EndpointProvider class""" + + fmt = '{msg}' + + +class EndpointResolutionError(EndpointProviderError): + """Error when input parameters resolve to an error rule""" + + fmt = '{msg}' + + +class UnknownEndpointResolutionBuiltInName(EndpointProviderError): + fmt = 'Unknown builtin variable name: {name}' + + +class InvalidChecksumConfigError(BotoCoreError): + """Error when an invalid checksum config value is supplied.""" + + fmt = ( + 'Unsupported configuration value for {config_key}. ' + 'Expected one of {valid_options} but got {config_value}.' + ) + + +class UnsupportedServiceProtocolsError(BotoCoreError): + """Error when a service does not use any protocol supported by botocore.""" + + fmt = ( + 'Botocore supports {botocore_supported_protocols}, but service {service} only ' + 'supports {service_supported_protocols}.' + ) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/handlers.py b/rep_localstack/lib/python3.12/site-packages/botocore/handlers.py new file mode 100644 index 000000000..473c314fe --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/handlers.py @@ -0,0 +1,1772 @@ +# Copyright 2012-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +"""Builtin event handlers. + +This module contains builtin handlers for events emitted by botocore. +""" + +import base64 +import copy +import logging +import os +import re +import uuid +import warnings +from io import BytesIO + +import botocore +import botocore.auth +from botocore import ( + retryhandler, # noqa: F401 + translate, # noqa: F401 + utils, +) +from botocore.args import ClientConfigString +from botocore.compat import ( + MD5_AVAILABLE, # noqa: F401 + ETree, + OrderedDict, + XMLParseError, + ensure_bytes, + get_md5, + json, + quote, + unquote, + unquote_str, + urlsplit, + urlunsplit, +) +from botocore.docs.utils import ( + AppendParamDocumentation, + AutoPopulatedParam, + HideParamFromOperations, +) +from botocore.endpoint_provider import VALID_HOST_LABEL_RE +from botocore.exceptions import ( + AliasConflictParameterError, + MissingServiceIdError, # noqa: F401 + ParamValidationError, + UnsupportedTLSVersionWarning, +) +from botocore.regions import EndpointResolverBuiltins +from botocore.serialize import TIMESTAMP_PRECISION_MILLISECOND +from botocore.signers import ( + add_dsql_generate_db_auth_token_methods, + add_generate_db_auth_token, + add_generate_presigned_post, + add_generate_presigned_url, +) +from botocore.useragent import register_feature_id +from botocore.utils import ( + SAFE_CHARS, + SERVICE_NAME_ALIASES, # noqa: F401 + ArnParser, + get_token_from_environment, + hyphenize_service_id, # noqa: F401 + is_global_accesspoint, # noqa: F401 + percent_encode, + switch_host_with_param, +) + +logger = logging.getLogger(__name__) + +REGISTER_FIRST = object() +REGISTER_LAST = object() +# From the S3 docs: +# The rules for bucket names in the US Standard region allow bucket names +# to be as long as 255 characters, and bucket names can contain any +# combination of uppercase letters, lowercase letters, numbers, periods +# (.), hyphens (-), and underscores (_). +VALID_BUCKET = re.compile(r'^[a-zA-Z0-9.\-_]{1,255}$') +_ACCESSPOINT_ARN = ( + r'^arn:(aws).*:(s3|s3-object-lambda):[a-z\-0-9]*:[0-9]{12}:accesspoint[/:]' + r'[a-zA-Z0-9\-.]{1,63}$' +) +_OUTPOST_ARN = ( + r'^arn:(aws).*:s3-outposts:[a-z\-0-9]+:[0-9]{12}:outpost[/:]' + r'[a-zA-Z0-9\-]{1,63}[/:]accesspoint[/:][a-zA-Z0-9\-]{1,63}$' +) +VALID_S3_ARN = re.compile('|'.join([_ACCESSPOINT_ARN, _OUTPOST_ARN])) +# signing names used for the services s3 and s3-control, for example in +# botocore/data/s3/2006-03-01/endpoints-rule-set-1.json +S3_SIGNING_NAMES = ('s3', 's3-outposts', 's3-object-lambda', 's3express') +VERSION_ID_SUFFIX = re.compile(r'\?versionId=[^\s]+$') + + +def handle_service_name_alias(service_name, **kwargs): + return SERVICE_NAME_ALIASES.get(service_name, service_name) + + +def add_recursion_detection_header(params, **kwargs): + has_lambda_name = 'AWS_LAMBDA_FUNCTION_NAME' in os.environ + trace_id = os.environ.get('_X_AMZN_TRACE_ID') + if has_lambda_name and trace_id: + headers = params['headers'] + if 'X-Amzn-Trace-Id' not in headers: + headers['X-Amzn-Trace-Id'] = quote(trace_id, safe='-=;:+&[]{}"\',') + + +def escape_xml_payload(params, **kwargs): + # Replace \r and \n with the escaped sequence over the whole XML document + # to avoid linebreak normalization modifying customer input when the + # document is parsed. Ideally, we would do this in ElementTree.tostring, + # but it doesn't allow us to override entity escaping for text fields. For + # this operation \r and \n can only appear in the XML document if they were + # passed as part of the customer input. + body = params['body'] + if b'\r' in body: + body = body.replace(b'\r', b' ') + if b'\n' in body: + body = body.replace(b'\n', b' ') + + params['body'] = body + + +def check_for_200_error(response, **kwargs): + """This function has been deprecated, but is kept for backwards compatibility.""" + # From: http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html + # There are two opportunities for a copy request to return an error. One + # can occur when Amazon S3 receives the copy request and the other can + # occur while Amazon S3 is copying the files. If the error occurs before + # the copy operation starts, you receive a standard Amazon S3 error. If the + # error occurs during the copy operation, the error response is embedded in + # the 200 OK response. This means that a 200 OK response can contain either + # a success or an error. Make sure to design your application to parse the + # contents of the response and handle it appropriately. + # + # So this handler checks for this case. Even though the server sends a + # 200 response, conceptually this should be handled exactly like a + # 500 response (with respect to raising exceptions, retries, etc.) + # We're connected *before* all the other retry logic handlers, so as long + # as we switch the error code to 500, we'll retry the error as expected. + if response is None: + # A None response can happen if an exception is raised while + # trying to retrieve the response. See Endpoint._get_response(). + return + http_response, parsed = response + if _looks_like_special_case_error( + http_response.status_code, http_response.content + ): + logger.debug( + "Error found for response with 200 status code, " + "errors: %s, changing status code to " + "500.", + parsed, + ) + http_response.status_code = 500 + + +def _looks_like_special_case_error(status_code, body): + if status_code == 200 and body: + try: + parser = ETree.XMLParser( + target=ETree.TreeBuilder(), encoding='utf-8' + ) + parser.feed(body) + root = parser.close() + except XMLParseError: + # In cases of network disruptions, we may end up with a partial + # streamed response from S3. We need to treat these cases as + # 500 Service Errors and try again. + return True + if root.tag == 'Error': + return True + return False + + +def set_operation_specific_signer(context, signing_name, **kwargs): + """Choose the operation-specific signer. + + Individual operations may have a different auth type than the service as a + whole. This will most often manifest as operations that should not be + authenticated at all, but can include other auth modes such as sigv4 + without body signing. + """ + auth_type = context.get('auth_type') + + # Auth type will be None if the operation doesn't have a configured auth + # type. + if not auth_type: + return + + # Auth type will be the string value 'none' if the operation should not + # be signed at all. + if auth_type == 'none': + return botocore.UNSIGNED + + if auth_type == 'bearer': + return 'bearer' + + # If the operation needs an unsigned body, we set additional context + # allowing the signer to be aware of this. + if context.get('unsigned_payload') or auth_type == 'v4-unsigned-body': + context['payload_signing_enabled'] = False + + if auth_type.startswith('v4'): + if auth_type == 'v4-s3express': + return auth_type + + if auth_type == 'v4a': + _set_sigv4a_signing_context(context, signing_name) + signature_version = 'v4a' + else: + signature_version = 'v4' + + # Signing names used by s3 and s3-control use customized signers "s3v4" + # and "s3v4a". + if signing_name in S3_SIGNING_NAMES: + signature_version = f's3{signature_version}' + + return signature_version + + +def _handle_sqs_compatible_error(parsed, context, **kwargs): + """ + Ensures backward compatibility for SQS errors. + + SQS's migration from the Query protocol to JSON was done prior to SDKs allowing a + service to support multiple protocols. Because of this, SQS is missing the "error" + key from its modeled exceptions, which is used by most query compatible services + to map error codes to the proper exception. Instead, SQS uses the error's shape name, + which is preserved in the QueryErrorCode key. + """ + parsed_error = parsed.get("Error", {}) + if not parsed_error: + return + + if query_code := parsed_error.get("QueryErrorCode"): + context['error_code_override'] = query_code + + +def _resolve_sigv4a_region(context): + region = None + if 'client_config' in context: + region = context['client_config'].sigv4a_signing_region_set + if not region and context.get('signing', {}).get('region'): + region = context['signing']['region'] + return region or '*' + + +def _set_sigv4a_signing_context(context, signing_name): + # SigV4A signs for a region set rather than a single credential scope + # region, so ensure the request context reflects the configured region set. + region = _resolve_sigv4a_region(context) + signing = {'region': region, 'signing_name': signing_name} + if 'signing' in context: + context['signing'].update(signing) + else: + context['signing'] = signing + + +def decode_console_output(parsed, **kwargs): + if 'Output' in parsed: + try: + # We're using 'replace' for errors because it is + # possible that console output contains non string + # chars we can't utf-8 decode. + value = base64.b64decode( + bytes(parsed['Output'], 'latin-1') + ).decode('utf-8', 'replace') + parsed['Output'] = value + except (ValueError, TypeError, AttributeError): + logger.debug('Error decoding base64', exc_info=True) + + +def generate_idempotent_uuid(params, model, **kwargs): + for name in model.idempotent_members: + if name not in params: + params[name] = str(uuid.uuid4()) + logger.debug( + "injecting idempotency token (%s) into param '%s'.", + params[name], + name, + ) + + +def decode_quoted_jsondoc(value): + try: + value = json.loads(unquote(value)) + except (ValueError, TypeError): + logger.debug('Error loading quoted JSON', exc_info=True) + return value + + +def json_decode_template_body(parsed, **kwargs): + if 'TemplateBody' in parsed: + try: + value = json.loads( + parsed['TemplateBody'], object_pairs_hook=OrderedDict + ) + parsed['TemplateBody'] = value + except (ValueError, TypeError): + logger.debug('error loading JSON', exc_info=True) + + +def validate_bucket_name(params, **kwargs): + if 'Bucket' not in params: + return + bucket = params['Bucket'] + if not VALID_BUCKET.search(bucket) and not VALID_S3_ARN.search(bucket): + error_msg = ( + f'Invalid bucket name "{bucket}": Bucket name must match ' + f'the regex "{VALID_BUCKET.pattern}" or be an ARN matching ' + f'the regex "{VALID_S3_ARN.pattern}"' + ) + raise ParamValidationError(report=error_msg) + + +def sse_md5(params, **kwargs): + """ + S3 server-side encryption requires the encryption key to be sent to the + server base64 encoded, as well as a base64-encoded MD5 hash of the + encryption key. This handler does both if the MD5 has not been set by + the caller. + """ + _sse_md5(params, 'SSECustomer') + + +def copy_source_sse_md5(params, **kwargs): + """ + S3 server-side encryption requires the encryption key to be sent to the + server base64 encoded, as well as a base64-encoded MD5 hash of the + encryption key. This handler does both if the MD5 has not been set by + the caller specifically if the parameter is for the copy-source sse-c key. + """ + _sse_md5(params, 'CopySourceSSECustomer') + + +def _sse_md5(params, sse_member_prefix='SSECustomer'): + if not _needs_s3_sse_customization(params, sse_member_prefix): + return + + sse_key_member = sse_member_prefix + 'Key' + sse_md5_member = sse_member_prefix + 'KeyMD5' + key_as_bytes = params[sse_key_member] + if isinstance(key_as_bytes, str): + key_as_bytes = key_as_bytes.encode('utf-8') + md5_val = get_md5(key_as_bytes, usedforsecurity=False).digest() + key_md5_str = base64.b64encode(md5_val).decode('utf-8') + key_b64_encoded = base64.b64encode(key_as_bytes).decode('utf-8') + params[sse_key_member] = key_b64_encoded + params[sse_md5_member] = key_md5_str + + +def _needs_s3_sse_customization(params, sse_member_prefix): + return ( + params.get(sse_member_prefix + 'Key') is not None + and sse_member_prefix + 'KeyMD5' not in params + ) + + +def disable_signing(**kwargs): + """ + This handler disables request signing by setting the signer + name to a special sentinel value. + """ + return botocore.UNSIGNED + + +def add_expect_header(model, params, **kwargs): + if model.http.get('method', '') not in ['PUT', 'POST']: + return + if 'body' in params: + body = params['body'] + if hasattr(body, 'read'): + check_body = utils.ensure_boolean( + os.environ.get( + 'BOTO_EXPERIMENTAL__NO_EMPTY_CONTINUE', + False, + ) + ) + if check_body and utils.determine_content_length(body) == 0: + return + # Any file like object will use an expect 100-continue + # header regardless of size. + logger.debug("Adding expect 100 continue header to request.") + params['headers']['Expect'] = '100-continue' + + +class DeprecatedServiceDocumenter: + def __init__(self, replacement_service_name): + self._replacement_service_name = replacement_service_name + + def inject_deprecation_notice(self, section, event_name, **kwargs): + section.style.start_important() + section.write('This service client is deprecated. Please use ') + section.style.ref( + self._replacement_service_name, + self._replacement_service_name, + ) + section.write(' instead.') + section.style.end_important() + + +def document_copy_source_form(section, event_name, **kwargs): + if 'request-example' in event_name: + parent = section.get_section('structure-value') + param_line = parent.get_section('CopySource') + value_portion = param_line.get_section('member-value') + value_portion.clear_text() + value_portion.write( + "'string' or {'Bucket': 'string', " + "'Key': 'string', 'VersionId': 'string'}" + ) + elif 'request-params' in event_name: + param_section = section.get_section('CopySource') + type_section = param_section.get_section('param-type') + type_section.clear_text() + type_section.write(':type CopySource: str or dict') + doc_section = param_section.get_section('param-documentation') + doc_section.clear_text() + doc_section.write( + "The name of the source bucket, key name of the source object, " + "and optional version ID of the source object. You can either " + "provide this value as a string or a dictionary. The " + "string form is {bucket}/{key} or " + "{bucket}/{key}?versionId={versionId} if you want to copy a " + "specific version. You can also provide this value as a " + "dictionary. The dictionary format is recommended over " + "the string format because it is more explicit. The dictionary " + "format is: {'Bucket': 'bucket', 'Key': 'key', 'VersionId': 'id'}." + " Note that the VersionId key is optional and may be omitted." + " To specify an S3 access point, provide the access point" + " ARN for the ``Bucket`` key in the copy source dictionary. If you" + " want to provide the copy source for an S3 access point as a" + " string instead of a dictionary, the ARN provided must be the" + " full S3 access point object ARN" + " (i.e. {accesspoint_arn}/object/{key})" + ) + + +def handle_copy_source_param(params, **kwargs): + """Convert CopySource param for CopyObject/UploadPartCopy. + + This handler will deal with two cases: + + * CopySource provided as a string. We'll make a best effort + to URL encode the key name as required. This will require + parsing the bucket and version id from the CopySource value + and only encoding the key. + * CopySource provided as a dict. In this case we're + explicitly given the Bucket, Key, and VersionId so we're + able to encode the key and ensure this value is serialized + and correctly sent to S3. + + """ + source = params.get('CopySource') + if source is None: + # The call will eventually fail but we'll let the + # param validator take care of this. It will + # give a better error message. + return + if isinstance(source, str): + params['CopySource'] = _quote_source_header(source) + elif isinstance(source, dict): + params['CopySource'] = _quote_source_header_from_dict(source) + + +def _quote_source_header_from_dict(source_dict): + try: + bucket = source_dict['Bucket'] + key = source_dict['Key'] + version_id = source_dict.get('VersionId') + if VALID_S3_ARN.search(bucket): + final = f'{bucket}/object/{key}' + else: + final = f'{bucket}/{key}' + except KeyError as e: + raise ParamValidationError( + report=f'Missing required parameter: {str(e)}' + ) + final = percent_encode(final, safe=SAFE_CHARS + '/') + if version_id is not None: + final += f'?versionId={version_id}' + return final + + +def _quote_source_header(value): + result = VERSION_ID_SUFFIX.search(value) + if result is None: + return percent_encode(value, safe=SAFE_CHARS + '/') + else: + first, version_id = value[: result.start()], value[result.start() :] + return percent_encode(first, safe=SAFE_CHARS + '/') + version_id + + +def _get_cross_region_presigned_url( + request_signer, request_dict, model, source_region, destination_region +): + # The better way to do this is to actually get the + # endpoint_resolver and get the endpoint_url given the + # source region. In this specific case, we know that + # we can safely replace the dest region with the source + # region because of the supported EC2 regions, but in + # general this is not a safe assumption to make. + # I think eventually we should try to plumb through something + # that allows us to resolve endpoints from regions. + request_dict_copy = copy.deepcopy(request_dict) + request_dict_copy['body']['DestinationRegion'] = destination_region + request_dict_copy['url'] = request_dict['url'].replace( + destination_region, source_region + ) + request_dict_copy['method'] = 'GET' + request_dict_copy['headers'] = {} + return request_signer.generate_presigned_url( + request_dict_copy, region_name=source_region, operation_name=model.name + ) + + +def _get_presigned_url_source_and_destination_regions(request_signer, params): + # Gets the source and destination regions to be used + destination_region = request_signer._region_name + source_region = params.get('SourceRegion') + return source_region, destination_region + + +def inject_presigned_url_ec2(params, request_signer, model, **kwargs): + # The customer can still provide this, so we should pass if they do. + if 'PresignedUrl' in params['body']: + return + src, dest = _get_presigned_url_source_and_destination_regions( + request_signer, params['body'] + ) + url = _get_cross_region_presigned_url( + request_signer, params, model, src, dest + ) + params['body']['PresignedUrl'] = url + # EC2 Requires that the destination region be sent over the wire in + # addition to the source region. + params['body']['DestinationRegion'] = dest + + +def inject_presigned_url_rds(params, request_signer, model, **kwargs): + # SourceRegion is not required for RDS operations, so it's possible that + # it isn't set. In that case it's probably a local copy so we don't need + # to do anything else. + if 'SourceRegion' not in params['body']: + return + + src, dest = _get_presigned_url_source_and_destination_regions( + request_signer, params['body'] + ) + + # Since SourceRegion isn't actually modeled for RDS, it needs to be + # removed from the request params before we send the actual request. + del params['body']['SourceRegion'] + + if 'PreSignedUrl' in params['body']: + return + + url = _get_cross_region_presigned_url( + request_signer, params, model, src, dest + ) + params['body']['PreSignedUrl'] = url + + +def json_decode_policies(parsed, model, **kwargs): + # Any time an IAM operation returns a policy document + # it is a string that is json that has been urlencoded, + # i.e urlencode(json.dumps(policy_document)). + # To give users something more useful, we will urldecode + # this value and json.loads() the result so that they have + # the policy document as a dictionary. + output_shape = model.output_shape + if output_shape is not None: + _decode_policy_types(parsed, model.output_shape) + + +def _decode_policy_types(parsed, shape): + # IAM consistently uses the policyDocumentType shape to indicate + # strings that have policy documents. + shape_name = 'policyDocumentType' + if shape.type_name == 'structure': + for member_name, member_shape in shape.members.items(): + if ( + member_shape.type_name == 'string' + and member_shape.name == shape_name + and member_name in parsed + ): + parsed[member_name] = decode_quoted_jsondoc( + parsed[member_name] + ) + elif member_name in parsed: + _decode_policy_types(parsed[member_name], member_shape) + if shape.type_name == 'list': + shape_member = shape.member + for item in parsed: + _decode_policy_types(item, shape_member) + + +def parse_get_bucket_location(parsed, http_response, **kwargs): + # s3.GetBucketLocation cannot be modeled properly. To + # account for this we just manually parse the XML document. + # The "parsed" passed in only has the ResponseMetadata + # filled out. This handler will fill in the LocationConstraint + # value. + if http_response.raw is None: + return + response_body = http_response.content + parser = ETree.XMLParser(target=ETree.TreeBuilder(), encoding='utf-8') + parser.feed(response_body) + root = parser.close() + region = root.text + parsed['LocationConstraint'] = region + + +def base64_encode_user_data(params, **kwargs): + if 'UserData' in params: + if isinstance(params['UserData'], str): + # Encode it to bytes if it is text. + params['UserData'] = params['UserData'].encode('utf-8') + params['UserData'] = base64.b64encode(params['UserData']).decode( + 'utf-8' + ) + + +def document_base64_encoding(param): + description = ( + '**This value will be base64 encoded automatically. Do ' + 'not base64 encode this value prior to performing the ' + 'operation.**' + ) + append = AppendParamDocumentation(param, description) + return append.append_documentation + + +def validate_ascii_metadata(params, **kwargs): + """Verify S3 Metadata only contains ascii characters. + + From: http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html + + "Amazon S3 stores user-defined metadata in lowercase. Each name, value pair + must conform to US-ASCII when using REST and UTF-8 when using SOAP or + browser-based uploads via POST." + + """ + metadata = params.get('Metadata') + if not metadata or not isinstance(metadata, dict): + # We have to at least type check the metadata as a dict type + # because this handler is called before param validation. + # We'll go ahead and return because the param validator will + # give a descriptive error message for us. + # We might need a post-param validation event. + return + for key, value in metadata.items(): + try: + key.encode('ascii') + value.encode('ascii') + except UnicodeEncodeError: + error_msg = ( + 'Non ascii characters found in S3 metadata ' + f'for key "{key}", value: "{value}". \nS3 metadata can only ' + 'contain ASCII characters. ' + ) + raise ParamValidationError(report=error_msg) + + +def fix_route53_ids(params, model, **kwargs): + """ + Check for and split apart Route53 resource IDs, setting + only the last piece. This allows the output of one operation + (e.g. ``'foo/1234'``) to be used as input in another + operation (e.g. it expects just ``'1234'``). + """ + input_shape = model.input_shape + if not input_shape or not hasattr(input_shape, 'members'): + return + + members = [ + name + for (name, shape) in input_shape.members.items() + if shape.name in ['ResourceId', 'DelegationSetId', 'ChangeId'] + ] + + for name in members: + if name in params: + orig_value = params[name] + params[name] = orig_value.split('/')[-1] + logger.debug('%s %s -> %s', name, orig_value, params[name]) + + +def inject_account_id(params, **kwargs): + if params.get('accountId') is None: + # Glacier requires accountId, but allows you + # to specify '-' for the current owners account. + # We add this default value if the user does not + # provide the accountId as a convenience. + params['accountId'] = '-' + + +def add_glacier_version(model, params, **kwargs): + request_dict = params + request_dict['headers']['x-amz-glacier-version'] = model.metadata[ + 'apiVersion' + ] + + +def add_accept_header(model, params, **kwargs): + if params['headers'].get('Accept', None) is None: + request_dict = params + request_dict['headers']['Accept'] = 'application/json' + + +def add_glacier_checksums(params, **kwargs): + """Add glacier checksums to the http request. + + This will add two headers to the http request: + + * x-amz-content-sha256 + * x-amz-sha256-tree-hash + + These values will only be added if they are not present + in the HTTP request. + + """ + request_dict = params + headers = request_dict['headers'] + body = request_dict['body'] + if isinstance(body, bytes): + # If the user provided a bytes type instead of a file + # like object, we're temporarily create a BytesIO object + # so we can use the util functions to calculate the + # checksums which assume file like objects. Note that + # we're not actually changing the body in the request_dict. + body = BytesIO(body) + starting_position = body.tell() + if 'x-amz-content-sha256' not in headers: + headers['x-amz-content-sha256'] = utils.calculate_sha256( + body, as_hex=True + ) + body.seek(starting_position) + if 'x-amz-sha256-tree-hash' not in headers: + headers['x-amz-sha256-tree-hash'] = utils.calculate_tree_hash(body) + body.seek(starting_position) + + +def document_glacier_tree_hash_checksum(): + doc = ''' + This is a required field. + + Ideally you will want to compute this value with checksums from + previous uploaded parts, using the algorithm described in + `Glacier documentation `_. + + But if you prefer, you can also use botocore.utils.calculate_tree_hash() + to compute it from raw file by:: + + checksum = calculate_tree_hash(open('your_file.txt', 'rb')) + + ''' + return AppendParamDocumentation('checksum', doc).append_documentation + + +def document_cloudformation_get_template_return_type( + section, event_name, **kwargs +): + if 'response-params' in event_name: + template_body_section = section.get_section('TemplateBody') + type_section = template_body_section.get_section('param-type') + type_section.clear_text() + type_section.write('(*dict*) --') + elif 'response-example' in event_name: + parent = section.get_section('structure-value') + param_line = parent.get_section('TemplateBody') + value_portion = param_line.get_section('member-value') + value_portion.clear_text() + value_portion.write('{}') + + +def switch_host_machinelearning(request, **kwargs): + switch_host_with_param(request, 'PredictEndpoint') + + +def check_openssl_supports_tls_version_1_2(**kwargs): + import ssl + + try: + openssl_version_tuple = ssl.OPENSSL_VERSION_INFO + if openssl_version_tuple < (1, 0, 1): + warnings.warn( + f'Currently installed openssl version: {ssl.OPENSSL_VERSION} does not ' + 'support TLS 1.2, which is required for use of iot-data. ' + 'Please use python installed with openssl version 1.0.1 or ' + 'higher.', + UnsupportedTLSVersionWarning, + ) + # We cannot check the openssl version on python2.6, so we should just + # pass on this conveniency check. + except AttributeError: + pass + + +def change_get_to_post(request, **kwargs): + # This is useful when we need to change a potentially large GET request + # into a POST with x-www-form-urlencoded encoding. + if request.method == 'GET' and '?' in request.url: + request.headers['Content-Type'] = 'application/x-www-form-urlencoded' + request.method = 'POST' + request.url, request.data = request.url.split('?', 1) + + +def set_list_objects_encoding_type_url(params, context, **kwargs): + if 'EncodingType' not in params: + # We set this context so that we know it wasn't the customer that + # requested the encoding. + context['encoding_type_auto_set'] = True + params['EncodingType'] = 'url' + + +def decode_list_object(parsed, context, **kwargs): + # This is needed because we are passing url as the encoding type. Since the + # paginator is based on the key, we need to handle it before it can be + # round tripped. + # + # From the documentation: If you specify encoding-type request parameter, + # Amazon S3 includes this element in the response, and returns encoded key + # name values in the following response elements: + # Delimiter, Marker, Prefix, NextMarker, Key. + _decode_list_object( + top_level_keys=['Delimiter', 'Marker', 'NextMarker'], + nested_keys=[('Contents', 'Key'), ('CommonPrefixes', 'Prefix')], + parsed=parsed, + context=context, + ) + + +def decode_list_object_v2(parsed, context, **kwargs): + # From the documentation: If you specify encoding-type request parameter, + # Amazon S3 includes this element in the response, and returns encoded key + # name values in the following response elements: + # Delimiter, Prefix, ContinuationToken, Key, and StartAfter. + _decode_list_object( + top_level_keys=['Delimiter', 'Prefix', 'StartAfter'], + nested_keys=[('Contents', 'Key'), ('CommonPrefixes', 'Prefix')], + parsed=parsed, + context=context, + ) + + +def decode_list_object_versions(parsed, context, **kwargs): + # From the documentation: If you specify encoding-type request parameter, + # Amazon S3 includes this element in the response, and returns encoded key + # name values in the following response elements: + # KeyMarker, NextKeyMarker, Prefix, Key, and Delimiter. + _decode_list_object( + top_level_keys=[ + 'KeyMarker', + 'NextKeyMarker', + 'Prefix', + 'Delimiter', + ], + nested_keys=[ + ('Versions', 'Key'), + ('DeleteMarkers', 'Key'), + ('CommonPrefixes', 'Prefix'), + ], + parsed=parsed, + context=context, + ) + + +def _decode_list_object(top_level_keys, nested_keys, parsed, context): + if parsed.get('EncodingType') == 'url' and context.get( + 'encoding_type_auto_set' + ): + # URL decode top-level keys in the response if present. + for key in top_level_keys: + if key in parsed: + parsed[key] = unquote_str(parsed[key]) + # URL decode nested keys from the response if present. + for top_key, child_key in nested_keys: + if top_key in parsed: + for member in parsed[top_key]: + member[child_key] = unquote_str(member[child_key]) + + +def convert_body_to_file_like_object(params, **kwargs): + if 'Body' in params: + if isinstance(params['Body'], str): + params['Body'] = BytesIO(ensure_bytes(params['Body'])) + elif isinstance(params['Body'], bytes): + params['Body'] = BytesIO(params['Body']) + + +def _add_parameter_aliases(handler_list): + # Mapping of original parameter to parameter alias. + # The key is ..parameter + # The first part of the key is used for event registration. + # The last part is the original parameter name and the value is the + # alias to expose in documentation. + aliases = { + 'ec2.*.Filter': 'Filters', + 'logs.CreateExportTask.from': 'fromTime', + 'cloudsearchdomain.Search.return': 'returnFields', + } + + for original, new_name in aliases.items(): + event_portion, original_name = original.rsplit('.', 1) + parameter_alias = ParameterAlias(original_name, new_name) + + # Add the handlers to the list of handlers. + # One handler is to handle when users provide the alias. + # The other handler is to update the documentation to show only + # the alias. + parameter_build_event_handler_tuple = ( + 'before-parameter-build.' + event_portion, + parameter_alias.alias_parameter_in_call, + REGISTER_FIRST, + ) + docs_event_handler_tuple = ( + 'docs.*.' + event_portion + '.complete-section', + parameter_alias.alias_parameter_in_documentation, + ) + handler_list.append(parameter_build_event_handler_tuple) + handler_list.append(docs_event_handler_tuple) + + +class ParameterAlias: + def __init__(self, original_name, alias_name): + self._original_name = original_name + self._alias_name = alias_name + + def alias_parameter_in_call(self, params, model, **kwargs): + if model.input_shape: + # Only consider accepting the alias if it is modeled in the + # input shape. + if self._original_name in model.input_shape.members: + if self._alias_name in params: + if self._original_name in params: + raise AliasConflictParameterError( + original=self._original_name, + alias=self._alias_name, + operation=model.name, + ) + # Remove the alias parameter value and use the old name + # instead. + params[self._original_name] = params.pop(self._alias_name) + + def alias_parameter_in_documentation(self, event_name, section, **kwargs): + if event_name.startswith('docs.request-params'): + if self._original_name not in section.available_sections: + return + # Replace the name for parameter type + param_section = section.get_section(self._original_name) + param_type_section = param_section.get_section('param-type') + self._replace_content(param_type_section) + + # Replace the name for the parameter description + param_name_section = param_section.get_section('param-name') + self._replace_content(param_name_section) + elif event_name.startswith('docs.request-example'): + section = section.get_section('structure-value') + if self._original_name not in section.available_sections: + return + # Replace the name for the example + param_section = section.get_section(self._original_name) + self._replace_content(param_section) + + def _replace_content(self, section): + content = section.getvalue().decode('utf-8') + updated_content = content.replace( + self._original_name, self._alias_name + ) + section.clear_text() + section.write(updated_content) + + +class ClientMethodAlias: + def __init__(self, actual_name): + """Aliases a non-extant method to an existing method. + + :param actual_name: The name of the method that actually exists on + the client. + """ + self._actual = actual_name + + def __call__(self, client, **kwargs): + return getattr(client, self._actual) + + +# TODO: Remove this class as it is no longer used +class HeaderToHostHoister: + """Takes a header and moves it to the front of the hoststring.""" + + _VALID_HOSTNAME = re.compile(r'(?!-)[a-z\d-]{1,63}(? 1 and ArnParser.is_arn( + unquote(auth_path_parts[1]) + ): + request.auth_path = '/'.join(['', *auth_path_parts[2:]]) + + +def customize_endpoint_resolver_builtins( + builtins, model, params, context, **kwargs +): + """Modify builtin parameter values for endpoint resolver + + Modifies the builtins dict in place. Changes are in effect for one call. + The corresponding event is emitted only if at least one builtin parameter + value is required for endpoint resolution for the operation. + """ + bucket_name = params.get('Bucket') + bucket_is_arn = bucket_name is not None and ArnParser.is_arn(bucket_name) + # In some situations the host will return AuthorizationHeaderMalformed + # when the signing region of a sigv4 request is not the bucket's + # region (which is likely unknown by the user of GetBucketLocation). + # Avoid this by always using path-style addressing. + if model.name == 'GetBucketLocation': + builtins[EndpointResolverBuiltins.AWS_S3_FORCE_PATH_STYLE] = True + # All situations where the bucket name is an ARN are not compatible + # with path style addressing. + elif bucket_is_arn: + builtins[EndpointResolverBuiltins.AWS_S3_FORCE_PATH_STYLE] = False + + # Bucket names that are invalid host labels require path-style addressing. + # If path-style addressing was specifically requested, the default builtin + # value is already set. + path_style_required = ( + bucket_name is not None and not VALID_HOST_LABEL_RE.match(bucket_name) + ) + path_style_requested = builtins[ + EndpointResolverBuiltins.AWS_S3_FORCE_PATH_STYLE + ] + + # Path-style addressing is incompatible with the global endpoint for + # presigned URLs. If the bucket name is an ARN, the ARN's region should be + # used in the endpoint. + if ( + context.get('use_global_endpoint') + and not path_style_required + and not path_style_requested + and not bucket_is_arn + and not utils.is_s3express_bucket(bucket_name) + ): + builtins[EndpointResolverBuiltins.AWS_REGION] = 'aws-global' + builtins[EndpointResolverBuiltins.AWS_S3_USE_GLOBAL_ENDPOINT] = True + + +def remove_content_type_header_for_presigning(request, **kwargs): + if ( + request.context.get('is_presign_request') is True + and 'Content-Type' in request.headers + ): + del request.headers['Content-Type'] + + +def handle_expires_header( + operation_model, response_dict, customized_response_dict, **kwargs +): + if _has_expires_shape(operation_model.output_shape): + if expires_value := response_dict.get('headers', {}).get('Expires'): + customized_response_dict['ExpiresString'] = expires_value + try: + utils.parse_timestamp(expires_value) + except (ValueError, RuntimeError): + logger.warning( + 'Failed to parse the "Expires" member as a timestamp: %s. ' + 'The unparsed value is available in the response under "ExpiresString".', + expires_value, + ) + del response_dict['headers']['Expires'] + + +def _has_expires_shape(shape): + if not shape: + return False + return any( + member_shape.name == 'Expires' + and member_shape.serialization.get('name') == 'Expires' + for member_shape in shape.members.values() + ) + + +def document_expires_shape(section, event_name, **kwargs): + # Updates the documentation for S3 operations that include the 'Expires' member + # in their response structure. Documents a synthetic member 'ExpiresString' and + # includes a deprecation notice for 'Expires'. + if 'response-example' in event_name: + if not section.has_section('structure-value'): + return + parent = section.get_section('structure-value') + if not parent.has_section('Expires'): + return + param_line = parent.get_section('Expires') + param_line.add_new_section('ExpiresString') + new_param_line = param_line.get_section('ExpiresString') + new_param_line.write("'ExpiresString': 'string',") + new_param_line.style.new_line() + elif 'response-params' in event_name: + if not section.has_section('Expires'): + return + param_section = section.get_section('Expires') + # Add a deprecation notice for the "Expires" param + doc_section = param_section.get_section('param-documentation') + doc_section.style.start_note() + doc_section.write( + 'This member has been deprecated. Please use ``ExpiresString`` instead.' + ) + doc_section.style.end_note() + # Document the "ExpiresString" param + new_param_section = param_section.add_new_section('ExpiresString') + new_param_section.style.new_paragraph() + new_param_section.write('- **ExpiresString** *(string) --*') + new_param_section.style.indent() + new_param_section.style.new_paragraph() + new_param_section.write( + 'The raw, unparsed value of the ``Expires`` field.' + ) + + +def _handle_200_error(operation_model, response_dict, **kwargs): + # S3 can return a 200 response with an error embedded in the body. + # Convert the 200 to a 500 for retry resolution in ``_update_status_code``. + if not _should_handle_200_error(operation_model, response_dict): + # Operations with streaming response blobs are excluded as they + # can't be reliably distinguished from an S3 error. + return + if _looks_like_special_case_error( + response_dict['status_code'], response_dict['body'] + ): + response_dict['status_code'] = 500 + logger.debug( + "Error found for response with 200 status code: %s.", + response_dict['body'], + ) + + +def _should_handle_200_error(operation_model, response_dict): + output_shape = operation_model.output_shape + if ( + not response_dict + or operation_model.has_event_stream_output + or not output_shape + ): + return False + payload = output_shape.serialization.get('payload') + if payload is not None: + payload_shape = output_shape.members[payload] + if payload_shape.type_name in ('blob', 'string'): + return False + return True + + +def _map_oauth2_errors(response_dict, **kwargs): + # SSO OIDC follows the OAuth2 standard, which returns error messages in + # 'error_description' instead of the 'Message' field botocore expects. + try: + if response_dict.get('status_code') < 400: + return + body = json.loads(response_dict.get('body', b'{}')) + if message := body.get('error_description'): + if not body.get('Message', body.get("message")): + body['Message'] = message + response_dict['body'] = json.dumps(body).encode('utf-8') + except (ValueError, AttributeError, TypeError): + pass + + +def _update_status_code(response, **kwargs): + # Update the http_response status code when the parsed response has been + # modified in a handler. This enables retries for cases like ``_handle_200_error``. + if response is None: + return + http_response, parsed = response + parsed_status_code = parsed.get('ResponseMetadata', {}).get( + 'HTTPStatusCode', http_response.status_code + ) + if http_response.status_code != parsed_status_code: + http_response.status_code = parsed_status_code + + +def _handle_request_validation_mode_member(params, model, **kwargs): + client_config = kwargs.get("context", {}).get("client_config") + if client_config is None: + return + response_checksum_validation = client_config.response_checksum_validation + http_checksum = model.http_checksum + mode_member = http_checksum.get("requestValidationModeMember") + if ( + mode_member is not None + and response_checksum_validation == "when_supported" + ): + params.setdefault(mode_member, "ENABLED") + + +def _set_extra_headers_for_unsigned_request( + request, signature_version, **kwargs +): + # When sending a checksum in the trailer of an unsigned chunked request, S3 + # requires us to set the "X-Amz-Content-SHA256" header to "STREAMING-UNSIGNED-PAYLOAD-TRAILER". + checksum_context = request.context.get("checksum", {}) + algorithm = checksum_context.get("request_algorithm", {}) + in_trailer = algorithm.get("in") == "trailer" + headers = request.headers + if signature_version == botocore.UNSIGNED and in_trailer: + headers["X-Amz-Content-SHA256"] = "STREAMING-UNSIGNED-PAYLOAD-TRAILER" + + +def _set_auth_scheme_preference_signer(context, signing_name, **kwargs): + """ + Determines the appropriate signer to use based on the client configuration, + authentication scheme preferences, and the availability of a bearer token. + """ + client_config = context.get('client_config') + if client_config is None: + return + + signature_version = client_config.signature_version + auth_scheme_preference = client_config.auth_scheme_preference + auth_options = context.get('auth_options') + + signature_version_set_in_code = ( + isinstance(signature_version, ClientConfigString) + or signature_version is botocore.UNSIGNED + ) + auth_preference_set_in_code = isinstance( + auth_scheme_preference, ClientConfigString + ) + has_in_code_configuration = ( + signature_version_set_in_code or auth_preference_set_in_code + ) + + resolved_signature_version = signature_version + + # If signature version was not set in code, but an auth scheme preference + # is available, resolve it based on the preferred schemes and supported auth + # options for this service. + if ( + not signature_version_set_in_code + and auth_scheme_preference + and auth_options + ): + preferred_schemes = auth_scheme_preference.split(',') + resolved = botocore.auth.resolve_auth_scheme_preference( + preferred_schemes, auth_options + ) + resolved_signature_version = ( + botocore.UNSIGNED if resolved == 'none' else resolved + ) + + # Prefer 'bearer' signature version if a bearer token is available, and it + # is allowed for this service. This can override earlier resolution if the + # config object didn't explicitly set a signature version. + if _should_prefer_bearer_auth( + has_in_code_configuration, + signing_name, + resolved_signature_version, + auth_options, + ): + register_feature_id('BEARER_SERVICE_ENV_VARS') + resolved_signature_version = 'bearer' + + if resolved_signature_version == 'v4a': + _set_sigv4a_signing_context(context, signing_name) + + if resolved_signature_version == signature_version: + return None + return resolved_signature_version + + +def _should_prefer_bearer_auth( + has_in_code_configuration, + signing_name, + resolved_signature_version, + auth_options, +): + if signing_name not in get_bearer_auth_supported_services(): + return False + + if not auth_options or 'smithy.api#httpBearerAuth' not in auth_options: + return False + + has_token = get_token_from_environment(signing_name) is not None + + # Prefer 'bearer' if a bearer token is available, and either: + # Bearer was already resolved, or + # No auth-related values were explicitly set in code + return has_token and ( + resolved_signature_version == 'bearer' or not has_in_code_configuration + ) + + +def get_bearer_auth_supported_services(): + """ + Returns a set of services that support bearer token authentication. + These values correspond to the service's `signingName` property as defined + in model.py, falling back to `endpointPrefix` if `signingName` is not set. + + Warning: This is a private interface and is subject to abrupt breaking changes, + including removal, in any botocore release. It is not intended for external use, + and its usage outside of botocore is not advised or supported. + """ + return {'bedrock'} + + +# This is a list of (event_name, handler). +# When a Session is created, everything in this list will be +# automatically registered with that Session. + +BUILTIN_HANDLERS = [ + ('choose-service-name', handle_service_name_alias), + ( + 'getattr.mturk.list_hi_ts_for_qualification_type', + ClientMethodAlias('list_hits_for_qualification_type'), + ), + ( + 'getattr.socialmessaging.delete_whatsapp_media_message', + ClientMethodAlias('delete_whatsapp_message_media'), + ), + ( + 'before-parameter-build.s3.UploadPart', + convert_body_to_file_like_object, + REGISTER_LAST, + ), + ( + 'before-parameter-build.s3.PutObject', + convert_body_to_file_like_object, + REGISTER_LAST, + ), + ('creating-client-class', add_generate_presigned_url), + ('creating-client-class.s3', add_generate_presigned_post), + ('creating-client-class.iot-data', check_openssl_supports_tls_version_1_2), + ('creating-client-class.lex-runtime-v2', remove_lex_v2_start_conversation), + ('creating-client-class.qbusiness', remove_qbusiness_chat), + ( + 'creating-client-class.bedrock-runtime', + remove_bedrock_runtime_invoke_model_with_bidirectional_stream, + ), + ( + 'creating-client-class.connecthealth', + remove_connecthealth_start_medical_scribe_listening_session, + ), + ( + 'creating-client-class.polly', + remove_polly_start_speech_synthesis_stream, + ), + ( + 'creating-serializer.bedrock-agentcore', + enable_millisecond_timestamp_precision, + ), + ('after-call.iam', json_decode_policies), + ('after-call.ec2.GetConsoleOutput', decode_console_output), + ('after-call.cloudformation.GetTemplate', json_decode_template_body), + ('after-call.s3.GetBucketLocation', parse_get_bucket_location), + ( + 'after-call.sqs.*', + _handle_sqs_compatible_error, + ), + ('before-parse.s3.*', handle_expires_header), + ('before-parse.s3.*', _handle_200_error, REGISTER_FIRST), + ('before-parse.sso-oidc.*', _map_oauth2_errors), + ('before-parameter-build', generate_idempotent_uuid), + ('before-parameter-build', _handle_request_validation_mode_member), + ('before-parameter-build.s3', validate_bucket_name), + ('before-parameter-build.s3', remove_bucket_from_url_paths_from_model), + ( + 'before-parameter-build.s3.ListObjects', + set_list_objects_encoding_type_url, + ), + ( + 'before-parameter-build.s3.ListObjectsV2', + set_list_objects_encoding_type_url, + ), + ( + 'before-parameter-build.s3.ListObjectVersions', + set_list_objects_encoding_type_url, + ), + ('before-parameter-build.s3.CopyObject', handle_copy_source_param), + ('before-parameter-build.s3.UploadPartCopy', handle_copy_source_param), + ('before-parameter-build.s3.CopyObject', validate_ascii_metadata), + ('before-parameter-build.s3.PutObject', validate_ascii_metadata), + ( + 'before-parameter-build.s3.CreateMultipartUpload', + validate_ascii_metadata, + ), + ('before-parameter-build.s3-control', remove_accid_host_prefix_from_model), + ('docs.*.s3.CopyObject.complete-section', document_copy_source_form), + ('docs.*.s3.UploadPartCopy.complete-section', document_copy_source_form), + ('docs.response-example.s3.*.complete-section', document_expires_shape), + ('docs.response-params.s3.*.complete-section', document_expires_shape), + ('before-endpoint-resolution.s3', customize_endpoint_resolver_builtins), + ('before-call', add_recursion_detection_header), + ('before-call.s3', add_expect_header), + ('before-call.glacier', add_glacier_version), + ('before-call.apigateway', add_accept_header), + ('before-call.s3.DeleteObjects', escape_xml_payload), + ('before-call.s3.PutBucketLifecycleConfiguration', escape_xml_payload), + ('before-call.glacier.UploadArchive', add_glacier_checksums), + ('before-call.glacier.UploadMultipartPart', add_glacier_checksums), + ('before-call.ec2.CopySnapshot', inject_presigned_url_ec2), + ('request-created', add_retry_headers), + ('request-created.machinelearning.Predict', switch_host_machinelearning), + ('needs-retry.s3.*', _update_status_code, REGISTER_FIRST), + ('choose-signer.cognito-identity.GetId', disable_signing), + ('choose-signer.cognito-identity.GetOpenIdToken', disable_signing), + ('choose-signer.cognito-identity.UnlinkIdentity', disable_signing), + ( + 'choose-signer.cognito-identity.GetCredentialsForIdentity', + disable_signing, + ), + ('choose-signer.sts.AssumeRoleWithSAML', disable_signing), + ('choose-signer.sts.AssumeRoleWithWebIdentity', disable_signing), + ('choose-signer', set_operation_specific_signer), + ('choose-signer', _set_auth_scheme_preference_signer), + ('before-parameter-build.s3.HeadObject', sse_md5), + ('before-parameter-build.s3.GetObject', sse_md5), + ('before-parameter-build.s3.PutObject', sse_md5), + ('before-parameter-build.s3.CopyObject', sse_md5), + ('before-parameter-build.s3.CopyObject', copy_source_sse_md5), + ('before-parameter-build.s3.CreateMultipartUpload', sse_md5), + ('before-parameter-build.s3.UploadPart', sse_md5), + ('before-parameter-build.s3.UploadPartCopy', sse_md5), + ('before-parameter-build.s3.UploadPartCopy', copy_source_sse_md5), + ('before-parameter-build.s3.CompleteMultipartUpload', sse_md5), + ('before-parameter-build.s3.SelectObjectContent', sse_md5), + ('before-parameter-build.ec2.RunInstances', base64_encode_user_data), + ( + 'before-parameter-build.autoscaling.CreateLaunchConfiguration', + base64_encode_user_data, + ), + ('before-parameter-build.route53', fix_route53_ids), + ('before-parameter-build.glacier', inject_account_id), + ('before-sign.s3', remove_arn_from_signing_path), + ('before-sign.s3', _set_extra_headers_for_unsigned_request), + ( + 'before-sign.polly.SynthesizeSpeech', + remove_content_type_header_for_presigning, + ), + ('after-call.s3.ListObjects', decode_list_object), + ('after-call.s3.ListObjectsV2', decode_list_object_v2), + ('after-call.s3.ListObjectVersions', decode_list_object_versions), + # Cloudsearchdomain search operation will be sent by HTTP POST + ('request-created.cloudsearchdomain.Search', change_get_to_post), + # Glacier documentation customizations + ( + 'docs.*.glacier.*.complete-section', + AutoPopulatedParam( + 'accountId', + 'Note: this parameter is set to "-" by' + 'default if no value is not specified.', + ).document_auto_populated_param, + ), + ( + 'docs.*.glacier.UploadArchive.complete-section', + AutoPopulatedParam('checksum').document_auto_populated_param, + ), + ( + 'docs.*.glacier.UploadMultipartPart.complete-section', + AutoPopulatedParam('checksum').document_auto_populated_param, + ), + ( + 'docs.request-params.glacier.CompleteMultipartUpload.complete-section', + document_glacier_tree_hash_checksum(), + ), + # Cloudformation documentation customizations + ( + 'docs.*.cloudformation.GetTemplate.complete-section', + document_cloudformation_get_template_return_type, + ), + # UserData base64 encoding documentation customizations + ( + 'docs.*.ec2.RunInstances.complete-section', + document_base64_encoding('UserData'), + ), + ( + 'docs.*.autoscaling.CreateLaunchConfiguration.complete-section', + document_base64_encoding('UserData'), + ), + # EC2 CopySnapshot documentation customizations + ( + 'docs.*.ec2.CopySnapshot.complete-section', + AutoPopulatedParam('PresignedUrl').document_auto_populated_param, + ), + ( + 'docs.*.ec2.CopySnapshot.complete-section', + AutoPopulatedParam('DestinationRegion').document_auto_populated_param, + ), + # S3 SSE documentation modifications + ( + 'docs.*.s3.*.complete-section', + AutoPopulatedParam('SSECustomerKeyMD5').document_auto_populated_param, + ), + # S3 SSE Copy Source documentation modifications + ( + 'docs.*.s3.*.complete-section', + AutoPopulatedParam( + 'CopySourceSSECustomerKeyMD5' + ).document_auto_populated_param, + ), + # Add base64 information to Lambda + ( + 'docs.*.lambda.UpdateFunctionCode.complete-section', + document_base64_encoding('ZipFile'), + ), + # The following S3 operations cannot actually accept a ContentMD5 + ( + 'docs.*.s3.*.complete-section', + HideParamFromOperations( + 's3', + 'ContentMD5', + [ + 'DeleteObjects', + 'PutBucketAcl', + 'PutBucketCors', + 'PutBucketLifecycle', + 'PutBucketLogging', + 'PutBucketNotification', + 'PutBucketPolicy', + 'PutBucketReplication', + 'PutBucketRequestPayment', + 'PutBucketTagging', + 'PutBucketVersioning', + 'PutBucketWebsite', + 'PutObjectAcl', + ], + ).hide_param, + ), + ############# + # DSQL + ############# + ('creating-client-class.dsql', add_dsql_generate_db_auth_token_methods), + ############# + # RDS + ############# + ('creating-client-class.rds', add_generate_db_auth_token), + ('before-call.rds.CopyDBClusterSnapshot', inject_presigned_url_rds), + ('before-call.rds.CreateDBCluster', inject_presigned_url_rds), + ('before-call.rds.CopyDBSnapshot', inject_presigned_url_rds), + ('before-call.rds.CreateDBInstanceReadReplica', inject_presigned_url_rds), + ( + 'before-call.rds.StartDBInstanceAutomatedBackupsReplication', + inject_presigned_url_rds, + ), + # RDS PresignedUrl documentation customizations + ( + 'docs.*.rds.CopyDBClusterSnapshot.complete-section', + AutoPopulatedParam('PreSignedUrl').document_auto_populated_param, + ), + ( + 'docs.*.rds.CreateDBCluster.complete-section', + AutoPopulatedParam('PreSignedUrl').document_auto_populated_param, + ), + ( + 'docs.*.rds.CopyDBSnapshot.complete-section', + AutoPopulatedParam('PreSignedUrl').document_auto_populated_param, + ), + ( + 'docs.*.rds.CreateDBInstanceReadReplica.complete-section', + AutoPopulatedParam('PreSignedUrl').document_auto_populated_param, + ), + ( + 'docs.*.rds.StartDBInstanceAutomatedBackupsReplication.complete-section', + AutoPopulatedParam('PreSignedUrl').document_auto_populated_param, + ), + ############# + # Neptune + ############# + ('before-call.neptune.CopyDBClusterSnapshot', inject_presigned_url_rds), + ('before-call.neptune.CreateDBCluster', inject_presigned_url_rds), + # Neptune PresignedUrl documentation customizations + ( + 'docs.*.neptune.CopyDBClusterSnapshot.complete-section', + AutoPopulatedParam('PreSignedUrl').document_auto_populated_param, + ), + ( + 'docs.*.neptune.CreateDBCluster.complete-section', + AutoPopulatedParam('PreSignedUrl').document_auto_populated_param, + ), + ############# + # DocDB + ############# + ('before-call.docdb.CopyDBClusterSnapshot', inject_presigned_url_rds), + ('before-call.docdb.CreateDBCluster', inject_presigned_url_rds), + # DocDB PresignedUrl documentation customizations + ( + 'docs.*.docdb.CopyDBClusterSnapshot.complete-section', + AutoPopulatedParam('PreSignedUrl').document_auto_populated_param, + ), + ( + 'docs.*.docdb.CreateDBCluster.complete-section', + AutoPopulatedParam('PreSignedUrl').document_auto_populated_param, + ), + ('before-call', inject_api_version_header_if_needed), +] +_add_parameter_aliases(BUILTIN_HANDLERS) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/history.py b/rep_localstack/lib/python3.12/site-packages/botocore/history.py new file mode 100644 index 000000000..59d9481d7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/history.py @@ -0,0 +1,55 @@ +# Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import logging + +HISTORY_RECORDER = None +logger = logging.getLogger(__name__) + + +class BaseHistoryHandler: + def emit(self, event_type, payload, source): + raise NotImplementedError('emit()') + + +class HistoryRecorder: + def __init__(self): + self._enabled = False + self._handlers = [] + + def enable(self): + self._enabled = True + + def disable(self): + self._enabled = False + + def add_handler(self, handler): + self._handlers.append(handler) + + def record(self, event_type, payload, source='BOTOCORE'): + if self._enabled and self._handlers: + for handler in self._handlers: + try: + handler.emit(event_type, payload, source) + except Exception: + # Never let the process die because we had a failure in + # a record collection handler. + logger.debug( + "Exception raised in %s.", handler, exc_info=True + ) + + +def get_global_history_recorder(): + global HISTORY_RECORDER + if HISTORY_RECORDER is None: + HISTORY_RECORDER = HistoryRecorder() + return HISTORY_RECORDER diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/hooks.py b/rep_localstack/lib/python3.12/site-packages/botocore/hooks.py new file mode 100644 index 000000000..c672b1c05 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/hooks.py @@ -0,0 +1,660 @@ +# Copyright 2012-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import copy +import logging +from collections import deque, namedtuple + +from botocore.compat import accepts_kwargs +from botocore.utils import EVENT_ALIASES + +logger = logging.getLogger(__name__) + + +_NodeList = namedtuple('NodeList', ['first', 'middle', 'last']) +_FIRST = 0 +_MIDDLE = 1 +_LAST = 2 + + +class NodeList(_NodeList): + def __copy__(self): + first_copy = copy.copy(self.first) + middle_copy = copy.copy(self.middle) + last_copy = copy.copy(self.last) + copied = NodeList(first_copy, middle_copy, last_copy) + return copied + + +def first_non_none_response(responses, default=None): + """Find first non None response in a list of tuples. + + This function can be used to find the first non None response from + handlers connected to an event. This is useful if you are interested + in the returned responses from event handlers. Example usage:: + + print(first_non_none_response([(func1, None), (func2, 'foo'), + (func3, 'bar')])) + # This will print 'foo' + + :type responses: list of tuples + :param responses: The responses from the ``EventHooks.emit`` method. + This is a list of tuples, and each tuple is + (handler, handler_response). + + :param default: If no non-None responses are found, then this default + value will be returned. + + :return: The first non-None response in the list of tuples. + + """ + for response in responses: + if response[1] is not None: + return response[1] + return default + + +class BaseEventHooks: + def emit(self, event_name, **kwargs): + """Call all handlers subscribed to an event. + + :type event_name: str + :param event_name: The name of the event to emit. + + :type **kwargs: dict + :param **kwargs: Arbitrary kwargs to pass through to the + subscribed handlers. The ``event_name`` will be injected + into the kwargs so it's not necessary to add this to **kwargs. + + :rtype: list of tuples + :return: A list of ``(handler_func, handler_func_return_value)`` + + """ + return [] + + def register( + self, event_name, handler, unique_id=None, unique_id_uses_count=False + ): + """Register an event handler for a given event. + + If a ``unique_id`` is given, the handler will not be registered + if a handler with the ``unique_id`` has already been registered. + + Handlers are called in the order they have been registered. + Note handlers can also be registered with ``register_first()`` + and ``register_last()``. All handlers registered with + ``register_first()`` are called before handlers registered + with ``register()`` which are called before handlers registered + with ``register_last()``. + + """ + self._verify_and_register( + event_name, + handler, + unique_id, + register_method=self._register, + unique_id_uses_count=unique_id_uses_count, + ) + + def register_first( + self, event_name, handler, unique_id=None, unique_id_uses_count=False + ): + """Register an event handler to be called first for an event. + + All event handlers registered with ``register_first()`` will + be called before handlers registered with ``register()`` and + ``register_last()``. + + """ + self._verify_and_register( + event_name, + handler, + unique_id, + register_method=self._register_first, + unique_id_uses_count=unique_id_uses_count, + ) + + def register_last( + self, event_name, handler, unique_id=None, unique_id_uses_count=False + ): + """Register an event handler to be called last for an event. + + All event handlers registered with ``register_last()`` will be called + after handlers registered with ``register_first()`` and ``register()``. + + """ + self._verify_and_register( + event_name, + handler, + unique_id, + register_method=self._register_last, + unique_id_uses_count=unique_id_uses_count, + ) + + def _verify_and_register( + self, + event_name, + handler, + unique_id, + register_method, + unique_id_uses_count, + ): + self._verify_is_callable(handler) + self._verify_accept_kwargs(handler) + register_method(event_name, handler, unique_id, unique_id_uses_count) + + def unregister( + self, + event_name, + handler=None, + unique_id=None, + unique_id_uses_count=False, + ): + """Unregister an event handler for a given event. + + If no ``unique_id`` was given during registration, then the + first instance of the event handler is removed (if the event + handler has been registered multiple times). + + """ + pass + + def _verify_is_callable(self, func): + if not callable(func): + raise ValueError(f"Event handler {func} must be callable.") + + def _verify_accept_kwargs(self, func): + """Verifies a callable accepts kwargs + + :type func: callable + :param func: A callable object. + + :returns: True, if ``func`` accepts kwargs, otherwise False. + + """ + try: + if not accepts_kwargs(func): + raise ValueError( + f"Event handler {func} must accept keyword " + f"arguments (**kwargs)" + ) + except TypeError: + return False + + +class HierarchicalEmitter(BaseEventHooks): + def __init__(self): + # We keep a reference to the handlers for quick + # read only access (we never modify self._handlers). + # A cache of event name to handler list. + self._lookup_cache = {} + self._handlers = _PrefixTrie() + # This is used to ensure that unique_id's are only + # registered once. + self._unique_id_handlers = {} + + def _emit(self, event_name, kwargs, stop_on_response=False): + """ + Emit an event with optional keyword arguments. + + :type event_name: string + :param event_name: Name of the event + :type kwargs: dict + :param kwargs: Arguments to be passed to the handler functions. + :type stop_on_response: boolean + :param stop_on_response: Whether to stop on the first non-None + response. If False, then all handlers + will be called. This is especially useful + to handlers which mutate data and then + want to stop propagation of the event. + :rtype: list + :return: List of (handler, response) tuples from all processed + handlers. + """ + responses = [] + # Invoke the event handlers from most specific + # to least specific, each time stripping off a dot. + handlers_to_call = self._lookup_cache.get(event_name) + if handlers_to_call is None: + handlers_to_call = self._handlers.prefix_search(event_name) + self._lookup_cache[event_name] = handlers_to_call + elif not handlers_to_call: + # Short circuit and return an empty response is we have + # no handlers to call. This is the common case where + # for the majority of signals, nothing is listening. + return [] + kwargs['event_name'] = event_name + responses = [] + for handler in handlers_to_call: + logger.debug('Event %s: calling handler %s', event_name, handler) + response = handler(**kwargs) + responses.append((handler, response)) + if stop_on_response and response is not None: + return responses + return responses + + def emit(self, event_name, **kwargs): + """ + Emit an event by name with arguments passed as keyword args. + + >>> responses = emitter.emit( + ... 'my-event.service.operation', arg1='one', arg2='two') + + :rtype: list + :return: List of (handler, response) tuples from all processed + handlers. + """ + return self._emit(event_name, kwargs) + + def emit_until_response(self, event_name, **kwargs): + """ + Emit an event by name with arguments passed as keyword args, + until the first non-``None`` response is received. This + method prevents subsequent handlers from being invoked. + + >>> handler, response = emitter.emit_until_response( + 'my-event.service.operation', arg1='one', arg2='two') + + :rtype: tuple + :return: The first (handler, response) tuple where the response + is not ``None``, otherwise (``None``, ``None``). + """ + responses = self._emit(event_name, kwargs, stop_on_response=True) + if responses: + return responses[-1] + else: + return (None, None) + + def _register( + self, event_name, handler, unique_id=None, unique_id_uses_count=False + ): + self._register_section( + event_name, + handler, + unique_id, + unique_id_uses_count, + section=_MIDDLE, + ) + + def _register_first( + self, event_name, handler, unique_id=None, unique_id_uses_count=False + ): + self._register_section( + event_name, + handler, + unique_id, + unique_id_uses_count, + section=_FIRST, + ) + + def _register_last( + self, event_name, handler, unique_id, unique_id_uses_count=False + ): + self._register_section( + event_name, handler, unique_id, unique_id_uses_count, section=_LAST + ) + + def _register_section( + self, event_name, handler, unique_id, unique_id_uses_count, section + ): + if unique_id is not None: + if unique_id in self._unique_id_handlers: + # We've already registered a handler using this unique_id + # so we don't need to register it again. + count = self._unique_id_handlers[unique_id].get('count', None) + if unique_id_uses_count: + if not count: + raise ValueError( + f"Initial registration of unique id {unique_id} was " + "specified to use a counter. Subsequent register " + "calls to unique id must specify use of a counter " + "as well." + ) + else: + self._unique_id_handlers[unique_id]['count'] += 1 + else: + if count: + raise ValueError( + f"Initial registration of unique id {unique_id} was " + "specified to not use a counter. Subsequent " + "register calls to unique id must specify not to " + "use a counter as well." + ) + return + else: + # Note that the trie knows nothing about the unique + # id. We track uniqueness in this class via the + # _unique_id_handlers. + self._handlers.append_item( + event_name, handler, section=section + ) + unique_id_handler_item = {'handler': handler} + if unique_id_uses_count: + unique_id_handler_item['count'] = 1 + self._unique_id_handlers[unique_id] = unique_id_handler_item + else: + self._handlers.append_item(event_name, handler, section=section) + # Super simple caching strategy for now, if we change the registrations + # clear the cache. This has the opportunity for smarter invalidations. + self._lookup_cache = {} + + def unregister( + self, + event_name, + handler=None, + unique_id=None, + unique_id_uses_count=False, + ): + if unique_id is not None: + try: + count = self._unique_id_handlers[unique_id].get('count', None) + except KeyError: + # There's no handler matching that unique_id so we have + # nothing to unregister. + return + if unique_id_uses_count: + if count is None: + raise ValueError( + f"Initial registration of unique id {unique_id} was specified to " + "use a counter. Subsequent unregister calls to unique " + "id must specify use of a counter as well." + ) + elif count == 1: + handler = self._unique_id_handlers.pop(unique_id)[ + 'handler' + ] + else: + self._unique_id_handlers[unique_id]['count'] -= 1 + return + else: + if count: + raise ValueError( + f"Initial registration of unique id {unique_id} was specified " + "to not use a counter. Subsequent unregister calls " + "to unique id must specify not to use a counter as " + "well." + ) + handler = self._unique_id_handlers.pop(unique_id)['handler'] + try: + self._handlers.remove_item(event_name, handler) + self._lookup_cache = {} + except ValueError: + pass + + def __copy__(self): + new_instance = self.__class__() + new_state = self.__dict__.copy() + new_state['_handlers'] = copy.copy(self._handlers) + new_state['_unique_id_handlers'] = copy.copy(self._unique_id_handlers) + new_instance.__dict__ = new_state + return new_instance + + +class EventAliaser(BaseEventHooks): + def __init__(self, event_emitter, event_aliases=None): + self._event_aliases = event_aliases + if event_aliases is None: + self._event_aliases = EVENT_ALIASES + self._alias_name_cache = {} + self._emitter = event_emitter + + def emit(self, event_name, **kwargs): + aliased_event_name = self._alias_event_name(event_name) + return self._emitter.emit(aliased_event_name, **kwargs) + + def emit_until_response(self, event_name, **kwargs): + aliased_event_name = self._alias_event_name(event_name) + return self._emitter.emit_until_response(aliased_event_name, **kwargs) + + def register( + self, event_name, handler, unique_id=None, unique_id_uses_count=False + ): + aliased_event_name = self._alias_event_name(event_name) + return self._emitter.register( + aliased_event_name, handler, unique_id, unique_id_uses_count + ) + + def register_first( + self, event_name, handler, unique_id=None, unique_id_uses_count=False + ): + aliased_event_name = self._alias_event_name(event_name) + return self._emitter.register_first( + aliased_event_name, handler, unique_id, unique_id_uses_count + ) + + def register_last( + self, event_name, handler, unique_id=None, unique_id_uses_count=False + ): + aliased_event_name = self._alias_event_name(event_name) + return self._emitter.register_last( + aliased_event_name, handler, unique_id, unique_id_uses_count + ) + + def unregister( + self, + event_name, + handler=None, + unique_id=None, + unique_id_uses_count=False, + ): + aliased_event_name = self._alias_event_name(event_name) + return self._emitter.unregister( + aliased_event_name, handler, unique_id, unique_id_uses_count + ) + + def _alias_event_name(self, event_name): + if event_name in self._alias_name_cache: + return self._alias_name_cache[event_name] + + for old_part, new_part in self._event_aliases.items(): + # We can't simply do a string replace for everything, otherwise we + # might end up translating substrings that we never intended to + # translate. When there aren't any dots in the old event name + # part, then we can quickly replace the item in the list if it's + # there. + event_parts = event_name.split('.') + if '.' not in old_part: + try: + # Theoretically a given event name could have the same part + # repeated, but in practice this doesn't happen + event_parts[event_parts.index(old_part)] = new_part + except ValueError: + continue + + # If there's dots in the name, it gets more complicated. Now we + # have to replace multiple sections of the original event. + elif old_part in event_name: + old_parts = old_part.split('.') + self._replace_subsection(event_parts, old_parts, new_part) + else: + continue + + new_name = '.'.join(event_parts) + logger.debug( + "Changing event name from %s to %s", event_name, new_name + ) + self._alias_name_cache[event_name] = new_name + return new_name + + self._alias_name_cache[event_name] = event_name + return event_name + + def _replace_subsection(self, sections, old_parts, new_part): + for i in range(len(sections)): + if ( + sections[i] == old_parts[0] + and sections[i : i + len(old_parts)] == old_parts + ): + sections[i : i + len(old_parts)] = [new_part] + return + + def __copy__(self): + return self.__class__( + copy.copy(self._emitter), copy.copy(self._event_aliases) + ) + + +class _PrefixTrie: + """Specialized prefix trie that handles wildcards. + + The prefixes in this case are based on dot separated + names so 'foo.bar.baz' is:: + + foo -> bar -> baz + + Wildcard support just means that having a key such as 'foo.bar.*.baz' will + be matched with a call to ``get_items(key='foo.bar.ANYTHING.baz')``. + + You can think of this prefix trie as the equivalent as defaultdict(list), + except that it can do prefix searches: + + foo.bar.baz -> A + foo.bar -> B + foo -> C + + Calling ``get_items('foo.bar.baz')`` will return [A + B + C], from + most specific to least specific. + + """ + + def __init__(self): + # Each dictionary can be though of as a node, where a node + # has values associated with the node, and children is a link + # to more nodes. So 'foo.bar' would have a 'foo' node with + # a 'bar' node as a child of foo. + # {'foo': {'children': {'bar': {...}}}}. + self._root = {'chunk': None, 'children': {}, 'values': None} + + def append_item(self, key, value, section=_MIDDLE): + """Add an item to a key. + + If a value is already associated with that key, the new + value is appended to the list for the key. + """ + key_parts = key.split('.') + current = self._root + for part in key_parts: + if part not in current['children']: + new_child = {'chunk': part, 'values': None, 'children': {}} + current['children'][part] = new_child + current = new_child + else: + current = current['children'][part] + if current['values'] is None: + current['values'] = NodeList([], [], []) + current['values'][section].append(value) + + def prefix_search(self, key): + """Collect all items that are prefixes of key. + + Prefix in this case are delineated by '.' characters so + 'foo.bar.baz' is a 3 chunk sequence of 3 "prefixes" ( + "foo", "bar", and "baz"). + + """ + collected = deque() + key_parts = key.split('.') + current = self._root + self._get_items(current, key_parts, collected, 0) + return collected + + def _get_items(self, starting_node, key_parts, collected, starting_index): + stack = [(starting_node, starting_index)] + key_parts_len = len(key_parts) + # Traverse down the nodes, where at each level we add the + # next part from key_parts as well as the wildcard element '*'. + # This means for each node we see we potentially add two more + # elements to our stack. + while stack: + current_node, index = stack.pop() + if current_node['values']: + # We're using extendleft because we want + # the values associated with the node furthest + # from the root to come before nodes closer + # to the root. extendleft() also adds its items + # in right-left order so .extendleft([1, 2, 3]) + # will result in final_list = [3, 2, 1], which is + # why we reverse the lists. + node_list = current_node['values'] + complete_order = ( + node_list.first + node_list.middle + node_list.last + ) + collected.extendleft(reversed(complete_order)) + if not index == key_parts_len: + children = current_node['children'] + directs = children.get(key_parts[index]) + wildcard = children.get('*') + next_index = index + 1 + if wildcard is not None: + stack.append((wildcard, next_index)) + if directs is not None: + stack.append((directs, next_index)) + + def remove_item(self, key, value): + """Remove an item associated with a key. + + If the value is not associated with the key a ``ValueError`` + will be raised. If the key does not exist in the trie, a + ``ValueError`` will be raised. + + """ + key_parts = key.split('.') + current = self._root + self._remove_item(current, key_parts, value, index=0) + + def _remove_item(self, current_node, key_parts, value, index): + if current_node is None: + return + elif index < len(key_parts): + next_node = current_node['children'].get(key_parts[index]) + if next_node is not None: + self._remove_item(next_node, key_parts, value, index + 1) + if index == len(key_parts) - 1: + node_list = next_node['values'] + if value in node_list.first: + node_list.first.remove(value) + elif value in node_list.middle: + node_list.middle.remove(value) + elif value in node_list.last: + node_list.last.remove(value) + if not next_node['children'] and not next_node['values']: + # Then this is a leaf node with no values so + # we can just delete this link from the parent node. + # This makes subsequent search faster in the case + # where a key does not exist. + del current_node['children'][key_parts[index]] + else: + raise ValueError(f"key is not in trie: {'.'.join(key_parts)}") + + def __copy__(self): + # The fact that we're using a nested dict under the covers + # is an implementation detail, and the user shouldn't have + # to know that they'd normally need a deepcopy so we expose + # __copy__ instead of __deepcopy__. + new_copy = self.__class__() + copied_attrs = self._recursive_copy(self.__dict__) + new_copy.__dict__ = copied_attrs + return new_copy + + def _recursive_copy(self, node): + # We can't use copy.deepcopy because we actually only want to copy + # the structure of the trie, not the handlers themselves. + # Each node has a chunk, children, and values. + copied_node = {} + for key, value in node.items(): + if isinstance(value, NodeList): + copied_node[key] = copy.copy(value) + elif isinstance(value, dict): + copied_node[key] = self._recursive_copy(value) + else: + copied_node[key] = value + return copied_node diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/httpchecksum.py b/rep_localstack/lib/python3.12/site-packages/botocore/httpchecksum.py new file mode 100644 index 000000000..bf4616f86 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/httpchecksum.py @@ -0,0 +1,671 @@ +# Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +"""The interfaces in this module are not intended for public use. + +This module defines interfaces for applying checksums to HTTP requests within +the context of botocore. This involves both resolving the checksum to be used +based on client configuration and environment, as well as application of the +checksum to the request. +""" + +import base64 +import io +import logging +from binascii import crc32 +from hashlib import sha1, sha256, sha512 + +from botocore.compat import HAS_CRT, has_minimum_crt_version, urlparse +from botocore.exceptions import ( + AwsChunkedWrapperError, + FlexibleChecksumError, + MissingDependencyException, +) +from botocore.model import StructureShape +from botocore.response import StreamingBody +from botocore.useragent import register_feature_id +from botocore.utils import ( + conditionally_calculate_md5, + determine_content_length, + get_checksum_algorithm_headers, + has_checksum_header, +) + +if HAS_CRT: + from awscrt import checksums as crt_checksums +else: + crt_checksums = None + +logger = logging.getLogger(__name__) + +DEFAULT_CHECKSUM_ALGORITHM = "CRC32" + + +class BaseChecksum: + _CHUNK_SIZE = 1024 * 1024 + + def update(self, chunk): + pass + + def digest(self): + pass + + def b64digest(self): + bs = self.digest() + return base64.b64encode(bs).decode("ascii") + + def _handle_fileobj(self, fileobj): + start_position = fileobj.tell() + for chunk in iter(lambda: fileobj.read(self._CHUNK_SIZE), b""): + self.update(chunk) + fileobj.seek(start_position) + + def handle(self, body): + if isinstance(body, (bytes, bytearray)): + self.update(body) + else: + self._handle_fileobj(body) + return self.b64digest() + + +class Crc32Checksum(BaseChecksum): + def __init__(self): + self._int_crc32 = 0 + + def update(self, chunk): + self._int_crc32 = crc32(chunk, self._int_crc32) & 0xFFFFFFFF + + def digest(self): + return self._int_crc32.to_bytes(4, byteorder="big") + + +class CrtCrc32Checksum(BaseChecksum): + # Note: This class is only used if the CRT is available + def __init__(self): + self._int_crc32 = 0 + + def update(self, chunk): + new_checksum = crt_checksums.crc32(chunk, self._int_crc32) + self._int_crc32 = new_checksum & 0xFFFFFFFF + + def digest(self): + return self._int_crc32.to_bytes(4, byteorder="big") + + +class CrtCrc32cChecksum(BaseChecksum): + # Note: This class is only used if the CRT is available + def __init__(self): + self._int_crc32c = 0 + + def update(self, chunk): + new_checksum = crt_checksums.crc32c(chunk, self._int_crc32c) + self._int_crc32c = new_checksum & 0xFFFFFFFF + + def digest(self): + return self._int_crc32c.to_bytes(4, byteorder="big") + + +class CrtCrc64NvmeChecksum(BaseChecksum): + # Note: This class is only used if the CRT is available + def __init__(self): + self._int_crc64nvme = 0 + + def update(self, chunk): + new_checksum = crt_checksums.crc64nvme(chunk, self._int_crc64nvme) + self._int_crc64nvme = new_checksum & 0xFFFFFFFFFFFFFFFF + + def digest(self): + return self._int_crc64nvme.to_bytes(8, byteorder="big") + + +class CrtXxhash64Checksum(BaseChecksum): + # Note: This class is only used if the CRT is available + def __init__(self): + self._xxhash = crt_checksums.XXHash.new_xxhash64() + + def update(self, chunk): + self._xxhash.update(chunk) + + def digest(self): + return self._xxhash.finalize() + + +class CrtXxhash3Checksum(BaseChecksum): + # Note: This class is only used if the CRT is available + def __init__(self): + self._xxhash = crt_checksums.XXHash.new_xxhash3_64() + + def update(self, chunk): + self._xxhash.update(chunk) + + def digest(self): + return self._xxhash.finalize() + + +class CrtXxhash128Checksum(BaseChecksum): + # Note: This class is only used if the CRT is available + def __init__(self): + self._xxhash = crt_checksums.XXHash.new_xxhash3_128() + + def update(self, chunk): + self._xxhash.update(chunk) + + def digest(self): + return self._xxhash.finalize() + + +class Sha1Checksum(BaseChecksum): + def __init__(self): + self._checksum = sha1() + + def update(self, chunk): + self._checksum.update(chunk) + + def digest(self): + return self._checksum.digest() + + +class Sha256Checksum(BaseChecksum): + def __init__(self): + self._checksum = sha256() + + def update(self, chunk): + self._checksum.update(chunk) + + def digest(self): + return self._checksum.digest() + + +class Sha512Checksum(BaseChecksum): + def __init__(self): + self._checksum = sha512() + + def update(self, chunk): + self._checksum.update(chunk) + + def digest(self): + return self._checksum.digest() + + +class AwsChunkedWrapper: + _DEFAULT_CHUNK_SIZE = 1024 * 1024 + + def __init__( + self, + raw, + checksum_cls=None, + checksum_name="x-amz-checksum", + chunk_size=None, + ): + self._raw = raw + self._checksum_name = checksum_name + self._checksum_cls = checksum_cls + self._reset() + + if chunk_size is None: + chunk_size = self._DEFAULT_CHUNK_SIZE + self._chunk_size = chunk_size + + def _reset(self): + self._remaining = b"" + self._complete = False + self._checksum = None + if self._checksum_cls: + self._checksum = self._checksum_cls() + + def seek(self, offset, whence=0): + if offset != 0 or whence != 0: + raise AwsChunkedWrapperError( + error_msg="Can only seek to start of stream" + ) + self._reset() + self._raw.seek(0) + + def read(self, size=None): + # Normalize "read all" size values to None + if size is not None and size <= 0: + size = None + + # If the underlying body is done and we have nothing left then + # end the stream + if self._complete and not self._remaining: + return b"" + + # While we're not done and want more bytes + want_more_bytes = size is None or size > len(self._remaining) + while not self._complete and want_more_bytes: + self._remaining += self._make_chunk() + want_more_bytes = size is None or size > len(self._remaining) + + # If size was None, we want to return everything + if size is None: + size = len(self._remaining) + + # Return a chunk up to the size asked for + to_return = self._remaining[:size] + self._remaining = self._remaining[size:] + return to_return + + def _make_chunk(self): + # NOTE: Chunk size is not deterministic as read could return less. This + # means we cannot know the content length of the encoded aws-chunked + # stream ahead of time without ensuring a consistent chunk size + raw_chunk = self._raw.read(self._chunk_size) + hex_len = hex(len(raw_chunk))[2:].encode("ascii") + self._complete = not raw_chunk + + if self._checksum: + self._checksum.update(raw_chunk) + + if self._checksum and self._complete: + name = self._checksum_name.encode("ascii") + checksum = self._checksum.b64digest().encode("ascii") + return b"0\r\n%s:%s\r\n\r\n" % (name, checksum) + + return b"%s\r\n%s\r\n" % (hex_len, raw_chunk) + + def __iter__(self): + while not self._complete: + yield self._make_chunk() + + +class StreamingChecksumBody(StreamingBody): + def __init__(self, raw_stream, content_length, checksum, expected): + super().__init__(raw_stream, content_length) + self._checksum = checksum + self._expected = expected + + def read(self, amt=None): + chunk = super().read(amt=amt) + self._checksum.update(chunk) + if amt is None or (not chunk and amt > 0): + self._validate_checksum() + return chunk + + def readinto(self, b): + amount_read = super().readinto(b) + if amount_read == len(b): + view = b + else: + view = memoryview(b)[:amount_read] + self._checksum.update(view) + if amount_read == 0 and len(b) > 0: + self._validate_checksum() + return amount_read + + def _validate_checksum(self): + if self._checksum.digest() != base64.b64decode(self._expected): + error_msg = ( + f"Expected checksum {self._expected} did not match calculated " + f"checksum: {self._checksum.b64digest()}" + ) + raise FlexibleChecksumError(error_msg=error_msg) + + +def resolve_checksum_context(request, operation_model, params): + resolve_request_checksum_algorithm(request, operation_model, params) + resolve_response_checksum_algorithms(request, operation_model, params) + _register_checksum_feature_ids(request) + + +def resolve_request_checksum_algorithm( + request, + operation_model, + params, + supported_algorithms=None, +): + # If the header is already set by the customer, skip calculation + if has_checksum_header(request): + return + + checksum_context = request["context"].get("checksum", {}) + request_checksum_calculation = request["context"][ + "client_config" + ].request_checksum_calculation + http_checksum = operation_model.http_checksum + request_checksum_required = ( + operation_model.http_checksum_required + or http_checksum.get("requestChecksumRequired") + ) + algorithm_member = http_checksum.get("requestAlgorithmMember") + if algorithm_member and algorithm_member in params: + # If the client has opted into using flexible checksums and the + # request supports it, use that instead of checksum required + if supported_algorithms is None: + supported_algorithms = _SUPPORTED_CHECKSUM_ALGORITHMS + + algorithm_name = params[algorithm_member].lower() + if algorithm_name not in supported_algorithms: + if not HAS_CRT and algorithm_name in _CRT_CHECKSUM_ALGORITHMS: + raise MissingDependencyException( + msg=( + f"Using {algorithm_name.upper()} requires an " + "additional dependency. You will need to pip install " + "botocore[crt] before proceeding." + ) + ) + raise FlexibleChecksumError( + error_msg=f"Unsupported checksum algorithm: {algorithm_name}" + ) + elif request_checksum_required or ( + algorithm_member and request_checksum_calculation == "when_supported" + ): + # Don't use a default checksum for presigned requests. + if request["context"].get("is_presign_request"): + return + algorithm_name = DEFAULT_CHECKSUM_ALGORITHM.lower() + algorithm_member_header = _get_request_algorithm_member_header( + operation_model, request, algorithm_member + ) + if algorithm_member_header is not None: + checksum_context["request_algorithm_header"] = { + "name": algorithm_member_header, + "value": DEFAULT_CHECKSUM_ALGORITHM, + } + else: + return + + location_type = "header" + if ( + operation_model.has_streaming_input + and urlparse(request["url"]).scheme == "https" + ): + if request["context"]["client_config"].signature_version != 's3': + # Operations with streaming input must support trailers. + # We only support unsigned trailer checksums currently. As this + # disables payload signing we'll only use trailers over TLS. + location_type = "trailer" + + algorithm = { + "algorithm": algorithm_name, + "in": location_type, + "name": f"x-amz-checksum-{algorithm_name}", + } + + checksum_context["request_algorithm"] = algorithm + request["context"]["checksum"] = checksum_context + + +def _get_request_algorithm_member_header( + operation_model, request, algorithm_member +): + """Get the name of the header targeted by the "requestAlgorithmMember".""" + operation_input_shape = operation_model.input_shape + if not isinstance(operation_input_shape, StructureShape): + return + + algorithm_member_shape = operation_input_shape.members.get( + algorithm_member + ) + + if algorithm_member_shape: + return algorithm_member_shape.serialization.get("name") + + +def apply_request_checksum(request): + checksum_context = request.get("context", {}).get("checksum", {}) + algorithm = checksum_context.get("request_algorithm") + + if not algorithm: + return + + if algorithm == "conditional-md5": + # Special case to handle the http checksum required trait + conditionally_calculate_md5(request) + elif algorithm["in"] == "header": + _apply_request_header_checksum(request) + elif algorithm["in"] == "trailer": + _apply_request_trailer_checksum(request) + else: + raise FlexibleChecksumError( + error_msg="Unknown checksum variant: {}".format(algorithm["in"]) + ) + if "request_algorithm_header" in checksum_context: + request_algorithm_header = checksum_context["request_algorithm_header"] + request["headers"][request_algorithm_header["name"]] = ( + request_algorithm_header["value"] + ) + + +def _apply_request_header_checksum(request): + checksum_context = request.get("context", {}).get("checksum", {}) + algorithm = checksum_context.get("request_algorithm") + location_name = algorithm["name"] + if location_name in request["headers"]: + # If the header is already set by the customer, skip calculation + return + checksum_cls = _CHECKSUM_CLS.get(algorithm["algorithm"]) + digest = checksum_cls().handle(request["body"]) + request["headers"][location_name] = digest + + +def _apply_request_trailer_checksum(request): + checksum_context = request.get("context", {}).get("checksum", {}) + algorithm = checksum_context.get("request_algorithm") + location_name = algorithm["name"] + checksum_cls = _CHECKSUM_CLS.get(algorithm["algorithm"]) + + headers = request["headers"] + body = request["body"] + + if location_name in headers: + # If the header is already set by the customer, skip calculation + return + + headers["Transfer-Encoding"] = "chunked" + if "Content-Encoding" in headers: + # We need to preserve the existing content encoding and add + # aws-chunked as a new content encoding. + headers["Content-Encoding"] += ",aws-chunked" + else: + headers["Content-Encoding"] = "aws-chunked" + headers["X-Amz-Trailer"] = location_name + + content_length = determine_content_length(body) + if content_length is None and "Content-Length" in headers: + # determine_content_length() cannot resolve the length of non-seekable + # bodies, but the caller may have set Content-Length explicitly. Reuse + # that value for X-Amz-Decoded-Content-Length before the header is + # removed for chunked transfer encoding. + content_length = int(headers["Content-Length"]) + if content_length is not None: + # Send the decoded content length if we can determine it. Some + # services such as S3 may require the decoded content length + headers["X-Amz-Decoded-Content-Length"] = str(content_length) + + if "Content-Length" in headers: + del headers["Content-Length"] + logger.debug( + "Removing the Content-Length header since 'chunked' is specified for Transfer-Encoding." + ) + + if isinstance(body, (bytes, bytearray)): + body = io.BytesIO(body) + + request["body"] = AwsChunkedWrapper( + body, + checksum_cls=checksum_cls, + checksum_name=location_name, + ) + + +def _register_checksum_feature_ids(request): + """Register feature IDs for checksum algorithms used in the request.""" + if algorithm_headers := get_checksum_algorithm_headers(request): + for header in algorithm_headers: + header = header.upper() + if header not in ( + "X-AMZ-CHECKSUM-ALGORITHM", + "X-AMZ-CHECKSUM-MODE", + "X-AMZ-CHECKSUM-TYPE", + ): + algorithm_name = header.removeprefix("X-AMZ-CHECKSUM-") + _register_checksum_algorithm_feature_id(algorithm_name) + return + # If no checksum header exists yet, check the resolved context for + # an algorithm that will be applied later by apply_request_checksum. + checksum_context = request.get("context", {}).get("checksum", {}) + algorithm = checksum_context.get("request_algorithm") + if algorithm and isinstance(algorithm, dict): + _register_checksum_algorithm_feature_id(algorithm["algorithm"]) + + +def _register_checksum_algorithm_feature_id(algorithm): + checksum_algorithm_name = algorithm.upper() + if checksum_algorithm_name == "CRC64NVME": + checksum_algorithm_name = "CRC64" + checksum_algorithm_name_feature_id = ( + f"FLEXIBLE_CHECKSUMS_REQ_{checksum_algorithm_name}" + ) + register_feature_id(checksum_algorithm_name_feature_id) + + +def resolve_response_checksum_algorithms( + request, operation_model, params, supported_algorithms=None +): + http_checksum = operation_model.http_checksum + mode_member = http_checksum.get("requestValidationModeMember") + if mode_member and mode_member in params: + if supported_algorithms is None: + supported_algorithms = _SUPPORTED_CHECKSUM_ALGORITHMS + response_algorithms = { + a.lower() for a in http_checksum.get("responseAlgorithms", []) + } + + usable_algorithms = [] + for algorithm in _ALGORITHMS_PRIORITY_LIST: + if algorithm not in response_algorithms: + continue + if algorithm in supported_algorithms: + usable_algorithms.append(algorithm) + + checksum_context = request["context"].get("checksum", {}) + checksum_context["response_algorithms"] = usable_algorithms + request["context"]["checksum"] = checksum_context + + +def handle_checksum_body(http_response, response, context, operation_model): + headers = response["headers"] + checksum_context = context.get("checksum", {}) + algorithms = checksum_context.get("response_algorithms") + + if not algorithms: + return + + for algorithm in algorithms: + header_name = f"x-amz-checksum-{algorithm}" + # If the header is not found, check the next algorithm + if header_name not in headers: + continue + + # If a - is in the checksum this is not valid Base64. S3 returns + # checksums that include a -# suffix to indicate a checksum derived + # from the hash of all part checksums. We cannot wrap this response + if "-" in headers[header_name]: + continue + + if operation_model.has_streaming_output: + response["body"] = _handle_streaming_response( + http_response, response, algorithm + ) + else: + response["body"] = _handle_bytes_response( + http_response, response, algorithm + ) + + # Expose metadata that the checksum check actually occurred + checksum_context = response["context"].get("checksum", {}) + checksum_context["response_algorithm"] = algorithm + response["context"]["checksum"] = checksum_context + return + + logger.debug( + 'Skipping checksum validation. Response did not contain one of the following algorithms: %s.', + algorithms, + ) + + +def _handle_streaming_response(http_response, response, algorithm): + checksum_cls = _CHECKSUM_CLS.get(algorithm) + header_name = f"x-amz-checksum-{algorithm}" + return StreamingChecksumBody( + http_response.raw, + response["headers"].get("content-length"), + checksum_cls(), + response["headers"][header_name], + ) + + +def _handle_bytes_response(http_response, response, algorithm): + body = http_response.content + header_name = f"x-amz-checksum-{algorithm}" + checksum_cls = _CHECKSUM_CLS.get(algorithm) + checksum = checksum_cls() + checksum.update(body) + expected = response["headers"][header_name] + if checksum.digest() != base64.b64decode(expected): + error_msg = ( + f"Expected checksum {expected} did not match calculated " + f"checksum: {checksum.b64digest()}" + ) + raise FlexibleChecksumError(error_msg=error_msg) + return body + + +_CHECKSUM_CLS = { + "crc32": Crc32Checksum, + "sha1": Sha1Checksum, + "sha256": Sha256Checksum, + "sha512": Sha512Checksum, +} +_CRT_CHECKSUM_ALGORITHMS = [ + "crc32", + "crc32c", + "crc64nvme", + "xxhash64", + "xxhash3", + "xxhash128", +] +if HAS_CRT: + # Use CRT checksum implementations if available + _CRT_CHECKSUM_CLS = { + "crc32": CrtCrc32Checksum, + "crc32c": CrtCrc32cChecksum, + } + + if has_minimum_crt_version((0, 23, 4)): + # CRC64NVME support wasn't officially added until 0.23.4 + _CRT_CHECKSUM_CLS["crc64nvme"] = CrtCrc64NvmeChecksum + + if has_minimum_crt_version((0, 31, 2)): + _CRT_CHECKSUM_CLS["xxhash64"] = CrtXxhash64Checksum + _CRT_CHECKSUM_CLS["xxhash3"] = CrtXxhash3Checksum + _CRT_CHECKSUM_CLS["xxhash128"] = CrtXxhash128Checksum + + _CHECKSUM_CLS.update(_CRT_CHECKSUM_CLS) + # Validate this list isn't out of sync with _CRT_CHECKSUM_ALGORITHMS keys + assert all( + name in _CRT_CHECKSUM_ALGORITHMS for name in _CRT_CHECKSUM_CLS.keys() + ) +_SUPPORTED_CHECKSUM_ALGORITHMS = list(_CHECKSUM_CLS.keys()) +_ALGORITHMS_PRIORITY_LIST = [ + 'xxhash128', + 'xxhash3', + 'crc64nvme', + 'xxhash64', + 'crc32c', + 'crc32', + 'sha1', + 'sha256', + 'sha512', +] diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/httpsession.py b/rep_localstack/lib/python3.12/site-packages/botocore/httpsession.py new file mode 100644 index 000000000..e242c44e9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/httpsession.py @@ -0,0 +1,524 @@ +import logging +import os +import os.path +import socket +import sys +import warnings +from base64 import b64encode +from concurrent.futures import CancelledError + +from urllib3 import PoolManager, Timeout, proxy_from_url +from urllib3.exceptions import ( + ConnectTimeoutError as URLLib3ConnectTimeoutError, +) +from urllib3.exceptions import ( + LocationParseError, + NewConnectionError, + ProtocolError, + ProxyError, +) +from urllib3.exceptions import ReadTimeoutError as URLLib3ReadTimeoutError +from urllib3.exceptions import SSLError as URLLib3SSLError +from urllib3.poolmanager import PoolKey +from urllib3.util.retry import Retry +from urllib3.util.ssl_ import ( + OP_NO_COMPRESSION, + PROTOCOL_TLS, + OP_NO_SSLv2, + OP_NO_SSLv3, + is_ipaddress, + ssl, +) +from urllib3.util.url import parse_url + +try: + from urllib3.util.ssl_ import OP_NO_TICKET, PROTOCOL_TLS_CLIENT +except ImportError: + # Fallback directly to ssl for version of urllib3 before 1.26. + # They are available in the standard library starting in Python 3.6. + from ssl import OP_NO_TICKET, PROTOCOL_TLS_CLIENT + +try: + # pyopenssl will be removed in urllib3 2.0, we'll fall back to ssl_ at that point. + # This can be removed once our urllib3 floor is raised to >= 2.0. + with warnings.catch_warnings(): + warnings.simplefilter("ignore", category=DeprecationWarning) + # Always import the original SSLContext, even if it has been patched + from urllib3.contrib.pyopenssl import ( + orig_util_SSLContext as SSLContext, + ) +except (AttributeError, ImportError): + from urllib3.util.ssl_ import SSLContext + +try: + from urllib3.util.ssl_ import DEFAULT_CIPHERS +except ImportError: + # Defer to system configuration starting with + # urllib3 2.0. This will choose the ciphers provided by + # Openssl 1.1.1+ or secure system defaults. + DEFAULT_CIPHERS = None + +import botocore.awsrequest +from botocore.compat import ( + IPV6_ADDRZ_RE, + ensure_bytes, + filter_ssl_warnings, + unquote, + urlparse, +) +from botocore.exceptions import ( + ConnectionClosedError, + ConnectTimeoutError, + EndpointConnectionError, + HTTPClientError, + InvalidProxiesConfigError, + ProxyConnectionError, + ReadTimeoutError, + SSLError, +) + +filter_ssl_warnings() +logger = logging.getLogger(__name__) +DEFAULT_TIMEOUT = 60 +MAX_POOL_CONNECTIONS = 10 +DEFAULT_CA_BUNDLE = os.path.join(os.path.dirname(__file__), 'cacert.pem') +BUFFER_SIZE = None +if hasattr(PoolKey, 'key_blocksize'): + # urllib3 2.0 implemented its own chunking logic and set + # a default blocksize of 16KB. This creates a noticeable + # performance bottleneck when transferring objects + # larger than 100MB. Based on experiments, a blocksize + # of 128KB significantly improves throughput before + # getting diminishing returns. + BUFFER_SIZE = 1024 * 128 + +try: + from certifi import where +except ImportError: + + def where(): + return DEFAULT_CA_BUNDLE + + +def get_cert_path(verify): + if verify is not True: + return verify + + cert_path = where() + logger.debug("Certificate path: %s", cert_path) + + return cert_path + + +def create_urllib3_context( + ssl_version=None, cert_reqs=None, options=None, ciphers=None +): + """This function is a vendored version of the same function in urllib3 + + We vendor this function to ensure that the SSL contexts we construct + always use the std lib SSLContext instead of pyopenssl. + """ + # PROTOCOL_TLS is deprecated in Python 3.10 + if not ssl_version or ssl_version == PROTOCOL_TLS: + ssl_version = PROTOCOL_TLS_CLIENT + + context = SSLContext(ssl_version) + + if ciphers: + context.set_ciphers(ciphers) + elif DEFAULT_CIPHERS: + context.set_ciphers(DEFAULT_CIPHERS) + + # Setting the default here, as we may have no ssl module on import + cert_reqs = ssl.CERT_REQUIRED if cert_reqs is None else cert_reqs + + if options is None: + options = 0 + # SSLv2 is easily broken and is considered harmful and dangerous + options |= OP_NO_SSLv2 + # SSLv3 has several problems and is now dangerous + options |= OP_NO_SSLv3 + # Disable compression to prevent CRIME attacks for OpenSSL 1.0+ + # (issue urllib3#309) + options |= OP_NO_COMPRESSION + # TLSv1.2 only. Unless set explicitly, do not request tickets. + # This may save some bandwidth on wire, and although the ticket is encrypted, + # there is a risk associated with it being on wire, + # if the server is not rotating its ticketing keys properly. + options |= OP_NO_TICKET + + context.options |= options + + # Enable post-handshake authentication for TLS 1.3, see GH #1634. PHA is + # necessary for conditional client cert authentication with TLS 1.3. + # The attribute is None for OpenSSL <= 1.1.0 or does not exist in older + # versions of Python. We only enable on Python 3.7.4+ or if certificate + # verification is enabled to work around Python issue #37428 + # See: https://bugs.python.org/issue37428 + if ( + cert_reqs == ssl.CERT_REQUIRED or sys.version_info >= (3, 7, 4) + ) and getattr(context, "post_handshake_auth", None) is not None: + context.post_handshake_auth = True + + def disable_check_hostname(): + if ( + getattr(context, "check_hostname", None) is not None + ): # Platform-specific: Python 3.2 + # We do our own verification, including fingerprints and alternative + # hostnames. So disable it here + context.check_hostname = False + + # The order of the below lines setting verify_mode and check_hostname + # matter due to safe-guards SSLContext has to prevent an SSLContext with + # check_hostname=True, verify_mode=NONE/OPTIONAL. This is made even more + # complex because we don't know whether PROTOCOL_TLS_CLIENT will be used + # or not so we don't know the initial state of the freshly created SSLContext. + if cert_reqs == ssl.CERT_REQUIRED: + context.verify_mode = cert_reqs + disable_check_hostname() + else: + disable_check_hostname() + context.verify_mode = cert_reqs + + # Enable logging of TLS session keys via defacto standard environment variable + # 'SSLKEYLOGFILE', if the feature is available (Python 3.8+). Skip empty values. + if hasattr(context, "keylog_filename"): + sslkeylogfile = os.environ.get("SSLKEYLOGFILE") + if sslkeylogfile and not sys.flags.ignore_environment: + context.keylog_filename = sslkeylogfile + + return context + + +def ensure_boolean(val): + """Ensures a boolean value if a string or boolean is provided + + For strings, the value for True/False is case insensitive + """ + if isinstance(val, bool): + return val + else: + return val.lower() == 'true' + + +def mask_proxy_url(proxy_url): + """ + Mask proxy url credentials. + + :type proxy_url: str + :param proxy_url: The proxy url, i.e. https://username:password@proxy.com + + :return: Masked proxy url, i.e. https://***:***@proxy.com + """ + mask = '*' * 3 + parsed_url = urlparse(proxy_url) + if parsed_url.username: + proxy_url = proxy_url.replace(parsed_url.username, mask, 1) + if parsed_url.password: + proxy_url = proxy_url.replace(parsed_url.password, mask, 1) + return proxy_url + + +def _is_ipaddress(host): + """Wrap urllib3's is_ipaddress to support bracketed IPv6 addresses.""" + return is_ipaddress(host) or bool(IPV6_ADDRZ_RE.match(host)) + + +class ProxyConfiguration: + """Represents a proxy configuration dictionary and additional settings. + + This class represents a proxy configuration dictionary and provides utility + functions to retrieve well structured proxy urls and proxy headers from the + proxy configuration dictionary. + """ + + def __init__(self, proxies=None, proxies_settings=None): + if proxies is None: + proxies = {} + if proxies_settings is None: + proxies_settings = {} + + self._proxies = proxies + self._proxies_settings = proxies_settings + + def proxy_url_for(self, url): + """Retrieves the corresponding proxy url for a given url.""" + parsed_url = urlparse(url) + proxy = self._proxies.get(parsed_url.scheme) + if proxy: + proxy = self._fix_proxy_url(proxy) + return proxy + + def proxy_headers_for(self, proxy_url): + """Retrieves the corresponding proxy headers for a given proxy url.""" + headers = {} + username, password = self._get_auth_from_url(proxy_url) + if username and password: + basic_auth = self._construct_basic_auth(username, password) + headers['Proxy-Authorization'] = basic_auth + return headers + + @property + def settings(self): + return self._proxies_settings + + def _fix_proxy_url(self, proxy_url): + if proxy_url.startswith('http:') or proxy_url.startswith('https:'): + return proxy_url + elif proxy_url.startswith('//'): + return 'http:' + proxy_url + else: + return 'http://' + proxy_url + + def _construct_basic_auth(self, username, password): + auth_str = f'{username}:{password}' + encoded_str = b64encode(auth_str.encode('ascii')).strip().decode() + return f'Basic {encoded_str}' + + def _get_auth_from_url(self, url): + parsed_url = urlparse(url) + try: + return unquote(parsed_url.username), unquote(parsed_url.password) + except (AttributeError, TypeError): + return None, None + + +class URLLib3Session: + """A basic HTTP client that supports connection pooling and proxies. + + This class is inspired by requests.adapters.HTTPAdapter, but has been + boiled down to meet the use cases needed by botocore. For the most part + this classes matches the functionality of HTTPAdapter in requests v2.7.0 + (the same as our vendored version). The only major difference of note is + that we currently do not support sending chunked requests. While requests + v2.7.0 implemented this themselves, later version urllib3 support this + directly via a flag to urlopen so enabling it if needed should be trivial. + """ + + def __init__( + self, + verify=True, + proxies=None, + timeout=None, + max_pool_connections=MAX_POOL_CONNECTIONS, + socket_options=None, + client_cert=None, + proxies_config=None, + ): + self._verify = verify + self._proxy_config = ProxyConfiguration( + proxies=proxies, proxies_settings=proxies_config + ) + self._pool_classes_by_scheme = { + 'http': botocore.awsrequest.AWSHTTPConnectionPool, + 'https': botocore.awsrequest.AWSHTTPSConnectionPool, + } + if timeout is None: + timeout = DEFAULT_TIMEOUT + if not isinstance(timeout, (int, float)): + timeout = Timeout(connect=timeout[0], read=timeout[1]) + + self._cert_file = None + self._key_file = None + if isinstance(client_cert, str): + self._cert_file = client_cert + elif isinstance(client_cert, tuple): + self._cert_file, self._key_file = client_cert + + self._timeout = timeout + self._max_pool_connections = max_pool_connections + self._socket_options = socket_options + if socket_options is None: + self._socket_options = [] + self._proxy_managers = {} + self._manager = PoolManager(**self._get_pool_manager_kwargs()) + self._manager.pool_classes_by_scheme = self._pool_classes_by_scheme + + def _proxies_kwargs(self, **kwargs): + proxies_settings = self._proxy_config.settings + proxies_kwargs = { + 'use_forwarding_for_https': proxies_settings.get( + 'proxy_use_forwarding_for_https' + ), + **kwargs, + } + return {k: v for k, v in proxies_kwargs.items() if v is not None} + + def _get_pool_manager_kwargs(self, **extra_kwargs): + pool_manager_kwargs = { + 'timeout': self._timeout, + 'maxsize': self._max_pool_connections, + 'ssl_context': self._get_ssl_context(), + 'socket_options': self._socket_options, + 'cert_file': self._cert_file, + 'key_file': self._key_file, + } + if BUFFER_SIZE: + pool_manager_kwargs['blocksize'] = BUFFER_SIZE + pool_manager_kwargs.update(**extra_kwargs) + return pool_manager_kwargs + + def _get_ssl_context(self): + return create_urllib3_context() + + def _get_proxy_manager(self, proxy_url): + if proxy_url not in self._proxy_managers: + proxy_headers = self._proxy_config.proxy_headers_for(proxy_url) + proxy_ssl_context = self._setup_proxy_ssl_context(proxy_url) + proxy_manager_kwargs = self._get_pool_manager_kwargs( + proxy_headers=proxy_headers + ) + proxy_manager_kwargs.update( + self._proxies_kwargs(proxy_ssl_context=proxy_ssl_context) + ) + proxy_manager = proxy_from_url(proxy_url, **proxy_manager_kwargs) + proxy_manager.pool_classes_by_scheme = self._pool_classes_by_scheme + self._proxy_managers[proxy_url] = proxy_manager + + return self._proxy_managers[proxy_url] + + def _path_url(self, url): + parsed_url = urlparse(url) + path = parsed_url.path + if not path: + path = '/' + if parsed_url.query: + path = path + '?' + parsed_url.query + return path + + def _setup_ssl_cert(self, conn, url, verify): + if url.lower().startswith('https') and verify: + conn.cert_reqs = 'CERT_REQUIRED' + conn.ca_certs = get_cert_path(verify) + else: + conn.cert_reqs = 'CERT_NONE' + conn.ca_certs = None + + def _setup_proxy_ssl_context(self, proxy_url): + proxies_settings = self._proxy_config.settings + proxy_ca_bundle = proxies_settings.get('proxy_ca_bundle') + proxy_cert = proxies_settings.get('proxy_client_cert') + if proxy_ca_bundle is None and proxy_cert is None: + return None + + context = self._get_ssl_context() + try: + url = parse_url(proxy_url) + # urllib3 disables this by default but we need it for proper + # proxy tls negotiation when proxy_url is not an IP Address + if not _is_ipaddress(url.host): + context.check_hostname = True + if proxy_ca_bundle is not None: + context.load_verify_locations(cafile=proxy_ca_bundle) + + if isinstance(proxy_cert, tuple): + context.load_cert_chain(proxy_cert[0], keyfile=proxy_cert[1]) + elif isinstance(proxy_cert, str): + context.load_cert_chain(proxy_cert) + + return context + except (OSError, URLLib3SSLError, LocationParseError) as e: + raise InvalidProxiesConfigError(error=e) + + def _get_connection_manager(self, url, proxy_url=None): + if proxy_url: + manager = self._get_proxy_manager(proxy_url) + else: + manager = self._manager + return manager + + def _get_request_target(self, url, proxy_url): + has_proxy = proxy_url is not None + + if not has_proxy: + return self._path_url(url) + + # HTTP proxies expect the request_target to be the absolute url to know + # which host to establish a connection to. urllib3 also supports + # forwarding for HTTPS through the 'use_forwarding_for_https' parameter. + proxy_scheme = urlparse(proxy_url).scheme + using_https_forwarding_proxy = ( + proxy_scheme == 'https' + and self._proxies_kwargs().get('use_forwarding_for_https', False) + ) + + if using_https_forwarding_proxy or url.startswith('http:'): + return url + else: + return self._path_url(url) + + def _chunked(self, headers): + transfer_encoding = headers.get('Transfer-Encoding', b'') + transfer_encoding = ensure_bytes(transfer_encoding) + return transfer_encoding.lower() == b'chunked' + + def close(self): + self._manager.clear() + for manager in self._proxy_managers.values(): + manager.clear() + + def send(self, request): + try: + proxy_url = self._proxy_config.proxy_url_for(request.url) + manager = self._get_connection_manager(request.url, proxy_url) + conn = manager.connection_from_url(request.url) + self._setup_ssl_cert(conn, request.url, self._verify) + if ensure_boolean( + os.environ.get('BOTO_EXPERIMENTAL__ADD_PROXY_HOST_HEADER', '') + ): + # This is currently an "experimental" feature which provides + # no guarantees of backwards compatibility. It may be subject + # to change or removal in any patch version. Anyone opting in + # to this feature should strictly pin botocore. + host = urlparse(request.url).hostname + conn.proxy_headers['host'] = host + + request_target = self._get_request_target(request.url, proxy_url) + urllib_response = conn.urlopen( + method=request.method, + url=request_target, + body=request.body, + headers=request.headers, + retries=Retry(False), + assert_same_host=False, + preload_content=False, + decode_content=False, + chunked=self._chunked(request.headers), + ) + + http_response = botocore.awsrequest.AWSResponse( + request.url, + urllib_response.status, + urllib_response.headers, + urllib_response, + ) + + if not request.stream_output: + # Cause the raw stream to be exhausted immediately. We do it + # this way instead of using preload_content because + # preload_content will never buffer chunked responses + http_response.content + + return http_response + except URLLib3SSLError as e: + raise SSLError(endpoint_url=request.url, error=e) + except (NewConnectionError, socket.gaierror) as e: + raise EndpointConnectionError(endpoint_url=request.url, error=e) + except ProxyError as e: + raise ProxyConnectionError( + proxy_url=mask_proxy_url(proxy_url), error=e + ) + except URLLib3ConnectTimeoutError as e: + raise ConnectTimeoutError(endpoint_url=request.url, error=e) + except URLLib3ReadTimeoutError as e: + raise ReadTimeoutError(endpoint_url=request.url, error=e) + except ProtocolError as e: + raise ConnectionClosedError( + error=e, request=request, endpoint_url=request.url + ) + except CancelledError: + raise + except Exception as e: + message = 'Exception received when sending urllib3 HTTP request' + logger.debug(message, exc_info=True) + raise HTTPClientError(error=e) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/loaders.py b/rep_localstack/lib/python3.12/site-packages/botocore/loaders.py new file mode 100644 index 000000000..0714b1ae5 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/loaders.py @@ -0,0 +1,525 @@ +# Copyright 2012-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +"""Module for loading various model files. + +This module provides the classes that are used to load models used +by botocore. This can include: + + * Service models (e.g. the model for EC2, S3, DynamoDB, etc.) + * Service model extras which customize the service models + * Other models associated with a service (pagination, waiters) + * Non service-specific config (Endpoint data, retry config) + +Loading a module is broken down into several steps: + + * Determining the path to load + * Search the data_path for files to load + * The mechanics of loading the file + * Searching for extras and applying them to the loaded file + +The last item is used so that other faster loading mechanism +besides the default JSON loader can be used. + +The Search Path +=============== + +Similar to how the PATH environment variable is to finding executables +and the PYTHONPATH environment variable is to finding python modules +to import, the botocore loaders have the concept of a data path exposed +through AWS_DATA_PATH. + +This enables end users to provide additional search paths where we +will attempt to load models outside of the models we ship with +botocore. When you create a ``Loader``, there are two paths +automatically added to the model search path: + + * /data/ + * ~/.aws/models + +The first value is the path where all the model files shipped with +botocore are located. + +The second path is so that users can just drop new model files in +``~/.aws/models`` without having to mess around with the AWS_DATA_PATH. + +The AWS_DATA_PATH using the platform specific path separator to +separate entries (typically ``:`` on linux and ``;`` on windows). + + +Directory Layout +================ + +The Loader expects a particular directory layout. In order for any +directory specified in AWS_DATA_PATH to be considered, it must have +this structure for service models:: + + + | + |-- servicename1 + | |-- 2012-10-25 + | |-- service-2.json + |-- ec2 + | |-- 2014-01-01 + | | |-- paginators-1.json + | | |-- service-2.json + | | |-- waiters-2.json + | |-- 2015-03-01 + | |-- paginators-1.json + | |-- service-2.json + | |-- waiters-2.json + | |-- service-2.sdk-extras.json + + +That is: + + * The root directory contains sub directories that are the name + of the services. + * Within each service directory, there's a sub directory for each + available API version. + * Within each API version, there are model specific files, including + (but not limited to): service-2.json, waiters-2.json, paginators-1.json + +The ``-1`` and ``-2`` suffix at the end of the model files denote which version +schema is used within the model. Even though this information is available in +the ``version`` key within the model, this version is also part of the filename +so that code does not need to load the JSON model in order to determine which +version to use. + +The ``sdk-extras`` and similar files represent extra data that needs to be +applied to the model after it is loaded. Data in these files might represent +information that doesn't quite fit in the original models, but is still needed +for the sdk. For instance, additional operation parameters might be added here +which don't represent the actual service api. +""" + +import logging +import os + +from botocore import BOTOCORE_ROOT +from botocore.compat import HAS_GZIP, OrderedDict, json +from botocore.exceptions import DataNotFoundError, UnknownServiceError +from botocore.utils import deep_merge + +_JSON_OPEN_METHODS = { + '.json': open, +} + + +if HAS_GZIP: + from gzip import open as gzip_open + + _JSON_OPEN_METHODS['.json.gz'] = gzip_open + + +logger = logging.getLogger(__name__) + + +def instance_cache(func): + """Cache the result of a method on a per instance basis. + + This is not a general purpose caching decorator. In order + for this to be used, it must be used on methods on an + instance, and that instance *must* provide a + ``self._cache`` dictionary. + + """ + + def _wrapper(self, *args, **kwargs): + key = (func.__name__,) + args + for pair in sorted(kwargs.items()): + key += pair + if key in self._cache: + return self._cache[key] + data = func(self, *args, **kwargs) + self._cache[key] = data + return data + + return _wrapper + + +class JSONFileLoader: + """Loader JSON files. + + This class can load the default format of models, which is a JSON file. + + """ + + def exists(self, file_path): + """Checks if the file exists. + + :type file_path: str + :param file_path: The full path to the file to load without + the '.json' extension. + + :return: True if file path exists, False otherwise. + + """ + for ext in _JSON_OPEN_METHODS: + if os.path.isfile(file_path + ext): + return True + return False + + def _load_file(self, full_path, open_method): + if not os.path.isfile(full_path): + return + + # By default the file will be opened with locale encoding on Python 3. + # We specify "utf8" here to ensure the correct behavior. + with open_method(full_path, 'rb') as fp: + payload = fp.read().decode('utf-8') + + logger.debug("Loading JSON file: %s", full_path) + return json.loads(payload, object_pairs_hook=OrderedDict) + + def load_file(self, file_path): + """Attempt to load the file path. + + :type file_path: str + :param file_path: The full path to the file to load without + the '.json' extension. + + :return: The loaded data if it exists, otherwise None. + + """ + for ext, open_method in _JSON_OPEN_METHODS.items(): + data = self._load_file(file_path + ext, open_method) + if data is not None: + return data + return None + + +def create_loader(search_path_string=None): + """Create a Loader class. + + This factory function creates a loader given a search string path. + + :type search_string_path: str + :param search_string_path: The AWS_DATA_PATH value. A string + of data path values separated by the ``os.path.pathsep`` value, + which is typically ``:`` on POSIX platforms and ``;`` on + windows. + + :return: A ``Loader`` instance. + + """ + if search_path_string is None: + return Loader() + paths = [] + extra_paths = search_path_string.split(os.pathsep) + for path in extra_paths: + path = os.path.expanduser(os.path.expandvars(path)) + paths.append(path) + return Loader(extra_search_paths=paths) + + +class Loader: + """Find and load data models. + + This class will handle searching for and loading data models. + + The main method used here is ``load_service_model``, which is a + convenience method over ``load_data`` and ``determine_latest_version``. + + """ + + FILE_LOADER_CLASS = JSONFileLoader + # The included models in botocore/data/ that we ship with botocore. + BUILTIN_DATA_PATH = os.path.join(BOTOCORE_ROOT, 'data') + # For convenience we automatically add ~/.aws/models to the data path. + CUSTOMER_DATA_PATH = os.path.join( + os.path.expanduser('~'), '.aws', 'models' + ) + BUILTIN_EXTRAS_TYPES = ['sdk'] + + def __init__( + self, + extra_search_paths=None, + file_loader=None, + cache=None, + include_default_search_paths=True, + include_default_extras=True, + ): + self._cache = {} + if file_loader is None: + file_loader = self.FILE_LOADER_CLASS() + self.file_loader = file_loader + if extra_search_paths is not None: + self._search_paths = extra_search_paths + else: + self._search_paths = [] + if include_default_search_paths: + self._search_paths.extend( + [self.CUSTOMER_DATA_PATH, self.BUILTIN_DATA_PATH] + ) + + self._extras_types = [] + if include_default_extras: + self._extras_types.extend(self.BUILTIN_EXTRAS_TYPES) + + self._extras_processor = ExtrasProcessor() + + @property + def search_paths(self): + return self._search_paths + + @property + def extras_types(self): + return self._extras_types + + @instance_cache + def list_available_services(self, type_name): + """List all known services. + + This will traverse the search path and look for all known + services. + + :type type_name: str + :param type_name: The type of the service (service-2, + paginators-1, waiters-2, etc). This is needed because + the list of available services depends on the service + type. For example, the latest API version available for + a resource-1.json file may not be the latest API version + available for a services-2.json file. + + :return: A list of all services. The list of services will + be sorted. + + """ + services = set() + for possible_path in self._potential_locations(): + # Any directory in the search path is potentially a service. + # We'll collect any initial list of potential services, + # but we'll then need to further process these directories + # by searching for the corresponding type_name in each + # potential directory. + possible_services = [ + d + for d in os.listdir(possible_path) + if os.path.isdir(os.path.join(possible_path, d)) + ] + for service_name in possible_services: + full_dirname = os.path.join(possible_path, service_name) + api_versions = os.listdir(full_dirname) + for api_version in api_versions: + full_load_path = os.path.join( + full_dirname, api_version, type_name + ) + if self.file_loader.exists(full_load_path): + services.add(service_name) + break + return sorted(services) + + @instance_cache + def determine_latest_version(self, service_name, type_name): + """Find the latest API version available for a service. + + :type service_name: str + :param service_name: The name of the service. + + :type type_name: str + :param type_name: The type of the service (service-2, + paginators-1, waiters-2, etc). This is needed because + the latest API version available can depend on the service + type. For example, the latest API version available for + a resource-1.json file may not be the latest API version + available for a services-2.json file. + + :rtype: str + :return: The latest API version. If the service does not exist + or does not have any available API data, then a + ``DataNotFoundError`` exception will be raised. + + """ + return max(self.list_api_versions(service_name, type_name)) + + @instance_cache + def list_api_versions(self, service_name, type_name): + """List all API versions available for a particular service type + + :type service_name: str + :param service_name: The name of the service + + :type type_name: str + :param type_name: The type name for the service (i.e service-2, + paginators-1, etc.) + + :rtype: list + :return: A list of API version strings in sorted order. + + """ + known_api_versions = set() + for possible_path in self._potential_locations( + service_name, must_exist=True, is_dir=True + ): + for dirname in os.listdir(possible_path): + full_path = os.path.join(possible_path, dirname, type_name) + # Only add to the known_api_versions if the directory + # contains a service-2, paginators-1, etc. file corresponding + # to the type_name passed in. + if self.file_loader.exists(full_path): + known_api_versions.add(dirname) + if not known_api_versions: + raise DataNotFoundError(data_path=service_name) + return sorted(known_api_versions) + + @instance_cache + def load_service_model(self, service_name, type_name, api_version=None): + """Load a botocore service model + + This is the main method for loading botocore models (e.g. a service + model, pagination configs, waiter configs, etc.). + + :type service_name: str + :param service_name: The name of the service (e.g ``ec2``, ``s3``). + + :type type_name: str + :param type_name: The model type. Valid types include, but are not + limited to: ``service-2``, ``paginators-1``, ``waiters-2``. + + :type api_version: str + :param api_version: The API version to load. If this is not + provided, then the latest API version will be used. + + :type load_extras: bool + :param load_extras: Whether or not to load the tool extras which + contain additional data to be added to the model. + + :raises: UnknownServiceError if there is no known service with + the provided service_name. + + :raises: DataNotFoundError if no data could be found for the + service_name/type_name/api_version. + + :return: The loaded data, as a python type (e.g. dict, list, etc). + """ + # Wrapper around the load_data. This will calculate the path + # to call load_data with. + known_services = self.list_available_services(type_name) + if service_name not in known_services: + raise UnknownServiceError( + service_name=service_name, + known_service_names=', '.join(known_services), + ) + if api_version is None: + api_version = self.determine_latest_version( + service_name, type_name + ) + full_path = os.path.join(service_name, api_version, type_name) + model = self.load_data(full_path) + + # Load in all the extras + extras_data = self._find_extras(service_name, type_name, api_version) + self._extras_processor.process(model, extras_data) + + return model + + def _find_extras(self, service_name, type_name, api_version): + """Creates an iterator over all the extras data.""" + for extras_type in self.extras_types: + extras_name = f'{type_name}.{extras_type}-extras' + full_path = os.path.join(service_name, api_version, extras_name) + + try: + yield self.load_data(full_path) + except DataNotFoundError: + pass + + @instance_cache + def load_data_with_path(self, name): + """Same as ``load_data`` but returns file path as second return value. + + :type name: str + :param name: The data path, i.e ``ec2/2015-03-01/service-2``. + + :return: Tuple of the loaded data and the path to the data file + where the data was loaded from. If no data could be found then a + DataNotFoundError is raised. + """ + for possible_path in self._potential_locations(name): + found = self.file_loader.load_file(possible_path) + if found is not None: + return found, possible_path + + # We didn't find anything that matched on any path. + raise DataNotFoundError(data_path=name) + + def load_data(self, name): + """Load data given a data path. + + This is a low level method that will search through the various + search paths until it's able to load a value. This is typically + only needed to load *non* model files (such as _endpoints and + _retry). If you need to load model files, you should prefer + ``load_service_model``. Use ``load_data_with_path`` to get the + data path of the data file as second return value. + + :type name: str + :param name: The data path, i.e ``ec2/2015-03-01/service-2``. + + :return: The loaded data. If no data could be found then + a DataNotFoundError is raised. + """ + data, _ = self.load_data_with_path(name) + return data + + def _potential_locations(self, name=None, must_exist=False, is_dir=False): + # Will give an iterator over the full path of potential locations + # according to the search path. + for path in self.search_paths: + if os.path.isdir(path): + full_path = path + if name is not None: + full_path = os.path.join(path, name) + if not must_exist: + yield full_path + else: + if is_dir and os.path.isdir(full_path): + yield full_path + elif os.path.exists(full_path): + yield full_path + + def is_builtin_path(self, path): + """Whether a given path is within the package's data directory. + + This method can be used together with load_data_with_path(name) + to determine if data has been loaded from a file bundled with the + package, as opposed to a file in a separate location. + + :type path: str + :param path: The file path to check. + + :return: Whether the given path is within the package's data directory. + """ + path = os.path.expanduser(os.path.expandvars(path)) + return path.startswith(self.BUILTIN_DATA_PATH) + + +class ExtrasProcessor: + """Processes data from extras files into service models.""" + + def process(self, original_model, extra_models): + """Processes data from a list of loaded extras files into a model + + :type original_model: dict + :param original_model: The service model to load all the extras into. + + :type extra_models: iterable of dict + :param extra_models: A list of loaded extras models. + """ + for extras in extra_models: + self._process(original_model, extras) + + def _process(self, model, extra_model): + """Process a single extras model into a service model.""" + if 'merge' in extra_model: + deep_merge(model, extra_model['merge']) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/model.py b/rep_localstack/lib/python3.12/site-packages/botocore/model.py new file mode 100644 index 000000000..b198652df --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/model.py @@ -0,0 +1,1006 @@ +# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +"""Abstractions to interact with service models.""" + +from collections import defaultdict +from typing import NamedTuple, Union + +from botocore.auth import resolve_auth_type +from botocore.compat import OrderedDict +from botocore.exceptions import ( + MissingServiceIdError, + UndefinedModelAttributeError, + UnsupportedServiceProtocolsError, +) +from botocore.utils import ( + PRIORITY_ORDERED_SUPPORTED_PROTOCOLS, + CachedProperty, + hyphenize_service_id, + instance_cache, +) + +NOT_SET = object() + + +class NoShapeFoundError(Exception): + pass + + +class InvalidShapeError(Exception): + pass + + +class OperationNotFoundError(Exception): + pass + + +class InvalidShapeReferenceError(Exception): + pass + + +class ServiceId(str): + def hyphenize(self): + return hyphenize_service_id(self) + + +class Shape: + """Object representing a shape from the service model.""" + + # To simplify serialization logic, all shape params that are + # related to serialization are moved from the top level hash into + # a 'serialization' hash. This list below contains the names of all + # the attributes that should be moved. + SERIALIZED_ATTRS = [ + 'locationName', + 'queryName', + 'flattened', + 'location', + 'payload', + 'streaming', + 'timestampFormat', + 'xmlNamespace', + 'resultWrapper', + 'xmlAttribute', + 'eventstream', + 'event', + 'eventheader', + 'eventpayload', + 'jsonvalue', + 'timestampFormat', + 'hostLabel', + ] + METADATA_ATTRS = [ + 'required', + 'min', + 'max', + 'pattern', + 'sensitive', + 'enum', + 'idempotencyToken', + 'error', + 'exception', + 'endpointdiscoveryid', + 'retryable', + 'document', + 'union', + 'contextParam', + 'clientContextParams', + 'requiresLength', + ] + MAP_TYPE = OrderedDict + + def __init__(self, shape_name, shape_model, shape_resolver=None): + """ + + :type shape_name: string + :param shape_name: The name of the shape. + + :type shape_model: dict + :param shape_model: The shape model. This would be the value + associated with the key in the "shapes" dict of the + service model (i.e ``model['shapes'][shape_name]``) + + :type shape_resolver: botocore.model.ShapeResolver + :param shape_resolver: A shape resolver object. This is used to + resolve references to other shapes. For scalar shape types + (string, integer, boolean, etc.), this argument is not + required. If a shape_resolver is not provided for a complex + type, then a ``ValueError`` will be raised when an attempt + to resolve a shape is made. + + """ + self.name = shape_name + self.type_name = shape_model['type'] + self.documentation = shape_model.get('documentation', '') + self._shape_model = shape_model + if shape_resolver is None: + # If a shape_resolver is not provided, we create an object + # that will throw errors if you attempt to resolve + # a shape. This is actually ok for scalar shapes + # because they don't need to resolve shapes and shouldn't + # be required to provide an object they won't use. + shape_resolver = UnresolvableShapeMap() + self._shape_resolver = shape_resolver + self._cache = {} + + @CachedProperty + def serialization(self): + """Serialization information about the shape. + + This contains information that may be needed for input serialization + or response parsing. This can include: + + * name + * queryName + * flattened + * location + * payload + * streaming + * xmlNamespace + * resultWrapper + * xmlAttribute + * jsonvalue + * timestampFormat + + :rtype: dict + :return: Serialization information about the shape. + + """ + model = self._shape_model + serialization = {} + for attr in self.SERIALIZED_ATTRS: + if attr in self._shape_model: + serialization[attr] = model[attr] + # For consistency, locationName is renamed to just 'name'. + if 'locationName' in serialization: + serialization['name'] = serialization.pop('locationName') + return serialization + + @CachedProperty + def metadata(self): + """Metadata about the shape. + + This requires optional information about the shape, including: + + * min + * max + * pattern + * enum + * sensitive + * required + * idempotencyToken + * document + * union + * contextParam + * clientContextParams + * requiresLength + + :rtype: dict + :return: Metadata about the shape. + + """ + model = self._shape_model + metadata = {} + for attr in self.METADATA_ATTRS: + if attr in self._shape_model: + metadata[attr] = model[attr] + return metadata + + @CachedProperty + def required_members(self): + """A list of members that are required. + + A structure shape can define members that are required. + This value will return a list of required members. If there + are no required members an empty list is returned. + + """ + return self.metadata.get('required', []) + + def _resolve_shape_ref(self, shape_ref): + return self._shape_resolver.resolve_shape_ref(shape_ref) + + def __repr__(self): + return f"<{self.__class__.__name__}({self.name})>" + + @property + def event_stream_name(self): + return None + + +class StructureShape(Shape): + @CachedProperty + def members(self): + members = self._shape_model.get('members', self.MAP_TYPE()) + # The members dict looks like: + # 'members': { + # 'MemberName': {'shape': 'shapeName'}, + # 'MemberName2': {'shape': 'shapeName'}, + # } + # We return a dict of member name to Shape object. + shape_members = self.MAP_TYPE() + for name, shape_ref in members.items(): + shape_members[name] = self._resolve_shape_ref(shape_ref) + return shape_members + + @CachedProperty + def event_stream_name(self): + for member_name, member in self.members.items(): + if member.serialization.get('eventstream'): + return member_name + return None + + @CachedProperty + def error_code(self): + if not self.metadata.get('exception', False): + return None + error_metadata = self.metadata.get("error", {}) + code = error_metadata.get("code") + if code: + return code + # Use the exception name if there is no explicit code modeled + return self.name + + @CachedProperty + def is_document_type(self): + return self.metadata.get('document', False) + + @CachedProperty + def is_tagged_union(self): + return self.metadata.get('union', False) + + +class ListShape(Shape): + @CachedProperty + def member(self): + return self._resolve_shape_ref(self._shape_model['member']) + + +class MapShape(Shape): + @CachedProperty + def key(self): + return self._resolve_shape_ref(self._shape_model['key']) + + @CachedProperty + def value(self): + return self._resolve_shape_ref(self._shape_model['value']) + + +class StringShape(Shape): + @CachedProperty + def enum(self): + return self.metadata.get('enum', []) + + +class StaticContextParameter(NamedTuple): + name: str + value: Union[bool, str] + + +class ContextParameter(NamedTuple): + name: str + member_name: str + + +class ClientContextParameter(NamedTuple): + name: str + type: str + documentation: str + + +class ServiceModel: + """ + + :ivar service_description: The parsed service description dictionary. + + """ + + def __init__(self, service_description, service_name=None): + """ + + :type service_description: dict + :param service_description: The service description model. This value + is obtained from a botocore.loader.Loader, or from directly loading + the file yourself:: + + service_description = json.load( + open('/path/to/service-description-model.json')) + model = ServiceModel(service_description) + + :type service_name: str + :param service_name: The name of the service. Normally this is + the endpoint prefix defined in the service_description. However, + you can override this value to provide a more convenient name. + This is done in a few places in botocore (ses instead of email, + emr instead of elasticmapreduce). If this value is not provided, + it will default to the endpointPrefix defined in the model. + + """ + self._service_description = service_description + # We want clients to be able to access metadata directly. + self.metadata = service_description.get('metadata', {}) + self._shape_resolver = ShapeResolver( + service_description.get('shapes', {}) + ) + self._signature_version = NOT_SET + self._service_name = service_name + self._instance_cache = {} + + def shape_for(self, shape_name, member_traits=None): + return self._shape_resolver.get_shape_by_name( + shape_name, member_traits + ) + + def shape_for_error_code(self, error_code): + return self._error_code_cache.get(error_code, None) + + @CachedProperty + def _error_code_cache(self): + error_code_cache = {} + for error_shape in self.error_shapes: + code = error_shape.error_code + error_code_cache[code] = error_shape + return error_code_cache + + def resolve_shape_ref(self, shape_ref): + return self._shape_resolver.resolve_shape_ref(shape_ref) + + @CachedProperty + def shape_names(self): + return list(self._service_description.get('shapes', {})) + + @CachedProperty + def error_shapes(self): + error_shapes = [] + for shape_name in self.shape_names: + error_shape = self.shape_for(shape_name) + if error_shape.metadata.get('exception', False): + error_shapes.append(error_shape) + return error_shapes + + @instance_cache + def operation_model(self, operation_name): + try: + model = self._service_description['operations'][operation_name] + except KeyError: + raise OperationNotFoundError(operation_name) + return OperationModel(model, self, operation_name) + + @CachedProperty + def documentation(self): + return self._service_description.get('documentation', '') + + @CachedProperty + def operation_names(self): + return list(self._service_description.get('operations', [])) + + @CachedProperty + def service_name(self): + """The name of the service. + + This defaults to the endpointPrefix defined in the service model. + However, this value can be overriden when a ``ServiceModel`` is + created. If a service_name was not provided when the ``ServiceModel`` + was created and if there is no endpointPrefix defined in the + service model, then an ``UndefinedModelAttributeError`` exception + will be raised. + + """ + if self._service_name is not None: + return self._service_name + else: + return self.endpoint_prefix + + @CachedProperty + def service_id(self): + try: + return ServiceId(self._get_metadata_property('serviceId')) + except UndefinedModelAttributeError: + raise MissingServiceIdError(service_name=self._service_name) + + @CachedProperty + def signing_name(self): + """The name to use when computing signatures. + + If the model does not define a signing name, this + value will be the endpoint prefix defined in the model. + """ + signing_name = self.metadata.get('signingName') + if signing_name is None: + signing_name = self.endpoint_prefix + return signing_name + + @CachedProperty + def api_version(self): + return self._get_metadata_property('apiVersion') + + @CachedProperty + def protocol(self): + return self._get_metadata_property('protocol') + + @CachedProperty + def protocols(self): + return self._get_metadata_property('protocols') + + @CachedProperty + def resolved_protocol(self): + # We need to ensure `protocols` exists in the metadata before attempting to + # access it directly since referencing service_model.protocols directly will + # raise an UndefinedModelAttributeError if protocols is not defined + if self.metadata.get('protocols'): + for protocol in PRIORITY_ORDERED_SUPPORTED_PROTOCOLS: + if protocol in self.protocols: + return protocol + raise UnsupportedServiceProtocolsError( + botocore_supported_protocols=PRIORITY_ORDERED_SUPPORTED_PROTOCOLS, + service_supported_protocols=self.protocols, + service=self.service_name, + ) + # If a service does not have a `protocols` trait, fall back to the legacy + # `protocol` trait + return self.protocol + + @CachedProperty + def endpoint_prefix(self): + return self._get_metadata_property('endpointPrefix') + + @CachedProperty + def endpoint_discovery_operation(self): + for operation in self.operation_names: + model = self.operation_model(operation) + if model.is_endpoint_discovery_operation: + return model + + @CachedProperty + def endpoint_discovery_required(self): + for operation in self.operation_names: + model = self.operation_model(operation) + if ( + model.endpoint_discovery is not None + and model.endpoint_discovery.get('required') + ): + return True + return False + + @CachedProperty + def client_context_parameters(self): + params = self._service_description.get('clientContextParams', {}) + return [ + ClientContextParameter( + name=param_name, + type=param_val['type'], + documentation=param_val['documentation'], + ) + for param_name, param_val in params.items() + ] + + def _get_metadata_property(self, name): + try: + return self.metadata[name] + except KeyError: + raise UndefinedModelAttributeError( + f'"{name}" not defined in the metadata of the model: {self}' + ) + + # Signature version is one of the rare properties + # that can be modified so a CachedProperty is not used here. + + @property + def signature_version(self): + if self._signature_version is NOT_SET: + signature_version = self.metadata.get('signatureVersion') + self._signature_version = signature_version + return self._signature_version + + @signature_version.setter + def signature_version(self, value): + self._signature_version = value + + @CachedProperty + def is_query_compatible(self): + return 'awsQueryCompatible' in self.metadata + + def __repr__(self): + return f'{self.__class__.__name__}({self.service_name})' + + +class OperationModel: + def __init__(self, operation_model, service_model, name=None): + """ + + :type operation_model: dict + :param operation_model: The operation model. This comes from the + service model, and is the value associated with the operation + name in the service model (i.e ``model['operations'][op_name]``). + + :type service_model: botocore.model.ServiceModel + :param service_model: The service model associated with the operation. + + :type name: string + :param name: The operation name. This is the operation name exposed to + the users of this model. This can potentially be different from + the "wire_name", which is the operation name that *must* by + provided over the wire. For example, given:: + + "CreateCloudFrontOriginAccessIdentity":{ + "name":"CreateCloudFrontOriginAccessIdentity2014_11_06", + ... + } + + The ``name`` would be ``CreateCloudFrontOriginAccessIdentity``, + but the ``self.wire_name`` would be + ``CreateCloudFrontOriginAccessIdentity2014_11_06``, which is the + value we must send in the corresponding HTTP request. + + """ + self._operation_model = operation_model + self._service_model = service_model + self._api_name = name + # Clients can access '.name' to get the operation name + # and '.metadata' to get the top level metdata of the service. + self._wire_name = operation_model.get('name') + self.metadata = service_model.metadata + self.http = operation_model.get('http', {}) + + @CachedProperty + def name(self): + if self._api_name is not None: + return self._api_name + else: + return self.wire_name + + @property + def wire_name(self): + """The wire name of the operation. + + In many situations this is the same value as the + ``name``, value, but in some services, the operation name + exposed to the user is different from the operation name + we send across the wire (e.g cloudfront). + + Any serialization code should use ``wire_name``. + + """ + return self._operation_model.get('name') + + @property + def service_model(self): + return self._service_model + + @CachedProperty + def documentation(self): + return self._operation_model.get('documentation', '') + + @CachedProperty + def deprecated(self): + return self._operation_model.get('deprecated', False) + + @CachedProperty + def endpoint_discovery(self): + # Explicit None default. An empty dictionary for this trait means it is + # enabled but not required to be used. + return self._operation_model.get('endpointdiscovery', None) + + @CachedProperty + def is_endpoint_discovery_operation(self): + return self._operation_model.get('endpointoperation', False) + + @CachedProperty + def input_shape(self): + if 'input' not in self._operation_model: + # Some operations do not accept any input and do not define an + # input shape. + return None + return self._service_model.resolve_shape_ref( + self._operation_model['input'] + ) + + @CachedProperty + def output_shape(self): + if 'output' not in self._operation_model: + # Some operations do not define an output shape, + # in which case we return None to indicate the + # operation has no expected output. + return None + return self._service_model.resolve_shape_ref( + self._operation_model['output'] + ) + + @CachedProperty + def idempotent_members(self): + input_shape = self.input_shape + if not input_shape: + return [] + + return [ + name + for (name, shape) in input_shape.members.items() + if 'idempotencyToken' in shape.metadata + and shape.metadata['idempotencyToken'] + ] + + @CachedProperty + def static_context_parameters(self): + params = self._operation_model.get('staticContextParams', {}) + return [ + StaticContextParameter(name=name, value=props.get('value')) + for name, props in params.items() + ] + + @CachedProperty + def context_parameters(self): + if not self.input_shape: + return [] + + return [ + ContextParameter( + name=shape.metadata['contextParam']['name'], + member_name=name, + ) + for name, shape in self.input_shape.members.items() + if 'contextParam' in shape.metadata + and 'name' in shape.metadata['contextParam'] + ] + + @CachedProperty + def operation_context_parameters(self): + return self._operation_model.get('operationContextParams', []) + + @CachedProperty + def request_compression(self): + return self._operation_model.get('requestcompression') + + @CachedProperty + def auth(self): + return self._operation_model.get('auth') + + @CachedProperty + def auth_type(self): + return self._operation_model.get('authtype') + + @CachedProperty + def resolved_auth_type(self): + if self.auth: + return resolve_auth_type(self.auth) + return self.auth_type + + @CachedProperty + def unsigned_payload(self): + return self._operation_model.get('unsignedPayload') + + @CachedProperty + def error_shapes(self): + shapes = self._operation_model.get("errors", []) + return list(self._service_model.resolve_shape_ref(s) for s in shapes) + + @CachedProperty + def endpoint(self): + return self._operation_model.get('endpoint') + + @CachedProperty + def http_checksum_required(self): + return self._operation_model.get('httpChecksumRequired', False) + + @CachedProperty + def http_checksum(self): + return self._operation_model.get('httpChecksum', {}) + + @CachedProperty + def has_event_stream_input(self): + return self.get_event_stream_input() is not None + + @CachedProperty + def has_event_stream_output(self): + return self.get_event_stream_output() is not None + + def get_event_stream_input(self): + return self._get_event_stream(self.input_shape) + + def get_event_stream_output(self): + return self._get_event_stream(self.output_shape) + + def _get_event_stream(self, shape): + """Returns the event stream member's shape if any or None otherwise.""" + if shape is None: + return None + event_name = shape.event_stream_name + if event_name: + return shape.members[event_name] + return None + + @CachedProperty + def has_streaming_input(self): + return self.get_streaming_input() is not None + + @CachedProperty + def has_streaming_output(self): + return self.get_streaming_output() is not None + + def get_streaming_input(self): + return self._get_streaming_body(self.input_shape) + + def get_streaming_output(self): + return self._get_streaming_body(self.output_shape) + + def _get_streaming_body(self, shape): + """Returns the streaming member's shape if any; or None otherwise.""" + if shape is None: + return None + payload = shape.serialization.get('payload') + if payload is not None: + payload_shape = shape.members[payload] + if payload_shape.type_name == 'blob': + return payload_shape + return None + + def __repr__(self): + return f'{self.__class__.__name__}(name={self.name})' + + +class ShapeResolver: + """Resolves shape references.""" + + # Any type not in this mapping will default to the Shape class. + SHAPE_CLASSES = { + 'structure': StructureShape, + 'list': ListShape, + 'map': MapShape, + 'string': StringShape, + } + + def __init__(self, shape_map): + self._shape_map = shape_map + self._shape_cache = {} + + def get_shape_by_name(self, shape_name, member_traits=None): + try: + shape_model = self._shape_map[shape_name] + except KeyError: + raise NoShapeFoundError(shape_name) + try: + shape_cls = self.SHAPE_CLASSES.get(shape_model['type'], Shape) + except KeyError: + raise InvalidShapeError( + f"Shape is missing required key 'type': {shape_model}" + ) + if member_traits: + shape_model = shape_model.copy() + shape_model.update(member_traits) + result = shape_cls(shape_name, shape_model, self) + return result + + def resolve_shape_ref(self, shape_ref): + # A shape_ref is a dict that has a 'shape' key that + # refers to a shape name as well as any additional + # member traits that are then merged over the shape + # definition. For example: + # {"shape": "StringType", "locationName": "Foobar"} + if len(shape_ref) == 1 and 'shape' in shape_ref: + # It's just a shape ref with no member traits, we can avoid + # a .copy(). This is the common case so it's specifically + # called out here. + return self.get_shape_by_name(shape_ref['shape']) + else: + member_traits = shape_ref.copy() + try: + shape_name = member_traits.pop('shape') + except KeyError: + raise InvalidShapeReferenceError( + f"Invalid model, missing shape reference: {shape_ref}" + ) + return self.get_shape_by_name(shape_name, member_traits) + + +class UnresolvableShapeMap: + """A ShapeResolver that will throw ValueErrors when shapes are resolved.""" + + def get_shape_by_name(self, shape_name, member_traits=None): + raise ValueError( + f"Attempted to lookup shape '{shape_name}', but no shape map was provided." + ) + + def resolve_shape_ref(self, shape_ref): + raise ValueError( + f"Attempted to resolve shape '{shape_ref}', but no shape " + f"map was provided." + ) + + +class DenormalizedStructureBuilder: + """Build a StructureShape from a denormalized model. + + This is a convenience builder class that makes it easy to construct + ``StructureShape``s based on a denormalized model. + + It will handle the details of creating unique shape names and creating + the appropriate shape map needed by the ``StructureShape`` class. + + Example usage:: + + builder = DenormalizedStructureBuilder() + shape = builder.with_members({ + 'A': { + 'type': 'structure', + 'members': { + 'B': { + 'type': 'structure', + 'members': { + 'C': { + 'type': 'string', + } + } + } + } + } + }).build_model() + # ``shape`` is now an instance of botocore.model.StructureShape + + :type dict_type: class + :param dict_type: The dictionary type to use, allowing you to opt-in + to using OrderedDict or another dict type. This can + be particularly useful for testing when order + matters, such as for documentation. + + """ + + SCALAR_TYPES = ( + 'string', + 'integer', + 'boolean', + 'blob', + 'float', + 'timestamp', + 'long', + 'double', + 'char', + ) + + def __init__(self, name=None): + self.members = OrderedDict() + self._name_generator = ShapeNameGenerator() + if name is None: + self.name = self._name_generator.new_shape_name('structure') + + def with_members(self, members): + """ + + :type members: dict + :param members: The denormalized members. + + :return: self + + """ + self._members = members + return self + + def build_model(self): + """Build the model based on the provided members. + + :rtype: botocore.model.StructureShape + :return: The built StructureShape object. + + """ + shapes = OrderedDict() + denormalized = { + 'type': 'structure', + 'members': self._members, + } + self._build_model(denormalized, shapes, self.name) + resolver = ShapeResolver(shape_map=shapes) + return StructureShape( + shape_name=self.name, + shape_model=shapes[self.name], + shape_resolver=resolver, + ) + + def _build_model(self, model, shapes, shape_name): + if model['type'] == 'structure': + shapes[shape_name] = self._build_structure(model, shapes) + elif model['type'] == 'list': + shapes[shape_name] = self._build_list(model, shapes) + elif model['type'] == 'map': + shapes[shape_name] = self._build_map(model, shapes) + elif model['type'] in self.SCALAR_TYPES: + shapes[shape_name] = self._build_scalar(model) + else: + raise InvalidShapeError(f"Unknown shape type: {model['type']}") + + def _build_structure(self, model, shapes): + members = OrderedDict() + shape = self._build_initial_shape(model) + shape['members'] = members + + for name, member_model in model.get('members', OrderedDict()).items(): + member_shape_name = self._get_shape_name(member_model) + members[name] = {'shape': member_shape_name} + self._build_model(member_model, shapes, member_shape_name) + return shape + + def _build_list(self, model, shapes): + member_shape_name = self._get_shape_name(model) + shape = self._build_initial_shape(model) + shape['member'] = {'shape': member_shape_name} + self._build_model(model['member'], shapes, member_shape_name) + return shape + + def _build_map(self, model, shapes): + key_shape_name = self._get_shape_name(model['key']) + value_shape_name = self._get_shape_name(model['value']) + shape = self._build_initial_shape(model) + shape['key'] = {'shape': key_shape_name} + shape['value'] = {'shape': value_shape_name} + self._build_model(model['key'], shapes, key_shape_name) + self._build_model(model['value'], shapes, value_shape_name) + return shape + + def _build_initial_shape(self, model): + shape = { + 'type': model['type'], + } + if 'documentation' in model: + shape['documentation'] = model['documentation'] + for attr in Shape.METADATA_ATTRS: + if attr in model: + shape[attr] = model[attr] + return shape + + def _build_scalar(self, model): + return self._build_initial_shape(model) + + def _get_shape_name(self, model): + if 'shape_name' in model: + return model['shape_name'] + else: + return self._name_generator.new_shape_name(model['type']) + + +class ShapeNameGenerator: + """Generate unique shape names for a type. + + This class can be used in conjunction with the DenormalizedStructureBuilder + to generate unique shape names for a given type. + + """ + + def __init__(self): + self._name_cache = defaultdict(int) + + def new_shape_name(self, type_name): + """Generate a unique shape name. + + This method will guarantee a unique shape name each time it is + called with the same type. + + :: + + >>> s = ShapeNameGenerator() + >>> s.new_shape_name('structure') + 'StructureType1' + >>> s.new_shape_name('structure') + 'StructureType2' + >>> s.new_shape_name('list') + 'ListType1' + >>> s.new_shape_name('list') + 'ListType2' + + + :type type_name: string + :param type_name: The type name (structure, list, map, string, etc.) + + :rtype: string + :return: A unique shape name for the given type + + """ + self._name_cache[type_name] += 1 + current_index = self._name_cache[type_name] + return f'{type_name.capitalize()}Type{current_index}' diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/monitoring.py b/rep_localstack/lib/python3.12/site-packages/botocore/monitoring.py new file mode 100644 index 000000000..d57cf0ae6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/monitoring.py @@ -0,0 +1,586 @@ +# Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import json +import logging +import re +import time + +from botocore.compat import ensure_bytes, ensure_unicode, urlparse +from botocore.retryhandler import EXCEPTION_MAP as RETRYABLE_EXCEPTIONS + +logger = logging.getLogger(__name__) + + +class Monitor: + _EVENTS_TO_REGISTER = [ + 'before-parameter-build', + 'request-created', + 'response-received', + 'after-call', + 'after-call-error', + ] + + def __init__(self, adapter, publisher): + """Abstraction for monitoring clients API calls + + :param adapter: An adapter that takes event emitter events + and produces monitor events + + :param publisher: A publisher for generated monitor events + """ + self._adapter = adapter + self._publisher = publisher + + def register(self, event_emitter): + """Register an event emitter to the monitor""" + for event_to_register in self._EVENTS_TO_REGISTER: + event_emitter.register_last(event_to_register, self.capture) + + def capture(self, event_name, **payload): + """Captures an incoming event from the event emitter + + It will feed an event emitter event to the monitor's adaptor to create + a monitor event and then publish that event to the monitor's publisher. + """ + try: + monitor_event = self._adapter.feed(event_name, payload) + if monitor_event: + self._publisher.publish(monitor_event) + except Exception as e: + logger.debug( + 'Exception %s raised by client monitor in handling event %s', + e, + event_name, + exc_info=True, + ) + + +class MonitorEventAdapter: + def __init__(self, time=time.time): + """Adapts event emitter events to produce monitor events + + :type time: callable + :param time: A callable that produces the current time + """ + self._time = time + + def feed(self, emitter_event_name, emitter_payload): + """Feed an event emitter event to generate a monitor event + + :type emitter_event_name: str + :param emitter_event_name: The name of the event emitted + + :type emitter_payload: dict + :param emitter_payload: The payload to associated to the event + emitted + + :rtype: BaseMonitorEvent + :returns: A monitor event based on the event emitter events + fired + """ + return self._get_handler(emitter_event_name)(**emitter_payload) + + def _get_handler(self, event_name): + return getattr( + self, '_handle_' + event_name.split('.')[0].replace('-', '_') + ) + + def _handle_before_parameter_build(self, model, context, **kwargs): + context['current_api_call_event'] = APICallEvent( + service=model.service_model.service_id, + operation=model.wire_name, + timestamp=self._get_current_time(), + ) + + def _handle_request_created(self, request, **kwargs): + context = request.context + new_attempt_event = context[ + 'current_api_call_event' + ].new_api_call_attempt(timestamp=self._get_current_time()) + new_attempt_event.request_headers = request.headers + new_attempt_event.url = request.url + context['current_api_call_attempt_event'] = new_attempt_event + + def _handle_response_received( + self, parsed_response, context, exception, **kwargs + ): + attempt_event = context.pop('current_api_call_attempt_event') + attempt_event.latency = self._get_latency(attempt_event) + if parsed_response is not None: + attempt_event.http_status_code = parsed_response[ + 'ResponseMetadata' + ]['HTTPStatusCode'] + attempt_event.response_headers = parsed_response[ + 'ResponseMetadata' + ]['HTTPHeaders'] + attempt_event.parsed_error = parsed_response.get('Error') + else: + attempt_event.wire_exception = exception + return attempt_event + + def _handle_after_call(self, context, parsed, **kwargs): + context['current_api_call_event'].retries_exceeded = parsed[ + 'ResponseMetadata' + ].get('MaxAttemptsReached', False) + return self._complete_api_call(context) + + def _handle_after_call_error(self, context, exception, **kwargs): + # If the after-call-error was emitted and the error being raised + # was a retryable connection error, then the retries must have exceeded + # for that exception as this event gets emitted **after** retries + # happen. + context[ + 'current_api_call_event' + ].retries_exceeded = self._is_retryable_exception(exception) + return self._complete_api_call(context) + + def _is_retryable_exception(self, exception): + return isinstance( + exception, tuple(RETRYABLE_EXCEPTIONS['GENERAL_CONNECTION_ERROR']) + ) + + def _complete_api_call(self, context): + call_event = context.pop('current_api_call_event') + call_event.latency = self._get_latency(call_event) + return call_event + + def _get_latency(self, event): + return self._get_current_time() - event.timestamp + + def _get_current_time(self): + return int(self._time() * 1000) + + +class BaseMonitorEvent: + def __init__(self, service, operation, timestamp): + """Base monitor event + + :type service: str + :param service: A string identifying the service associated to + the event + + :type operation: str + :param operation: A string identifying the operation of service + associated to the event + + :type timestamp: int + :param timestamp: Epoch time in milliseconds from when the event began + """ + self.service = service + self.operation = operation + self.timestamp = timestamp + + def __repr__(self): + return f'{self.__class__.__name__}({self.__dict__!r})' + + def __eq__(self, other): + if isinstance(other, self.__class__): + return self.__dict__ == other.__dict__ + return False + + +class APICallEvent(BaseMonitorEvent): + def __init__( + self, + service, + operation, + timestamp, + latency=None, + attempts=None, + retries_exceeded=False, + ): + """Monitor event for a single API call + + This event corresponds to a single client method call, which includes + every HTTP requests attempt made in order to complete the client call + + :type service: str + :param service: A string identifying the service associated to + the event + + :type operation: str + :param operation: A string identifying the operation of service + associated to the event + + :type timestamp: int + :param timestamp: Epoch time in milliseconds from when the event began + + :type latency: int + :param latency: The time in milliseconds to complete the client call + + :type attempts: list + :param attempts: The list of APICallAttempts associated to the + APICall + + :type retries_exceeded: bool + :param retries_exceeded: True if API call exceeded retries. False + otherwise + """ + super().__init__( + service=service, operation=operation, timestamp=timestamp + ) + self.latency = latency + self.attempts = attempts + if attempts is None: + self.attempts = [] + self.retries_exceeded = retries_exceeded + + def new_api_call_attempt(self, timestamp): + """Instantiates APICallAttemptEvent associated to the APICallEvent + + :type timestamp: int + :param timestamp: Epoch time in milliseconds to associate to the + APICallAttemptEvent + """ + attempt_event = APICallAttemptEvent( + service=self.service, operation=self.operation, timestamp=timestamp + ) + self.attempts.append(attempt_event) + return attempt_event + + +class APICallAttemptEvent(BaseMonitorEvent): + def __init__( + self, + service, + operation, + timestamp, + latency=None, + url=None, + http_status_code=None, + request_headers=None, + response_headers=None, + parsed_error=None, + wire_exception=None, + ): + """Monitor event for a single API call attempt + + This event corresponds to a single HTTP request attempt in completing + the entire client method call. + + :type service: str + :param service: A string identifying the service associated to + the event + + :type operation: str + :param operation: A string identifying the operation of service + associated to the event + + :type timestamp: int + :param timestamp: Epoch time in milliseconds from when the HTTP request + started + + :type latency: int + :param latency: The time in milliseconds to complete the HTTP request + whether it succeeded or failed + + :type url: str + :param url: The URL the attempt was sent to + + :type http_status_code: int + :param http_status_code: The HTTP status code of the HTTP response + if there was a response + + :type request_headers: dict + :param request_headers: The HTTP headers sent in making the HTTP + request + + :type response_headers: dict + :param response_headers: The HTTP headers returned in the HTTP response + if there was a response + + :type parsed_error: dict + :param parsed_error: The error parsed if the service returned an + error back + + :type wire_exception: Exception + :param wire_exception: The exception raised in sending the HTTP + request (i.e. ConnectionError) + """ + super().__init__( + service=service, operation=operation, timestamp=timestamp + ) + self.latency = latency + self.url = url + self.http_status_code = http_status_code + self.request_headers = request_headers + self.response_headers = response_headers + self.parsed_error = parsed_error + self.wire_exception = wire_exception + + +class CSMSerializer: + _MAX_CLIENT_ID_LENGTH = 255 + _MAX_EXCEPTION_CLASS_LENGTH = 128 + _MAX_ERROR_CODE_LENGTH = 128 + _MAX_USER_AGENT_LENGTH = 256 + _MAX_MESSAGE_LENGTH = 512 + _RESPONSE_HEADERS_TO_EVENT_ENTRIES = { + 'x-amzn-requestid': 'XAmznRequestId', + 'x-amz-request-id': 'XAmzRequestId', + 'x-amz-id-2': 'XAmzId2', + } + _AUTH_REGEXS = { + 'v4': re.compile( + r'AWS4-HMAC-SHA256 ' + r'Credential=(?P\w+)/\d+/' + r'(?P[a-z0-9-]+)/' + ), + 's3': re.compile(r'AWS (?P\w+):'), + } + _SERIALIZEABLE_EVENT_PROPERTIES = [ + 'service', + 'operation', + 'timestamp', + 'attempts', + 'latency', + 'retries_exceeded', + 'url', + 'request_headers', + 'http_status_code', + 'response_headers', + 'parsed_error', + 'wire_exception', + ] + + def __init__(self, csm_client_id): + """Serializes monitor events to CSM (Client Side Monitoring) format + + :type csm_client_id: str + :param csm_client_id: The application identifier to associate + to the serialized events + """ + self._validate_client_id(csm_client_id) + self.csm_client_id = csm_client_id + + def _validate_client_id(self, csm_client_id): + if len(csm_client_id) > self._MAX_CLIENT_ID_LENGTH: + raise ValueError( + f'The value provided for csm_client_id: {csm_client_id} exceeds ' + f'the maximum length of {self._MAX_CLIENT_ID_LENGTH} characters' + ) + + def serialize(self, event): + """Serializes a monitor event to the CSM format + + :type event: BaseMonitorEvent + :param event: The event to serialize to bytes + + :rtype: bytes + :returns: The CSM serialized form of the event + """ + event_dict = self._get_base_event_dict(event) + event_type = self._get_event_type(event) + event_dict['Type'] = event_type + for attr in self._SERIALIZEABLE_EVENT_PROPERTIES: + value = getattr(event, attr, None) + if value is not None: + getattr(self, '_serialize_' + attr)( + value, event_dict, event_type=event_type + ) + return ensure_bytes(json.dumps(event_dict, separators=(',', ':'))) + + def _get_base_event_dict(self, event): + return { + 'Version': 1, + 'ClientId': self.csm_client_id, + } + + def _serialize_service(self, service, event_dict, **kwargs): + event_dict['Service'] = service + + def _serialize_operation(self, operation, event_dict, **kwargs): + event_dict['Api'] = operation + + def _serialize_timestamp(self, timestamp, event_dict, **kwargs): + event_dict['Timestamp'] = timestamp + + def _serialize_attempts(self, attempts, event_dict, **kwargs): + event_dict['AttemptCount'] = len(attempts) + if attempts: + self._add_fields_from_last_attempt(event_dict, attempts[-1]) + + def _add_fields_from_last_attempt(self, event_dict, last_attempt): + if last_attempt.request_headers: + # It does not matter which attempt to use to grab the region + # for the ApiCall event, but SDKs typically do the last one. + region = self._get_region(last_attempt.request_headers) + if region is not None: + event_dict['Region'] = region + event_dict['UserAgent'] = self._get_user_agent( + last_attempt.request_headers + ) + if last_attempt.http_status_code is not None: + event_dict['FinalHttpStatusCode'] = last_attempt.http_status_code + if last_attempt.parsed_error is not None: + self._serialize_parsed_error( + last_attempt.parsed_error, event_dict, 'ApiCall' + ) + if last_attempt.wire_exception is not None: + self._serialize_wire_exception( + last_attempt.wire_exception, event_dict, 'ApiCall' + ) + + def _serialize_latency(self, latency, event_dict, event_type): + if event_type == 'ApiCall': + event_dict['Latency'] = latency + elif event_type == 'ApiCallAttempt': + event_dict['AttemptLatency'] = latency + + def _serialize_retries_exceeded( + self, retries_exceeded, event_dict, **kwargs + ): + event_dict['MaxRetriesExceeded'] = 1 if retries_exceeded else 0 + + def _serialize_url(self, url, event_dict, **kwargs): + event_dict['Fqdn'] = urlparse(url).netloc + + def _serialize_request_headers( + self, request_headers, event_dict, **kwargs + ): + event_dict['UserAgent'] = self._get_user_agent(request_headers) + if self._is_signed(request_headers): + event_dict['AccessKey'] = self._get_access_key(request_headers) + region = self._get_region(request_headers) + if region is not None: + event_dict['Region'] = region + if 'X-Amz-Security-Token' in request_headers: + event_dict['SessionToken'] = request_headers[ + 'X-Amz-Security-Token' + ] + + def _serialize_http_status_code( + self, http_status_code, event_dict, **kwargs + ): + event_dict['HttpStatusCode'] = http_status_code + + def _serialize_response_headers( + self, response_headers, event_dict, **kwargs + ): + for header, entry in self._RESPONSE_HEADERS_TO_EVENT_ENTRIES.items(): + if header in response_headers: + event_dict[entry] = response_headers[header] + + def _serialize_parsed_error( + self, parsed_error, event_dict, event_type, **kwargs + ): + field_prefix = 'Final' if event_type == 'ApiCall' else '' + event_dict[field_prefix + 'AwsException'] = self._truncate( + parsed_error['Code'], self._MAX_ERROR_CODE_LENGTH + ) + event_dict[field_prefix + 'AwsExceptionMessage'] = self._truncate( + parsed_error['Message'], self._MAX_MESSAGE_LENGTH + ) + + def _serialize_wire_exception( + self, wire_exception, event_dict, event_type, **kwargs + ): + field_prefix = 'Final' if event_type == 'ApiCall' else '' + event_dict[field_prefix + 'SdkException'] = self._truncate( + wire_exception.__class__.__name__, self._MAX_EXCEPTION_CLASS_LENGTH + ) + event_dict[field_prefix + 'SdkExceptionMessage'] = self._truncate( + str(wire_exception), self._MAX_MESSAGE_LENGTH + ) + + def _get_event_type(self, event): + if isinstance(event, APICallEvent): + return 'ApiCall' + elif isinstance(event, APICallAttemptEvent): + return 'ApiCallAttempt' + + def _get_access_key(self, request_headers): + auth_val = self._get_auth_value(request_headers) + _, auth_match = self._get_auth_match(auth_val) + return auth_match.group('access_key') + + def _get_region(self, request_headers): + if not self._is_signed(request_headers): + return None + auth_val = self._get_auth_value(request_headers) + signature_version, auth_match = self._get_auth_match(auth_val) + if signature_version != 'v4': + return None + return auth_match.group('signing_region') + + def _get_user_agent(self, request_headers): + return self._truncate( + ensure_unicode(request_headers.get('User-Agent', '')), + self._MAX_USER_AGENT_LENGTH, + ) + + def _is_signed(self, request_headers): + return 'Authorization' in request_headers + + def _get_auth_value(self, request_headers): + return ensure_unicode(request_headers['Authorization']) + + def _get_auth_match(self, auth_val): + for signature_version, regex in self._AUTH_REGEXS.items(): + match = regex.match(auth_val) + if match: + return signature_version, match + return None, None + + def _truncate(self, text, max_length): + if len(text) > max_length: + logger.debug( + 'Truncating following value to maximum length of %s: %s', + text, + max_length, + ) + return text[:max_length] + return text + + +class SocketPublisher: + _MAX_MONITOR_EVENT_LENGTH = 8 * 1024 + + def __init__(self, socket, host, port, serializer): + """Publishes monitor events to a socket + + :type socket: socket.socket + :param socket: The socket object to use to publish events + + :type host: string + :param host: The host to send events to + + :type port: integer + :param port: The port on the host to send events to + + :param serializer: The serializer to use to serialize the event + to a form that can be published to the socket. This must + have a `serialize()` method that accepts a monitor event + and return bytes + """ + self._socket = socket + self._address = (host, port) + self._serializer = serializer + + def publish(self, event): + """Publishes a specified monitor event + + :type event: BaseMonitorEvent + :param event: The monitor event to be sent + over the publisher's socket to the desired address. + """ + serialized_event = self._serializer.serialize(event) + if len(serialized_event) > self._MAX_MONITOR_EVENT_LENGTH: + logger.debug( + 'Serialized event of size %s exceeds the maximum length ' + 'allowed: %s. Not sending event to socket.', + len(serialized_event), + self._MAX_MONITOR_EVENT_LENGTH, + ) + return + self._socket.sendto(serialized_event, self._address) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/paginate.py b/rep_localstack/lib/python3.12/site-packages/botocore/paginate.py new file mode 100644 index 000000000..63b4a29f8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/paginate.py @@ -0,0 +1,728 @@ +# Copyright 2012-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import base64 +import json +import logging +from functools import partial +from itertools import tee + +import jmespath + +from botocore.context import with_current_context +from botocore.exceptions import PaginationError +from botocore.useragent import register_feature_id +from botocore.utils import merge_dicts, set_value_from_jmespath + +log = logging.getLogger(__name__) + + +class TokenEncoder: + """Encodes dictionaries into opaque strings. + + This for the most part json dumps + base64 encoding, but also supports + having bytes in the dictionary in addition to the types that json can + handle by default. + + This is intended for use in encoding pagination tokens, which in some + cases can be complex structures and / or contain bytes. + """ + + def encode(self, token): + """Encodes a dictionary to an opaque string. + + :type token: dict + :param token: A dictionary containing pagination information, + particularly the service pagination token(s) but also other boto + metadata. + + :rtype: str + :returns: An opaque string + """ + try: + # Try just using json dumps first to avoid having to traverse + # and encode the dict. In 99.9999% of cases this will work. + json_string = json.dumps(token) + except (TypeError, UnicodeDecodeError): + # If normal dumping failed, go through and base64 encode all bytes. + encoded_token, encoded_keys = self._encode(token, []) + + # Save the list of all the encoded key paths. We can safely + # assume that no service will ever use this key. + encoded_token['boto_encoded_keys'] = encoded_keys + + # Now that the bytes are all encoded, dump the json. + json_string = json.dumps(encoded_token) + + # base64 encode the json string to produce an opaque token string. + return base64.b64encode(json_string.encode('utf-8')).decode('utf-8') + + def _encode(self, data, path): + """Encode bytes in given data, keeping track of the path traversed.""" + if isinstance(data, dict): + return self._encode_dict(data, path) + elif isinstance(data, list): + return self._encode_list(data, path) + elif isinstance(data, bytes): + return self._encode_bytes(data, path) + else: + return data, [] + + def _encode_list(self, data, path): + """Encode any bytes in a list, noting the index of what is encoded.""" + new_data = [] + encoded = [] + for i, value in enumerate(data): + new_path = path + [i] + new_value, new_encoded = self._encode(value, new_path) + new_data.append(new_value) + encoded.extend(new_encoded) + return new_data, encoded + + def _encode_dict(self, data, path): + """Encode any bytes in a dict, noting the index of what is encoded.""" + new_data = {} + encoded = [] + for key, value in data.items(): + new_path = path + [key] + new_value, new_encoded = self._encode(value, new_path) + new_data[key] = new_value + encoded.extend(new_encoded) + return new_data, encoded + + def _encode_bytes(self, data, path): + """Base64 encode a byte string.""" + return base64.b64encode(data).decode('utf-8'), [path] + + +class TokenDecoder: + """Decodes token strings back into dictionaries. + + This performs the inverse operation to the TokenEncoder, accepting + opaque strings and decoding them into a useable form. + """ + + def decode(self, token): + """Decodes an opaque string to a dictionary. + + :type token: str + :param token: A token string given by the botocore pagination + interface. + + :rtype: dict + :returns: A dictionary containing pagination information, + particularly the service pagination token(s) but also other boto + metadata. + """ + json_string = base64.b64decode(token.encode('utf-8')).decode('utf-8') + decoded_token = json.loads(json_string) + + # Remove the encoding metadata as it is read since it will no longer + # be needed. + encoded_keys = decoded_token.pop('boto_encoded_keys', None) + if encoded_keys is None: + return decoded_token + else: + return self._decode(decoded_token, encoded_keys) + + def _decode(self, token, encoded_keys): + """Find each encoded value and decode it.""" + for key in encoded_keys: + encoded = self._path_get(token, key) + decoded = base64.b64decode(encoded.encode('utf-8')) + self._path_set(token, key, decoded) + return token + + def _path_get(self, data, path): + """Return the nested data at the given path. + + For instance: + data = {'foo': ['bar', 'baz']} + path = ['foo', 0] + ==> 'bar' + """ + # jmespath isn't used here because it would be difficult to actually + # create the jmespath query when taking all of the unknowns of key + # structure into account. Gross though this is, it is simple and not + # very error prone. + d = data + for step in path: + d = d[step] + return d + + def _path_set(self, data, path, value): + """Set the value of a key in the given data. + + Example: + data = {'foo': ['bar', 'baz']} + path = ['foo', 1] + value = 'bin' + ==> data = {'foo': ['bar', 'bin']} + """ + container = self._path_get(data, path[:-1]) + container[path[-1]] = value + + +class PaginatorModel: + def __init__(self, paginator_config): + self._paginator_config = paginator_config['pagination'] + + def get_paginator(self, operation_name): + try: + single_paginator_config = self._paginator_config[operation_name] + except KeyError: + raise ValueError( + f"Paginator for operation does not exist: {operation_name}" + ) + return single_paginator_config + + +class PageIterator: + """An iterable object to paginate API results. + Please note it is NOT a python iterator. + Use ``iter`` to wrap this as a generator. + """ + + def __init__( + self, + method, + input_token, + output_token, + more_results, + result_keys, + non_aggregate_keys, + limit_key, + max_items, + starting_token, + page_size, + op_kwargs, + ): + self._method = method + self._input_token = input_token + self._output_token = output_token + self._more_results = more_results + self._result_keys = result_keys + self._max_items = max_items + self._limit_key = limit_key + self._starting_token = starting_token + self._page_size = page_size + self._op_kwargs = op_kwargs + self._resume_token = None + self._non_aggregate_key_exprs = non_aggregate_keys + self._non_aggregate_part = {} + self._token_encoder = TokenEncoder() + self._token_decoder = TokenDecoder() + + @property + def result_keys(self): + return self._result_keys + + @property + def resume_token(self): + """Token to specify to resume pagination.""" + return self._resume_token + + @resume_token.setter + def resume_token(self, value): + if not isinstance(value, dict): + raise ValueError(f"Bad starting token: {value}") + + if 'boto_truncate_amount' in value: + token_keys = sorted(self._input_token + ['boto_truncate_amount']) + else: + token_keys = sorted(self._input_token) + dict_keys = sorted(value.keys()) + + if token_keys == dict_keys: + self._resume_token = self._token_encoder.encode(value) + else: + raise ValueError(f"Bad starting token: {value}") + + @property + def non_aggregate_part(self): + return self._non_aggregate_part + + def __iter__(self): + current_kwargs = self._op_kwargs + previous_next_token = None + next_token = {key: None for key in self._input_token} + if self._starting_token is not None: + # If the starting token exists, populate the next_token with the + # values inside it. This ensures that we have the service's + # pagination token on hand if we need to truncate after the + # first response. + next_token = self._parse_starting_token()[0] + # The number of items from result_key we've seen so far. + total_items = 0 + first_request = True + primary_result_key = self.result_keys[0] + starting_truncation = 0 + self._inject_starting_params(current_kwargs) + while True: + response = self._make_request(current_kwargs) + parsed = self._extract_parsed_response(response) + if first_request: + # The first request is handled differently. We could + # possibly have a resume/starting token that tells us where + # to index into the retrieved page. + if self._starting_token is not None: + starting_truncation = self._handle_first_request( + parsed, primary_result_key, starting_truncation + ) + first_request = False + self._record_non_aggregate_key_values(parsed) + else: + # If this isn't the first request, we have already sliced into + # the first request and had to make additional requests after. + # We no longer need to add this to truncation. + starting_truncation = 0 + current_response = primary_result_key.search(parsed) + if current_response is None: + current_response = [] + num_current_response = len(current_response) + truncate_amount = 0 + if self._max_items is not None: + truncate_amount = ( + total_items + num_current_response - self._max_items + ) + if truncate_amount > 0: + self._truncate_response( + parsed, + primary_result_key, + truncate_amount, + starting_truncation, + next_token, + ) + yield response + break + else: + yield response + total_items += num_current_response + next_token = self._get_next_token(parsed) + if all(t is None for t in next_token.values()): + break + if ( + self._max_items is not None + and total_items == self._max_items + ): + # We're on a page boundary so we can set the current + # next token to be the resume token. + self.resume_token = next_token + break + if ( + previous_next_token is not None + and previous_next_token == next_token + ): + message = ( + f"The same next token was received twice: {next_token}" + ) + raise PaginationError(message=message) + self._inject_token_into_kwargs(current_kwargs, next_token) + previous_next_token = next_token + + def search(self, expression): + """Applies a JMESPath expression to a paginator + + Each page of results is searched using the provided JMESPath + expression. If the result is not a list, it is yielded + directly. If the result is a list, each element in the result + is yielded individually (essentially implementing a flatmap in + which the JMESPath search is the mapping function). + + :type expression: str + :param expression: JMESPath expression to apply to each page. + + :return: Returns an iterator that yields the individual + elements of applying a JMESPath expression to each page of + results. + """ + compiled = jmespath.compile(expression) + for page in self: + results = compiled.search(page) + if isinstance(results, list): + yield from results + else: + # Yield result directly if it is not a list. + yield results + + @with_current_context(partial(register_feature_id, 'PAGINATOR')) + def _make_request(self, current_kwargs): + return self._method(**current_kwargs) + + def _extract_parsed_response(self, response): + return response + + def _record_non_aggregate_key_values(self, response): + non_aggregate_keys = {} + for expression in self._non_aggregate_key_exprs: + result = expression.search(response) + set_value_from_jmespath( + non_aggregate_keys, expression.expression, result + ) + self._non_aggregate_part = non_aggregate_keys + + def _inject_starting_params(self, op_kwargs): + # If the user has specified a starting token we need to + # inject that into the operation's kwargs. + if self._starting_token is not None: + # Don't need to do anything special if there is no starting + # token specified. + next_token = self._parse_starting_token()[0] + self._inject_token_into_kwargs(op_kwargs, next_token) + if self._page_size is not None: + # Pass the page size as the parameter name for limiting + # page size, also known as the limit_key. + op_kwargs[self._limit_key] = self._page_size + + def _inject_token_into_kwargs(self, op_kwargs, next_token): + for name, token in next_token.items(): + if (token is not None) and (token != 'None'): + op_kwargs[name] = token + elif name in op_kwargs: + del op_kwargs[name] + + def _handle_first_request( + self, parsed, primary_result_key, starting_truncation + ): + # If the payload is an array or string, we need to slice into it + # and only return the truncated amount. + starting_truncation = self._parse_starting_token()[1] + all_data = primary_result_key.search(parsed) + if isinstance(all_data, (list, str)): + data = all_data[starting_truncation:] + else: + data = None + set_value_from_jmespath(parsed, primary_result_key.expression, data) + # We also need to truncate any secondary result keys + # because they were not truncated in the previous last + # response. + for token in self.result_keys: + if token == primary_result_key: + continue + sample = token.search(parsed) + if isinstance(sample, list): + empty_value = [] + elif isinstance(sample, str): + empty_value = '' + elif isinstance(sample, (int, float)): + # Even though we may be resuming from a truncated page, we + # still start from the actual numeric secondary result. For + # DynamoDB's Count/ScannedCount, this will still show how many + # items the server evaluated, even if the client is truncating + # due to a StartingToken. + empty_value = sample + else: + empty_value = None + set_value_from_jmespath(parsed, token.expression, empty_value) + return starting_truncation + + def _truncate_response( + self, + parsed, + primary_result_key, + truncate_amount, + starting_truncation, + next_token, + ): + original = primary_result_key.search(parsed) + if original is None: + original = [] + amount_to_keep = len(original) - truncate_amount + truncated = original[:amount_to_keep] + set_value_from_jmespath( + parsed, primary_result_key.expression, truncated + ) + # The issue here is that even though we know how much we've truncated + # we need to account for this globally including any starting + # left truncation. For example: + # Raw response: [0,1,2,3] + # Starting index: 1 + # Max items: 1 + # Starting left truncation: [1, 2, 3] + # End right truncation for max items: [1] + # However, even though we only kept 1, this is post + # left truncation so the next starting index should be 2, not 1 + # (left_truncation + amount_to_keep). + next_token['boto_truncate_amount'] = ( + amount_to_keep + starting_truncation + ) + self.resume_token = next_token + + def _get_next_token(self, parsed): + if self._more_results is not None: + if not self._more_results.search(parsed): + return {} + next_tokens = {} + for output_token, input_key in zip( + self._output_token, self._input_token + ): + next_token = output_token.search(parsed) + # We do not want to include any empty strings as actual tokens. + # Treat them as None. + if next_token: + next_tokens[input_key] = next_token + else: + next_tokens[input_key] = None + return next_tokens + + def result_key_iters(self): + teed_results = tee(self, len(self.result_keys)) + return [ + ResultKeyIterator(i, result_key) + for i, result_key in zip(teed_results, self.result_keys) + ] + + def build_full_result(self): + complete_result = {} + for response in self: + page = response + # We want to try to catch operation object pagination + # and format correctly for those. They come in the form + # of a tuple of two elements: (http_response, parsed_responsed). + # We want the parsed_response as that is what the page iterator + # uses. We can remove it though once operation objects are removed. + if isinstance(response, tuple) and len(response) == 2: + page = response[1] + # We're incrementally building the full response page + # by page. For each page in the response we need to + # inject the necessary components from the page + # into the complete_result. + for result_expression in self.result_keys: + # In order to incrementally update a result key + # we need to search the existing value from complete_result, + # then we need to search the _current_ page for the + # current result key value. Then we append the current + # value onto the existing value, and re-set that value + # as the new value. + result_value = result_expression.search(page) + if result_value is None: + continue + existing_value = result_expression.search(complete_result) + if existing_value is None: + # Set the initial result + set_value_from_jmespath( + complete_result, + result_expression.expression, + result_value, + ) + continue + # Now both result_value and existing_value contain something + if isinstance(result_value, list): + existing_value.extend(result_value) + elif isinstance(result_value, (int, float, str)): + # Modify the existing result with the sum or concatenation + set_value_from_jmespath( + complete_result, + result_expression.expression, + existing_value + result_value, + ) + merge_dicts(complete_result, self.non_aggregate_part) + if self.resume_token is not None: + complete_result['NextToken'] = self.resume_token + return complete_result + + def _parse_starting_token(self): + if self._starting_token is None: + return None + + # The starting token is a dict passed as a base64 encoded string. + next_token = self._starting_token + try: + next_token = self._token_decoder.decode(next_token) + index = 0 + if 'boto_truncate_amount' in next_token: + index = next_token.get('boto_truncate_amount') + del next_token['boto_truncate_amount'] + except (ValueError, TypeError): + next_token, index = self._parse_starting_token_deprecated() + return next_token, index + + def _parse_starting_token_deprecated(self): + """ + This handles parsing of old style starting tokens, and attempts to + coerce them into the new style. + """ + log.debug( + "Attempting to fall back to old starting token parser. For token: %s", + self._starting_token, + ) + if self._starting_token is None: + return None + + parts = self._starting_token.split('___') + next_token = [] + index = 0 + if len(parts) == len(self._input_token) + 1: + try: + index = int(parts.pop()) + except ValueError: + # This doesn't look like a valid old-style token, so we're + # passing it along as an opaque service token. + parts = [self._starting_token] + + for part in parts: + if part == 'None': + next_token.append(None) + else: + next_token.append(part) + return self._convert_deprecated_starting_token(next_token), index + + def _convert_deprecated_starting_token(self, deprecated_token): + """ + This attempts to convert a deprecated starting token into the new + style. + """ + len_deprecated_token = len(deprecated_token) + len_input_token = len(self._input_token) + if len_deprecated_token > len_input_token: + raise ValueError(f"Bad starting token: {self._starting_token}") + elif len_deprecated_token < len_input_token: + log.debug( + "Old format starting token does not contain all input " + "tokens. Setting the rest, in order, as None." + ) + for i in range(len_input_token - len_deprecated_token): + deprecated_token.append(None) + return dict(zip(self._input_token, deprecated_token)) + + +class Paginator: + PAGE_ITERATOR_CLS = PageIterator + + def __init__(self, method, pagination_config, model): + self._model = model + self._method = method + self._pagination_cfg = pagination_config + self._output_token = self._get_output_tokens(self._pagination_cfg) + self._input_token = self._get_input_tokens(self._pagination_cfg) + self._more_results = self._get_more_results_token(self._pagination_cfg) + self._non_aggregate_keys = self._get_non_aggregate_keys( + self._pagination_cfg + ) + self._result_keys = self._get_result_keys(self._pagination_cfg) + self._limit_key = self._get_limit_key(self._pagination_cfg) + + @property + def result_keys(self): + return self._result_keys + + def _get_non_aggregate_keys(self, config): + keys = [] + for key in config.get('non_aggregate_keys', []): + keys.append(jmespath.compile(key)) + return keys + + def _get_output_tokens(self, config): + output = [] + output_token = config['output_token'] + if not isinstance(output_token, list): + output_token = [output_token] + for config in output_token: + output.append(jmespath.compile(config)) + return output + + def _get_input_tokens(self, config): + input_token = self._pagination_cfg['input_token'] + if not isinstance(input_token, list): + input_token = [input_token] + return input_token + + def _get_more_results_token(self, config): + more_results = config.get('more_results') + if more_results is not None: + return jmespath.compile(more_results) + + def _get_result_keys(self, config): + result_key = config.get('result_key') + if result_key is not None: + if not isinstance(result_key, list): + result_key = [result_key] + result_key = [jmespath.compile(rk) for rk in result_key] + return result_key + + def _get_limit_key(self, config): + return config.get('limit_key') + + def paginate(self, **kwargs): + """Create paginator object for an operation. + + This returns an iterable object. Iterating over + this object will yield a single page of a response + at a time. + + """ + page_params = self._extract_paging_params(kwargs) + return self.PAGE_ITERATOR_CLS( + self._method, + self._input_token, + self._output_token, + self._more_results, + self._result_keys, + self._non_aggregate_keys, + self._limit_key, + page_params['MaxItems'], + page_params['StartingToken'], + page_params['PageSize'], + kwargs, + ) + + def _extract_paging_params(self, kwargs): + pagination_config = kwargs.pop('PaginationConfig', {}) + max_items = pagination_config.get('MaxItems', None) + if max_items is not None: + max_items = int(max_items) + page_size = pagination_config.get('PageSize', None) + if page_size is not None: + if self._limit_key is None: + raise PaginationError( + message="PageSize parameter is not supported for the " + "pagination interface for this operation." + ) + input_members = self._model.input_shape.members + limit_key_shape = input_members.get(self._limit_key) + if limit_key_shape.type_name == 'string': + if not isinstance(page_size, str): + page_size = str(page_size) + else: + page_size = int(page_size) + return { + 'MaxItems': max_items, + 'StartingToken': pagination_config.get('StartingToken', None), + 'PageSize': page_size, + } + + +class ResultKeyIterator: + """Iterates over the results of paginated responses. + + Each iterator is associated with a single result key. + Iterating over this object will give you each element in + the result key list. + + :param pages_iterator: An iterator that will give you + pages of results (a ``PageIterator`` class). + :param result_key: The JMESPath expression representing + the result key. + + """ + + def __init__(self, pages_iterator, result_key): + self._pages_iterator = pages_iterator + self.result_key = result_key + + def __iter__(self): + for page in self._pages_iterator: + results = self.result_key.search(page) + if results is None: + results = [] + yield from results diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/parsers.py b/rep_localstack/lib/python3.12/site-packages/botocore/parsers.py new file mode 100644 index 000000000..51977c62d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/parsers.py @@ -0,0 +1,1489 @@ +# Copyright 2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +"""Response parsers for the various protocol types. + +The module contains classes that can take an HTTP response, and given +an output shape, parse the response into a dict according to the +rules in the output shape. + +There are many similarities amongst the different protocols with regard +to response parsing, and the code is structured in a way to avoid +code duplication when possible. The diagram below is a diagram +showing the inheritance hierarchy of the response classes. + +:: + + + +-------------------+ + | ResponseParser | + +-------------------+ + ^ ^ ^ ^ ^ + | | | | | + | | | | +--------------------------------------------+ + | | | +-----------------------------+ | + | | | | | + +--------------------+ | +----------------+ | | + | | | | | ++----------+----------+ +------+-------+ +-------+------+ +------+-------+ +------+--------+ +|BaseXMLResponseParser| |BaseRestParser| |BaseJSONParser| |BaseCBORParser| |BaseRpcV2Parser| ++---------------------+ +--------------+ +--------------+ +----------+---+ +-+-------------+ + ^ ^ ^ ^ ^ ^ ^ ^ + | | | | | | | | + | | | | | | | | + | ++----------+-+ +-+--------+---+ | +---+---------+-+ + | |RestXMLParser| |RestJSONParser| | |RpcV2CBORParser| + +-----+-----+ +-------------+ +--------------+ | +---+---------+-+ + |QueryParser| | + +-----------+ +----+-----+ + |JSONParser| + +----------+ + +The diagram above shows that there is a base class, ``ResponseParser`` that +contains logic that is similar amongst all the different protocols (``query``, +``json``, ``rest-json``, ``rest-xml``, ``smithy-rpc-v2-cbor``). Amongst the various services +there is shared logic that can be grouped several ways: + +* The ``query`` and ``rest-xml`` both have XML bodies that are parsed in the + same way. +* The ``json`` and ``rest-json`` protocols both have JSON bodies that are + parsed in the same way. +* The ``rest-json`` and ``rest-xml`` protocols have additional attributes + besides body parameters that are parsed the same (headers, query string, + status code). + +This is reflected in the class diagram above. The ``BaseXMLResponseParser`` +and the BaseJSONParser contain logic for parsing the XML/JSON body, +and the BaseRestParser contains logic for parsing out attributes that +come from other parts of the HTTP response. Classes like the +``RestXMLParser`` inherit from the ``BaseXMLResponseParser`` to get the +XML body parsing logic and the ``BaseRestParser`` to get the HTTP +header/status code/query string parsing. + +Additionally, there are event stream parsers that are used by the other parsers +to wrap streaming bodies that represent a stream of events. The +BaseEventStreamParser extends from ResponseParser and defines the logic for +parsing values from the headers and payload of a message from the underlying +binary encoding protocol. Currently, event streams support parsing bodies +encoded as JSON and XML through the following hierarchy. + + + +--------------+ + |ResponseParser| + +--------------+ + ^ ^ ^ + +--------------------+ | +------------------+ + | | | + +----------+----------+ +----------+----------+ +-------+------+ + |BaseXMLResponseParser| |BaseEventStreamParser| |BaseJSONParser| + +---------------------+ +---------------------+ +--------------+ + ^ ^ ^ ^ + | | | | + | | | | + +-+----------------+-+ +-+-----------------+-+ + |EventStreamXMLParser| |EventStreamJSONParser| + +--------------------+ +---------------------+ + +Return Values +============= + +Each call to ``parse()`` returns a dict has this form:: + + Standard Response + + { + "ResponseMetadata": {"RequestId": } + + } + + Error response + + { + "ResponseMetadata": {"RequestId": } + "Error": { + "Code": , + "Message": , + "Type": , + + } + } + +""" + +import base64 +import http.client +import io +import json +import logging +import os +import re +import struct + +from botocore.compat import ETree, XMLParseError +from botocore.eventstream import EventStream, NoInitialResponseError +from botocore.utils import ( + CachedProperty, + ensure_boolean, + is_json_value_header, + lowercase_dict, + merge_dicts, + parse_timestamp, +) + +LOG = logging.getLogger(__name__) + +DEFAULT_TIMESTAMP_PARSER = parse_timestamp + + +class ResponseParserFactory: + def __init__(self): + self._defaults = {} + + def set_parser_defaults(self, **kwargs): + """Set default arguments when a parser instance is created. + + You can specify any kwargs that are allowed by a ResponseParser + class. There are currently two arguments: + + * timestamp_parser - A callable that can parse a timestamp string + * blob_parser - A callable that can parse a blob type + + """ + self._defaults.update(kwargs) + + def create_parser(self, protocol_name): + parser_cls = PROTOCOL_PARSERS[protocol_name] + return parser_cls(**self._defaults) + + +def create_parser(protocol): + return ResponseParserFactory().create_parser(protocol) + + +def _text_content(func): + # This decorator hides the difference between + # an XML node with text or a plain string. It's used + # to ensure that scalar processing operates only on text + # strings, which allows the same scalar handlers to be used + # for XML nodes from the body and HTTP headers. + def _get_text_content(self, shape, node_or_string): + if hasattr(node_or_string, 'text'): + text = node_or_string.text + if text is None: + # If an XML node is empty , + # we want to parse that as an empty string, + # not as a null/None value. + text = '' + else: + text = node_or_string + return func(self, shape, text) + + return _get_text_content + + +class ResponseParserError(Exception): + pass + + +class ResponseParser: + """Base class for response parsing. + + This class represents the interface that all ResponseParsers for the + various protocols must implement. + + This class will take an HTTP response and a model shape and parse the + HTTP response into a dictionary. + + There is a single public method exposed: ``parse``. See the ``parse`` + docstring for more info. + + """ + + DEFAULT_ENCODING = 'utf-8' + EVENT_STREAM_PARSER_CLS = None + # This is a list of known values for the 'location' key in the + # serialization dict. The location key tells us where in the response + # to parse the value. Members with locations that aren't in this list + # will be parsed from the body. + KNOWN_LOCATIONS = ('header', 'headers', 'statusCode') + + def __init__(self, timestamp_parser=None, blob_parser=None): + if timestamp_parser is None: + timestamp_parser = DEFAULT_TIMESTAMP_PARSER + self._timestamp_parser = timestamp_parser + if blob_parser is None: + blob_parser = self._default_blob_parser + self._blob_parser = blob_parser + self._event_stream_parser = None + if self.EVENT_STREAM_PARSER_CLS is not None: + self._event_stream_parser = self.EVENT_STREAM_PARSER_CLS( + timestamp_parser, blob_parser + ) + + def _default_blob_parser(self, value): + # Blobs are always returned as bytes type (this matters on python3). + # We don't decode this to a str because it's entirely possible that the + # blob contains binary data that actually can't be decoded. + return base64.b64decode(value) + + def parse(self, response, shape): + """Parse the HTTP response given a shape. + + :param response: The HTTP response dictionary. This is a dictionary + that represents the HTTP request. The dictionary must have the + following keys, ``body``, ``headers``, and ``status_code``. + + :param shape: The model shape describing the expected output. + :return: Returns a dictionary representing the parsed response + described by the model. In addition to the shape described from + the model, each response will also have a ``ResponseMetadata`` + which contains metadata about the response, which contains at least + two keys containing ``RequestId`` and ``HTTPStatusCode``. Some + responses may populate additional keys, but ``RequestId`` will + always be present. + + """ + LOG.debug('Response headers: %r', response['headers']) + LOG.debug('Response body:\n%r', response['body']) + if response['status_code'] >= 301: + if self._is_generic_error_response(response): + parsed = self._do_generic_error_parse(response) + elif self._is_modeled_error_shape(shape): + parsed = self._do_modeled_error_parse(response, shape) + # We don't want to decorate the modeled fields with metadata + return parsed + else: + parsed = self._do_error_parse(response, shape) + else: + parsed = self._do_parse(response, shape) + + # We don't want to decorate event stream responses with metadata + if shape and shape.serialization.get('eventstream'): + return parsed + + # Add ResponseMetadata if it doesn't exist and inject the HTTP + # status code and headers from the response. + if isinstance(parsed, dict): + response_metadata = parsed.get('ResponseMetadata', {}) + response_metadata['HTTPStatusCode'] = response['status_code'] + # Ensure that the http header keys are all lower cased. Older + # versions of urllib3 (< 1.11) would unintentionally do this for us + # (see urllib3#633). We need to do this conversion manually now. + headers = response['headers'] + response_metadata['HTTPHeaders'] = lowercase_dict(headers) + parsed['ResponseMetadata'] = response_metadata + self._add_checksum_response_metadata(response, response_metadata) + return parsed + + def _add_checksum_response_metadata(self, response, response_metadata): + checksum_context = response.get('context', {}).get('checksum', {}) + algorithm = checksum_context.get('response_algorithm') + if algorithm: + response_metadata['ChecksumAlgorithm'] = algorithm + + def _is_modeled_error_shape(self, shape): + return shape is not None and shape.metadata.get('exception', False) + + def _is_generic_error_response(self, response): + # There are times when a service will respond with a generic + # error response such as: + # 'Http/1.1 Service Unavailable' + # + # This can also happen if you're going through a proxy. + # In this case the protocol specific _do_error_parse will either + # fail to parse the response (in the best case) or silently succeed + # and treat the HTML above as an XML response and return + # non sensical parsed data. + # To prevent this case from happening we first need to check + # whether or not this response looks like the generic response. + if response['status_code'] >= 500: + if 'body' not in response or response['body'] is None: + return True + + body = response['body'].strip() + return body.startswith(b'') or not body + + def _do_generic_error_parse(self, response): + # There's not really much we can do when we get a generic + # html response. + LOG.debug( + "Received a non protocol specific error response from the " + "service, unable to populate error code and message." + ) + return { + 'Error': { + 'Code': str(response['status_code']), + 'Message': http.client.responses.get( + response['status_code'], '' + ), + }, + 'ResponseMetadata': {}, + } + + def _do_parse(self, response, shape): + raise NotImplementedError(f"{self.__class__.__name__}._do_parse") + + def _do_error_parse(self, response, shape): + raise NotImplementedError(f"{self.__class__.__name__}._do_error_parse") + + def _do_modeled_error_parse(self, response, shape, parsed): + raise NotImplementedError( + f"{self.__class__.__name__}._do_modeled_error_parse" + ) + + def _parse_shape(self, shape, node): + handler = getattr( + self, f'_handle_{shape.type_name}', self._default_handle + ) + return handler(shape, node) + + def _handle_list(self, shape, node): + # Enough implementations share list serialization that it's moved + # up here in the base class. + parsed = [] + member_shape = shape.member + for item in node: + # Treat all lists as sparse during parsing to safely handle null + # elements that may be present in service responses. + if item is None: + parsed.append(None) + else: + parsed.append(self._parse_shape(member_shape, item)) + return parsed + + def _default_handle(self, shape, value): + return value + + def _create_event_stream(self, response, shape): + parser = self._event_stream_parser + name = response['context'].get('operation_name') + return EventStream(response['body'], shape, parser, name) + + def _get_first_key(self, value): + return list(value)[0] + + def _has_unknown_tagged_union_member(self, shape, value): + if shape.is_tagged_union: + cleaned_value = value.copy() + cleaned_value.pop("__type", None) + cleaned_value = { + k: v for k, v in cleaned_value.items() if v is not None + } + if len(cleaned_value) != 1: + error_msg = ( + "Invalid service response: %s must have one and only " + "one member set." + ) + raise ResponseParserError(error_msg % shape.name) + tag = self._get_first_key(cleaned_value) + serialized_member_names = [ + shape.members[member].serialization.get('name', member) + for member in shape.members + ] + if tag not in serialized_member_names: + LOG.info( + "Received a tagged union response with member unknown to client: %s. " + "Please upgrade SDK for full response support.", + tag, + ) + return True + return False + + def _handle_unknown_tagged_union_member(self, tag): + return {'SDK_UNKNOWN_MEMBER': {'name': tag}} + + def _do_query_compatible_error_parse(self, code, headers, error): + """ + Error response may contain an x-amzn-query-error header to translate + errors codes from former `query` services into other protocols. We use this + to do our lookup in the errorfactory for modeled errors. + """ + query_error = headers['x-amzn-query-error'] + query_error_components = query_error.split(';') + + if len(query_error_components) == 2 and query_error_components[0]: + error['Error']['QueryErrorCode'] = code + error['Error']['Type'] = query_error_components[1] + return query_error_components[0] + return code + + +class BaseXMLResponseParser(ResponseParser): + def __init__(self, timestamp_parser=None, blob_parser=None): + super().__init__(timestamp_parser, blob_parser) + self._namespace_re = re.compile('{.*}') + + def _handle_map(self, shape, node): + parsed = {} + key_shape = shape.key + value_shape = shape.value + key_location_name = key_shape.serialization.get('name') or 'key' + value_location_name = value_shape.serialization.get('name') or 'value' + if shape.serialization.get('flattened') and not isinstance(node, list): + node = [node] + for keyval_node in node: + for single_pair in keyval_node: + # Within each there's a and a + tag_name = self._node_tag(single_pair) + if tag_name == key_location_name: + key_name = self._parse_shape(key_shape, single_pair) + elif tag_name == value_location_name: + val_name = self._parse_shape(value_shape, single_pair) + else: + raise ResponseParserError(f"Unknown tag: {tag_name}") + parsed[key_name] = val_name + return parsed + + def _node_tag(self, node): + return self._namespace_re.sub('', node.tag) + + def _handle_list(self, shape, node): + # When we use _build_name_to_xml_node, repeated elements are aggregated + # into a list. However, we can't tell the difference between a scalar + # value and a single element flattened list. So before calling the + # real _handle_list, we know that "node" should actually be a list if + # it's flattened, and if it's not, then we make it a one element list. + if shape.serialization.get('flattened') and not isinstance(node, list): + node = [node] + return super()._handle_list(shape, node) + + def _handle_structure(self, shape, node): + parsed = {} + members = shape.members + if shape.metadata.get('exception', False): + node = self._get_error_root(node) + xml_dict = self._build_name_to_xml_node(node) + if self._has_unknown_tagged_union_member(shape, xml_dict): + tag = self._get_first_key(xml_dict) + return self._handle_unknown_tagged_union_member(tag) + for member_name in members: + member_shape = members[member_name] + location = member_shape.serialization.get('location') + if ( + location in self.KNOWN_LOCATIONS + or member_shape.serialization.get('eventheader') + ): + # All members with known locations have already been handled, + # so we don't need to parse these members. + continue + xml_name = self._member_key_name(member_shape, member_name) + member_node = xml_dict.get(xml_name) + if member_node is not None: + parsed[member_name] = self._parse_shape( + member_shape, member_node + ) + elif member_shape.serialization.get('xmlAttribute'): + attribs = {} + location_name = member_shape.serialization['name'] + for key, value in node.attrib.items(): + new_key = self._namespace_re.sub( + location_name.split(':')[0] + ':', key + ) + attribs[new_key] = value + if location_name in attribs: + parsed[member_name] = attribs[location_name] + return parsed + + def _get_error_root(self, original_root): + if self._node_tag(original_root) == 'ErrorResponse': + for child in original_root: + if self._node_tag(child) == 'Error': + return child + return original_root + + def _member_key_name(self, shape, member_name): + # This method is needed because we have to special case flattened list + # with a serialization name. If this is the case we use the + # locationName from the list's member shape as the key name for the + # surrounding structure. + if shape.type_name == 'list' and shape.serialization.get('flattened'): + list_member_serialized_name = shape.member.serialization.get( + 'name' + ) + if list_member_serialized_name is not None: + return list_member_serialized_name + serialized_name = shape.serialization.get('name') + if serialized_name is not None: + return serialized_name + return member_name + + def _build_name_to_xml_node(self, parent_node): + # If the parent node is actually a list. We should not be trying + # to serialize it to a dictionary. Instead, return the first element + # in the list. + if isinstance(parent_node, list): + return self._build_name_to_xml_node(parent_node[0]) + xml_dict = {} + for item in parent_node: + key = self._node_tag(item) + if key in xml_dict: + # If the key already exists, the most natural + # way to handle this is to aggregate repeated + # keys into a single list. + # 12 -> {'foo': [Node(1), Node(2)]} + if isinstance(xml_dict[key], list): + xml_dict[key].append(item) + else: + # Convert from a scalar to a list. + xml_dict[key] = [xml_dict[key], item] + else: + xml_dict[key] = item + return xml_dict + + def _parse_xml_string_to_dom(self, xml_string): + try: + parser = ETree.XMLParser( + target=ETree.TreeBuilder(), encoding=self.DEFAULT_ENCODING + ) + parser.feed(xml_string) + root = parser.close() + except XMLParseError as e: + raise ResponseParserError( + f"Unable to parse response ({e}), " + f"invalid XML received. Further retries may succeed:\n{xml_string}" + ) + return root + + def _replace_nodes(self, parsed): + for key, value in parsed.items(): + if list(value): + sub_dict = self._build_name_to_xml_node(value) + parsed[key] = self._replace_nodes(sub_dict) + else: + parsed[key] = value.text + return parsed + + @_text_content + def _handle_boolean(self, shape, text): + if text == 'true': + return True + else: + return False + + @_text_content + def _handle_float(self, shape, text): + return float(text) + + @_text_content + def _handle_timestamp(self, shape, text): + return self._timestamp_parser(text) + + @_text_content + def _handle_integer(self, shape, text): + return int(text) + + @_text_content + def _handle_string(self, shape, text): + return text + + @_text_content + def _handle_blob(self, shape, text): + return self._blob_parser(text) + + _handle_character = _handle_string + _handle_double = _handle_float + _handle_long = _handle_integer + + +class QueryParser(BaseXMLResponseParser): + def _do_error_parse(self, response, shape): + xml_contents = response['body'] + root = self._parse_xml_string_to_dom(xml_contents) + parsed = self._build_name_to_xml_node(root) + self._replace_nodes(parsed) + # Once we've converted xml->dict, we need to make one or two + # more adjustments to extract nested errors and to be consistent + # with ResponseMetadata for non-error responses: + # 1. {"Errors": {"Error": {...}}} -> {"Error": {...}} + # 2. {"RequestId": "id"} -> {"ResponseMetadata": {"RequestId": "id"}} + if 'Errors' in parsed: + parsed.update(parsed.pop('Errors')) + if 'RequestId' in parsed: + parsed['ResponseMetadata'] = {'RequestId': parsed.pop('RequestId')} + return parsed + + def _do_modeled_error_parse(self, response, shape): + return self._parse_body_as_xml(response, shape, inject_metadata=False) + + def _do_parse(self, response, shape): + return self._parse_body_as_xml(response, shape, inject_metadata=True) + + def _parse_body_as_xml(self, response, shape, inject_metadata=True): + xml_contents = response['body'] + root = self._parse_xml_string_to_dom(xml_contents) + parsed = {} + if shape is not None: + start = root + if 'resultWrapper' in shape.serialization: + start = self._find_result_wrapped_shape( + shape.serialization['resultWrapper'], root + ) + parsed = self._parse_shape(shape, start) + if inject_metadata: + self._inject_response_metadata(root, parsed) + return parsed + + def _find_result_wrapped_shape(self, element_name, xml_root_node): + mapping = self._build_name_to_xml_node(xml_root_node) + return mapping[element_name] + + def _inject_response_metadata(self, node, inject_into): + mapping = self._build_name_to_xml_node(node) + child_node = mapping.get('ResponseMetadata') + if child_node is not None: + sub_mapping = self._build_name_to_xml_node(child_node) + for key, value in sub_mapping.items(): + sub_mapping[key] = value.text + inject_into['ResponseMetadata'] = sub_mapping + + +class EC2QueryParser(QueryParser): + def _inject_response_metadata(self, node, inject_into): + mapping = self._build_name_to_xml_node(node) + child_node = mapping.get('requestId') + if child_node is not None: + inject_into['ResponseMetadata'] = {'RequestId': child_node.text} + + def _do_error_parse(self, response, shape): + # EC2 errors look like: + # + # + # + # InvalidInstanceID.Malformed + # Invalid id: "1343124" + # + # + # 12345 + # + # This is different from QueryParser in that it's RequestID, + # not RequestId + original = super()._do_error_parse(response, shape) + if 'RequestID' in original: + original['ResponseMetadata'] = { + 'RequestId': original.pop('RequestID') + } + return original + + def _get_error_root(self, original_root): + for child in original_root: + if self._node_tag(child) == 'Errors': + for errors_child in child: + if self._node_tag(errors_child) == 'Error': + return errors_child + return original_root + + +class BaseJSONParser(ResponseParser): + def _handle_structure(self, shape, value): + final_parsed = {} + if shape.is_document_type: + final_parsed = value + else: + member_shapes = shape.members + if value is None: + # If the comes across the wire as "null" (None in python), + # we should be returning this unchanged, instead of as an + # empty dict. + return None + final_parsed = {} + if self._has_unknown_tagged_union_member(shape, value): + tag = self._get_first_key(value) + return self._handle_unknown_tagged_union_member(tag) + for member_name in member_shapes: + member_shape = member_shapes[member_name] + json_name = member_shape.serialization.get('name', member_name) + raw_value = value.get(json_name) + if raw_value is not None: + final_parsed[member_name] = self._parse_shape( + member_shapes[member_name], raw_value + ) + return final_parsed + + def _handle_map(self, shape, value): + parsed = {} + key_shape = shape.key + value_shape = shape.value + for key, value in value.items(): + actual_key = self._parse_shape(key_shape, key) + actual_value = self._parse_shape(value_shape, value) + parsed[actual_key] = actual_value + return parsed + + def _handle_blob(self, shape, value): + return self._blob_parser(value) + + def _handle_timestamp(self, shape, value): + return self._timestamp_parser(value) + + def _do_error_parse(self, response, shape): + body = self._parse_body_as_json(response['body']) + error = {"Error": {"Message": '', "Code": ''}, "ResponseMetadata": {}} + headers = response['headers'] + # Error responses can have slightly different structures for json. + # The basic structure is: + # + # {"__type":"ConnectClientException", + # "message":"The error message."} + + # The error message can either come in the 'message' or 'Message' key + # so we need to check for both. + error['Error']['Message'] = body.get( + 'message', body.get('Message', '') + ) + # if the message did not contain an error code + # include the response status code + response_code = response.get('status_code') + + code = body.get('__type', response_code and str(response_code)) + if code is not None: + # code has a couple forms as well: + # * "com.aws.dynamodb.vAPI#ProvisionedThroughputExceededException" + # * "ResourceNotFoundException" + if ':' in code: + code = code.split(':', 1)[0] + if '#' in code: + code = code.rsplit('#', 1)[1] + if 'x-amzn-query-error' in headers: + code = self._do_query_compatible_error_parse( + code, headers, error + ) + error['Error']['Code'] = code + self._inject_response_metadata(error, response['headers']) + return error + + def _inject_response_metadata(self, parsed, headers): + if 'x-amzn-requestid' in headers: + parsed.setdefault('ResponseMetadata', {})['RequestId'] = headers[ + 'x-amzn-requestid' + ] + + def _parse_body_as_json(self, body_contents): + if not body_contents: + return {} + body = body_contents.decode(self.DEFAULT_ENCODING) + try: + original_parsed = json.loads(body) + return original_parsed + except ValueError: + # if the body cannot be parsed, include + # the literal string as the message + return {'message': body} + + +class BaseCBORParser(ResponseParser): + INDEFINITE_ITEM_ADDITIONAL_INFO = 31 + BREAK_CODE = 0xFF + + @CachedProperty + def major_type_to_parsing_method_map(self): + return { + 0: self._parse_unsigned_integer, + 1: self._parse_negative_integer, + 2: self._parse_byte_string, + 3: self._parse_text_string, + 4: self._parse_array, + 5: self._parse_map, + 6: self._parse_tag, + 7: self._parse_simple_and_float, + } + + def get_peekable_stream_from_bytes(self, bytes): + return io.BufferedReader(io.BytesIO(bytes)) + + def parse_data_item(self, stream): + # CBOR data is divided into "data items", and each data item starts + # with an initial byte that describes how the following bytes should be parsed + initial_byte = self._read_bytes_as_int(stream, 1) + # The highest order three bits of the initial byte describe the CBOR major type + major_type = initial_byte >> 5 + # The lowest order 5 bits of the initial byte tells us more information about + # how the bytes should be parsed that will be used + additional_info = initial_byte & 0b00011111 + + if major_type in self.major_type_to_parsing_method_map: + method = self.major_type_to_parsing_method_map[major_type] + return method(stream, additional_info) + else: + raise ResponseParserError( + f"Unsupported inital byte found for data item- " + f"Major type:{major_type}, Additional info: " + f"{additional_info}" + ) + + # Major type 0 - unsigned integers + def _parse_unsigned_integer(self, stream, additional_info): + additional_info_to_num_bytes = { + 24: 1, + 25: 2, + 26: 4, + 27: 8, + } + # Values under 24 don't need a full byte to be stored; their values are + # instead stored as the "additional info" in the initial byte + if additional_info < 24: + return additional_info + elif additional_info in additional_info_to_num_bytes: + num_bytes = additional_info_to_num_bytes[additional_info] + return self._read_bytes_as_int(stream, num_bytes) + else: + raise ResponseParserError( + "Invalid CBOR integer returned from the service; unparsable " + f"additional info found for major type 0 or 1: {additional_info}" + ) + + # Major type 1 - negative integers + def _parse_negative_integer(self, stream, additional_info): + return -1 - self._parse_unsigned_integer(stream, additional_info) + + # Major type 2 - byte string + def _parse_byte_string(self, stream, additional_info): + if additional_info != self.INDEFINITE_ITEM_ADDITIONAL_INFO: + length = self._parse_unsigned_integer(stream, additional_info) + return self._read_from_stream(stream, length) + else: + chunks = [] + while True: + if self._handle_break_code(stream): + break + initial_byte = self._read_bytes_as_int(stream, 1) + additional_info = initial_byte & 0b00011111 + length = self._parse_unsigned_integer(stream, additional_info) + chunks.append(self._read_from_stream(stream, length)) + return b''.join(chunks) + + # Major type 3 - text string + def _parse_text_string(self, stream, additional_info): + return self._parse_byte_string(stream, additional_info).decode('utf-8') + + # Major type 4 - lists + def _parse_array(self, stream, additional_info): + if additional_info != self.INDEFINITE_ITEM_ADDITIONAL_INFO: + length = self._parse_unsigned_integer(stream, additional_info) + return [self.parse_data_item(stream) for _ in range(length)] + else: + items = [] + while not self._handle_break_code(stream): + items.append(self.parse_data_item(stream)) + return items + + # Major type 5 - maps + def _parse_map(self, stream, additional_info): + items = {} + if additional_info != self.INDEFINITE_ITEM_ADDITIONAL_INFO: + length = self._parse_unsigned_integer(stream, additional_info) + for _ in range(length): + self._parse_key_value_pair(stream, items) + return items + + else: + while not self._handle_break_code(stream): + self._parse_key_value_pair(stream, items) + return items + + def _parse_key_value_pair(self, stream, items): + key = self.parse_data_item(stream) + value = self.parse_data_item(stream) + if value is not None: + items[key] = value + + # Major type 6 is tags. The only tag we currently support is tag 1 for unix + # timestamps + def _parse_tag(self, stream, additional_info): + tag = self._parse_unsigned_integer(stream, additional_info) + value = self.parse_data_item(stream) + if tag == 1: # Epoch-based date/time in milliseconds + return self._parse_datetime(value) + else: + raise ResponseParserError( + f"Found CBOR tag not supported by botocore: {tag}" + ) + + def _parse_datetime(self, value): + if isinstance(value, (int, float)): + return self._timestamp_parser(value) + else: + raise ResponseParserError( + f"Unable to parse datetime value: {value}" + ) + + # Major type 7 includes floats and "simple" types. Supported simple types are + # currently boolean values, CBOR's null, and CBOR's undefined type. All other + # values are either floats or invalid. + def _parse_simple_and_float(self, stream, additional_info): + # For major type 7, values 20-23 correspond to CBOR "simple" values + additional_info_simple_values = { + 20: False, # CBOR false + 21: True, # CBOR true + 22: None, # CBOR null + 23: None, # CBOR undefined + } + # First we check if the additional info corresponds to a supported simple value + if additional_info in additional_info_simple_values: + return additional_info_simple_values[additional_info] + + # If it's not a simple value, we need to parse it into the correct format and + # number fo bytes + float_formats = { + 25: ('>e', 2), + 26: ('>f', 4), + 27: ('>d', 8), + } + + if additional_info in float_formats: + float_format, num_bytes = float_formats[additional_info] + return struct.unpack( + float_format, self._read_from_stream(stream, num_bytes) + )[0] + raise ResponseParserError( + f"Invalid additional info found for major type 7: {additional_info}. " + f"This indicates an unsupported simple type or an indefinite float value" + ) + + # This helper method is intended for use when parsing indefinite length items. + # It does nothing if the next byte is not the break code. If the next byte is + # the break code, it advances past that byte and returns True so the calling + # method knows to stop parsing that data item. + def _handle_break_code(self, stream): + if int.from_bytes(stream.peek(1)[:1], 'big') == self.BREAK_CODE: + stream.seek(1, os.SEEK_CUR) + return True + + def _read_bytes_as_int(self, stream, num_bytes): + byte = self._read_from_stream(stream, num_bytes) + return int.from_bytes(byte, 'big') + + def _read_from_stream(self, stream, num_bytes): + value = stream.read(num_bytes) + if len(value) != num_bytes: + raise ResponseParserError( + "End of stream reached; this indicates a " + "malformed CBOR response from the server or an " + "issue in botocore" + ) + return value + + +class BaseEventStreamParser(ResponseParser): + def _do_parse(self, response, shape): + final_parsed = {} + if shape.serialization.get('eventstream'): + event_type = response['headers'].get(':event-type') + event_shape = shape.members.get(event_type) + if event_shape: + final_parsed[event_type] = self._do_parse( + response, event_shape + ) + else: + self._parse_non_payload_attrs( + response, shape, shape.members, final_parsed + ) + self._parse_payload(response, shape, shape.members, final_parsed) + return final_parsed + + def _do_error_parse(self, response, shape): + exception_type = response['headers'].get(':exception-type') + exception_shape = shape.members.get(exception_type) + if exception_shape is not None: + original_parsed = self._initial_body_parse(response['body']) + body = self._parse_shape(exception_shape, original_parsed) + error = { + 'Error': { + 'Code': exception_type, + 'Message': body.get('Message', body.get('message', '')), + } + } + else: + error = { + 'Error': { + 'Code': response['headers'].get(':error-code', ''), + 'Message': response['headers'].get(':error-message', ''), + } + } + return error + + def _parse_payload(self, response, shape, member_shapes, final_parsed): + if shape.serialization.get('event'): + for name in member_shapes: + member_shape = member_shapes[name] + if member_shape.serialization.get('eventpayload'): + body = response['body'] + if member_shape.type_name == 'blob': + parsed_body = body + elif member_shape.type_name == 'string': + parsed_body = body.decode(self.DEFAULT_ENCODING) + else: + raw_parse = self._initial_body_parse(body) + parsed_body = self._parse_shape( + member_shape, raw_parse + ) + final_parsed[name] = parsed_body + return + # If we didn't find an explicit payload, use the current shape + original_parsed = self._initial_body_parse(response['body']) + body_parsed = self._parse_shape(shape, original_parsed) + final_parsed.update(body_parsed) + + def _parse_non_payload_attrs( + self, response, shape, member_shapes, final_parsed + ): + headers = response['headers'] + for name in member_shapes: + member_shape = member_shapes[name] + if member_shape.serialization.get('eventheader'): + if name in headers: + value = headers[name] + if member_shape.type_name == 'timestamp': + # Event stream timestamps are an in milleseconds so we + # divide by 1000 to convert to seconds. + value = self._timestamp_parser(value / 1000.0) + final_parsed[name] = value + + def _initial_body_parse(self, body_contents): + # This method should do the initial xml/json parsing of the + # body. We still need to walk the parsed body in order + # to convert types, but this method will do the first round + # of parsing. + raise NotImplementedError("_initial_body_parse") + + +class EventStreamJSONParser(BaseEventStreamParser, BaseJSONParser): + def _initial_body_parse(self, body_contents): + return self._parse_body_as_json(body_contents) + + +class EventStreamXMLParser(BaseEventStreamParser, BaseXMLResponseParser): + def _initial_body_parse(self, xml_string): + if not xml_string: + return ETree.Element('') + return self._parse_xml_string_to_dom(xml_string) + + +class EventStreamCBORParser(BaseEventStreamParser, BaseCBORParser): + def _initial_body_parse(self, body_contents): + if body_contents == b'': + return {} + return self.parse_data_item( + self.get_peekable_stream_from_bytes(body_contents) + ) + + +class JSONParser(BaseJSONParser): + EVENT_STREAM_PARSER_CLS = EventStreamJSONParser + + """Response parser for the "json" protocol.""" + + def _do_parse(self, response, shape): + parsed = {} + if shape is not None: + event_name = shape.event_stream_name + if event_name: + parsed = self._handle_event_stream(response, shape, event_name) + else: + parsed = self._handle_json_body(response['body'], shape) + self._inject_response_metadata(parsed, response['headers']) + return parsed + + def _do_modeled_error_parse(self, response, shape): + return self._handle_json_body(response['body'], shape) + + def _handle_event_stream(self, response, shape, event_name): + event_stream_shape = shape.members[event_name] + event_stream = self._create_event_stream(response, event_stream_shape) + try: + event = event_stream.get_initial_response() + except NoInitialResponseError: + error_msg = 'First event was not of type initial-response' + raise ResponseParserError(error_msg) + parsed = self._handle_json_body(event.payload, shape) + parsed[event_name] = event_stream + return parsed + + def _handle_json_body(self, raw_body, shape): + # The json.loads() gives us the primitive JSON types, + # but we need to traverse the parsed JSON data to convert + # to richer types (blobs, timestamps, etc. + parsed_json = self._parse_body_as_json(raw_body) + return self._parse_shape(shape, parsed_json) + + +class BaseRestParser(ResponseParser): + def _do_parse(self, response, shape): + final_parsed = {} + final_parsed['ResponseMetadata'] = self._populate_response_metadata( + response + ) + self._add_modeled_parse(response, shape, final_parsed) + return final_parsed + + def _add_modeled_parse(self, response, shape, final_parsed): + if shape is None: + return final_parsed + member_shapes = shape.members + self._parse_non_payload_attrs( + response, shape, member_shapes, final_parsed + ) + self._parse_payload(response, shape, member_shapes, final_parsed) + + def _do_modeled_error_parse(self, response, shape): + final_parsed = {} + self._add_modeled_parse(response, shape, final_parsed) + return final_parsed + + def _populate_response_metadata(self, response): + metadata = {} + headers = response['headers'] + if 'x-amzn-requestid' in headers: + metadata['RequestId'] = headers['x-amzn-requestid'] + elif 'x-amz-request-id' in headers: + metadata['RequestId'] = headers['x-amz-request-id'] + # HostId is what it's called whenever this value is returned + # in an XML response body, so to be consistent, we'll always + # call is HostId. + metadata['HostId'] = headers.get('x-amz-id-2', '') + return metadata + + def _parse_payload(self, response, shape, member_shapes, final_parsed): + if 'payload' in shape.serialization: + # If a payload is specified in the output shape, then only that + # shape is used for the body payload. + payload_member_name = shape.serialization['payload'] + body_shape = member_shapes[payload_member_name] + if body_shape.serialization.get('eventstream'): + body = self._create_event_stream(response, body_shape) + final_parsed[payload_member_name] = body + elif body_shape.type_name in ['string', 'blob']: + # This is a stream + body = response['body'] + if isinstance(body, bytes): + body = body.decode(self.DEFAULT_ENCODING) + final_parsed[payload_member_name] = body + else: + original_parsed = self._initial_body_parse(response['body']) + final_parsed[payload_member_name] = self._parse_shape( + body_shape, original_parsed + ) + else: + original_parsed = self._initial_body_parse(response['body']) + body_parsed = self._parse_shape(shape, original_parsed) + final_parsed.update(body_parsed) + + def _parse_non_payload_attrs( + self, response, shape, member_shapes, final_parsed + ): + headers = response['headers'] + for name in member_shapes: + member_shape = member_shapes[name] + location = member_shape.serialization.get('location') + if location is None: + continue + elif location == 'statusCode': + final_parsed[name] = self._parse_shape( + member_shape, response['status_code'] + ) + elif location == 'headers': + final_parsed[name] = self._parse_header_map( + member_shape, headers + ) + elif location == 'header': + header_name = member_shape.serialization.get('name', name) + if header_name in headers: + final_parsed[name] = self._parse_shape( + member_shape, headers[header_name] + ) + + def _parse_header_map(self, shape, headers): + # Note that headers are case insensitive, so we .lower() + # all header names and header prefixes. + parsed = {} + prefix = shape.serialization.get('name', '').lower() + for header_name in headers: + if header_name.lower().startswith(prefix): + # The key name inserted into the parsed hash + # strips off the prefix. + name = header_name[len(prefix) :] + parsed[name] = headers[header_name] + return parsed + + def _initial_body_parse(self, body_contents): + # This method should do the initial xml/json parsing of the + # body. We still need to walk the parsed body in order + # to convert types, but this method will do the first round + # of parsing. + raise NotImplementedError("_initial_body_parse") + + def _handle_string(self, shape, value): + parsed = value + if is_json_value_header(shape): + decoded = base64.b64decode(value).decode(self.DEFAULT_ENCODING) + parsed = json.loads(decoded) + return parsed + + def _handle_list(self, shape, node): + location = shape.serialization.get('location') + if location == 'header' and not isinstance(node, list): + # List in headers may be a comma separated string as per RFC7230 + node = [e.strip() for e in node.split(',')] + return super()._handle_list(shape, node) + + +class BaseRpcV2Parser(ResponseParser): + def _do_parse(self, response, shape): + parsed = {} + if shape is not None: + event_stream_name = shape.event_stream_name + if event_stream_name: + parsed = self._handle_event_stream( + response, shape, event_stream_name + ) + else: + parsed = {} + self._parse_payload(response, shape, parsed) + parsed['ResponseMetadata'] = self._populate_response_metadata( + response + ) + return parsed + + def _add_modeled_parse(self, response, shape, final_parsed): + if shape is None: + return final_parsed + self._parse_payload(response, shape, final_parsed) + + def _do_modeled_error_parse(self, response, shape): + final_parsed = {} + self._add_modeled_parse(response, shape, final_parsed) + return final_parsed + + def _populate_response_metadata(self, response): + metadata = {} + headers = response['headers'] + if 'x-amzn-requestid' in headers: + metadata['RequestId'] = headers['x-amzn-requestid'] + return metadata + + def _handle_structure(self, shape, node): + parsed = {} + members = shape.members + if shape.is_tagged_union: + cleaned_value = node.copy() + cleaned_value.pop("__type", None) + cleaned_value = { + k: v for k, v in cleaned_value.items() if v is not None + } + if len(cleaned_value) != 1: + error_msg = ( + "Invalid service response: %s must have one and only " + "one member set." + ) + raise ResponseParserError(error_msg % shape.name) + for member_name in members: + member_shape = members[member_name] + member_node = node.get(member_name) + if member_node is not None: + parsed[member_name] = self._parse_shape( + member_shape, member_node + ) + return parsed + + def _parse_payload(self, response, shape, final_parsed): + original_parsed = self._initial_body_parse(response['body']) + body_parsed = self._parse_shape(shape, original_parsed) + final_parsed.update(body_parsed) + + def _initial_body_parse(self, body_contents): + # This method should do the initial parsing of the + # body. We still need to walk the parsed body in order + # to convert types, but this method will do the first round + # of parsing. + raise NotImplementedError("_initial_body_parse") + + +class RestJSONParser(BaseRestParser, BaseJSONParser): + EVENT_STREAM_PARSER_CLS = EventStreamJSONParser + + def _initial_body_parse(self, body_contents): + return self._parse_body_as_json(body_contents) + + def _do_error_parse(self, response, shape): + error = super()._do_error_parse(response, shape) + self._inject_error_code(error, response) + return error + + def _inject_error_code(self, error, response): + # The "Code" value can come from either a response + # header or a value in the JSON body. + body = self._initial_body_parse(response['body']) + code = None + if 'x-amzn-errortype' in response['headers']: + code = response['headers']['x-amzn-errortype'] + elif 'code' in body or 'Code' in body: + code = body.get('code', body.get('Code', '')) + if code is None: + return + if isinstance(code, str): + code = code.split(':', 1)[0].rsplit('#', 1)[-1] + error['Error']['Code'] = code + + def _handle_boolean(self, shape, value): + return ensure_boolean(value) + + def _handle_integer(self, shape, value): + return int(value) + + def _handle_float(self, shape, value): + return float(value) + + _handle_long = _handle_integer + _handle_double = _handle_float + + +class RpcV2CBORParser(BaseRpcV2Parser, BaseCBORParser): + EVENT_STREAM_PARSER_CLS = EventStreamCBORParser + + def _initial_body_parse(self, body_contents): + if body_contents == b'': + return body_contents + body_contents_stream = self.get_peekable_stream_from_bytes( + body_contents + ) + return self.parse_data_item(body_contents_stream) + + def _do_error_parse(self, response, shape): + body = self._initial_body_parse(response['body']) + error = { + "Error": { + "Message": body.get('message', body.get('Message', '')), + "Code": '', + }, + "ResponseMetadata": {}, + } + headers = response['headers'] + + code = body.get('__type') + if code is None: + response_code = response.get('status_code') + if response_code is not None: + code = str(response_code) + if code is not None: + if ':' in code: + code = code.split(':', 1)[0] + if '#' in code: + code = code.rsplit('#', 1)[1] + if 'x-amzn-query-error' in headers: + code = self._do_query_compatible_error_parse( + code, headers, error + ) + error['Error']['Code'] = code + if 'x-amzn-requestid' in headers: + error.setdefault('ResponseMetadata', {})['RequestId'] = headers[ + 'x-amzn-requestid' + ] + return error + + def _handle_event_stream(self, response, shape, event_name): + event_stream_shape = shape.members[event_name] + event_stream = self._create_event_stream(response, event_stream_shape) + try: + event = event_stream.get_initial_response() + except NoInitialResponseError: + error_msg = 'First event was not of type initial-response' + raise ResponseParserError(error_msg) + parsed = self._initial_body_parse(event.payload) + parsed[event_name] = event_stream + return parsed + + +class RestXMLParser(BaseRestParser, BaseXMLResponseParser): + EVENT_STREAM_PARSER_CLS = EventStreamXMLParser + + def _initial_body_parse(self, xml_string): + if not xml_string: + return ETree.Element('') + return self._parse_xml_string_to_dom(xml_string) + + def _do_error_parse(self, response, shape): + # We're trying to be service agnostic here, but S3 does have a slightly + # different response structure for its errors compared to other + # rest-xml serivces (route53/cloudfront). We handle this by just + # trying to parse both forms. + # First: + # + # + # Sender + # InvalidInput + # Invalid resource type: foo + # + # request-id + # + if response['body']: + # If the body ends up being invalid xml, the xml parser should not + # blow up. It should at least try to pull information about the + # the error response from other sources like the HTTP status code. + try: + return self._parse_error_from_body(response) + except ResponseParserError: + LOG.debug( + 'Exception caught when parsing error response body:', + exc_info=True, + ) + return self._parse_error_from_http_status(response) + + def _parse_error_from_http_status(self, response): + return { + 'Error': { + 'Code': str(response['status_code']), + 'Message': http.client.responses.get( + response['status_code'], '' + ), + }, + 'ResponseMetadata': { + 'RequestId': response['headers'].get('x-amz-request-id', ''), + 'HostId': response['headers'].get('x-amz-id-2', ''), + }, + } + + def _parse_error_from_body(self, response): + xml_contents = response['body'] + root = self._parse_xml_string_to_dom(xml_contents) + parsed = self._build_name_to_xml_node(root) + self._replace_nodes(parsed) + if root.tag == 'Error': + # This is an S3 error response. First we'll populate the + # response metadata. + metadata = self._populate_response_metadata(response) + # The RequestId and the HostId are already in the + # ResponseMetadata, but are also duplicated in the XML + # body. We don't need these values in both places, + # we'll just remove them from the parsed XML body. + parsed.pop('RequestId', '') + parsed.pop('HostId', '') + return {'Error': parsed, 'ResponseMetadata': metadata} + elif 'RequestId' in parsed: + # Other rest-xml services: + parsed['ResponseMetadata'] = {'RequestId': parsed.pop('RequestId')} + default = {'Error': {'Message': '', 'Code': ''}} + merge_dicts(default, parsed) + return default + + @_text_content + def _handle_string(self, shape, text): + text = super()._handle_string(shape, text) + return text + + +PROTOCOL_PARSERS = { + 'ec2': EC2QueryParser, + 'query': QueryParser, + 'json': JSONParser, + 'rest-json': RestJSONParser, + 'rest-xml': RestXMLParser, + 'smithy-rpc-v2-cbor': RpcV2CBORParser, +} diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/plugin.py b/rep_localstack/lib/python3.12/site-packages/botocore/plugin.py new file mode 100644 index 000000000..a06a75505 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/plugin.py @@ -0,0 +1,85 @@ +# Copyright 2025 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +""" +NOTE: This module is considered private and is subject to abrupt breaking +changes without prior announcement. Please do not use it directly. +""" + +import importlib +import logging +import os +from contextvars import ContextVar +from dataclasses import dataclass +from typing import Optional + +log = logging.getLogger(__name__) + + +@dataclass +class PluginContext: + """ + Encapsulation of plugins tracked within the `_plugin_context` context variable. + """ + + plugins: Optional[str] = None + + +_plugin_context = ContextVar("_plugin_context") + + +def get_plugin_context(): + """Get the current `_plugin_context` context variable if set, else None.""" + return _plugin_context.get(None) + + +def set_plugin_context(ctx): + """Set the current `_plugin_context` context variable.""" + token = _plugin_context.set(ctx) + return token + + +def reset_plugin_context(token): + """Reset the current `_plugin_context` context variable.""" + _plugin_context.reset(token) + + +def get_botocore_plugins(): + context = get_plugin_context() + if context is not None: + plugins = context.plugins + if plugins is None: + context.plugins = os.environ.get('BOTOCORE_EXPERIMENTAL__PLUGINS') + else: + return plugins + return os.environ.get('BOTOCORE_EXPERIMENTAL__PLUGINS') + + +def load_client_plugins(client, plugins): + for plugin_name, module_name in plugins.items(): + log.debug( + "Importing client plugin %s from module %s", + plugin_name, + module_name, + ) + try: + module = importlib.import_module(module_name) + module.initialize_client_plugin(client) + except ModuleNotFoundError: + log.debug( + "Failed to locate the following plugin module: %s.", + plugin_name, + ) + except Exception as e: + log.debug( + "Error raised during the loading of %s: %s", plugin_name, e + ) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/regions.py b/rep_localstack/lib/python3.12/site-packages/botocore/regions.py new file mode 100644 index 000000000..41a8ce528 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/regions.py @@ -0,0 +1,893 @@ +# Copyright 2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +"""Resolves regions and endpoints. + +This module implements endpoint resolution, including resolving endpoints for a +given service and region and resolving the available endpoints for a service +in a specific AWS partition. +""" + +import copy +import logging +import re +from enum import Enum + +import jmespath + +from botocore import UNSIGNED, xform_name +from botocore.auth import ( + AUTH_TYPE_MAPS, + HAS_CRT, + resolve_auth_scheme_preference, +) +from botocore.crt import CRT_SUPPORTED_AUTH_TYPES +from botocore.endpoint_provider import EndpointProvider +from botocore.exceptions import ( + EndpointProviderError, + EndpointVariantError, + InvalidEndpointConfigurationError, + InvalidHostLabelError, + MissingDependencyException, + NoRegionError, + ParamValidationError, + UnknownEndpointResolutionBuiltInName, + UnknownRegionError, + UnknownSignatureVersionError, + UnsupportedS3AccesspointConfigurationError, + UnsupportedS3ConfigurationError, + UnsupportedS3ControlArnError, + UnsupportedS3ControlConfigurationError, +) +from botocore.useragent import register_feature_id +from botocore.utils import ensure_boolean, instance_cache + +LOG = logging.getLogger(__name__) +DEFAULT_URI_TEMPLATE = '{service}.{region}.{dnsSuffix}' # noqa +DEFAULT_SERVICE_DATA = {'endpoints': {}} + + +class BaseEndpointResolver: + """Resolves regions and endpoints. Must be subclassed.""" + + def construct_endpoint(self, service_name, region_name=None): + """Resolves an endpoint for a service and region combination. + + :type service_name: string + :param service_name: Name of the service to resolve an endpoint for + (e.g., s3) + + :type region_name: string + :param region_name: Region/endpoint name to resolve (e.g., us-east-1) + if no region is provided, the first found partition-wide endpoint + will be used if available. + + :rtype: dict + :return: Returns a dict containing the following keys: + - partition: (string, required) Resolved partition name + - endpointName: (string, required) Resolved endpoint name + - hostname: (string, required) Hostname to use for this endpoint + - sslCommonName: (string) sslCommonName to use for this endpoint. + - credentialScope: (dict) Signature version 4 credential scope + - region: (string) region name override when signing. + - service: (string) service name override when signing. + - signatureVersions: (list) A list of possible signature + versions, including s3, v4, v2, and s3v4 + - protocols: (list) A list of supported protocols + (e.g., http, https) + - ...: Other keys may be included as well based on the metadata + """ + raise NotImplementedError + + def get_available_partitions(self): + """Lists the partitions available to the endpoint resolver. + + :return: Returns a list of partition names (e.g., ["aws", "aws-cn"]). + """ + raise NotImplementedError + + def get_available_endpoints( + self, service_name, partition_name='aws', allow_non_regional=False + ): + """Lists the endpoint names of a particular partition. + + :type service_name: string + :param service_name: Name of a service to list endpoint for (e.g., s3) + + :type partition_name: string + :param partition_name: Name of the partition to limit endpoints to. + (e.g., aws for the public AWS endpoints, aws-cn for AWS China + endpoints, aws-us-gov for AWS GovCloud (US) Endpoints, etc. + + :type allow_non_regional: bool + :param allow_non_regional: Set to True to include endpoints that are + not regional endpoints (e.g., s3-external-1, + fips-us-gov-west-1, etc). + :return: Returns a list of endpoint names (e.g., ["us-east-1"]). + """ + raise NotImplementedError + + +class EndpointResolver(BaseEndpointResolver): + """Resolves endpoints based on partition endpoint metadata""" + + _UNSUPPORTED_DUALSTACK_PARTITIONS = ['aws-iso', 'aws-iso-b'] + + def __init__(self, endpoint_data, uses_builtin_data=False): + """ + :type endpoint_data: dict + :param endpoint_data: A dict of partition data. + + :type uses_builtin_data: boolean + :param uses_builtin_data: Whether the endpoint data originates in the + package's data directory. + """ + if 'partitions' not in endpoint_data: + raise ValueError('Missing "partitions" in endpoint data') + self._endpoint_data = endpoint_data + self.uses_builtin_data = uses_builtin_data + + def get_service_endpoints_data(self, service_name, partition_name='aws'): + for partition in self._endpoint_data['partitions']: + if partition['partition'] != partition_name: + continue + services = partition['services'] + if service_name not in services: + continue + return services[service_name]['endpoints'] + + def get_available_partitions(self): + result = [] + for partition in self._endpoint_data['partitions']: + result.append(partition['partition']) + return result + + def get_available_endpoints( + self, + service_name, + partition_name='aws', + allow_non_regional=False, + endpoint_variant_tags=None, + ): + result = [] + for partition in self._endpoint_data['partitions']: + if partition['partition'] != partition_name: + continue + services = partition['services'] + if service_name not in services: + continue + service_endpoints = services[service_name]['endpoints'] + for endpoint_name in service_endpoints: + is_regional_endpoint = endpoint_name in partition['regions'] + # Only regional endpoints can be modeled with variants + if endpoint_variant_tags and is_regional_endpoint: + variant_data = self._retrieve_variant_data( + service_endpoints[endpoint_name], endpoint_variant_tags + ) + if variant_data: + result.append(endpoint_name) + elif allow_non_regional or is_regional_endpoint: + result.append(endpoint_name) + return result + + def get_partition_dns_suffix( + self, partition_name, endpoint_variant_tags=None + ): + for partition in self._endpoint_data['partitions']: + if partition['partition'] == partition_name: + if endpoint_variant_tags: + variant = self._retrieve_variant_data( + partition.get('defaults'), endpoint_variant_tags + ) + if variant and 'dnsSuffix' in variant: + return variant['dnsSuffix'] + else: + return partition['dnsSuffix'] + return None + + def construct_endpoint( + self, + service_name, + region_name=None, + partition_name=None, + use_dualstack_endpoint=False, + use_fips_endpoint=False, + ): + if ( + service_name == 's3' + and use_dualstack_endpoint + and region_name is None + ): + region_name = 'us-east-1' + + if partition_name is not None: + valid_partition = None + for partition in self._endpoint_data['partitions']: + if partition['partition'] == partition_name: + valid_partition = partition + + if valid_partition is not None: + result = self._endpoint_for_partition( + valid_partition, + service_name, + region_name, + use_dualstack_endpoint, + use_fips_endpoint, + True, + ) + return result + return None + + # Iterate over each partition until a match is found. + for partition in self._endpoint_data['partitions']: + if use_dualstack_endpoint and ( + partition['partition'] + in self._UNSUPPORTED_DUALSTACK_PARTITIONS + ): + continue + result = self._endpoint_for_partition( + partition, + service_name, + region_name, + use_dualstack_endpoint, + use_fips_endpoint, + ) + if result: + return result + + def get_partition_for_region(self, region_name): + for partition in self._endpoint_data['partitions']: + if self._region_match(partition, region_name): + return partition['partition'] + raise UnknownRegionError( + region_name=region_name, + error_msg='No partition found for provided region_name.', + ) + + def _endpoint_for_partition( + self, + partition, + service_name, + region_name, + use_dualstack_endpoint, + use_fips_endpoint, + force_partition=False, + ): + partition_name = partition["partition"] + if ( + use_dualstack_endpoint + and partition_name in self._UNSUPPORTED_DUALSTACK_PARTITIONS + ): + error_msg = ( + "Dualstack endpoints are currently not supported" + f" for {partition_name} partition" + ) + raise EndpointVariantError(tags=['dualstack'], error_msg=error_msg) + + # Get the service from the partition, or an empty template. + service_data = partition['services'].get( + service_name, DEFAULT_SERVICE_DATA + ) + # Use the partition endpoint if no region is supplied. + if region_name is None: + if 'partitionEndpoint' in service_data: + region_name = service_data['partitionEndpoint'] + else: + raise NoRegionError() + + resolve_kwargs = { + 'partition': partition, + 'service_name': service_name, + 'service_data': service_data, + 'endpoint_name': region_name, + 'use_dualstack_endpoint': use_dualstack_endpoint, + 'use_fips_endpoint': use_fips_endpoint, + } + + # Attempt to resolve the exact region for this partition. + if region_name in service_data['endpoints']: + return self._resolve(**resolve_kwargs) + + # Check to see if the endpoint provided is valid for the partition. + if self._region_match(partition, region_name) or force_partition: + # Use the partition endpoint if set and not regionalized. + partition_endpoint = service_data.get('partitionEndpoint') + is_regionalized = service_data.get('isRegionalized', True) + if partition_endpoint and not is_regionalized: + LOG.debug( + 'Using partition endpoint for %s, %s: %s', + service_name, + region_name, + partition_endpoint, + ) + resolve_kwargs['endpoint_name'] = partition_endpoint + return self._resolve(**resolve_kwargs) + LOG.debug( + 'Creating a regex based endpoint for %s, %s', + service_name, + region_name, + ) + return self._resolve(**resolve_kwargs) + + def _region_match(self, partition, region_name): + if region_name in partition['regions']: + return True + if 'regionRegex' in partition: + return re.compile(partition['regionRegex']).match(region_name) + return False + + def _retrieve_variant_data(self, endpoint_data, tags): + variants = endpoint_data.get('variants', []) + for variant in variants: + if set(variant['tags']) == set(tags): + result = variant.copy() + return result + + def _create_tag_list(self, use_dualstack_endpoint, use_fips_endpoint): + tags = [] + if use_dualstack_endpoint: + tags.append('dualstack') + if use_fips_endpoint: + tags.append('fips') + return tags + + def _resolve_variant( + self, tags, endpoint_data, service_defaults, partition_defaults + ): + result = {} + for variants in [endpoint_data, service_defaults, partition_defaults]: + variant = self._retrieve_variant_data(variants, tags) + if variant: + self._merge_keys(variant, result) + return result + + def _resolve( + self, + partition, + service_name, + service_data, + endpoint_name, + use_dualstack_endpoint, + use_fips_endpoint, + ): + endpoint_data = service_data.get('endpoints', {}).get( + endpoint_name, {} + ) + + if endpoint_data.get('deprecated'): + LOG.warning( + 'Client is configured with the deprecated endpoint: %s', + endpoint_name, + ) + + service_defaults = service_data.get('defaults', {}) + partition_defaults = partition.get('defaults', {}) + tags = self._create_tag_list(use_dualstack_endpoint, use_fips_endpoint) + + if tags: + result = self._resolve_variant( + tags, endpoint_data, service_defaults, partition_defaults + ) + if result == {}: + error_msg = ( + f"Endpoint does not exist for {service_name} " + f"in region {endpoint_name}" + ) + raise EndpointVariantError(tags=tags, error_msg=error_msg) + self._merge_keys(endpoint_data, result) + else: + result = endpoint_data + + # If dnsSuffix has not already been consumed from a variant definition + if 'dnsSuffix' not in result: + result['dnsSuffix'] = partition['dnsSuffix'] + + result['partition'] = partition['partition'] + result['endpointName'] = endpoint_name + + # Merge in the service defaults then the partition defaults. + self._merge_keys(service_defaults, result) + self._merge_keys(partition_defaults, result) + + result['hostname'] = self._expand_template( + partition, + result['hostname'], + service_name, + endpoint_name, + result['dnsSuffix'], + ) + if 'sslCommonName' in result: + result['sslCommonName'] = self._expand_template( + partition, + result['sslCommonName'], + service_name, + endpoint_name, + result['dnsSuffix'], + ) + + return result + + def _merge_keys(self, from_data, result): + for key in from_data: + if key not in result: + result[key] = from_data[key] + + def _expand_template( + self, partition, template, service_name, endpoint_name, dnsSuffix + ): + return template.format( + service=service_name, region=endpoint_name, dnsSuffix=dnsSuffix + ) + + +class EndpointResolverBuiltins(str, Enum): + # The AWS Region configured for the SDK client (str) + AWS_REGION = "AWS::Region" + # Whether the UseFIPSEndpoint configuration option has been enabled for + # the SDK client (bool) + AWS_USE_FIPS = "AWS::UseFIPS" + # Whether the UseDualStackEndpoint configuration option has been enabled + # for the SDK client (bool) + AWS_USE_DUALSTACK = "AWS::UseDualStack" + # Whether the global endpoint should be used with STS, rather than the + # regional endpoint for us-east-1 (bool) + AWS_STS_USE_GLOBAL_ENDPOINT = "AWS::STS::UseGlobalEndpoint" + # Whether the global endpoint should be used with S3, rather than the + # regional endpoint for us-east-1 (bool) + AWS_S3_USE_GLOBAL_ENDPOINT = "AWS::S3::UseGlobalEndpoint" + # Whether S3 Transfer Acceleration has been requested (bool) + AWS_S3_ACCELERATE = "AWS::S3::Accelerate" + # Whether S3 Force Path Style has been enabled (bool) + AWS_S3_FORCE_PATH_STYLE = "AWS::S3::ForcePathStyle" + # Whether to use the ARN region or raise an error when ARN and client + # region differ (for s3 service only, bool) + AWS_S3_USE_ARN_REGION = "AWS::S3::UseArnRegion" + # Whether to use S3 Express session authentication, or fallback to default + # authentication (for s3 service only, bool). + AWS_S3_DISABLE_EXPRESS_SESSION_AUTH = ( + "AWS::S3::DisableS3ExpressSessionAuth" + ) + # Whether to use the ARN region or raise an error when ARN and client + # region differ (for s3-control service only, bool) + AWS_S3CONTROL_USE_ARN_REGION = 'AWS::S3Control::UseArnRegion' + # Whether multi-region access points (MRAP) should be disabled (bool) + AWS_S3_DISABLE_MRAP = "AWS::S3::DisableMultiRegionAccessPoints" + # Whether a custom endpoint has been configured (str) + SDK_ENDPOINT = "SDK::Endpoint" + # An AWS account ID that can be optionally configured for the SDK client (str) + ACCOUNT_ID = "AWS::Auth::AccountId" + # Whether an endpoint should include an account ID (str) + ACCOUNT_ID_ENDPOINT_MODE = "AWS::Auth::AccountIdEndpointMode" + + +class EndpointRulesetResolver: + """Resolves endpoints using a service's endpoint ruleset""" + + def __init__( + self, + endpoint_ruleset_data, + partition_data, + service_model, + builtins, + client_context, + event_emitter, + use_ssl=True, + requested_auth_scheme=None, + auth_scheme_preference=None, + ): + self._provider = EndpointProvider( + ruleset_data=endpoint_ruleset_data, + partition_data=partition_data, + ) + self._param_definitions = self._provider.ruleset.parameters + self._service_model = service_model + self._builtins = builtins + self._client_context = client_context + self._event_emitter = event_emitter + self._use_ssl = use_ssl + self._requested_auth_scheme = requested_auth_scheme + self._auth_scheme_preference = auth_scheme_preference + self._instance_cache = {} + + def construct_endpoint( + self, + operation_model, + call_args, + request_context, + ): + """Invokes the provider with params defined in the service's ruleset""" + if call_args is None: + call_args = {} + + if request_context is None: + request_context = {} + + provider_params = self._get_provider_params( + operation_model, call_args, request_context + ) + LOG.debug( + 'Calling endpoint provider with parameters: %s', provider_params + ) + try: + provider_result = self._provider.resolve_endpoint( + **provider_params + ) + except EndpointProviderError as ex: + botocore_exception = self.ruleset_error_to_botocore_exception( + ex, provider_params + ) + if botocore_exception is None: + raise + else: + raise botocore_exception from ex + LOG.debug('Endpoint provider result: %s', provider_result.url) + + # The endpoint provider does not support non-secure transport. + if ( + not self._use_ssl + and provider_result.url.startswith('https://') + and 'Endpoint' not in provider_params + ): + provider_result = provider_result._replace( + url=f'http://{provider_result.url[8:]}' + ) + + # Multi-valued headers are not supported in botocore. Replace the list + # of values returned for each header with just its first entry, + # dropping any additionally entries. + provider_result = provider_result._replace( + headers={ + key: val[0] for key, val in provider_result.headers.items() + } + ) + + return provider_result + + def _get_provider_params( + self, operation_model, call_args, request_context + ): + """Resolve a value for each parameter defined in the service's ruleset + + The resolution order for parameter values is: + 1. Operation-specific static context values from the service definition + 2. Operation-specific dynamic context values from API parameters + 3. Client-specific context parameters + 4. Built-in values such as region, FIPS usage, ... + """ + provider_params = {} + # Builtin values can be customized for each operation by hooks + # subscribing to the ``before-endpoint-resolution.*`` event. + customized_builtins = self._get_customized_builtins( + operation_model, call_args, request_context + ) + for param_name, param_def in self._param_definitions.items(): + param_val = self._resolve_param_from_context( + param_name=param_name, + operation_model=operation_model, + call_args=call_args, + ) + if param_val is None and param_def.builtin is not None: + param_val = self._resolve_param_as_builtin( + builtin_name=param_def.builtin, + builtins=customized_builtins, + ) + if param_val is not None: + provider_params[param_name] = param_val + self._register_endpoint_feature_ids(param_name, param_val) + + return provider_params + + def _resolve_param_from_context( + self, param_name, operation_model, call_args + ): + static = self._resolve_param_as_static_context_param( + param_name, operation_model + ) + if static is not None: + return static + dynamic = self._resolve_param_as_dynamic_context_param( + param_name, operation_model, call_args + ) + if dynamic is not None: + return dynamic + operation_context_params = ( + self._resolve_param_as_operation_context_param( + param_name, operation_model, call_args + ) + ) + if operation_context_params is not None: + return operation_context_params + return self._resolve_param_as_client_context_param(param_name) + + def _resolve_param_as_static_context_param( + self, param_name, operation_model + ): + static_ctx_params = self._get_static_context_params(operation_model) + return static_ctx_params.get(param_name) + + def _resolve_param_as_dynamic_context_param( + self, param_name, operation_model, call_args + ): + dynamic_ctx_params = self._get_dynamic_context_params(operation_model) + if param_name in dynamic_ctx_params: + member_name = dynamic_ctx_params[param_name] + return call_args.get(member_name) + + def _resolve_param_as_client_context_param(self, param_name): + client_ctx_params = self._get_client_context_params() + if param_name in client_ctx_params: + client_ctx_varname = client_ctx_params[param_name] + return self._client_context.get(client_ctx_varname) + + def _resolve_param_as_operation_context_param( + self, param_name, operation_model, call_args + ): + operation_ctx_params = operation_model.operation_context_parameters + if param_name in operation_ctx_params: + path = operation_ctx_params[param_name]['path'] + return jmespath.search(path, call_args) + + def _resolve_param_as_builtin(self, builtin_name, builtins): + if builtin_name not in EndpointResolverBuiltins.__members__.values(): + raise UnknownEndpointResolutionBuiltInName(name=builtin_name) + builtin = builtins.get(builtin_name) + if callable(builtin): + return builtin() + return builtin + + @instance_cache + def _get_static_context_params(self, operation_model): + """Mapping of param names to static param value for an operation""" + return { + param.name: param.value + for param in operation_model.static_context_parameters + } + + @instance_cache + def _get_dynamic_context_params(self, operation_model): + """Mapping of param names to member names for an operation""" + return { + param.name: param.member_name + for param in operation_model.context_parameters + } + + @instance_cache + def _get_client_context_params(self): + """Mapping of param names to client configuration variable""" + return { + param.name: xform_name(param.name) + for param in self._service_model.client_context_parameters + } + + def _get_customized_builtins( + self, operation_model, call_args, request_context + ): + service_id = self._service_model.service_id.hyphenize() + customized_builtins = copy.copy(self._builtins) + # Handlers are expected to modify the builtins dict in place. + self._event_emitter.emit( + f'before-endpoint-resolution.{service_id}', + builtins=customized_builtins, + model=operation_model, + params=call_args, + context=request_context, + ) + return customized_builtins + + def auth_schemes_to_signing_ctx(self, auth_schemes): + """Convert an Endpoint's authSchemes property to a signing_context dict + + :type auth_schemes: list + :param auth_schemes: A list of dictionaries taken from the + ``authSchemes`` property of an Endpoint object returned by + ``EndpointProvider``. + + :rtype: str, dict + :return: Tuple of auth type string (to be used in + ``request_context['auth_type']``) and signing context dict (for use + in ``request_context['signing']``). + """ + if not isinstance(auth_schemes, list) or len(auth_schemes) == 0: + raise TypeError("auth_schemes must be a non-empty list.") + + LOG.debug( + 'Selecting from endpoint provider\'s list of auth schemes: %s. ' + 'User selected auth scheme is: "%s"', + ', '.join([f'"{s.get("name")}"' for s in auth_schemes]), + self._requested_auth_scheme, + ) + + if self._requested_auth_scheme == UNSIGNED: + return 'none', {} + + available_ruleset_names = [ + s['name'].split('#')[-1] for s in auth_schemes + ] + auth_schemes = [ + {**scheme, 'name': self._strip_sig_prefix(scheme['name'])} + for scheme in auth_schemes + ] + if self._requested_auth_scheme is not None: + try: + # Use the first scheme that matches the requested scheme, + # after accounting for naming differences between botocore and + # endpoint rulesets. Keep the requested name. + name, scheme = next( + (self._requested_auth_scheme, s) + for s in auth_schemes + if self._does_botocore_authname_match_ruleset_authname( + self._requested_auth_scheme, s['name'] + ) + ) + except StopIteration: + # For legacy signers, no match will be found. Do not raise an + # exception, instead default to the logic in botocore + # customizations. + return None, {} + elif self._auth_scheme_preference is not None: + prefs = self._auth_scheme_preference.split(',') + auth_schemes_by_auth_type = { + self._strip_sig_prefix(s['name'].split('#')[-1]): s + for s in auth_schemes + } + name = resolve_auth_scheme_preference( + prefs, available_ruleset_names + ) + scheme = auth_schemes_by_auth_type[name] + else: + try: + name, scheme = next( + (s['name'], s) + for s in auth_schemes + if s['name'] in AUTH_TYPE_MAPS + ) + except StopIteration: + # If no auth scheme was specifically requested and an + # authSchemes list is present in the Endpoint object but none + # of the entries are supported, raise an exception. + fixable_with_crt = False + auth_type_options = [s['name'] for s in auth_schemes] + if not HAS_CRT: + fixable_with_crt = any( + scheme in CRT_SUPPORTED_AUTH_TYPES + for scheme in auth_type_options + ) + + if fixable_with_crt: + raise MissingDependencyException( + msg='This operation requires an additional dependency.' + ' Use pip install botocore[crt] before proceeding.' + ) + else: + raise UnknownSignatureVersionError( + signature_version=', '.join(auth_type_options) + ) + + signing_context = {} + if 'signingRegion' in scheme: + signing_context['region'] = scheme['signingRegion'] + elif 'signingRegionSet' in scheme: + if len(scheme['signingRegionSet']) > 0: + signing_context['region'] = ','.join( + scheme['signingRegionSet'] + ) + if 'signingName' in scheme: + signing_context.update(signing_name=scheme['signingName']) + if 'disableDoubleEncoding' in scheme: + signing_context['disableDoubleEncoding'] = ensure_boolean( + scheme['disableDoubleEncoding'] + ) + + LOG.debug( + 'Selected auth type "%s" as "%s" with signing context params: %s', + scheme['name'], # original name without "sig" + name, # chosen name can differ when `signature_version` is set + signing_context, + ) + return name, signing_context + + def _strip_sig_prefix(self, auth_name): + """Normalize auth type names by removing any "sig" prefix""" + return auth_name[3:] if auth_name.startswith('sig') else auth_name + + def _does_botocore_authname_match_ruleset_authname(self, botoname, rsname): + """ + Whether a valid string provided as signature_version parameter for + client construction refers to the same auth methods as a string + returned by the endpoint ruleset provider. This accounts for: + + * The ruleset prefixes auth names with "sig" + * The s3 and s3control rulesets don't distinguish between v4[a] and + s3v4[a] signers + * The v2, v3, and HMAC v1 based signers (s3, s3-*) are botocore legacy + features and do not exist in the rulesets + * Only characters up to the first dash are considered + + Example matches: + * v4, sigv4 + * v4, v4 + * s3v4, sigv4 + * s3v7, sigv7 (hypothetical example) + * s3v4a, sigv4a + * s3v4-query, sigv4 + + Example mismatches: + * v4a, sigv4 + * s3, sigv4 + * s3-presign-post, sigv4 + """ + rsname = self._strip_sig_prefix(rsname) + botoname = botoname.split('-')[0] + if botoname != 's3' and botoname.startswith('s3'): + botoname = botoname[2:] + return rsname == botoname + + def ruleset_error_to_botocore_exception(self, ruleset_exception, params): + """Attempts to translate ruleset errors to pre-existing botocore + exception types by string matching exception strings. + """ + msg = ruleset_exception.kwargs.get('msg') + if msg is None: + return + + if msg.startswith('Invalid region in ARN: '): + # Example message: + # "Invalid region in ARN: `us-we$t-2` (invalid DNS name)" + try: + label = msg.split('`')[1] + except IndexError: + label = msg + return InvalidHostLabelError(label=label) + + service_name = self._service_model.service_name + if service_name == 's3': + if ( + msg == 'S3 Object Lambda does not support S3 Accelerate' + or msg == 'Accelerate cannot be used with FIPS' + ): + return UnsupportedS3ConfigurationError(msg=msg) + if ( + msg.startswith('S3 Outposts does not support') + or msg.startswith('S3 MRAP does not support') + or msg.startswith('S3 Object Lambda does not support') + or msg.startswith('Access Points do not support') + or msg.startswith('Invalid configuration:') + or msg.startswith('Client was configured for partition') + ): + return UnsupportedS3AccesspointConfigurationError(msg=msg) + if msg.lower().startswith('invalid arn:'): + return ParamValidationError(report=msg) + if service_name == 's3control': + if msg.startswith('Invalid ARN:'): + arn = params.get('Bucket') + return UnsupportedS3ControlArnError(arn=arn, msg=msg) + if msg.startswith('Invalid configuration:') or msg.startswith( + 'Client was configured for partition' + ): + return UnsupportedS3ControlConfigurationError(msg=msg) + if msg == "AccountId is required but not set": + return ParamValidationError(report=msg) + if service_name == 'events': + if msg.startswith( + 'Invalid Configuration: FIPS is not supported with ' + 'EventBridge multi-region endpoints.' + ): + return InvalidEndpointConfigurationError(msg=msg) + if msg == 'EndpointId must be a valid host label.': + return InvalidEndpointConfigurationError(msg=msg) + return None + + def _register_endpoint_feature_ids(self, param_name, param_val): + if param_name == 'AccountIdEndpointMode': + register_feature_id(f'ACCOUNT_ID_MODE_{param_val.upper()}') + elif param_name == 'AccountId': + register_feature_id('RESOLVED_ACCOUNT_ID') diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/response.py b/rep_localstack/lib/python3.12/site-packages/botocore/response.py new file mode 100644 index 000000000..e123b5471 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/response.py @@ -0,0 +1,216 @@ +# Copyright (c) 2012-2013 Mitch Garnaat http://garnaat.org/ +# Copyright 2012-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import logging +from io import IOBase + +from urllib3.exceptions import ProtocolError as URLLib3ProtocolError +from urllib3.exceptions import ReadTimeoutError as URLLib3ReadTimeoutError + +from botocore import ( + ScalarTypes, # noqa: F401 + parsers, +) +from botocore.compat import ( + XMLParseError, # noqa: F401 + set_socket_timeout, +) +from botocore.exceptions import ( + IncompleteReadError, + ReadTimeoutError, + ResponseStreamingError, +) +from botocore.hooks import first_non_none_response # noqa + +logger = logging.getLogger(__name__) + + +class StreamingBody(IOBase): + """Wrapper class for an http response body. + + This provides a few additional conveniences that do not exist + in the urllib3 model: + + * Set the timeout on the socket (i.e read() timeouts) + * Auto validation of content length, if the amount of bytes + we read does not match the content length, an exception + is raised. + + """ + + _DEFAULT_CHUNK_SIZE = 1024 + + def __init__(self, raw_stream, content_length): + self._raw_stream = raw_stream + self._content_length = content_length + self._amount_read = 0 + + def __del__(self): + # Extending destructor in order to preserve the underlying raw_stream. + # The ability to add custom cleanup logic introduced in Python3.4+. + # https://www.python.org/dev/peps/pep-0442/ + pass + + def set_socket_timeout(self, timeout): + """Set the timeout seconds on the socket.""" + # The problem we're trying to solve is to prevent .read() calls from + # hanging. This can happen in rare cases. What we'd like to ideally + # do is set a timeout on the .read() call so that callers can retry + # the request. + # Unfortunately, this isn't currently possible in requests. + # See: https://github.com/kennethreitz/requests/issues/1803 + # So what we're going to do is reach into the guts of the stream and + # grab the socket object, which we can set the timeout on. We're + # putting in a check here so in case this interface goes away, we'll + # know. + try: + set_socket_timeout(self._raw_stream, timeout) + except AttributeError: + logger.exception( + "Cannot access the socket object of a streaming response. " + "It's possible the interface has changed." + ) + raise + + def readable(self): + try: + return self._raw_stream.readable() + except AttributeError: + return False + + def read(self, amt=None): + """Read at most amt bytes from the stream. + + If the amt argument is omitted, read all data. + """ + try: + chunk = self._raw_stream.read(amt) + except URLLib3ReadTimeoutError as e: + # TODO: the url will be None as urllib3 isn't setting it yet + raise ReadTimeoutError(endpoint_url=e.url, error=e) + except URLLib3ProtocolError as e: + raise ResponseStreamingError(error=e) + self._amount_read += len(chunk) + if amt is None or (not chunk and amt > 0): + # If the server sends empty contents or + # we ask to read all of the contents, then we know + # we need to verify the content length. + self._verify_content_length() + return chunk + + def readinto(self, b): + """Read bytes into a pre-allocated, writable bytes-like object b, and return the number of bytes read.""" + try: + amount_read = self._raw_stream.readinto(b) + except URLLib3ReadTimeoutError as e: + # TODO: the url will be None as urllib3 isn't setting it yet + raise ReadTimeoutError(endpoint_url=e.url, error=e) + except URLLib3ProtocolError as e: + raise ResponseStreamingError(error=e) + self._amount_read += amount_read + if amount_read == 0 and len(b) > 0: + # If the server sends empty contents then we know we need to verify + # the content length. + self._verify_content_length() + return amount_read + + def readlines(self): + return self._raw_stream.readlines() + + def __iter__(self): + """Return an iterator to yield 1k chunks from the raw stream.""" + return self.iter_chunks(self._DEFAULT_CHUNK_SIZE) + + def __next__(self): + """Return the next 1k chunk from the raw stream.""" + current_chunk = self.read(self._DEFAULT_CHUNK_SIZE) + if current_chunk: + return current_chunk + raise StopIteration() + + def __enter__(self): + return self._raw_stream + + def __exit__(self, type, value, traceback): + self._raw_stream.close() + + next = __next__ + + def iter_lines(self, chunk_size=_DEFAULT_CHUNK_SIZE, keepends=False): + """Return an iterator to yield lines from the raw stream. + + This is achieved by reading chunk of bytes (of size chunk_size) at a + time from the raw stream, and then yielding lines from there. + """ + pending = b'' + for chunk in self.iter_chunks(chunk_size): + lines = (pending + chunk).splitlines(True) + for line in lines[:-1]: + yield line.splitlines(keepends)[0] + pending = lines[-1] + if pending: + yield pending.splitlines(keepends)[0] + + def iter_chunks(self, chunk_size=_DEFAULT_CHUNK_SIZE): + """Return an iterator to yield chunks of chunk_size bytes from the raw + stream. + """ + while True: + current_chunk = self.read(chunk_size) + if current_chunk == b"": + break + yield current_chunk + + def _verify_content_length(self): + # See: https://github.com/kennethreitz/requests/issues/1855 + # Basically, our http library doesn't do this for us, so we have + # to do this ourself. + if self._content_length is not None and self._amount_read != int( + self._content_length + ): + raise IncompleteReadError( + actual_bytes=self._amount_read, + expected_bytes=int(self._content_length), + ) + + def tell(self): + return self._raw_stream.tell() + + def close(self): + """Close the underlying http response stream.""" + self._raw_stream.close() + + +def get_response(operation_model, http_response): + protocol = operation_model.service_model.resolved_protocol + response_dict = { + 'headers': http_response.headers, + 'status_code': http_response.status_code, + } + # TODO: Unfortunately, we have to have error logic here. + # If it looks like an error, in the streaming response case we + # need to actually grab the contents. + if response_dict['status_code'] >= 300: + response_dict['body'] = http_response.content + elif operation_model.has_streaming_output: + response_dict['body'] = StreamingBody( + http_response.raw, response_dict['headers'].get('content-length') + ) + else: + response_dict['body'] = http_response.content + + parser = parsers.create_parser(protocol) + return http_response, parser.parse( + response_dict, operation_model.output_shape + ) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/retries/__init__.py b/rep_localstack/lib/python3.12/site-packages/botocore/retries/__init__.py new file mode 100644 index 000000000..a6d6b377d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/retries/__init__.py @@ -0,0 +1,6 @@ +"""New retry v2 handlers. + +This package obsoletes the botocore/retryhandler.py module and contains +new retry logic. + +""" diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/__init__.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 000000000..227ffab10 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/__init__.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/adaptive.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/adaptive.cpython-312.pyc new file mode 100644 index 000000000..c70ea66f6 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/adaptive.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/base.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/base.cpython-312.pyc new file mode 100644 index 000000000..ba58e35d7 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/base.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/bucket.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/bucket.cpython-312.pyc new file mode 100644 index 000000000..0102cf514 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/bucket.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/quota.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/quota.cpython-312.pyc new file mode 100644 index 000000000..9f02a2506 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/quota.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/special.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/special.cpython-312.pyc new file mode 100644 index 000000000..f5253e352 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/special.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/standard.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/standard.cpython-312.pyc new file mode 100644 index 000000000..dfeeedc4a Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/standard.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/throttling.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/throttling.cpython-312.pyc new file mode 100644 index 000000000..788caf961 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/botocore/retries/__pycache__/throttling.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/retries/adaptive.py b/rep_localstack/lib/python3.12/site-packages/botocore/retries/adaptive.py new file mode 100644 index 000000000..5e638ddb7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/retries/adaptive.py @@ -0,0 +1,132 @@ +import logging +import math +import threading + +from botocore.retries import bucket, standard, throttling + +logger = logging.getLogger(__name__) + + +def register_retry_handler(client): + clock = bucket.Clock() + rate_adjustor = throttling.CubicCalculator( + starting_max_rate=0, start_time=clock.current_time() + ) + token_bucket = bucket.TokenBucket(max_rate=1, clock=clock) + rate_clocker = RateClocker(clock) + throttling_detector = standard.ThrottlingErrorDetector( + retry_event_adapter=standard.RetryEventAdapter(), + ) + limiter = ClientRateLimiter( + rate_adjustor=rate_adjustor, + rate_clocker=rate_clocker, + token_bucket=token_bucket, + throttling_detector=throttling_detector, + clock=clock, + ) + client.meta.events.register( + 'before-send', + limiter.on_sending_request, + ) + client.meta.events.register( + 'needs-retry', + limiter.on_receiving_response, + ) + return limiter + + +class ClientRateLimiter: + _MAX_RATE_ADJUST_SCALE = 2.0 + + def __init__( + self, + rate_adjustor, + rate_clocker, + token_bucket, + throttling_detector, + clock, + ): + self._rate_adjustor = rate_adjustor + self._rate_clocker = rate_clocker + self._token_bucket = token_bucket + self._throttling_detector = throttling_detector + self._clock = clock + self._enabled = False + self._lock = threading.Lock() + + def on_sending_request(self, request, **kwargs): + if self._enabled: + self._token_bucket.acquire() + + # Hooked up to needs-retry. + def on_receiving_response(self, **kwargs): + measured_rate = self._rate_clocker.record() + timestamp = self._clock.current_time() + with self._lock: + if not self._throttling_detector.is_throttling_error(**kwargs): + new_rate = self._rate_adjustor.success_received(timestamp) + else: + if not self._enabled: + rate_to_use = measured_rate + else: + rate_to_use = min( + measured_rate, self._token_bucket.max_rate + ) + new_rate = self._rate_adjustor.error_received( + rate_to_use, timestamp + ) + logger.debug( + "Throttling response received, new send rate: %s " + "measured rate: %s, token bucket capacity " + "available: %s", + new_rate, + measured_rate, + self._token_bucket.available_capacity, + ) + self._enabled = True + self._token_bucket.max_rate = min( + new_rate, self._MAX_RATE_ADJUST_SCALE * measured_rate + ) + + +class RateClocker: + """Tracks the rate at which a client is sending a request.""" + + _DEFAULT_SMOOTHING = 0.8 + # Update the rate every _TIME_BUCKET_RANGE seconds. + _TIME_BUCKET_RANGE = 0.5 + + def __init__( + self, + clock, + smoothing=_DEFAULT_SMOOTHING, + time_bucket_range=_TIME_BUCKET_RANGE, + ): + self._clock = clock + self._measured_rate = 0 + self._smoothing = smoothing + self._last_bucket = math.floor(self._clock.current_time()) + self._time_bucket_scale = 1 / self._TIME_BUCKET_RANGE + self._count = 0 + self._lock = threading.Lock() + + def record(self, amount=1): + with self._lock: + t = self._clock.current_time() + bucket = ( + math.floor(t * self._time_bucket_scale) + / self._time_bucket_scale + ) + self._count += amount + if bucket > self._last_bucket: + current_rate = self._count / float(bucket - self._last_bucket) + self._measured_rate = (current_rate * self._smoothing) + ( + self._measured_rate * (1 - self._smoothing) + ) + self._count = 0 + self._last_bucket = bucket + return self._measured_rate + + @property + def measured_rate(self): + return self._measured_rate diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/retries/base.py b/rep_localstack/lib/python3.12/site-packages/botocore/retries/base.py new file mode 100644 index 000000000..108bfed69 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/retries/base.py @@ -0,0 +1,26 @@ +class BaseRetryBackoff: + def delay_amount(self, context): + """Calculate how long we should delay before retrying. + + :type context: RetryContext + + """ + raise NotImplementedError("delay_amount") + + +class BaseRetryableChecker: + """Base class for determining if a retry should happen. + + This base class checks for specific retryable conditions. + A single retryable checker doesn't necessarily indicate a retry + will happen. It's up to the ``RetryPolicy`` to use its + ``BaseRetryableCheckers`` to make the final decision on whether a retry + should happen. + """ + + def is_retryable(self, context): + """Returns True if retryable, False if not. + + :type context: RetryContext + """ + raise NotImplementedError("is_retryable") diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/retries/bucket.py b/rep_localstack/lib/python3.12/site-packages/botocore/retries/bucket.py new file mode 100644 index 000000000..09d33c77d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/retries/bucket.py @@ -0,0 +1,115 @@ +"""This module implements token buckets used for client side throttling.""" + +import threading +import time + +from botocore.exceptions import CapacityNotAvailableError + + +class Clock: + def __init__(self): + pass + + def sleep(self, amount): + time.sleep(amount) + + def current_time(self): + return time.time() + + +class TokenBucket: + _MIN_RATE = 0.5 + + def __init__(self, max_rate, clock, min_rate=_MIN_RATE): + self._fill_rate = None + self._max_capacity = None + self._current_capacity = 0 + self._clock = clock + self._last_timestamp = None + self._min_rate = min_rate + self._lock = threading.Lock() + self._new_fill_rate_condition = threading.Condition(self._lock) + self.max_rate = max_rate + + @property + def max_rate(self): + return self._fill_rate + + @max_rate.setter + def max_rate(self, value): + with self._new_fill_rate_condition: + # Before we can change the rate we need to fill any pending + # tokens we might have based on the current rate. If we don't + # do this it means everything since the last recorded timestamp + # will accumulate at the rate we're about to set which isn't + # correct. + self._refill() + self._fill_rate = max(value, self._min_rate) + if value >= 1: + self._max_capacity = value + else: + self._max_capacity = 1 + # If we're scaling down, we also can't have a capacity that's + # more than our max_capacity. + self._current_capacity = min( + self._current_capacity, self._max_capacity + ) + self._new_fill_rate_condition.notify() + + @property + def max_capacity(self): + return self._max_capacity + + @property + def available_capacity(self): + return self._current_capacity + + def acquire(self, amount=1, block=True): + """Acquire token or return amount of time until next token available. + + If block is True, then this method will block until there's sufficient + capacity to acquire the desired amount. + + If block is False, then this method will return True is capacity + was successfully acquired, False otherwise. + + """ + with self._new_fill_rate_condition: + return self._acquire(amount=amount, block=block) + + def _acquire(self, amount, block): + self._refill() + if amount <= self._current_capacity: + self._current_capacity -= amount + return True + else: + if not block: + raise CapacityNotAvailableError() + # Not enough capacity. + sleep_amount = self._sleep_amount(amount) + while sleep_amount > 0: + # Until python3.2, wait() always returned None so we can't + # tell if a timeout occurred waiting on the cond var. + # Because of this we'll unconditionally call _refill(). + # The downside to this is that we were waken up via + # a notify(), we're calling unnecessarily calling _refill() an + # extra time. + self._new_fill_rate_condition.wait(sleep_amount) + self._refill() + sleep_amount = self._sleep_amount(amount) + self._current_capacity -= amount + return True + + def _sleep_amount(self, amount): + return (amount - self._current_capacity) / self._fill_rate + + def _refill(self): + timestamp = self._clock.current_time() + if self._last_timestamp is None: + self._last_timestamp = timestamp + return + current_capacity = self._current_capacity + fill_amount = (timestamp - self._last_timestamp) * self._fill_rate + new_capacity = min(self._max_capacity, current_capacity + fill_amount) + self._current_capacity = new_capacity + self._last_timestamp = timestamp diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/retries/quota.py b/rep_localstack/lib/python3.12/site-packages/botocore/retries/quota.py new file mode 100644 index 000000000..f03942912 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/retries/quota.py @@ -0,0 +1,54 @@ +"""Retry quota implementation.""" + +import threading + + +class RetryQuota: + INITIAL_CAPACITY = 500 + + def __init__(self, initial_capacity=INITIAL_CAPACITY, lock=None): + self._max_capacity = initial_capacity + self._available_capacity = initial_capacity + if lock is None: + lock = threading.Lock() + self._lock = lock + + def acquire(self, capacity_amount): + """Attempt to aquire a certain amount of capacity. + + If there's not sufficient amount of capacity available, ``False`` + is returned. Otherwise, ``True`` is returned, which indicates that + capacity was successfully allocated. + + """ + # The acquire() is only called when we encounter a retryable + # response so we aren't worried about locking the entire method. + with self._lock: + if capacity_amount > self._available_capacity: + return False + self._available_capacity -= capacity_amount + return True + + def release(self, capacity_amount): + """Release capacity back to the retry quota. + + The capacity being released will be truncated if necessary + to ensure the max capacity is never exceeded. + + """ + # Implementation note: The release() method is called as part + # of the "after-call" event, which means it gets invoked for + # every API call. In the common case where the request is + # successful and we're at full capacity, we can avoid locking. + # We can't exceed max capacity so there's no work we have to do. + if self._max_capacity == self._available_capacity: + return + with self._lock: + amount = min( + self._max_capacity - self._available_capacity, capacity_amount + ) + self._available_capacity += amount + + @property + def available_capacity(self): + return self._available_capacity diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/retries/special.py b/rep_localstack/lib/python3.12/site-packages/botocore/retries/special.py new file mode 100644 index 000000000..9b782601d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/retries/special.py @@ -0,0 +1,51 @@ +"""Special cased retries. + +These are additional retry cases we still have to handle from the legacy +retry handler. They don't make sense as part of the standard mode retry +module. Ideally we should be able to remove this module. + +""" + +import logging +from binascii import crc32 + +from botocore.retries.base import BaseRetryableChecker + +logger = logging.getLogger(__name__) + + +# TODO: This is an ideal candidate for the retryable trait once that's +# available. +class RetryIDPCommunicationError(BaseRetryableChecker): + _SERVICE_NAME = 'sts' + + def is_retryable(self, context): + service_name = context.operation_model.service_model.service_name + if service_name != self._SERVICE_NAME: + return False + error_code = context.get_error_code() + return error_code == 'IDPCommunicationError' + + +class RetryDDBChecksumError(BaseRetryableChecker): + _CHECKSUM_HEADER = 'x-amz-crc32' + _SERVICE_NAME = 'dynamodb' + + def is_retryable(self, context): + service_name = context.operation_model.service_model.service_name + if service_name != self._SERVICE_NAME: + return False + if context.http_response is None: + return False + checksum = context.http_response.headers.get(self._CHECKSUM_HEADER) + if checksum is None: + return False + actual_crc32 = crc32(context.http_response.content) & 0xFFFFFFFF + if actual_crc32 != int(checksum): + logger.debug( + "DynamoDB crc32 checksum does not match, " + "expected: %s, actual: %s", + checksum, + actual_crc32, + ) + return True diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/retries/standard.py b/rep_localstack/lib/python3.12/site-packages/botocore/retries/standard.py new file mode 100644 index 000000000..8801530b0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/retries/standard.py @@ -0,0 +1,532 @@ +"""Standard retry behavior. + +This contains the default standard retry behavior. +It provides consistent behavior with other AWS SDKs. + +The key base classes uses for retries: + + * ``BaseRetryableChecker`` - Use to check a specific condition that + indicates a retry should happen. This can include things like + max attempts, HTTP status code checks, error code checks etc. + * ``RetryBackoff`` - Use to determine how long we should backoff until + we retry a request. This is the class that will implement delay such + as exponential backoff. + * ``RetryPolicy`` - Main class that determines if a retry should + happen. It can combine data from a various BaseRetryableCheckers + to make a final call as to whether or not a retry should happen. + It then uses a ``BaseRetryBackoff`` to determine how long to delay. + * ``RetryHandler`` - The bridge between botocore's event system + used by endpoint.py to manage retries and the interfaces defined + in this module. + +This allows us to define an API that has minimal coupling to the event +based API used by botocore. + +""" + +import logging +import random + +from botocore.exceptions import ( + ConnectionError, + ConnectTimeoutError, + HTTPClientError, + ReadTimeoutError, +) +from botocore.retries import quota, special +from botocore.retries.base import BaseRetryableChecker, BaseRetryBackoff + +DEFAULT_MAX_ATTEMPTS = 3 +logger = logging.getLogger(__name__) + + +def register_retry_handler(client, max_attempts=DEFAULT_MAX_ATTEMPTS): + retry_quota = RetryQuotaChecker(quota.RetryQuota()) + + service_id = client.meta.service_model.service_id + service_event_name = service_id.hyphenize() + client.meta.events.register( + f'after-call.{service_event_name}', retry_quota.release_retry_quota + ) + + handler = RetryHandler( + retry_policy=RetryPolicy( + retry_checker=StandardRetryConditions(max_attempts=max_attempts), + retry_backoff=ExponentialBackoff(), + ), + retry_event_adapter=RetryEventAdapter(), + retry_quota=retry_quota, + ) + + unique_id = f'retry-config-{service_event_name}' + client.meta.events.register( + f'needs-retry.{service_event_name}', + handler.needs_retry, + unique_id=unique_id, + ) + return handler + + +class RetryHandler: + """Bridge between botocore's event system and this module. + + This class is intended to be hooked to botocore's event system + as an event handler. + """ + + def __init__(self, retry_policy, retry_event_adapter, retry_quota): + self._retry_policy = retry_policy + self._retry_event_adapter = retry_event_adapter + self._retry_quota = retry_quota + + def needs_retry(self, **kwargs): + """Connect as a handler to the needs-retry event.""" + retry_delay = None + context = self._retry_event_adapter.create_retry_context(**kwargs) + if self._retry_policy.should_retry(context): + # Before we can retry we need to ensure we have sufficient + # capacity in our retry quota. + if self._retry_quota.acquire_retry_quota(context): + retry_delay = self._retry_policy.compute_retry_delay(context) + logger.debug( + "Retry needed, retrying request after delay of: %s", + retry_delay, + ) + else: + logger.debug( + "Retry needed but retry quota reached, " + "not retrying request." + ) + else: + logger.debug("Not retrying request.") + self._retry_event_adapter.adapt_retry_response_from_context(context) + return retry_delay + + +class RetryEventAdapter: + """Adapter to existing retry interface used in the endpoints layer. + + This existing interface for determining if a retry needs to happen + is event based and used in ``botocore.endpoint``. The interface has + grown organically over the years and could use some cleanup. This + adapter converts that interface into the interface used by the + new retry strategies. + + """ + + def create_retry_context(self, **kwargs): + """Create context based on needs-retry kwargs.""" + response = kwargs['response'] + if response is None: + # If response is None it means that an exception was raised + # because we never received a response from the service. This + # could be something like a ConnectionError we get from our + # http layer. + http_response = None + parsed_response = None + else: + http_response, parsed_response = response + # This provides isolation between the kwargs emitted in the + # needs-retry event, and what this module uses to check for + # retries. + context = RetryContext( + attempt_number=kwargs['attempts'], + operation_model=kwargs['operation'], + http_response=http_response, + parsed_response=parsed_response, + caught_exception=kwargs['caught_exception'], + request_context=kwargs['request_dict']['context'], + ) + return context + + def adapt_retry_response_from_context(self, context): + """Modify response back to user back from context.""" + # This will mutate attributes that are returned back to the end + # user. We do it this way so that all the various retry classes + # don't mutate any input parameters from the needs-retry event. + metadata = context.get_retry_metadata() + if context.parsed_response is not None: + context.parsed_response.setdefault('ResponseMetadata', {}).update( + metadata + ) + + +# Implementation note: this is meant to encapsulate all the misc stuff +# that gets sent in the needs-retry event. This is mapped so that params +# are more clear and explicit. +class RetryContext: + """Normalize a response that we use to check if a retry should occur. + + This class smoothes over the different types of responses we may get + from a service including: + + * A modeled error response from the service that contains a service + code and error message. + * A raw HTTP response that doesn't contain service protocol specific + error keys. + * An exception received while attempting to retrieve a response. + This could be a ConnectionError we receive from our HTTP layer which + could represent that we weren't able to receive a response from + the service. + + This class guarantees that at least one of the above attributes will be + non None. + + This class is meant to provide a read-only view into the properties + associated with a possible retryable response. None of the properties + are meant to be modified directly. + + """ + + def __init__( + self, + attempt_number, + operation_model=None, + parsed_response=None, + http_response=None, + caught_exception=None, + request_context=None, + ): + # 1-based attempt number. + self.attempt_number = attempt_number + self.operation_model = operation_model + # This is the parsed response dictionary we get from parsing + # the HTTP response from the service. + self.parsed_response = parsed_response + # This is an instance of botocore.awsrequest.AWSResponse. + self.http_response = http_response + # This is a subclass of Exception that will be non None if + # an exception was raised when retrying to retrieve a response. + self.caught_exception = caught_exception + # This is the request context dictionary that's added to the + # request dict. This is used to story any additional state + # about the request. We use this for storing retry quota + # capacity. + if request_context is None: + request_context = {} + self.request_context = request_context + self._retry_metadata = {} + + # These are misc helper methods to avoid duplication in the various + # checkers. + def get_error_code(self): + """Check if there was a parsed response with an error code. + + If we could not find any error codes, ``None`` is returned. + + """ + if self.parsed_response is None: + return + error = self.parsed_response.get('Error', {}) + if not isinstance(error, dict): + return + return error.get('Code') + + def add_retry_metadata(self, **kwargs): + """Add key/value pairs to the retry metadata. + + This allows any objects during the retry process to add + metadata about any checks/validations that happened. + + This gets added to the response metadata in the retry handler. + + """ + self._retry_metadata.update(**kwargs) + + def get_retry_metadata(self): + return self._retry_metadata.copy() + + +class RetryPolicy: + def __init__(self, retry_checker, retry_backoff): + self._retry_checker = retry_checker + self._retry_backoff = retry_backoff + + def should_retry(self, context): + return self._retry_checker.is_retryable(context) + + def compute_retry_delay(self, context): + return self._retry_backoff.delay_amount(context) + + +class ExponentialBackoff(BaseRetryBackoff): + _BASE = 2 + _MAX_BACKOFF = 20 + + def __init__(self, max_backoff=20, random=random.random): + self._base = self._BASE + self._max_backoff = max_backoff + self._random = random + + def delay_amount(self, context): + """Calculates delay based on exponential backoff. + + This class implements truncated binary exponential backoff + with jitter:: + + t_i = rand(0, 1) * min(2 ** attempt, MAX_BACKOFF) + + where ``i`` is the request attempt (0 based). + + """ + # The context.attempt_number is a 1-based value, but we have + # to calculate the delay based on i based a 0-based value. We + # want the first delay to just be ``rand(0, 1)``. + return self._random() * min( + (self._base ** (context.attempt_number - 1)), + self._max_backoff, + ) + + +class MaxAttemptsChecker(BaseRetryableChecker): + def __init__(self, max_attempts): + self._max_attempts = max_attempts + + def is_retryable(self, context): + under_max_attempts = context.attempt_number < self._max_attempts + retries_context = context.request_context.get('retries') + if retries_context: + retries_context['max'] = max( + retries_context.get('max', 0), self._max_attempts + ) + if not under_max_attempts: + logger.debug("Max attempts of %s reached.", self._max_attempts) + context.add_retry_metadata(MaxAttemptsReached=True) + return under_max_attempts + + +class TransientRetryableChecker(BaseRetryableChecker): + _TRANSIENT_ERROR_CODES = [ + 'RequestTimeout', + 'RequestTimeoutException', + 'PriorRequestNotComplete', + ] + _TRANSIENT_STATUS_CODES = [500, 502, 503, 504] + _TRANSIENT_EXCEPTION_CLS = ( + ConnectionError, + HTTPClientError, + ) + + def __init__( + self, + transient_error_codes=None, + transient_status_codes=None, + transient_exception_cls=None, + ): + if transient_error_codes is None: + transient_error_codes = self._TRANSIENT_ERROR_CODES[:] + if transient_status_codes is None: + transient_status_codes = self._TRANSIENT_STATUS_CODES[:] + if transient_exception_cls is None: + transient_exception_cls = self._TRANSIENT_EXCEPTION_CLS + self._transient_error_codes = transient_error_codes + self._transient_status_codes = transient_status_codes + self._transient_exception_cls = transient_exception_cls + + def is_retryable(self, context): + if context.get_error_code() in self._transient_error_codes: + return True + if context.http_response is not None: + if ( + context.http_response.status_code + in self._transient_status_codes + ): + return True + if context.caught_exception is not None: + return isinstance( + context.caught_exception, self._transient_exception_cls + ) + return False + + +class ThrottledRetryableChecker(BaseRetryableChecker): + # This is the union of all error codes we've seen that represent + # a throttled error. + _THROTTLED_ERROR_CODES = [ + 'Throttling', + 'ThrottlingException', + 'ThrottledException', + 'RequestThrottledException', + 'TooManyRequestsException', + 'ProvisionedThroughputExceededException', + 'TransactionInProgressException', + 'RequestLimitExceeded', + 'BandwidthLimitExceeded', + 'LimitExceededException', + 'RequestThrottled', + 'SlowDown', + 'PriorRequestNotComplete', + 'EC2ThrottledException', + ] + + def __init__(self, throttled_error_codes=None): + if throttled_error_codes is None: + throttled_error_codes = self._THROTTLED_ERROR_CODES[:] + self._throttled_error_codes = throttled_error_codes + + def is_retryable(self, context): + # Only the error code from a parsed service response is used + # to determine if the response is a throttled response. + return context.get_error_code() in self._throttled_error_codes + + +class ModeledRetryableChecker(BaseRetryableChecker): + """Check if an error has been modeled as retryable.""" + + def __init__(self): + self._error_detector = ModeledRetryErrorDetector() + + def is_retryable(self, context): + error_code = context.get_error_code() + if error_code is None: + return False + return self._error_detector.detect_error_type(context) is not None + + +class ModeledRetryErrorDetector: + """Checks whether or not an error is a modeled retryable error.""" + + # There are return values from the detect_error_type() method. + TRANSIENT_ERROR = 'TRANSIENT_ERROR' + THROTTLING_ERROR = 'THROTTLING_ERROR' + # This class is lower level than ModeledRetryableChecker, which + # implements BaseRetryableChecker. This object allows you to distinguish + # between the various types of retryable errors. + + def detect_error_type(self, context): + """Detect the error type associated with an error code and model. + + This will either return: + + * ``self.TRANSIENT_ERROR`` - If the error is a transient error + * ``self.THROTTLING_ERROR`` - If the error is a throttling error + * ``None`` - If the error is neither type of error. + + """ + error_code = context.get_error_code() + op_model = context.operation_model + if op_model is None or not op_model.error_shapes: + return + for shape in op_model.error_shapes: + if shape.metadata.get('retryable') is not None: + # Check if this error code matches the shape. This can + # be either by name or by a modeled error code. + error_code_to_check = ( + shape.metadata.get('error', {}).get('code') or shape.name + ) + if error_code == error_code_to_check: + if shape.metadata['retryable'].get('throttling'): + return self.THROTTLING_ERROR + return self.TRANSIENT_ERROR + + +class ThrottlingErrorDetector: + def __init__(self, retry_event_adapter): + self._modeled_error_detector = ModeledRetryErrorDetector() + self._fixed_error_code_detector = ThrottledRetryableChecker() + self._retry_event_adapter = retry_event_adapter + + # This expects the kwargs from needs-retry to be passed through. + def is_throttling_error(self, **kwargs): + context = self._retry_event_adapter.create_retry_context(**kwargs) + if self._fixed_error_code_detector.is_retryable(context): + return True + error_type = self._modeled_error_detector.detect_error_type(context) + return error_type == self._modeled_error_detector.THROTTLING_ERROR + + +class StandardRetryConditions(BaseRetryableChecker): + """Concrete class that implements the standard retry policy checks. + + Specifically: + + not max_attempts and (transient or throttled or modeled_retry) + + """ + + def __init__(self, max_attempts=DEFAULT_MAX_ATTEMPTS): + # Note: This class is for convenience so you can have the + # standard retry condition in a single class. + self._max_attempts_checker = MaxAttemptsChecker(max_attempts) + self._additional_checkers = OrRetryChecker( + [ + TransientRetryableChecker(), + ThrottledRetryableChecker(), + ModeledRetryableChecker(), + OrRetryChecker( + [ + special.RetryIDPCommunicationError(), + special.RetryDDBChecksumError(), + ] + ), + ] + ) + + def is_retryable(self, context): + return self._max_attempts_checker.is_retryable( + context + ) and self._additional_checkers.is_retryable(context) + + +class OrRetryChecker(BaseRetryableChecker): + def __init__(self, checkers): + self._checkers = checkers + + def is_retryable(self, context): + return any(checker.is_retryable(context) for checker in self._checkers) + + +class RetryQuotaChecker: + _RETRY_COST = 5 + _NO_RETRY_INCREMENT = 1 + _TIMEOUT_RETRY_REQUEST = 10 + _TIMEOUT_EXCEPTIONS = (ConnectTimeoutError, ReadTimeoutError) + + # Implementation note: We're not making this a BaseRetryableChecker + # because this isn't just a check if we can retry. This also changes + # state so we have to careful when/how we call this. Making it + # a BaseRetryableChecker implies you can call .is_retryable(context) + # as many times as you want and not affect anything. + + def __init__(self, quota): + self._quota = quota + # This tracks the last amount + self._last_amount_acquired = None + + def acquire_retry_quota(self, context): + if self._is_timeout_error(context): + capacity_amount = self._TIMEOUT_RETRY_REQUEST + else: + capacity_amount = self._RETRY_COST + success = self._quota.acquire(capacity_amount) + if success: + # We add the capacity amount to the request context so we know + # how much to release later. The capacity amount can vary based + # on the error. + context.request_context['retry_quota_capacity'] = capacity_amount + return True + context.add_retry_metadata(RetryQuotaReached=True) + return False + + def _is_timeout_error(self, context): + return isinstance(context.caught_exception, self._TIMEOUT_EXCEPTIONS) + + # This is intended to be hooked up to ``after-call``. + def release_retry_quota(self, context, http_response, **kwargs): + # There's three possible options. + # 1. The HTTP response did not have a 2xx response. In that case we + # give no quota back. + # 2. The HTTP request was successful and was never retried. In + # that case we give _NO_RETRY_INCREMENT back. + # 3. The API call had retries, and we eventually receive an HTTP + # response with a 2xx status code. In that case we give back + # whatever quota was associated with the last acquisition. + if http_response is None: + return + status_code = http_response.status_code + if 200 <= status_code < 300: + if 'retry_quota_capacity' not in context: + self._quota.release(self._NO_RETRY_INCREMENT) + else: + capacity_amount = context['retry_quota_capacity'] + self._quota.release(capacity_amount) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/retries/throttling.py b/rep_localstack/lib/python3.12/site-packages/botocore/retries/throttling.py new file mode 100644 index 000000000..34ab41729 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/retries/throttling.py @@ -0,0 +1,55 @@ +from collections import namedtuple + +CubicParams = namedtuple('CubicParams', ['w_max', 'k', 'last_fail']) + + +class CubicCalculator: + _SCALE_CONSTANT = 0.4 + _BETA = 0.7 + + def __init__( + self, + starting_max_rate, + start_time, + scale_constant=_SCALE_CONSTANT, + beta=_BETA, + ): + self._w_max = starting_max_rate + self._scale_constant = scale_constant + self._beta = beta + self._k = self._calculate_zero_point() + self._last_fail = start_time + + def _calculate_zero_point(self): + scaled_value = (self._w_max * (1 - self._beta)) / self._scale_constant + k = scaled_value ** (1 / 3.0) + return k + + def success_received(self, timestamp): + dt = timestamp - self._last_fail + new_rate = self._scale_constant * (dt - self._k) ** 3 + self._w_max + return new_rate + + def error_received(self, current_rate, timestamp): + # Consider not having this be the current measured rate. + + # We have a new max rate, which is the current rate we were sending + # at when we received an error response. + self._w_max = current_rate + self._k = self._calculate_zero_point() + self._last_fail = timestamp + return current_rate * self._beta + + def get_params_snapshot(self): + """Return a read-only object of the current cubic parameters. + + These parameters are intended to be used for debug/troubleshooting + purposes. These object is a read-only snapshot and cannot be used + to modify the behavior of the CUBIC calculations. + + New parameters may be added to this object in the future. + + """ + return CubicParams( + w_max=self._w_max, k=self._k, last_fail=self._last_fail + ) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/retryhandler.py b/rep_localstack/lib/python3.12/site-packages/botocore/retryhandler.py new file mode 100644 index 000000000..c2eed1d9d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/retryhandler.py @@ -0,0 +1,416 @@ +# Copyright (c) 2012-2013 Mitch Garnaat http://garnaat.org/ +# Copyright 2012-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import functools +import logging +import random +from binascii import crc32 + +from botocore.exceptions import ( + ChecksumError, + ConnectionClosedError, + ConnectionError, + EndpointConnectionError, + ReadTimeoutError, +) + +logger = logging.getLogger(__name__) +# The only supported error for now is GENERAL_CONNECTION_ERROR +# which maps to requests generic ConnectionError. If we're able +# to get more specific exceptions from requests we can update +# this mapping with more specific exceptions. +EXCEPTION_MAP = { + 'GENERAL_CONNECTION_ERROR': [ + ConnectionError, + ConnectionClosedError, + ReadTimeoutError, + EndpointConnectionError, + ], +} + + +def delay_exponential(base, growth_factor, attempts): + """Calculate time to sleep based on exponential function. + + The format is:: + + base * growth_factor ^ (attempts - 1) + + If ``base`` is set to 'rand' then a random number between + 0 and 1 will be used as the base. + Base must be greater than 0, otherwise a ValueError will be + raised. + + """ + if base == 'rand': + base = random.random() + elif base <= 0: + raise ValueError( + f"The 'base' param must be greater than 0, got: {base}" + ) + time_to_sleep = base * (growth_factor ** (attempts - 1)) + return time_to_sleep + + +def create_exponential_delay_function(base, growth_factor): + """Create an exponential delay function based on the attempts. + + This is used so that you only have to pass it the attempts + parameter to calculate the delay. + + """ + return functools.partial( + delay_exponential, base=base, growth_factor=growth_factor + ) + + +def create_retry_handler(config, operation_name=None): + checker = create_checker_from_retry_config( + config, operation_name=operation_name + ) + action = create_retry_action_from_config( + config, operation_name=operation_name + ) + return RetryHandler(checker=checker, action=action) + + +def create_retry_action_from_config(config, operation_name=None): + # The spec has the possibility of supporting per policy + # actions, but right now, we assume this comes from the + # default section, which means that delay functions apply + # for every policy in the retry config (per service). + delay_config = config['__default__']['delay'] + if delay_config['type'] == 'exponential': + return create_exponential_delay_function( + base=delay_config['base'], + growth_factor=delay_config['growth_factor'], + ) + + +def create_checker_from_retry_config(config, operation_name=None): + checkers = [] + max_attempts = None + retryable_exceptions = [] + if '__default__' in config: + policies = config['__default__'].get('policies', []) + max_attempts = config['__default__']['max_attempts'] + for key in policies: + current_config = policies[key] + checkers.append(_create_single_checker(current_config)) + retry_exception = _extract_retryable_exception(current_config) + if retry_exception is not None: + retryable_exceptions.extend(retry_exception) + if operation_name is not None and config.get(operation_name) is not None: + operation_policies = config[operation_name]['policies'] + for key in operation_policies: + checkers.append(_create_single_checker(operation_policies[key])) + retry_exception = _extract_retryable_exception( + operation_policies[key] + ) + if retry_exception is not None: + retryable_exceptions.extend(retry_exception) + if len(checkers) == 1: + # Don't need to use a MultiChecker + return MaxAttemptsDecorator(checkers[0], max_attempts=max_attempts) + else: + multi_checker = MultiChecker(checkers) + return MaxAttemptsDecorator( + multi_checker, + max_attempts=max_attempts, + retryable_exceptions=tuple(retryable_exceptions), + ) + + +def _create_single_checker(config): + if 'response' in config['applies_when']: + return _create_single_response_checker( + config['applies_when']['response'] + ) + elif 'socket_errors' in config['applies_when']: + return ExceptionRaiser() + + +def _create_single_response_checker(response): + if 'service_error_code' in response: + checker = ServiceErrorCodeChecker( + status_code=response['http_status_code'], + error_code=response['service_error_code'], + ) + elif 'http_status_code' in response: + checker = HTTPStatusCodeChecker( + status_code=response['http_status_code'] + ) + elif 'crc32body' in response: + checker = CRC32Checker(header=response['crc32body']) + else: + # TODO: send a signal. + raise ValueError("Unknown retry policy") + return checker + + +def _extract_retryable_exception(config): + applies_when = config['applies_when'] + if 'crc32body' in applies_when.get('response', {}): + return [ChecksumError] + elif 'socket_errors' in applies_when: + exceptions = [] + for name in applies_when['socket_errors']: + exceptions.extend(EXCEPTION_MAP[name]) + return exceptions + + +class RetryHandler: + """Retry handler. + + The retry handler takes two params, ``checker`` object + and an ``action`` object. + + The ``checker`` object must be a callable object and based on a response + and an attempt number, determines whether or not sufficient criteria for + a retry has been met. If this is the case then the ``action`` object + (which also is a callable) determines what needs to happen in the event + of a retry. + + """ + + def __init__(self, checker, action): + self._checker = checker + self._action = action + + def __call__(self, attempts, response, caught_exception, **kwargs): + """Handler for a retry. + + Intended to be hooked up to an event handler (hence the **kwargs), + this will process retries appropriately. + + """ + checker_kwargs = { + 'attempt_number': attempts, + 'response': response, + 'caught_exception': caught_exception, + } + if isinstance(self._checker, MaxAttemptsDecorator): + retries_context = kwargs['request_dict']['context'].get('retries') + checker_kwargs.update({'retries_context': retries_context}) + + if self._checker(**checker_kwargs): + result = self._action(attempts=attempts) + logger.debug("Retry needed, action of: %s", result) + return result + logger.debug("No retry needed.") + + +class BaseChecker: + """Base class for retry checkers. + + Each class is responsible for checking a single criteria that determines + whether or not a retry should not happen. + + """ + + def __call__(self, attempt_number, response, caught_exception): + """Determine if retry criteria matches. + + Note that either ``response`` is not None and ``caught_exception`` is + None or ``response`` is None and ``caught_exception`` is not None. + + :type attempt_number: int + :param attempt_number: The total number of times we've attempted + to send the request. + + :param response: The HTTP response (if one was received). + + :type caught_exception: Exception + :param caught_exception: Any exception that was caught while trying to + send the HTTP response. + + :return: True, if the retry criteria matches (and therefore a retry + should occur. False if the criteria does not match. + + """ + # The default implementation allows subclasses to not have to check + # whether or not response is None or not. + if response is not None: + return self._check_response(attempt_number, response) + elif caught_exception is not None: + return self._check_caught_exception( + attempt_number, caught_exception + ) + else: + raise ValueError("Both response and caught_exception are None.") + + def _check_response(self, attempt_number, response): + pass + + def _check_caught_exception(self, attempt_number, caught_exception): + pass + + +class MaxAttemptsDecorator(BaseChecker): + """Allow retries up to a maximum number of attempts. + + This will pass through calls to the decorated retry checker, provided + that the number of attempts does not exceed max_attempts. It will + also catch any retryable_exceptions passed in. Once max_attempts has + been exceeded, then False will be returned or the retryable_exceptions + that was previously being caught will be raised. + + """ + + def __init__(self, checker, max_attempts, retryable_exceptions=None): + self._checker = checker + self._max_attempts = max_attempts + self._retryable_exceptions = retryable_exceptions + + def __call__( + self, attempt_number, response, caught_exception, retries_context + ): + if retries_context: + retries_context['max'] = max( + retries_context.get('max', 0), self._max_attempts + ) + + should_retry = self._should_retry( + attempt_number, response, caught_exception + ) + if should_retry: + if attempt_number >= self._max_attempts: + # explicitly set MaxAttemptsReached + if response is not None and 'ResponseMetadata' in response[1]: + response[1]['ResponseMetadata']['MaxAttemptsReached'] = ( + True + ) + logger.debug( + "Reached the maximum number of retry attempts: %s", + attempt_number, + ) + return False + else: + return should_retry + else: + return False + + def _should_retry(self, attempt_number, response, caught_exception): + if self._retryable_exceptions and attempt_number < self._max_attempts: + try: + return self._checker( + attempt_number, response, caught_exception + ) + except self._retryable_exceptions as e: + logger.debug( + "retry needed, retryable exception caught: %s", + e, + exc_info=True, + ) + return True + else: + # If we've exceeded the max attempts we just let the exception + # propagate if one has occurred. + return self._checker(attempt_number, response, caught_exception) + + +class HTTPStatusCodeChecker(BaseChecker): + def __init__(self, status_code): + self._status_code = status_code + + def _check_response(self, attempt_number, response): + if response[0].status_code == self._status_code: + logger.debug( + "retry needed: retryable HTTP status code received: %s", + self._status_code, + ) + return True + else: + return False + + +class ServiceErrorCodeChecker(BaseChecker): + def __init__(self, status_code, error_code): + self._status_code = status_code + self._error_code = error_code + + def _check_response(self, attempt_number, response): + if response[0].status_code == self._status_code: + actual_error_code = response[1].get('Error', {}).get('Code') + if actual_error_code == self._error_code: + logger.debug( + "retry needed: matching HTTP status and error code seen: " + "%s, %s", + self._status_code, + self._error_code, + ) + return True + return False + + +class MultiChecker(BaseChecker): + def __init__(self, checkers): + self._checkers = checkers + + def __call__(self, attempt_number, response, caught_exception): + for checker in self._checkers: + checker_response = checker( + attempt_number, response, caught_exception + ) + if checker_response: + return checker_response + return False + + +class CRC32Checker(BaseChecker): + def __init__(self, header): + # The header where the expected crc32 is located. + self._header_name = header + + def _check_response(self, attempt_number, response): + http_response = response[0] + expected_crc = http_response.headers.get(self._header_name) + if expected_crc is None: + logger.debug( + "crc32 check skipped, the %s header is not " + "in the http response.", + self._header_name, + ) + else: + actual_crc32 = crc32(response[0].content) & 0xFFFFFFFF + if not actual_crc32 == int(expected_crc): + logger.debug( + "retry needed: crc32 check failed, expected != actual: " + "%s != %s", + int(expected_crc), + actual_crc32, + ) + raise ChecksumError( + checksum_type='crc32', + expected_checksum=int(expected_crc), + actual_checksum=actual_crc32, + ) + + +class ExceptionRaiser(BaseChecker): + """Raise any caught exceptions. + + This class will raise any non None ``caught_exception``. + + """ + + def _check_caught_exception(self, attempt_number, caught_exception): + # This is implementation specific, but this class is useful by + # coordinating with the MaxAttemptsDecorator. + # The MaxAttemptsDecorator has a list of exceptions it should catch + # and retry, but something needs to come along and actually raise the + # caught_exception. That's what this class is being used for. If + # the MaxAttemptsDecorator is not interested in retrying the exception + # then this exception just propagates out past the retry code. + raise caught_exception diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/serialize.py b/rep_localstack/lib/python3.12/site-packages/botocore/serialize.py new file mode 100644 index 000000000..9f8d7601c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/serialize.py @@ -0,0 +1,1277 @@ +# Copyright 2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +"""Protocol input serializes. + +This module contains classes that implement input serialization +for the various AWS protocol types. + +These classes essentially take user input, a model object that +represents what the expected input should look like, and it returns +a dictionary that contains the various parts of a request. A few +high level design decisions: + + +* Each protocol type maps to a separate class, all inherit from + ``Serializer``. +* The return value for ``serialize_to_request`` (the main entry + point) returns a dictionary that represents a request. This + will have keys like ``url_path``, ``query_string``, etc. This + is done so that it's a) easy to test and b) not tied to a + particular HTTP library. See the ``serialize_to_request`` docstring + for more details. + +Unicode +------- + +The input to the serializers should be text (str/unicode), not bytes, +with the exception of blob types. Those are assumed to be binary, +and if a str/unicode type is passed in, it will be encoded as utf-8. +""" + +import base64 +import calendar +import datetime +import decimal +import json +import math +import re +import struct +from xml.etree import ElementTree + +from botocore import validate +from botocore.compat import formatdate +from botocore.exceptions import ParamValidationError +from botocore.useragent import register_feature_id +from botocore.utils import ( + has_header, + is_json_value_header, + parse_to_aware_datetime, + percent_encode, +) + +# From the spec, the default timestamp format if not specified is iso8601. +DEFAULT_TIMESTAMP_FORMAT = 'iso8601' +ISO8601 = '%Y-%m-%dT%H:%M:%SZ' +# Same as ISO8601, but with microsecond precision. +ISO8601_MICRO = '%Y-%m-%dT%H:%M:%S.%fZ' +HOST_PREFIX_RE = re.compile(r"^[A-Za-z0-9\.\-]+$") + +TIMESTAMP_PRECISION_DEFAULT = 'default' +TIMESTAMP_PRECISION_MILLISECOND = 'millisecond' +TIMESTAMP_PRECISION_OPTIONS = ( + TIMESTAMP_PRECISION_DEFAULT, + TIMESTAMP_PRECISION_MILLISECOND, +) + + +def create_serializer( + protocol_name, + include_validation=True, + timestamp_precision=TIMESTAMP_PRECISION_DEFAULT, +): + """Create a serializer for the given protocol. + :param protocol_name: The protocol name to create a serializer for. + :type protocol_name: str + :param include_validation: Whether to include parameter validation. + :type include_validation: bool + :param timestamp_precision: Timestamp precision level. + - 'default': Microseconds for ISO timestamps, seconds for Unix and RFC + - 'millisecond': Millisecond precision (ISO/Unix), seconds for RFC + :type timestamp_precision: str + :return: A serializer instance for the given protocol. + """ + # TODO: Unknown protocols. + serializer = SERIALIZERS[protocol_name]( + timestamp_precision=timestamp_precision + ) + if include_validation: + validator = validate.ParamValidator() + serializer = validate.ParamValidationDecorator(validator, serializer) + return serializer + + +class Serializer: + DEFAULT_METHOD = 'POST' + # Clients can change this to a different MutableMapping + # (i.e OrderedDict) if they want. This is used in the + # compliance test to match the hash ordering used in the + # tests. + MAP_TYPE = dict + DEFAULT_ENCODING = 'utf-8' + + def __init__(self, timestamp_precision=TIMESTAMP_PRECISION_DEFAULT): + if timestamp_precision not in TIMESTAMP_PRECISION_OPTIONS: + raise ValueError( + f"Invalid timestamp precision found while creating serializer: {timestamp_precision}" + ) + self._timestamp_precision = timestamp_precision + + def serialize_to_request(self, parameters, operation_model): + """Serialize parameters into an HTTP request. + + This method takes user provided parameters and a shape + model and serializes the parameters to an HTTP request. + More specifically, this method returns information about + parts of the HTTP request, it does not enforce a particular + interface or standard for an HTTP request. It instead returns + a dictionary of: + + * 'url_path' + * 'host_prefix' + * 'query_string' + * 'headers' + * 'body' + * 'method' + + It is then up to consumers to decide how to map this to a Request + object of their HTTP library of choice. Below is an example + return value:: + + {'body': {'Action': 'OperationName', + 'Bar': 'val2', + 'Foo': 'val1', + 'Version': '2014-01-01'}, + 'headers': {}, + 'method': 'POST', + 'query_string': '', + 'host_prefix': 'value.', + 'url_path': '/'} + + :param parameters: The dictionary input parameters for the + operation (i.e the user input). + :param operation_model: The OperationModel object that describes + the operation. + """ + raise NotImplementedError("serialize_to_request") + + def _create_default_request(self): + # Creates a boilerplate default request dict that subclasses + # can use as a starting point. + serialized = { + 'url_path': '/', + 'query_string': '', + 'method': self.DEFAULT_METHOD, + 'headers': {}, + # An empty body is represented as an empty byte string. + 'body': b'', + } + return serialized + + # Some extra utility methods subclasses can use. + + def _timestamp_iso8601(self, value): + """Return ISO8601 timestamp with precision based on timestamp_precision.""" + # Smithy's standard is milliseconds, so we truncate the timestamp if the millisecond flag is set to true + if self._timestamp_precision == TIMESTAMP_PRECISION_MILLISECOND: + milliseconds = value.microsecond // 1000 + return ( + value.strftime('%Y-%m-%dT%H:%M:%S') + f'.{milliseconds:03d}Z' + ) + else: + # Otherwise we continue supporting microseconds in iso8601 for legacy reasons + if value.microsecond > 0: + timestamp_format = ISO8601_MICRO + else: + timestamp_format = ISO8601 + return value.strftime(timestamp_format) + + def _timestamp_unixtimestamp(self, value): + """Return unix timestamp with precision based on timestamp_precision.""" + # As of the addition of the precision flag, we support millisecond precision here as well + if self._timestamp_precision == TIMESTAMP_PRECISION_MILLISECOND: + base_timestamp = calendar.timegm(value.timetuple()) + milliseconds = (value.microsecond // 1000) / 1000.0 + return base_timestamp + milliseconds + else: + return int(calendar.timegm(value.timetuple())) + + def _timestamp_rfc822(self, value): + """Return RFC822 timestamp (always second precision - RFC doesn't support sub-second).""" + # RFC 2822 doesn't support sub-second precision, so always use second precision format + if isinstance(value, datetime.datetime): + value = int(calendar.timegm(value.timetuple())) + return formatdate(value, usegmt=True) + + def _convert_timestamp_to_str(self, value, timestamp_format=None): + if timestamp_format is None: + timestamp_format = self.TIMESTAMP_FORMAT + timestamp_format = timestamp_format.lower() + datetime_obj = parse_to_aware_datetime(value) + converter = getattr(self, f'_timestamp_{timestamp_format}') + final_value = converter(datetime_obj) + return final_value + + def _get_serialized_name(self, shape, default_name): + # Returns the serialized name for the shape if it exists. + # Otherwise it will return the passed in default_name. + return shape.serialization.get('name', default_name) + + def _get_base64(self, value): + # Returns the base64-encoded version of value, handling + # both strings and bytes. The returned value is a string + # via the default encoding. + if isinstance(value, str): + value = value.encode(self.DEFAULT_ENCODING) + return base64.b64encode(value).strip().decode(self.DEFAULT_ENCODING) + + def _expand_host_prefix(self, parameters, operation_model): + operation_endpoint = operation_model.endpoint + if ( + operation_endpoint is None + or 'hostPrefix' not in operation_endpoint + ): + return None + + host_prefix_expression = operation_endpoint['hostPrefix'] + if operation_model.input_shape is None: + return host_prefix_expression + input_members = operation_model.input_shape.members + host_labels = [ + member + for member, shape in input_members.items() + if shape.serialization.get('hostLabel') + ] + format_kwargs = {} + bad_labels = [] + for name in host_labels: + param = parameters[name] + if not HOST_PREFIX_RE.match(param): + bad_labels.append(name) + format_kwargs[name] = param + if bad_labels: + raise ParamValidationError( + report=( + f"Invalid value for parameter(s): {', '.join(bad_labels)}. " + "Must contain only alphanumeric characters, hyphen, " + "or period." + ) + ) + return host_prefix_expression.format(**format_kwargs) + + def _is_shape_flattened(self, shape): + return shape.serialization.get('flattened') + + def _handle_float(self, value): + if value == float("Infinity"): + value = "Infinity" + elif value == float("-Infinity"): + value = "-Infinity" + elif math.isnan(value): + value = "NaN" + return value + + def _handle_query_compatible_trait(self, operation_model, serialized): + if operation_model.service_model.is_query_compatible: + serialized['headers']['x-amzn-query-mode'] = 'true' + + +class QuerySerializer(Serializer): + TIMESTAMP_FORMAT = 'iso8601' + + def serialize_to_request(self, parameters, operation_model): + shape = operation_model.input_shape + serialized = self._create_default_request() + serialized['method'] = operation_model.http.get( + 'method', self.DEFAULT_METHOD + ) + serialized['headers'] = { + 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8' + } + # The query serializer only deals with body params so + # that's what we hand off the _serialize_* methods. + body_params = self.MAP_TYPE() + body_params['Action'] = operation_model.name + body_params['Version'] = operation_model.metadata['apiVersion'] + if shape is not None: + self._serialize(body_params, parameters, shape) + serialized['body'] = body_params + + host_prefix = self._expand_host_prefix(parameters, operation_model) + if host_prefix is not None: + serialized['host_prefix'] = host_prefix + + return serialized + + def _serialize(self, serialized, value, shape, prefix=''): + # serialized: The dict that is incrementally added to with the + # final serialized parameters. + # value: The current user input value. + # shape: The shape object that describes the structure of the + # input. + # prefix: The incrementally built up prefix for the serialized + # key (i.e Foo.bar.members.1). + method = getattr( + self, + f'_serialize_type_{shape.type_name}', + self._default_serialize, + ) + method(serialized, value, shape, prefix=prefix) + + def _serialize_type_structure(self, serialized, value, shape, prefix=''): + members = shape.members + for key, value in value.items(): + member_shape = members[key] + member_prefix = self._get_serialized_name(member_shape, key) + if prefix: + member_prefix = f'{prefix}.{member_prefix}' + self._serialize(serialized, value, member_shape, member_prefix) + + def _serialize_type_list(self, serialized, value, shape, prefix=''): + if not value: + # The query protocol serializes empty lists. + serialized[prefix] = '' + return + if self._is_shape_flattened(shape): + list_prefix = prefix + if shape.member.serialization.get('name'): + name = self._get_serialized_name(shape.member, default_name='') + # Replace '.Original' with '.{name}'. + list_prefix = '.'.join(prefix.split('.')[:-1] + [name]) + else: + list_name = shape.member.serialization.get('name', 'member') + list_prefix = f'{prefix}.{list_name}' + for i, element in enumerate(value, 1): + element_prefix = f'{list_prefix}.{i}' + element_shape = shape.member + self._serialize(serialized, element, element_shape, element_prefix) + + def _serialize_type_map(self, serialized, value, shape, prefix=''): + if self._is_shape_flattened(shape): + full_prefix = prefix + else: + full_prefix = f'{prefix}.entry' + template = full_prefix + '.{i}.{suffix}' + key_shape = shape.key + value_shape = shape.value + key_suffix = self._get_serialized_name(key_shape, default_name='key') + value_suffix = self._get_serialized_name(value_shape, 'value') + for i, key in enumerate(value, 1): + key_prefix = template.format(i=i, suffix=key_suffix) + value_prefix = template.format(i=i, suffix=value_suffix) + self._serialize(serialized, key, key_shape, key_prefix) + self._serialize(serialized, value[key], value_shape, value_prefix) + + def _serialize_type_blob(self, serialized, value, shape, prefix=''): + # Blob args must be base64 encoded. + serialized[prefix] = self._get_base64(value) + + def _serialize_type_timestamp(self, serialized, value, shape, prefix=''): + serialized[prefix] = self._convert_timestamp_to_str( + value, shape.serialization.get('timestampFormat') + ) + + def _serialize_type_boolean(self, serialized, value, shape, prefix=''): + if value: + serialized[prefix] = 'true' + else: + serialized[prefix] = 'false' + + def _default_serialize(self, serialized, value, shape, prefix=''): + serialized[prefix] = value + + def _serialize_type_float(self, serialized, value, shape, prefix=''): + serialized[prefix] = self._handle_float(value) + + def _serialize_type_double(self, serialized, value, shape, prefix=''): + self._serialize_type_float(serialized, value, shape, prefix) + + +class EC2Serializer(QuerySerializer): + """EC2 specific customizations to the query protocol serializers. + + The EC2 model is almost, but not exactly, similar to the query protocol + serializer. This class encapsulates those differences. The model + will have be marked with a ``protocol`` of ``ec2``, so you don't need + to worry about wiring this class up correctly. + + """ + + def _get_serialized_name(self, shape, default_name): + # Returns the serialized name for the shape if it exists. + # Otherwise it will return the passed in capitalized default_name. + if 'queryName' in shape.serialization: + return shape.serialization['queryName'] + elif 'name' in shape.serialization: + # A locationName is always capitalized + # on input for the ec2 protocol. + name = shape.serialization['name'] + return name[0].upper() + name[1:] + else: + return default_name + + def _serialize_type_list(self, serialized, value, shape, prefix=''): + for i, element in enumerate(value, 1): + element_prefix = f'{prefix}.{i}' + element_shape = shape.member + self._serialize(serialized, element, element_shape, element_prefix) + + +class JSONSerializer(Serializer): + TIMESTAMP_FORMAT = 'unixtimestamp' + + def serialize_to_request(self, parameters, operation_model): + target = '{}.{}'.format( + operation_model.metadata['targetPrefix'], + operation_model.name, + ) + json_version = operation_model.metadata['jsonVersion'] + serialized = self._create_default_request() + serialized['method'] = operation_model.http.get( + 'method', self.DEFAULT_METHOD + ) + serialized['headers'] = { + 'X-Amz-Target': target, + 'Content-Type': f'application/x-amz-json-{json_version}', + } + self._handle_query_compatible_trait(operation_model, serialized) + + body = self.MAP_TYPE() + input_shape = operation_model.input_shape + if input_shape is not None: + self._serialize(body, parameters, input_shape) + serialized['body'] = json.dumps(body).encode(self.DEFAULT_ENCODING) + + host_prefix = self._expand_host_prefix(parameters, operation_model) + if host_prefix is not None: + serialized['host_prefix'] = host_prefix + + return serialized + + def _serialize(self, serialized, value, shape, key=None): + method = getattr( + self, + f'_serialize_type_{shape.type_name}', + self._default_serialize, + ) + method(serialized, value, shape, key) + + def _serialize_type_structure(self, serialized, value, shape, key): + if shape.is_document_type: + serialized[key] = value + else: + if key is not None: + # If a key is provided, this is a result of a recursive + # call so we need to add a new child dict as the value + # of the passed in serialized dict. We'll then add + # all the structure members as key/vals in the new serialized + # dictionary we just created. + new_serialized = self.MAP_TYPE() + serialized[key] = new_serialized + serialized = new_serialized + members = shape.members + for member_key, member_value in value.items(): + member_shape = members[member_key] + if 'name' in member_shape.serialization: + member_key = member_shape.serialization['name'] + self._serialize( + serialized, member_value, member_shape, member_key + ) + + def _serialize_type_map(self, serialized, value, shape, key): + map_obj = self.MAP_TYPE() + serialized[key] = map_obj + for sub_key, sub_value in value.items(): + self._serialize(map_obj, sub_value, shape.value, sub_key) + + def _serialize_type_list(self, serialized, value, shape, key): + list_obj = [] + serialized[key] = list_obj + for list_item in value: + wrapper = {} + # The JSON list serialization is the only case where we aren't + # setting a key on a dict. We handle this by using + # a __current__ key on a wrapper dict to serialize each + # list item before appending it to the serialized list. + self._serialize(wrapper, list_item, shape.member, "__current__") + list_obj.append(wrapper["__current__"]) + + def _default_serialize(self, serialized, value, shape, key): + serialized[key] = value + + def _serialize_type_timestamp(self, serialized, value, shape, key): + serialized[key] = self._convert_timestamp_to_str( + value, shape.serialization.get('timestampFormat') + ) + + def _serialize_type_blob(self, serialized, value, shape, key): + serialized[key] = self._get_base64(value) + + def _serialize_type_float(self, serialized, value, shape, prefix=''): + if isinstance(value, decimal.Decimal): + value = float(value) + serialized[prefix] = self._handle_float(value) + + def _serialize_type_double(self, serialized, value, shape, prefix=''): + self._serialize_type_float(serialized, value, shape, prefix) + + +class CBORSerializer(Serializer): + UNSIGNED_INT_MAJOR_TYPE = 0 + NEGATIVE_INT_MAJOR_TYPE = 1 + BLOB_MAJOR_TYPE = 2 + STRING_MAJOR_TYPE = 3 + LIST_MAJOR_TYPE = 4 + MAP_MAJOR_TYPE = 5 + TAG_MAJOR_TYPE = 6 + FLOAT_AND_SIMPLE_MAJOR_TYPE = 7 + + def _serialize_data_item(self, serialized, value, shape, key=None): + method = getattr(self, f'_serialize_type_{shape.type_name}') + if method is None: + raise ValueError( + f"Unrecognized C2J type: {shape.type_name}, unable to " + f"serialize request" + ) + method(serialized, value, shape, key) + + def _serialize_type_integer(self, serialized, value, shape, key): + if value >= 0: + major_type = self.UNSIGNED_INT_MAJOR_TYPE + else: + major_type = self.NEGATIVE_INT_MAJOR_TYPE + # The only differences in serializing negative and positive integers is + # that for negative, we set the major type to 1 and set the value to -1 + # minus the value + value = -1 - value + additional_info, num_bytes = self._get_additional_info_and_num_bytes( + value + ) + initial_byte = self._get_initial_byte(major_type, additional_info) + if num_bytes == 0: + serialized.extend(initial_byte) + else: + serialized.extend(initial_byte + value.to_bytes(num_bytes, "big")) + + def _serialize_type_long(self, serialized, value, shape, key): + self._serialize_type_integer(serialized, value, shape, key) + + def _serialize_type_blob(self, serialized, value, shape, key): + if isinstance(value, str): + value = value.encode('utf-8') + elif not isinstance(value, (bytes, bytearray)): + # We support file-like objects for blobs; these already have been + # validated to ensure they have a read method + value = value.read() + length = len(value) + additional_info, num_bytes = self._get_additional_info_and_num_bytes( + length + ) + initial_byte = self._get_initial_byte( + self.BLOB_MAJOR_TYPE, additional_info + ) + if num_bytes == 0: + serialized.extend(initial_byte) + else: + serialized.extend(initial_byte + length.to_bytes(num_bytes, "big")) + serialized.extend(value) + + def _serialize_type_string(self, serialized, value, shape, key): + encoded = value.encode('utf-8') + length = len(encoded) + additional_info, num_bytes = self._get_additional_info_and_num_bytes( + length + ) + initial_byte = self._get_initial_byte( + self.STRING_MAJOR_TYPE, additional_info + ) + if num_bytes == 0: + serialized.extend(initial_byte + encoded) + else: + serialized.extend( + initial_byte + length.to_bytes(num_bytes, "big") + encoded + ) + + def _serialize_type_list(self, serialized, value, shape, key): + length = len(value) + additional_info, num_bytes = self._get_additional_info_and_num_bytes( + length + ) + initial_byte = self._get_initial_byte( + self.LIST_MAJOR_TYPE, additional_info + ) + if num_bytes == 0: + serialized.extend(initial_byte) + else: + serialized.extend(initial_byte + length.to_bytes(num_bytes, "big")) + for item in value: + self._serialize_data_item(serialized, item, shape.member) + + def _serialize_type_map(self, serialized, value, shape, key): + length = len(value) + additional_info, num_bytes = self._get_additional_info_and_num_bytes( + length + ) + initial_byte = self._get_initial_byte( + self.MAP_MAJOR_TYPE, additional_info + ) + if num_bytes == 0: + serialized.extend(initial_byte) + else: + serialized.extend(initial_byte + length.to_bytes(num_bytes, "big")) + for key_item, item in value.items(): + self._serialize_data_item(serialized, key_item, shape.key) + self._serialize_data_item(serialized, item, shape.value) + + def _serialize_type_structure(self, serialized, value, shape, key): + if key is not None: + # For nested structures, we need to serialize the key first + self._serialize_data_item(serialized, key, shape.key_shape) + + # Remove `None` values from the dictionary + value = {k: v for k, v in value.items() if v is not None} + + map_length = len(value) + additional_info, num_bytes = self._get_additional_info_and_num_bytes( + map_length + ) + initial_byte = self._get_initial_byte( + self.MAP_MAJOR_TYPE, additional_info + ) + if num_bytes == 0: + serialized.extend(initial_byte) + else: + serialized.extend( + initial_byte + map_length.to_bytes(num_bytes, "big") + ) + + members = shape.members + for member_key, member_value in value.items(): + member_shape = members[member_key] + if 'name' in member_shape.serialization: + member_key = member_shape.serialization['name'] + if member_value is not None: + self._serialize_type_string(serialized, member_key, None, None) + self._serialize_data_item( + serialized, member_value, member_shape + ) + + def _serialize_type_timestamp(self, serialized, value, shape, key): + timestamp = self._convert_timestamp_to_str(value) + tag = 1 # Use tag 1 for unix timestamp + initial_byte = self._get_initial_byte(self.TAG_MAJOR_TYPE, tag) + serialized.extend(initial_byte) # Tagging the timestamp + additional_info, num_bytes = self._get_additional_info_and_num_bytes( + timestamp + ) + + if num_bytes == 0: + initial_byte = self._get_initial_byte( + self.UNSIGNED_INT_MAJOR_TYPE, timestamp + ) + serialized.extend(initial_byte) + else: + initial_byte = self._get_initial_byte( + self.UNSIGNED_INT_MAJOR_TYPE, additional_info + ) + serialized.extend( + initial_byte + timestamp.to_bytes(num_bytes, "big") + ) + + def _serialize_type_float(self, serialized, value, shape, key): + if self._is_special_number(value): + serialized.extend( + self._get_bytes_for_special_numbers(value) + ) # Handle special values like NaN or Infinity + else: + initial_byte = self._get_initial_byte( + self.FLOAT_AND_SIMPLE_MAJOR_TYPE, 26 + ) + serialized.extend(initial_byte + struct.pack(">f", value)) + + def _serialize_type_double(self, serialized, value, shape, key): + if self._is_special_number(value): + serialized.extend( + self._get_bytes_for_special_numbers(value) + ) # Handle special values like NaN or Infinity + else: + initial_byte = self._get_initial_byte( + self.FLOAT_AND_SIMPLE_MAJOR_TYPE, 27 + ) + serialized.extend(initial_byte + struct.pack(">d", value)) + + def _serialize_type_boolean(self, serialized, value, shape, key): + additional_info = 21 if value else 20 + serialized.extend( + self._get_initial_byte( + self.FLOAT_AND_SIMPLE_MAJOR_TYPE, additional_info + ) + ) + + def _get_additional_info_and_num_bytes(self, value): + # Values under 24 can be stored in the initial byte and don't need further + # encoding + if value < 24: + return value, 0 + # Values between 24 and 255 (inclusive) can be stored in 1 byte and + # correspond to additional info 24 + elif value < 256: + return 24, 1 + # Values up to 65535 can be stored in two bytes and correspond to additional + # info 25 + elif value < 65536: + return 25, 2 + # Values up to 4294967296 can be stored in four bytes and correspond to + # additional info 26 + elif value < 4294967296: + return 26, 4 + # The maximum number of bytes in a definite length data items is 8 which + # to additional info 27 + else: + return 27, 8 + + def _get_initial_byte(self, major_type, additional_info): + # The highest order three bits are the major type, so we need to bitshift the + # major type by 5 + major_type_bytes = major_type << 5 + return (major_type_bytes | additional_info).to_bytes(1, "big") + + def _is_special_number(self, value): + return any( + [ + value == float('inf'), + value == float('-inf'), + math.isnan(value), + ] + ) + + def _get_bytes_for_special_numbers(self, value): + additional_info = 25 + initial_byte = self._get_initial_byte( + self.FLOAT_AND_SIMPLE_MAJOR_TYPE, additional_info + ) + if value == float('inf'): + return initial_byte + struct.pack(">H", 0x7C00) + elif value == float('-inf'): + return initial_byte + struct.pack(">H", 0xFC00) + elif math.isnan(value): + return initial_byte + struct.pack(">H", 0x7E00) + + +class BaseRestSerializer(Serializer): + """Base class for rest protocols. + + The only variance between the various rest protocols is the + way that the body is serialized. All other aspects (headers, uri, etc.) + are the same and logic for serializing those aspects lives here. + + Subclasses must implement the ``_serialize_body_params`` method. + + """ + + QUERY_STRING_TIMESTAMP_FORMAT = 'iso8601' + HEADER_TIMESTAMP_FORMAT = 'rfc822' + # This is a list of known values for the "location" key in the + # serialization dict. The location key tells us where on the request + # to put the serialized value. + KNOWN_LOCATIONS = ['uri', 'querystring', 'header', 'headers'] + + def serialize_to_request(self, parameters, operation_model): + serialized = self._create_default_request() + serialized['method'] = operation_model.http.get( + 'method', self.DEFAULT_METHOD + ) + shape = operation_model.input_shape + + host_prefix = self._expand_host_prefix(parameters, operation_model) + if host_prefix is not None: + serialized['host_prefix'] = host_prefix + + if shape is None: + serialized['url_path'] = operation_model.http['requestUri'] + return serialized + shape_members = shape.members + # While the ``serialized`` key holds the final serialized request + # data, we need interim dicts for the various locations of the + # request. We need this for the uri_path_kwargs and the + # query_string_kwargs because they are templated, so we need + # to gather all the needed data for the string template, + # then we render the template. The body_kwargs is needed + # because once we've collected them all, we run them through + # _serialize_body_params, which for rest-json, creates JSON, + # and for rest-xml, will create XML. This is what the + # ``partitioned`` dict below is for. + partitioned = { + 'uri_path_kwargs': self.MAP_TYPE(), + 'query_string_kwargs': self.MAP_TYPE(), + 'body_kwargs': self.MAP_TYPE(), + 'headers': self.MAP_TYPE(), + } + for param_name, param_value in parameters.items(): + if param_value is None: + # Don't serialize any parameter with a None value. + continue + self._partition_parameters( + partitioned, param_name, param_value, shape_members + ) + serialized['url_path'] = self._render_uri_template( + operation_model.http['requestUri'], partitioned['uri_path_kwargs'] + ) + + if 'authPath' in operation_model.http: + serialized['auth_path'] = self._render_uri_template( + operation_model.http['authPath'], + partitioned['uri_path_kwargs'], + ) + # Note that we lean on the http implementation to handle the case + # where the requestUri path already has query parameters. + # The bundled http client, requests, already supports this. + serialized['query_string'] = partitioned['query_string_kwargs'] + if partitioned['headers']: + serialized['headers'] = partitioned['headers'] + self._serialize_payload( + partitioned, parameters, serialized, shape, shape_members + ) + self._serialize_content_type(serialized, shape, shape_members) + + return serialized + + def _render_uri_template(self, uri_template, params): + # We need to handle two cases:: + # + # /{Bucket}/foo + # /{Key+}/bar + # A label ending with '+' is greedy. There can only + # be one greedy key. + encoded_params = {} + for template_param in re.findall(r'{(.*?)}', uri_template): + if template_param.endswith('+'): + encoded_params[template_param] = percent_encode( + params[template_param[:-1]], safe='/~' + ) + else: + encoded_params[template_param] = percent_encode( + params[template_param] + ) + return uri_template.format(**encoded_params) + + def _serialize_payload( + self, partitioned, parameters, serialized, shape, shape_members + ): + # partitioned - The user input params partitioned by location. + # parameters - The user input params. + # serialized - The final serialized request dict. + # shape - Describes the expected input shape + # shape_members - The members of the input struct shape + payload_member = shape.serialization.get('payload') + if self._has_streaming_payload(payload_member, shape_members): + # If it's streaming, then the body is just the + # value of the payload. + body_payload = parameters.get(payload_member, b'') + body_payload = self._encode_payload(body_payload) + serialized['body'] = body_payload + elif payload_member is not None: + # If there's a payload member, we serialized that + # member to they body. + body_params = parameters.get(payload_member) + if body_params is not None: + serialized['body'] = self._serialize_body_params( + body_params, shape_members[payload_member] + ) + else: + serialized['body'] = self._serialize_empty_body() + elif partitioned['body_kwargs']: + serialized['body'] = self._serialize_body_params( + partitioned['body_kwargs'], shape + ) + elif self._requires_empty_body(shape): + serialized['body'] = self._serialize_empty_body() + + def _serialize_empty_body(self): + return b'' + + def _serialize_content_type(self, serialized, shape, shape_members): + """ + Some protocols require varied Content-Type headers + depending on user input. This allows subclasses to apply + this conditionally. + """ + pass + + def _requires_empty_body(self, shape): + """ + Some protocols require a specific body to represent an empty + payload. This allows subclasses to apply this conditionally. + """ + return False + + def _has_streaming_payload(self, payload, shape_members): + """Determine if payload is streaming (a blob or string).""" + return payload is not None and shape_members[payload].type_name in ( + 'blob', + 'string', + ) + + def _encode_payload(self, body): + if isinstance(body, str): + return body.encode(self.DEFAULT_ENCODING) + return body + + def _partition_parameters( + self, partitioned, param_name, param_value, shape_members + ): + # This takes the user provided input parameter (``param``) + # and figures out where they go in the request dict. + # Some params are HTTP headers, some are used in the URI, some + # are in the request body. This method deals with this. + member = shape_members[param_name] + location = member.serialization.get('location') + key_name = member.serialization.get('name', param_name) + if location == 'uri': + uri_path_value = self._get_uri_and_query_string_value( + param_value, member + ) + partitioned['uri_path_kwargs'][key_name] = uri_path_value + elif location == 'querystring': + if isinstance(param_value, dict): + partitioned['query_string_kwargs'].update(param_value) + elif member.type_name == 'list': + new_param = [ + self._get_uri_and_query_string_value(value, member.member) + for value in param_value + ] + partitioned['query_string_kwargs'][key_name] = new_param + else: + new_param = self._get_uri_and_query_string_value( + param_value, member + ) + partitioned['query_string_kwargs'][key_name] = new_param + elif location == 'header': + shape = shape_members[param_name] + if not param_value and shape.type_name == 'list': + # Empty lists should not be set on the headers + return + partitioned['headers'][key_name] = self._convert_header_value( + shape, param_value + ) + elif location == 'headers': + # 'headers' is a bit of an oddball. The ``key_name`` + # is actually really a prefix for the header names: + header_prefix = key_name + # The value provided by the user is a dict so we'll be + # creating multiple header key/val pairs. The key + # name to use for each header is the header_prefix (``key_name``) + # plus the key provided by the user. + self._do_serialize_header_map( + header_prefix, partitioned['headers'], param_value + ) + else: + partitioned['body_kwargs'][param_name] = param_value + + def _get_uri_and_query_string_value(self, param_value, member): + if member.type_name == 'boolean': + return str(param_value).lower() + elif member.type_name == 'timestamp': + timestamp_format = member.serialization.get( + 'timestampFormat', self.QUERY_STRING_TIMESTAMP_FORMAT + ) + return self._convert_timestamp_to_str( + param_value, timestamp_format + ) + elif member.type_name in ['float', 'double']: + return str(self._handle_float(param_value)) + return param_value + + def _do_serialize_header_map(self, header_prefix, headers, user_input): + for key, val in user_input.items(): + full_key = header_prefix + key + headers[full_key] = val + + def _serialize_body_params(self, params, shape): + raise NotImplementedError('_serialize_body_params') + + def _convert_header_value(self, shape, value): + if shape.type_name == 'timestamp': + datetime_obj = parse_to_aware_datetime(value) + timestamp = calendar.timegm(datetime_obj.utctimetuple()) + timestamp_format = shape.serialization.get( + 'timestampFormat', self.HEADER_TIMESTAMP_FORMAT + ) + return str( + self._convert_timestamp_to_str(timestamp, timestamp_format) + ) + elif shape.type_name == 'list': + if shape.member.type_name == "string": + converted_value = [ + self._escape_header_list_string(v) + for v in value + if v is not None + ] + else: + converted_value = [ + self._convert_header_value(shape.member, v) + for v in value + if v is not None + ] + return ",".join(converted_value) + elif is_json_value_header(shape): + # Serialize with no spaces after separators to save space in + # the header. + return self._get_base64(json.dumps(value, separators=(',', ':'))) + elif shape.type_name == 'boolean': + return str(value).lower() + elif shape.type_name in ['float', 'double']: + return str(self._handle_float(value)) + else: + return str(value) + + def _escape_header_list_string(self, value): + # Escapes a header list string by wrapping it in double quotes if it contains + # a comma or a double quote, and escapes any internal double quotes. + if '"' in value or ',' in value: + return '"' + value.replace('"', '\\"') + '"' + else: + return value + + +class BaseRpcV2Serializer(Serializer): + """Base class for RPCv2 protocols. + + The only variance between the various RPCv2 protocols is the + way that the body is serialized. All other aspects (headers, uri, etc.) + are the same and logic for serializing those aspects lives here. + + Subclasses must implement the ``_serialize_body_params`` and + ``_serialize_headers`` methods. + + """ + + def serialize_to_request(self, parameters, operation_model): + serialized = self._create_default_request() + service_name = operation_model.service_model.metadata['targetPrefix'] + operation_name = operation_model.name + serialized['url_path'] = ( + f'/service/{service_name}/operation/{operation_name}' + ) + + input_shape = operation_model.input_shape + if input_shape is not None: + self._serialize_payload(parameters, serialized, input_shape) + + host_prefix = self._expand_host_prefix(parameters, operation_model) + if host_prefix is not None: + serialized['host_prefix'] = host_prefix + + self._serialize_headers(serialized, operation_model) + + return serialized + + def _serialize_payload(self, parameters, serialized, shape): + body_payload = self._serialize_body_params(parameters, shape) + serialized['body'] = body_payload + + def _serialize_headers(self, serialized, operation_model): + raise NotImplementedError("_serialize_headers") + + def _serialize_body_params(self, parameters, shape): + raise NotImplementedError("_serialize_body_params") + + +class RestJSONSerializer(BaseRestSerializer, JSONSerializer): + def _serialize_empty_body(self): + return b'{}' + + def _requires_empty_body(self, shape): + """ + Serialize an empty JSON object whenever the shape has + members not targeting a location. + """ + for member, val in shape.members.items(): + if 'location' not in val.serialization: + return True + return False + + def _serialize_content_type(self, serialized, shape, shape_members): + """Set Content-Type to application/json for all structured bodies.""" + payload = shape.serialization.get('payload') + if self._has_streaming_payload(payload, shape_members): + # Don't apply content-type to streaming bodies + return + + has_body = serialized['body'] != b'' + has_content_type = has_header('Content-Type', serialized['headers']) + if has_body and not has_content_type: + serialized['headers']['Content-Type'] = 'application/json' + + def _serialize_body_params(self, params, shape): + serialized_body = self.MAP_TYPE() + self._serialize(serialized_body, params, shape) + return json.dumps(serialized_body).encode(self.DEFAULT_ENCODING) + + +class RestXMLSerializer(BaseRestSerializer): + TIMESTAMP_FORMAT = 'iso8601' + + def _serialize_body_params(self, params, shape): + root_name = shape.serialization['name'] + pseudo_root = ElementTree.Element('') + self._serialize(shape, params, pseudo_root, root_name) + real_root = list(pseudo_root)[0] + return ElementTree.tostring(real_root, encoding=self.DEFAULT_ENCODING) + + def _serialize(self, shape, params, xmlnode, name): + method = getattr( + self, + f'_serialize_type_{shape.type_name}', + self._default_serialize, + ) + method(xmlnode, params, shape, name) + + def _serialize_type_structure(self, xmlnode, params, shape, name): + structure_node = ElementTree.SubElement(xmlnode, name) + + self._add_xml_namespace(shape, structure_node) + for key, value in params.items(): + member_shape = shape.members[key] + member_name = member_shape.serialization.get('name', key) + # We need to special case member shapes that are marked as an + # xmlAttribute. Rather than serializing into an XML child node, + # we instead serialize the shape to an XML attribute of the + # *current* node. + if value is None: + # Don't serialize any param whose value is None. + return + if member_shape.serialization.get('xmlAttribute'): + # xmlAttributes must have a serialization name. + xml_attribute_name = member_shape.serialization['name'] + structure_node.attrib[xml_attribute_name] = value + continue + self._serialize(member_shape, value, structure_node, member_name) + + def _serialize_type_list(self, xmlnode, params, shape, name): + member_shape = shape.member + if shape.serialization.get('flattened'): + element_name = name + list_node = xmlnode + else: + element_name = member_shape.serialization.get('name', 'member') + list_node = ElementTree.SubElement(xmlnode, name) + self._add_xml_namespace(shape, list_node) + for item in params: + self._serialize(member_shape, item, list_node, element_name) + + def _serialize_type_map(self, xmlnode, params, shape, name): + # Given the ``name`` of MyMap, and input of {"key1": "val1"} + # we serialize this as: + # + # + # key1 + # val1 + # + # + if not self._is_shape_flattened(shape): + node = ElementTree.SubElement(xmlnode, name) + self._add_xml_namespace(shape, node) + + for key, value in params.items(): + sub_node = ( + ElementTree.SubElement(xmlnode, name) + if self._is_shape_flattened(shape) + else ElementTree.SubElement(node, 'entry') + ) + key_name = self._get_serialized_name(shape.key, default_name='key') + val_name = self._get_serialized_name( + shape.value, default_name='value' + ) + self._serialize(shape.key, key, sub_node, key_name) + self._serialize(shape.value, value, sub_node, val_name) + + def _serialize_type_boolean(self, xmlnode, params, shape, name): + # For scalar types, the 'params' attr is actually just a scalar + # value representing the data we need to serialize as a boolean. + # It will either be 'true' or 'false' + node = ElementTree.SubElement(xmlnode, name) + if params: + str_value = 'true' + else: + str_value = 'false' + node.text = str_value + self._add_xml_namespace(shape, node) + + def _serialize_type_blob(self, xmlnode, params, shape, name): + node = ElementTree.SubElement(xmlnode, name) + node.text = self._get_base64(params) + self._add_xml_namespace(shape, node) + + def _serialize_type_timestamp(self, xmlnode, params, shape, name): + node = ElementTree.SubElement(xmlnode, name) + node.text = str( + self._convert_timestamp_to_str( + params, shape.serialization.get('timestampFormat') + ) + ) + self._add_xml_namespace(shape, node) + + def _serialize_type_float(self, xmlnode, params, shape, name): + node = ElementTree.SubElement(xmlnode, name) + node.text = str(self._handle_float(params)) + self._add_xml_namespace(shape, node) + + def _serialize_type_double(self, xmlnode, params, shape, name): + self._serialize_type_float(xmlnode, params, shape, name) + + def _default_serialize(self, xmlnode, params, shape, name): + node = ElementTree.SubElement(xmlnode, name) + node.text = str(params) + self._add_xml_namespace(shape, node) + + def _add_xml_namespace(self, shape, structure_node): + if 'xmlNamespace' in shape.serialization: + namespace_metadata = shape.serialization['xmlNamespace'] + attribute_name = 'xmlns' + if isinstance(namespace_metadata, dict): + if namespace_metadata.get('prefix'): + attribute_name += f":{namespace_metadata['prefix']}" + structure_node.attrib[attribute_name] = namespace_metadata[ + 'uri' + ] + elif isinstance(namespace_metadata, str): + structure_node.attrib[attribute_name] = namespace_metadata + + +class RpcV2CBORSerializer(BaseRpcV2Serializer, CBORSerializer): + TIMESTAMP_FORMAT = 'unixtimestamp' + + def serialize_to_request(self, parameters, operation_model): + register_feature_id('PROTOCOL_RPC_V2_CBOR') + return super().serialize_to_request(parameters, operation_model) + + def _serialize_body_params(self, parameters, input_shape): + body = bytearray() + self._serialize_data_item(body, parameters, input_shape) + return bytes(body) + + def _serialize_headers(self, serialized, operation_model): + serialized['headers']['smithy-protocol'] = 'rpc-v2-cbor' + + if operation_model.has_event_stream_output: + header_val = 'application/vnd.amazon.eventstream' + else: + header_val = 'application/cbor' + self._handle_query_compatible_trait(operation_model, serialized) + + has_body = serialized['body'] != b'' + has_content_type = has_header('Content-Type', serialized['headers']) + + serialized['headers']['Accept'] = header_val + if not has_content_type and has_body: + serialized['headers']['Content-Type'] = header_val + + +SERIALIZERS = { + 'ec2': EC2Serializer, + 'query': QuerySerializer, + 'json': JSONSerializer, + 'rest-json': RestJSONSerializer, + 'rest-xml': RestXMLSerializer, + 'smithy-rpc-v2-cbor': RpcV2CBORSerializer, +} diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/session.py b/rep_localstack/lib/python3.12/site-packages/botocore/session.py new file mode 100644 index 000000000..c5a61b2f8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/session.py @@ -0,0 +1,1330 @@ +# Copyright (c) 2012-2013 Mitch Garnaat http://garnaat.org/ +# Copyright 2012-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +""" +This module contains the main interface to the botocore package, the +Session object. +""" + +import copy +import logging +import os +import platform +import socket +import warnings + +import botocore.client +import botocore.configloader +import botocore.credentials +import botocore.tokens +from botocore import ( + UNSIGNED, + __version__, + handlers, + invoke_initializers, + monitoring, + paginate, + retryhandler, + translate, + waiter, +) +from botocore.compat import ( + HAS_CRT, # noqa: F401 + MutableMapping, +) +from botocore.configprovider import ( + BOTOCORE_DEFAUT_SESSION_VARIABLES, + ConfigChainFactory, + ConfiguredEndpointProvider, + ConfigValueStore, + DefaultConfigResolver, + SmartDefaultsConfigStoreFactory, + create_botocore_default_config_mapping, +) +from botocore.context import get_context, with_current_context +from botocore.errorfactory import ClientExceptionsFactory +from botocore.exceptions import ( + ConfigNotFound, + InvalidDefaultsMode, + PartialCredentialsError, + ProfileNotFound, + UnknownServiceError, +) +from botocore.hooks import ( + EventAliaser, + HierarchicalEmitter, + first_non_none_response, +) +from botocore.loaders import create_loader +from botocore.model import ServiceModel +from botocore.parsers import ResponseParserFactory +from botocore.plugin import get_botocore_plugins, load_client_plugins +from botocore.regions import EndpointResolver +from botocore.useragent import UserAgentString, register_feature_id +from botocore.utils import ( + EVENT_ALIASES, + IMDSRegionProvider, + validate_region_name, +) + +logger = logging.getLogger(__name__) + + +class Session: + """ + The Session object collects together useful functionality + from `botocore` as well as important data such as configuration + information and credentials into a single, easy-to-use object. + + :ivar available_profiles: A list of profiles defined in the config + file associated with this session. + :ivar profile: The current profile. + """ + + SESSION_VARIABLES = copy.copy(BOTOCORE_DEFAUT_SESSION_VARIABLES) + + #: The default format string to use when configuring the botocore logger. + LOG_FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' + + def __init__( + self, + session_vars=None, + event_hooks=None, + include_builtin_handlers=True, + profile=None, + ): + """ + Create a new Session object. + + :type session_vars: dict + :param session_vars: A dictionary that is used to override some or all + of the environment variables associated with this session. The + key/value pairs defined in this dictionary will override the + corresponding variables defined in ``SESSION_VARIABLES``. + + :type event_hooks: BaseEventHooks + :param event_hooks: The event hooks object to use. If one is not + provided, an event hooks object will be automatically created + for you. + + :type include_builtin_handlers: bool + :param include_builtin_handlers: Indicates whether or not to + automatically register builtin handlers. + + :type profile: str + :param profile: The name of the profile to use for this + session. Note that the profile can only be set when + the session is created. + + """ + if event_hooks is None: + self._original_handler = HierarchicalEmitter() + else: + self._original_handler = event_hooks + self._events = EventAliaser(self._original_handler) + if include_builtin_handlers: + self._register_builtin_handlers(self._events) + self.user_agent_name = 'Botocore' + self.user_agent_version = __version__ + self.user_agent_extra = '' + # The _profile attribute is just used to cache the value + # of the current profile to avoid going through the normal + # config lookup process each access time. + self._profile = None + self._config = None + self._credentials = None + self._auth_token = None + self._profile_map = None + # This is a dict that stores per session specific config variable + # overrides via set_config_variable(). + self._session_instance_vars = {} + if profile is not None: + self._session_instance_vars['profile'] = profile + self._client_config = None + self._last_client_region_used = None + self._components = ComponentLocator() + self._internal_components = ComponentLocator() + self._register_components() + self.session_var_map = SessionVarDict(self, self.SESSION_VARIABLES) + if session_vars is not None: + self.session_var_map.update(session_vars) + invoke_initializers(self) + + def _register_components(self): + self._register_credential_provider() + self._register_token_provider() + self._register_data_loader() + self._register_endpoint_resolver() + self._register_event_emitter() + self._register_response_parser_factory() + self._register_exceptions_factory() + self._register_config_store() + self._register_monitor() + self._register_default_config_resolver() + self._register_smart_defaults_factory() + self._register_user_agent_creator() + + def _register_event_emitter(self): + self._components.register_component('event_emitter', self._events) + + def _register_token_provider(self): + self._components.lazy_register_component( + 'token_provider', self._create_token_resolver + ) + + def _create_token_resolver(self): + return botocore.tokens.create_token_resolver(self) + + def _register_credential_provider(self): + self._components.lazy_register_component( + 'credential_provider', self._create_credential_resolver + ) + + def _create_credential_resolver(self): + return botocore.credentials.create_credential_resolver( + self, region_name=self._last_client_region_used + ) + + def _register_data_loader(self): + self._components.lazy_register_component( + 'data_loader', + lambda: create_loader(self.get_config_variable('data_path')), + ) + + def _register_endpoint_resolver(self): + def create_default_resolver(): + loader = self.get_component('data_loader') + endpoints, path = loader.load_data_with_path('endpoints') + uses_builtin = loader.is_builtin_path(path) + return EndpointResolver(endpoints, uses_builtin_data=uses_builtin) + + self._internal_components.lazy_register_component( + 'endpoint_resolver', create_default_resolver + ) + + def _register_default_config_resolver(self): + def create_default_config_resolver(): + loader = self.get_component('data_loader') + defaults = loader.load_data('sdk-default-configuration') + return DefaultConfigResolver(defaults) + + self._internal_components.lazy_register_component( + 'default_config_resolver', create_default_config_resolver + ) + + def _register_smart_defaults_factory(self): + def create_smart_defaults_factory(): + default_config_resolver = self._get_internal_component( + 'default_config_resolver' + ) + imds_region_provider = IMDSRegionProvider(session=self) + return SmartDefaultsConfigStoreFactory( + default_config_resolver, imds_region_provider + ) + + self._internal_components.lazy_register_component( + 'smart_defaults_factory', create_smart_defaults_factory + ) + + def _register_response_parser_factory(self): + self._components.register_component( + 'response_parser_factory', ResponseParserFactory() + ) + + def _register_exceptions_factory(self): + self._internal_components.register_component( + 'exceptions_factory', ClientExceptionsFactory() + ) + + def _register_builtin_handlers(self, events): + for spec in handlers.BUILTIN_HANDLERS: + if len(spec) == 2: + event_name, handler = spec + self.register(event_name, handler) + else: + event_name, handler, register_type = spec + if register_type is handlers.REGISTER_FIRST: + self._events.register_first(event_name, handler) + elif register_type is handlers.REGISTER_LAST: + self._events.register_last(event_name, handler) + + def _register_config_store(self): + config_store_component = ConfigValueStore( + mapping=create_botocore_default_config_mapping(self) + ) + self._components.register_component( + 'config_store', config_store_component + ) + + def _register_monitor(self): + self._internal_components.lazy_register_component( + 'monitor', self._create_csm_monitor + ) + + def _register_user_agent_creator(self): + uas = UserAgentString.from_environment() + self._components.register_component('user_agent_creator', uas) + + def _create_csm_monitor(self): + if self.get_config_variable('csm_enabled'): + client_id = self.get_config_variable('csm_client_id') + host = self.get_config_variable('csm_host') + port = self.get_config_variable('csm_port') + handler = monitoring.Monitor( + adapter=monitoring.MonitorEventAdapter(), + publisher=monitoring.SocketPublisher( + socket=socket.socket(socket.AF_INET, socket.SOCK_DGRAM), + host=host, + port=port, + serializer=monitoring.CSMSerializer( + csm_client_id=client_id + ), + ), + ) + return handler + return None + + def _get_crt_version(self): + user_agent_creator = self.get_component('user_agent_creator') + return user_agent_creator._crt_version or 'Unknown' + + @property + def available_profiles(self): + return list(self._build_profile_map().keys()) + + def _build_profile_map(self): + # This will build the profile map if it has not been created, + # otherwise it will return the cached value. The profile map + # is a list of profile names, to the config values for the profile. + if self._profile_map is None: + self._profile_map = self.full_config['profiles'] + return self._profile_map + + @property + def profile(self): + if self._profile is None: + profile = self.get_config_variable('profile') + self._profile = profile + return self._profile + + def get_config_variable(self, logical_name, methods=None): + if methods is not None: + return self._get_config_variable_with_custom_methods( + logical_name, methods + ) + return self.get_component('config_store').get_config_variable( + logical_name + ) + + def _get_config_variable_with_custom_methods(self, logical_name, methods): + # If a custom list of methods was supplied we need to perserve the + # behavior with the new system. To do so a new chain that is a copy of + # the old one will be constructed, but only with the supplied methods + # being added to the chain. This chain will be consulted for a value + # and then thrown out. This is not efficient, nor is the methods arg + # used in botocore, this is just for backwards compatibility. + chain_builder = SubsetChainConfigFactory(session=self, methods=methods) + mapping = create_botocore_default_config_mapping(self) + for name, config_options in self.session_var_map.items(): + config_name, env_vars, default, typecast = config_options + build_chain_config_args = { + 'conversion_func': typecast, + 'default': default, + } + if 'instance' in methods: + build_chain_config_args['instance_name'] = name + if 'env' in methods: + build_chain_config_args['env_var_names'] = env_vars + if 'config' in methods: + build_chain_config_args['config_property_name'] = config_name + mapping[name] = chain_builder.create_config_chain( + **build_chain_config_args + ) + config_store_component = ConfigValueStore(mapping=mapping) + value = config_store_component.get_config_variable(logical_name) + return value + + def set_config_variable(self, logical_name, value): + """Set a configuration variable to a specific value. + + By using this method, you can override the normal lookup + process used in ``get_config_variable`` by explicitly setting + a value. Subsequent calls to ``get_config_variable`` will + use the ``value``. This gives you per-session specific + configuration values. + + :: + >>> # Assume logical name 'foo' maps to env var 'FOO' + >>> os.environ['FOO'] = 'myvalue' + >>> s.get_config_variable('foo') + 'myvalue' + >>> s.set_config_variable('foo', 'othervalue') + >>> s.get_config_variable('foo') + 'othervalue' + + :type logical_name: str + :param logical_name: The logical name of the session variable + you want to set. These are the keys in ``SESSION_VARIABLES``. + :param value: The value to associate with the config variable. + + """ + logger.debug( + "Setting config variable for %s to %r", + logical_name, + value, + ) + self._session_instance_vars[logical_name] = value + + def instance_variables(self): + return copy.copy(self._session_instance_vars) + + def get_scoped_config(self): + """ + Returns the config values from the config file scoped to the current + profile. + + The configuration data is loaded **only** from the config file. + It does not resolve variables based on different locations + (e.g. first from the session instance, then from environment + variables, then from the config file). If you want this lookup + behavior, use the ``get_config_variable`` method instead. + + Note that this configuration is specific to a single profile (the + ``profile`` session variable). + + If the ``profile`` session variable is set and the profile does + not exist in the config file, a ``ProfileNotFound`` exception + will be raised. + + :raises: ConfigNotFound, ConfigParseError, ProfileNotFound + :rtype: dict + + """ + profile_name = self.get_config_variable('profile') + profile_map = self._build_profile_map() + # If a profile is not explicitly set return the default + # profile config or an empty config dict if we don't have + # a default profile. + if profile_name is None: + return profile_map.get('default', {}) + elif profile_name not in profile_map: + # Otherwise if they specified a profile, it has to + # exist (even if it's the default profile) otherwise + # we complain. + raise ProfileNotFound(profile=profile_name) + else: + return profile_map[profile_name] + + @property + def full_config(self): + """Return the parsed config file. + + The ``get_config`` method returns the config associated with the + specified profile. This property returns the contents of the + **entire** config file. + + :rtype: dict + """ + if self._config is None: + try: + config_file = self.get_config_variable('config_file') + self._config = botocore.configloader.load_config(config_file) + except ConfigNotFound: + self._config = {'profiles': {}} + try: + # Now we need to inject the profiles from the + # credentials file. We don't actually need the values + # in the creds file, only the profile names so that we + # can validate the user is not referring to a nonexistent + # profile. + cred_file = self.get_config_variable('credentials_file') + cred_profiles = botocore.configloader.raw_config_parse( + cred_file + ) + for profile in cred_profiles: + cred_vars = cred_profiles[profile] + if profile not in self._config['profiles']: + self._config['profiles'][profile] = cred_vars + else: + self._config['profiles'][profile].update(cred_vars) + except ConfigNotFound: + pass + return self._config + + def get_default_client_config(self): + """Retrieves the default config for creating clients + + :rtype: botocore.client.Config + :returns: The default client config object when creating clients. If + the value is ``None`` then there is no default config object + attached to the session. + """ + return self._client_config + + def set_default_client_config(self, client_config): + """Sets the default config for creating clients + + :type client_config: botocore.client.Config + :param client_config: The default client config object when creating + clients. If the value is ``None`` then there is no default config + object attached to the session. + """ + self._client_config = client_config + + def set_credentials( + self, access_key, secret_key, token=None, account_id=None + ): + """ + Manually create credentials for this session. If you would + prefer to use botocore without a config file, environment variables, + or IAM roles, you can pass explicit credentials into this + method to establish credentials for this session. + + :type access_key: str + :param access_key: The access key part of the credentials. + + :type secret_key: str + :param secret_key: The secret key part of the credentials. + + :type token: str + :param token: An option session token used by STS session + credentials. + + :type account_id: str + :param account_id: An optional account ID part of the credentials. + """ + self._credentials = botocore.credentials.Credentials( + access_key, secret_key, token, account_id=account_id + ) + + def get_credentials(self): + """ + Return the :class:`botocore.credential.Credential` object + associated with this session. If the credentials have not + yet been loaded, this will attempt to load them. If they + have already been loaded, this will return the cached + credentials. + + """ + if self._credentials is None: + self._credentials = self._components.get_component( + 'credential_provider' + ).load_credentials() + return self._credentials + + def get_auth_token(self, **kwargs): + """ + Return the :class:`botocore.tokens.AuthToken` object associated with + this session. If the authorization token has not yet been loaded, this + will attempt to load it. If it has already been loaded, this will + return the cached authorization token. + + """ + provider = self._components.get_component('token_provider') + + signing_name = kwargs.get('signing_name') + if signing_name is not None: + auth_token = provider.load_token(signing_name=signing_name) + if auth_token is not None: + return auth_token + + if self._auth_token is None: + self._auth_token = provider.load_token() + return self._auth_token + + def user_agent(self): + """ + Return a string suitable for use as a User-Agent header. + The string will be of the form: + + / Python/ / + + Where: + + - agent_name is the value of the `user_agent_name` attribute + of the session object (`Botocore` by default). + - agent_version is the value of the `user_agent_version` + attribute of the session object (the botocore version by default). + by default. + - py_ver is the version of the Python interpreter beng used. + - plat_name is the name of the platform (e.g. Darwin) + - plat_ver is the version of the platform + - exec_env is exec-env/$AWS_EXECUTION_ENV + + If ``user_agent_extra`` is not empty, then this value will be + appended to the end of the user agent string. + + """ + base = ( + f'{self.user_agent_name}/{self.user_agent_version} ' + f'Python/{platform.python_version()} ' + f'{platform.system()}/{platform.release()}' + ) + if HAS_CRT: + base += f' awscrt/{self._get_crt_version()}' + if os.environ.get('AWS_EXECUTION_ENV') is not None: + base += ' exec-env/{}'.format(os.environ.get('AWS_EXECUTION_ENV')) + if self.user_agent_extra: + base += f' {self.user_agent_extra}' + + return base + + def get_data(self, data_path): + """ + Retrieve the data associated with `data_path`. + + :type data_path: str + :param data_path: The path to the data you wish to retrieve. + """ + return self.get_component('data_loader').load_data(data_path) + + def get_service_model(self, service_name, api_version=None): + """Get the service model object. + + :type service_name: string + :param service_name: The service name + + :type api_version: string + :param api_version: The API version of the service. If none is + provided, then the latest API version will be used. + + :rtype: L{botocore.model.ServiceModel} + :return: The botocore service model for the service. + + """ + service_description = self.get_service_data(service_name, api_version) + return ServiceModel(service_description, service_name=service_name) + + def get_waiter_model(self, service_name, api_version=None): + loader = self.get_component('data_loader') + waiter_config = loader.load_service_model( + service_name, 'waiters-2', api_version + ) + return waiter.WaiterModel(waiter_config) + + def get_paginator_model(self, service_name, api_version=None): + loader = self.get_component('data_loader') + paginator_config = loader.load_service_model( + service_name, 'paginators-1', api_version + ) + return paginate.PaginatorModel(paginator_config) + + def get_service_data(self, service_name, api_version=None): + """ + Retrieve the fully merged data associated with a service. + """ + data_path = service_name + service_data = self.get_component('data_loader').load_service_model( + data_path, type_name='service-2', api_version=api_version + ) + service_id = EVENT_ALIASES.get(service_name, service_name) + self._events.emit( + f'service-data-loaded.{service_id}', + service_data=service_data, + service_name=service_name, + session=self, + ) + return service_data + + def get_available_services(self): + """ + Return a list of names of available services. + """ + return self.get_component('data_loader').list_available_services( + type_name='service-2' + ) + + def set_debug_logger(self, logger_name='botocore'): + """ + Convenience function to quickly configure full debug output + to go to the console. + """ + self.set_stream_logger(logger_name, logging.DEBUG) + + def set_stream_logger( + self, logger_name, log_level, stream=None, format_string=None + ): + """ + Convenience method to configure a stream logger. + + :type logger_name: str + :param logger_name: The name of the logger to configure + + :type log_level: str + :param log_level: The log level to set for the logger. This + is any param supported by the ``.setLevel()`` method of + a ``Log`` object. + + :type stream: file + :param stream: A file like object to log to. If none is provided + then sys.stderr will be used. + + :type format_string: str + :param format_string: The format string to use for the log + formatter. If none is provided this will default to + ``self.LOG_FORMAT``. + + """ + log = logging.getLogger(logger_name) + log.setLevel(logging.DEBUG) + + ch = logging.StreamHandler(stream) + ch.setLevel(log_level) + + # create formatter + if format_string is None: + format_string = self.LOG_FORMAT + formatter = logging.Formatter(format_string) + + # add formatter to ch + ch.setFormatter(formatter) + + # add ch to logger + log.addHandler(ch) + + def set_file_logger(self, log_level, path, logger_name='botocore'): + """ + Convenience function to quickly configure any level of logging + to a file. + + :type log_level: int + :param log_level: A log level as specified in the `logging` module + + :type path: string + :param path: Path to the log file. The file will be created + if it doesn't already exist. + """ + log = logging.getLogger(logger_name) + log.setLevel(logging.DEBUG) + + # create console handler and set level to debug + ch = logging.FileHandler(path) + ch.setLevel(log_level) + + # create formatter + formatter = logging.Formatter(self.LOG_FORMAT) + + # add formatter to ch + ch.setFormatter(formatter) + + # add ch to logger + log.addHandler(ch) + + def register( + self, event_name, handler, unique_id=None, unique_id_uses_count=False + ): + """Register a handler with an event. + + :type event_name: str + :param event_name: The name of the event. + + :type handler: callable + :param handler: The callback to invoke when the event + is emitted. This object must be callable, and must + accept ``**kwargs``. If either of these preconditions are + not met, a ``ValueError`` will be raised. + + :type unique_id: str + :param unique_id: An optional identifier to associate with the + registration. A unique_id can only be used once for + the entire session registration (unless it is unregistered). + This can be used to prevent an event handler from being + registered twice. + + :param unique_id_uses_count: boolean + :param unique_id_uses_count: Specifies if the event should maintain + a count when a ``unique_id`` is registered and unregisted. The + event can only be completely unregistered once every register call + using the unique id has been matched by an ``unregister`` call. + If ``unique_id`` is specified, subsequent ``register`` + calls must use the same value for ``unique_id_uses_count`` + as the ``register`` call that first registered the event. + + :raises ValueError: If the call to ``register`` uses ``unique_id`` + but the value for ``unique_id_uses_count`` differs from the + ``unique_id_uses_count`` value declared by the very first + ``register`` call for that ``unique_id``. + """ + self._events.register( + event_name, + handler, + unique_id, + unique_id_uses_count=unique_id_uses_count, + ) + + def unregister( + self, + event_name, + handler=None, + unique_id=None, + unique_id_uses_count=False, + ): + """Unregister a handler with an event. + + :type event_name: str + :param event_name: The name of the event. + + :type handler: callable + :param handler: The callback to unregister. + + :type unique_id: str + :param unique_id: A unique identifier identifying the callback + to unregister. You can provide either the handler or the + unique_id, you do not have to provide both. + + :param unique_id_uses_count: boolean + :param unique_id_uses_count: Specifies if the event should maintain + a count when a ``unique_id`` is registered and unregisted. The + event can only be completely unregistered once every ``register`` + call using the ``unique_id`` has been matched by an ``unregister`` + call. If the ``unique_id`` is specified, subsequent + ``unregister`` calls must use the same value for + ``unique_id_uses_count`` as the ``register`` call that first + registered the event. + + :raises ValueError: If the call to ``unregister`` uses ``unique_id`` + but the value for ``unique_id_uses_count`` differs from the + ``unique_id_uses_count`` value declared by the very first + ``register`` call for that ``unique_id``. + """ + self._events.unregister( + event_name, + handler=handler, + unique_id=unique_id, + unique_id_uses_count=unique_id_uses_count, + ) + + def emit(self, event_name, **kwargs): + return self._events.emit(event_name, **kwargs) + + def emit_first_non_none_response(self, event_name, **kwargs): + responses = self._events.emit(event_name, **kwargs) + return first_non_none_response(responses) + + def get_component(self, name): + try: + return self._components.get_component(name) + except ValueError: + if name in ['endpoint_resolver', 'exceptions_factory']: + warnings.warn( + f'Fetching the {name} component with the get_component() ' + 'method is deprecated as the component has always been ' + 'considered an internal interface of botocore', + DeprecationWarning, + ) + return self._internal_components.get_component(name) + raise + + def _get_internal_component(self, name): + # While this method may be called by botocore classes outside of the + # Session, this method should **never** be used by a class that lives + # outside of botocore. + return self._internal_components.get_component(name) + + def _register_internal_component(self, name, component): + # While this method may be called by botocore classes outside of the + # Session, this method should **never** be used by a class that lives + # outside of botocore. + return self._internal_components.register_component(name, component) + + def register_component(self, name, component): + self._components.register_component(name, component) + + def lazy_register_component(self, name, component): + self._components.lazy_register_component(name, component) + + @with_current_context() + def create_client( + self, + service_name, + region_name=None, + api_version=None, + use_ssl=True, + verify=None, + endpoint_url=None, + aws_access_key_id=None, + aws_secret_access_key=None, + aws_session_token=None, + config=None, + aws_account_id=None, + ): + """Create a botocore client. + + :type service_name: string + :param service_name: The name of the service for which a client will + be created. You can use the ``Session.get_available_services()`` + method to get a list of all available service names. + + :type region_name: string + :param region_name: The name of the region associated with the client. + A client is associated with a single region. + + :type api_version: string + :param api_version: The API version to use. By default, botocore will + use the latest API version when creating a client. You only need + to specify this parameter if you want to use a previous API version + of the client. + + :type use_ssl: boolean + :param use_ssl: Whether or not to use SSL. By default, SSL is used. + Note that not all services support non-ssl connections. + + :type verify: boolean/string + :param verify: Whether or not to verify SSL certificates. + By default SSL certificates are verified. You can provide the + following values: + + * False - do not validate SSL certificates. SSL will still be + used (unless use_ssl is False), but SSL certificates + will not be verified. + * path/to/cert/bundle.pem - A filename of the CA cert bundle to + uses. You can specify this argument if you want to use a + different CA cert bundle than the one used by botocore. + + :type endpoint_url: string + :param endpoint_url: The complete URL to use for the constructed + client. Normally, botocore will automatically construct the + appropriate URL to use when communicating with a service. You can + specify a complete URL (including the "http/https" scheme) to + override this behavior. If this value is provided, then + ``use_ssl`` is ignored. + + :type aws_access_key_id: string + :param aws_access_key_id: The access key to use when creating + the client. This is entirely optional, and if not provided, + the credentials configured for the session will automatically + be used. You only need to provide this argument if you want + to override the credentials used for this specific client. + + :type aws_secret_access_key: string + :param aws_secret_access_key: The secret key to use when creating + the client. Same semantics as aws_access_key_id above. + + :type aws_session_token: string + :param aws_session_token: The session token to use when creating + the client. Same semantics as aws_access_key_id above. + + :type config: botocore.client.Config + :param config: Advanced client configuration options. If a value + is specified in the client config, its value will take precedence + over environment variables and configuration values, but not over + a value passed explicitly to the method. If a default config + object is set on the session, the config object used when creating + the client will be the result of calling ``merge()`` on the + default config with the config provided to this call. + + :type aws_account_id: string + :param aws_account_id: The account id to use when creating + the client. Same semantics as aws_access_key_id above. + + :rtype: botocore.client.BaseClient + :return: A botocore client instance + + """ + default_client_config = self.get_default_client_config() + # If a config is provided and a default config is set, then + # use the config resulting from merging the two. + if config is not None and default_client_config is not None: + config = default_client_config.merge(config) + # If a config was not provided then use the default + # client config from the session + elif default_client_config is not None: + config = default_client_config + + region_name = self._resolve_region_name(region_name, config) + + # Figure out the verify value base on the various + # configuration options. + if verify is None: + verify = self.get_config_variable('ca_bundle') + + if api_version is None: + api_version = self.get_config_variable('api_versions').get( + service_name, None + ) + + loader = self.get_component('data_loader') + event_emitter = self.get_component('event_emitter') + response_parser_factory = self.get_component('response_parser_factory') + if config is not None and config.signature_version is UNSIGNED: + credentials = None + elif ( + aws_access_key_id is not None and aws_secret_access_key is not None + ): + credentials = botocore.credentials.Credentials( + access_key=aws_access_key_id, + secret_key=aws_secret_access_key, + token=aws_session_token, + account_id=aws_account_id, + ) + elif self._missing_cred_vars(aws_access_key_id, aws_secret_access_key): + raise PartialCredentialsError( + provider='explicit', + cred_var=self._missing_cred_vars( + aws_access_key_id, aws_secret_access_key + ), + ) + else: + if ignored_credentials := self._get_ignored_credentials( + aws_session_token, aws_account_id + ): + logger.debug( + "Ignoring the following credential-related values which were set without " + "an access key id and secret key on the session or client: %s", + ignored_credentials, + ) + credentials = self.get_credentials() + if getattr(credentials, 'method', None) == 'explicit': + register_feature_id('CREDENTIALS_CODE') + auth_token = self.get_auth_token() + endpoint_resolver = self._get_internal_component('endpoint_resolver') + exceptions_factory = self._get_internal_component('exceptions_factory') + config_store = copy.copy(self.get_component('config_store')) + user_agent_creator = self.get_component('user_agent_creator') + # Session configuration values for the user agent string are applied + # just before each client creation because they may have been modified + # at any time between session creation and client creation. + user_agent_creator.set_session_config( + session_user_agent_name=self.user_agent_name, + session_user_agent_version=self.user_agent_version, + session_user_agent_extra=self.user_agent_extra, + ) + defaults_mode = self._resolve_defaults_mode(config, config_store) + if defaults_mode != 'legacy': + smart_defaults_factory = self._get_internal_component( + 'smart_defaults_factory' + ) + smart_defaults_factory.merge_smart_defaults( + config_store, defaults_mode, region_name + ) + + self._add_configured_endpoint_provider( + client_name=service_name, + config_store=config_store, + ) + + user_agent_creator.set_client_features(get_context().features) + + client_creator = botocore.client.ClientCreator( + loader, + endpoint_resolver, + self.user_agent(), + event_emitter, + retryhandler, + translate, + response_parser_factory, + exceptions_factory, + config_store, + user_agent_creator=user_agent_creator, + auth_token_resolver=self.get_auth_token, + ) + client = client_creator.create_client( + service_name=service_name, + region_name=region_name, + is_secure=use_ssl, + endpoint_url=endpoint_url, + verify=verify, + credentials=credentials, + scoped_config=self.get_scoped_config(), + client_config=config, + api_version=api_version, + auth_token=auth_token, + ) + monitor = self._get_internal_component('monitor') + if monitor is not None: + monitor.register(client.meta.events) + self._register_client_plugins(client) + return client + + def _resolve_region_name(self, region_name, config): + # Figure out the user-provided region based on the various + # configuration options. + if region_name is None: + if config and config.region_name is not None: + region_name = config.region_name + else: + region_name = self.get_config_variable('region') + + validate_region_name(region_name) + # For any client that we create in retrieving credentials + # we want to create it using the same region as specified in + # creating this client. It is important to note though that the + # credentials client is only created once per session. So if a new + # client is created with a different region, its credential resolver + # will use the region of the first client. However, that is not an + # issue as of now because the credential resolver uses only STS and + # the credentials returned at regional endpoints are valid across + # all regions in the partition. + self._last_client_region_used = region_name + return region_name + + def _resolve_defaults_mode(self, client_config, config_store): + mode = config_store.get_config_variable('defaults_mode') + + if client_config and client_config.defaults_mode: + mode = client_config.defaults_mode + + default_config_resolver = self._get_internal_component( + 'default_config_resolver' + ) + default_modes = default_config_resolver.get_default_modes() + lmode = mode.lower() + if lmode not in default_modes: + raise InvalidDefaultsMode( + mode=mode, valid_modes=', '.join(default_modes) + ) + + return lmode + + def _add_configured_endpoint_provider(self, client_name, config_store): + chain = ConfiguredEndpointProvider( + full_config=self.full_config, + scoped_config=self.get_scoped_config(), + client_name=client_name, + ) + config_store.set_config_provider( + logical_name='endpoint_url', + provider=chain, + ) + + def _missing_cred_vars(self, access_key, secret_key): + if access_key is not None and secret_key is None: + return 'aws_secret_access_key' + if secret_key is not None and access_key is None: + return 'aws_access_key_id' + return None + + def get_available_partitions(self): + """Lists the available partitions found on disk + + :rtype: list + :return: Returns a list of partition names (e.g., ["aws", "aws-cn"]) + """ + resolver = self._get_internal_component('endpoint_resolver') + return resolver.get_available_partitions() + + def get_partition_for_region(self, region_name): + """Lists the partition name of a particular region. + + :type region_name: string + :param region_name: Name of the region to list partition for (e.g., + us-east-1). + + :rtype: string + :return: Returns the respective partition name (e.g., aws). + """ + resolver = self._get_internal_component('endpoint_resolver') + return resolver.get_partition_for_region(region_name) + + def get_available_regions( + self, service_name, partition_name='aws', allow_non_regional=False + ): + """Lists the region and endpoint names of a particular partition. + + :type service_name: string + :param service_name: Name of a service to list endpoint for (e.g., s3). + This parameter accepts a service name (e.g., "elb") or endpoint + prefix (e.g., "elasticloadbalancing"). + + :type partition_name: string + :param partition_name: Name of the partition to limit endpoints to. + (e.g., aws for the public AWS endpoints, aws-cn for AWS China + endpoints, aws-us-gov for AWS GovCloud (US) Endpoints, etc. + + :type allow_non_regional: bool + :param allow_non_regional: Set to True to include endpoints that are + not regional endpoints (e.g., s3-external-1, + fips-us-gov-west-1, etc). + :return: Returns a list of endpoint names (e.g., ["us-east-1"]). + """ + resolver = self._get_internal_component('endpoint_resolver') + results = [] + try: + service_data = self.get_service_data(service_name) + endpoint_prefix = service_data['metadata'].get( + 'endpointPrefix', service_name + ) + results = resolver.get_available_endpoints( + endpoint_prefix, partition_name, allow_non_regional + ) + except UnknownServiceError: + pass + return results + + def _get_ignored_credentials(self, aws_session_token, aws_account_id): + credential_inputs = [] + if aws_session_token: + credential_inputs.append('aws_session_token') + if aws_account_id: + credential_inputs.append('aws_account_id') + return ', '.join(credential_inputs) if credential_inputs else None + + def _register_client_plugins(self, client): + plugins_list = get_botocore_plugins() + if plugins_list == "DISABLED" or not plugins_list: + return + + client_plugins = {} + for plugin in plugins_list.split(','): + try: + name, module = [part.strip() for part in plugin.split('=')] + client_plugins[name] = module + except ValueError: + logger.warning( + "Invalid plugin format: %s. Expected 'name=module'", plugin + ) + + if client_plugins: + load_client_plugins(client, client_plugins) + + +class ComponentLocator: + """Service locator for session components.""" + + def __init__(self): + self._components = {} + self._deferred = {} + + def get_component(self, name): + if name in self._deferred: + factory = self._deferred[name] + self._components[name] = factory() + # Only delete the component from the deferred dict after + # successfully creating the object from the factory as well as + # injecting the instantiated value into the _components dict. + try: + del self._deferred[name] + except KeyError: + # If we get here, it's likely that get_component was called + # concurrently from multiple threads, and another thread + # already deleted the entry. This means the factory was + # probably called twice, but cleaning up the deferred entry + # should not crash outright. + pass + try: + return self._components[name] + except KeyError: + raise ValueError(f"Unknown component: {name}") + + def register_component(self, name, component): + self._components[name] = component + try: + del self._deferred[name] + except KeyError: + pass + + def lazy_register_component(self, name, no_arg_factory): + self._deferred[name] = no_arg_factory + try: + del self._components[name] + except KeyError: + pass + + +class SessionVarDict(MutableMapping): + def __init__(self, session, session_vars): + self._session = session + self._store = copy.copy(session_vars) + + def __getitem__(self, key): + return self._store[key] + + def __setitem__(self, key, value): + self._store[key] = value + self._update_config_store_from_session_vars(key, value) + + def __delitem__(self, key): + del self._store[key] + + def __iter__(self): + return iter(self._store) + + def __len__(self): + return len(self._store) + + def _update_config_store_from_session_vars( + self, logical_name, config_options + ): + # This is for backwards compatibility. The new preferred way to + # modify configuration logic is to use the component system to get + # the config_store component from the session, and then update + # a key with a custom config provider(s). + # This backwards compatibility method takes the old session_vars + # list of tuples and and transforms that into a set of updates to + # the config_store component. + config_chain_builder = ConfigChainFactory(session=self._session) + config_name, env_vars, default, typecast = config_options + config_store = self._session.get_component('config_store') + config_store.set_config_provider( + logical_name, + config_chain_builder.create_config_chain( + instance_name=logical_name, + env_var_names=env_vars, + config_property_names=config_name, + default=default, + conversion_func=typecast, + ), + ) + + +class SubsetChainConfigFactory: + """A class for creating backwards compatible configuration chains. + + This class can be used instead of + :class:`botocore.configprovider.ConfigChainFactory` to make it honor the + methods argument to get_config_variable. This class can be used to filter + out providers that are not in the methods tuple when creating a new config + chain. + """ + + def __init__(self, session, methods, environ=None): + self._factory = ConfigChainFactory(session, environ) + self._supported_methods = methods + + def create_config_chain( + self, + instance_name=None, + env_var_names=None, + config_property_name=None, + default=None, + conversion_func=None, + ): + """Build a config chain following the standard botocore pattern. + + This config chain factory will omit any providers not in the methods + tuple provided at initialization. For example if given the tuple + ('instance', 'config',) it will not inject the environment provider + into the standard config chain. This lets the botocore session support + the custom ``methods`` argument for all the default botocore config + variables when calling ``get_config_variable``. + """ + if 'instance' not in self._supported_methods: + instance_name = None + if 'env' not in self._supported_methods: + env_var_names = None + if 'config' not in self._supported_methods: + config_property_name = None + return self._factory.create_config_chain( + instance_name=instance_name, + env_var_names=env_var_names, + config_property_names=config_property_name, + default=default, + conversion_func=conversion_func, + ) + + +def get_session(env_vars=None): + """ + Return a new session object. + """ + return Session(env_vars) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/signers.py b/rep_localstack/lib/python3.12/site-packages/botocore/signers.py new file mode 100644 index 000000000..1002d4752 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/signers.py @@ -0,0 +1,996 @@ +# Copyright 2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import base64 +import datetime +import json +import weakref + +import botocore +import botocore.auth +from botocore.awsrequest import create_request_object, prepare_request_dict +from botocore.compat import OrderedDict, get_current_datetime +from botocore.exceptions import ( + ParamValidationError, + UnknownClientMethodError, + UnknownSignatureVersionError, + UnsupportedSignatureVersionError, +) +from botocore.tokens import FrozenAuthToken +from botocore.utils import ( + ArnParser, + datetime2timestamp, + fix_s3_host, # noqa: F401 +) + + +class RequestSigner: + """ + An object to sign requests before they go out over the wire using + one of the authentication mechanisms defined in ``auth.py``. This + class fires two events scoped to a service and operation name: + + * choose-signer: Allows overriding the auth signer name. + * before-sign: Allows mutating the request before signing. + + Together these events allow for customization of the request + signing pipeline, including overrides, request path manipulation, + and disabling signing per operation. + + + :type service_id: botocore.model.ServiceId + :param service_id: The service id for the service, e.g. ``S3`` + + :type region_name: string + :param region_name: Name of the service region, e.g. ``us-east-1`` + + :type signing_name: string + :param signing_name: Service signing name. This is usually the + same as the service name, but can differ. E.g. + ``emr`` vs. ``elasticmapreduce``. + + :type signature_version: string + :param signature_version: Signature name like ``v4``. + + :type credentials: :py:class:`~botocore.credentials.Credentials` + :param credentials: User credentials with which to sign requests. + + :type event_emitter: :py:class:`~botocore.hooks.BaseEventHooks` + :param event_emitter: Extension mechanism to fire events. + """ + + def __init__( + self, + service_id, + region_name, + signing_name, + signature_version, + credentials, + event_emitter, + auth_token=None, + ): + self._region_name = region_name + self._signing_name = signing_name + self._signature_version = signature_version + self._credentials = credentials + self._auth_token = auth_token + self._service_id = service_id + + # We need weakref to prevent leaking memory in Python 2.6 on Linux 2.6 + self._event_emitter = weakref.proxy(event_emitter) + + @property + def region_name(self): + return self._region_name + + @property + def signature_version(self): + return self._signature_version + + @property + def signing_name(self): + return self._signing_name + + def handler(self, operation_name=None, request=None, **kwargs): + # This is typically hooked up to the "request-created" event + # from a client's event emitter. When a new request is created + # this method is invoked to sign the request. + # Don't call this method directly. + return self.sign(operation_name, request) + + def sign( + self, + operation_name, + request, + region_name=None, + signing_type='standard', + expires_in=None, + signing_name=None, + ): + """Sign a request before it goes out over the wire. + + :type operation_name: string + :param operation_name: The name of the current operation, e.g. + ``ListBuckets``. + :type request: AWSRequest + :param request: The request object to be sent over the wire. + + :type region_name: str + :param region_name: The region to sign the request for. + + :type signing_type: str + :param signing_type: The type of signing to perform. This can be one of + three possible values: + + * 'standard' - This should be used for most requests. + * 'presign-url' - This should be used when pre-signing a request. + * 'presign-post' - This should be used when pre-signing an S3 post. + + :type expires_in: int + :param expires_in: The number of seconds the presigned url is valid + for. This parameter is only valid for signing type 'presign-url'. + + :type signing_name: str + :param signing_name: The name to use for the service when signing. + """ + explicit_region_name = region_name + if region_name is None: + region_name = self._region_name + + if signing_name is None: + signing_name = self._signing_name + + signature_version = self._choose_signer( + operation_name, signing_type, request.context + ) + + # Allow mutating request before signing + self._event_emitter.emit( + f'before-sign.{self._service_id.hyphenize()}.{operation_name}', + request=request, + signing_name=signing_name, + region_name=self._region_name, + signature_version=signature_version, + request_signer=self, + operation_name=operation_name, + ) + + if signature_version != botocore.UNSIGNED: + kwargs = { + 'signing_name': signing_name, + 'region_name': region_name, + 'signature_version': signature_version, + } + if expires_in is not None: + kwargs['expires'] = expires_in + signing_context = request.context.get('signing', {}) + if not explicit_region_name and signing_context.get('region'): + kwargs['region_name'] = signing_context['region'] + if signing_context.get('signing_name'): + kwargs['signing_name'] = signing_context['signing_name'] + if signing_context.get('request_credentials'): + kwargs['request_credentials'] = signing_context[ + 'request_credentials' + ] + if signing_context.get('identity_cache') is not None: + self._resolve_identity_cache( + kwargs, + signing_context['identity_cache'], + signing_context['cache_key'], + ) + try: + auth = self.get_auth_instance(**kwargs) + except UnknownSignatureVersionError as e: + if signing_type != 'standard': + raise UnsupportedSignatureVersionError( + signature_version=signature_version + ) + else: + raise e + + auth.add_auth(request) + + def _resolve_identity_cache(self, kwargs, cache, cache_key): + kwargs['identity_cache'] = cache + kwargs['cache_key'] = cache_key + + def _choose_signer(self, operation_name, signing_type, context): + """ + Allow setting the signature version via the choose-signer event. + A value of `botocore.UNSIGNED` means no signing will be performed. + + :param operation_name: The operation to sign. + :param signing_type: The type of signing that the signer is to be used + for. + :return: The signature version to sign with. + """ + signing_type_suffix_map = { + 'presign-post': '-presign-post', + 'presign-url': '-query', + } + suffix = signing_type_suffix_map.get(signing_type, '') + + # operation specific signing context takes precedent over client-level + # defaults + signature_version = context.get('auth_type') or self._signature_version + signing = context.get('signing', {}) + signing_name = signing.get('signing_name', self._signing_name) + region_name = signing.get('region', self._region_name) + if ( + signature_version is not botocore.UNSIGNED + and not signature_version.endswith(suffix) + ): + signature_version += suffix + + handler, response = self._event_emitter.emit_until_response( + f'choose-signer.{self._service_id.hyphenize()}.{operation_name}', + signing_name=signing_name, + region_name=region_name, + signature_version=signature_version, + context=context, + ) + + if response is not None: + signature_version = response + # The suffix needs to be checked again in case we get an improper + # signature version from choose-signer. + if ( + signature_version is not botocore.UNSIGNED + and not signature_version.endswith(suffix) + ): + signature_version += suffix + + return signature_version + + def get_auth_instance( + self, + signing_name, + region_name, + signature_version=None, + request_credentials=None, + **kwargs, + ): + """ + Get an auth instance which can be used to sign a request + using the given signature version. + + :type signing_name: string + :param signing_name: Service signing name. This is usually the + same as the service name, but can differ. E.g. + ``emr`` vs. ``elasticmapreduce``. + + :type region_name: string + :param region_name: Name of the service region, e.g. ``us-east-1`` + + :type signature_version: string + :param signature_version: Signature name like ``v4``. + + :rtype: :py:class:`~botocore.auth.BaseSigner` + :return: Auth instance to sign a request. + """ + if signature_version is None: + signature_version = self._signature_version + + cls = botocore.auth.AUTH_TYPE_MAPS.get(signature_version) + if cls is None: + raise UnknownSignatureVersionError( + signature_version=signature_version + ) + + if cls.REQUIRES_TOKEN is True: + if self._auth_token and not isinstance( + self._auth_token, FrozenAuthToken + ): + frozen_token = self._auth_token.get_frozen_token() + else: + frozen_token = self._auth_token + auth = cls(frozen_token) + return auth + + credentials = request_credentials or self._credentials + if getattr(cls, "REQUIRES_IDENTITY_CACHE", None) is True: + cache = kwargs["identity_cache"] + key = kwargs["cache_key"] + credentials = cache.get_credentials(key) + del kwargs["cache_key"] + + # If there's no credentials provided (i.e credentials is None), + # then we'll pass a value of "None" over to the auth classes, + # which already handle the cases where no credentials have + # been provided. + frozen_credentials = None + if credentials is not None: + frozen_credentials = credentials.get_frozen_credentials() + kwargs['credentials'] = frozen_credentials + if cls.REQUIRES_REGION: + if self._region_name is None: + raise botocore.exceptions.NoRegionError() + kwargs['region_name'] = region_name + kwargs['service_name'] = signing_name + auth = cls(**kwargs) + return auth + + # Alias get_auth for backwards compatibility. + get_auth = get_auth_instance + + def generate_presigned_url( + self, + request_dict, + operation_name, + expires_in=3600, + region_name=None, + signing_name=None, + ): + """Generates a presigned url + + :type request_dict: dict + :param request_dict: The prepared request dictionary returned by + ``botocore.awsrequest.prepare_request_dict()`` + + :type operation_name: str + :param operation_name: The operation being signed. + + :type expires_in: int + :param expires_in: The number of seconds the presigned url is valid + for. By default it expires in an hour (3600 seconds) + + :type region_name: string + :param region_name: The region name to sign the presigned url. + + :type signing_name: str + :param signing_name: The name to use for the service when signing. + + :returns: The presigned url + """ + request = create_request_object(request_dict) + self.sign( + operation_name, + request, + region_name, + 'presign-url', + expires_in, + signing_name, + ) + + request.prepare() + return request.url + + +class CloudFrontSigner: + '''A signer to create a signed CloudFront URL. + + First you create a cloudfront signer based on a normalized RSA signer:: + + import rsa + def rsa_signer(message): + private_key = open('private_key.pem', 'r').read() + return rsa.sign( + message, + rsa.PrivateKey.load_pkcs1(private_key.encode('utf8')), + 'SHA-1') # CloudFront requires SHA-1 hash + cf_signer = CloudFrontSigner(key_id, rsa_signer) + + To sign with a canned policy:: + + signed_url = cf_signer.generate_signed_url( + url, date_less_than=datetime(2015, 12, 1)) + + To sign with a custom policy:: + + signed_url = cf_signer.generate_signed_url(url, policy=my_policy) + ''' + + def __init__(self, key_id, rsa_signer): + """Create a CloudFrontSigner. + + :type key_id: str + :param key_id: The CloudFront Key Pair ID + + :type rsa_signer: callable + :param rsa_signer: An RSA signer. + Its only input parameter will be the message to be signed, + and its output will be the signed content as a binary string. + The hash algorithm needed by CloudFront is SHA-1. + """ + self.key_id = key_id + self.rsa_signer = rsa_signer + + def generate_presigned_url(self, url, date_less_than=None, policy=None): + """Creates a signed CloudFront URL based on given parameters. + + :type url: str + :param url: The URL of the protected object + + :type date_less_than: datetime + :param date_less_than: The URL will expire after that date and time + + :type policy: str + :param policy: The custom policy, possibly built by self.build_policy() + + :rtype: str + :return: The signed URL. + """ + both_args_supplied = date_less_than is not None and policy is not None + neither_arg_supplied = date_less_than is None and policy is None + if both_args_supplied or neither_arg_supplied: + e = 'Need to provide either date_less_than or policy, but not both' + raise ValueError(e) + if date_less_than is not None: + # We still need to build a canned policy for signing purpose + policy = self.build_policy(url, date_less_than) + if isinstance(policy, str): + policy = policy.encode('utf8') + if date_less_than is not None: + params = [f'Expires={int(datetime2timestamp(date_less_than))}'] + else: + params = [f"Policy={self._url_b64encode(policy).decode('utf8')}"] + signature = self.rsa_signer(policy) + params.extend( + [ + f"Signature={self._url_b64encode(signature).decode('utf8')}", + f"Key-Pair-Id={self.key_id}", + ] + ) + return self._build_url(url, params) + + def _build_url(self, base_url, extra_params): + separator = '&' if '?' in base_url else '?' + return base_url + separator + '&'.join(extra_params) + + def build_policy( + self, resource, date_less_than, date_greater_than=None, ip_address=None + ): + """A helper to build policy. + + :type resource: str + :param resource: The URL or the stream filename of the protected object + + :type date_less_than: datetime + :param date_less_than: The URL will expire after the time has passed + + :type date_greater_than: datetime + :param date_greater_than: The URL will not be valid until this time + + :type ip_address: str + :param ip_address: Use 'x.x.x.x' for an IP, or 'x.x.x.x/x' for a subnet + + :rtype: str + :return: The policy in a compact string. + """ + # Note: + # 1. Order in canned policy is significant. Special care has been taken + # to ensure the output will match the order defined by the document. + # There is also a test case to ensure that order. + # SEE: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-canned-policy.html#private-content-canned-policy-creating-policy-statement + # 2. Albeit the order in custom policy is not required by CloudFront, + # we still use OrderedDict internally to ensure the result is stable + # and also matches canned policy requirement. + # SEE: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html + moment = int(datetime2timestamp(date_less_than)) + condition = OrderedDict({"DateLessThan": {"AWS:EpochTime": moment}}) + if ip_address: + if '/' not in ip_address: + ip_address += '/32' + condition["IpAddress"] = {"AWS:SourceIp": ip_address} + if date_greater_than: + moment = int(datetime2timestamp(date_greater_than)) + condition["DateGreaterThan"] = {"AWS:EpochTime": moment} + ordered_payload = [('Resource', resource), ('Condition', condition)] + custom_policy = {"Statement": [OrderedDict(ordered_payload)]} + return json.dumps(custom_policy, separators=(',', ':')) + + def _url_b64encode(self, data): + # Required by CloudFront. See also: + # http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-linux-openssl.html + return ( + base64.b64encode(data) + .replace(b'+', b'-') + .replace(b'=', b'_') + .replace(b'/', b'~') + ) + + +def add_generate_db_auth_token(class_attributes, **kwargs): + class_attributes['generate_db_auth_token'] = generate_db_auth_token + + +def add_dsql_generate_db_auth_token_methods(class_attributes, **kwargs): + class_attributes['generate_db_connect_auth_token'] = ( + dsql_generate_db_connect_auth_token + ) + class_attributes['generate_db_connect_admin_auth_token'] = ( + dsql_generate_db_connect_admin_auth_token + ) + + +def generate_db_auth_token(self, DBHostname, Port, DBUsername, Region=None): + """Generates an auth token used to connect to a db with IAM credentials. + + :type DBHostname: str + :param DBHostname: The hostname of the database to connect to. + + :type Port: int + :param Port: The port number the database is listening on. + + :type DBUsername: str + :param DBUsername: The username to log in as. + + :type Region: str + :param Region: The region the database is in. If None, the client + region will be used. + + :return: A presigned url which can be used as an auth token. + """ + region = Region + if region is None: + region = self.meta.region_name + + params = { + 'Action': 'connect', + 'DBUser': DBUsername, + } + + request_dict = { + 'url_path': '/', + 'query_string': '', + 'headers': {}, + 'body': params, + 'method': 'GET', + } + + # RDS requires that the scheme not be set when sent over. This can cause + # issues when signing because the Python url parsing libraries follow + # RFC 1808 closely, which states that a netloc must be introduced by `//`. + # Otherwise the url is presumed to be relative, and thus the whole + # netloc would be treated as a path component. To work around this we + # introduce https here and remove it once we're done processing it. + scheme = 'https://' + endpoint_url = f'{scheme}{DBHostname}:{Port}' + prepare_request_dict(request_dict, endpoint_url) + presigned_url = self._request_signer.generate_presigned_url( + operation_name='connect', + request_dict=request_dict, + region_name=region, + expires_in=900, + signing_name='rds-db', + ) + return presigned_url[len(scheme) :] + + +def _dsql_generate_db_auth_token( + self, Hostname, Action, Region=None, ExpiresIn=900 +): + """Generate a DSQL database token for an arbitrary action. + + :type Hostname: str + :param Hostname: The DSQL endpoint host name. + + :type Action: str + :param Action: Action to perform on the cluster (DbConnectAdmin or DbConnect). + + :type Region: str + :param Region: The AWS region where the DSQL Cluster is hosted. If None, the client region will be used. + + :type ExpiresIn: int + :param ExpiresIn: The token expiry duration in seconds (default is 900 seconds). + + :return: A presigned url which can be used as an auth token. + """ + possible_actions = ("DbConnect", "DbConnectAdmin") + + if Action not in possible_actions: + raise ParamValidationError( + report=f"Received {Action} for action but expected one of: {', '.join(possible_actions)}" + ) + + if Region is None: + Region = self.meta.region_name + + request_dict = { + 'url_path': '/', + 'query_string': '', + 'headers': {}, + 'body': { + 'Action': Action, + }, + 'method': 'GET', + } + scheme = 'https://' + endpoint_url = f'{scheme}{Hostname}' + prepare_request_dict(request_dict, endpoint_url) + presigned_url = self._request_signer.generate_presigned_url( + operation_name=Action, + request_dict=request_dict, + region_name=Region, + expires_in=ExpiresIn, + signing_name='dsql', + ) + return presigned_url[len(scheme) :] + + +def dsql_generate_db_connect_auth_token( + self, Hostname, Region=None, ExpiresIn=900 +): + """Generate a DSQL database token for the "DbConnect" action. + + :type Hostname: str + :param Hostname: The DSQL endpoint host name. + + :type Region: str + :param Region: The AWS region where the DSQL Cluster is hosted. If None, the client region will be used. + + :type ExpiresIn: int + :param ExpiresIn: The token expiry duration in seconds (default is 900 seconds). + + :return: A presigned url which can be used as an auth token. + """ + return _dsql_generate_db_auth_token( + self, Hostname, "DbConnect", Region, ExpiresIn + ) + + +def dsql_generate_db_connect_admin_auth_token( + self, Hostname, Region=None, ExpiresIn=900 +): + """Generate a DSQL database token for the "DbConnectAdmin" action. + + :type Hostname: str + :param Hostname: The DSQL endpoint host name. + + :type Region: str + :param Region: The AWS region where the DSQL Cluster is hosted. If None, the client region will be used. + + :type ExpiresIn: int + :param ExpiresIn: The token expiry duration in seconds (default is 900 seconds). + + :return: A presigned url which can be used as an auth token. + """ + return _dsql_generate_db_auth_token( + self, Hostname, "DbConnectAdmin", Region, ExpiresIn + ) + + +class S3PostPresigner: + def __init__(self, request_signer): + self._request_signer = request_signer + + def generate_presigned_post( + self, + request_dict, + fields=None, + conditions=None, + expires_in=3600, + region_name=None, + ): + """Generates the url and the form fields used for a presigned s3 post + + :type request_dict: dict + :param request_dict: The prepared request dictionary returned by + ``botocore.awsrequest.prepare_request_dict()`` + + :type fields: dict + :param fields: A dictionary of prefilled form fields to build on top + of. + + :type conditions: list + :param conditions: A list of conditions to include in the policy. Each + element can be either a list or a structure. For example: + + .. code:: python + + [ + {"acl": "public-read"}, + {"bucket": "amzn-s3-demo-bucket"}, + ["starts-with", "$key", "mykey"] + ] + + :type expires_in: int + :param expires_in: The number of seconds the presigned post is valid + for. + + :type region_name: string + :param region_name: The region name to sign the presigned post to. + + :rtype: dict + :returns: A dictionary with two elements: ``url`` and ``fields``. + Url is the url to post to. Fields is a dictionary filled with + the form fields and respective values to use when submitting the + post. For example: + + .. code:: python + + { + 'url': 'https://amzn-s3-demo-bucket.s3.amazonaws.com', + 'fields': { + 'acl': 'public-read', + 'key': 'mykey', + 'signature': 'mysignature', + 'policy': 'mybase64 encoded policy' + } + } + """ + if fields is None: + fields = {} + + if conditions is None: + conditions = [] + + # Create the policy for the post. + policy = {} + + # Create an expiration date for the policy + datetime_now = get_current_datetime() + expire_date = datetime_now + datetime.timedelta(seconds=expires_in) + policy['expiration'] = expire_date.strftime(botocore.auth.ISO8601) + + # Append all of the conditions that the user supplied. + policy['conditions'] = [] + for condition in conditions: + policy['conditions'].append(condition) + + # Store the policy and the fields in the request for signing + request = create_request_object(request_dict) + request.context['s3-presign-post-fields'] = fields + request.context['s3-presign-post-policy'] = policy + + self._request_signer.sign( + 'PutObject', request, region_name, 'presign-post' + ) + # Return the url and the fields for th form to post. + return {'url': request.url, 'fields': fields} + + +def add_generate_presigned_url(class_attributes, **kwargs): + class_attributes['generate_presigned_url'] = generate_presigned_url + + +def generate_presigned_url( + self, ClientMethod, Params=None, ExpiresIn=3600, HttpMethod=None +): + """Generate a presigned url given a client, its method, and arguments + + :type ClientMethod: string + :param ClientMethod: The client method to presign for + + :type Params: dict + :param Params: The parameters normally passed to + ``ClientMethod``. + + :type ExpiresIn: int + :param ExpiresIn: The number of seconds the presigned url is valid + for. By default it expires in an hour (3600 seconds) + + :type HttpMethod: string + :param HttpMethod: The http method to use on the generated url. By + default, the http method is whatever is used in the method's model. + + :returns: The presigned url + """ + client_method = ClientMethod + params = Params + if params is None: + params = {} + expires_in = ExpiresIn + http_method = HttpMethod + context = { + 'is_presign_request': True, + 'use_global_endpoint': _should_use_global_endpoint(self), + } + + request_signer = self._request_signer + + try: + operation_name = self._PY_TO_OP_NAME[client_method] + except KeyError: + raise UnknownClientMethodError(method_name=client_method) + + operation_model = self.meta.service_model.operation_model(operation_name) + params = self._emit_api_params( + api_params=params, + operation_model=operation_model, + context=context, + ) + bucket_is_arn = ArnParser.is_arn(params.get('Bucket', '')) + ( + endpoint_url, + additional_headers, + properties, + ) = self._resolve_endpoint_ruleset( + operation_model, + params, + context, + ignore_signing_region=(not bucket_is_arn), + ) + + request_dict = self._convert_to_request_dict( + api_params=params, + operation_model=operation_model, + endpoint_url=endpoint_url, + context=context, + headers=additional_headers, + set_user_agent_header=False, + ) + + # Switch out the http method if user specified it. + if http_method is not None: + request_dict['method'] = http_method + + # Generate the presigned url. + return request_signer.generate_presigned_url( + request_dict=request_dict, + expires_in=expires_in, + operation_name=operation_name, + ) + + +def add_generate_presigned_post(class_attributes, **kwargs): + class_attributes['generate_presigned_post'] = generate_presigned_post + + +def generate_presigned_post( + self, Bucket, Key, Fields=None, Conditions=None, ExpiresIn=3600 +): + """Builds the url and the form fields used for a presigned s3 post + + :type Bucket: string + :param Bucket: The name of the bucket to presign the post to. Note that + bucket related conditions should not be included in the + ``conditions`` parameter. + + :type Key: string + :param Key: Key name, optionally add ${filename} to the end to + attach the submitted filename. Note that key related conditions and + fields are filled out for you and should not be included in the + ``Fields`` or ``Conditions`` parameter. + + :type Fields: dict + :param Fields: A dictionary of prefilled form fields to build on top + of. Elements that may be included are acl, Cache-Control, + Content-Type, Content-Disposition, Content-Encoding, Expires, + success_action_redirect, redirect, success_action_status, + and x-amz-meta-. + + Note that if a particular element is included in the fields + dictionary it will not be automatically added to the conditions + list. You must specify a condition for the element as well. + + :type Conditions: list + :param Conditions: A list of conditions to include in the policy. Each + element can be either a list or a structure. For example: + + .. code:: python + + [ + {"acl": "public-read"}, + ["content-length-range", 2, 5], + ["starts-with", "$success_action_redirect", ""] + ] + + Conditions that are included may pertain to acl, + content-length-range, Cache-Control, Content-Type, + Content-Disposition, Content-Encoding, Expires, + success_action_redirect, redirect, success_action_status, + and/or x-amz-meta-. + + Note that if you include a condition, you must specify + a valid value in the fields dictionary as well. A value will + not be added automatically to the fields dictionary based on the + conditions. + + :type ExpiresIn: int + :param ExpiresIn: The number of seconds the presigned post + is valid for. + + :rtype: dict + :returns: A dictionary with two elements: ``url`` and ``fields``. + Url is the url to post to. Fields is a dictionary filled with + the form fields and respective values to use when submitting the + post. For example: + + .. code:: python + + { + 'url': 'https://amzn-s3-demo-bucket.s3.amazonaws.com', + 'fields': { + 'acl': 'public-read', + 'key': 'mykey', + 'signature': 'mysignature', + 'policy': 'mybase64 encoded policy' + } + } + """ + bucket = Bucket + key = Key + fields = Fields + conditions = Conditions + expires_in = ExpiresIn + + if fields is None: + fields = {} + else: + fields = fields.copy() + + if conditions is None: + conditions = [] + + context = { + 'is_presign_request': True, + 'use_global_endpoint': _should_use_global_endpoint(self), + } + + post_presigner = S3PostPresigner(self._request_signer) + + # We choose the CreateBucket operation model because its url gets + # serialized to what a presign post requires. + operation_model = self.meta.service_model.operation_model('CreateBucket') + params = self._emit_api_params( + api_params={'Bucket': bucket}, + operation_model=operation_model, + context=context, + ) + bucket_is_arn = ArnParser.is_arn(params.get('Bucket', '')) + ( + endpoint_url, + additional_headers, + properties, + ) = self._resolve_endpoint_ruleset( + operation_model, + params, + context, + ignore_signing_region=(not bucket_is_arn), + ) + + request_dict = self._convert_to_request_dict( + api_params=params, + operation_model=operation_model, + endpoint_url=endpoint_url, + context=context, + headers=additional_headers, + set_user_agent_header=False, + ) + + # Append that the bucket name to the list of conditions. + conditions.append({'bucket': bucket}) + + # If the key ends with filename, the only constraint that can be + # imposed is if it starts with the specified prefix. + if key.endswith('${filename}'): + conditions.append(["starts-with", '$key', key[: -len('${filename}')]]) + else: + conditions.append({'key': key}) + + # Add the key to the fields. + fields['key'] = key + + return post_presigner.generate_presigned_post( + request_dict=request_dict, + fields=fields, + conditions=conditions, + expires_in=expires_in, + ) + + +def _should_use_global_endpoint(client): + if client.meta.partition != 'aws': + return False + s3_config = client.meta.config.s3 + if s3_config: + if s3_config.get('use_dualstack_endpoint', False): + return False + if ( + s3_config.get('us_east_1_regional_endpoint') == 'regional' + and client.meta.config.region_name == 'us-east-1' + ): + return False + if s3_config.get('addressing_style') == 'virtual': + return False + return True diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/stub.py b/rep_localstack/lib/python3.12/site-packages/botocore/stub.py new file mode 100644 index 000000000..d85294a7f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/stub.py @@ -0,0 +1,452 @@ +# Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import copy +from collections import deque +from pprint import pformat + +from botocore.awsrequest import AWSResponse +from botocore.exceptions import ( + ParamValidationError, + StubAssertionError, + StubResponseError, + UnStubbedResponseError, +) +from botocore.validate import validate_parameters + + +class _ANY: + """ + A helper object that compares equal to everything. Copied from + unittest.mock + """ + + def __eq__(self, other): + return True + + def __ne__(self, other): + return False + + def __repr__(self): + return '' + + +ANY = _ANY() + + +class Stubber: + """ + This class will allow you to stub out requests so you don't have to hit + an endpoint to write tests. Responses are returned first in, first out. + If operations are called out of order, or are called with no remaining + queued responses, an error will be raised. + + **Example:** + :: + import datetime + import botocore.session + from botocore.stub import Stubber + + + s3 = botocore.session.get_session().create_client('s3') + stubber = Stubber(s3) + + response = { + 'IsTruncated': False, + 'Name': 'test-bucket', + 'MaxKeys': 1000, 'Prefix': '', + 'Contents': [{ + 'Key': 'test.txt', + 'ETag': '"abc123"', + 'StorageClass': 'STANDARD', + 'LastModified': datetime.datetime(2016, 1, 20, 22, 9), + 'Owner': {'ID': 'abc123', 'DisplayName': 'myname'}, + 'Size': 14814 + }], + 'EncodingType': 'url', + 'ResponseMetadata': { + 'RequestId': 'abc123', + 'HTTPStatusCode': 200, + 'HostId': 'abc123' + }, + 'Marker': '' + } + + expected_params = {'Bucket': 'test-bucket'} + + stubber.add_response('list_objects', response, expected_params) + stubber.activate() + + service_response = s3.list_objects(Bucket='test-bucket') + assert service_response == response + + + This class can also be called as a context manager, which will handle + activation / deactivation for you. + + **Example:** + :: + import datetime + import botocore.session + from botocore.stub import Stubber + + + s3 = botocore.session.get_session().create_client('s3') + + response = { + "Owner": { + "ID": "foo", + "DisplayName": "bar" + }, + "Buckets": [{ + "CreationDate": datetime.datetime(2016, 1, 20, 22, 9), + "Name": "baz" + }] + } + + + with Stubber(s3) as stubber: + stubber.add_response('list_buckets', response, {}) + service_response = s3.list_buckets() + + assert service_response == response + + + If you have an input parameter that is a randomly generated value, or you + otherwise don't care about its value, you can use ``stub.ANY`` to ignore + it in validation. + + **Example:** + :: + import datetime + import botocore.session + from botocore.stub import Stubber, ANY + + + s3 = botocore.session.get_session().create_client('s3') + stubber = Stubber(s3) + + response = { + 'IsTruncated': False, + 'Name': 'test-bucket', + 'MaxKeys': 1000, 'Prefix': '', + 'Contents': [{ + 'Key': 'test.txt', + 'ETag': '"abc123"', + 'StorageClass': 'STANDARD', + 'LastModified': datetime.datetime(2016, 1, 20, 22, 9), + 'Owner': {'ID': 'abc123', 'DisplayName': 'myname'}, + 'Size': 14814 + }], + 'EncodingType': 'url', + 'ResponseMetadata': { + 'RequestId': 'abc123', + 'HTTPStatusCode': 200, + 'HostId': 'abc123' + }, + 'Marker': '' + } + + expected_params = {'Bucket': ANY} + stubber.add_response('list_objects', response, expected_params) + + with stubber: + service_response = s3.list_objects(Bucket='test-bucket') + + assert service_response == response + """ + + def __init__(self, client): + """ + :param client: The client to add your stubs to. + """ + self.client = client + self._event_id = 'boto_stubber' + self._expected_params_event_id = 'boto_stubber_expected_params' + self._stub_account_id_event_id = 'boto_stubber_stub_account_id' + self._queue = deque() + + def __enter__(self): + self.activate() + return self + + def __exit__(self, exception_type, exception_value, traceback): + self.deactivate() + + def activate(self): + """ + Activates the stubber on the client + """ + self.client.meta.events.register_first( + 'before-parameter-build.*.*', + self._assert_expected_params, + unique_id=self._expected_params_event_id, + ) + self.client.meta.events.register( + 'before-call.*.*', + self._get_response_handler, + unique_id=self._event_id, + ) + self.client.meta.events.register( + 'before-endpoint-resolution.*', + self._set_account_id_for_endpoint_resolution, + unique_id=self._stub_account_id_event_id, + ) + + def deactivate(self): + """ + Deactivates the stubber on the client + """ + self.client.meta.events.unregister( + 'before-parameter-build.*.*', + self._assert_expected_params, + unique_id=self._expected_params_event_id, + ) + self.client.meta.events.unregister( + 'before-call.*.*', + self._get_response_handler, + unique_id=self._event_id, + ) + self.client.meta.events.unregister( + 'before-endpoint-resolution.*', + self._stub_account_id_event_id, + unique_id=self._stub_account_id_event_id, + ) + + def add_response(self, method, service_response, expected_params=None): + """ + Adds a service response to the response queue. This will be validated + against the service model to ensure correctness. It should be noted, + however, that while missing attributes are often considered correct, + your code may not function properly if you leave them out. Therefore + you should always fill in every value you see in a typical response for + your particular request. + + :param method: The name of the client method to stub. + :type method: str + + :param service_response: A dict response stub. Provided parameters will + be validated against the service model. + :type service_response: dict + + :param expected_params: A dictionary of the expected parameters to + be called for the provided service response. The parameters match + the names of keyword arguments passed to that client call. If + any of the parameters differ a ``StubResponseError`` is thrown. + You can use stub.ANY to indicate a particular parameter to ignore + in validation. stub.ANY is only valid for top level params. + """ + self._add_response(method, service_response, expected_params) + + def _add_response(self, method, service_response, expected_params): + if not hasattr(self.client, method): + raise ValueError( + f"Client {self.client.meta.service_model.service_name} " + f"does not have method: {method}" + ) + + # Create a successful http response + http_response = AWSResponse(None, 200, {}, None) + + operation_name = self.client.meta.method_to_api_mapping.get(method) + self._validate_operation_response(operation_name, service_response) + + # Add the service_response to the queue for returning responses + response = { + 'operation_name': operation_name, + 'response': (http_response, service_response), + 'expected_params': expected_params, + } + self._queue.append(response) + + def add_client_error( + self, + method, + service_error_code='', + service_message='', + http_status_code=400, + service_error_meta=None, + expected_params=None, + response_meta=None, + modeled_fields=None, + ): + """ + Adds a ``ClientError`` to the response queue. + + :param method: The name of the service method to return the error on. + :type method: str + + :param service_error_code: The service error code to return, + e.g. ``NoSuchBucket`` + :type service_error_code: str + + :param service_message: The service message to return, e.g. + 'The specified bucket does not exist.' + :type service_message: str + + :param http_status_code: The HTTP status code to return, e.g. 404, etc + :type http_status_code: int + + :param service_error_meta: Additional keys to be added to the + service Error + :type service_error_meta: dict + + :param expected_params: A dictionary of the expected parameters to + be called for the provided service response. The parameters match + the names of keyword arguments passed to that client call. If + any of the parameters differ a ``StubResponseError`` is thrown. + You can use stub.ANY to indicate a particular parameter to ignore + in validation. + + :param response_meta: Additional keys to be added to the + response's ResponseMetadata + :type response_meta: dict + + :param modeled_fields: Additional keys to be added to the response + based on fields that are modeled for the particular error code. + These keys will be validated against the particular error shape + designated by the error code. + :type modeled_fields: dict + + """ + http_response = AWSResponse(None, http_status_code, {}, None) + + # We don't look to the model to build this because the caller would + # need to know the details of what the HTTP body would need to + # look like. + parsed_response = { + 'ResponseMetadata': {'HTTPStatusCode': http_status_code}, + 'Error': {'Message': service_message, 'Code': service_error_code}, + } + + if service_error_meta is not None: + parsed_response['Error'].update(service_error_meta) + + if response_meta is not None: + parsed_response['ResponseMetadata'].update(response_meta) + + if modeled_fields is not None: + service_model = self.client.meta.service_model + shape = service_model.shape_for_error_code(service_error_code) + self._validate_response(shape, modeled_fields) + parsed_response.update(modeled_fields) + + operation_name = self.client.meta.method_to_api_mapping.get(method) + # Note that we do not allow for expected_params while + # adding errors into the queue yet. + response = { + 'operation_name': operation_name, + 'response': (http_response, parsed_response), + 'expected_params': expected_params, + } + self._queue.append(response) + + def assert_no_pending_responses(self): + """ + Asserts that all expected calls were made. + """ + remaining = len(self._queue) + if remaining != 0: + raise AssertionError(f"{remaining} responses remaining in queue.") + + def _assert_expected_call_order(self, model, params): + if not self._queue: + raise UnStubbedResponseError( + operation_name=model.name, + reason=( + 'Unexpected API Call: A call was made but no additional ' + 'calls expected. Either the API Call was not stubbed or ' + 'it was called multiple times.' + ), + ) + + name = self._queue[0]['operation_name'] + if name != model.name: + raise StubResponseError( + operation_name=model.name, + reason=f'Operation mismatch: found response for {name}.', + ) + + def _set_account_id_for_endpoint_resolution(self, builtins, **kwargs): + # Account ID comes from credentials and will try to resolve on endpoint resolution + # when it's a builtin. This breaks any stubber in environments where credentials + # are not available. We mock it to be a None value so that we don't attempt to + # resolve credentials. + if 'AWS::Auth::AccountId' in builtins: + builtins['AWS::Auth::AccountId'] = None + + def _get_response_handler(self, model, params, context, **kwargs): + self._assert_expected_call_order(model, params) + # Pop off the entire response once everything has been validated + return self._queue.popleft()['response'] + + def _assert_expected_params(self, model, params, context, **kwargs): + if self._should_not_stub(context): + return + self._assert_expected_call_order(model, params) + expected_params = self._queue[0]['expected_params'] + if expected_params is None: + return + + # Validate the parameters are equal + for param, value in expected_params.items(): + if param not in params or expected_params[param] != params[param]: + raise StubAssertionError( + operation_name=model.name, + reason=( + f'Expected parameters:\n{pformat(expected_params)},\n' + f'but received:\n{pformat(params)}' + ), + ) + + # Ensure there are no extra params hanging around + if sorted(expected_params.keys()) != sorted(params.keys()): + raise StubAssertionError( + operation_name=model.name, + reason=( + f'Expected parameters:\n{pformat(expected_params)},\n' + f'but received:\n{pformat(params)}' + ), + ) + + def _should_not_stub(self, context): + # Do not include presign requests when processing stubbed client calls + # as a presign request will never have an HTTP request sent over the + # wire for it and therefore not receive a response back. + if context and context.get('is_presign_request'): + return True + + def _validate_operation_response(self, operation_name, service_response): + service_model = self.client.meta.service_model + operation_model = service_model.operation_model(operation_name) + output_shape = operation_model.output_shape + + # Remove ResponseMetadata so that the validator doesn't attempt to + # perform validation on it. + response = service_response + if 'ResponseMetadata' in response: + response = copy.copy(service_response) + del response['ResponseMetadata'] + + self._validate_response(output_shape, response) + + def _validate_response(self, shape, response): + if shape is not None: + validate_parameters(response, shape) + elif response: + # If the output shape is None, that means the response should be + # empty apart from ResponseMetadata + raise ParamValidationError( + report=( + "Service response should only contain ResponseMetadata." + ) + ) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/tokens.py b/rep_localstack/lib/python3.12/site-packages/botocore/tokens.py new file mode 100644 index 000000000..d90861823 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/tokens.py @@ -0,0 +1,363 @@ +# Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import json +import logging +import os +import threading +from datetime import datetime, timedelta +from typing import NamedTuple, Optional + +import dateutil.parser +from dateutil.tz import tzutc + +from botocore import UNSIGNED +from botocore.compat import total_seconds +from botocore.config import Config +from botocore.exceptions import ( + ClientError, + InvalidConfigError, + TokenRetrievalError, +) +from botocore.utils import ( + CachedProperty, + JSONFileCache, + SSOTokenLoader, + create_nested_client, + get_token_from_environment, +) + +logger = logging.getLogger(__name__) + + +def _utc_now(): + return datetime.now(tzutc()) + + +def create_token_resolver(session): + providers = [ + ScopedEnvTokenProvider(session), + SSOTokenProvider(session), + ] + return TokenProviderChain(providers=providers) + + +def _serialize_utc_timestamp(obj): + if isinstance(obj, datetime): + return obj.strftime("%Y-%m-%dT%H:%M:%SZ") + return obj + + +def _sso_json_dumps(obj): + return json.dumps(obj, default=_serialize_utc_timestamp) + + +class FrozenAuthToken(NamedTuple): + token: str + expiration: Optional[datetime] = None + + +class DeferredRefreshableToken: + # The time at which we'll attempt to refresh, but not block if someone else + # is refreshing. + _advisory_refresh_timeout = 15 * 60 + # The time at which all threads will block waiting for a refreshed token + _mandatory_refresh_timeout = 10 * 60 + # Refresh at most once every minute to avoid blocking every request + _attempt_timeout = 60 + + def __init__(self, method, refresh_using, time_fetcher=_utc_now): + self._time_fetcher = time_fetcher + self._refresh_using = refresh_using + self.method = method + + # The frozen token is protected by this lock + self._refresh_lock = threading.Lock() + self._frozen_token = None + self._next_refresh = None + + def get_frozen_token(self): + self._refresh() + return self._frozen_token + + def _refresh(self): + # If we don't need to refresh just return + refresh_type = self._should_refresh() + if not refresh_type: + return None + + # Block for refresh if we're in the mandatory refresh window + block_for_refresh = refresh_type == "mandatory" + if self._refresh_lock.acquire(block_for_refresh): + try: + self._protected_refresh() + finally: + self._refresh_lock.release() + + def _protected_refresh(self): + # This should only be called after acquiring the refresh lock + # Another thread may have already refreshed, double check refresh + refresh_type = self._should_refresh() + if not refresh_type: + return None + + try: + now = self._time_fetcher() + self._next_refresh = now + timedelta(seconds=self._attempt_timeout) + self._frozen_token = self._refresh_using() + except Exception: + logger.warning( + "Refreshing token failed during the %s refresh period.", + refresh_type, + exc_info=True, + ) + if refresh_type == "mandatory": + # This refresh was mandatory, error must be propagated back + raise + + if self._is_expired(): + # Fresh credentials should never be expired + raise TokenRetrievalError( + provider=self.method, + error_msg="Token has expired and refresh failed", + ) + + def _is_expired(self): + if self._frozen_token is None: + return False + + expiration = self._frozen_token.expiration + remaining = total_seconds(expiration - self._time_fetcher()) + return remaining <= 0 + + def _should_refresh(self): + if self._frozen_token is None: + # We don't have a token yet, mandatory refresh + return "mandatory" + + expiration = self._frozen_token.expiration + if expiration is None: + # No expiration, so assume we don't need to refresh. + return None + + now = self._time_fetcher() + if now < self._next_refresh: + return None + + remaining = total_seconds(expiration - now) + + if remaining < self._mandatory_refresh_timeout: + return "mandatory" + elif remaining < self._advisory_refresh_timeout: + return "advisory" + + return None + + +class TokenProviderChain: + def __init__(self, providers=None): + if providers is None: + providers = [] + self._providers = providers + + def load_token(self, **kwargs): + for provider in self._providers: + token = provider.load_token(**kwargs) + if token is not None: + return token + return None + + +class SSOTokenProvider: + METHOD = "sso" + _REFRESH_WINDOW = 15 * 60 + _SSO_TOKEN_CACHE_DIR = os.path.expanduser( + os.path.join("~", ".aws", "sso", "cache") + ) + _SSO_CONFIG_VARS = [ + "sso_start_url", + "sso_region", + ] + _GRANT_TYPE = "refresh_token" + DEFAULT_CACHE_CLS = JSONFileCache + + def __init__( + self, session, cache=None, time_fetcher=_utc_now, profile_name=None + ): + self._session = session + if cache is None: + cache = self.DEFAULT_CACHE_CLS( + self._SSO_TOKEN_CACHE_DIR, + dumps_func=_sso_json_dumps, + ) + self._now = time_fetcher + self._cache = cache + self._token_loader = SSOTokenLoader(cache=self._cache) + self._profile_name = ( + profile_name + or self._session.get_config_variable("profile") + or 'default' + ) + + def _load_sso_config(self): + loaded_config = self._session.full_config + profiles = loaded_config.get("profiles", {}) + sso_sessions = loaded_config.get("sso_sessions", {}) + profile_config = profiles.get(self._profile_name, {}) + + if "sso_session" not in profile_config: + return + + sso_session_name = profile_config["sso_session"] + sso_config = sso_sessions.get(sso_session_name, None) + + if not sso_config: + error_msg = ( + f'The profile "{self._profile_name}" is configured to use the SSO ' + f'token provider but the "{sso_session_name}" sso_session ' + f"configuration does not exist." + ) + raise InvalidConfigError(error_msg=error_msg) + + missing_configs = [] + for var in self._SSO_CONFIG_VARS: + if var not in sso_config: + missing_configs.append(var) + + if missing_configs: + error_msg = ( + f'The profile "{self._profile_name}" is configured to use the SSO ' + f"token provider but is missing the following configuration: " + f"{missing_configs}." + ) + raise InvalidConfigError(error_msg=error_msg) + + return { + "session_name": sso_session_name, + "sso_region": sso_config["sso_region"], + "sso_start_url": sso_config["sso_start_url"], + } + + @CachedProperty + def _sso_config(self): + return self._load_sso_config() + + @CachedProperty + def _client(self): + config = Config( + region_name=self._sso_config["sso_region"], + signature_version=UNSIGNED, + ) + return create_nested_client(self._session, "sso-oidc", config=config) + + def _attempt_create_token(self, token): + response = self._client.create_token( + grantType=self._GRANT_TYPE, + clientId=token["clientId"], + clientSecret=token["clientSecret"], + refreshToken=token["refreshToken"], + ) + expires_in = timedelta(seconds=response["expiresIn"]) + new_token = { + "startUrl": self._sso_config["sso_start_url"], + "region": self._sso_config["sso_region"], + "accessToken": response["accessToken"], + "expiresAt": self._now() + expires_in, + # Cache the registration alongside the token + "clientId": token["clientId"], + "clientSecret": token["clientSecret"], + "registrationExpiresAt": token["registrationExpiresAt"], + } + if "refreshToken" in response: + new_token["refreshToken"] = response["refreshToken"] + logger.info("SSO Token refresh succeeded") + return new_token + + def _refresh_access_token(self, token): + keys = ( + "refreshToken", + "clientId", + "clientSecret", + "registrationExpiresAt", + ) + missing_keys = [k for k in keys if k not in token] + if missing_keys: + msg = f"Unable to refresh SSO token: missing keys: {missing_keys}" + logger.info(msg) + return None + + expiry = dateutil.parser.parse(token["registrationExpiresAt"]) + if total_seconds(expiry - self._now()) <= 0: + logger.info("SSO token registration expired at %s", expiry) + return None + + try: + return self._attempt_create_token(token) + except ClientError: + logger.warning("SSO token refresh attempt failed", exc_info=True) + return None + + def _refresher(self): + start_url = self._sso_config["sso_start_url"] + session_name = self._sso_config["session_name"] + logger.info("Loading cached SSO token for %s", session_name) + token_dict = self._token_loader(start_url, session_name=session_name) + expiration = dateutil.parser.parse(token_dict["expiresAt"]) + logger.debug("Cached SSO token expires at %s", expiration) + + remaining = total_seconds(expiration - self._now()) + if remaining < self._REFRESH_WINDOW: + new_token_dict = self._refresh_access_token(token_dict) + if new_token_dict is not None: + token_dict = new_token_dict + expiration = token_dict["expiresAt"] + self._token_loader.save_token( + start_url, token_dict, session_name=session_name + ) + + return FrozenAuthToken( + token_dict["accessToken"], expiration=expiration + ) + + def load_token(self, **kwargs): + if self._sso_config is None: + return None + + return DeferredRefreshableToken( + self.METHOD, self._refresher, time_fetcher=self._now + ) + + +class ScopedEnvTokenProvider: + """ + Token provider that loads tokens from environment variables scoped to + a specific `signing_name`. + """ + + METHOD = 'env' + + def __init__(self, session, environ=None): + self._session = session + if environ is None: + environ = os.environ + self.environ = environ + + def load_token(self, **kwargs): + signing_name = kwargs.get("signing_name") + if signing_name is None: + return None + + token = get_token_from_environment(signing_name, self.environ) + + if token is not None: + logger.info("Found token in environment variables.") + return FrozenAuthToken(token) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/translate.py b/rep_localstack/lib/python3.12/site-packages/botocore/translate.py new file mode 100644 index 000000000..ecfe3bcaf --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/translate.py @@ -0,0 +1,78 @@ +# Copyright (c) 2012-2013 Mitch Garnaat http://garnaat.org/ +# Copyright 2012-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import copy + +from botocore.utils import merge_dicts + + +def build_retry_config( + endpoint_prefix, retry_model, definitions, client_retry_config=None +): + service_config = retry_model.get(endpoint_prefix, {}) + resolve_references(service_config, definitions) + # We want to merge the global defaults with the service specific + # defaults, with the service specific defaults taking precedence. + # So we use the global defaults as the base. + # + # A deepcopy is done on the retry defaults because it ensures the + # retry model has no chance of getting mutated when the service specific + # configuration or client retry config is merged in. + final_retry_config = { + '__default__': copy.deepcopy(retry_model.get('__default__', {})) + } + resolve_references(final_retry_config, definitions) + # The merge the service specific config on top. + merge_dicts(final_retry_config, service_config) + if client_retry_config is not None: + _merge_client_retry_config(final_retry_config, client_retry_config) + return final_retry_config + + +def _merge_client_retry_config(retry_config, client_retry_config): + max_retry_attempts_override = client_retry_config.get('max_attempts') + if max_retry_attempts_override is not None: + # In the retry config, the max_attempts refers to the maximum number + # of requests in general will be made. However, for the client's + # retry config it refers to how many retry attempts will be made at + # most. So to translate this number from the client config, one is + # added to convert it to the maximum number request that will be made + # by including the initial request. + # + # It is also important to note that if we ever support per operation + # configuration in the retry model via the client, we will need to + # revisit this logic to make sure max_attempts gets applied + # per operation. + retry_config['__default__']['max_attempts'] = ( + max_retry_attempts_override + 1 + ) + + +def resolve_references(config, definitions): + """Recursively replace $ref keys. + + To cut down on duplication, common definitions can be declared + (and passed in via the ``definitions`` attribute) and then + references as {"$ref": "name"}, when this happens the reference + dict is placed with the value from the ``definition`` dict. + + This is recursively done. + + """ + for key, value in config.items(): + if isinstance(value, dict): + if len(value) == 1 and list(value.keys())[0] == '$ref': + # Then we need to resolve this reference. + config[key] = definitions[list(value.values())[0]] + else: + resolve_references(value, definitions) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/useragent.py b/rep_localstack/lib/python3.12/site-packages/botocore/useragent.py new file mode 100644 index 000000000..cae69e936 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/useragent.py @@ -0,0 +1,677 @@ +# Copyright 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +""" +NOTE: All classes and functions in this module are considered private and are +subject to abrupt breaking changes. Please do not use them directly. + +To modify the User-Agent header sent by botocore, use one of these +configuration options: +* The ``AWS_SDK_UA_APP_ID`` environment variable. +* The ``sdk_ua_app_id`` setting in the shared AWS config file. +* The ``user_agent_appid`` field in the :py:class:`botocore.config.Config`. +* The ``user_agent_extra`` field in the :py:class:`botocore.config.Config`. + +""" + +import logging +import os +import platform +from copy import copy +from string import ascii_letters, digits +from typing import NamedTuple, Optional + +from botocore import __version__ as botocore_version +from botocore.compat import HAS_CRT +from botocore.context import get_context + +logger = logging.getLogger(__name__) + + +_USERAGENT_ALLOWED_CHARACTERS = ascii_letters + digits + "!$%&'*+-.^_`|~," +_USERAGENT_ALLOWED_OS_NAMES = ( + 'windows', + 'linux', + 'macos', + 'android', + 'ios', + 'watchos', + 'tvos', + 'other', +) +_USERAGENT_PLATFORM_NAME_MAPPINGS = {'darwin': 'macos'} +# The name by which botocore is identified in the User-Agent header. While most +# AWS SDKs follow a naming pattern of "aws-sdk-*", botocore and boto3 continue +# using their existing values. Uses uppercase "B" with all other characters +# lowercase. +_USERAGENT_SDK_NAME = 'Botocore' +_USERAGENT_FEATURE_MAPPINGS = { + 'WAITER': 'B', + 'PAGINATOR': 'C', + "RETRY_MODE_LEGACY": "D", + "RETRY_MODE_STANDARD": "E", + "RETRY_MODE_ADAPTIVE": "F", + 'S3_TRANSFER': 'G', + 'GZIP_REQUEST_COMPRESSION': 'L', + 'PROTOCOL_RPC_V2_CBOR': 'M', + 'ENDPOINT_OVERRIDE': 'N', + 'ACCOUNT_ID_MODE_PREFERRED': 'P', + 'ACCOUNT_ID_MODE_DISABLED': 'Q', + 'ACCOUNT_ID_MODE_REQUIRED': 'R', + 'SIGV4A_SIGNING': 'S', + 'RESOLVED_ACCOUNT_ID': 'T', + 'FLEXIBLE_CHECKSUMS_REQ_CRC32': 'U', + 'FLEXIBLE_CHECKSUMS_REQ_CRC32C': 'V', + 'FLEXIBLE_CHECKSUMS_REQ_CRC64': 'W', + 'FLEXIBLE_CHECKSUMS_REQ_SHA1': 'X', + 'FLEXIBLE_CHECKSUMS_REQ_SHA256': 'Y', + 'FLEXIBLE_CHECKSUMS_REQ_WHEN_SUPPORTED': 'Z', + 'FLEXIBLE_CHECKSUMS_REQ_WHEN_REQUIRED': 'a', + 'FLEXIBLE_CHECKSUMS_RES_WHEN_SUPPORTED': 'b', + 'FLEXIBLE_CHECKSUMS_RES_WHEN_REQUIRED': 'c', + 'CREDENTIALS_CODE': 'e', + 'CREDENTIALS_ENV_VARS': 'g', + 'CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN': 'h', + 'CREDENTIALS_STS_ASSUME_ROLE': 'i', + 'CREDENTIALS_STS_ASSUME_ROLE_WEB_ID': 'k', + 'CREDENTIALS_PROFILE': 'n', + 'CREDENTIALS_PROFILE_SOURCE_PROFILE': 'o', + 'CREDENTIALS_PROFILE_NAMED_PROVIDER': 'p', + 'CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN': 'q', + 'CREDENTIALS_PROFILE_SSO': 'r', + 'CREDENTIALS_SSO': 's', + 'CREDENTIALS_PROFILE_SSO_LEGACY': 't', + 'CREDENTIALS_SSO_LEGACY': 'u', + 'CREDENTIALS_PROFILE_PROCESS': 'v', + 'CREDENTIALS_PROCESS': 'w', + 'CREDENTIALS_BOTO2_CONFIG_FILE': 'x', + 'CREDENTIALS_HTTP': 'z', + 'CREDENTIALS_IMDS': '0', + 'BEARER_SERVICE_ENV_VARS': '3', + 'CLI_V1_TO_V2_MIGRATION_DEBUG_MODE': '-', + 'CREDENTIALS_PROFILE_LOGIN': 'AC', + 'CREDENTIALS_LOGIN': 'AD', + 'FLEXIBLE_CHECKSUMS_REQ_MD5': 'AE', + 'FLEXIBLE_CHECKSUMS_REQ_SHA512': 'AF', + 'FLEXIBLE_CHECKSUMS_REQ_XXHASH3': 'AG', + 'FLEXIBLE_CHECKSUMS_REQ_XXHASH64': 'AH', + 'FLEXIBLE_CHECKSUMS_REQ_XXHASH128': 'AI', +} + + +def register_feature_id(feature_id): + """Adds metric value to the current context object's ``features`` set. + + :type feature_id: str + :param feature_id: The name of the feature to register. Value must be a key + in the ``_USERAGENT_FEATURE_MAPPINGS`` dict. + """ + ctx = get_context() + if ctx is None: + # Never register features outside the scope of a + # ``botocore.context.start_as_current_context`` context manager. + # Otherwise, the context variable won't be reset and features will + # bleed into all subsequent requests. Return instead of raising an + # exception since this function could be invoked in a public interface. + return + if val := _USERAGENT_FEATURE_MAPPINGS.get(feature_id): + ctx.features.add(val) + + +def register_feature_ids(feature_ids): + """Adds multiple feature IDs to the current context object's ``features`` set. + + :type feature_ids: iterable of str + :param feature_ids: An iterable of feature ID strings to register. Each + value must be a key in the ``_USERAGENT_FEATURE_MAPPINGS`` dict. + """ + for feature_id in feature_ids: + register_feature_id(feature_id) + + +def sanitize_user_agent_string_component(raw_str, allow_hash): + """Replaces all not allowed characters in the string with a dash ("-"). + + Allowed characters are ASCII alphanumerics and ``!$%&'*+-.^_`|~,``. If + ``allow_hash`` is ``True``, "#"``" is also allowed. + + :type raw_str: str + :param raw_str: The input string to be sanitized. + + :type allow_hash: bool + :param allow_hash: Whether "#" is considered an allowed character. + """ + return ''.join( + c + if c in _USERAGENT_ALLOWED_CHARACTERS or (allow_hash and c == '#') + else '-' + for c in raw_str + ) + + +class UserAgentComponentSizeConfig: + """ + Configures the max size of a built user agent string component and the + delimiter used to truncate the string if the size is above the max. + """ + + def __init__(self, max_size_in_bytes: int, delimiter: str): + self.max_size_in_bytes = max_size_in_bytes + self.delimiter = delimiter + self._validate_input() + + def _validate_input(self): + if self.max_size_in_bytes < 1: + raise ValueError( + f'Invalid `max_size_in_bytes`: {self.max_size_in_bytes}. ' + 'Value must be a positive integer.' + ) + + +class UserAgentComponent(NamedTuple): + """ + Component of a Botocore User-Agent header string in the standard format. + + Each component consists of a prefix, a name, a value, and a size_config. + In the string representation these are combined in the format + ``prefix/name#value``. + + ``size_config`` configures the max size and truncation strategy for the + built user agent string component. + + This class is considered private and is subject to abrupt breaking changes. + """ + + prefix: str + name: str + value: Optional[str] = None + size_config: Optional[UserAgentComponentSizeConfig] = None + + def to_string(self): + """Create string like 'prefix/name#value' from a UserAgentComponent.""" + clean_prefix = sanitize_user_agent_string_component( + self.prefix, allow_hash=True + ) + clean_name = sanitize_user_agent_string_component( + self.name, allow_hash=False + ) + if self.value is None or self.value == '': + clean_string = f'{clean_prefix}/{clean_name}' + else: + clean_value = sanitize_user_agent_string_component( + self.value, allow_hash=True + ) + clean_string = f'{clean_prefix}/{clean_name}#{clean_value}' + if self.size_config is not None: + clean_string = self._truncate_string( + clean_string, + self.size_config.max_size_in_bytes, + self.size_config.delimiter, + ) + return clean_string + + def _truncate_string(self, string, max_size, delimiter): + """ + Pop ``delimiter``-separated values until encoded string is less than or + equal to ``max_size``. + """ + orig = string + while len(string.encode('utf-8')) > max_size: + parts = string.split(delimiter) + parts.pop() + string = delimiter.join(parts) + + if string == '': + logger.debug( + "User agent component `%s` could not be truncated to " + "`%s` bytes with delimiter " + "`%s` without losing all contents. " + "Value will be omitted from user agent string.", + orig, + max_size, + delimiter, + ) + return string + + +class RawStringUserAgentComponent: + """ + UserAgentComponent interface wrapper around ``str``. + + Use for User-Agent header components that are not constructed from + prefix+name+value but instead are provided as strings. No sanitization is + performed. + """ + + def __init__(self, value): + self._value = value + + def to_string(self): + return self._value + + +# This is not a public interface and is subject to abrupt breaking changes. +# Any usage is not advised or supported in external code bases. +try: + from botocore.customizations.useragent import modify_components +except ImportError: + # Default implementation that returns unmodified User-Agent components. + def modify_components(components): + return components + + +class UserAgentString: + """ + Generator for AWS SDK User-Agent header strings. + + The User-Agent header format contains information from session, client, and + request context. ``UserAgentString`` provides methods for collecting the + information and ``to_string`` for assembling it into the standardized + string format. + + Example usage: + + ua_session = UserAgentString.from_environment() + ua_session.set_session_config(...) + ua_client = ua_session.with_client_config(Config(...)) + ua_string = ua_request.to_string() + + For testing or when information from all sources is available at the same + time, the methods can be chained: + + ua_string = ( + UserAgentString + .from_environment() + .set_session_config(...) + .with_client_config(Config(...)) + .to_string() + ) + + """ + + def __init__( + self, + platform_name, + platform_version, + platform_machine, + python_version, + python_implementation, + execution_env, + crt_version=None, + ): + """ + :type platform_name: str + :param platform_name: Name of the operating system or equivalent + platform name. Should be sourced from :py:meth:`platform.system`. + :type platform_version: str + :param platform_version: Version of the operating system or equivalent + platform name. Should be sourced from :py:meth:`platform.version`. + :type platform_machine: str + :param platform_version: Processor architecture or machine type. For + example "x86_64". Should be sourced from :py:meth:`platform.machine`. + :type python_version: str + :param python_version: Version of the python implementation as str. + Should be sourced from :py:meth:`platform.python_version`. + :type python_implementation: str + :param python_implementation: Name of the python implementation. + Should be sourced from :py:meth:`platform.python_implementation`. + :type execution_env: str + :param execution_env: The value of the AWS execution environment. + Should be sourced from the ``AWS_EXECUTION_ENV` environment + variable. + :type crt_version: str + :param crt_version: Version string of awscrt package, if installed. + """ + self._platform_name = platform_name + self._platform_version = platform_version + self._platform_machine = platform_machine + self._python_version = python_version + self._python_implementation = python_implementation + self._execution_env = execution_env + self._crt_version = crt_version + + # Components that can be added with ``set_session_config()`` + self._session_user_agent_name = None + self._session_user_agent_version = None + self._session_user_agent_extra = None + + self._client_config = None + + # Component that can be set with ``set_client_features()`` + self._client_features = None + + @classmethod + def from_environment(cls): + crt_version = None + if HAS_CRT: + crt_version = _get_crt_version() or 'Unknown' + return cls( + platform_name=platform.system(), + platform_version=platform.release(), + platform_machine=platform.machine(), + python_version=platform.python_version(), + python_implementation=platform.python_implementation(), + execution_env=os.environ.get('AWS_EXECUTION_ENV'), + crt_version=crt_version, + ) + + def set_session_config( + self, + session_user_agent_name, + session_user_agent_version, + session_user_agent_extra, + ): + """ + Set the user agent configuration values that apply at session level. + + :param user_agent_name: The user agent name configured in the + :py:class:`botocore.session.Session` object. For backwards + compatibility, this will always be at the beginning of the + User-Agent string, together with ``user_agent_version``. + :param user_agent_version: The user agent version configured in the + :py:class:`botocore.session.Session` object. + :param user_agent_extra: The user agent "extra" configured in the + :py:class:`botocore.session.Session` object. + """ + self._session_user_agent_name = session_user_agent_name + self._session_user_agent_version = session_user_agent_version + self._session_user_agent_extra = session_user_agent_extra + return self + + def set_client_features(self, features): + """ + Persist client-specific features registered before or during client + creation. + + :type features: Set[str] + :param features: A set of client-specific features. + """ + self._client_features = features + + def with_client_config(self, client_config): + """ + Create a copy with all original values and client-specific values. + + :type client_config: botocore.config.Config + :param client_config: The client configuration object. + """ + cp = copy(self) + cp._client_config = client_config + return cp + + def to_string(self): + """ + Build User-Agent header string from the object's properties. + """ + config_ua_override = None + if self._client_config: + if hasattr(self._client_config, '_supplied_user_agent'): + config_ua_override = self._client_config._supplied_user_agent + else: + config_ua_override = self._client_config.user_agent + + if config_ua_override is not None: + return self._build_legacy_ua_string(config_ua_override) + + components = [ + *self._build_sdk_metadata(), + RawStringUserAgentComponent('ua/2.1'), + *self._build_os_metadata(), + *self._build_architecture_metadata(), + *self._build_language_metadata(), + *self._build_execution_env_metadata(), + *self._build_feature_metadata(), + *self._build_config_metadata(), + *self._build_app_id(), + *self._build_extra(), + ] + + components = modify_components(components) + + return ' '.join( + [comp.to_string() for comp in components if comp.to_string()] + ) + + def _build_sdk_metadata(self): + """ + Build the SDK name and version component of the User-Agent header. + + For backwards-compatibility both session-level and client-level config + of custom tool names are honored. If this removes the Botocore + information from the start of the string, Botocore's name and version + are included as a separate field with "md" prefix. + """ + sdk_md = [] + if ( + self._session_user_agent_name + and self._session_user_agent_version + and ( + self._session_user_agent_name != _USERAGENT_SDK_NAME + or self._session_user_agent_version != botocore_version + ) + ): + sdk_md.extend( + [ + UserAgentComponent( + self._session_user_agent_name, + self._session_user_agent_version, + ), + UserAgentComponent( + 'md', _USERAGENT_SDK_NAME, botocore_version + ), + ] + ) + else: + sdk_md.append( + UserAgentComponent(_USERAGENT_SDK_NAME, botocore_version) + ) + + if self._crt_version is not None: + sdk_md.append( + UserAgentComponent('md', 'awscrt', self._crt_version) + ) + + return sdk_md + + def _build_os_metadata(self): + """ + Build the OS/platform components of the User-Agent header string. + + For recognized platform names that match or map to an entry in the list + of standardized OS names, a single component with prefix "os" is + returned. Otherwise, one component "os/other" is returned and a second + with prefix "md" and the raw platform name. + + String representations of example return values: + * ``os/macos#10.13.6`` + * ``os/linux`` + * ``os/other`` + * ``os/other md/foobar#1.2.3`` + """ + if self._platform_name is None: + return [UserAgentComponent('os', 'other')] + + plt_name_lower = self._platform_name.lower() + if plt_name_lower in _USERAGENT_ALLOWED_OS_NAMES: + os_family = plt_name_lower + elif plt_name_lower in _USERAGENT_PLATFORM_NAME_MAPPINGS: + os_family = _USERAGENT_PLATFORM_NAME_MAPPINGS[plt_name_lower] + else: + os_family = None + + if os_family is not None: + return [ + UserAgentComponent('os', os_family, self._platform_version) + ] + else: + return [ + UserAgentComponent('os', 'other'), + UserAgentComponent( + 'md', self._platform_name, self._platform_version + ), + ] + + def _build_architecture_metadata(self): + """ + Build architecture component of the User-Agent header string. + + Returns the machine type with prefix "md" and name "arch", if one is + available. Common values include "x86_64", "arm64", "i386". + """ + if self._platform_machine: + return [ + UserAgentComponent( + 'md', 'arch', self._platform_machine.lower() + ) + ] + return [] + + def _build_language_metadata(self): + """ + Build the language components of the User-Agent header string. + + Returns the Python version in a component with prefix "lang" and name + "python". The Python implementation (e.g. CPython, PyPy) is returned as + separate metadata component with prefix "md" and name "pyimpl". + + String representation of an example return value: + ``lang/python#3.10.4 md/pyimpl#CPython`` + """ + lang_md = [ + UserAgentComponent('lang', 'python', self._python_version), + ] + if self._python_implementation: + lang_md.append( + UserAgentComponent('md', 'pyimpl', self._python_implementation) + ) + return lang_md + + def _build_execution_env_metadata(self): + """ + Build the execution environment component of the User-Agent header. + + Returns a single component prefixed with "exec-env", usually sourced + from the environment variable AWS_EXECUTION_ENV. + """ + if self._execution_env: + return [UserAgentComponent('exec-env', self._execution_env)] + else: + return [] + + def _build_feature_metadata(self): + """ + Build the features component of the User-Agent header string. + + Returns a single component with prefix "m" followed by a list of + comma-separated metric values. + """ + ctx = get_context() + context_features = set() if ctx is None else ctx.features + client_features = self._client_features or set() + features = client_features.union(context_features) + if not features: + return [] + size_config = UserAgentComponentSizeConfig(1024, ',') + return [ + UserAgentComponent( + 'm', ','.join(features), size_config=size_config + ) + ] + + def _build_config_metadata(self): + """ + Build the configuration components of the User-Agent header string. + + Returns a list of components with prefix "cfg" followed by the config + setting name and its value. Tracked configuration settings may be + added or removed in future versions. + """ + if not self._client_config or not self._client_config.retries: + return [] + retry_mode = self._client_config.retries.get('mode') + cfg_md = [UserAgentComponent('cfg', 'retry-mode', retry_mode)] + if self._client_config.endpoint_discovery_enabled: + cfg_md.append(UserAgentComponent('cfg', 'endpoint-discovery')) + return cfg_md + + def _build_app_id(self): + """ + Build app component of the User-Agent header string. + + Returns a single component with prefix "app" and value sourced from the + ``user_agent_appid`` field in :py:class:`botocore.config.Config` or + the ``sdk_ua_app_id`` setting in the shared configuration file, or the + ``AWS_SDK_UA_APP_ID`` environment variable. These are the recommended + ways for apps built with Botocore to insert their identifer into the + User-Agent header. + """ + if self._client_config and self._client_config.user_agent_appid: + appid = sanitize_user_agent_string_component( + raw_str=self._client_config.user_agent_appid, allow_hash=True + ) + return [RawStringUserAgentComponent(f'app/{appid}')] + else: + return [] + + def _build_extra(self): + """User agent string components based on legacy "extra" settings. + + Creates components from the session-level and client-level + ``user_agent_extra`` setting, if present. Both are passed through + verbatim and should be appended at the end of the string. + + Preferred ways to inject application-specific information into + botocore's User-Agent header string are the ``user_agent_appid` field + in :py:class:`botocore.config.Config`. The ``AWS_SDK_UA_APP_ID`` + environment variable and the ``sdk_ua_app_id`` configuration file + setting are alternative ways to set the ``user_agent_appid`` config. + """ + extra = [] + if self._session_user_agent_extra: + extra.append( + RawStringUserAgentComponent(self._session_user_agent_extra) + ) + if self._client_config and self._client_config.user_agent_extra: + extra.append( + RawStringUserAgentComponent( + self._client_config.user_agent_extra + ) + ) + return extra + + def _build_legacy_ua_string(self, config_ua_override): + components = [config_ua_override] + if self._session_user_agent_extra: + components.append(self._session_user_agent_extra) + if self._client_config.user_agent_extra: + components.append(self._client_config.user_agent_extra) + return ' '.join(components) + + def rebuild_and_replace_user_agent_handler( + self, operation_name, request, **kwargs + ): + ua_string = self.to_string() + if request.headers.get('User-Agent'): + request.headers.replace_header('User-Agent', ua_string) + + +def _get_crt_version(): + """ + This function is considered private and is subject to abrupt breaking + changes. + """ + try: + import awscrt + + return awscrt.__version__ + except AttributeError: + return None diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/utils.py b/rep_localstack/lib/python3.12/site-packages/botocore/utils.py new file mode 100644 index 000000000..9553e0c82 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/utils.py @@ -0,0 +1,3740 @@ +# Copyright 2012-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import base64 +import binascii +import datetime +import email.message +import functools +import hashlib +import io +import logging +import os +import random +import re +import socket +import tempfile +import time +import warnings +import weakref +from datetime import datetime as _DatetimeClass +from ipaddress import ip_address +from pathlib import Path +from urllib.request import getproxies, proxy_bypass + +import dateutil.parser +from dateutil.tz import tzutc +from urllib3.exceptions import LocationParseError + +import botocore +import botocore.awsrequest +import botocore.httpsession + +# IP Regexes retained for backwards compatibility +from botocore.compat import ( + HAS_CRT, + HEX_PAT, # noqa: F401 + IPV4_PAT, # noqa: F401 + IPV4_RE, + IPV6_ADDRZ_PAT, # noqa: F401 + IPV6_ADDRZ_RE, + IPV6_PAT, # noqa: F401 + LS32_PAT, # noqa: F401 + MD5_AVAILABLE, + UNRESERVED_PAT, # noqa: F401 + UNSAFE_URL_CHARS, + ZONE_ID_PAT, # noqa: F401 + OrderedDict, + get_current_datetime, + get_md5, + get_tzinfo_options, + json, + quote, + urlparse, + urlsplit, + urlunsplit, + zip_longest, +) +from botocore.exceptions import ( + ClientError, + ConfigNotFound, + ConnectionClosedError, + ConnectTimeoutError, + EndpointConnectionError, + HTTPClientError, + InvalidDNSNameError, + InvalidEndpointConfigurationError, + InvalidExpressionError, + InvalidHostLabelError, + InvalidIMDSEndpointError, + InvalidIMDSEndpointModeError, + InvalidRegionError, + MetadataRetrievalError, + MissingDependencyException, + ReadTimeoutError, + SSOTokenLoadError, + UnsupportedOutpostResourceError, + UnsupportedS3AccesspointConfigurationError, + UnsupportedS3ArnError, + UnsupportedS3ConfigurationError, + UnsupportedS3ControlArnError, + UnsupportedS3ControlConfigurationError, +) +from botocore.plugin import ( + PluginContext, + reset_plugin_context, + set_plugin_context, +) + +logger = logging.getLogger(__name__) +DEFAULT_METADATA_SERVICE_TIMEOUT = 1 +METADATA_BASE_URL = 'http://169.254.169.254/' +METADATA_BASE_URL_IPv6 = 'http://[fd00:ec2::254]/' +METADATA_ENDPOINT_MODES = ('ipv4', 'ipv6') + +# These are chars that do not need to be urlencoded. +# Based on rfc2986, section 2.3 +SAFE_CHARS = '-._~' +LABEL_RE = re.compile(r'[a-z0-9][a-z0-9\-]*[a-z0-9]') +RETRYABLE_HTTP_ERRORS = ( + ReadTimeoutError, + EndpointConnectionError, + ConnectionClosedError, + ConnectTimeoutError, +) +S3_ACCELERATE_WHITELIST = ['dualstack'] +# In switching events from using service name / endpoint prefix to service +# id, we have to preserve compatibility. This maps the instances where either +# is different than the transformed service id. +EVENT_ALIASES = { + "api.mediatailor": "mediatailor", + "api.pricing": "pricing", + "api.sagemaker": "sagemaker", + "apigateway": "api-gateway", + "application-autoscaling": "application-auto-scaling", + "appstream2": "appstream", + "autoscaling": "auto-scaling", + "autoscaling-plans": "auto-scaling-plans", + "ce": "cost-explorer", + "cloudhsmv2": "cloudhsm-v2", + "cloudsearchdomain": "cloudsearch-domain", + "cognito-idp": "cognito-identity-provider", + "config": "config-service", + "cur": "cost-and-usage-report-service", + "data.iot": "iot-data-plane", + "data.jobs.iot": "iot-jobs-data-plane", + "data.mediastore": "mediastore-data", + "datapipeline": "data-pipeline", + "devicefarm": "device-farm", + "directconnect": "direct-connect", + "discovery": "application-discovery-service", + "dms": "database-migration-service", + "ds": "directory-service", + "dynamodbstreams": "dynamodb-streams", + "elasticbeanstalk": "elastic-beanstalk", + "elasticfilesystem": "efs", + "elasticloadbalancing": "elastic-load-balancing", + "elasticmapreduce": "emr", + "elb": "elastic-load-balancing", + "elbv2": "elastic-load-balancing-v2", + "email": "ses", + "entitlement.marketplace": "marketplace-entitlement-service", + "es": "elasticsearch-service", + "events": "eventbridge", + "cloudwatch-events": "eventbridge", + "iot-data": "iot-data-plane", + "iot-jobs-data": "iot-jobs-data-plane", + "kinesisanalytics": "kinesis-analytics", + "kinesisvideo": "kinesis-video", + "lex-models": "lex-model-building-service", + "lex-runtime": "lex-runtime-service", + "logs": "cloudwatch-logs", + "machinelearning": "machine-learning", + "marketplace-entitlement": "marketplace-entitlement-service", + "marketplacecommerceanalytics": "marketplace-commerce-analytics", + "metering.marketplace": "marketplace-metering", + "meteringmarketplace": "marketplace-metering", + "mgh": "migration-hub", + "models.lex": "lex-model-building-service", + "monitoring": "cloudwatch", + "mturk-requester": "mturk", + "resourcegroupstaggingapi": "resource-groups-tagging-api", + "route53": "route-53", + "route53domains": "route-53-domains", + "runtime.lex": "lex-runtime-service", + "runtime.sagemaker": "sagemaker-runtime", + "sdb": "simpledb", + "secretsmanager": "secrets-manager", + "serverlessrepo": "serverlessapplicationrepository", + "servicecatalog": "service-catalog", + "states": "sfn", + "stepfunctions": "sfn", + "storagegateway": "storage-gateway", + "streams.dynamodb": "dynamodb-streams", + "tagging": "resource-groups-tagging-api", +} + + +# This pattern can be used to detect if a header is a flexible checksum header +CHECKSUM_HEADER_PATTERN = re.compile( + r'^X-Amz-Checksum-([a-z0-9]*)$', + flags=re.IGNORECASE, +) + +PRIORITY_ORDERED_SUPPORTED_PROTOCOLS = ( + 'json', + 'rest-json', + 'rest-xml', + 'smithy-rpc-v2-cbor', + 'query', + 'ec2', +) + + +def ensure_boolean(val): + """Ensures a boolean value if a string or boolean is provided + + For strings, the value for True/False is case insensitive + """ + if isinstance(val, bool): + return val + elif isinstance(val, str): + return val.lower() == 'true' + else: + return False + + +def resolve_imds_endpoint_mode(session): + """Resolving IMDS endpoint mode to either IPv6 or IPv4. + + ec2_metadata_service_endpoint_mode takes precedence over imds_use_ipv6. + """ + endpoint_mode = session.get_config_variable( + 'ec2_metadata_service_endpoint_mode' + ) + if endpoint_mode is not None: + lendpoint_mode = endpoint_mode.lower() + if lendpoint_mode not in METADATA_ENDPOINT_MODES: + error_msg_kwargs = { + 'mode': endpoint_mode, + 'valid_modes': METADATA_ENDPOINT_MODES, + } + raise InvalidIMDSEndpointModeError(**error_msg_kwargs) + return lendpoint_mode + elif session.get_config_variable('imds_use_ipv6'): + return 'ipv6' + return 'ipv4' + + +def is_json_value_header(shape): + """Determines if the provided shape is the special header type jsonvalue. + + :type shape: botocore.shape + :param shape: Shape to be inspected for the jsonvalue trait. + + :return: True if this type is a jsonvalue, False otherwise + :rtype: Bool + """ + return ( + hasattr(shape, 'serialization') + and shape.serialization.get('jsonvalue', False) + and shape.serialization.get('location') == 'header' + and shape.type_name == 'string' + ) + + +def has_header(header_name, headers): + """Case-insensitive check for header key.""" + if header_name is None: + return False + elif isinstance(headers, botocore.awsrequest.HeadersDict): + return header_name in headers + else: + return header_name.lower() in [key.lower() for key in headers.keys()] + + +def get_service_module_name(service_model): + """Returns the module name for a service + + This is the value used in both the documentation and client class name + """ + name = service_model.metadata.get( + 'serviceAbbreviation', + service_model.metadata.get( + 'serviceFullName', service_model.service_name + ), + ) + name = name.replace('Amazon', '') + name = name.replace('AWS', '') + name = re.sub(r'\W+', '', name) + return name + + +def normalize_url_path(path): + if not path: + return '/' + return remove_dot_segments(path) + + +def normalize_boolean(val): + """Returns None if val is None, otherwise ensure value + converted to boolean""" + if val is None: + return val + else: + return ensure_boolean(val) + + +def remove_dot_segments(url): + # RFC 3986, section 5.2.4 "Remove Dot Segments" + # Also, AWS services require consecutive slashes to be removed, + # so that's done here as well + if not url: + return '' + input_url = url.split('/') + output_list = [] + for x in input_url: + if x and x != '.': + if x == '..': + if output_list: + output_list.pop() + else: + output_list.append(x) + + if url[0] == '/': + first = '/' + else: + first = '' + if url[-1] == '/' and output_list: + last = '/' + else: + last = '' + return first + '/'.join(output_list) + last + + +def validate_jmespath_for_set(expression): + # Validates a limited jmespath expression to determine if we can set a + # value based on it. Only works with dotted paths. + if not expression or expression == '.': + raise InvalidExpressionError(expression=expression) + + for invalid in ['[', ']', '*']: + if invalid in expression: + raise InvalidExpressionError(expression=expression) + + +def set_value_from_jmespath(source, expression, value, is_first=True): + # This takes a (limited) jmespath-like expression & can set a value based + # on it. + # Limitations: + # * Only handles dotted lookups + # * No offsets/wildcards/slices/etc. + if is_first: + validate_jmespath_for_set(expression) + + bits = expression.split('.', 1) + current_key, remainder = bits[0], bits[1] if len(bits) > 1 else '' + + if not current_key: + raise InvalidExpressionError(expression=expression) + + if remainder: + if current_key not in source: + # We've got something in the expression that's not present in the + # source (new key). If there's any more bits, we'll set the key + # with an empty dictionary. + source[current_key] = {} + + return set_value_from_jmespath( + source[current_key], remainder, value, is_first=False + ) + + # If we're down to a single key, set it. + source[current_key] = value + + +def is_global_accesspoint(context): + """Determine if request is intended for an MRAP accesspoint.""" + s3_accesspoint = context.get('s3_accesspoint', {}) + is_global = s3_accesspoint.get('region') == '' + return is_global + + +def create_nested_client(session, service_name, **kwargs): + # If a client is created from within a plugin based on the environment variable, + # an infinite loop could arise. Any clients created from within another client + # must use this method to prevent infinite loops. + ctx = PluginContext(plugins="DISABLED") + token = set_plugin_context(ctx) + try: + return session.create_client(service_name, **kwargs) + finally: + reset_plugin_context(token) + + +class _RetriesExceededError(Exception): + """Internal exception used when the number of retries are exceeded.""" + + pass + + +class BadIMDSRequestError(Exception): + def __init__(self, request): + self.request = request + + +class IMDSFetcher: + _RETRIES_EXCEEDED_ERROR_CLS = _RetriesExceededError + _TOKEN_PATH = 'latest/api/token' + _TOKEN_TTL = '21600' + + def __init__( + self, + timeout=DEFAULT_METADATA_SERVICE_TIMEOUT, + num_attempts=1, + base_url=METADATA_BASE_URL, + env=None, + user_agent=None, + config=None, + ): + self._timeout = timeout + self._num_attempts = num_attempts + if config is None: + config = {} + self._base_url = self._select_base_url(base_url, config) + self._config = config + + if env is None: + env = os.environ.copy() + self._disabled = ( + env.get('AWS_EC2_METADATA_DISABLED', 'false').lower() == 'true' + ) + self._imds_v1_disabled = config.get('ec2_metadata_v1_disabled') + self._user_agent = user_agent + self._session = botocore.httpsession.URLLib3Session( + timeout=self._timeout, + proxies=get_environ_proxies(self._base_url), + ) + + def get_base_url(self): + return self._base_url + + def _select_base_url(self, base_url, config): + if config is None: + config = {} + + requires_ipv6 = ( + config.get('ec2_metadata_service_endpoint_mode') == 'ipv6' + ) + custom_metadata_endpoint = config.get('ec2_metadata_service_endpoint') + + if requires_ipv6 and custom_metadata_endpoint: + logger.warning( + "Custom endpoint and IMDS_USE_IPV6 are both set. Using custom endpoint." + ) + + chosen_base_url = None + + if base_url != METADATA_BASE_URL: + chosen_base_url = base_url + elif custom_metadata_endpoint: + chosen_base_url = custom_metadata_endpoint + elif requires_ipv6: + chosen_base_url = METADATA_BASE_URL_IPv6 + else: + chosen_base_url = METADATA_BASE_URL + + logger.debug("IMDS ENDPOINT: %s", chosen_base_url) + if not is_valid_uri(chosen_base_url): + raise InvalidIMDSEndpointError(endpoint=chosen_base_url) + + return chosen_base_url + + def _construct_url(self, path): + sep = '' + if self._base_url and not self._base_url.endswith('/'): + sep = '/' + return f'{self._base_url}{sep}{path}' + + def _fetch_metadata_token(self): + self._assert_enabled() + url = self._construct_url(self._TOKEN_PATH) + headers = { + 'x-aws-ec2-metadata-token-ttl-seconds': self._TOKEN_TTL, + } + self._add_user_agent(headers) + request = botocore.awsrequest.AWSRequest( + method='PUT', url=url, headers=headers + ) + for i in range(self._num_attempts): + try: + response = self._session.send(request.prepare()) + if response.status_code == 200: + return response.text + elif response.status_code in (404, 403, 405): + return None + elif response.status_code in (400,): + raise BadIMDSRequestError(request) + except ReadTimeoutError: + return None + except RETRYABLE_HTTP_ERRORS as e: + logger.debug( + "Caught retryable HTTP exception while making metadata " + "service request to %s: %s", + url, + e, + exc_info=True, + ) + except HTTPClientError as e: + if isinstance(e.kwargs.get('error'), LocationParseError): + raise InvalidIMDSEndpointError(endpoint=url, error=e) + else: + raise + return None + + def _get_request(self, url_path, retry_func, token=None): + """Make a get request to the Instance Metadata Service. + + :type url_path: str + :param url_path: The path component of the URL to make a get request. + This arg is appended to the base_url that was provided in the + initializer. + + :type retry_func: callable + :param retry_func: A function that takes the response as an argument + and determines if it needs to retry. By default empty and non + 200 OK responses are retried. + + :type token: str + :param token: Metadata token to send along with GET requests to IMDS. + """ + self._assert_enabled() + if not token: + self._assert_v1_enabled() + if retry_func is None: + retry_func = self._default_retry + url = self._construct_url(url_path) + headers = {} + if token is not None: + headers['x-aws-ec2-metadata-token'] = token + self._add_user_agent(headers) + for i in range(self._num_attempts): + try: + request = botocore.awsrequest.AWSRequest( + method='GET', url=url, headers=headers + ) + response = self._session.send(request.prepare()) + if not retry_func(response): + return response + except RETRYABLE_HTTP_ERRORS as e: + logger.debug( + "Caught retryable HTTP exception while making metadata " + "service request to %s: %s", + url, + e, + exc_info=True, + ) + raise self._RETRIES_EXCEEDED_ERROR_CLS() + + def _add_user_agent(self, headers): + if self._user_agent is not None: + headers['User-Agent'] = self._user_agent + + def _assert_enabled(self): + if self._disabled: + logger.debug("Access to EC2 metadata has been disabled.") + raise self._RETRIES_EXCEEDED_ERROR_CLS() + + def _assert_v1_enabled(self): + if self._imds_v1_disabled: + raise MetadataRetrievalError( + error_msg="Unable to retrieve token for use in IMDSv2 call and IMDSv1 has been disabled" + ) + + def _default_retry(self, response): + return self._is_non_ok_response(response) or self._is_empty(response) + + def _is_non_ok_response(self, response): + if response.status_code != 200: + self._log_imds_response(response, 'non-200', log_body=True) + return True + return False + + def _is_empty(self, response): + if not response.content: + self._log_imds_response(response, 'no body', log_body=True) + return True + return False + + def _log_imds_response(self, response, reason_to_log, log_body=False): + statement = ( + "Metadata service returned %s response " + "with status code of %s for url: %s" + ) + logger_args = [reason_to_log, response.status_code, response.url] + if log_body: + statement += ", content body: %s" + logger_args.append(response.content) + logger.debug(statement, *logger_args) + + +class InstanceMetadataFetcher(IMDSFetcher): + _URL_PATH = 'latest/meta-data/iam/security-credentials/' + _REQUIRED_CREDENTIAL_FIELDS = [ + 'AccessKeyId', + 'SecretAccessKey', + 'Token', + 'Expiration', + ] + + def retrieve_iam_role_credentials(self): + try: + token = self._fetch_metadata_token() + role_name = self._get_iam_role(token) + credentials = self._get_credentials(role_name, token) + if self._contains_all_credential_fields(credentials): + credentials = { + 'role_name': role_name, + 'access_key': credentials['AccessKeyId'], + 'secret_key': credentials['SecretAccessKey'], + 'token': credentials['Token'], + 'expiry_time': credentials['Expiration'], + } + self._evaluate_expiration(credentials) + return credentials + else: + # IMDS can return a 200 response that has a JSON formatted + # error message (i.e. if ec2 is not trusted entity for the + # attached role). We do not necessarily want to retry for + # these and we also do not necessarily want to raise a key + # error. So at least log the problematic response and return + # an empty dictionary to signal that it was not able to + # retrieve credentials. These error will contain both a + # Code and Message key. + if 'Code' in credentials and 'Message' in credentials: + logger.debug( + 'Error response received when retrieving' + 'credentials: %s.', + credentials, + ) + return {} + except self._RETRIES_EXCEEDED_ERROR_CLS: + logger.debug( + "Max number of attempts exceeded (%s) when " + "attempting to retrieve data from metadata service.", + self._num_attempts, + ) + except BadIMDSRequestError as e: + logger.debug("Bad IMDS request: %s", e.request) + return {} + + def _get_iam_role(self, token=None): + return self._get_request( + url_path=self._URL_PATH, + retry_func=self._needs_retry_for_role_name, + token=token, + ).text + + def _get_credentials(self, role_name, token=None): + r = self._get_request( + url_path=self._URL_PATH + role_name, + retry_func=self._needs_retry_for_credentials, + token=token, + ) + return json.loads(r.text) + + def _is_invalid_json(self, response): + try: + json.loads(response.text) + return False + except ValueError: + self._log_imds_response(response, 'invalid json') + return True + + def _needs_retry_for_role_name(self, response): + return self._is_non_ok_response(response) or self._is_empty(response) + + def _needs_retry_for_credentials(self, response): + return ( + self._is_non_ok_response(response) + or self._is_empty(response) + or self._is_invalid_json(response) + ) + + def _contains_all_credential_fields(self, credentials): + for field in self._REQUIRED_CREDENTIAL_FIELDS: + if field not in credentials: + logger.debug( + 'Retrieved credentials is missing required field: %s', + field, + ) + return False + return True + + def _evaluate_expiration(self, credentials): + expiration = credentials.get("expiry_time") + if expiration is None: + return + try: + expiration = datetime.datetime.strptime( + expiration, "%Y-%m-%dT%H:%M:%SZ" + ) + refresh_interval = self._config.get( + "ec2_credential_refresh_window", 60 * 10 + ) + jitter = random.randint(120, 600) # Between 2 to 10 minutes + refresh_interval_with_jitter = refresh_interval + jitter + current_time = get_current_datetime() + refresh_offset = datetime.timedelta( + seconds=refresh_interval_with_jitter + ) + extension_time = expiration - refresh_offset + if current_time >= extension_time: + new_time = current_time + refresh_offset + credentials["expiry_time"] = new_time.strftime( + "%Y-%m-%dT%H:%M:%SZ" + ) + logger.info( + "Attempting credential expiration extension due to a " + "credential service availability issue. A refresh of " + "these credentials will be attempted again within " + "the next %.0f minutes.", + refresh_interval_with_jitter / 60, + ) + except ValueError: + logger.debug( + "Unable to parse expiry_time in %s", credentials['expiry_time'] + ) + + +class IMDSRegionProvider: + def __init__(self, session, environ=None, fetcher=None): + """Initialize IMDSRegionProvider. + :type session: :class:`botocore.session.Session` + :param session: The session is needed to look up configuration for + how to contact the instance metadata service. Specifically the + whether or not it should use the IMDS region at all, and if so how + to configure the timeout and number of attempts to reach the + service. + :type environ: None or dict + :param environ: A dictionary of environment variables to use. If + ``None`` is the argument then ``os.environ`` will be used by + default. + :type fecther: :class:`botocore.utils.InstanceMetadataRegionFetcher` + :param fetcher: The class to actually handle the fetching of the region + from the IMDS. If not provided a default one will be created. + """ + self._session = session + if environ is None: + environ = os.environ + self._environ = environ + self._fetcher = fetcher + + def provide(self): + """Provide the region value from IMDS.""" + instance_region = self._get_instance_metadata_region() + return instance_region + + def _get_instance_metadata_region(self): + fetcher = self._get_fetcher() + region = fetcher.retrieve_region() + return region + + def _get_fetcher(self): + if self._fetcher is None: + self._fetcher = self._create_fetcher() + return self._fetcher + + def _create_fetcher(self): + metadata_timeout = self._session.get_config_variable( + 'metadata_service_timeout' + ) + metadata_num_attempts = self._session.get_config_variable( + 'metadata_service_num_attempts' + ) + imds_config = { + 'ec2_metadata_service_endpoint': self._session.get_config_variable( + 'ec2_metadata_service_endpoint' + ), + 'ec2_metadata_service_endpoint_mode': resolve_imds_endpoint_mode( + self._session + ), + 'ec2_metadata_v1_disabled': self._session.get_config_variable( + 'ec2_metadata_v1_disabled' + ), + } + fetcher = InstanceMetadataRegionFetcher( + timeout=metadata_timeout, + num_attempts=metadata_num_attempts, + env=self._environ, + user_agent=self._session.user_agent(), + config=imds_config, + ) + return fetcher + + +class InstanceMetadataRegionFetcher(IMDSFetcher): + _URL_PATH = 'latest/meta-data/placement/availability-zone/' + + def retrieve_region(self): + """Get the current region from the instance metadata service. + :rvalue: str + :returns: The region the current instance is running in or None + if the instance metadata service cannot be contacted or does not + give a valid response. + :rtype: None or str + :returns: Returns the region as a string if it is configured to use + IMDS as a region source. Otherwise returns ``None``. It will also + return ``None`` if it fails to get the region from IMDS due to + exhausting its retries or not being able to connect. + """ + try: + region = self._get_region() + return region + except self._RETRIES_EXCEEDED_ERROR_CLS: + logger.debug( + "Max number of attempts exceeded (%s) when " + "attempting to retrieve data from metadata service.", + self._num_attempts, + ) + return None + + def _get_region(self): + token = self._fetch_metadata_token() + response = self._get_request( + url_path=self._URL_PATH, + retry_func=self._default_retry, + token=token, + ) + availability_zone = response.text + region = availability_zone[:-1] + return region + + +def merge_dicts(dict1, dict2, append_lists=False): + """Given two dict, merge the second dict into the first. + + The dicts can have arbitrary nesting. + + :param append_lists: If true, instead of clobbering a list with the new + value, append all of the new values onto the original list. + """ + for key in dict2: + if isinstance(dict2[key], dict): + if key in dict1 and key in dict2: + merge_dicts(dict1[key], dict2[key]) + else: + dict1[key] = dict2[key] + # If the value is a list and the ``append_lists`` flag is set, + # append the new values onto the original list + elif isinstance(dict2[key], list) and append_lists: + # The value in dict1 must be a list in order to append new + # values onto it. + if key in dict1 and isinstance(dict1[key], list): + dict1[key].extend(dict2[key]) + else: + dict1[key] = dict2[key] + else: + # At scalar types, we iterate and merge the + # current dict that we're on. + dict1[key] = dict2[key] + + +def lowercase_dict(original): + """Copies the given dictionary ensuring all keys are lowercase strings.""" + copy = {} + for key in original: + copy[key.lower()] = original[key] + return copy + + +def parse_key_val_file(filename, _open=open): + try: + with _open(filename) as f: + contents = f.read() + return parse_key_val_file_contents(contents) + except OSError: + raise ConfigNotFound(path=filename) + + +def parse_key_val_file_contents(contents): + # This was originally extracted from the EC2 credential provider, which was + # fairly lenient in its parsing. We only try to parse key/val pairs if + # there's a '=' in the line. + final = {} + for line in contents.splitlines(): + if '=' not in line: + continue + key, val = line.split('=', 1) + key = key.strip() + val = val.strip() + final[key] = val + return final + + +def percent_encode_sequence(mapping, safe=SAFE_CHARS): + """Urlencode a dict or list into a string. + + This is similar to urllib.urlencode except that: + + * It uses quote, and not quote_plus + * It has a default list of safe chars that don't need + to be encoded, which matches what AWS services expect. + + If any value in the input ``mapping`` is a list type, + then each list element wil be serialized. This is the equivalent + to ``urlencode``'s ``doseq=True`` argument. + + This function should be preferred over the stdlib + ``urlencode()`` function. + + :param mapping: Either a dict to urlencode or a list of + ``(key, value)`` pairs. + + """ + encoded_pairs = [] + if hasattr(mapping, 'items'): + pairs = mapping.items() + else: + pairs = mapping + for key, value in pairs: + if isinstance(value, list): + for element in value: + encoded_pairs.append( + f'{percent_encode(key)}={percent_encode(element)}' + ) + else: + encoded_pairs.append( + f'{percent_encode(key)}={percent_encode(value)}' + ) + return '&'.join(encoded_pairs) + + +def percent_encode(input_str, safe=SAFE_CHARS): + """Urlencodes a string. + + Whereas percent_encode_sequence handles taking a dict/sequence and + producing a percent encoded string, this function deals only with + taking a string (not a dict/sequence) and percent encoding it. + + If given the binary type, will simply URL encode it. If given the + text type, will produce the binary type by UTF-8 encoding the + text. If given something else, will convert it to the text type + first. + """ + # If its not a binary or text string, make it a text string. + if not isinstance(input_str, (bytes, str)): + input_str = str(input_str) + # If it's not bytes, make it bytes by UTF-8 encoding it. + if not isinstance(input_str, bytes): + input_str = input_str.encode('utf-8') + return quote(input_str, safe=safe) + + +def _epoch_seconds_to_datetime(value, tzinfo): + """Parse numerical epoch timestamps (seconds since 1970) into a + ``datetime.datetime`` in UTC using ``datetime.timedelta``. This is intended + as fallback when ``fromtimestamp`` raises ``OverflowError`` or ``OSError``. + + :type value: float or int + :param value: The Unix timestamps as number. + + :type tzinfo: callable + :param tzinfo: A ``datetime.tzinfo`` class or compatible callable. + """ + epoch_zero = datetime.datetime(1970, 1, 1, 0, 0, 0, tzinfo=tzutc()) + epoch_zero_localized = epoch_zero.astimezone(tzinfo()) + return epoch_zero_localized + datetime.timedelta(seconds=value) + + +def _parse_timestamp_with_tzinfo(value, tzinfo): + """Parse timestamp with pluggable tzinfo options.""" + if isinstance(value, (int, float)): + # Possibly an epoch time. + return datetime.datetime.fromtimestamp(value, tzinfo()) + else: + try: + return datetime.datetime.fromtimestamp(float(value), tzinfo()) + except (TypeError, ValueError): + pass + try: + # In certain cases, a timestamp marked with GMT can be parsed into a + # different time zone, so here we provide a context which will + # enforce that GMT == UTC. + return dateutil.parser.parse(value, tzinfos={'GMT': tzutc()}) + except (TypeError, ValueError) as e: + raise ValueError(f'Invalid timestamp "{value}": {e}') + + +def parse_timestamp(value): + """Parse a timestamp into a datetime object. + + Supported formats: + + * iso8601 + * rfc822 + * epoch (value is an integer) + + This will return a ``datetime.datetime`` object. + + """ + tzinfo_options = get_tzinfo_options() + for tzinfo in tzinfo_options: + try: + return _parse_timestamp_with_tzinfo(value, tzinfo) + except (OSError, OverflowError) as e: + logger.debug( + 'Unable to parse timestamp with "%s" timezone info.', + tzinfo.__name__, + exc_info=e, + ) + # For numeric values attempt fallback to using fromtimestamp-free method. + # From Python's ``datetime.datetime.fromtimestamp`` documentation: "This + # may raise ``OverflowError``, if the timestamp is out of the range of + # values supported by the platform C localtime() function, and ``OSError`` + # on localtime() failure. It's common for this to be restricted to years + # from 1970 through 2038." + try: + numeric_value = float(value) + except (TypeError, ValueError): + pass + else: + try: + for tzinfo in tzinfo_options: + return _epoch_seconds_to_datetime(numeric_value, tzinfo=tzinfo) + except (OSError, OverflowError) as e: + logger.debug( + 'Unable to parse timestamp using fallback method with "%s" ' + 'timezone info.', + tzinfo.__name__, + exc_info=e, + ) + raise RuntimeError( + f'Unable to calculate correct timezone offset for "{value}"' + ) + + +def parse_to_aware_datetime(value): + """Converted the passed in value to a datetime object with tzinfo. + + This function can be used to normalize all timestamp inputs. This + function accepts a number of different types of inputs, but + will always return a datetime.datetime object with time zone + information. + + The input param ``value`` can be one of several types: + + * A datetime object (both naive and aware) + * An integer representing the epoch time (can also be a string + of the integer, i.e '0', instead of 0). The epoch time is + considered to be UTC. + * An iso8601 formatted timestamp. This does not need to be + a complete timestamp, it can contain just the date portion + without the time component. + + The returned value will be a datetime object that will have tzinfo. + If no timezone info was provided in the input value, then UTC is + assumed, not local time. + + """ + # This is a general purpose method that handles several cases of + # converting the provided value to a string timestamp suitable to be + # serialized to an http request. It can handle: + # 1) A datetime.datetime object. + if isinstance(value, _DatetimeClass): + datetime_obj = value + else: + # 2) A string object that's formatted as a timestamp. + # We document this as being an iso8601 timestamp, although + # parse_timestamp is a bit more flexible. + datetime_obj = parse_timestamp(value) + if datetime_obj.tzinfo is None: + # I think a case would be made that if no time zone is provided, + # we should use the local time. However, to restore backwards + # compat, the previous behavior was to assume UTC, which is + # what we're going to do here. + datetime_obj = datetime_obj.replace(tzinfo=tzutc()) + else: + datetime_obj = datetime_obj.astimezone(tzutc()) + return datetime_obj + + +def datetime2timestamp(dt, default_timezone=None): + """Calculate the timestamp based on the given datetime instance. + + :type dt: datetime + :param dt: A datetime object to be converted into timestamp + :type default_timezone: tzinfo + :param default_timezone: If it is provided as None, we treat it as tzutc(). + But it is only used when dt is a naive datetime. + :returns: The timestamp + """ + epoch = datetime.datetime(1970, 1, 1) + if dt.tzinfo is None: + if default_timezone is None: + default_timezone = tzutc() + dt = dt.replace(tzinfo=default_timezone) + d = dt.replace(tzinfo=None) - dt.utcoffset() - epoch + return d.total_seconds() + + +def calculate_sha256(body, as_hex=False): + """Calculate a sha256 checksum. + + This method will calculate the sha256 checksum of a file like + object. Note that this method will iterate through the entire + file contents. The caller is responsible for ensuring the proper + starting position of the file and ``seek()``'ing the file back + to its starting location if other consumers need to read from + the file like object. + + :param body: Any file like object. The file must be opened + in binary mode such that a ``.read()`` call returns bytes. + :param as_hex: If True, then the hex digest is returned. + If False, then the digest (as binary bytes) is returned. + + :returns: The sha256 checksum + + """ + checksum = hashlib.sha256() + for chunk in iter(lambda: body.read(1024 * 1024), b''): + checksum.update(chunk) + if as_hex: + return checksum.hexdigest() + else: + return checksum.digest() + + +def calculate_tree_hash(body): + """Calculate a tree hash checksum. + + For more information see: + + http://docs.aws.amazon.com/amazonglacier/latest/dev/checksum-calculations.html + + :param body: Any file like object. This has the same constraints as + the ``body`` param in calculate_sha256 + + :rtype: str + :returns: The hex version of the calculated tree hash + + """ + chunks = [] + required_chunk_size = 1024 * 1024 + sha256 = hashlib.sha256 + for chunk in iter(lambda: body.read(required_chunk_size), b''): + chunks.append(sha256(chunk).digest()) + if not chunks: + return sha256(b'').hexdigest() + while len(chunks) > 1: + new_chunks = [] + for first, second in _in_pairs(chunks): + if second is not None: + new_chunks.append(sha256(first + second).digest()) + else: + # We're at the end of the list and there's no pair left. + new_chunks.append(first) + chunks = new_chunks + return binascii.hexlify(chunks[0]).decode('ascii') + + +def _in_pairs(iterable): + # Creates iterator that iterates over the list in pairs: + # for a, b in _in_pairs([0, 1, 2, 3, 4]): + # print(a, b) + # + # will print: + # 0, 1 + # 2, 3 + # 4, None + shared_iter = iter(iterable) + # Note that zip_longest is a compat import that uses + # the itertools izip_longest. This creates an iterator, + # this call below does _not_ immediately create the list + # of pairs. + return zip_longest(shared_iter, shared_iter) + + +class CachedProperty: + """A read only property that caches the initially computed value. + + This descriptor will only call the provided ``fget`` function once. + Subsequent access to this property will return the cached value. + + """ + + def __init__(self, fget): + self._fget = fget + + def __get__(self, obj, cls): + if obj is None: + return self + else: + computed_value = self._fget(obj) + obj.__dict__[self._fget.__name__] = computed_value + return computed_value + + +class ArgumentGenerator: + """Generate sample input based on a shape model. + + This class contains a ``generate_skeleton`` method that will take + an input/output shape (created from ``botocore.model``) and generate + a sample dictionary corresponding to the input/output shape. + + The specific values used are place holder values. For strings either an + empty string or the member name can be used, for numbers 0 or 0.0 is used. + The intended usage of this class is to generate the *shape* of the input + structure. + + This can be useful for operations that have complex input shapes. + This allows a user to just fill in the necessary data instead of + worrying about the specific structure of the input arguments. + + Example usage:: + + s = botocore.session.get_session() + ddb = s.get_service_model('dynamodb') + arg_gen = ArgumentGenerator() + sample_input = arg_gen.generate_skeleton( + ddb.operation_model('CreateTable').input_shape) + print("Sample input for dynamodb.CreateTable: %s" % sample_input) + + """ + + def __init__(self, use_member_names=False): + self._use_member_names = use_member_names + + def generate_skeleton(self, shape): + """Generate a sample input. + + :type shape: ``botocore.model.Shape`` + :param shape: The input shape. + + :return: The generated skeleton input corresponding to the + provided input shape. + + """ + stack = [] + return self._generate_skeleton(shape, stack) + + def _generate_skeleton(self, shape, stack, name=''): + stack.append(shape.name) + try: + if shape.type_name == 'structure': + return self._generate_type_structure(shape, stack) + elif shape.type_name == 'list': + return self._generate_type_list(shape, stack) + elif shape.type_name == 'map': + return self._generate_type_map(shape, stack) + elif shape.type_name == 'string': + if self._use_member_names: + return name + if shape.enum: + return random.choice(shape.enum) + return '' + elif shape.type_name in ['integer', 'long']: + return 0 + elif shape.type_name in ['float', 'double']: + return 0.0 + elif shape.type_name == 'boolean': + return True + elif shape.type_name == 'timestamp': + return datetime.datetime(1970, 1, 1, 0, 0, 0) + finally: + stack.pop() + + def _generate_type_structure(self, shape, stack): + if stack.count(shape.name) > 1: + return {} + skeleton = OrderedDict() + for member_name, member_shape in shape.members.items(): + skeleton[member_name] = self._generate_skeleton( + member_shape, stack, name=member_name + ) + return skeleton + + def _generate_type_list(self, shape, stack): + # For list elements we've arbitrarily decided to + # return two elements for the skeleton list. + name = '' + if self._use_member_names: + name = shape.member.name + return [ + self._generate_skeleton(shape.member, stack, name), + ] + + def _generate_type_map(self, shape, stack): + key_shape = shape.key + value_shape = shape.value + assert key_shape.type_name == 'string' + return OrderedDict( + [ + ('KeyName', self._generate_skeleton(value_shape, stack)), + ] + ) + + +def is_valid_ipv6_endpoint_url(endpoint_url): + if UNSAFE_URL_CHARS.intersection(endpoint_url): + return False + hostname = f'[{urlparse(endpoint_url).hostname}]' + return IPV6_ADDRZ_RE.match(hostname) is not None + + +def is_valid_ipv4_endpoint_url(endpoint_url): + hostname = urlparse(endpoint_url).hostname + return IPV4_RE.match(hostname) is not None + + +def is_valid_endpoint_url(endpoint_url): + """Verify the endpoint_url is valid. + + :type endpoint_url: string + :param endpoint_url: An endpoint_url. Must have at least a scheme + and a hostname. + + :return: True if the endpoint url is valid. False otherwise. + + """ + # post-bpo-43882 urlsplit() strips unsafe characters from URL, causing + # it to pass hostname validation below. Detect them early to fix that. + if UNSAFE_URL_CHARS.intersection(endpoint_url): + return False + parts = urlsplit(endpoint_url) + hostname = parts.hostname + if hostname is None: + return False + if len(hostname) > 255: + return False + if hostname[-1] == ".": + hostname = hostname[:-1] + allowed = re.compile( + r"^((?!-)[A-Z\d-]{1,63}(? 63: + # Wrong length + return False + match = LABEL_RE.match(bucket_name) + if match is None or match.end() != len(bucket_name): + return False + return True + + +def fix_s3_host( + request, + signature_version, + region_name, + default_endpoint_url=None, + **kwargs, +): + """ + This handler looks at S3 requests just before they are signed. + If there is a bucket name on the path (true for everything except + ListAllBuckets) it checks to see if that bucket name conforms to + the DNS naming conventions. If it does, it alters the request to + use ``virtual hosting`` style addressing rather than ``path-style`` + addressing. + + """ + if request.context.get('use_global_endpoint', False): + default_endpoint_url = 's3.amazonaws.com' + try: + switch_to_virtual_host_style( + request, signature_version, default_endpoint_url + ) + except InvalidDNSNameError as e: + bucket_name = e.kwargs['bucket_name'] + logger.debug( + 'Not changing URI, bucket is not DNS compatible: %s', bucket_name + ) + + +def switch_to_virtual_host_style( + request, signature_version, default_endpoint_url=None, **kwargs +): + """ + This is a handler to force virtual host style s3 addressing no matter + the signature version (which is taken in consideration for the default + case). If the bucket is not DNS compatible an InvalidDNSName is thrown. + + :param request: A AWSRequest object that is about to be sent. + :param signature_version: The signature version to sign with + :param default_endpoint_url: The endpoint to use when switching to a + virtual style. If None is supplied, the virtual host will be + constructed from the url of the request. + """ + if request.auth_path is not None: + # The auth_path has already been applied (this may be a + # retried request). We don't need to perform this + # customization again. + return + elif _is_get_bucket_location_request(request): + # For the GetBucketLocation response, we should not be using + # the virtual host style addressing so we can avoid any sigv4 + # issues. + logger.debug( + "Request is GetBucketLocation operation, not checking " + "for DNS compatibility." + ) + return + parts = urlsplit(request.url) + request.auth_path = parts.path + path_parts = parts.path.split('/') + + # Retrieve what the endpoint we will be prepending the bucket name to. + if default_endpoint_url is None: + default_endpoint_url = parts.netloc + + if len(path_parts) > 1: + bucket_name = path_parts[1] + if not bucket_name: + # If the bucket name is empty we should not be checking for + # dns compatibility. + return + logger.debug('Checking for DNS compatible bucket for: %s', request.url) + if check_dns_name(bucket_name): + # If the operation is on a bucket, the auth_path must be + # terminated with a '/' character. + if len(path_parts) == 2: + if request.auth_path[-1] != '/': + request.auth_path += '/' + path_parts.remove(bucket_name) + # At the very least the path must be a '/', such as with the + # CreateBucket operation when DNS style is being used. If this + # is not used you will get an empty path which is incorrect. + path = '/'.join(path_parts) or '/' + global_endpoint = default_endpoint_url + host = bucket_name + '.' + global_endpoint + new_tuple = (parts.scheme, host, path, parts.query, '') + new_uri = urlunsplit(new_tuple) + request.url = new_uri + logger.debug('URI updated to: %s', new_uri) + else: + raise InvalidDNSNameError(bucket_name=bucket_name) + + +def _is_get_bucket_location_request(request): + return request.url.endswith('?location') + + +def instance_cache(func): + """Method decorator for caching method calls to a single instance. + + **This is not a general purpose caching decorator.** + + In order to use this, you *must* provide an ``_instance_cache`` + attribute on the instance. + + This decorator is used to cache method calls. The cache is only + scoped to a single instance though such that multiple instances + will maintain their own cache. In order to keep things simple, + this decorator requires that you provide an ``_instance_cache`` + attribute on your instance. + + """ + func_name = func.__name__ + + @functools.wraps(func) + def _cache_guard(self, *args, **kwargs): + cache_key = (func_name, args) + if kwargs: + kwarg_items = tuple(sorted(kwargs.items())) + cache_key = (func_name, args, kwarg_items) + result = self._instance_cache.get(cache_key) + if result is not None: + return result + result = func(self, *args, **kwargs) + self._instance_cache[cache_key] = result + return result + + return _cache_guard + + +def lru_cache_weakref(*cache_args, **cache_kwargs): + """ + Version of functools.lru_cache that stores a weak reference to ``self``. + + Serves the same purpose as :py:func:`instance_cache` but uses Python's + functools implementation which offers ``max_size`` and ``typed`` properties. + + lru_cache is a global cache even when used on a method. The cache's + reference to ``self`` will prevent garbage collection of the object. This + wrapper around functools.lru_cache replaces the reference to ``self`` with + a weak reference to not interfere with garbage collection. + """ + + def wrapper(func): + @functools.lru_cache(*cache_args, **cache_kwargs) + def func_with_weakref(weakref_to_self, *args, **kwargs): + return func(weakref_to_self(), *args, **kwargs) + + @functools.wraps(func) + def inner(self, *args, **kwargs): + for kwarg_key, kwarg_value in kwargs.items(): + if isinstance(kwarg_value, list): + kwargs[kwarg_key] = tuple(kwarg_value) + return func_with_weakref(weakref.ref(self), *args, **kwargs) + + inner.cache_info = func_with_weakref.cache_info + return inner + + return wrapper + + +def switch_host_s3_accelerate(request, operation_name, **kwargs): + """Switches the current s3 endpoint with an S3 Accelerate endpoint""" + + # Note that when registered the switching of the s3 host happens + # before it gets changed to virtual. So we are not concerned with ensuring + # that the bucket name is translated to the virtual style here and we + # can hard code the Accelerate endpoint. + parts = urlsplit(request.url).netloc.split('.') + parts = [p for p in parts if p in S3_ACCELERATE_WHITELIST] + endpoint = 'https://s3-accelerate.' + if len(parts) > 0: + endpoint += '.'.join(parts) + '.' + endpoint += 'amazonaws.com' + + if operation_name in ['ListBuckets', 'CreateBucket', 'DeleteBucket']: + return + _switch_hosts(request, endpoint, use_new_scheme=False) + + +def switch_host_with_param(request, param_name): + """Switches the host using a parameter value from a JSON request body""" + request_json = json.loads(request.data.decode('utf-8')) + if request_json.get(param_name): + new_endpoint = request_json[param_name] + _switch_hosts(request, new_endpoint) + + +def _switch_hosts(request, new_endpoint, use_new_scheme=True): + final_endpoint = _get_new_endpoint( + request.url, new_endpoint, use_new_scheme + ) + request.url = final_endpoint + + +def _get_new_endpoint(original_endpoint, new_endpoint, use_new_scheme=True): + new_endpoint_components = urlsplit(new_endpoint) + original_endpoint_components = urlsplit(original_endpoint) + scheme = original_endpoint_components.scheme + if use_new_scheme: + scheme = new_endpoint_components.scheme + final_endpoint_components = ( + scheme, + new_endpoint_components.netloc, + original_endpoint_components.path, + original_endpoint_components.query, + '', + ) + final_endpoint = urlunsplit(final_endpoint_components) + logger.debug( + 'Updating URI from %s to %s', original_endpoint, final_endpoint + ) + return final_endpoint + + +def deep_merge(base, extra): + """Deeply two dictionaries, overriding existing keys in the base. + + :param base: The base dictionary which will be merged into. + :param extra: The dictionary to merge into the base. Keys from this + dictionary will take precedence. + """ + for key in extra: + # If the key represents a dict on both given dicts, merge the sub-dicts + if ( + key in base + and isinstance(base[key], dict) + and isinstance(extra[key], dict) + ): + deep_merge(base[key], extra[key]) + continue + + # Otherwise, set the key on the base to be the value of the extra. + base[key] = extra[key] + + +def hyphenize_service_id(service_id): + """Translate the form used for event emitters. + + :param service_id: The service_id to convert. + """ + return service_id.replace(' ', '-').lower() + + +class IdentityCache: + """Base IdentityCache implementation for storing and retrieving + highly accessed credentials. + + This class is not intended to be instantiated in user code. + """ + + METHOD = "base_identity_cache" + + def __init__(self, client, credential_cls): + self._client = client + self._credential_cls = credential_cls + + def get_credentials(self, **kwargs): + callback = self.build_refresh_callback(**kwargs) + metadata = callback() + credential_entry = self._credential_cls.create_from_metadata( + metadata=metadata, + refresh_using=callback, + method=self.METHOD, + advisory_timeout=45, + mandatory_timeout=10, + ) + return credential_entry + + def build_refresh_callback(**kwargs): + """Callback to be implemented by subclasses. + + Returns a set of metadata to be converted into a new + credential instance. + """ + raise NotImplementedError() + + +class S3ExpressIdentityCache(IdentityCache): + """S3Express IdentityCache for retrieving and storing + credentials from CreateSession calls. + + This class is not intended to be instantiated in user code. + """ + + METHOD = "s3express" + + def __init__(self, client, credential_cls): + self._client = client + self._credential_cls = credential_cls + + @functools.lru_cache(maxsize=100) + def get_credentials(self, bucket): + return super().get_credentials(bucket=bucket) + + def build_refresh_callback(self, bucket): + def refresher(): + response = self._client.create_session(Bucket=bucket) + creds = response['Credentials'] + expiration = self._serialize_if_needed( + creds['Expiration'], iso=True + ) + return { + "access_key": creds['AccessKeyId'], + "secret_key": creds['SecretAccessKey'], + "token": creds['SessionToken'], + "expiry_time": expiration, + } + + return refresher + + def _serialize_if_needed(self, value, iso=False): + if isinstance(value, _DatetimeClass): + if iso: + return value.isoformat() + return value.strftime('%Y-%m-%dT%H:%M:%S%Z') + return value + + +class S3ExpressIdentityResolver: + def __init__(self, client, credential_cls, cache=None): + self._client = weakref.proxy(client) + + if cache is None: + cache = S3ExpressIdentityCache(self._client, credential_cls) + self._cache = cache + + def register(self, event_emitter=None): + logger.debug('Registering S3Express Identity Resolver') + emitter = event_emitter or self._client.meta.events + emitter.register('before-call.s3', self.apply_signing_cache_key) + emitter.register('before-sign.s3', self.resolve_s3express_identity) + + def apply_signing_cache_key(self, params, context, **kwargs): + endpoint_properties = context.get('endpoint_properties', {}) + backend = endpoint_properties.get('backend', None) + + # Add cache key if Bucket supplied for s3express request + bucket_name = context.get('input_params', {}).get('Bucket') + if backend == 'S3Express' and bucket_name is not None: + context.setdefault('signing', {}) + context['signing']['cache_key'] = bucket_name + + def resolve_s3express_identity( + self, + request, + signing_name, + region_name, + signature_version, + request_signer, + operation_name, + **kwargs, + ): + signing_context = request.context.get('signing', {}) + signing_name = signing_context.get('signing_name') + if signing_name == 's3express' and signature_version.startswith( + 'v4-s3express' + ): + signing_context['identity_cache'] = self._cache + if 'cache_key' not in signing_context: + signing_context['cache_key'] = ( + request.context.get('s3_redirect', {}) + .get('params', {}) + .get('Bucket') + ) + + +class S3RegionRedirectorv2: + """Updated version of S3RegionRedirector for use when + EndpointRulesetResolver is in use for endpoint resolution. + + This class is considered private and subject to abrupt breaking changes or + removal without prior announcement. Please do not use it directly. + """ + + def __init__(self, endpoint_bridge, client, cache=None): + self._cache = cache or {} + self._client = weakref.proxy(client) + + def register(self, event_emitter=None): + logger.debug('Registering S3 region redirector handler') + emitter = event_emitter or self._client.meta.events + emitter.register('needs-retry.s3', self.redirect_from_error) + emitter.register( + 'before-parameter-build.s3', self.annotate_request_context + ) + emitter.register( + 'before-endpoint-resolution.s3', self.redirect_from_cache + ) + + def redirect_from_error(self, request_dict, response, operation, **kwargs): + """ + An S3 request sent to the wrong region will return an error that + contains the endpoint the request should be sent to. This handler + will add the redirect information to the signing context and then + redirect the request. + """ + if response is None: + # This could be none if there was a ConnectionError or other + # transport error. + return + + redirect_ctx = request_dict.get('context', {}).get('s3_redirect', {}) + if ArnParser.is_arn(redirect_ctx.get('bucket')): + logger.debug( + 'S3 request was previously for an Accesspoint ARN, not ' + 'redirecting.' + ) + return + + if redirect_ctx.get('redirected'): + logger.debug( + 'S3 request was previously redirected, not redirecting.' + ) + return + + error = response[1].get('Error', {}) + error_code = error.get('Code') + response_metadata = response[1].get('ResponseMetadata', {}) + + # We have to account for 400 responses because + # if we sign a Head* request with the wrong region, + # we'll get a 400 Bad Request but we won't get a + # body saying it's an "AuthorizationHeaderMalformed". + is_special_head_object = ( + error_code in ('301', '400') and operation.name == 'HeadObject' + ) + is_special_head_bucket = ( + error_code in ('301', '400') + and operation.name == 'HeadBucket' + and 'x-amz-bucket-region' + in response_metadata.get('HTTPHeaders', {}) + ) + is_wrong_signing_region = ( + error_code == 'AuthorizationHeaderMalformed' and 'Region' in error + ) + is_redirect_status = response[0] is not None and response[ + 0 + ].status_code in (301, 302, 307) + is_permanent_redirect = error_code == 'PermanentRedirect' + is_opt_in_region_redirect = ( + error_code == 'IllegalLocationConstraintException' + and operation.name != 'CreateBucket' + ) + if not any( + [ + is_special_head_object, + is_wrong_signing_region, + is_permanent_redirect, + is_special_head_bucket, + is_redirect_status, + is_opt_in_region_redirect, + ] + ): + return + + bucket = request_dict['context']['s3_redirect']['bucket'] + client_region = request_dict['context'].get('client_region') + new_region = self.get_bucket_region(bucket, response) + + if new_region is None: + logger.debug( + "S3 client configured for region %s but the " + "bucket %s is not in that region and the proper region " + "could not be automatically determined.", + client_region, + bucket, + ) + return + + logger.debug( + "S3 client configured for region %s but the bucket %s " + "is in region %s; Please configure the proper region to " + "avoid multiple unnecessary redirects and signing attempts.", + client_region, + bucket, + new_region, + ) + # Adding the new region to _cache will make construct_endpoint() to + # use the new region as value for the AWS::Region builtin parameter. + self._cache[bucket] = new_region + + # Re-resolve endpoint with new region and modify request_dict with + # the new URL, auth scheme, and signing context. + ep_resolver = self._client._ruleset_resolver + ep_info = ep_resolver.construct_endpoint( + operation_model=operation, + call_args=request_dict['context']['s3_redirect']['params'], + request_context=request_dict['context'], + ) + request_dict['url'] = self.set_request_url( + request_dict['url'], ep_info.url + ) + request_dict['context']['s3_redirect']['redirected'] = True + auth_schemes = ep_info.properties.get('authSchemes') + if auth_schemes is not None: + auth_info = ep_resolver.auth_schemes_to_signing_ctx(auth_schemes) + auth_type, signing_context = auth_info + request_dict['context']['auth_type'] = auth_type + request_dict['context']['signing'] = { + **request_dict['context'].get('signing', {}), + **signing_context, + } + + # Return 0 so it doesn't wait to retry + return 0 + + def get_bucket_region(self, bucket, response): + """ + There are multiple potential sources for the new region to redirect to, + but they aren't all universally available for use. This will try to + find region from response elements, but will fall back to calling + HEAD on the bucket if all else fails. + + :param bucket: The bucket to find the region for. This is necessary if + the region is not available in the error response. + :param response: A response representing a service request that failed + due to incorrect region configuration. + """ + # First try to source the region from the headers. + service_response = response[1] + response_headers = service_response['ResponseMetadata']['HTTPHeaders'] + if 'x-amz-bucket-region' in response_headers: + region = response_headers['x-amz-bucket-region'] + # Next, check the error body + elif r := service_response.get('Error', {}).get('Region', None): + region = r + else: + # Finally, HEAD the bucket. No other choice sadly. + try: + response = self._client.head_bucket(Bucket=bucket) + headers = response['ResponseMetadata']['HTTPHeaders'] + except ClientError as e: + headers = e.response['ResponseMetadata']['HTTPHeaders'] + region = headers.get('x-amz-bucket-region', None) + validate_region_name(region) + return region + + def set_request_url(self, old_url, new_endpoint, **kwargs): + """ + Splice a new endpoint into an existing URL. Note that some endpoints + from the the endpoint provider have a path component which will be + discarded by this function. + """ + return _get_new_endpoint(old_url, new_endpoint, False) + + def redirect_from_cache(self, builtins, params, **kwargs): + """ + If a bucket name has been redirected before, it is in the cache. This + handler will update the AWS::Region endpoint resolver builtin param + to use the region from cache instead of the client region to avoid the + redirect. + """ + bucket = params.get('Bucket') + if bucket is not None and bucket in self._cache: + new_region = self._cache.get(bucket) + builtins['AWS::Region'] = new_region + + def annotate_request_context(self, params, context, **kwargs): + """Store the bucket name in context for later use when redirecting. + The bucket name may be an access point ARN or alias. + """ + bucket = params.get('Bucket') + context['s3_redirect'] = { + 'redirected': False, + 'bucket': bucket, + 'params': params, + } + + +class S3RegionRedirector: + """This handler has been replaced by S3RegionRedirectorv2. The original + version remains in place for any third-party libraries that import it. + """ + + def __init__(self, endpoint_bridge, client, cache=None): + self._endpoint_resolver = endpoint_bridge + self._cache = cache + if self._cache is None: + self._cache = {} + + # This needs to be a weak ref in order to prevent memory leaks on + # python 2.6 + self._client = weakref.proxy(client) + + warnings.warn( + 'The S3RegionRedirector class has been deprecated for a new ' + 'internal replacement. A future version of botocore may remove ' + 'this class.', + category=FutureWarning, + ) + + def register(self, event_emitter=None): + emitter = event_emitter or self._client.meta.events + emitter.register('needs-retry.s3', self.redirect_from_error) + emitter.register('before-call.s3', self.set_request_url) + emitter.register('before-parameter-build.s3', self.redirect_from_cache) + + def redirect_from_error(self, request_dict, response, operation, **kwargs): + """ + An S3 request sent to the wrong region will return an error that + contains the endpoint the request should be sent to. This handler + will add the redirect information to the signing context and then + redirect the request. + """ + if response is None: + # This could be none if there was a ConnectionError or other + # transport error. + return + + if self._is_s3_accesspoint(request_dict.get('context', {})): + logger.debug( + 'S3 request was previously to an accesspoint, not redirecting.' + ) + return + + if request_dict.get('context', {}).get('s3_redirected'): + logger.debug( + 'S3 request was previously redirected, not redirecting.' + ) + return + + error = response[1].get('Error', {}) + error_code = error.get('Code') + response_metadata = response[1].get('ResponseMetadata', {}) + + # We have to account for 400 responses because + # if we sign a Head* request with the wrong region, + # we'll get a 400 Bad Request but we won't get a + # body saying it's an "AuthorizationHeaderMalformed". + is_special_head_object = ( + error_code in ('301', '400') and operation.name == 'HeadObject' + ) + is_special_head_bucket = ( + error_code in ('301', '400') + and operation.name == 'HeadBucket' + and 'x-amz-bucket-region' + in response_metadata.get('HTTPHeaders', {}) + ) + is_wrong_signing_region = ( + error_code == 'AuthorizationHeaderMalformed' and 'Region' in error + ) + is_redirect_status = response[0] is not None and response[ + 0 + ].status_code in (301, 302, 307) + is_permanent_redirect = error_code == 'PermanentRedirect' + if not any( + [ + is_special_head_object, + is_wrong_signing_region, + is_permanent_redirect, + is_special_head_bucket, + is_redirect_status, + ] + ): + return + + bucket = request_dict['context']['signing']['bucket'] + client_region = request_dict['context'].get('client_region') + new_region = self.get_bucket_region(bucket, response) + + if new_region is None: + logger.debug( + "S3 client configured for region %s but the bucket %s is not " + "in that region and the proper region could not be " + "automatically determined.", + client_region, + bucket, + ) + return + + logger.debug( + "S3 client configured for region %s but the bucket %s is in region" + " %s; Please configure the proper region to avoid multiple " + "unnecessary redirects and signing attempts.", + client_region, + bucket, + new_region, + ) + endpoint = self._endpoint_resolver.resolve('s3', new_region) + endpoint = endpoint['endpoint_url'] + + signing_context = { + 'region': new_region, + 'bucket': bucket, + 'endpoint': endpoint, + } + request_dict['context']['signing'] = signing_context + + self._cache[bucket] = signing_context + self.set_request_url(request_dict, request_dict['context']) + + request_dict['context']['s3_redirected'] = True + + # Return 0 so it doesn't wait to retry + return 0 + + def get_bucket_region(self, bucket, response): + """ + There are multiple potential sources for the new region to redirect to, + but they aren't all universally available for use. This will try to + find region from response elements, but will fall back to calling + HEAD on the bucket if all else fails. + + :param bucket: The bucket to find the region for. This is necessary if + the region is not available in the error response. + :param response: A response representing a service request that failed + due to incorrect region configuration. + """ + # First try to source the region from the headers. + service_response = response[1] + response_headers = service_response['ResponseMetadata']['HTTPHeaders'] + if 'x-amz-bucket-region' in response_headers: + return response_headers['x-amz-bucket-region'] + + # Next, check the error body + region = service_response.get('Error', {}).get('Region', None) + if region is not None: + return region + + # Finally, HEAD the bucket. No other choice sadly. + try: + response = self._client.head_bucket(Bucket=bucket) + headers = response['ResponseMetadata']['HTTPHeaders'] + except ClientError as e: + headers = e.response['ResponseMetadata']['HTTPHeaders'] + + region = headers.get('x-amz-bucket-region', None) + return region + + def set_request_url(self, params, context, **kwargs): + endpoint = context.get('signing', {}).get('endpoint', None) + if endpoint is not None: + params['url'] = _get_new_endpoint(params['url'], endpoint, False) + + def redirect_from_cache(self, params, context, **kwargs): + """ + This handler retrieves a given bucket's signing context from the cache + and adds it into the request context. + """ + if self._is_s3_accesspoint(context): + return + bucket = params.get('Bucket') + signing_context = self._cache.get(bucket) + if signing_context is not None: + context['signing'] = signing_context + else: + context['signing'] = {'bucket': bucket} + + def _is_s3_accesspoint(self, context): + return 's3_accesspoint' in context + + +class InvalidArnException(ValueError): + pass + + +class ArnParser: + def parse_arn(self, arn): + arn_parts = arn.split(':', 5) + if len(arn_parts) < 6: + raise InvalidArnException( + f'Provided ARN: {arn} must be of the format: ' + 'arn:partition:service:region:account:resource' + ) + return { + 'partition': arn_parts[1], + 'service': arn_parts[2], + 'region': arn_parts[3], + 'account': arn_parts[4], + 'resource': arn_parts[5], + } + + @staticmethod + def is_arn(value): + if not isinstance(value, str) or not value.startswith('arn:'): + return False + arn_parser = ArnParser() + try: + arn_parser.parse_arn(value) + return True + except InvalidArnException: + return False + + +class S3ArnParamHandler: + _RESOURCE_REGEX = re.compile( + r'^(?Paccesspoint|outpost)[/:](?P.+)$' + ) + _OUTPOST_RESOURCE_REGEX = re.compile( + r'^(?P[a-zA-Z0-9\-]{1,63})[/:]accesspoint[/:]' + r'(?P[a-zA-Z0-9\-]{1,63}$)' + ) + _BLACKLISTED_OPERATIONS = ['CreateBucket'] + + def __init__(self, arn_parser=None): + self._arn_parser = arn_parser + if arn_parser is None: + self._arn_parser = ArnParser() + + def register(self, event_emitter): + event_emitter.register('before-parameter-build.s3', self.handle_arn) + + def handle_arn(self, params, model, context, **kwargs): + if model.name in self._BLACKLISTED_OPERATIONS: + return + arn_details = self._get_arn_details_from_bucket_param(params) + if arn_details is None: + return + if arn_details['resource_type'] == 'accesspoint': + self._store_accesspoint(params, context, arn_details) + elif arn_details['resource_type'] == 'outpost': + self._store_outpost(params, context, arn_details) + + def _get_arn_details_from_bucket_param(self, params): + if 'Bucket' in params: + try: + arn = params['Bucket'] + arn_details = self._arn_parser.parse_arn(arn) + self._add_resource_type_and_name(arn, arn_details) + return arn_details + except InvalidArnException: + pass + return None + + def _add_resource_type_and_name(self, arn, arn_details): + match = self._RESOURCE_REGEX.match(arn_details['resource']) + if match: + arn_details['resource_type'] = match.group('resource_type') + arn_details['resource_name'] = match.group('resource_name') + else: + raise UnsupportedS3ArnError(arn=arn) + + def _store_accesspoint(self, params, context, arn_details): + # Ideally the access-point would be stored as a parameter in the + # request where the serializer would then know how to serialize it, + # but access-points are not modeled in S3 operations so it would fail + # validation. Instead, we set the access-point to the bucket parameter + # to have some value set when serializing the request and additional + # information on the context from the arn to use in forming the + # access-point endpoint. + params['Bucket'] = arn_details['resource_name'] + context['s3_accesspoint'] = { + 'name': arn_details['resource_name'], + 'account': arn_details['account'], + 'partition': arn_details['partition'], + 'region': arn_details['region'], + 'service': arn_details['service'], + } + + def _store_outpost(self, params, context, arn_details): + resource_name = arn_details['resource_name'] + match = self._OUTPOST_RESOURCE_REGEX.match(resource_name) + if not match: + raise UnsupportedOutpostResourceError(resource_name=resource_name) + # Because we need to set the bucket name to something to pass + # validation we're going to use the access point name to be consistent + # with normal access point arns. + accesspoint_name = match.group('accesspoint_name') + params['Bucket'] = accesspoint_name + context['s3_accesspoint'] = { + 'outpost_name': match.group('outpost_name'), + 'name': accesspoint_name, + 'account': arn_details['account'], + 'partition': arn_details['partition'], + 'region': arn_details['region'], + 'service': arn_details['service'], + } + + +class S3EndpointSetter: + _DEFAULT_PARTITION = 'aws' + _DEFAULT_DNS_SUFFIX = 'amazonaws.com' + + def __init__( + self, + endpoint_resolver, + region=None, + s3_config=None, + endpoint_url=None, + partition=None, + use_fips_endpoint=False, + ): + # This is calling the endpoint_resolver in regions.py + self._endpoint_resolver = endpoint_resolver + self._region = region + self._s3_config = s3_config + self._use_fips_endpoint = use_fips_endpoint + if s3_config is None: + self._s3_config = {} + self._endpoint_url = endpoint_url + self._partition = partition + if partition is None: + self._partition = self._DEFAULT_PARTITION + + def register(self, event_emitter): + event_emitter.register('before-sign.s3', self.set_endpoint) + event_emitter.register('choose-signer.s3', self.set_signer) + event_emitter.register( + 'before-call.s3.WriteGetObjectResponse', + self.update_endpoint_to_s3_object_lambda, + ) + + def update_endpoint_to_s3_object_lambda(self, params, context, **kwargs): + if self._use_accelerate_endpoint: + raise UnsupportedS3ConfigurationError( + msg='S3 client does not support accelerate endpoints for S3 Object Lambda operations', + ) + + self._override_signing_name(context, 's3-object-lambda') + if self._endpoint_url: + # Only update the url if an explicit url was not provided + return + + resolver = self._endpoint_resolver + # Constructing endpoints as s3-object-lambda as region + resolved = resolver.construct_endpoint( + 's3-object-lambda', self._region + ) + + # Ideally we would be able to replace the endpoint before + # serialization but there's no event to do that currently + # host_prefix is all the arn/bucket specs + new_endpoint = 'https://{host_prefix}{hostname}'.format( + host_prefix=params['host_prefix'], + hostname=resolved['hostname'], + ) + + params['url'] = _get_new_endpoint(params['url'], new_endpoint, False) + + def set_endpoint(self, request, **kwargs): + if self._use_accesspoint_endpoint(request): + self._validate_accesspoint_supported(request) + self._validate_fips_supported(request) + self._validate_global_regions(request) + region_name = self._resolve_region_for_accesspoint_endpoint( + request + ) + self._resolve_signing_name_for_accesspoint_endpoint(request) + self._switch_to_accesspoint_endpoint(request, region_name) + return + if self._use_accelerate_endpoint: + if self._use_fips_endpoint: + raise UnsupportedS3ConfigurationError( + msg=( + 'Client is configured to use the FIPS psuedo region ' + f'for "{self._region}", but S3 Accelerate does not have any FIPS ' + 'compatible endpoints.' + ) + ) + switch_host_s3_accelerate(request=request, **kwargs) + if self._s3_addressing_handler: + self._s3_addressing_handler(request=request, **kwargs) + + def _use_accesspoint_endpoint(self, request): + return 's3_accesspoint' in request.context + + def _validate_fips_supported(self, request): + if not self._use_fips_endpoint: + return + if 'fips' in request.context['s3_accesspoint']['region']: + raise UnsupportedS3AccesspointConfigurationError( + msg={'Invalid ARN, FIPS region not allowed in ARN.'} + ) + if 'outpost_name' in request.context['s3_accesspoint']: + raise UnsupportedS3AccesspointConfigurationError( + msg=( + f'Client is configured to use the FIPS psuedo-region "{self._region}", ' + 'but outpost ARNs do not support FIPS endpoints.' + ) + ) + # Transforming psuedo region to actual region + accesspoint_region = request.context['s3_accesspoint']['region'] + if accesspoint_region != self._region: + if not self._s3_config.get('use_arn_region', True): + # TODO: Update message to reflect use_arn_region + # is not set + raise UnsupportedS3AccesspointConfigurationError( + msg=( + 'Client is configured to use the FIPS psuedo-region ' + f'for "{self._region}", but the access-point ARN provided is for ' + f'the "{accesspoint_region}" region. For clients using a FIPS ' + 'psuedo-region calls to access-point ARNs in another ' + 'region are not allowed.' + ) + ) + + def _validate_global_regions(self, request): + if self._s3_config.get('use_arn_region', True): + return + if self._region in ['aws-global', 's3-external-1']: + raise UnsupportedS3AccesspointConfigurationError( + msg=( + 'Client is configured to use the global psuedo-region ' + f'"{self._region}". When providing access-point ARNs a regional ' + 'endpoint must be specified.' + ) + ) + + def _validate_accesspoint_supported(self, request): + if self._use_accelerate_endpoint: + raise UnsupportedS3AccesspointConfigurationError( + msg=( + 'Client does not support s3 accelerate configuration ' + 'when an access-point ARN is specified.' + ) + ) + request_partition = request.context['s3_accesspoint']['partition'] + if request_partition != self._partition: + raise UnsupportedS3AccesspointConfigurationError( + msg=( + f'Client is configured for "{self._partition}" partition, but access-point' + f' ARN provided is for "{request_partition}" partition. The client and ' + ' access-point partition must be the same.' + ) + ) + s3_service = request.context['s3_accesspoint'].get('service') + if s3_service == 's3-object-lambda' and self._s3_config.get( + 'use_dualstack_endpoint' + ): + raise UnsupportedS3AccesspointConfigurationError( + msg=( + 'Client does not support s3 dualstack configuration ' + 'when an S3 Object Lambda access point ARN is specified.' + ) + ) + outpost_name = request.context['s3_accesspoint'].get('outpost_name') + if outpost_name and self._s3_config.get('use_dualstack_endpoint'): + raise UnsupportedS3AccesspointConfigurationError( + msg=( + 'Client does not support s3 dualstack configuration ' + 'when an outpost ARN is specified.' + ) + ) + self._validate_mrap_s3_config(request) + + def _validate_mrap_s3_config(self, request): + if not is_global_accesspoint(request.context): + return + if self._s3_config.get('s3_disable_multiregion_access_points'): + raise UnsupportedS3AccesspointConfigurationError( + msg=( + 'Invalid configuration, Multi-Region Access Point ' + 'ARNs are disabled.' + ) + ) + elif self._s3_config.get('use_dualstack_endpoint'): + raise UnsupportedS3AccesspointConfigurationError( + msg=( + 'Client does not support s3 dualstack configuration ' + 'when a Multi-Region Access Point ARN is specified.' + ) + ) + + def _resolve_region_for_accesspoint_endpoint(self, request): + if is_global_accesspoint(request.context): + # Requests going to MRAP endpoints MUST be set to any (*) region. + self._override_signing_region(request, '*') + elif self._s3_config.get('use_arn_region', True): + accesspoint_region = request.context['s3_accesspoint']['region'] + # If we are using the region from the access point, + # we will also want to make sure that we set it as the + # signing region as well + self._override_signing_region(request, accesspoint_region) + return accesspoint_region + return self._region + + def set_signer(self, context, **kwargs): + if is_global_accesspoint(context): + if HAS_CRT: + return 's3v4a' + else: + raise MissingDependencyException( + msg="Using S3 with an MRAP arn requires an additional " + "dependency. You will need to pip install " + "botocore[crt] before proceeding." + ) + + def _resolve_signing_name_for_accesspoint_endpoint(self, request): + accesspoint_service = request.context['s3_accesspoint']['service'] + self._override_signing_name(request.context, accesspoint_service) + + def _switch_to_accesspoint_endpoint(self, request, region_name): + original_components = urlsplit(request.url) + accesspoint_endpoint = urlunsplit( + ( + original_components.scheme, + self._get_netloc(request.context, region_name), + self._get_accesspoint_path( + original_components.path, request.context + ), + original_components.query, + '', + ) + ) + logger.debug( + 'Updating URI from %s to %s', request.url, accesspoint_endpoint + ) + request.url = accesspoint_endpoint + + def _get_netloc(self, request_context, region_name): + if is_global_accesspoint(request_context): + return self._get_mrap_netloc(request_context) + else: + return self._get_accesspoint_netloc(request_context, region_name) + + def _get_mrap_netloc(self, request_context): + s3_accesspoint = request_context['s3_accesspoint'] + region_name = 's3-global' + mrap_netloc_components = [s3_accesspoint['name']] + if self._endpoint_url: + endpoint_url_netloc = urlsplit(self._endpoint_url).netloc + mrap_netloc_components.append(endpoint_url_netloc) + else: + partition = s3_accesspoint['partition'] + mrap_netloc_components.extend( + [ + 'accesspoint', + region_name, + self._get_partition_dns_suffix(partition), + ] + ) + return '.'.join(mrap_netloc_components) + + def _get_accesspoint_netloc(self, request_context, region_name): + s3_accesspoint = request_context['s3_accesspoint'] + accesspoint_netloc_components = [ + '{}-{}'.format(s3_accesspoint['name'], s3_accesspoint['account']), + ] + outpost_name = s3_accesspoint.get('outpost_name') + if self._endpoint_url: + if outpost_name: + accesspoint_netloc_components.append(outpost_name) + endpoint_url_netloc = urlsplit(self._endpoint_url).netloc + accesspoint_netloc_components.append(endpoint_url_netloc) + else: + if outpost_name: + outpost_host = [outpost_name, 's3-outposts'] + accesspoint_netloc_components.extend(outpost_host) + elif s3_accesspoint['service'] == 's3-object-lambda': + component = self._inject_fips_if_needed( + 's3-object-lambda', request_context + ) + accesspoint_netloc_components.append(component) + else: + component = self._inject_fips_if_needed( + 's3-accesspoint', request_context + ) + accesspoint_netloc_components.append(component) + if self._s3_config.get('use_dualstack_endpoint'): + accesspoint_netloc_components.append('dualstack') + accesspoint_netloc_components.extend( + [region_name, self._get_dns_suffix(region_name)] + ) + return '.'.join(accesspoint_netloc_components) + + def _inject_fips_if_needed(self, component, request_context): + if self._use_fips_endpoint: + return f'{component}-fips' + return component + + def _get_accesspoint_path(self, original_path, request_context): + # The Bucket parameter was substituted with the access-point name as + # some value was required in serializing the bucket name. Now that + # we are making the request directly to the access point, we will + # want to remove that access-point name from the path. + name = request_context['s3_accesspoint']['name'] + # All S3 operations require at least a / in their path. + return original_path.replace('/' + name, '', 1) or '/' + + def _get_partition_dns_suffix(self, partition_name): + dns_suffix = self._endpoint_resolver.get_partition_dns_suffix( + partition_name + ) + if dns_suffix is None: + dns_suffix = self._DEFAULT_DNS_SUFFIX + return dns_suffix + + def _get_dns_suffix(self, region_name): + resolved = self._endpoint_resolver.construct_endpoint( + 's3', region_name + ) + dns_suffix = self._DEFAULT_DNS_SUFFIX + if resolved and 'dnsSuffix' in resolved: + dns_suffix = resolved['dnsSuffix'] + return dns_suffix + + def _override_signing_region(self, request, region_name): + signing_context = request.context.get('signing', {}) + # S3SigV4Auth will use the context['signing']['region'] value to + # sign with if present. This is used by the Bucket redirector + # as well but we should be fine because the redirector is never + # used in combination with the accesspoint setting logic. + signing_context['region'] = region_name + request.context['signing'] = signing_context + + def _override_signing_name(self, context, signing_name): + signing_context = context.get('signing', {}) + # S3SigV4Auth will use the context['signing']['signing_name'] value to + # sign with if present. This is used by the Bucket redirector + # as well but we should be fine because the redirector is never + # used in combination with the accesspoint setting logic. + signing_context['signing_name'] = signing_name + context['signing'] = signing_context + + @CachedProperty + def _use_accelerate_endpoint(self): + # Enable accelerate if the configuration is set to to true or the + # endpoint being used matches one of the accelerate endpoints. + + # Accelerate has been explicitly configured. + if self._s3_config.get('use_accelerate_endpoint'): + return True + + # Accelerate mode is turned on automatically if an endpoint url is + # provided that matches the accelerate scheme. + if self._endpoint_url is None: + return False + + # Accelerate is only valid for Amazon endpoints. + netloc = urlsplit(self._endpoint_url).netloc + if not netloc.endswith('amazonaws.com'): + return False + + # The first part of the url should always be s3-accelerate. + parts = netloc.split('.') + if parts[0] != 's3-accelerate': + return False + + # Url parts between 's3-accelerate' and 'amazonaws.com' which + # represent different url features. + feature_parts = parts[1:-2] + + # There should be no duplicate url parts. + if len(feature_parts) != len(set(feature_parts)): + return False + + # Remaining parts must all be in the whitelist. + return all(p in S3_ACCELERATE_WHITELIST for p in feature_parts) + + @CachedProperty + def _addressing_style(self): + # Use virtual host style addressing if accelerate is enabled or if + # the given endpoint url is an accelerate endpoint. + if self._use_accelerate_endpoint: + return 'virtual' + + # If a particular addressing style is configured, use it. + configured_addressing_style = self._s3_config.get('addressing_style') + if configured_addressing_style: + return configured_addressing_style + + @CachedProperty + def _s3_addressing_handler(self): + # If virtual host style was configured, use it regardless of whether + # or not the bucket looks dns compatible. + if self._addressing_style == 'virtual': + logger.debug("Using S3 virtual host style addressing.") + return switch_to_virtual_host_style + + # If path style is configured, no additional steps are needed. If + # endpoint_url was specified, don't default to virtual. We could + # potentially default provided endpoint urls to virtual hosted + # style, but for now it is avoided. + if self._addressing_style == 'path' or self._endpoint_url is not None: + logger.debug("Using S3 path style addressing.") + return None + + logger.debug( + "Defaulting to S3 virtual host style addressing with " + "path style addressing fallback." + ) + + # By default, try to use virtual style with path fallback. + return fix_s3_host + + +class S3ControlEndpointSetter: + _DEFAULT_PARTITION = 'aws' + _DEFAULT_DNS_SUFFIX = 'amazonaws.com' + _HOST_LABEL_REGEX = re.compile(r'^[a-zA-Z0-9\-]{1,63}$') + + def __init__( + self, + endpoint_resolver, + region=None, + s3_config=None, + endpoint_url=None, + partition=None, + use_fips_endpoint=False, + ): + self._endpoint_resolver = endpoint_resolver + self._region = region + self._s3_config = s3_config + self._use_fips_endpoint = use_fips_endpoint + if s3_config is None: + self._s3_config = {} + self._endpoint_url = endpoint_url + self._partition = partition + if partition is None: + self._partition = self._DEFAULT_PARTITION + + def register(self, event_emitter): + event_emitter.register('before-sign.s3-control', self.set_endpoint) + + def set_endpoint(self, request, **kwargs): + if self._use_endpoint_from_arn_details(request): + self._validate_endpoint_from_arn_details_supported(request) + region_name = self._resolve_region_from_arn_details(request) + self._resolve_signing_name_from_arn_details(request) + self._resolve_endpoint_from_arn_details(request, region_name) + self._add_headers_from_arn_details(request) + elif self._use_endpoint_from_outpost_id(request): + self._validate_outpost_redirection_valid(request) + self._override_signing_name(request, 's3-outposts') + new_netloc = self._construct_outpost_endpoint(self._region) + self._update_request_netloc(request, new_netloc) + + def _use_endpoint_from_arn_details(self, request): + return 'arn_details' in request.context + + def _use_endpoint_from_outpost_id(self, request): + return 'outpost_id' in request.context + + def _validate_endpoint_from_arn_details_supported(self, request): + if 'fips' in request.context['arn_details']['region']: + raise UnsupportedS3ControlArnError( + arn=request.context['arn_details']['original'], + msg='Invalid ARN, FIPS region not allowed in ARN.', + ) + if not self._s3_config.get('use_arn_region', False): + arn_region = request.context['arn_details']['region'] + if arn_region != self._region: + error_msg = ( + 'The use_arn_region configuration is disabled but ' + f'received arn for "{arn_region}" when the client is configured ' + f'to use "{self._region}"' + ) + raise UnsupportedS3ControlConfigurationError(msg=error_msg) + request_partion = request.context['arn_details']['partition'] + if request_partion != self._partition: + raise UnsupportedS3ControlConfigurationError( + msg=( + f'Client is configured for "{self._partition}" partition, but arn ' + f'provided is for "{request_partion}" partition. The client and ' + 'arn partition must be the same.' + ) + ) + if self._s3_config.get('use_accelerate_endpoint'): + raise UnsupportedS3ControlConfigurationError( + msg='S3 control client does not support accelerate endpoints', + ) + if 'outpost_name' in request.context['arn_details']: + self._validate_outpost_redirection_valid(request) + + def _validate_outpost_redirection_valid(self, request): + if self._s3_config.get('use_dualstack_endpoint'): + raise UnsupportedS3ControlConfigurationError( + msg=( + 'Client does not support s3 dualstack configuration ' + 'when an outpost is specified.' + ) + ) + + def _resolve_region_from_arn_details(self, request): + if self._s3_config.get('use_arn_region', False): + arn_region = request.context['arn_details']['region'] + # If we are using the region from the expanded arn, we will also + # want to make sure that we set it as the signing region as well + self._override_signing_region(request, arn_region) + return arn_region + return self._region + + def _resolve_signing_name_from_arn_details(self, request): + arn_service = request.context['arn_details']['service'] + self._override_signing_name(request, arn_service) + return arn_service + + def _resolve_endpoint_from_arn_details(self, request, region_name): + new_netloc = self._resolve_netloc_from_arn_details( + request, region_name + ) + self._update_request_netloc(request, new_netloc) + + def _update_request_netloc(self, request, new_netloc): + original_components = urlsplit(request.url) + arn_details_endpoint = urlunsplit( + ( + original_components.scheme, + new_netloc, + original_components.path, + original_components.query, + '', + ) + ) + logger.debug( + 'Updating URI from %s to %s', request.url, arn_details_endpoint + ) + request.url = arn_details_endpoint + + def _resolve_netloc_from_arn_details(self, request, region_name): + arn_details = request.context['arn_details'] + if 'outpost_name' in arn_details: + return self._construct_outpost_endpoint(region_name) + account = arn_details['account'] + return self._construct_s3_control_endpoint(region_name, account) + + def _is_valid_host_label(self, label): + return self._HOST_LABEL_REGEX.match(label) + + def _validate_host_labels(self, *labels): + for label in labels: + if not self._is_valid_host_label(label): + raise InvalidHostLabelError(label=label) + + def _construct_s3_control_endpoint(self, region_name, account): + self._validate_host_labels(region_name, account) + if self._endpoint_url: + endpoint_url_netloc = urlsplit(self._endpoint_url).netloc + netloc = [account, endpoint_url_netloc] + else: + netloc = [ + account, + 's3-control', + ] + self._add_dualstack(netloc) + dns_suffix = self._get_dns_suffix(region_name) + netloc.extend([region_name, dns_suffix]) + return self._construct_netloc(netloc) + + def _construct_outpost_endpoint(self, region_name): + self._validate_host_labels(region_name) + if self._endpoint_url: + return urlsplit(self._endpoint_url).netloc + else: + netloc = [ + 's3-outposts', + region_name, + self._get_dns_suffix(region_name), + ] + self._add_fips(netloc) + return self._construct_netloc(netloc) + + def _construct_netloc(self, netloc): + return '.'.join(netloc) + + def _add_fips(self, netloc): + if self._use_fips_endpoint: + netloc[0] = netloc[0] + '-fips' + + def _add_dualstack(self, netloc): + if self._s3_config.get('use_dualstack_endpoint'): + netloc.append('dualstack') + + def _get_dns_suffix(self, region_name): + resolved = self._endpoint_resolver.construct_endpoint( + 's3', region_name + ) + dns_suffix = self._DEFAULT_DNS_SUFFIX + if resolved and 'dnsSuffix' in resolved: + dns_suffix = resolved['dnsSuffix'] + return dns_suffix + + def _override_signing_region(self, request, region_name): + signing_context = request.context.get('signing', {}) + # S3SigV4Auth will use the context['signing']['region'] value to + # sign with if present. This is used by the Bucket redirector + # as well but we should be fine because the redirector is never + # used in combination with the accesspoint setting logic. + signing_context['region'] = region_name + request.context['signing'] = signing_context + + def _override_signing_name(self, request, signing_name): + signing_context = request.context.get('signing', {}) + # S3SigV4Auth will use the context['signing']['signing_name'] value to + # sign with if present. This is used by the Bucket redirector + # as well but we should be fine because the redirector is never + # used in combination with the accesspoint setting logic. + signing_context['signing_name'] = signing_name + request.context['signing'] = signing_context + + def _add_headers_from_arn_details(self, request): + arn_details = request.context['arn_details'] + outpost_name = arn_details.get('outpost_name') + if outpost_name: + self._add_outpost_id_header(request, outpost_name) + + def _add_outpost_id_header(self, request, outpost_name): + request.headers['x-amz-outpost-id'] = outpost_name + + +class S3ControlArnParamHandler: + """This handler has been replaced by S3ControlArnParamHandlerv2. The + original version remains in place for any third-party importers. + """ + + _RESOURCE_SPLIT_REGEX = re.compile(r'[/:]') + + def __init__(self, arn_parser=None): + self._arn_parser = arn_parser + if arn_parser is None: + self._arn_parser = ArnParser() + warnings.warn( + 'The S3ControlArnParamHandler class has been deprecated for a new ' + 'internal replacement. A future version of botocore may remove ' + 'this class.', + category=FutureWarning, + ) + + def register(self, event_emitter): + event_emitter.register( + 'before-parameter-build.s3-control', + self.handle_arn, + ) + + def handle_arn(self, params, model, context, **kwargs): + if model.name in ('CreateBucket', 'ListRegionalBuckets'): + # CreateBucket and ListRegionalBuckets are special cases that do + # not obey ARN based redirection but will redirect based off of the + # presence of the OutpostId parameter + self._handle_outpost_id_param(params, model, context) + else: + self._handle_name_param(params, model, context) + self._handle_bucket_param(params, model, context) + + def _get_arn_details_from_param(self, params, param_name): + if param_name not in params: + return None + try: + arn = params[param_name] + arn_details = self._arn_parser.parse_arn(arn) + arn_details['original'] = arn + arn_details['resources'] = self._split_resource(arn_details) + return arn_details + except InvalidArnException: + return None + + def _split_resource(self, arn_details): + return self._RESOURCE_SPLIT_REGEX.split(arn_details['resource']) + + def _override_account_id_param(self, params, arn_details): + account_id = arn_details['account'] + if 'AccountId' in params and params['AccountId'] != account_id: + error_msg = ( + 'Account ID in arn does not match the AccountId parameter ' + 'provided: "{}"' + ).format(params['AccountId']) + raise UnsupportedS3ControlArnError( + arn=arn_details['original'], + msg=error_msg, + ) + params['AccountId'] = account_id + + def _handle_outpost_id_param(self, params, model, context): + if 'OutpostId' not in params: + return + context['outpost_id'] = params['OutpostId'] + + def _handle_name_param(self, params, model, context): + # CreateAccessPoint is a special case that does not expand Name + if model.name == 'CreateAccessPoint': + return + arn_details = self._get_arn_details_from_param(params, 'Name') + if arn_details is None: + return + if self._is_outpost_accesspoint(arn_details): + self._store_outpost_accesspoint(params, context, arn_details) + else: + error_msg = 'The Name parameter does not support the provided ARN' + raise UnsupportedS3ControlArnError( + arn=arn_details['original'], + msg=error_msg, + ) + + def _is_outpost_accesspoint(self, arn_details): + if arn_details['service'] != 's3-outposts': + return False + resources = arn_details['resources'] + if len(resources) != 4: + return False + # Resource must be of the form outpost/op-123/accesspoint/name + return resources[0] == 'outpost' and resources[2] == 'accesspoint' + + def _store_outpost_accesspoint(self, params, context, arn_details): + self._override_account_id_param(params, arn_details) + accesspoint_name = arn_details['resources'][3] + params['Name'] = accesspoint_name + arn_details['accesspoint_name'] = accesspoint_name + arn_details['outpost_name'] = arn_details['resources'][1] + context['arn_details'] = arn_details + + def _handle_bucket_param(self, params, model, context): + arn_details = self._get_arn_details_from_param(params, 'Bucket') + if arn_details is None: + return + if self._is_outpost_bucket(arn_details): + self._store_outpost_bucket(params, context, arn_details) + else: + error_msg = ( + 'The Bucket parameter does not support the provided ARN' + ) + raise UnsupportedS3ControlArnError( + arn=arn_details['original'], + msg=error_msg, + ) + + def _is_outpost_bucket(self, arn_details): + if arn_details['service'] != 's3-outposts': + return False + resources = arn_details['resources'] + if len(resources) != 4: + return False + # Resource must be of the form outpost/op-123/bucket/name + return resources[0] == 'outpost' and resources[2] == 'bucket' + + def _store_outpost_bucket(self, params, context, arn_details): + self._override_account_id_param(params, arn_details) + bucket_name = arn_details['resources'][3] + params['Bucket'] = bucket_name + arn_details['bucket_name'] = bucket_name + arn_details['outpost_name'] = arn_details['resources'][1] + context['arn_details'] = arn_details + + +class S3ControlArnParamHandlerv2(S3ControlArnParamHandler): + """Updated version of S3ControlArnParamHandler for use when + EndpointRulesetResolver is in use for endpoint resolution. + + This class is considered private and subject to abrupt breaking changes or + removal without prior announcement. Please do not use it directly. + """ + + def __init__(self, arn_parser=None): + self._arn_parser = arn_parser + if arn_parser is None: + self._arn_parser = ArnParser() + + def register(self, event_emitter): + event_emitter.register( + 'before-endpoint-resolution.s3-control', + self.handle_arn, + ) + + def _handle_name_param(self, params, model, context): + # CreateAccessPoint is a special case that does not expand Name + if model.name == 'CreateAccessPoint': + return + arn_details = self._get_arn_details_from_param(params, 'Name') + if arn_details is None: + return + self._raise_for_fips_pseudo_region(arn_details) + self._raise_for_accelerate_endpoint(context) + if self._is_outpost_accesspoint(arn_details): + self._store_outpost_accesspoint(params, context, arn_details) + else: + error_msg = 'The Name parameter does not support the provided ARN' + raise UnsupportedS3ControlArnError( + arn=arn_details['original'], + msg=error_msg, + ) + + def _store_outpost_accesspoint(self, params, context, arn_details): + self._override_account_id_param(params, arn_details) + + def _handle_bucket_param(self, params, model, context): + arn_details = self._get_arn_details_from_param(params, 'Bucket') + if arn_details is None: + return + self._raise_for_fips_pseudo_region(arn_details) + self._raise_for_accelerate_endpoint(context) + if self._is_outpost_bucket(arn_details): + self._store_outpost_bucket(params, context, arn_details) + else: + error_msg = ( + 'The Bucket parameter does not support the provided ARN' + ) + raise UnsupportedS3ControlArnError( + arn=arn_details['original'], + msg=error_msg, + ) + + def _store_outpost_bucket(self, params, context, arn_details): + self._override_account_id_param(params, arn_details) + + def _raise_for_fips_pseudo_region(self, arn_details): + # FIPS pseudo region names cannot be used in ARNs + arn_region = arn_details['region'] + if arn_region.startswith('fips-') or arn_region.endswith('fips-'): + raise UnsupportedS3ControlArnError( + arn=arn_details['original'], + msg='Invalid ARN, FIPS region not allowed in ARN.', + ) + + def _raise_for_accelerate_endpoint(self, context): + s3_config = context['client_config'].s3 or {} + if s3_config.get('use_accelerate_endpoint'): + raise UnsupportedS3ControlConfigurationError( + msg='S3 control client does not support accelerate endpoints', + ) + + +class ContainerMetadataFetcher: + TIMEOUT_SECONDS = 2 + RETRY_ATTEMPTS = 3 + SLEEP_TIME = 1 + IP_ADDRESS = '169.254.170.2' + _ALLOWED_HOSTS = [ + IP_ADDRESS, + '169.254.170.23', + 'fd00:ec2::23', + 'localhost', + ] + + def __init__(self, session=None, sleep=time.sleep): + if session is None: + session = botocore.httpsession.URLLib3Session( + timeout=self.TIMEOUT_SECONDS + ) + self._session = session + self._sleep = sleep + + def retrieve_full_uri(self, full_url, headers=None): + """Retrieve JSON metadata from container metadata. + + :type full_url: str + :param full_url: The full URL of the metadata service. + This should include the scheme as well, e.g + "http://localhost:123/foo" + + """ + self._validate_allowed_url(full_url) + return self._retrieve_credentials(full_url, headers) + + def _validate_allowed_url(self, full_url): + parsed = botocore.compat.urlparse(full_url) + + if parsed.scheme == 'https': + return + if self._is_loopback_address(parsed.hostname): + return + is_whitelisted_host = self._check_if_whitelisted_host(parsed.hostname) + if not is_whitelisted_host: + raise ValueError( + f"Unsupported host '{parsed.hostname}'. Can only retrieve metadata " + f"from a loopback address or one of these hosts: {', '.join(self._ALLOWED_HOSTS)}" + ) + + def _is_loopback_address(self, hostname): + try: + ip = ip_address(hostname) + return ip.is_loopback + except ValueError: + return False + + def _check_if_whitelisted_host(self, host): + if host in self._ALLOWED_HOSTS: + return True + return False + + def retrieve_uri(self, relative_uri): + """Retrieve JSON metadata from container metadata. + + :type relative_uri: str + :param relative_uri: A relative URI, e.g "/foo/bar?id=123" + + :return: The parsed JSON response. + + """ + full_url = self.full_url(relative_uri) + return self._retrieve_credentials(full_url) + + def _retrieve_credentials(self, full_url, extra_headers=None): + headers = {'Accept': 'application/json'} + if extra_headers is not None: + headers.update(extra_headers) + attempts = 0 + while True: + try: + return self._get_response( + full_url, headers, self.TIMEOUT_SECONDS + ) + except MetadataRetrievalError as e: + logger.debug( + "Received error when attempting to retrieve " + "container metadata: %s", + e, + exc_info=True, + ) + self._sleep(self.SLEEP_TIME) + attempts += 1 + if attempts >= self.RETRY_ATTEMPTS: + raise + + def _get_response(self, full_url, headers, timeout): + try: + AWSRequest = botocore.awsrequest.AWSRequest + request = AWSRequest(method='GET', url=full_url, headers=headers) + response = self._session.send(request.prepare()) + response_text = response.content.decode('utf-8') + if response.status_code != 200: + raise MetadataRetrievalError( + error_msg=( + f"Received non 200 response {response.status_code} " + f"from container metadata: {response_text}" + ) + ) + try: + return json.loads(response_text) + except ValueError: + error_msg = "Unable to parse JSON returned from container metadata services" + logger.debug('%s:%s', error_msg, response_text) + raise MetadataRetrievalError(error_msg=error_msg) + except RETRYABLE_HTTP_ERRORS as e: + error_msg = ( + "Received error when attempting to retrieve " + f"container metadata: {e}" + ) + raise MetadataRetrievalError(error_msg=error_msg) + + def full_url(self, relative_uri): + return f'http://{self.IP_ADDRESS}{relative_uri}' + + +def get_environ_proxies(url): + if should_bypass_proxies(url): + return {} + else: + return getproxies() + + +def should_bypass_proxies(url): + """ + Returns whether we should bypass proxies or not. + """ + # NOTE: requests allowed for ip/cidr entries in no_proxy env that we don't + # support current as urllib only checks DNS suffix + # If the system proxy settings indicate that this URL should be bypassed, + # don't proxy. + # The proxy_bypass function is incredibly buggy on OS X in early versions + # of Python 2.6, so allow this call to fail. Only catch the specific + # exceptions we've seen, though: this call failing in other ways can reveal + # legitimate problems. + try: + if proxy_bypass(urlparse(url).netloc): + return True + except (TypeError, socket.gaierror): + pass + + return False + + +def determine_content_length(body): + # No body, content length of 0 + if not body: + return 0 + + # Try asking the body for it's length + try: + return len(body) + except (AttributeError, TypeError): + pass + + # Try getting the length from a seekable stream + if hasattr(body, 'seek') and hasattr(body, 'tell'): + try: + orig_pos = body.tell() + body.seek(0, 2) + end_file_pos = body.tell() + body.seek(orig_pos) + return end_file_pos - orig_pos + except io.UnsupportedOperation: + # in case when body is, for example, io.BufferedIOBase object + # it has "seek" method which throws "UnsupportedOperation" + # exception in such case we want to fall back to "chunked" + # encoding + pass + # Failed to determine the length + return None + + +def get_encoding_from_headers(headers, default='ISO-8859-1'): + """Returns encodings from given HTTP Header Dict. + + :param headers: dictionary to extract encoding from. + :param default: default encoding if the content-type is text + """ + + content_type = headers.get('content-type') + + if not content_type: + return None + + message = email.message.Message() + message['content-type'] = content_type + charset = message.get_param("charset") + + if charset is not None: + return charset + + if 'text' in content_type: + return default + + +def calculate_md5(body, **kwargs): + """This function has been deprecated, but is kept for backwards compatibility.""" + if isinstance(body, (bytes, bytearray)): + binary_md5 = _calculate_md5_from_bytes(body) + else: + binary_md5 = _calculate_md5_from_file(body) + return base64.b64encode(binary_md5).decode('ascii') + + +def _calculate_md5_from_bytes(body_bytes): + """This function has been deprecated, but is kept for backwards compatibility.""" + md5 = get_md5(body_bytes, usedforsecurity=False) + return md5.digest() + + +def _calculate_md5_from_file(fileobj): + """This function has been deprecated, but is kept for backwards compatibility.""" + start_position = fileobj.tell() + md5 = get_md5(usedforsecurity=False) + for chunk in iter(lambda: fileobj.read(1024 * 1024), b''): + md5.update(chunk) + fileobj.seek(start_position) + return md5.digest() + + +def _is_s3express_request(params): + endpoint_properties = params.get('context', {}).get( + 'endpoint_properties', {} + ) + return endpoint_properties.get('backend') == 'S3Express' + + +def get_checksum_algorithm_headers(params): + """ + Returns the a list of header names from the request which start with + "x-amz-checksum-", otherwise returns an empty list. + + This function is considered private and subject to abrupt breaking changes or + removal without prior announcement. Please do not use it directly. + """ + headers = params['headers'] + checksum_headers = [] + + # If a header matching the x-amz-checksum-* pattern is present, we + # extract and return the algorithm name. + for header in headers: + match = CHECKSUM_HEADER_PATTERN.match(header) + if match: + checksum_headers.append(header) + return checksum_headers + + +def has_checksum_header(params): + """ + Checks if a header starting with "x-amz-checksum-" is provided in a request. + + This function is considered private and subject to abrupt breaking changes or + removal without prior announcement. Please do not use it directly. + """ + return bool(get_checksum_algorithm_headers(params)) + + +def conditionally_calculate_checksum(params, **kwargs): + """This function has been deprecated, but is kept for backwards compatibility.""" + if not has_checksum_header(params): + conditionally_calculate_md5(params, **kwargs) + conditionally_enable_crc32(params, **kwargs) + + +def conditionally_enable_crc32(params, **kwargs): + """This function has been deprecated, but is kept for backwards compatibility.""" + checksum_context = params.get('context', {}).get('checksum', {}) + checksum_algorithm = checksum_context.get('request_algorithm') + if ( + _is_s3express_request(params) + and params['body'] is not None + and checksum_algorithm in (None, "conditional-md5") + ): + params['context']['checksum'] = { + 'request_algorithm': { + 'algorithm': 'crc32', + 'in': 'header', + 'name': 'x-amz-checksum-crc32', + } + } + + +def conditionally_calculate_md5(params, **kwargs): + """Only add a Content-MD5 if the system supports it. + + This function has been deprecated, but is kept for backwards compatibility. + """ + body = params['body'] + checksum_context = params.get('context', {}).get('checksum', {}) + checksum_algorithm = checksum_context.get('request_algorithm') + if checksum_algorithm and checksum_algorithm != 'conditional-md5': + # Skip for requests that will have a flexible checksum applied + return + + if has_checksum_header(params): + # Don't add a new header if one is already available. + return + + if _is_s3express_request(params): + # S3Express doesn't support MD5 + return + + if MD5_AVAILABLE and body is not None: + md5_digest = calculate_md5(body, **kwargs) + params['headers']['Content-MD5'] = md5_digest + + +class FileWebIdentityTokenLoader: + def __init__(self, web_identity_token_path, _open=open): + self._web_identity_token_path = web_identity_token_path + self._open = _open + + def __call__(self): + with self._open(self._web_identity_token_path) as token_file: + return token_file.read() + + +class SSOTokenLoader: + def __init__(self, cache=None): + if cache is None: + cache = {} + self._cache = cache + + def _generate_cache_key(self, start_url, session_name): + input_str = start_url + if session_name is not None: + input_str = session_name + return hashlib.sha1(input_str.encode('utf-8')).hexdigest() + + def save_token(self, start_url, token, session_name=None): + cache_key = self._generate_cache_key(start_url, session_name) + self._cache[cache_key] = token + + def __call__(self, start_url, session_name=None): + cache_key = self._generate_cache_key(start_url, session_name) + logger.debug('Checking for cached token at: %s', cache_key) + if cache_key not in self._cache: + name = start_url + if session_name is not None: + name = session_name + error_msg = f'Token for {name} does not exist' + raise SSOTokenLoadError(error_msg=error_msg) + + token = self._cache[cache_key] + if 'accessToken' not in token or 'expiresAt' not in token: + error_msg = f'Token for {start_url} is invalid' + raise SSOTokenLoadError(error_msg=error_msg) + return token + + +class EventbridgeSignerSetter: + _DEFAULT_PARTITION = 'aws' + _DEFAULT_DNS_SUFFIX = 'amazonaws.com' + + def __init__(self, endpoint_resolver, region=None, endpoint_url=None): + self._endpoint_resolver = endpoint_resolver + self._region = region + self._endpoint_url = endpoint_url + + def register(self, event_emitter): + event_emitter.register( + 'before-parameter-build.events.PutEvents', + self.check_for_global_endpoint, + ) + event_emitter.register( + 'before-call.events.PutEvents', self.set_endpoint_url + ) + + def set_endpoint_url(self, params, context, **kwargs): + if 'eventbridge_endpoint' in context: + endpoint = context['eventbridge_endpoint'] + logger.debug( + "Rewriting URL from %s to %s", params['url'], endpoint + ) + params['url'] = endpoint + + def check_for_global_endpoint(self, params, context, **kwargs): + endpoint = params.get('EndpointId') + if endpoint is None: + return + + if len(endpoint) == 0: + raise InvalidEndpointConfigurationError( + msg='EndpointId must not be a zero length string' + ) + + if not HAS_CRT: + raise MissingDependencyException( + msg="Using EndpointId requires an additional " + "dependency. You will need to pip install " + "botocore[crt] before proceeding." + ) + + config = context.get('client_config') + endpoint_variant_tags = None + if config is not None: + if config.use_fips_endpoint: + raise InvalidEndpointConfigurationError( + msg="FIPS is not supported with EventBridge " + "multi-region endpoints." + ) + if config.use_dualstack_endpoint: + endpoint_variant_tags = ['dualstack'] + + if self._endpoint_url is None: + # Validate endpoint is a valid hostname component + parts = urlparse(f'https://{endpoint}') + if parts.hostname != endpoint: + raise InvalidEndpointConfigurationError( + msg='EndpointId is not a valid hostname component.' + ) + resolved_endpoint = self._get_global_endpoint( + endpoint, endpoint_variant_tags=endpoint_variant_tags + ) + else: + resolved_endpoint = self._endpoint_url + + context['eventbridge_endpoint'] = resolved_endpoint + context['auth_type'] = 'v4a' + + def _get_global_endpoint(self, endpoint, endpoint_variant_tags=None): + resolver = self._endpoint_resolver + + partition = resolver.get_partition_for_region(self._region) + if partition is None: + partition = self._DEFAULT_PARTITION + dns_suffix = resolver.get_partition_dns_suffix( + partition, endpoint_variant_tags=endpoint_variant_tags + ) + if dns_suffix is None: + dns_suffix = self._DEFAULT_DNS_SUFFIX + + return f"https://{endpoint}.endpoint.events.{dns_suffix}/" + + +def is_s3_accelerate_url(url): + """Does the URL match the S3 Accelerate endpoint scheme? + + Virtual host naming style with bucket names in the netloc part of the URL + are not allowed by this function. + """ + if url is None: + return False + + # Accelerate is only valid for Amazon endpoints. + url_parts = urlsplit(url) + if not url_parts.netloc.endswith( + 'amazonaws.com' + ) or url_parts.scheme not in ['https', 'http']: + return False + + # The first part of the URL must be s3-accelerate. + parts = url_parts.netloc.split('.') + if parts[0] != 's3-accelerate': + return False + + # Url parts between 's3-accelerate' and 'amazonaws.com' which + # represent different url features. + feature_parts = parts[1:-2] + + # There should be no duplicate URL parts. + if len(feature_parts) != len(set(feature_parts)): + return False + + # Remaining parts must all be in the whitelist. + return all(p in S3_ACCELERATE_WHITELIST for p in feature_parts) + + +class JSONFileCache: + """JSON file cache. + This provides a dict like interface that stores JSON serializable + objects. + The objects are serialized to JSON and stored in a file. These + values can be retrieved at a later time. + """ + + CACHE_DIR = os.path.expanduser(os.path.join('~', '.aws', 'boto', 'cache')) + + def __init__(self, working_dir=CACHE_DIR, dumps_func=None): + self._working_dir = working_dir + if dumps_func is None: + dumps_func = self._default_dumps + self._dumps = dumps_func + + def _default_dumps(self, obj): + return json.dumps(obj, default=self._serialize_if_needed) + + def __contains__(self, cache_key): + actual_key = self._convert_cache_key(cache_key) + return os.path.isfile(actual_key) + + def __getitem__(self, cache_key): + """Retrieve value from a cache key.""" + actual_key = self._convert_cache_key(cache_key) + try: + with open(actual_key) as f: + return json.load(f) + except (OSError, ValueError): + raise KeyError(cache_key) + + def __delitem__(self, cache_key): + actual_key = self._convert_cache_key(cache_key) + try: + key_path = Path(actual_key) + key_path.unlink() + except FileNotFoundError: + raise KeyError(cache_key) + + def __setitem__(self, cache_key, value): + full_key = self._convert_cache_key(cache_key) + try: + file_content = self._dumps(value) + except (TypeError, ValueError): + raise ValueError( + f"Value cannot be cached, must be JSON serializable: {value}" + ) + if not os.path.isdir(self._working_dir): + os.makedirs(self._working_dir, exist_ok=True) + + temp_fd, temp_path = tempfile.mkstemp( + dir=self._working_dir, suffix='.tmp' + ) + with os.fdopen(temp_fd, 'w') as f: + f.write(file_content) + f.flush() + os.fsync(f.fileno()) + + os.replace(temp_path, full_key) + + def _convert_cache_key(self, cache_key): + full_path = os.path.join(self._working_dir, cache_key + '.json') + return full_path + + def _serialize_if_needed(self, value, iso=False): + if isinstance(value, _DatetimeClass): + if iso: + return value.isoformat() + return value.strftime('%Y-%m-%dT%H:%M:%S%Z') + return value + + +def generate_login_cache_key(sign_in_session_name): + return hashlib.sha256(sign_in_session_name.encode('utf-8')).hexdigest() + + +def is_s3express_bucket(bucket): + if bucket is None: + return False + return bucket.endswith('--x-s3') + + +def get_token_from_environment(signing_name, environ=None): + if not isinstance(signing_name, str) or not signing_name.strip(): + return None + + if environ is None: + environ = os.environ + env_var = _get_bearer_env_var_name(signing_name) + return environ.get(env_var) + + +def _get_bearer_env_var_name(signing_name): + bearer_name = signing_name.replace('-', '_').replace(' ', '_').upper() + return f"AWS_BEARER_TOKEN_{bearer_name}" + + +# This parameter is not part of the public interface and is subject to abrupt +# breaking changes or removal without prior announcement. +# Mapping of services that have been renamed for backwards compatibility reasons. +# Keys are the previous name that should be allowed, values are the documented +# and preferred client name. +SERVICE_NAME_ALIASES = {'runtime.sagemaker': 'sagemaker-runtime'} + + +# This parameter is not part of the public interface and is subject to abrupt +# breaking changes or removal without prior announcement. +# Mapping to determine the service ID for services that do not use it as the +# model data directory name. The keys are the data directory name and the +# values are the transformed service IDs (lower case and hyphenated). +CLIENT_NAME_TO_HYPHENIZED_SERVICE_ID_OVERRIDES = { + # Actual service name we use -> Allowed computed service name. + 'apigateway': 'api-gateway', + 'application-autoscaling': 'application-auto-scaling', + 'appmesh': 'app-mesh', + 'autoscaling': 'auto-scaling', + 'autoscaling-plans': 'auto-scaling-plans', + 'ce': 'cost-explorer', + 'cloudhsmv2': 'cloudhsm-v2', + 'cloudsearchdomain': 'cloudsearch-domain', + 'cognito-idp': 'cognito-identity-provider', + 'config': 'config-service', + 'cur': 'cost-and-usage-report-service', + 'datapipeline': 'data-pipeline', + 'directconnect': 'direct-connect', + 'devicefarm': 'device-farm', + 'discovery': 'application-discovery-service', + 'dms': 'database-migration-service', + 'ds': 'directory-service', + 'ds-data': 'directory-service-data', + 'dynamodbstreams': 'dynamodb-streams', + 'elasticbeanstalk': 'elastic-beanstalk', + 'elb': 'elastic-load-balancing', + 'elbv2': 'elastic-load-balancing-v2', + 'es': 'elasticsearch-service', + 'events': 'eventbridge', + 'globalaccelerator': 'global-accelerator', + 'iot-data': 'iot-data-plane', + 'iot-jobs-data': 'iot-jobs-data-plane', + 'iotevents-data': 'iot-events-data', + 'iotevents': 'iot-events', + 'iotwireless': 'iot-wireless', + 'kinesisanalytics': 'kinesis-analytics', + 'kinesisanalyticsv2': 'kinesis-analytics-v2', + 'kinesisvideo': 'kinesis-video', + 'lex-models': 'lex-model-building-service', + 'lexv2-models': 'lex-models-v2', + 'lex-runtime': 'lex-runtime-service', + 'lexv2-runtime': 'lex-runtime-v2', + 'logs': 'cloudwatch-logs', + 'machinelearning': 'machine-learning', + 'marketplacecommerceanalytics': 'marketplace-commerce-analytics', + 'marketplace-entitlement': 'marketplace-entitlement-service', + 'meteringmarketplace': 'marketplace-metering', + 'mgh': 'migration-hub', + 'sms-voice': 'pinpoint-sms-voice', + 'resourcegroupstaggingapi': 'resource-groups-tagging-api', + 'route53': 'route-53', + 'route53domains': 'route-53-domains', + 's3control': 's3-control', + 'sdb': 'simpledb', + 'secretsmanager': 'secrets-manager', + 'serverlessrepo': 'serverlessapplicationrepository', + 'servicecatalog': 'service-catalog', + 'servicecatalog-appregistry': 'service-catalog-appregistry', + 'stepfunctions': 'sfn', + 'storagegateway': 'storage-gateway', +} + + +def get_login_token_cache_directory(): + """Returns which directory contains the login_session token files""" + if 'AWS_LOGIN_CACHE_DIRECTORY' in os.environ: + path = os.path.expandvars(os.environ['AWS_LOGIN_CACHE_DIRECTORY']) + path = os.path.expanduser(path) + return path + else: + return os.path.expanduser(os.path.join('~', '.aws', 'login', 'cache')) + + +class LoginTokenLoader: + """Loads and saves login access tokens to disk""" + + def __init__(self, cache=None): + if cache is None: + cache = {} + self._cache = cache + + def save_token(self, session_name, token): + cache_key = generate_login_cache_key(session_name) + self._cache[cache_key] = token + + def load_token(self, session_name): + cache_key = generate_login_cache_key(session_name) + if cache_key not in self._cache: + return None + return self._cache[cache_key] diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/validate.py b/rep_localstack/lib/python3.12/site-packages/botocore/validate.py new file mode 100644 index 000000000..059dae7e0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/validate.py @@ -0,0 +1,427 @@ +"""User input parameter validation. + +This module handles user input parameter validation +against a provided input model. + +Note that the objects in this module do *not* mutate any +arguments. No type version happens here. It is up to another +layer to properly convert arguments to any required types. + +Validation Errors +----------------- + + +""" + +import decimal +import json +from datetime import datetime + +from botocore.exceptions import ParamValidationError +from botocore.utils import is_json_value_header, parse_to_aware_datetime + + +def validate_parameters(params, shape): + """Validates input parameters against a schema. + + This is a convenience function that validates parameters against a schema. + You can also instantiate and use the ParamValidator class directly if you + want more control. + + If there are any validation errors then a ParamValidationError + will be raised. If there are no validation errors than no exception + is raised and a value of None is returned. + + :param params: The user provided input parameters. + + :type shape: botocore.model.Shape + :param shape: The schema which the input parameters should + adhere to. + + :raise: ParamValidationError + + """ + validator = ParamValidator() + report = validator.validate(params, shape) + if report.has_errors(): + raise ParamValidationError(report=report.generate_report()) + + +def type_check(valid_types): + def _create_type_check_guard(func): + def _on_passes_type_check(self, param, shape, errors, name): + if _type_check(param, errors, name): + return func(self, param, shape, errors, name) + + def _type_check(param, errors, name): + if not isinstance(param, valid_types): + valid_type_names = [str(t) for t in valid_types] + errors.report( + name, + 'invalid type', + param=param, + valid_types=valid_type_names, + ) + return False + return True + + return _on_passes_type_check + + return _create_type_check_guard + + +def range_check(name, value, shape, error_type, errors): + failed = False + min_allowed = float('-inf') + if 'min' in shape.metadata: + min_allowed = shape.metadata['min'] + if value < min_allowed: + failed = True + elif hasattr(shape, 'serialization'): + # Members that can be bound to the host have an implicit min of 1 + if shape.serialization.get('hostLabel'): + min_allowed = 1 + if value < min_allowed: + failed = True + if failed: + errors.report(name, error_type, param=value, min_allowed=min_allowed) + + +class ValidationErrors: + def __init__(self): + self._errors = [] + + def has_errors(self): + if self._errors: + return True + return False + + def generate_report(self): + error_messages = [] + for error in self._errors: + error_messages.append(self._format_error(error)) + return '\n'.join(error_messages) + + def _format_error(self, error): + error_type, name, additional = error + name = self._get_name(name) + if error_type == 'missing required field': + return ( + f"Missing required parameter in {name}: " + f"\"{additional['required_name']}\"" + ) + elif error_type == 'unknown field': + unknown_param = additional['unknown_param'] + valid_names = ', '.join(additional['valid_names']) + return ( + f'Unknown parameter in {name}: "{unknown_param}", ' + f'must be one of: {valid_names}' + ) + elif error_type == 'invalid type': + param = additional['param'] + param_type = type(param) + valid_types = ', '.join(additional['valid_types']) + return ( + f'Invalid type for parameter {name}, value: {param}, ' + f'type: {param_type}, valid types: {valid_types}' + ) + elif error_type == 'invalid range': + param = additional['param'] + min_allowed = additional['min_allowed'] + return ( + f'Invalid value for parameter {name}, value: {param}, ' + f'valid min value: {min_allowed}' + ) + elif error_type == 'invalid length': + param = additional['param'] + min_allowed = additional['min_allowed'] + return ( + f'Invalid length for parameter {name}, value: {param}, ' + f'valid min length: {min_allowed}' + ) + elif error_type == 'unable to encode to json': + return 'Invalid parameter {} must be json serializable: {}'.format( + name, + additional['type_error'], + ) + elif error_type == 'invalid type for document': + param = additional['param'] + param_type = type(param) + valid_types = ', '.join(additional['valid_types']) + return ( + f'Invalid type for document parameter {name}, value: {param}, ' + f'type: {param_type}, valid types: {valid_types}' + ) + elif error_type == 'more than one input': + members = ', '.join(additional['members']) + return ( + f'Invalid number of parameters set for tagged union structure ' + f'{name}. Can only set one of the following keys: ' + f'{members}.' + ) + elif error_type == 'empty input': + members = ', '.join(additional['members']) + return ( + f'Must set one of the following keys for tagged union' + f'structure {name}: {members}.' + ) + + def _get_name(self, name): + if not name: + return 'input' + elif name.startswith('.'): + return name[1:] + else: + return name + + def report(self, name, reason, **kwargs): + self._errors.append((reason, name, kwargs)) + + +class ParamValidator: + """Validates parameters against a shape model.""" + + # Valid Python types for scalar c2j types + SCALAR_TYPES = { + 'float': (float, decimal.Decimal, int), + 'double': (float, decimal.Decimal, int), + 'integer': (int,), + 'long': (int,), + 'boolean': (bool,), + 'string': (str,), + } + + # Valid Python types for container c2j types + CONTAINER_TYPES = { + 'structure': (dict,), + 'map': (dict,), + 'list': (list, tuple), + } + + # Metadata attributes that we validate beyond type checking + VALIDATED_METADATA_ATTRS = {'required', 'min', 'document', 'union'} + + def _shape_has_constraints(self, shape): + """Whether the shape has validated constraints beyond type checking.""" + return bool(self.VALIDATED_METADATA_ATTRS & set(shape.metadata.keys())) + + def validate(self, params, shape): + """Validate parameters against a shape model. + + This method will validate the parameters against a provided shape model. + All errors will be collected before returning to the caller. This means + that this method will not stop at the first error, it will return all + possible errors. + + :param params: User provided dict of parameters + :param shape: A shape model describing the expected input. + + :return: A list of errors. + + """ + errors = ValidationErrors() + self._validate(params, shape, errors, name='') + return errors + + def _check_special_validation_cases(self, shape): + if is_json_value_header(shape): + return self._validate_jsonvalue_string + if shape.type_name == 'structure' and shape.is_document_type: + return self._validate_document + + def _validate(self, params, shape, errors, name): + special_validator = self._check_special_validation_cases(shape) + if special_validator: + special_validator(params, shape, errors, name) + else: + getattr(self, f'_validate_{shape.type_name}')( + params, shape, errors, name + ) + + def _validate_jsonvalue_string(self, params, shape, errors, name): + # Check to see if a value marked as a jsonvalue can be dumped to + # a json string. + try: + json.dumps(params) + except (ValueError, TypeError) as e: + errors.report(name, 'unable to encode to json', type_error=e) + + def _validate_document(self, params, shape, errors, name): + if params is None: + return + + if isinstance(params, dict): + for key in params: + self._validate_document(params[key], shape, errors, key) + elif isinstance(params, list): + for index, entity in enumerate(params): + self._validate_document( + entity, shape, errors, f'{name}[{index}]' + ) + elif not isinstance(params, ((str,), int, bool, float)): + valid_types = (str, int, bool, float, list, dict) + valid_type_names = [str(t) for t in valid_types] + errors.report( + name, + 'invalid type for document', + param=params, + param_type=type(params), + valid_types=valid_type_names, + ) + + @type_check(valid_types=CONTAINER_TYPES['structure']) + def _validate_structure(self, params, shape, errors, name): + if shape.is_tagged_union: + if len(params) == 0: + errors.report(name, 'empty input', members=shape.members) + elif len(params) > 1: + errors.report( + name, 'more than one input', members=shape.members + ) + + # Validate required fields. + for required_member in shape.metadata.get('required', []): + if required_member not in params: + errors.report( + name, + 'missing required field', + required_name=required_member, + user_params=params, + ) + members = shape.members + known_params = [] + # Validate known params. + for param in params: + if param not in members: + errors.report( + name, + 'unknown field', + unknown_param=param, + valid_names=list(members), + ) + else: + known_params.append(param) + # Validate structure members. + for param in known_params: + self._validate( + params[param], + shape.members[param], + errors, + f'{name}.{param}', + ) + + @type_check(valid_types=SCALAR_TYPES['string']) + def _validate_string(self, param, shape, errors, name): + # Validate range. For a string, the min/max constraints + # are of the string length. + # Looks like: + # "WorkflowId":{ + # "type":"string", + # "min":1, + # "max":256 + # } + range_check(name, len(param), shape, 'invalid length', errors) + + @type_check(valid_types=CONTAINER_TYPES['list']) + def _validate_list(self, param, shape, errors, name): + member_shape = shape.member + range_check(name, len(param), shape, 'invalid length', errors) + + # If a list member does not have validation constraints, we will only check the type + member_type = member_shape.type_name + if ( + member_type in self.SCALAR_TYPES + and not self._shape_has_constraints(member_shape) + ): + valid_types = self.SCALAR_TYPES[member_type] + for i, item in enumerate(param): + if not isinstance(item, valid_types): + valid_type_names = [str(t) for t in valid_types] + errors.report( + f'{name}[{i}]', + 'invalid type', + param=item, + valid_types=valid_type_names, + ) + return + + for i, item in enumerate(param): + self._validate(item, member_shape, errors, f'{name}[{i}]') + + @type_check(valid_types=CONTAINER_TYPES['map']) + def _validate_map(self, param, shape, errors, name): + key_shape = shape.key + value_shape = shape.value + for key, value in param.items(): + self._validate(key, key_shape, errors, f"{name} (key: {key})") + self._validate(value, value_shape, errors, f'{name}.{key}') + + @type_check(valid_types=SCALAR_TYPES['integer']) + def _validate_integer(self, param, shape, errors, name): + range_check(name, param, shape, 'invalid range', errors) + + def _validate_blob(self, param, shape, errors, name): + if isinstance(param, (bytes, bytearray, str)): + return + elif hasattr(param, 'read'): + # File like objects are also allowed for blob types. + return + else: + errors.report( + name, + 'invalid type', + param=param, + valid_types=[str(bytes), str(bytearray), 'file-like object'], + ) + + @type_check(valid_types=SCALAR_TYPES['boolean']) + def _validate_boolean(self, param, shape, errors, name): + pass + + @type_check(valid_types=SCALAR_TYPES['double']) + def _validate_double(self, param, shape, errors, name): + range_check(name, param, shape, 'invalid range', errors) + + _validate_float = _validate_double + + @type_check(valid_types=SCALAR_TYPES['long']) + def _validate_long(self, param, shape, errors, name): + range_check(name, param, shape, 'invalid range', errors) + + def _validate_timestamp(self, param, shape, errors, name): + # We don't use @type_check because datetimes are a bit + # more flexible. You can either provide a datetime + # object, or a string that parses to a datetime. + is_valid_type = self._type_check_datetime(param) + if not is_valid_type: + valid_type_names = [str(datetime), 'timestamp-string'] + errors.report( + name, 'invalid type', param=param, valid_types=valid_type_names + ) + + def _type_check_datetime(self, value): + try: + parse_to_aware_datetime(value) + return True + except (TypeError, ValueError, AttributeError): + # Yes, dateutil can sometimes raise an AttributeError + # when parsing timestamps. + return False + + +class ParamValidationDecorator: + def __init__(self, param_validator, serializer): + self._param_validator = param_validator + self._serializer = serializer + + def serialize_to_request(self, parameters, operation_model): + input_shape = operation_model.input_shape + if input_shape is not None: + report = self._param_validator.validate( + parameters, operation_model.input_shape + ) + if report.has_errors(): + raise ParamValidationError(report=report.generate_report()) + return self._serializer.serialize_to_request( + parameters, operation_model + ) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/vendored/__init__.py b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/vendored/__pycache__/__init__.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 000000000..8b656d1c5 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/__pycache__/__init__.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/vendored/__pycache__/six.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/__pycache__/six.cpython-312.pyc new file mode 100644 index 000000000..1373fc3fd Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/__pycache__/six.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/__init__.py b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/__init__.py new file mode 100644 index 000000000..0ada6e0f4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/__init__.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- + +# __ +# /__) _ _ _ _ _/ _ +# / ( (- (/ (/ (- _) / _) +# / +from .exceptions import ( + RequestException, Timeout, URLRequired, + TooManyRedirects, HTTPError, ConnectionError +) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/__pycache__/__init__.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 000000000..4f9f1b03b Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/__pycache__/__init__.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/__pycache__/exceptions.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/__pycache__/exceptions.cpython-312.pyc new file mode 100644 index 000000000..e7b11624b Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/__pycache__/exceptions.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/exceptions.py b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/exceptions.py new file mode 100644 index 000000000..89135a802 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/exceptions.py @@ -0,0 +1,99 @@ +# -*- coding: utf-8 -*- + +""" +requests.exceptions +~~~~~~~~~~~~~~~~~~~ + +This module contains the set of Requests' exceptions. + +""" +from .packages.urllib3.exceptions import HTTPError as BaseHTTPError + + +class RequestException(IOError): + """There was an ambiguous exception that occurred while handling your + request.""" + + def __init__(self, *args, **kwargs): + """ + Initialize RequestException with `request` and `response` objects. + """ + response = kwargs.pop('response', None) + self.response = response + self.request = kwargs.pop('request', None) + if (response is not None and not self.request and + hasattr(response, 'request')): + self.request = self.response.request + super(RequestException, self).__init__(*args, **kwargs) + + +class HTTPError(RequestException): + """An HTTP error occurred.""" + + +class ConnectionError(RequestException): + """A Connection error occurred.""" + + +class ProxyError(ConnectionError): + """A proxy error occurred.""" + + +class SSLError(ConnectionError): + """An SSL error occurred.""" + + +class Timeout(RequestException): + """The request timed out. + + Catching this error will catch both + :exc:`~requests.exceptions.ConnectTimeout` and + :exc:`~requests.exceptions.ReadTimeout` errors. + """ + + +class ConnectTimeout(ConnectionError, Timeout): + """The request timed out while trying to connect to the remote server. + + Requests that produced this error are safe to retry. + """ + + +class ReadTimeout(Timeout): + """The server did not send any data in the allotted amount of time.""" + + +class URLRequired(RequestException): + """A valid URL is required to make a request.""" + + +class TooManyRedirects(RequestException): + """Too many redirects.""" + + +class MissingSchema(RequestException, ValueError): + """The URL schema (e.g. http or https) is missing.""" + + +class InvalidSchema(RequestException, ValueError): + """See defaults.py for valid schemas.""" + + +class InvalidURL(RequestException, ValueError): + """ The URL provided was somehow invalid. """ + + +class ChunkedEncodingError(RequestException): + """The server declared chunked encoding but sent an invalid chunk.""" + + +class ContentDecodingError(RequestException, BaseHTTPError): + """Failed to decode response content""" + + +class StreamConsumedError(RequestException, TypeError): + """The content for this response was already consumed""" + + +class RetryError(RequestException): + """Custom retries logic failed""" diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/packages/__init__.py b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/packages/__init__.py new file mode 100644 index 000000000..d62c4b711 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/packages/__init__.py @@ -0,0 +1,3 @@ +from __future__ import absolute_import + +from . import urllib3 diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/packages/__pycache__/__init__.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/packages/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 000000000..4f5953736 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/packages/__pycache__/__init__.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/packages/urllib3/__init__.py b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/packages/urllib3/__init__.py new file mode 100644 index 000000000..88697016b --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/packages/urllib3/__init__.py @@ -0,0 +1,10 @@ +""" +urllib3 - Thread-safe connection pooling and re-using. +""" + +__author__ = 'Andrey Petrov (andrey.petrov@shazow.net)' +__license__ = 'MIT' +__version__ = '' + + +from . import exceptions diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/packages/urllib3/__pycache__/__init__.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/packages/urllib3/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 000000000..3cc49762f Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/packages/urllib3/__pycache__/__init__.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/packages/urllib3/__pycache__/exceptions.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/packages/urllib3/__pycache__/exceptions.cpython-312.pyc new file mode 100644 index 000000000..38c2eb761 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/packages/urllib3/__pycache__/exceptions.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/packages/urllib3/exceptions.py b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/packages/urllib3/exceptions.py new file mode 100644 index 000000000..31bda1c07 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/requests/packages/urllib3/exceptions.py @@ -0,0 +1,169 @@ + +## Base Exceptions + +class HTTPError(Exception): + "Base exception used by this module." + pass + +class HTTPWarning(Warning): + "Base warning used by this module." + pass + + + +class PoolError(HTTPError): + "Base exception for errors caused within a pool." + def __init__(self, pool, message): + self.pool = pool + HTTPError.__init__(self, "%s: %s" % (pool, message)) + + def __reduce__(self): + # For pickling purposes. + return self.__class__, (None, None) + + +class RequestError(PoolError): + "Base exception for PoolErrors that have associated URLs." + def __init__(self, pool, url, message): + self.url = url + PoolError.__init__(self, pool, message) + + def __reduce__(self): + # For pickling purposes. + return self.__class__, (None, self.url, None) + + +class SSLError(HTTPError): + "Raised when SSL certificate fails in an HTTPS connection." + pass + + +class ProxyError(HTTPError): + "Raised when the connection to a proxy fails." + pass + + +class DecodeError(HTTPError): + "Raised when automatic decoding based on Content-Type fails." + pass + + +class ProtocolError(HTTPError): + "Raised when something unexpected happens mid-request/response." + pass + + +#: Renamed to ProtocolError but aliased for backwards compatibility. +ConnectionError = ProtocolError + + +## Leaf Exceptions + +class MaxRetryError(RequestError): + """Raised when the maximum number of retries is exceeded. + + :param pool: The connection pool + :type pool: :class:`~urllib3.connectionpool.HTTPConnectionPool` + :param string url: The requested Url + :param exceptions.Exception reason: The underlying error + + """ + + def __init__(self, pool, url, reason=None): + self.reason = reason + + message = "Max retries exceeded with url: %s (Caused by %r)" % ( + url, reason) + + RequestError.__init__(self, pool, url, message) + + +class HostChangedError(RequestError): + "Raised when an existing pool gets a request for a foreign host." + + def __init__(self, pool, url, retries=3): + message = "Tried to open a foreign host with url: %s" % url + RequestError.__init__(self, pool, url, message) + self.retries = retries + + +class TimeoutStateError(HTTPError): + """ Raised when passing an invalid state to a timeout """ + pass + + +class TimeoutError(HTTPError): + """ Raised when a socket timeout error occurs. + + Catching this error will catch both :exc:`ReadTimeoutErrors + ` and :exc:`ConnectTimeoutErrors `. + """ + pass + + +class ReadTimeoutError(TimeoutError, RequestError): + "Raised when a socket timeout occurs while receiving data from a server" + pass + + +# This timeout error does not have a URL attached and needs to inherit from the +# base HTTPError +class ConnectTimeoutError(TimeoutError): + "Raised when a socket timeout occurs while connecting to a server" + pass + + +class EmptyPoolError(PoolError): + "Raised when a pool runs out of connections and no more are allowed." + pass + + +class ClosedPoolError(PoolError): + "Raised when a request enters a pool after the pool has been closed." + pass + + +class LocationValueError(ValueError, HTTPError): + "Raised when there is something wrong with a given URL input." + pass + + +class LocationParseError(LocationValueError): + "Raised when get_host or similar fails to parse the URL input." + + def __init__(self, location): + message = "Failed to parse: %s" % location + HTTPError.__init__(self, message) + + self.location = location + + +class ResponseError(HTTPError): + "Used as a container for an error reason supplied in a MaxRetryError." + GENERIC_ERROR = 'too many error responses' + SPECIFIC_ERROR = 'too many {status_code} error responses' + + +class SecurityWarning(HTTPWarning): + "Warned when perfoming security reducing actions" + pass + + +class InsecureRequestWarning(SecurityWarning): + "Warned when making an unverified HTTPS request." + pass + + +class SystemTimeWarning(SecurityWarning): + "Warned when system time is suspected to be wrong" + pass + + +class InsecurePlatformWarning(SecurityWarning): + "Warned when certain SSL configuration is not available on a platform." + pass + + +class ResponseNotChunked(ProtocolError, ValueError): + "Response needs to be chunked in order to read it as chunks." + pass diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/vendored/six.py b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/six.py new file mode 100644 index 000000000..4e15675d8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/vendored/six.py @@ -0,0 +1,998 @@ +# Copyright (c) 2010-2020 Benjamin Peterson +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +"""Utilities for writing code that runs on Python 2 and 3""" + +from __future__ import absolute_import + +import functools +import itertools +import operator +import sys +import types + +__author__ = "Benjamin Peterson " +__version__ = "1.16.0" + + +# Useful for very coarse version differentiation. +PY2 = sys.version_info[0] == 2 +PY3 = sys.version_info[0] == 3 +PY34 = sys.version_info[0:2] >= (3, 4) + +if PY3: + string_types = str, + integer_types = int, + class_types = type, + text_type = str + binary_type = bytes + + MAXSIZE = sys.maxsize +else: + string_types = basestring, + integer_types = (int, long) + class_types = (type, types.ClassType) + text_type = unicode + binary_type = str + + if sys.platform.startswith("java"): + # Jython always uses 32 bits. + MAXSIZE = int((1 << 31) - 1) + else: + # It's possible to have sizeof(long) != sizeof(Py_ssize_t). + class X(object): + + def __len__(self): + return 1 << 31 + try: + len(X()) + except OverflowError: + # 32-bit + MAXSIZE = int((1 << 31) - 1) + else: + # 64-bit + MAXSIZE = int((1 << 63) - 1) + del X + +if PY34: + from importlib.util import spec_from_loader +else: + spec_from_loader = None + + +def _add_doc(func, doc): + """Add documentation to a function.""" + func.__doc__ = doc + + +def _import_module(name): + """Import module, returning the module after the last dot.""" + __import__(name) + return sys.modules[name] + + +class _LazyDescr(object): + + def __init__(self, name): + self.name = name + + def __get__(self, obj, tp): + result = self._resolve() + setattr(obj, self.name, result) # Invokes __set__. + try: + # This is a bit ugly, but it avoids running this again by + # removing this descriptor. + delattr(obj.__class__, self.name) + except AttributeError: + pass + return result + + +class MovedModule(_LazyDescr): + + def __init__(self, name, old, new=None): + super(MovedModule, self).__init__(name) + if PY3: + if new is None: + new = name + self.mod = new + else: + self.mod = old + + def _resolve(self): + return _import_module(self.mod) + + def __getattr__(self, attr): + _module = self._resolve() + value = getattr(_module, attr) + setattr(self, attr, value) + return value + + +class _LazyModule(types.ModuleType): + + def __init__(self, name): + super(_LazyModule, self).__init__(name) + self.__doc__ = self.__class__.__doc__ + + def __dir__(self): + attrs = ["__doc__", "__name__"] + attrs += [attr.name for attr in self._moved_attributes] + return attrs + + # Subclasses should override this + _moved_attributes = [] + + +class MovedAttribute(_LazyDescr): + + def __init__(self, name, old_mod, new_mod, old_attr=None, new_attr=None): + super(MovedAttribute, self).__init__(name) + if PY3: + if new_mod is None: + new_mod = name + self.mod = new_mod + if new_attr is None: + if old_attr is None: + new_attr = name + else: + new_attr = old_attr + self.attr = new_attr + else: + self.mod = old_mod + if old_attr is None: + old_attr = name + self.attr = old_attr + + def _resolve(self): + module = _import_module(self.mod) + return getattr(module, self.attr) + + +class _SixMetaPathImporter(object): + + """ + A meta path importer to import six.moves and its submodules. + + This class implements a PEP302 finder and loader. It should be compatible + with Python 2.5 and all existing versions of Python3 + """ + + def __init__(self, six_module_name): + self.name = six_module_name + self.known_modules = {} + + def _add_module(self, mod, *fullnames): + for fullname in fullnames: + self.known_modules[self.name + "." + fullname] = mod + + def _get_module(self, fullname): + return self.known_modules[self.name + "." + fullname] + + def find_module(self, fullname, path=None): + if fullname in self.known_modules: + return self + return None + + def find_spec(self, fullname, path, target=None): + if fullname in self.known_modules: + return spec_from_loader(fullname, self) + return None + + def __get_module(self, fullname): + try: + return self.known_modules[fullname] + except KeyError: + raise ImportError("This loader does not know module " + fullname) + + def load_module(self, fullname): + try: + # in case of a reload + return sys.modules[fullname] + except KeyError: + pass + mod = self.__get_module(fullname) + if isinstance(mod, MovedModule): + mod = mod._resolve() + else: + mod.__loader__ = self + sys.modules[fullname] = mod + return mod + + def is_package(self, fullname): + """ + Return true, if the named module is a package. + + We need this method to get correct spec objects with + Python 3.4 (see PEP451) + """ + return hasattr(self.__get_module(fullname), "__path__") + + def get_code(self, fullname): + """Return None + + Required, if is_package is implemented""" + self.__get_module(fullname) # eventually raises ImportError + return None + get_source = get_code # same as get_code + + def create_module(self, spec): + return self.load_module(spec.name) + + def exec_module(self, module): + pass + +_importer = _SixMetaPathImporter(__name__) + + +class _MovedItems(_LazyModule): + + """Lazy loading of moved objects""" + __path__ = [] # mark as package + + +_moved_attributes = [ + MovedAttribute("cStringIO", "cStringIO", "io", "StringIO"), + MovedAttribute("filter", "itertools", "builtins", "ifilter", "filter"), + MovedAttribute("filterfalse", "itertools", "itertools", "ifilterfalse", "filterfalse"), + MovedAttribute("input", "__builtin__", "builtins", "raw_input", "input"), + MovedAttribute("intern", "__builtin__", "sys"), + MovedAttribute("map", "itertools", "builtins", "imap", "map"), + MovedAttribute("getcwd", "os", "os", "getcwdu", "getcwd"), + MovedAttribute("getcwdb", "os", "os", "getcwd", "getcwdb"), + MovedAttribute("getoutput", "commands", "subprocess"), + MovedAttribute("range", "__builtin__", "builtins", "xrange", "range"), + MovedAttribute("reload_module", "__builtin__", "importlib" if PY34 else "imp", "reload"), + MovedAttribute("reduce", "__builtin__", "functools"), + MovedAttribute("shlex_quote", "pipes", "shlex", "quote"), + MovedAttribute("StringIO", "StringIO", "io"), + MovedAttribute("UserDict", "UserDict", "collections"), + MovedAttribute("UserList", "UserList", "collections"), + MovedAttribute("UserString", "UserString", "collections"), + MovedAttribute("xrange", "__builtin__", "builtins", "xrange", "range"), + MovedAttribute("zip", "itertools", "builtins", "izip", "zip"), + MovedAttribute("zip_longest", "itertools", "itertools", "izip_longest", "zip_longest"), + MovedModule("builtins", "__builtin__"), + MovedModule("configparser", "ConfigParser"), + MovedModule("collections_abc", "collections", "collections.abc" if sys.version_info >= (3, 3) else "collections"), + MovedModule("copyreg", "copy_reg"), + MovedModule("dbm_gnu", "gdbm", "dbm.gnu"), + MovedModule("dbm_ndbm", "dbm", "dbm.ndbm"), + MovedModule("_dummy_thread", "dummy_thread", "_dummy_thread" if sys.version_info < (3, 9) else "_thread"), + MovedModule("http_cookiejar", "cookielib", "http.cookiejar"), + MovedModule("http_cookies", "Cookie", "http.cookies"), + MovedModule("html_entities", "htmlentitydefs", "html.entities"), + MovedModule("html_parser", "HTMLParser", "html.parser"), + MovedModule("http_client", "httplib", "http.client"), + MovedModule("email_mime_base", "email.MIMEBase", "email.mime.base"), + MovedModule("email_mime_image", "email.MIMEImage", "email.mime.image"), + MovedModule("email_mime_multipart", "email.MIMEMultipart", "email.mime.multipart"), + MovedModule("email_mime_nonmultipart", "email.MIMENonMultipart", "email.mime.nonmultipart"), + MovedModule("email_mime_text", "email.MIMEText", "email.mime.text"), + MovedModule("BaseHTTPServer", "BaseHTTPServer", "http.server"), + MovedModule("CGIHTTPServer", "CGIHTTPServer", "http.server"), + MovedModule("SimpleHTTPServer", "SimpleHTTPServer", "http.server"), + MovedModule("cPickle", "cPickle", "pickle"), + MovedModule("queue", "Queue"), + MovedModule("reprlib", "repr"), + MovedModule("socketserver", "SocketServer"), + MovedModule("_thread", "thread", "_thread"), + MovedModule("tkinter", "Tkinter"), + MovedModule("tkinter_dialog", "Dialog", "tkinter.dialog"), + MovedModule("tkinter_filedialog", "FileDialog", "tkinter.filedialog"), + MovedModule("tkinter_scrolledtext", "ScrolledText", "tkinter.scrolledtext"), + MovedModule("tkinter_simpledialog", "SimpleDialog", "tkinter.simpledialog"), + MovedModule("tkinter_tix", "Tix", "tkinter.tix"), + MovedModule("tkinter_ttk", "ttk", "tkinter.ttk"), + MovedModule("tkinter_constants", "Tkconstants", "tkinter.constants"), + MovedModule("tkinter_dnd", "Tkdnd", "tkinter.dnd"), + MovedModule("tkinter_colorchooser", "tkColorChooser", + "tkinter.colorchooser"), + MovedModule("tkinter_commondialog", "tkCommonDialog", + "tkinter.commondialog"), + MovedModule("tkinter_tkfiledialog", "tkFileDialog", "tkinter.filedialog"), + MovedModule("tkinter_font", "tkFont", "tkinter.font"), + MovedModule("tkinter_messagebox", "tkMessageBox", "tkinter.messagebox"), + MovedModule("tkinter_tksimpledialog", "tkSimpleDialog", + "tkinter.simpledialog"), + MovedModule("urllib_parse", __name__ + ".moves.urllib_parse", "urllib.parse"), + MovedModule("urllib_error", __name__ + ".moves.urllib_error", "urllib.error"), + MovedModule("urllib", __name__ + ".moves.urllib", __name__ + ".moves.urllib"), + MovedModule("urllib_robotparser", "robotparser", "urllib.robotparser"), + MovedModule("xmlrpc_client", "xmlrpclib", "xmlrpc.client"), + MovedModule("xmlrpc_server", "SimpleXMLRPCServer", "xmlrpc.server"), +] +# Add windows specific modules. +if sys.platform == "win32": + _moved_attributes += [ + MovedModule("winreg", "_winreg"), + ] + +for attr in _moved_attributes: + setattr(_MovedItems, attr.name, attr) + if isinstance(attr, MovedModule): + _importer._add_module(attr, "moves." + attr.name) +del attr + +_MovedItems._moved_attributes = _moved_attributes + +moves = _MovedItems(__name__ + ".moves") +_importer._add_module(moves, "moves") + + +class Module_six_moves_urllib_parse(_LazyModule): + + """Lazy loading of moved objects in six.moves.urllib_parse""" + + +_urllib_parse_moved_attributes = [ + MovedAttribute("ParseResult", "urlparse", "urllib.parse"), + MovedAttribute("SplitResult", "urlparse", "urllib.parse"), + MovedAttribute("parse_qs", "urlparse", "urllib.parse"), + MovedAttribute("parse_qsl", "urlparse", "urllib.parse"), + MovedAttribute("urldefrag", "urlparse", "urllib.parse"), + MovedAttribute("urljoin", "urlparse", "urllib.parse"), + MovedAttribute("urlparse", "urlparse", "urllib.parse"), + MovedAttribute("urlsplit", "urlparse", "urllib.parse"), + MovedAttribute("urlunparse", "urlparse", "urllib.parse"), + MovedAttribute("urlunsplit", "urlparse", "urllib.parse"), + MovedAttribute("quote", "urllib", "urllib.parse"), + MovedAttribute("quote_plus", "urllib", "urllib.parse"), + MovedAttribute("unquote", "urllib", "urllib.parse"), + MovedAttribute("unquote_plus", "urllib", "urllib.parse"), + MovedAttribute("unquote_to_bytes", "urllib", "urllib.parse", "unquote", "unquote_to_bytes"), + MovedAttribute("urlencode", "urllib", "urllib.parse"), + MovedAttribute("splitquery", "urllib", "urllib.parse"), + MovedAttribute("splittag", "urllib", "urllib.parse"), + MovedAttribute("splituser", "urllib", "urllib.parse"), + MovedAttribute("splitvalue", "urllib", "urllib.parse"), + MovedAttribute("uses_fragment", "urlparse", "urllib.parse"), + MovedAttribute("uses_netloc", "urlparse", "urllib.parse"), + MovedAttribute("uses_params", "urlparse", "urllib.parse"), + MovedAttribute("uses_query", "urlparse", "urllib.parse"), + MovedAttribute("uses_relative", "urlparse", "urllib.parse"), +] +for attr in _urllib_parse_moved_attributes: + setattr(Module_six_moves_urllib_parse, attr.name, attr) +del attr + +Module_six_moves_urllib_parse._moved_attributes = _urllib_parse_moved_attributes + +_importer._add_module(Module_six_moves_urllib_parse(__name__ + ".moves.urllib_parse"), + "moves.urllib_parse", "moves.urllib.parse") + + +class Module_six_moves_urllib_error(_LazyModule): + + """Lazy loading of moved objects in six.moves.urllib_error""" + + +_urllib_error_moved_attributes = [ + MovedAttribute("URLError", "urllib2", "urllib.error"), + MovedAttribute("HTTPError", "urllib2", "urllib.error"), + MovedAttribute("ContentTooShortError", "urllib", "urllib.error"), +] +for attr in _urllib_error_moved_attributes: + setattr(Module_six_moves_urllib_error, attr.name, attr) +del attr + +Module_six_moves_urllib_error._moved_attributes = _urllib_error_moved_attributes + +_importer._add_module(Module_six_moves_urllib_error(__name__ + ".moves.urllib.error"), + "moves.urllib_error", "moves.urllib.error") + + +class Module_six_moves_urllib_request(_LazyModule): + + """Lazy loading of moved objects in six.moves.urllib_request""" + + +_urllib_request_moved_attributes = [ + MovedAttribute("urlopen", "urllib2", "urllib.request"), + MovedAttribute("install_opener", "urllib2", "urllib.request"), + MovedAttribute("build_opener", "urllib2", "urllib.request"), + MovedAttribute("pathname2url", "urllib", "urllib.request"), + MovedAttribute("url2pathname", "urllib", "urllib.request"), + MovedAttribute("getproxies", "urllib", "urllib.request"), + MovedAttribute("Request", "urllib2", "urllib.request"), + MovedAttribute("OpenerDirector", "urllib2", "urllib.request"), + MovedAttribute("HTTPDefaultErrorHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPRedirectHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPCookieProcessor", "urllib2", "urllib.request"), + MovedAttribute("ProxyHandler", "urllib2", "urllib.request"), + MovedAttribute("BaseHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPPasswordMgr", "urllib2", "urllib.request"), + MovedAttribute("HTTPPasswordMgrWithDefaultRealm", "urllib2", "urllib.request"), + MovedAttribute("AbstractBasicAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPBasicAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("ProxyBasicAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("AbstractDigestAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPDigestAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("ProxyDigestAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPSHandler", "urllib2", "urllib.request"), + MovedAttribute("FileHandler", "urllib2", "urllib.request"), + MovedAttribute("FTPHandler", "urllib2", "urllib.request"), + MovedAttribute("CacheFTPHandler", "urllib2", "urllib.request"), + MovedAttribute("UnknownHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPErrorProcessor", "urllib2", "urllib.request"), + MovedAttribute("urlretrieve", "urllib", "urllib.request"), + MovedAttribute("urlcleanup", "urllib", "urllib.request"), + MovedAttribute("URLopener", "urllib", "urllib.request"), + MovedAttribute("FancyURLopener", "urllib", "urllib.request"), + MovedAttribute("proxy_bypass", "urllib", "urllib.request"), + MovedAttribute("parse_http_list", "urllib2", "urllib.request"), + MovedAttribute("parse_keqv_list", "urllib2", "urllib.request"), +] +for attr in _urllib_request_moved_attributes: + setattr(Module_six_moves_urllib_request, attr.name, attr) +del attr + +Module_six_moves_urllib_request._moved_attributes = _urllib_request_moved_attributes + +_importer._add_module(Module_six_moves_urllib_request(__name__ + ".moves.urllib.request"), + "moves.urllib_request", "moves.urllib.request") + + +class Module_six_moves_urllib_response(_LazyModule): + + """Lazy loading of moved objects in six.moves.urllib_response""" + + +_urllib_response_moved_attributes = [ + MovedAttribute("addbase", "urllib", "urllib.response"), + MovedAttribute("addclosehook", "urllib", "urllib.response"), + MovedAttribute("addinfo", "urllib", "urllib.response"), + MovedAttribute("addinfourl", "urllib", "urllib.response"), +] +for attr in _urllib_response_moved_attributes: + setattr(Module_six_moves_urllib_response, attr.name, attr) +del attr + +Module_six_moves_urllib_response._moved_attributes = _urllib_response_moved_attributes + +_importer._add_module(Module_six_moves_urllib_response(__name__ + ".moves.urllib.response"), + "moves.urllib_response", "moves.urllib.response") + + +class Module_six_moves_urllib_robotparser(_LazyModule): + + """Lazy loading of moved objects in six.moves.urllib_robotparser""" + + +_urllib_robotparser_moved_attributes = [ + MovedAttribute("RobotFileParser", "robotparser", "urllib.robotparser"), +] +for attr in _urllib_robotparser_moved_attributes: + setattr(Module_six_moves_urllib_robotparser, attr.name, attr) +del attr + +Module_six_moves_urllib_robotparser._moved_attributes = _urllib_robotparser_moved_attributes + +_importer._add_module(Module_six_moves_urllib_robotparser(__name__ + ".moves.urllib.robotparser"), + "moves.urllib_robotparser", "moves.urllib.robotparser") + + +class Module_six_moves_urllib(types.ModuleType): + + """Create a six.moves.urllib namespace that resembles the Python 3 namespace""" + __path__ = [] # mark as package + parse = _importer._get_module("moves.urllib_parse") + error = _importer._get_module("moves.urllib_error") + request = _importer._get_module("moves.urllib_request") + response = _importer._get_module("moves.urllib_response") + robotparser = _importer._get_module("moves.urllib_robotparser") + + def __dir__(self): + return ['parse', 'error', 'request', 'response', 'robotparser'] + +_importer._add_module(Module_six_moves_urllib(__name__ + ".moves.urllib"), + "moves.urllib") + + +def add_move(move): + """Add an item to six.moves.""" + setattr(_MovedItems, move.name, move) + + +def remove_move(name): + """Remove item from six.moves.""" + try: + delattr(_MovedItems, name) + except AttributeError: + try: + del moves.__dict__[name] + except KeyError: + raise AttributeError("no such move, %r" % (name,)) + + +if PY3: + _meth_func = "__func__" + _meth_self = "__self__" + + _func_closure = "__closure__" + _func_code = "__code__" + _func_defaults = "__defaults__" + _func_globals = "__globals__" +else: + _meth_func = "im_func" + _meth_self = "im_self" + + _func_closure = "func_closure" + _func_code = "func_code" + _func_defaults = "func_defaults" + _func_globals = "func_globals" + + +try: + advance_iterator = next +except NameError: + def advance_iterator(it): + return it.next() +next = advance_iterator + + +try: + callable = callable +except NameError: + def callable(obj): + return any("__call__" in klass.__dict__ for klass in type(obj).__mro__) + + +if PY3: + def get_unbound_function(unbound): + return unbound + + create_bound_method = types.MethodType + + def create_unbound_method(func, cls): + return func + + Iterator = object +else: + def get_unbound_function(unbound): + return unbound.im_func + + def create_bound_method(func, obj): + return types.MethodType(func, obj, obj.__class__) + + def create_unbound_method(func, cls): + return types.MethodType(func, None, cls) + + class Iterator(object): + + def next(self): + return type(self).__next__(self) + + callable = callable +_add_doc(get_unbound_function, + """Get the function out of a possibly unbound function""") + + +get_method_function = operator.attrgetter(_meth_func) +get_method_self = operator.attrgetter(_meth_self) +get_function_closure = operator.attrgetter(_func_closure) +get_function_code = operator.attrgetter(_func_code) +get_function_defaults = operator.attrgetter(_func_defaults) +get_function_globals = operator.attrgetter(_func_globals) + + +if PY3: + def iterkeys(d, **kw): + return iter(d.keys(**kw)) + + def itervalues(d, **kw): + return iter(d.values(**kw)) + + def iteritems(d, **kw): + return iter(d.items(**kw)) + + def iterlists(d, **kw): + return iter(d.lists(**kw)) + + viewkeys = operator.methodcaller("keys") + + viewvalues = operator.methodcaller("values") + + viewitems = operator.methodcaller("items") +else: + def iterkeys(d, **kw): + return d.iterkeys(**kw) + + def itervalues(d, **kw): + return d.itervalues(**kw) + + def iteritems(d, **kw): + return d.iteritems(**kw) + + def iterlists(d, **kw): + return d.iterlists(**kw) + + viewkeys = operator.methodcaller("viewkeys") + + viewvalues = operator.methodcaller("viewvalues") + + viewitems = operator.methodcaller("viewitems") + +_add_doc(iterkeys, "Return an iterator over the keys of a dictionary.") +_add_doc(itervalues, "Return an iterator over the values of a dictionary.") +_add_doc(iteritems, + "Return an iterator over the (key, value) pairs of a dictionary.") +_add_doc(iterlists, + "Return an iterator over the (key, [values]) pairs of a dictionary.") + + +if PY3: + def b(s): + return s.encode("latin-1") + + def u(s): + return s + unichr = chr + import struct + int2byte = struct.Struct(">B").pack + del struct + byte2int = operator.itemgetter(0) + indexbytes = operator.getitem + iterbytes = iter + import io + StringIO = io.StringIO + BytesIO = io.BytesIO + del io + _assertCountEqual = "assertCountEqual" + if sys.version_info[1] <= 1: + _assertRaisesRegex = "assertRaisesRegexp" + _assertRegex = "assertRegexpMatches" + _assertNotRegex = "assertNotRegexpMatches" + else: + _assertRaisesRegex = "assertRaisesRegex" + _assertRegex = "assertRegex" + _assertNotRegex = "assertNotRegex" +else: + def b(s): + return s + # Workaround for standalone backslash + + def u(s): + return unicode(s.replace(r'\\', r'\\\\'), "unicode_escape") + unichr = unichr + int2byte = chr + + def byte2int(bs): + return ord(bs[0]) + + def indexbytes(buf, i): + return ord(buf[i]) + iterbytes = functools.partial(itertools.imap, ord) + import StringIO + StringIO = BytesIO = StringIO.StringIO + _assertCountEqual = "assertItemsEqual" + _assertRaisesRegex = "assertRaisesRegexp" + _assertRegex = "assertRegexpMatches" + _assertNotRegex = "assertNotRegexpMatches" +_add_doc(b, """Byte literal""") +_add_doc(u, """Text literal""") + + +def assertCountEqual(self, *args, **kwargs): + return getattr(self, _assertCountEqual)(*args, **kwargs) + + +def assertRaisesRegex(self, *args, **kwargs): + return getattr(self, _assertRaisesRegex)(*args, **kwargs) + + +def assertRegex(self, *args, **kwargs): + return getattr(self, _assertRegex)(*args, **kwargs) + + +def assertNotRegex(self, *args, **kwargs): + return getattr(self, _assertNotRegex)(*args, **kwargs) + + +if PY3: + exec_ = getattr(moves.builtins, "exec") + + def reraise(tp, value, tb=None): + try: + if value is None: + value = tp() + if value.__traceback__ is not tb: + raise value.with_traceback(tb) + raise value + finally: + value = None + tb = None + +else: + def exec_(_code_, _globs_=None, _locs_=None): + """Execute code in a namespace.""" + if _globs_ is None: + frame = sys._getframe(1) + _globs_ = frame.f_globals + if _locs_ is None: + _locs_ = frame.f_locals + del frame + elif _locs_ is None: + _locs_ = _globs_ + exec("""exec _code_ in _globs_, _locs_""") + + exec_("""def reraise(tp, value, tb=None): + try: + raise tp, value, tb + finally: + tb = None +""") + + +if sys.version_info[:2] > (3,): + exec_("""def raise_from(value, from_value): + try: + raise value from from_value + finally: + value = None +""") +else: + def raise_from(value, from_value): + raise value + + +print_ = getattr(moves.builtins, "print", None) +if print_ is None: + def print_(*args, **kwargs): + """The new-style print function for Python 2.4 and 2.5.""" + fp = kwargs.pop("file", sys.stdout) + if fp is None: + return + + def write(data): + if not isinstance(data, basestring): + data = str(data) + # If the file has an encoding, encode unicode with it. + if (isinstance(fp, file) and + isinstance(data, unicode) and + fp.encoding is not None): + errors = getattr(fp, "errors", None) + if errors is None: + errors = "strict" + data = data.encode(fp.encoding, errors) + fp.write(data) + want_unicode = False + sep = kwargs.pop("sep", None) + if sep is not None: + if isinstance(sep, unicode): + want_unicode = True + elif not isinstance(sep, str): + raise TypeError("sep must be None or a string") + end = kwargs.pop("end", None) + if end is not None: + if isinstance(end, unicode): + want_unicode = True + elif not isinstance(end, str): + raise TypeError("end must be None or a string") + if kwargs: + raise TypeError("invalid keyword arguments to print()") + if not want_unicode: + for arg in args: + if isinstance(arg, unicode): + want_unicode = True + break + if want_unicode: + newline = unicode("\n") + space = unicode(" ") + else: + newline = "\n" + space = " " + if sep is None: + sep = space + if end is None: + end = newline + for i, arg in enumerate(args): + if i: + write(sep) + write(arg) + write(end) +if sys.version_info[:2] < (3, 3): + _print = print_ + + def print_(*args, **kwargs): + fp = kwargs.get("file", sys.stdout) + flush = kwargs.pop("flush", False) + _print(*args, **kwargs) + if flush and fp is not None: + fp.flush() + +_add_doc(reraise, """Reraise an exception.""") + +if sys.version_info[0:2] < (3, 4): + # This does exactly the same what the :func:`py3:functools.update_wrapper` + # function does on Python versions after 3.2. It sets the ``__wrapped__`` + # attribute on ``wrapper`` object and it doesn't raise an error if any of + # the attributes mentioned in ``assigned`` and ``updated`` are missing on + # ``wrapped`` object. + def _update_wrapper(wrapper, wrapped, + assigned=functools.WRAPPER_ASSIGNMENTS, + updated=functools.WRAPPER_UPDATES): + for attr in assigned: + try: + value = getattr(wrapped, attr) + except AttributeError: + continue + else: + setattr(wrapper, attr, value) + for attr in updated: + getattr(wrapper, attr).update(getattr(wrapped, attr, {})) + wrapper.__wrapped__ = wrapped + return wrapper + _update_wrapper.__doc__ = functools.update_wrapper.__doc__ + + def wraps(wrapped, assigned=functools.WRAPPER_ASSIGNMENTS, + updated=functools.WRAPPER_UPDATES): + return functools.partial(_update_wrapper, wrapped=wrapped, + assigned=assigned, updated=updated) + wraps.__doc__ = functools.wraps.__doc__ + +else: + wraps = functools.wraps + + +def with_metaclass(meta, *bases): + """Create a base class with a metaclass.""" + # This requires a bit of explanation: the basic idea is to make a dummy + # metaclass for one level of class instantiation that replaces itself with + # the actual metaclass. + class metaclass(type): + + def __new__(cls, name, this_bases, d): + if sys.version_info[:2] >= (3, 7): + # This version introduced PEP 560 that requires a bit + # of extra care (we mimic what is done by __build_class__). + resolved_bases = types.resolve_bases(bases) + if resolved_bases is not bases: + d['__orig_bases__'] = bases + else: + resolved_bases = bases + return meta(name, resolved_bases, d) + + @classmethod + def __prepare__(cls, name, this_bases): + return meta.__prepare__(name, bases) + return type.__new__(metaclass, 'temporary_class', (), {}) + + +def add_metaclass(metaclass): + """Class decorator for creating a class with a metaclass.""" + def wrapper(cls): + orig_vars = cls.__dict__.copy() + slots = orig_vars.get('__slots__') + if slots is not None: + if isinstance(slots, str): + slots = [slots] + for slots_var in slots: + orig_vars.pop(slots_var) + orig_vars.pop('__dict__', None) + orig_vars.pop('__weakref__', None) + if hasattr(cls, '__qualname__'): + orig_vars['__qualname__'] = cls.__qualname__ + return metaclass(cls.__name__, cls.__bases__, orig_vars) + return wrapper + + +def ensure_binary(s, encoding='utf-8', errors='strict'): + """Coerce **s** to six.binary_type. + + For Python 2: + - `unicode` -> encoded to `str` + - `str` -> `str` + + For Python 3: + - `str` -> encoded to `bytes` + - `bytes` -> `bytes` + """ + if isinstance(s, binary_type): + return s + if isinstance(s, text_type): + return s.encode(encoding, errors) + raise TypeError("not expecting type '%s'" % type(s)) + + +def ensure_str(s, encoding='utf-8', errors='strict'): + """Coerce *s* to `str`. + + For Python 2: + - `unicode` -> encoded to `str` + - `str` -> `str` + + For Python 3: + - `str` -> `str` + - `bytes` -> decoded to `str` + """ + # Optimization: Fast return for the common case. + if type(s) is str: + return s + if PY2 and isinstance(s, text_type): + return s.encode(encoding, errors) + elif PY3 and isinstance(s, binary_type): + return s.decode(encoding, errors) + elif not isinstance(s, (text_type, binary_type)): + raise TypeError("not expecting type '%s'" % type(s)) + return s + + +def ensure_text(s, encoding='utf-8', errors='strict'): + """Coerce *s* to six.text_type. + + For Python 2: + - `unicode` -> `unicode` + - `str` -> `unicode` + + For Python 3: + - `str` -> `str` + - `bytes` -> decoded to `str` + """ + if isinstance(s, binary_type): + return s.decode(encoding, errors) + elif isinstance(s, text_type): + return s + else: + raise TypeError("not expecting type '%s'" % type(s)) + + +def python_2_unicode_compatible(klass): + """ + A class decorator that defines __unicode__ and __str__ methods under Python 2. + Under Python 3 it does nothing. + + To support Python 2 and 3 with a single code base, define a __str__ method + returning text and apply this decorator to the class. + """ + if PY2: + if '__str__' not in klass.__dict__: + raise ValueError("@python_2_unicode_compatible cannot be applied " + "to %s because it doesn't define __str__()." % + klass.__name__) + klass.__unicode__ = klass.__str__ + klass.__str__ = lambda self: self.__unicode__().encode('utf-8') + return klass + + +# Complete the moves implementation. +# This code is at the end of this module to speed up module loading. +# Turn this module into a package. +__path__ = [] # required for PEP 302 and PEP 451 +__package__ = __name__ # see PEP 366 @ReservedAssignment +if globals().get("__spec__") is not None: + __spec__.submodule_search_locations = [] # PEP 451 @UndefinedVariable +# Remove other six meta path importers, since they cause problems. This can +# happen if six is removed from sys.modules and then reloaded. (Setuptools does +# this for some reason.) +if sys.meta_path: + for i, importer in enumerate(sys.meta_path): + # Here's some real nastiness: Another "instance" of the six module might + # be floating around. Therefore, we can't use isinstance() to check for + # the six meta path importer, since the other six instance will have + # inserted an importer with different class. + if (type(importer).__name__ == "_SixMetaPathImporter" and + importer.name == __name__): + del sys.meta_path[i] + break + del i, importer +# Finally, add the importer to the meta path import hook. +sys.meta_path.append(_importer) diff --git a/rep_localstack/lib/python3.12/site-packages/botocore/waiter.py b/rep_localstack/lib/python3.12/site-packages/botocore/waiter.py new file mode 100644 index 000000000..86110dd99 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/botocore/waiter.py @@ -0,0 +1,396 @@ +# Copyright 2012-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import logging +import time +from functools import partial + +import jmespath + +from botocore.context import with_current_context +from botocore.docs.docstring import WaiterDocstring +from botocore.useragent import register_feature_id +from botocore.utils import get_service_module_name + +from . import xform_name +from .exceptions import ClientError, WaiterConfigError, WaiterError + +logger = logging.getLogger(__name__) + + +def create_waiter_with_client(waiter_name, waiter_model, client): + """ + + :type waiter_name: str + :param waiter_name: The name of the waiter. The name should match + the name (including the casing) of the key name in the waiter + model file (typically this is CamelCasing). + + :type waiter_model: botocore.waiter.WaiterModel + :param waiter_model: The model for the waiter configuration. + + :type client: botocore.client.BaseClient + :param client: The botocore client associated with the service. + + :rtype: botocore.waiter.Waiter + :return: The waiter object. + + """ + single_waiter_config = waiter_model.get_waiter(waiter_name) + operation_name = xform_name(single_waiter_config.operation) + operation_method = NormalizedOperationMethod( + getattr(client, operation_name) + ) + + # Create a new wait method that will serve as a proxy to the underlying + # Waiter.wait method. This is needed to attach a docstring to the + # method. + def wait(self, **kwargs): + Waiter.wait(self, **kwargs) + + wait.__doc__ = WaiterDocstring( + waiter_name=waiter_name, + event_emitter=client.meta.events, + service_model=client.meta.service_model, + service_waiter_model=waiter_model, + include_signature=False, + ) + + # Rename the waiter class based on the type of waiter. + waiter_class_name = str( + f'{get_service_module_name(client.meta.service_model)}.Waiter.{waiter_name}' + ) + + # Create the new waiter class + documented_waiter_cls = type(waiter_class_name, (Waiter,), {'wait': wait}) + + # Return an instance of the new waiter class. + return documented_waiter_cls( + waiter_name, single_waiter_config, operation_method + ) + + +def is_valid_waiter_error(response): + error = response.get('Error') + if isinstance(error, dict) and 'Code' in error: + return True + return False + + +class NormalizedOperationMethod: + def __init__(self, client_method): + self._client_method = client_method + + def __call__(self, **kwargs): + try: + return self._client_method(**kwargs) + except ClientError as e: + return e.response + + +class WaiterModel: + SUPPORTED_VERSION = 2 + + def __init__(self, waiter_config): + """ + + Note that the WaiterModel takes ownership of the waiter_config. + It may or may not mutate the waiter_config. If this is a concern, + it is best to make a copy of the waiter config before passing it to + the WaiterModel. + + :type waiter_config: dict + :param waiter_config: The loaded waiter config + from the *.waiters.json file. This can be + obtained from a botocore Loader object as well. + + """ + self._waiter_config = waiter_config['waiters'] + + # These are part of the public API. Changing these + # will result in having to update the consuming code, + # so don't change unless you really need to. + version = waiter_config.get('version', 'unknown') + self._verify_supported_version(version) + self.version = version + self.waiter_names = list(sorted(waiter_config['waiters'].keys())) + + def _verify_supported_version(self, version): + if version != self.SUPPORTED_VERSION: + raise WaiterConfigError( + error_msg=( + "Unsupported waiter version, supported version " + f"must be: {self.SUPPORTED_VERSION}, but version " + f"of waiter config is: {version}" + ) + ) + + def get_waiter(self, waiter_name): + try: + single_waiter_config = self._waiter_config[waiter_name] + except KeyError: + raise ValueError(f"Waiter does not exist: {waiter_name}") + return SingleWaiterConfig(single_waiter_config) + + +class SingleWaiterConfig: + """Represents the waiter configuration for a single waiter. + + A single waiter is considered the configuration for a single + value associated with a named waiter (i.e TableExists). + + """ + + def __init__(self, single_waiter_config): + self._config = single_waiter_config + + # These attributes are part of the public API. + self.description = single_waiter_config.get('description', '') + # Per the spec, these three fields are required. + self.operation = single_waiter_config['operation'] + self.delay = single_waiter_config['delay'] + self.max_attempts = single_waiter_config['maxAttempts'] + + @property + def acceptors(self): + acceptors = [] + for acceptor_config in self._config['acceptors']: + acceptor = AcceptorConfig(acceptor_config) + acceptors.append(acceptor) + return acceptors + + +class AcceptorConfig: + def __init__(self, config): + self.state = config['state'] + self.matcher = config['matcher'] + self.expected = config['expected'] + self.argument = config.get('argument') + self.matcher_func = self._create_matcher_func() + + @property + def explanation(self): + if self.matcher == 'path': + return f'For expression "{self.argument}" we matched expected path: "{self.expected}"' + elif self.matcher == 'pathAll': + return ( + f'For expression "{self.argument}" all members matched ' + f'expected path: "{self.expected}"' + ) + elif self.matcher == 'pathAny': + return ( + f'For expression "{self.argument}" we matched expected ' + f'path: "{self.expected}" at least once' + ) + elif self.matcher == 'status': + return f'Matched expected HTTP status code: {self.expected}' + elif self.matcher == 'error': + return f'Matched expected service error code: {self.expected}' + else: + return f'No explanation for unknown waiter type: "{self.matcher}"' + + def _create_matcher_func(self): + # An acceptor function is a callable that takes a single value. The + # parsed AWS response. Note that the parsed error response is also + # provided in the case of errors, so it's entirely possible to + # handle all the available matcher capabilities in the future. + # There's only three supported matchers, so for now, this is all + # contained to a single method. If this grows, we can expand this + # out to separate methods or even objects. + + if self.matcher == 'path': + return self._create_path_matcher() + elif self.matcher == 'pathAll': + return self._create_path_all_matcher() + elif self.matcher == 'pathAny': + return self._create_path_any_matcher() + elif self.matcher == 'status': + return self._create_status_matcher() + elif self.matcher == 'error': + return self._create_error_matcher() + else: + raise WaiterConfigError( + error_msg=f"Unknown acceptor: {self.matcher}" + ) + + def _create_path_matcher(self): + expression = jmespath.compile(self.argument) + expected = self.expected + + def acceptor_matches(response): + if is_valid_waiter_error(response): + return + return expression.search(response) == expected + + return acceptor_matches + + def _create_path_all_matcher(self): + expression = jmespath.compile(self.argument) + expected = self.expected + + def acceptor_matches(response): + if is_valid_waiter_error(response): + return + result = expression.search(response) + if not isinstance(result, list) or not result: + # pathAll matcher must result in a list. + # Also we require at least one element in the list, + # that is, an empty list should not result in this + # acceptor match. + return False + for element in result: + if element != expected: + return False + return True + + return acceptor_matches + + def _create_path_any_matcher(self): + expression = jmespath.compile(self.argument) + expected = self.expected + + def acceptor_matches(response): + if is_valid_waiter_error(response): + return + result = expression.search(response) + if not isinstance(result, list) or not result: + # pathAny matcher must result in a list. + # Also we require at least one element in the list, + # that is, an empty list should not result in this + # acceptor match. + return False + for element in result: + if element == expected: + return True + return False + + return acceptor_matches + + def _create_status_matcher(self): + expected = self.expected + + def acceptor_matches(response): + # We don't have any requirements on the expected incoming data + # other than it is a dict, so we don't assume there's + # a ResponseMetadata.HTTPStatusCode. + status_code = response.get('ResponseMetadata', {}).get( + 'HTTPStatusCode' + ) + return status_code == expected + + return acceptor_matches + + def _create_error_matcher(self): + expected = self.expected + + def acceptor_matches(response): + # When the client encounters an error, it will normally raise + # an exception. However, the waiter implementation will catch + # this exception, and instead send us the parsed error + # response. So response is still a dictionary, and in the case + # of an error response will contain the "Error" and + # "ResponseMetadata" key. + # When expected is True, accept any error code. + # When expected is False, check if any errors were encountered. + # Otherwise, check for a specific AWS error code. + if expected is True: + return "Error" in response and "Code" in response["Error"] + elif expected is False: + return "Error" not in response + else: + return response.get("Error", {}).get("Code", "") == expected + + return acceptor_matches + + +class Waiter: + def __init__(self, name, config, operation_method): + """ + + :type name: string + :param name: The name of the waiter + + :type config: botocore.waiter.SingleWaiterConfig + :param config: The configuration for the waiter. + + :type operation_method: callable + :param operation_method: A callable that accepts **kwargs + and returns a response. For example, this can be + a method from a botocore client. + + """ + self._operation_method = operation_method + # The two attributes are exposed to allow for introspection + # and documentation. + self.name = name + self.config = config + + @with_current_context(partial(register_feature_id, 'WAITER')) + def wait(self, **kwargs): + acceptors = list(self.config.acceptors) + current_state = 'waiting' + # pop the invocation specific config + config = kwargs.pop('WaiterConfig', {}) + sleep_amount = config.get('Delay', self.config.delay) + max_attempts = config.get('MaxAttempts', self.config.max_attempts) + last_matched_acceptor = None + num_attempts = 0 + + while True: + response = self._operation_method(**kwargs) + num_attempts += 1 + for acceptor in acceptors: + if acceptor.matcher_func(response): + last_matched_acceptor = acceptor + current_state = acceptor.state + break + else: + # If none of the acceptors matched, we should + # transition to the failure state if an error + # response was received. + if is_valid_waiter_error(response): + # Transition to a failure state, which we + # can just handle here by raising an exception. + raise WaiterError( + name=self.name, + reason='An error occurred ({}): {}'.format( + response['Error'].get('Code', 'Unknown'), + response['Error'].get('Message', 'Unknown'), + ), + last_response=response, + ) + if current_state == 'success': + logger.debug( + "Waiting complete, waiter matched the success state." + ) + return + if current_state == 'failure': + reason = f'Waiter encountered a terminal failure state: {acceptor.explanation}' + raise WaiterError( + name=self.name, + reason=reason, + last_response=response, + ) + if num_attempts >= max_attempts: + if last_matched_acceptor is None: + reason = 'Max attempts exceeded' + else: + reason = ( + f'Max attempts exceeded. Previously accepted state: ' + f'{acceptor.explanation}' + ) + raise WaiterError( + name=self.name, + reason=reason, + last_response=response, + ) + time.sleep(sleep_amount) diff --git a/rep_localstack/lib/python3.12/site-packages/colorama-0.4.6.dist-info/INSTALLER b/rep_localstack/lib/python3.12/site-packages/colorama-0.4.6.dist-info/INSTALLER new file mode 100644 index 000000000..a1b589e38 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/colorama-0.4.6.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/rep_localstack/lib/python3.12/site-packages/colorama-0.4.6.dist-info/METADATA b/rep_localstack/lib/python3.12/site-packages/colorama-0.4.6.dist-info/METADATA new file mode 100644 index 000000000..a1b5c5754 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/colorama-0.4.6.dist-info/METADATA @@ -0,0 +1,441 @@ +Metadata-Version: 2.1 +Name: colorama +Version: 0.4.6 +Summary: Cross-platform colored terminal text. +Project-URL: Homepage, https://github.com/tartley/colorama +Author-email: Jonathan Hartley +License-File: LICENSE.txt +Keywords: ansi,color,colour,crossplatform,terminal,text,windows,xplatform +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Console +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Terminals +Requires-Python: !=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7 +Description-Content-Type: text/x-rst + +.. image:: https://img.shields.io/pypi/v/colorama.svg + :target: https://pypi.org/project/colorama/ + :alt: Latest Version + +.. image:: https://img.shields.io/pypi/pyversions/colorama.svg + :target: https://pypi.org/project/colorama/ + :alt: Supported Python versions + +.. image:: https://github.com/tartley/colorama/actions/workflows/test.yml/badge.svg + :target: https://github.com/tartley/colorama/actions/workflows/test.yml + :alt: Build Status + +Colorama +======== + +Makes ANSI escape character sequences (for producing colored terminal text and +cursor positioning) work under MS Windows. + +.. |donate| image:: https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif + :target: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=2MZ9D2GMLYCUJ&item_name=Colorama¤cy_code=USD + :alt: Donate with Paypal + +`PyPI for releases `_ | +`Github for source `_ | +`Colorama for enterprise on Tidelift `_ + +If you find Colorama useful, please |donate| to the authors. Thank you! + +Installation +------------ + +Tested on CPython 2.7, 3.7, 3.8, 3.9 and 3.10 and Pypy 2.7 and 3.8. + +No requirements other than the standard library. + +.. code-block:: bash + + pip install colorama + # or + conda install -c anaconda colorama + +Description +----------- + +ANSI escape character sequences have long been used to produce colored terminal +text and cursor positioning on Unix and Macs. Colorama makes this work on +Windows, too, by wrapping ``stdout``, stripping ANSI sequences it finds (which +would appear as gobbledygook in the output), and converting them into the +appropriate win32 calls to modify the state of the terminal. On other platforms, +Colorama does nothing. + +This has the upshot of providing a simple cross-platform API for printing +colored terminal text from Python, and has the happy side-effect that existing +applications or libraries which use ANSI sequences to produce colored output on +Linux or Macs can now also work on Windows, simply by calling +``colorama.just_fix_windows_console()`` (since v0.4.6) or ``colorama.init()`` +(all versions, but may have other side-effects – see below). + +An alternative approach is to install ``ansi.sys`` on Windows machines, which +provides the same behaviour for all applications running in terminals. Colorama +is intended for situations where that isn't easy (e.g., maybe your app doesn't +have an installer.) + +Demo scripts in the source code repository print some colored text using +ANSI sequences. Compare their output under Gnome-terminal's built in ANSI +handling, versus on Windows Command-Prompt using Colorama: + +.. image:: https://github.com/tartley/colorama/raw/master/screenshots/ubuntu-demo.png + :width: 661 + :height: 357 + :alt: ANSI sequences on Ubuntu under gnome-terminal. + +.. image:: https://github.com/tartley/colorama/raw/master/screenshots/windows-demo.png + :width: 668 + :height: 325 + :alt: Same ANSI sequences on Windows, using Colorama. + +These screenshots show that, on Windows, Colorama does not support ANSI 'dim +text'; it looks the same as 'normal text'. + +Usage +----- + +Initialisation +.............. + +If the only thing you want from Colorama is to get ANSI escapes to work on +Windows, then run: + +.. code-block:: python + + from colorama import just_fix_windows_console + just_fix_windows_console() + +If you're on a recent version of Windows 10 or better, and your stdout/stderr +are pointing to a Windows console, then this will flip the magic configuration +switch to enable Windows' built-in ANSI support. + +If you're on an older version of Windows, and your stdout/stderr are pointing to +a Windows console, then this will wrap ``sys.stdout`` and/or ``sys.stderr`` in a +magic file object that intercepts ANSI escape sequences and issues the +appropriate Win32 calls to emulate them. + +In all other circumstances, it does nothing whatsoever. Basically the idea is +that this makes Windows act like Unix with respect to ANSI escape handling. + +It's safe to call this function multiple times. It's safe to call this function +on non-Windows platforms, but it won't do anything. It's safe to call this +function when one or both of your stdout/stderr are redirected to a file – it +won't do anything to those streams. + +Alternatively, you can use the older interface with more features (but also more +potential footguns): + +.. code-block:: python + + from colorama import init + init() + +This does the same thing as ``just_fix_windows_console``, except for the +following differences: + +- It's not safe to call ``init`` multiple times; you can end up with multiple + layers of wrapping and broken ANSI support. + +- Colorama will apply a heuristic to guess whether stdout/stderr support ANSI, + and if it thinks they don't, then it will wrap ``sys.stdout`` and + ``sys.stderr`` in a magic file object that strips out ANSI escape sequences + before printing them. This happens on all platforms, and can be convenient if + you want to write your code to emit ANSI escape sequences unconditionally, and + let Colorama decide whether they should actually be output. But note that + Colorama's heuristic is not particularly clever. + +- ``init`` also accepts explicit keyword args to enable/disable various + functionality – see below. + +To stop using Colorama before your program exits, simply call ``deinit()``. +This will restore ``stdout`` and ``stderr`` to their original values, so that +Colorama is disabled. To resume using Colorama again, call ``reinit()``; it is +cheaper than calling ``init()`` again (but does the same thing). + +Most users should depend on ``colorama >= 0.4.6``, and use +``just_fix_windows_console``. The old ``init`` interface will be supported +indefinitely for backwards compatibility, but we don't plan to fix any issues +with it, also for backwards compatibility. + +Colored Output +.............. + +Cross-platform printing of colored text can then be done using Colorama's +constant shorthand for ANSI escape sequences. These are deliberately +rudimentary, see below. + +.. code-block:: python + + from colorama import Fore, Back, Style + print(Fore.RED + 'some red text') + print(Back.GREEN + 'and with a green background') + print(Style.DIM + 'and in dim text') + print(Style.RESET_ALL) + print('back to normal now') + +...or simply by manually printing ANSI sequences from your own code: + +.. code-block:: python + + print('\033[31m' + 'some red text') + print('\033[39m') # and reset to default color + +...or, Colorama can be used in conjunction with existing ANSI libraries +such as the venerable `Termcolor `_ +the fabulous `Blessings `_, +or the incredible `_Rich `_. + +If you wish Colorama's Fore, Back and Style constants were more capable, +then consider using one of the above highly capable libraries to generate +colors, etc, and use Colorama just for its primary purpose: to convert +those ANSI sequences to also work on Windows: + +SIMILARLY, do not send PRs adding the generation of new ANSI types to Colorama. +We are only interested in converting ANSI codes to win32 API calls, not +shortcuts like the above to generate ANSI characters. + +.. code-block:: python + + from colorama import just_fix_windows_console + from termcolor import colored + + # use Colorama to make Termcolor work on Windows too + just_fix_windows_console() + + # then use Termcolor for all colored text output + print(colored('Hello, World!', 'green', 'on_red')) + +Available formatting constants are:: + + Fore: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET. + Back: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET. + Style: DIM, NORMAL, BRIGHT, RESET_ALL + +``Style.RESET_ALL`` resets foreground, background, and brightness. Colorama will +perform this reset automatically on program exit. + +These are fairly well supported, but not part of the standard:: + + Fore: LIGHTBLACK_EX, LIGHTRED_EX, LIGHTGREEN_EX, LIGHTYELLOW_EX, LIGHTBLUE_EX, LIGHTMAGENTA_EX, LIGHTCYAN_EX, LIGHTWHITE_EX + Back: LIGHTBLACK_EX, LIGHTRED_EX, LIGHTGREEN_EX, LIGHTYELLOW_EX, LIGHTBLUE_EX, LIGHTMAGENTA_EX, LIGHTCYAN_EX, LIGHTWHITE_EX + +Cursor Positioning +.................. + +ANSI codes to reposition the cursor are supported. See ``demos/demo06.py`` for +an example of how to generate them. + +Init Keyword Args +................. + +``init()`` accepts some ``**kwargs`` to override default behaviour. + +init(autoreset=False): + If you find yourself repeatedly sending reset sequences to turn off color + changes at the end of every print, then ``init(autoreset=True)`` will + automate that: + + .. code-block:: python + + from colorama import init + init(autoreset=True) + print(Fore.RED + 'some red text') + print('automatically back to default color again') + +init(strip=None): + Pass ``True`` or ``False`` to override whether ANSI codes should be + stripped from the output. The default behaviour is to strip if on Windows + or if output is redirected (not a tty). + +init(convert=None): + Pass ``True`` or ``False`` to override whether to convert ANSI codes in the + output into win32 calls. The default behaviour is to convert if on Windows + and output is to a tty (terminal). + +init(wrap=True): + On Windows, Colorama works by replacing ``sys.stdout`` and ``sys.stderr`` + with proxy objects, which override the ``.write()`` method to do their work. + If this wrapping causes you problems, then this can be disabled by passing + ``init(wrap=False)``. The default behaviour is to wrap if ``autoreset`` or + ``strip`` or ``convert`` are True. + + When wrapping is disabled, colored printing on non-Windows platforms will + continue to work as normal. To do cross-platform colored output, you can + use Colorama's ``AnsiToWin32`` proxy directly: + + .. code-block:: python + + import sys + from colorama import init, AnsiToWin32 + init(wrap=False) + stream = AnsiToWin32(sys.stderr).stream + + # Python 2 + print >>stream, Fore.BLUE + 'blue text on stderr' + + # Python 3 + print(Fore.BLUE + 'blue text on stderr', file=stream) + +Recognised ANSI Sequences +......................... + +ANSI sequences generally take the form:: + + ESC [ ; ... + +Where ```` is an integer, and ```` is a single letter. Zero or +more params are passed to a ````. If no params are passed, it is +generally synonymous with passing a single zero. No spaces exist in the +sequence; they have been inserted here simply to read more easily. + +The only ANSI sequences that Colorama converts into win32 calls are:: + + ESC [ 0 m # reset all (colors and brightness) + ESC [ 1 m # bright + ESC [ 2 m # dim (looks same as normal brightness) + ESC [ 22 m # normal brightness + + # FOREGROUND: + ESC [ 30 m # black + ESC [ 31 m # red + ESC [ 32 m # green + ESC [ 33 m # yellow + ESC [ 34 m # blue + ESC [ 35 m # magenta + ESC [ 36 m # cyan + ESC [ 37 m # white + ESC [ 39 m # reset + + # BACKGROUND + ESC [ 40 m # black + ESC [ 41 m # red + ESC [ 42 m # green + ESC [ 43 m # yellow + ESC [ 44 m # blue + ESC [ 45 m # magenta + ESC [ 46 m # cyan + ESC [ 47 m # white + ESC [ 49 m # reset + + # cursor positioning + ESC [ y;x H # position cursor at x across, y down + ESC [ y;x f # position cursor at x across, y down + ESC [ n A # move cursor n lines up + ESC [ n B # move cursor n lines down + ESC [ n C # move cursor n characters forward + ESC [ n D # move cursor n characters backward + + # clear the screen + ESC [ mode J # clear the screen + + # clear the line + ESC [ mode K # clear the line + +Multiple numeric params to the ``'m'`` command can be combined into a single +sequence:: + + ESC [ 36 ; 45 ; 1 m # bright cyan text on magenta background + +All other ANSI sequences of the form ``ESC [ ; ... `` +are silently stripped from the output on Windows. + +Any other form of ANSI sequence, such as single-character codes or alternative +initial characters, are not recognised or stripped. It would be cool to add +them though. Let me know if it would be useful for you, via the Issues on +GitHub. + +Status & Known Problems +----------------------- + +I've personally only tested it on Windows XP (CMD, Console2), Ubuntu +(gnome-terminal, xterm), and OS X. + +Some valid ANSI sequences aren't recognised. + +If you're hacking on the code, see `README-hacking.md`_. ESPECIALLY, see the +explanation there of why we do not want PRs that allow Colorama to generate new +types of ANSI codes. + +See outstanding issues and wish-list: +https://github.com/tartley/colorama/issues + +If anything doesn't work for you, or doesn't do what you expected or hoped for, +I'd love to hear about it on that issues list, would be delighted by patches, +and would be happy to grant commit access to anyone who submits a working patch +or two. + +.. _README-hacking.md: README-hacking.md + +License +------- + +Copyright Jonathan Hartley & Arnon Yaari, 2013-2020. BSD 3-Clause license; see +LICENSE file. + +Professional support +-------------------- + +.. |tideliftlogo| image:: https://cdn2.hubspot.net/hubfs/4008838/website/logos/logos_for_download/Tidelift_primary-shorthand-logo.png + :alt: Tidelift + :target: https://tidelift.com/subscription/pkg/pypi-colorama?utm_source=pypi-colorama&utm_medium=referral&utm_campaign=readme + +.. list-table:: + :widths: 10 100 + + * - |tideliftlogo| + - Professional support for colorama is available as part of the + `Tidelift Subscription`_. + Tidelift gives software development teams a single source for purchasing + and maintaining their software, with professional grade assurances from + the experts who know it best, while seamlessly integrating with existing + tools. + +.. _Tidelift Subscription: https://tidelift.com/subscription/pkg/pypi-colorama?utm_source=pypi-colorama&utm_medium=referral&utm_campaign=readme + +Thanks +------ + +See the CHANGELOG for more thanks! + +* Marc Schlaich (schlamar) for a ``setup.py`` fix for Python2.5. +* Marc Abramowitz, reported & fixed a crash on exit with closed ``stdout``, + providing a solution to issue #7's setuptools/distutils debate, + and other fixes. +* User 'eryksun', for guidance on correctly instantiating ``ctypes.windll``. +* Matthew McCormick for politely pointing out a longstanding crash on non-Win. +* Ben Hoyt, for a magnificent fix under 64-bit Windows. +* Jesse at Empty Square for submitting a fix for examples in the README. +* User 'jamessp', an observant documentation fix for cursor positioning. +* User 'vaal1239', Dave Mckee & Lackner Kristof for a tiny but much-needed Win7 + fix. +* Julien Stuyck, for wisely suggesting Python3 compatible updates to README. +* Daniel Griffith for multiple fabulous patches. +* Oscar Lesta for a valuable fix to stop ANSI chars being sent to non-tty + output. +* Roger Binns, for many suggestions, valuable feedback, & bug reports. +* Tim Golden for thought and much appreciated feedback on the initial idea. +* User 'Zearin' for updates to the README file. +* John Szakmeister for adding support for light colors +* Charles Merriam for adding documentation to demos +* Jurko for a fix on 64-bit Windows CPython2.5 w/o ctypes +* Florian Bruhin for a fix when stdout or stderr are None +* Thomas Weininger for fixing ValueError on Windows +* Remi Rampin for better Github integration and fixes to the README file +* Simeon Visser for closing a file handle using 'with' and updating classifiers + to include Python 3.3 and 3.4 +* Andy Neff for fixing RESET of LIGHT_EX colors. +* Jonathan Hartley for the initial idea and implementation. diff --git a/rep_localstack/lib/python3.12/site-packages/colorama-0.4.6.dist-info/RECORD b/rep_localstack/lib/python3.12/site-packages/colorama-0.4.6.dist-info/RECORD new file mode 100644 index 000000000..496de2727 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/colorama-0.4.6.dist-info/RECORD @@ -0,0 +1,31 @@ +colorama-0.4.6.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +colorama-0.4.6.dist-info/METADATA,sha256=e67SnrUMOym9sz_4TjF3vxvAV4T3aF7NyqRHHH3YEMw,17158 +colorama-0.4.6.dist-info/RECORD,, +colorama-0.4.6.dist-info/WHEEL,sha256=cdcF4Fbd0FPtw2EMIOwH-3rSOTUdTCeOSXRMD1iLUb8,105 +colorama-0.4.6.dist-info/licenses/LICENSE.txt,sha256=ysNcAmhuXQSlpxQL-zs25zrtSWZW6JEQLkKIhteTAxg,1491 +colorama/__init__.py,sha256=wePQA4U20tKgYARySLEC047ucNX-g8pRLpYBuiHlLb8,266 +colorama/__pycache__/__init__.cpython-312.pyc,, +colorama/__pycache__/ansi.cpython-312.pyc,, +colorama/__pycache__/ansitowin32.cpython-312.pyc,, +colorama/__pycache__/initialise.cpython-312.pyc,, +colorama/__pycache__/win32.cpython-312.pyc,, +colorama/__pycache__/winterm.cpython-312.pyc,, +colorama/ansi.py,sha256=Top4EeEuaQdBWdteKMEcGOTeKeF19Q-Wo_6_Cj5kOzQ,2522 +colorama/ansitowin32.py,sha256=vPNYa3OZbxjbuFyaVo0Tmhmy1FZ1lKMWCnT7odXpItk,11128 +colorama/initialise.py,sha256=-hIny86ClXo39ixh5iSCfUIa2f_h_bgKRDW7gqs-KLU,3325 +colorama/tests/__init__.py,sha256=MkgPAEzGQd-Rq0w0PZXSX2LadRWhUECcisJY8lSrm4Q,75 +colorama/tests/__pycache__/__init__.cpython-312.pyc,, +colorama/tests/__pycache__/ansi_test.cpython-312.pyc,, +colorama/tests/__pycache__/ansitowin32_test.cpython-312.pyc,, +colorama/tests/__pycache__/initialise_test.cpython-312.pyc,, +colorama/tests/__pycache__/isatty_test.cpython-312.pyc,, +colorama/tests/__pycache__/utils.cpython-312.pyc,, +colorama/tests/__pycache__/winterm_test.cpython-312.pyc,, +colorama/tests/ansi_test.py,sha256=FeViDrUINIZcr505PAxvU4AjXz1asEiALs9GXMhwRaE,2839 +colorama/tests/ansitowin32_test.py,sha256=RN7AIhMJ5EqDsYaCjVo-o4u8JzDD4ukJbmevWKS70rY,10678 +colorama/tests/initialise_test.py,sha256=BbPy-XfyHwJ6zKozuQOvNvQZzsx9vdb_0bYXn7hsBTc,6741 +colorama/tests/isatty_test.py,sha256=Pg26LRpv0yQDB5Ac-sxgVXG7hsA1NYvapFgApZfYzZg,1866 +colorama/tests/utils.py,sha256=1IIRylG39z5-dzq09R_ngufxyPZxgldNbrxKxUGwGKE,1079 +colorama/tests/winterm_test.py,sha256=qoWFPEjym5gm2RuMwpf3pOis3a5r_PJZFCzK254JL8A,3709 +colorama/win32.py,sha256=YQOKwMTwtGBbsY4dL5HYTvwTeP9wIQra5MvPNddpxZs,6181 +colorama/winterm.py,sha256=XCQFDHjPi6AHYNdZwy0tA02H-Jh48Jp-HvCjeLeLp3U,7134 diff --git a/rep_localstack/lib/python3.12/site-packages/colorama-0.4.6.dist-info/WHEEL b/rep_localstack/lib/python3.12/site-packages/colorama-0.4.6.dist-info/WHEEL new file mode 100644 index 000000000..d79189fda --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/colorama-0.4.6.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: hatchling 1.11.1 +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any diff --git a/rep_localstack/lib/python3.12/site-packages/colorama-0.4.6.dist-info/licenses/LICENSE.txt b/rep_localstack/lib/python3.12/site-packages/colorama-0.4.6.dist-info/licenses/LICENSE.txt new file mode 100644 index 000000000..3105888ec --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/colorama-0.4.6.dist-info/licenses/LICENSE.txt @@ -0,0 +1,27 @@ +Copyright (c) 2010 Jonathan Hartley +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holders, nor those of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/__init__.py b/rep_localstack/lib/python3.12/site-packages/colorama/__init__.py new file mode 100644 index 000000000..383101cdb --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/colorama/__init__.py @@ -0,0 +1,7 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +from .initialise import init, deinit, reinit, colorama_text, just_fix_windows_console +from .ansi import Fore, Back, Style, Cursor +from .ansitowin32 import AnsiToWin32 + +__version__ = '0.4.6' + diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/__pycache__/__init__.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/colorama/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 000000000..0e39d48d2 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/colorama/__pycache__/__init__.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/__pycache__/ansi.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/colorama/__pycache__/ansi.cpython-312.pyc new file mode 100644 index 000000000..34441ca93 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/colorama/__pycache__/ansi.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/__pycache__/ansitowin32.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/colorama/__pycache__/ansitowin32.cpython-312.pyc new file mode 100644 index 000000000..871626975 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/colorama/__pycache__/ansitowin32.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/__pycache__/initialise.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/colorama/__pycache__/initialise.cpython-312.pyc new file mode 100644 index 000000000..767ac8b41 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/colorama/__pycache__/initialise.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/__pycache__/win32.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/colorama/__pycache__/win32.cpython-312.pyc new file mode 100644 index 000000000..ef47ffda3 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/colorama/__pycache__/win32.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/__pycache__/winterm.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/colorama/__pycache__/winterm.cpython-312.pyc new file mode 100644 index 000000000..fc2bd18d7 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/colorama/__pycache__/winterm.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/ansi.py b/rep_localstack/lib/python3.12/site-packages/colorama/ansi.py new file mode 100644 index 000000000..11ec695ff --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/colorama/ansi.py @@ -0,0 +1,102 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +''' +This module generates ANSI character codes to printing colors to terminals. +See: http://en.wikipedia.org/wiki/ANSI_escape_code +''' + +CSI = '\033[' +OSC = '\033]' +BEL = '\a' + + +def code_to_chars(code): + return CSI + str(code) + 'm' + +def set_title(title): + return OSC + '2;' + title + BEL + +def clear_screen(mode=2): + return CSI + str(mode) + 'J' + +def clear_line(mode=2): + return CSI + str(mode) + 'K' + + +class AnsiCodes(object): + def __init__(self): + # the subclasses declare class attributes which are numbers. + # Upon instantiation we define instance attributes, which are the same + # as the class attributes but wrapped with the ANSI escape sequence + for name in dir(self): + if not name.startswith('_'): + value = getattr(self, name) + setattr(self, name, code_to_chars(value)) + + +class AnsiCursor(object): + def UP(self, n=1): + return CSI + str(n) + 'A' + def DOWN(self, n=1): + return CSI + str(n) + 'B' + def FORWARD(self, n=1): + return CSI + str(n) + 'C' + def BACK(self, n=1): + return CSI + str(n) + 'D' + def POS(self, x=1, y=1): + return CSI + str(y) + ';' + str(x) + 'H' + + +class AnsiFore(AnsiCodes): + BLACK = 30 + RED = 31 + GREEN = 32 + YELLOW = 33 + BLUE = 34 + MAGENTA = 35 + CYAN = 36 + WHITE = 37 + RESET = 39 + + # These are fairly well supported, but not part of the standard. + LIGHTBLACK_EX = 90 + LIGHTRED_EX = 91 + LIGHTGREEN_EX = 92 + LIGHTYELLOW_EX = 93 + LIGHTBLUE_EX = 94 + LIGHTMAGENTA_EX = 95 + LIGHTCYAN_EX = 96 + LIGHTWHITE_EX = 97 + + +class AnsiBack(AnsiCodes): + BLACK = 40 + RED = 41 + GREEN = 42 + YELLOW = 43 + BLUE = 44 + MAGENTA = 45 + CYAN = 46 + WHITE = 47 + RESET = 49 + + # These are fairly well supported, but not part of the standard. + LIGHTBLACK_EX = 100 + LIGHTRED_EX = 101 + LIGHTGREEN_EX = 102 + LIGHTYELLOW_EX = 103 + LIGHTBLUE_EX = 104 + LIGHTMAGENTA_EX = 105 + LIGHTCYAN_EX = 106 + LIGHTWHITE_EX = 107 + + +class AnsiStyle(AnsiCodes): + BRIGHT = 1 + DIM = 2 + NORMAL = 22 + RESET_ALL = 0 + +Fore = AnsiFore() +Back = AnsiBack() +Style = AnsiStyle() +Cursor = AnsiCursor() diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/ansitowin32.py b/rep_localstack/lib/python3.12/site-packages/colorama/ansitowin32.py new file mode 100644 index 000000000..abf209e60 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/colorama/ansitowin32.py @@ -0,0 +1,277 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +import re +import sys +import os + +from .ansi import AnsiFore, AnsiBack, AnsiStyle, Style, BEL +from .winterm import enable_vt_processing, WinTerm, WinColor, WinStyle +from .win32 import windll, winapi_test + + +winterm = None +if windll is not None: + winterm = WinTerm() + + +class StreamWrapper(object): + ''' + Wraps a stream (such as stdout), acting as a transparent proxy for all + attribute access apart from method 'write()', which is delegated to our + Converter instance. + ''' + def __init__(self, wrapped, converter): + # double-underscore everything to prevent clashes with names of + # attributes on the wrapped stream object. + self.__wrapped = wrapped + self.__convertor = converter + + def __getattr__(self, name): + return getattr(self.__wrapped, name) + + def __enter__(self, *args, **kwargs): + # special method lookup bypasses __getattr__/__getattribute__, see + # https://stackoverflow.com/questions/12632894/why-doesnt-getattr-work-with-exit + # thus, contextlib magic methods are not proxied via __getattr__ + return self.__wrapped.__enter__(*args, **kwargs) + + def __exit__(self, *args, **kwargs): + return self.__wrapped.__exit__(*args, **kwargs) + + def __setstate__(self, state): + self.__dict__ = state + + def __getstate__(self): + return self.__dict__ + + def write(self, text): + self.__convertor.write(text) + + def isatty(self): + stream = self.__wrapped + if 'PYCHARM_HOSTED' in os.environ: + if stream is not None and (stream is sys.__stdout__ or stream is sys.__stderr__): + return True + try: + stream_isatty = stream.isatty + except AttributeError: + return False + else: + return stream_isatty() + + @property + def closed(self): + stream = self.__wrapped + try: + return stream.closed + # AttributeError in the case that the stream doesn't support being closed + # ValueError for the case that the stream has already been detached when atexit runs + except (AttributeError, ValueError): + return True + + +class AnsiToWin32(object): + ''' + Implements a 'write()' method which, on Windows, will strip ANSI character + sequences from the text, and if outputting to a tty, will convert them into + win32 function calls. + ''' + ANSI_CSI_RE = re.compile('\001?\033\\[((?:\\d|;)*)([a-zA-Z])\002?') # Control Sequence Introducer + ANSI_OSC_RE = re.compile('\001?\033\\]([^\a]*)(\a)\002?') # Operating System Command + + def __init__(self, wrapped, convert=None, strip=None, autoreset=False): + # The wrapped stream (normally sys.stdout or sys.stderr) + self.wrapped = wrapped + + # should we reset colors to defaults after every .write() + self.autoreset = autoreset + + # create the proxy wrapping our output stream + self.stream = StreamWrapper(wrapped, self) + + on_windows = os.name == 'nt' + # We test if the WinAPI works, because even if we are on Windows + # we may be using a terminal that doesn't support the WinAPI + # (e.g. Cygwin Terminal). In this case it's up to the terminal + # to support the ANSI codes. + conversion_supported = on_windows and winapi_test() + try: + fd = wrapped.fileno() + except Exception: + fd = -1 + system_has_native_ansi = not on_windows or enable_vt_processing(fd) + have_tty = not self.stream.closed and self.stream.isatty() + need_conversion = conversion_supported and not system_has_native_ansi + + # should we strip ANSI sequences from our output? + if strip is None: + strip = need_conversion or not have_tty + self.strip = strip + + # should we should convert ANSI sequences into win32 calls? + if convert is None: + convert = need_conversion and have_tty + self.convert = convert + + # dict of ansi codes to win32 functions and parameters + self.win32_calls = self.get_win32_calls() + + # are we wrapping stderr? + self.on_stderr = self.wrapped is sys.stderr + + def should_wrap(self): + ''' + True if this class is actually needed. If false, then the output + stream will not be affected, nor will win32 calls be issued, so + wrapping stdout is not actually required. This will generally be + False on non-Windows platforms, unless optional functionality like + autoreset has been requested using kwargs to init() + ''' + return self.convert or self.strip or self.autoreset + + def get_win32_calls(self): + if self.convert and winterm: + return { + AnsiStyle.RESET_ALL: (winterm.reset_all, ), + AnsiStyle.BRIGHT: (winterm.style, WinStyle.BRIGHT), + AnsiStyle.DIM: (winterm.style, WinStyle.NORMAL), + AnsiStyle.NORMAL: (winterm.style, WinStyle.NORMAL), + AnsiFore.BLACK: (winterm.fore, WinColor.BLACK), + AnsiFore.RED: (winterm.fore, WinColor.RED), + AnsiFore.GREEN: (winterm.fore, WinColor.GREEN), + AnsiFore.YELLOW: (winterm.fore, WinColor.YELLOW), + AnsiFore.BLUE: (winterm.fore, WinColor.BLUE), + AnsiFore.MAGENTA: (winterm.fore, WinColor.MAGENTA), + AnsiFore.CYAN: (winterm.fore, WinColor.CYAN), + AnsiFore.WHITE: (winterm.fore, WinColor.GREY), + AnsiFore.RESET: (winterm.fore, ), + AnsiFore.LIGHTBLACK_EX: (winterm.fore, WinColor.BLACK, True), + AnsiFore.LIGHTRED_EX: (winterm.fore, WinColor.RED, True), + AnsiFore.LIGHTGREEN_EX: (winterm.fore, WinColor.GREEN, True), + AnsiFore.LIGHTYELLOW_EX: (winterm.fore, WinColor.YELLOW, True), + AnsiFore.LIGHTBLUE_EX: (winterm.fore, WinColor.BLUE, True), + AnsiFore.LIGHTMAGENTA_EX: (winterm.fore, WinColor.MAGENTA, True), + AnsiFore.LIGHTCYAN_EX: (winterm.fore, WinColor.CYAN, True), + AnsiFore.LIGHTWHITE_EX: (winterm.fore, WinColor.GREY, True), + AnsiBack.BLACK: (winterm.back, WinColor.BLACK), + AnsiBack.RED: (winterm.back, WinColor.RED), + AnsiBack.GREEN: (winterm.back, WinColor.GREEN), + AnsiBack.YELLOW: (winterm.back, WinColor.YELLOW), + AnsiBack.BLUE: (winterm.back, WinColor.BLUE), + AnsiBack.MAGENTA: (winterm.back, WinColor.MAGENTA), + AnsiBack.CYAN: (winterm.back, WinColor.CYAN), + AnsiBack.WHITE: (winterm.back, WinColor.GREY), + AnsiBack.RESET: (winterm.back, ), + AnsiBack.LIGHTBLACK_EX: (winterm.back, WinColor.BLACK, True), + AnsiBack.LIGHTRED_EX: (winterm.back, WinColor.RED, True), + AnsiBack.LIGHTGREEN_EX: (winterm.back, WinColor.GREEN, True), + AnsiBack.LIGHTYELLOW_EX: (winterm.back, WinColor.YELLOW, True), + AnsiBack.LIGHTBLUE_EX: (winterm.back, WinColor.BLUE, True), + AnsiBack.LIGHTMAGENTA_EX: (winterm.back, WinColor.MAGENTA, True), + AnsiBack.LIGHTCYAN_EX: (winterm.back, WinColor.CYAN, True), + AnsiBack.LIGHTWHITE_EX: (winterm.back, WinColor.GREY, True), + } + return dict() + + def write(self, text): + if self.strip or self.convert: + self.write_and_convert(text) + else: + self.wrapped.write(text) + self.wrapped.flush() + if self.autoreset: + self.reset_all() + + + def reset_all(self): + if self.convert: + self.call_win32('m', (0,)) + elif not self.strip and not self.stream.closed: + self.wrapped.write(Style.RESET_ALL) + + + def write_and_convert(self, text): + ''' + Write the given text to our wrapped stream, stripping any ANSI + sequences from the text, and optionally converting them into win32 + calls. + ''' + cursor = 0 + text = self.convert_osc(text) + for match in self.ANSI_CSI_RE.finditer(text): + start, end = match.span() + self.write_plain_text(text, cursor, start) + self.convert_ansi(*match.groups()) + cursor = end + self.write_plain_text(text, cursor, len(text)) + + + def write_plain_text(self, text, start, end): + if start < end: + self.wrapped.write(text[start:end]) + self.wrapped.flush() + + + def convert_ansi(self, paramstring, command): + if self.convert: + params = self.extract_params(command, paramstring) + self.call_win32(command, params) + + + def extract_params(self, command, paramstring): + if command in 'Hf': + params = tuple(int(p) if len(p) != 0 else 1 for p in paramstring.split(';')) + while len(params) < 2: + # defaults: + params = params + (1,) + else: + params = tuple(int(p) for p in paramstring.split(';') if len(p) != 0) + if len(params) == 0: + # defaults: + if command in 'JKm': + params = (0,) + elif command in 'ABCD': + params = (1,) + + return params + + + def call_win32(self, command, params): + if command == 'm': + for param in params: + if param in self.win32_calls: + func_args = self.win32_calls[param] + func = func_args[0] + args = func_args[1:] + kwargs = dict(on_stderr=self.on_stderr) + func(*args, **kwargs) + elif command in 'J': + winterm.erase_screen(params[0], on_stderr=self.on_stderr) + elif command in 'K': + winterm.erase_line(params[0], on_stderr=self.on_stderr) + elif command in 'Hf': # cursor position - absolute + winterm.set_cursor_position(params, on_stderr=self.on_stderr) + elif command in 'ABCD': # cursor position - relative + n = params[0] + # A - up, B - down, C - forward, D - back + x, y = {'A': (0, -n), 'B': (0, n), 'C': (n, 0), 'D': (-n, 0)}[command] + winterm.cursor_adjust(x, y, on_stderr=self.on_stderr) + + + def convert_osc(self, text): + for match in self.ANSI_OSC_RE.finditer(text): + start, end = match.span() + text = text[:start] + text[end:] + paramstring, command = match.groups() + if command == BEL: + if paramstring.count(";") == 1: + params = paramstring.split(";") + # 0 - change title and icon (we will only change title) + # 1 - change icon (we don't support this) + # 2 - change title + if params[0] in '02': + winterm.set_title(params[1]) + return text + + + def flush(self): + self.wrapped.flush() diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/initialise.py b/rep_localstack/lib/python3.12/site-packages/colorama/initialise.py new file mode 100644 index 000000000..d5fd4b71f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/colorama/initialise.py @@ -0,0 +1,121 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +import atexit +import contextlib +import sys + +from .ansitowin32 import AnsiToWin32 + + +def _wipe_internal_state_for_tests(): + global orig_stdout, orig_stderr + orig_stdout = None + orig_stderr = None + + global wrapped_stdout, wrapped_stderr + wrapped_stdout = None + wrapped_stderr = None + + global atexit_done + atexit_done = False + + global fixed_windows_console + fixed_windows_console = False + + try: + # no-op if it wasn't registered + atexit.unregister(reset_all) + except AttributeError: + # python 2: no atexit.unregister. Oh well, we did our best. + pass + + +def reset_all(): + if AnsiToWin32 is not None: # Issue #74: objects might become None at exit + AnsiToWin32(orig_stdout).reset_all() + + +def init(autoreset=False, convert=None, strip=None, wrap=True): + + if not wrap and any([autoreset, convert, strip]): + raise ValueError('wrap=False conflicts with any other arg=True') + + global wrapped_stdout, wrapped_stderr + global orig_stdout, orig_stderr + + orig_stdout = sys.stdout + orig_stderr = sys.stderr + + if sys.stdout is None: + wrapped_stdout = None + else: + sys.stdout = wrapped_stdout = \ + wrap_stream(orig_stdout, convert, strip, autoreset, wrap) + if sys.stderr is None: + wrapped_stderr = None + else: + sys.stderr = wrapped_stderr = \ + wrap_stream(orig_stderr, convert, strip, autoreset, wrap) + + global atexit_done + if not atexit_done: + atexit.register(reset_all) + atexit_done = True + + +def deinit(): + if orig_stdout is not None: + sys.stdout = orig_stdout + if orig_stderr is not None: + sys.stderr = orig_stderr + + +def just_fix_windows_console(): + global fixed_windows_console + + if sys.platform != "win32": + return + if fixed_windows_console: + return + if wrapped_stdout is not None or wrapped_stderr is not None: + # Someone already ran init() and it did stuff, so we won't second-guess them + return + + # On newer versions of Windows, AnsiToWin32.__init__ will implicitly enable the + # native ANSI support in the console as a side-effect. We only need to actually + # replace sys.stdout/stderr if we're in the old-style conversion mode. + new_stdout = AnsiToWin32(sys.stdout, convert=None, strip=None, autoreset=False) + if new_stdout.convert: + sys.stdout = new_stdout + new_stderr = AnsiToWin32(sys.stderr, convert=None, strip=None, autoreset=False) + if new_stderr.convert: + sys.stderr = new_stderr + + fixed_windows_console = True + +@contextlib.contextmanager +def colorama_text(*args, **kwargs): + init(*args, **kwargs) + try: + yield + finally: + deinit() + + +def reinit(): + if wrapped_stdout is not None: + sys.stdout = wrapped_stdout + if wrapped_stderr is not None: + sys.stderr = wrapped_stderr + + +def wrap_stream(stream, convert, strip, autoreset, wrap): + if wrap: + wrapper = AnsiToWin32(stream, + convert=convert, strip=strip, autoreset=autoreset) + if wrapper.should_wrap(): + stream = wrapper.stream + return stream + + +# Use this for initial setup as well, to reduce code duplication +_wipe_internal_state_for_tests() diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/tests/__init__.py b/rep_localstack/lib/python3.12/site-packages/colorama/tests/__init__.py new file mode 100644 index 000000000..8c5661e93 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/colorama/tests/__init__.py @@ -0,0 +1 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/tests/__pycache__/__init__.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/colorama/tests/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 000000000..42a514449 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/colorama/tests/__pycache__/__init__.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/tests/__pycache__/ansi_test.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/colorama/tests/__pycache__/ansi_test.cpython-312.pyc new file mode 100644 index 000000000..903ba838d Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/colorama/tests/__pycache__/ansi_test.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/tests/__pycache__/ansitowin32_test.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/colorama/tests/__pycache__/ansitowin32_test.cpython-312.pyc new file mode 100644 index 000000000..91b489737 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/colorama/tests/__pycache__/ansitowin32_test.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/tests/__pycache__/initialise_test.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/colorama/tests/__pycache__/initialise_test.cpython-312.pyc new file mode 100644 index 000000000..036b07d02 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/colorama/tests/__pycache__/initialise_test.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/tests/__pycache__/isatty_test.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/colorama/tests/__pycache__/isatty_test.cpython-312.pyc new file mode 100644 index 000000000..a92910f1f Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/colorama/tests/__pycache__/isatty_test.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/tests/__pycache__/utils.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/colorama/tests/__pycache__/utils.cpython-312.pyc new file mode 100644 index 000000000..be054d7d4 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/colorama/tests/__pycache__/utils.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/tests/__pycache__/winterm_test.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/colorama/tests/__pycache__/winterm_test.cpython-312.pyc new file mode 100644 index 000000000..a30deaf05 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/colorama/tests/__pycache__/winterm_test.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/tests/ansi_test.py b/rep_localstack/lib/python3.12/site-packages/colorama/tests/ansi_test.py new file mode 100644 index 000000000..0a20c80f8 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/colorama/tests/ansi_test.py @@ -0,0 +1,76 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +import sys +from unittest import TestCase, main + +from ..ansi import Back, Fore, Style +from ..ansitowin32 import AnsiToWin32 + +stdout_orig = sys.stdout +stderr_orig = sys.stderr + + +class AnsiTest(TestCase): + + def setUp(self): + # sanity check: stdout should be a file or StringIO object. + # It will only be AnsiToWin32 if init() has previously wrapped it + self.assertNotEqual(type(sys.stdout), AnsiToWin32) + self.assertNotEqual(type(sys.stderr), AnsiToWin32) + + def tearDown(self): + sys.stdout = stdout_orig + sys.stderr = stderr_orig + + + def testForeAttributes(self): + self.assertEqual(Fore.BLACK, '\033[30m') + self.assertEqual(Fore.RED, '\033[31m') + self.assertEqual(Fore.GREEN, '\033[32m') + self.assertEqual(Fore.YELLOW, '\033[33m') + self.assertEqual(Fore.BLUE, '\033[34m') + self.assertEqual(Fore.MAGENTA, '\033[35m') + self.assertEqual(Fore.CYAN, '\033[36m') + self.assertEqual(Fore.WHITE, '\033[37m') + self.assertEqual(Fore.RESET, '\033[39m') + + # Check the light, extended versions. + self.assertEqual(Fore.LIGHTBLACK_EX, '\033[90m') + self.assertEqual(Fore.LIGHTRED_EX, '\033[91m') + self.assertEqual(Fore.LIGHTGREEN_EX, '\033[92m') + self.assertEqual(Fore.LIGHTYELLOW_EX, '\033[93m') + self.assertEqual(Fore.LIGHTBLUE_EX, '\033[94m') + self.assertEqual(Fore.LIGHTMAGENTA_EX, '\033[95m') + self.assertEqual(Fore.LIGHTCYAN_EX, '\033[96m') + self.assertEqual(Fore.LIGHTWHITE_EX, '\033[97m') + + + def testBackAttributes(self): + self.assertEqual(Back.BLACK, '\033[40m') + self.assertEqual(Back.RED, '\033[41m') + self.assertEqual(Back.GREEN, '\033[42m') + self.assertEqual(Back.YELLOW, '\033[43m') + self.assertEqual(Back.BLUE, '\033[44m') + self.assertEqual(Back.MAGENTA, '\033[45m') + self.assertEqual(Back.CYAN, '\033[46m') + self.assertEqual(Back.WHITE, '\033[47m') + self.assertEqual(Back.RESET, '\033[49m') + + # Check the light, extended versions. + self.assertEqual(Back.LIGHTBLACK_EX, '\033[100m') + self.assertEqual(Back.LIGHTRED_EX, '\033[101m') + self.assertEqual(Back.LIGHTGREEN_EX, '\033[102m') + self.assertEqual(Back.LIGHTYELLOW_EX, '\033[103m') + self.assertEqual(Back.LIGHTBLUE_EX, '\033[104m') + self.assertEqual(Back.LIGHTMAGENTA_EX, '\033[105m') + self.assertEqual(Back.LIGHTCYAN_EX, '\033[106m') + self.assertEqual(Back.LIGHTWHITE_EX, '\033[107m') + + + def testStyleAttributes(self): + self.assertEqual(Style.DIM, '\033[2m') + self.assertEqual(Style.NORMAL, '\033[22m') + self.assertEqual(Style.BRIGHT, '\033[1m') + + +if __name__ == '__main__': + main() diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/tests/ansitowin32_test.py b/rep_localstack/lib/python3.12/site-packages/colorama/tests/ansitowin32_test.py new file mode 100644 index 000000000..91ca551f9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/colorama/tests/ansitowin32_test.py @@ -0,0 +1,294 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +from io import StringIO, TextIOWrapper +from unittest import TestCase, main +try: + from contextlib import ExitStack +except ImportError: + # python 2 + from contextlib2 import ExitStack + +try: + from unittest.mock import MagicMock, Mock, patch +except ImportError: + from mock import MagicMock, Mock, patch + +from ..ansitowin32 import AnsiToWin32, StreamWrapper +from ..win32 import ENABLE_VIRTUAL_TERMINAL_PROCESSING +from .utils import osname + + +class StreamWrapperTest(TestCase): + + def testIsAProxy(self): + mockStream = Mock() + wrapper = StreamWrapper(mockStream, None) + self.assertTrue( wrapper.random_attr is mockStream.random_attr ) + + def testDelegatesWrite(self): + mockStream = Mock() + mockConverter = Mock() + wrapper = StreamWrapper(mockStream, mockConverter) + wrapper.write('hello') + self.assertTrue(mockConverter.write.call_args, (('hello',), {})) + + def testDelegatesContext(self): + mockConverter = Mock() + s = StringIO() + with StreamWrapper(s, mockConverter) as fp: + fp.write(u'hello') + self.assertTrue(s.closed) + + def testProxyNoContextManager(self): + mockStream = MagicMock() + mockStream.__enter__.side_effect = AttributeError() + mockConverter = Mock() + with self.assertRaises(AttributeError) as excinfo: + with StreamWrapper(mockStream, mockConverter) as wrapper: + wrapper.write('hello') + + def test_closed_shouldnt_raise_on_closed_stream(self): + stream = StringIO() + stream.close() + wrapper = StreamWrapper(stream, None) + self.assertEqual(wrapper.closed, True) + + def test_closed_shouldnt_raise_on_detached_stream(self): + stream = TextIOWrapper(StringIO()) + stream.detach() + wrapper = StreamWrapper(stream, None) + self.assertEqual(wrapper.closed, True) + +class AnsiToWin32Test(TestCase): + + def testInit(self): + mockStdout = Mock() + auto = Mock() + stream = AnsiToWin32(mockStdout, autoreset=auto) + self.assertEqual(stream.wrapped, mockStdout) + self.assertEqual(stream.autoreset, auto) + + @patch('colorama.ansitowin32.winterm', None) + @patch('colorama.ansitowin32.winapi_test', lambda *_: True) + def testStripIsTrueOnWindows(self): + with osname('nt'): + mockStdout = Mock() + stream = AnsiToWin32(mockStdout) + self.assertTrue(stream.strip) + + def testStripIsFalseOffWindows(self): + with osname('posix'): + mockStdout = Mock(closed=False) + stream = AnsiToWin32(mockStdout) + self.assertFalse(stream.strip) + + def testWriteStripsAnsi(self): + mockStdout = Mock() + stream = AnsiToWin32(mockStdout) + stream.wrapped = Mock() + stream.write_and_convert = Mock() + stream.strip = True + + stream.write('abc') + + self.assertFalse(stream.wrapped.write.called) + self.assertEqual(stream.write_and_convert.call_args, (('abc',), {})) + + def testWriteDoesNotStripAnsi(self): + mockStdout = Mock() + stream = AnsiToWin32(mockStdout) + stream.wrapped = Mock() + stream.write_and_convert = Mock() + stream.strip = False + stream.convert = False + + stream.write('abc') + + self.assertFalse(stream.write_and_convert.called) + self.assertEqual(stream.wrapped.write.call_args, (('abc',), {})) + + def assert_autoresets(self, convert, autoreset=True): + stream = AnsiToWin32(Mock()) + stream.convert = convert + stream.reset_all = Mock() + stream.autoreset = autoreset + stream.winterm = Mock() + + stream.write('abc') + + self.assertEqual(stream.reset_all.called, autoreset) + + def testWriteAutoresets(self): + self.assert_autoresets(convert=True) + self.assert_autoresets(convert=False) + self.assert_autoresets(convert=True, autoreset=False) + self.assert_autoresets(convert=False, autoreset=False) + + def testWriteAndConvertWritesPlainText(self): + stream = AnsiToWin32(Mock()) + stream.write_and_convert( 'abc' ) + self.assertEqual( stream.wrapped.write.call_args, (('abc',), {}) ) + + def testWriteAndConvertStripsAllValidAnsi(self): + stream = AnsiToWin32(Mock()) + stream.call_win32 = Mock() + data = [ + 'abc\033[mdef', + 'abc\033[0mdef', + 'abc\033[2mdef', + 'abc\033[02mdef', + 'abc\033[002mdef', + 'abc\033[40mdef', + 'abc\033[040mdef', + 'abc\033[0;1mdef', + 'abc\033[40;50mdef', + 'abc\033[50;30;40mdef', + 'abc\033[Adef', + 'abc\033[0Gdef', + 'abc\033[1;20;128Hdef', + ] + for datum in data: + stream.wrapped.write.reset_mock() + stream.write_and_convert( datum ) + self.assertEqual( + [args[0] for args in stream.wrapped.write.call_args_list], + [ ('abc',), ('def',) ] + ) + + def testWriteAndConvertSkipsEmptySnippets(self): + stream = AnsiToWin32(Mock()) + stream.call_win32 = Mock() + stream.write_and_convert( '\033[40m\033[41m' ) + self.assertFalse( stream.wrapped.write.called ) + + def testWriteAndConvertCallsWin32WithParamsAndCommand(self): + stream = AnsiToWin32(Mock()) + stream.convert = True + stream.call_win32 = Mock() + stream.extract_params = Mock(return_value='params') + data = { + 'abc\033[adef': ('a', 'params'), + 'abc\033[;;bdef': ('b', 'params'), + 'abc\033[0cdef': ('c', 'params'), + 'abc\033[;;0;;Gdef': ('G', 'params'), + 'abc\033[1;20;128Hdef': ('H', 'params'), + } + for datum, expected in data.items(): + stream.call_win32.reset_mock() + stream.write_and_convert( datum ) + self.assertEqual( stream.call_win32.call_args[0], expected ) + + def test_reset_all_shouldnt_raise_on_closed_orig_stdout(self): + stream = StringIO() + converter = AnsiToWin32(stream) + stream.close() + + converter.reset_all() + + def test_wrap_shouldnt_raise_on_closed_orig_stdout(self): + stream = StringIO() + stream.close() + with \ + patch("colorama.ansitowin32.os.name", "nt"), \ + patch("colorama.ansitowin32.winapi_test", lambda: True): + converter = AnsiToWin32(stream) + self.assertTrue(converter.strip) + self.assertFalse(converter.convert) + + def test_wrap_shouldnt_raise_on_missing_closed_attr(self): + with \ + patch("colorama.ansitowin32.os.name", "nt"), \ + patch("colorama.ansitowin32.winapi_test", lambda: True): + converter = AnsiToWin32(object()) + self.assertTrue(converter.strip) + self.assertFalse(converter.convert) + + def testExtractParams(self): + stream = AnsiToWin32(Mock()) + data = { + '': (0,), + ';;': (0,), + '2': (2,), + ';;002;;': (2,), + '0;1': (0, 1), + ';;003;;456;;': (3, 456), + '11;22;33;44;55': (11, 22, 33, 44, 55), + } + for datum, expected in data.items(): + self.assertEqual(stream.extract_params('m', datum), expected) + + def testCallWin32UsesLookup(self): + listener = Mock() + stream = AnsiToWin32(listener) + stream.win32_calls = { + 1: (lambda *_, **__: listener(11),), + 2: (lambda *_, **__: listener(22),), + 3: (lambda *_, **__: listener(33),), + } + stream.call_win32('m', (3, 1, 99, 2)) + self.assertEqual( + [a[0][0] for a in listener.call_args_list], + [33, 11, 22] ) + + def test_osc_codes(self): + mockStdout = Mock() + stream = AnsiToWin32(mockStdout, convert=True) + with patch('colorama.ansitowin32.winterm') as winterm: + data = [ + '\033]0\x07', # missing arguments + '\033]0;foo\x08', # wrong OSC command + '\033]0;colorama_test_title\x07', # should work + '\033]1;colorama_test_title\x07', # wrong set command + '\033]2;colorama_test_title\x07', # should work + '\033]' + ';' * 64 + '\x08', # see issue #247 + ] + for code in data: + stream.write(code) + self.assertEqual(winterm.set_title.call_count, 2) + + def test_native_windows_ansi(self): + with ExitStack() as stack: + def p(a, b): + stack.enter_context(patch(a, b, create=True)) + # Pretend to be on Windows + p("colorama.ansitowin32.os.name", "nt") + p("colorama.ansitowin32.winapi_test", lambda: True) + p("colorama.win32.winapi_test", lambda: True) + p("colorama.winterm.win32.windll", "non-None") + p("colorama.winterm.get_osfhandle", lambda _: 1234) + + # Pretend that our mock stream has native ANSI support + p( + "colorama.winterm.win32.GetConsoleMode", + lambda _: ENABLE_VIRTUAL_TERMINAL_PROCESSING, + ) + SetConsoleMode = Mock() + p("colorama.winterm.win32.SetConsoleMode", SetConsoleMode) + + stdout = Mock() + stdout.closed = False + stdout.isatty.return_value = True + stdout.fileno.return_value = 1 + + # Our fake console says it has native vt support, so AnsiToWin32 should + # enable that support and do nothing else. + stream = AnsiToWin32(stdout) + SetConsoleMode.assert_called_with(1234, ENABLE_VIRTUAL_TERMINAL_PROCESSING) + self.assertFalse(stream.strip) + self.assertFalse(stream.convert) + self.assertFalse(stream.should_wrap()) + + # Now let's pretend we're on an old Windows console, that doesn't have + # native ANSI support. + p("colorama.winterm.win32.GetConsoleMode", lambda _: 0) + SetConsoleMode = Mock() + p("colorama.winterm.win32.SetConsoleMode", SetConsoleMode) + + stream = AnsiToWin32(stdout) + SetConsoleMode.assert_called_with(1234, ENABLE_VIRTUAL_TERMINAL_PROCESSING) + self.assertTrue(stream.strip) + self.assertTrue(stream.convert) + self.assertTrue(stream.should_wrap()) + + +if __name__ == '__main__': + main() diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/tests/initialise_test.py b/rep_localstack/lib/python3.12/site-packages/colorama/tests/initialise_test.py new file mode 100644 index 000000000..89f9b0751 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/colorama/tests/initialise_test.py @@ -0,0 +1,189 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +import sys +from unittest import TestCase, main, skipUnless + +try: + from unittest.mock import patch, Mock +except ImportError: + from mock import patch, Mock + +from ..ansitowin32 import StreamWrapper +from ..initialise import init, just_fix_windows_console, _wipe_internal_state_for_tests +from .utils import osname, replace_by + +orig_stdout = sys.stdout +orig_stderr = sys.stderr + + +class InitTest(TestCase): + + @skipUnless(sys.stdout.isatty(), "sys.stdout is not a tty") + def setUp(self): + # sanity check + self.assertNotWrapped() + + def tearDown(self): + _wipe_internal_state_for_tests() + sys.stdout = orig_stdout + sys.stderr = orig_stderr + + def assertWrapped(self): + self.assertIsNot(sys.stdout, orig_stdout, 'stdout should be wrapped') + self.assertIsNot(sys.stderr, orig_stderr, 'stderr should be wrapped') + self.assertTrue(isinstance(sys.stdout, StreamWrapper), + 'bad stdout wrapper') + self.assertTrue(isinstance(sys.stderr, StreamWrapper), + 'bad stderr wrapper') + + def assertNotWrapped(self): + self.assertIs(sys.stdout, orig_stdout, 'stdout should not be wrapped') + self.assertIs(sys.stderr, orig_stderr, 'stderr should not be wrapped') + + @patch('colorama.initialise.reset_all') + @patch('colorama.ansitowin32.winapi_test', lambda *_: True) + @patch('colorama.ansitowin32.enable_vt_processing', lambda *_: False) + def testInitWrapsOnWindows(self, _): + with osname("nt"): + init() + self.assertWrapped() + + @patch('colorama.initialise.reset_all') + @patch('colorama.ansitowin32.winapi_test', lambda *_: False) + def testInitDoesntWrapOnEmulatedWindows(self, _): + with osname("nt"): + init() + self.assertNotWrapped() + + def testInitDoesntWrapOnNonWindows(self): + with osname("posix"): + init() + self.assertNotWrapped() + + def testInitDoesntWrapIfNone(self): + with replace_by(None): + init() + # We can't use assertNotWrapped here because replace_by(None) + # changes stdout/stderr already. + self.assertIsNone(sys.stdout) + self.assertIsNone(sys.stderr) + + def testInitAutoresetOnWrapsOnAllPlatforms(self): + with osname("posix"): + init(autoreset=True) + self.assertWrapped() + + def testInitWrapOffDoesntWrapOnWindows(self): + with osname("nt"): + init(wrap=False) + self.assertNotWrapped() + + def testInitWrapOffIncompatibleWithAutoresetOn(self): + self.assertRaises(ValueError, lambda: init(autoreset=True, wrap=False)) + + @patch('colorama.win32.SetConsoleTextAttribute') + @patch('colorama.initialise.AnsiToWin32') + def testAutoResetPassedOn(self, mockATW32, _): + with osname("nt"): + init(autoreset=True) + self.assertEqual(len(mockATW32.call_args_list), 2) + self.assertEqual(mockATW32.call_args_list[1][1]['autoreset'], True) + self.assertEqual(mockATW32.call_args_list[0][1]['autoreset'], True) + + @patch('colorama.initialise.AnsiToWin32') + def testAutoResetChangeable(self, mockATW32): + with osname("nt"): + init() + + init(autoreset=True) + self.assertEqual(len(mockATW32.call_args_list), 4) + self.assertEqual(mockATW32.call_args_list[2][1]['autoreset'], True) + self.assertEqual(mockATW32.call_args_list[3][1]['autoreset'], True) + + init() + self.assertEqual(len(mockATW32.call_args_list), 6) + self.assertEqual( + mockATW32.call_args_list[4][1]['autoreset'], False) + self.assertEqual( + mockATW32.call_args_list[5][1]['autoreset'], False) + + + @patch('colorama.initialise.atexit.register') + def testAtexitRegisteredOnlyOnce(self, mockRegister): + init() + self.assertTrue(mockRegister.called) + mockRegister.reset_mock() + init() + self.assertFalse(mockRegister.called) + + +class JustFixWindowsConsoleTest(TestCase): + def _reset(self): + _wipe_internal_state_for_tests() + sys.stdout = orig_stdout + sys.stderr = orig_stderr + + def tearDown(self): + self._reset() + + @patch("colorama.ansitowin32.winapi_test", lambda: True) + def testJustFixWindowsConsole(self): + if sys.platform != "win32": + # just_fix_windows_console should be a no-op + just_fix_windows_console() + self.assertIs(sys.stdout, orig_stdout) + self.assertIs(sys.stderr, orig_stderr) + else: + def fake_std(): + # Emulate stdout=not a tty, stderr=tty + # to check that we handle both cases correctly + stdout = Mock() + stdout.closed = False + stdout.isatty.return_value = False + stdout.fileno.return_value = 1 + sys.stdout = stdout + + stderr = Mock() + stderr.closed = False + stderr.isatty.return_value = True + stderr.fileno.return_value = 2 + sys.stderr = stderr + + for native_ansi in [False, True]: + with patch( + 'colorama.ansitowin32.enable_vt_processing', + lambda *_: native_ansi + ): + self._reset() + fake_std() + + # Regular single-call test + prev_stdout = sys.stdout + prev_stderr = sys.stderr + just_fix_windows_console() + self.assertIs(sys.stdout, prev_stdout) + if native_ansi: + self.assertIs(sys.stderr, prev_stderr) + else: + self.assertIsNot(sys.stderr, prev_stderr) + + # second call without resetting is always a no-op + prev_stdout = sys.stdout + prev_stderr = sys.stderr + just_fix_windows_console() + self.assertIs(sys.stdout, prev_stdout) + self.assertIs(sys.stderr, prev_stderr) + + self._reset() + fake_std() + + # If init() runs first, just_fix_windows_console should be a no-op + init() + prev_stdout = sys.stdout + prev_stderr = sys.stderr + just_fix_windows_console() + self.assertIs(prev_stdout, sys.stdout) + self.assertIs(prev_stderr, sys.stderr) + + +if __name__ == '__main__': + main() diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/tests/isatty_test.py b/rep_localstack/lib/python3.12/site-packages/colorama/tests/isatty_test.py new file mode 100644 index 000000000..0f84e4bef --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/colorama/tests/isatty_test.py @@ -0,0 +1,57 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +import sys +from unittest import TestCase, main + +from ..ansitowin32 import StreamWrapper, AnsiToWin32 +from .utils import pycharm, replace_by, replace_original_by, StreamTTY, StreamNonTTY + + +def is_a_tty(stream): + return StreamWrapper(stream, None).isatty() + +class IsattyTest(TestCase): + + def test_TTY(self): + tty = StreamTTY() + self.assertTrue(is_a_tty(tty)) + with pycharm(): + self.assertTrue(is_a_tty(tty)) + + def test_nonTTY(self): + non_tty = StreamNonTTY() + self.assertFalse(is_a_tty(non_tty)) + with pycharm(): + self.assertFalse(is_a_tty(non_tty)) + + def test_withPycharm(self): + with pycharm(): + self.assertTrue(is_a_tty(sys.stderr)) + self.assertTrue(is_a_tty(sys.stdout)) + + def test_withPycharmTTYOverride(self): + tty = StreamTTY() + with pycharm(), replace_by(tty): + self.assertTrue(is_a_tty(tty)) + + def test_withPycharmNonTTYOverride(self): + non_tty = StreamNonTTY() + with pycharm(), replace_by(non_tty): + self.assertFalse(is_a_tty(non_tty)) + + def test_withPycharmNoneOverride(self): + with pycharm(): + with replace_by(None), replace_original_by(None): + self.assertFalse(is_a_tty(None)) + self.assertFalse(is_a_tty(StreamNonTTY())) + self.assertTrue(is_a_tty(StreamTTY())) + + def test_withPycharmStreamWrapped(self): + with pycharm(): + self.assertTrue(AnsiToWin32(StreamTTY()).stream.isatty()) + self.assertFalse(AnsiToWin32(StreamNonTTY()).stream.isatty()) + self.assertTrue(AnsiToWin32(sys.stdout).stream.isatty()) + self.assertTrue(AnsiToWin32(sys.stderr).stream.isatty()) + + +if __name__ == '__main__': + main() diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/tests/utils.py b/rep_localstack/lib/python3.12/site-packages/colorama/tests/utils.py new file mode 100644 index 000000000..472fafb44 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/colorama/tests/utils.py @@ -0,0 +1,49 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +from contextlib import contextmanager +from io import StringIO +import sys +import os + + +class StreamTTY(StringIO): + def isatty(self): + return True + +class StreamNonTTY(StringIO): + def isatty(self): + return False + +@contextmanager +def osname(name): + orig = os.name + os.name = name + yield + os.name = orig + +@contextmanager +def replace_by(stream): + orig_stdout = sys.stdout + orig_stderr = sys.stderr + sys.stdout = stream + sys.stderr = stream + yield + sys.stdout = orig_stdout + sys.stderr = orig_stderr + +@contextmanager +def replace_original_by(stream): + orig_stdout = sys.__stdout__ + orig_stderr = sys.__stderr__ + sys.__stdout__ = stream + sys.__stderr__ = stream + yield + sys.__stdout__ = orig_stdout + sys.__stderr__ = orig_stderr + +@contextmanager +def pycharm(): + os.environ["PYCHARM_HOSTED"] = "1" + non_tty = StreamNonTTY() + with replace_by(non_tty), replace_original_by(non_tty): + yield + del os.environ["PYCHARM_HOSTED"] diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/tests/winterm_test.py b/rep_localstack/lib/python3.12/site-packages/colorama/tests/winterm_test.py new file mode 100644 index 000000000..d0955f9e6 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/colorama/tests/winterm_test.py @@ -0,0 +1,131 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +import sys +from unittest import TestCase, main, skipUnless + +try: + from unittest.mock import Mock, patch +except ImportError: + from mock import Mock, patch + +from ..winterm import WinColor, WinStyle, WinTerm + + +class WinTermTest(TestCase): + + @patch('colorama.winterm.win32') + def testInit(self, mockWin32): + mockAttr = Mock() + mockAttr.wAttributes = 7 + 6 * 16 + 8 + mockWin32.GetConsoleScreenBufferInfo.return_value = mockAttr + term = WinTerm() + self.assertEqual(term._fore, 7) + self.assertEqual(term._back, 6) + self.assertEqual(term._style, 8) + + @skipUnless(sys.platform.startswith("win"), "requires Windows") + def testGetAttrs(self): + term = WinTerm() + + term._fore = 0 + term._back = 0 + term._style = 0 + self.assertEqual(term.get_attrs(), 0) + + term._fore = WinColor.YELLOW + self.assertEqual(term.get_attrs(), WinColor.YELLOW) + + term._back = WinColor.MAGENTA + self.assertEqual( + term.get_attrs(), + WinColor.YELLOW + WinColor.MAGENTA * 16) + + term._style = WinStyle.BRIGHT + self.assertEqual( + term.get_attrs(), + WinColor.YELLOW + WinColor.MAGENTA * 16 + WinStyle.BRIGHT) + + @patch('colorama.winterm.win32') + def testResetAll(self, mockWin32): + mockAttr = Mock() + mockAttr.wAttributes = 1 + 2 * 16 + 8 + mockWin32.GetConsoleScreenBufferInfo.return_value = mockAttr + term = WinTerm() + + term.set_console = Mock() + term._fore = -1 + term._back = -1 + term._style = -1 + + term.reset_all() + + self.assertEqual(term._fore, 1) + self.assertEqual(term._back, 2) + self.assertEqual(term._style, 8) + self.assertEqual(term.set_console.called, True) + + @skipUnless(sys.platform.startswith("win"), "requires Windows") + def testFore(self): + term = WinTerm() + term.set_console = Mock() + term._fore = 0 + + term.fore(5) + + self.assertEqual(term._fore, 5) + self.assertEqual(term.set_console.called, True) + + @skipUnless(sys.platform.startswith("win"), "requires Windows") + def testBack(self): + term = WinTerm() + term.set_console = Mock() + term._back = 0 + + term.back(5) + + self.assertEqual(term._back, 5) + self.assertEqual(term.set_console.called, True) + + @skipUnless(sys.platform.startswith("win"), "requires Windows") + def testStyle(self): + term = WinTerm() + term.set_console = Mock() + term._style = 0 + + term.style(22) + + self.assertEqual(term._style, 22) + self.assertEqual(term.set_console.called, True) + + @patch('colorama.winterm.win32') + def testSetConsole(self, mockWin32): + mockAttr = Mock() + mockAttr.wAttributes = 0 + mockWin32.GetConsoleScreenBufferInfo.return_value = mockAttr + term = WinTerm() + term.windll = Mock() + + term.set_console() + + self.assertEqual( + mockWin32.SetConsoleTextAttribute.call_args, + ((mockWin32.STDOUT, term.get_attrs()), {}) + ) + + @patch('colorama.winterm.win32') + def testSetConsoleOnStderr(self, mockWin32): + mockAttr = Mock() + mockAttr.wAttributes = 0 + mockWin32.GetConsoleScreenBufferInfo.return_value = mockAttr + term = WinTerm() + term.windll = Mock() + + term.set_console(on_stderr=True) + + self.assertEqual( + mockWin32.SetConsoleTextAttribute.call_args, + ((mockWin32.STDERR, term.get_attrs()), {}) + ) + + +if __name__ == '__main__': + main() diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/win32.py b/rep_localstack/lib/python3.12/site-packages/colorama/win32.py new file mode 100644 index 000000000..841b0e270 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/colorama/win32.py @@ -0,0 +1,180 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. + +# from winbase.h +STDOUT = -11 +STDERR = -12 + +ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x0004 + +try: + import ctypes + from ctypes import LibraryLoader + windll = LibraryLoader(ctypes.WinDLL) + from ctypes import wintypes +except (AttributeError, ImportError): + windll = None + SetConsoleTextAttribute = lambda *_: None + winapi_test = lambda *_: None +else: + from ctypes import byref, Structure, c_char, POINTER + + COORD = wintypes._COORD + + class CONSOLE_SCREEN_BUFFER_INFO(Structure): + """struct in wincon.h.""" + _fields_ = [ + ("dwSize", COORD), + ("dwCursorPosition", COORD), + ("wAttributes", wintypes.WORD), + ("srWindow", wintypes.SMALL_RECT), + ("dwMaximumWindowSize", COORD), + ] + def __str__(self): + return '(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d)' % ( + self.dwSize.Y, self.dwSize.X + , self.dwCursorPosition.Y, self.dwCursorPosition.X + , self.wAttributes + , self.srWindow.Top, self.srWindow.Left, self.srWindow.Bottom, self.srWindow.Right + , self.dwMaximumWindowSize.Y, self.dwMaximumWindowSize.X + ) + + _GetStdHandle = windll.kernel32.GetStdHandle + _GetStdHandle.argtypes = [ + wintypes.DWORD, + ] + _GetStdHandle.restype = wintypes.HANDLE + + _GetConsoleScreenBufferInfo = windll.kernel32.GetConsoleScreenBufferInfo + _GetConsoleScreenBufferInfo.argtypes = [ + wintypes.HANDLE, + POINTER(CONSOLE_SCREEN_BUFFER_INFO), + ] + _GetConsoleScreenBufferInfo.restype = wintypes.BOOL + + _SetConsoleTextAttribute = windll.kernel32.SetConsoleTextAttribute + _SetConsoleTextAttribute.argtypes = [ + wintypes.HANDLE, + wintypes.WORD, + ] + _SetConsoleTextAttribute.restype = wintypes.BOOL + + _SetConsoleCursorPosition = windll.kernel32.SetConsoleCursorPosition + _SetConsoleCursorPosition.argtypes = [ + wintypes.HANDLE, + COORD, + ] + _SetConsoleCursorPosition.restype = wintypes.BOOL + + _FillConsoleOutputCharacterA = windll.kernel32.FillConsoleOutputCharacterA + _FillConsoleOutputCharacterA.argtypes = [ + wintypes.HANDLE, + c_char, + wintypes.DWORD, + COORD, + POINTER(wintypes.DWORD), + ] + _FillConsoleOutputCharacterA.restype = wintypes.BOOL + + _FillConsoleOutputAttribute = windll.kernel32.FillConsoleOutputAttribute + _FillConsoleOutputAttribute.argtypes = [ + wintypes.HANDLE, + wintypes.WORD, + wintypes.DWORD, + COORD, + POINTER(wintypes.DWORD), + ] + _FillConsoleOutputAttribute.restype = wintypes.BOOL + + _SetConsoleTitleW = windll.kernel32.SetConsoleTitleW + _SetConsoleTitleW.argtypes = [ + wintypes.LPCWSTR + ] + _SetConsoleTitleW.restype = wintypes.BOOL + + _GetConsoleMode = windll.kernel32.GetConsoleMode + _GetConsoleMode.argtypes = [ + wintypes.HANDLE, + POINTER(wintypes.DWORD) + ] + _GetConsoleMode.restype = wintypes.BOOL + + _SetConsoleMode = windll.kernel32.SetConsoleMode + _SetConsoleMode.argtypes = [ + wintypes.HANDLE, + wintypes.DWORD + ] + _SetConsoleMode.restype = wintypes.BOOL + + def _winapi_test(handle): + csbi = CONSOLE_SCREEN_BUFFER_INFO() + success = _GetConsoleScreenBufferInfo( + handle, byref(csbi)) + return bool(success) + + def winapi_test(): + return any(_winapi_test(h) for h in + (_GetStdHandle(STDOUT), _GetStdHandle(STDERR))) + + def GetConsoleScreenBufferInfo(stream_id=STDOUT): + handle = _GetStdHandle(stream_id) + csbi = CONSOLE_SCREEN_BUFFER_INFO() + success = _GetConsoleScreenBufferInfo( + handle, byref(csbi)) + return csbi + + def SetConsoleTextAttribute(stream_id, attrs): + handle = _GetStdHandle(stream_id) + return _SetConsoleTextAttribute(handle, attrs) + + def SetConsoleCursorPosition(stream_id, position, adjust=True): + position = COORD(*position) + # If the position is out of range, do nothing. + if position.Y <= 0 or position.X <= 0: + return + # Adjust for Windows' SetConsoleCursorPosition: + # 1. being 0-based, while ANSI is 1-based. + # 2. expecting (x,y), while ANSI uses (y,x). + adjusted_position = COORD(position.Y - 1, position.X - 1) + if adjust: + # Adjust for viewport's scroll position + sr = GetConsoleScreenBufferInfo(STDOUT).srWindow + adjusted_position.Y += sr.Top + adjusted_position.X += sr.Left + # Resume normal processing + handle = _GetStdHandle(stream_id) + return _SetConsoleCursorPosition(handle, adjusted_position) + + def FillConsoleOutputCharacter(stream_id, char, length, start): + handle = _GetStdHandle(stream_id) + char = c_char(char.encode()) + length = wintypes.DWORD(length) + num_written = wintypes.DWORD(0) + # Note that this is hard-coded for ANSI (vs wide) bytes. + success = _FillConsoleOutputCharacterA( + handle, char, length, start, byref(num_written)) + return num_written.value + + def FillConsoleOutputAttribute(stream_id, attr, length, start): + ''' FillConsoleOutputAttribute( hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten )''' + handle = _GetStdHandle(stream_id) + attribute = wintypes.WORD(attr) + length = wintypes.DWORD(length) + num_written = wintypes.DWORD(0) + # Note that this is hard-coded for ANSI (vs wide) bytes. + return _FillConsoleOutputAttribute( + handle, attribute, length, start, byref(num_written)) + + def SetConsoleTitle(title): + return _SetConsoleTitleW(title) + + def GetConsoleMode(handle): + mode = wintypes.DWORD() + success = _GetConsoleMode(handle, byref(mode)) + if not success: + raise ctypes.WinError() + return mode.value + + def SetConsoleMode(handle, mode): + success = _SetConsoleMode(handle, mode) + if not success: + raise ctypes.WinError() diff --git a/rep_localstack/lib/python3.12/site-packages/colorama/winterm.py b/rep_localstack/lib/python3.12/site-packages/colorama/winterm.py new file mode 100644 index 000000000..aad867e8c --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/colorama/winterm.py @@ -0,0 +1,195 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +try: + from msvcrt import get_osfhandle +except ImportError: + def get_osfhandle(_): + raise OSError("This isn't windows!") + + +from . import win32 + +# from wincon.h +class WinColor(object): + BLACK = 0 + BLUE = 1 + GREEN = 2 + CYAN = 3 + RED = 4 + MAGENTA = 5 + YELLOW = 6 + GREY = 7 + +# from wincon.h +class WinStyle(object): + NORMAL = 0x00 # dim text, dim background + BRIGHT = 0x08 # bright text, dim background + BRIGHT_BACKGROUND = 0x80 # dim text, bright background + +class WinTerm(object): + + def __init__(self): + self._default = win32.GetConsoleScreenBufferInfo(win32.STDOUT).wAttributes + self.set_attrs(self._default) + self._default_fore = self._fore + self._default_back = self._back + self._default_style = self._style + # In order to emulate LIGHT_EX in windows, we borrow the BRIGHT style. + # So that LIGHT_EX colors and BRIGHT style do not clobber each other, + # we track them separately, since LIGHT_EX is overwritten by Fore/Back + # and BRIGHT is overwritten by Style codes. + self._light = 0 + + def get_attrs(self): + return self._fore + self._back * 16 + (self._style | self._light) + + def set_attrs(self, value): + self._fore = value & 7 + self._back = (value >> 4) & 7 + self._style = value & (WinStyle.BRIGHT | WinStyle.BRIGHT_BACKGROUND) + + def reset_all(self, on_stderr=None): + self.set_attrs(self._default) + self.set_console(attrs=self._default) + self._light = 0 + + def fore(self, fore=None, light=False, on_stderr=False): + if fore is None: + fore = self._default_fore + self._fore = fore + # Emulate LIGHT_EX with BRIGHT Style + if light: + self._light |= WinStyle.BRIGHT + else: + self._light &= ~WinStyle.BRIGHT + self.set_console(on_stderr=on_stderr) + + def back(self, back=None, light=False, on_stderr=False): + if back is None: + back = self._default_back + self._back = back + # Emulate LIGHT_EX with BRIGHT_BACKGROUND Style + if light: + self._light |= WinStyle.BRIGHT_BACKGROUND + else: + self._light &= ~WinStyle.BRIGHT_BACKGROUND + self.set_console(on_stderr=on_stderr) + + def style(self, style=None, on_stderr=False): + if style is None: + style = self._default_style + self._style = style + self.set_console(on_stderr=on_stderr) + + def set_console(self, attrs=None, on_stderr=False): + if attrs is None: + attrs = self.get_attrs() + handle = win32.STDOUT + if on_stderr: + handle = win32.STDERR + win32.SetConsoleTextAttribute(handle, attrs) + + def get_position(self, handle): + position = win32.GetConsoleScreenBufferInfo(handle).dwCursorPosition + # Because Windows coordinates are 0-based, + # and win32.SetConsoleCursorPosition expects 1-based. + position.X += 1 + position.Y += 1 + return position + + def set_cursor_position(self, position=None, on_stderr=False): + if position is None: + # I'm not currently tracking the position, so there is no default. + # position = self.get_position() + return + handle = win32.STDOUT + if on_stderr: + handle = win32.STDERR + win32.SetConsoleCursorPosition(handle, position) + + def cursor_adjust(self, x, y, on_stderr=False): + handle = win32.STDOUT + if on_stderr: + handle = win32.STDERR + position = self.get_position(handle) + adjusted_position = (position.Y + y, position.X + x) + win32.SetConsoleCursorPosition(handle, adjusted_position, adjust=False) + + def erase_screen(self, mode=0, on_stderr=False): + # 0 should clear from the cursor to the end of the screen. + # 1 should clear from the cursor to the beginning of the screen. + # 2 should clear the entire screen, and move cursor to (1,1) + handle = win32.STDOUT + if on_stderr: + handle = win32.STDERR + csbi = win32.GetConsoleScreenBufferInfo(handle) + # get the number of character cells in the current buffer + cells_in_screen = csbi.dwSize.X * csbi.dwSize.Y + # get number of character cells before current cursor position + cells_before_cursor = csbi.dwSize.X * csbi.dwCursorPosition.Y + csbi.dwCursorPosition.X + if mode == 0: + from_coord = csbi.dwCursorPosition + cells_to_erase = cells_in_screen - cells_before_cursor + elif mode == 1: + from_coord = win32.COORD(0, 0) + cells_to_erase = cells_before_cursor + elif mode == 2: + from_coord = win32.COORD(0, 0) + cells_to_erase = cells_in_screen + else: + # invalid mode + return + # fill the entire screen with blanks + win32.FillConsoleOutputCharacter(handle, ' ', cells_to_erase, from_coord) + # now set the buffer's attributes accordingly + win32.FillConsoleOutputAttribute(handle, self.get_attrs(), cells_to_erase, from_coord) + if mode == 2: + # put the cursor where needed + win32.SetConsoleCursorPosition(handle, (1, 1)) + + def erase_line(self, mode=0, on_stderr=False): + # 0 should clear from the cursor to the end of the line. + # 1 should clear from the cursor to the beginning of the line. + # 2 should clear the entire line. + handle = win32.STDOUT + if on_stderr: + handle = win32.STDERR + csbi = win32.GetConsoleScreenBufferInfo(handle) + if mode == 0: + from_coord = csbi.dwCursorPosition + cells_to_erase = csbi.dwSize.X - csbi.dwCursorPosition.X + elif mode == 1: + from_coord = win32.COORD(0, csbi.dwCursorPosition.Y) + cells_to_erase = csbi.dwCursorPosition.X + elif mode == 2: + from_coord = win32.COORD(0, csbi.dwCursorPosition.Y) + cells_to_erase = csbi.dwSize.X + else: + # invalid mode + return + # fill the entire screen with blanks + win32.FillConsoleOutputCharacter(handle, ' ', cells_to_erase, from_coord) + # now set the buffer's attributes accordingly + win32.FillConsoleOutputAttribute(handle, self.get_attrs(), cells_to_erase, from_coord) + + def set_title(self, title): + win32.SetConsoleTitle(title) + + +def enable_vt_processing(fd): + if win32.windll is None or not win32.winapi_test(): + return False + + try: + handle = get_osfhandle(fd) + mode = win32.GetConsoleMode(handle) + win32.SetConsoleMode( + handle, + mode | win32.ENABLE_VIRTUAL_TERMINAL_PROCESSING, + ) + + mode = win32.GetConsoleMode(handle) + if mode & win32.ENABLE_VIRTUAL_TERMINAL_PROCESSING: + return True + # Can get TypeError in testsuite where 'fd' is a Mock() + except (OSError, TypeError): + return False diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/__init__.py b/rep_localstack/lib/python3.12/site-packages/dateutil/__init__.py new file mode 100644 index 000000000..a2c19c06f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/dateutil/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +import sys + +try: + from ._version import version as __version__ +except ImportError: + __version__ = 'unknown' + +__all__ = ['easter', 'parser', 'relativedelta', 'rrule', 'tz', + 'utils', 'zoneinfo'] + +def __getattr__(name): + import importlib + + if name in __all__: + return importlib.import_module("." + name, __name__) + raise AttributeError( + "module {!r} has not attribute {!r}".format(__name__, name) + ) + + +def __dir__(): + # __dir__ should include all the lazy-importable modules as well. + return [x for x in globals() if x not in sys.modules] + __all__ diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/__init__.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 000000000..87e6a4d37 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/__init__.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/_common.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/_common.cpython-312.pyc new file mode 100644 index 000000000..bb7aef1f6 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/_common.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/_version.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/_version.cpython-312.pyc new file mode 100644 index 000000000..b10603432 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/_version.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/easter.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/easter.cpython-312.pyc new file mode 100644 index 000000000..2ff40e638 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/easter.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/relativedelta.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/relativedelta.cpython-312.pyc new file mode 100644 index 000000000..4c78b0d12 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/relativedelta.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/rrule.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/rrule.cpython-312.pyc new file mode 100644 index 000000000..242007b02 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/rrule.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/tzwin.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/tzwin.cpython-312.pyc new file mode 100644 index 000000000..4e03a00d2 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/tzwin.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/utils.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/utils.cpython-312.pyc new file mode 100644 index 000000000..8833b49fa Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/dateutil/__pycache__/utils.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/_common.py b/rep_localstack/lib/python3.12/site-packages/dateutil/_common.py new file mode 100644 index 000000000..4eb2659bd --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/dateutil/_common.py @@ -0,0 +1,43 @@ +""" +Common code used in multiple modules. +""" + + +class weekday(object): + __slots__ = ["weekday", "n"] + + def __init__(self, weekday, n=None): + self.weekday = weekday + self.n = n + + def __call__(self, n): + if n == self.n: + return self + else: + return self.__class__(self.weekday, n) + + def __eq__(self, other): + try: + if self.weekday != other.weekday or self.n != other.n: + return False + except AttributeError: + return False + return True + + def __hash__(self): + return hash(( + self.weekday, + self.n, + )) + + def __ne__(self, other): + return not (self == other) + + def __repr__(self): + s = ("MO", "TU", "WE", "TH", "FR", "SA", "SU")[self.weekday] + if not self.n: + return s + else: + return "%s(%+d)" % (s, self.n) + +# vim:ts=4:sw=4:et diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/_version.py b/rep_localstack/lib/python3.12/site-packages/dateutil/_version.py new file mode 100644 index 000000000..ddda98098 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/dateutil/_version.py @@ -0,0 +1,4 @@ +# file generated by setuptools_scm +# don't change, don't track in version control +__version__ = version = '2.9.0.post0' +__version_tuple__ = version_tuple = (2, 9, 0) diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/easter.py b/rep_localstack/lib/python3.12/site-packages/dateutil/easter.py new file mode 100644 index 000000000..f74d1f744 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/dateutil/easter.py @@ -0,0 +1,89 @@ +# -*- coding: utf-8 -*- +""" +This module offers a generic Easter computing method for any given year, using +Western, Orthodox or Julian algorithms. +""" + +import datetime + +__all__ = ["easter", "EASTER_JULIAN", "EASTER_ORTHODOX", "EASTER_WESTERN"] + +EASTER_JULIAN = 1 +EASTER_ORTHODOX = 2 +EASTER_WESTERN = 3 + + +def easter(year, method=EASTER_WESTERN): + """ + This method was ported from the work done by GM Arts, + on top of the algorithm by Claus Tondering, which was + based in part on the algorithm of Ouding (1940), as + quoted in "Explanatory Supplement to the Astronomical + Almanac", P. Kenneth Seidelmann, editor. + + This algorithm implements three different Easter + calculation methods: + + 1. Original calculation in Julian calendar, valid in + dates after 326 AD + 2. Original method, with date converted to Gregorian + calendar, valid in years 1583 to 4099 + 3. Revised method, in Gregorian calendar, valid in + years 1583 to 4099 as well + + These methods are represented by the constants: + + * ``EASTER_JULIAN = 1`` + * ``EASTER_ORTHODOX = 2`` + * ``EASTER_WESTERN = 3`` + + The default method is method 3. + + More about the algorithm may be found at: + + `GM Arts: Easter Algorithms `_ + + and + + `The Calendar FAQ: Easter `_ + + """ + + if not (1 <= method <= 3): + raise ValueError("invalid method") + + # g - Golden year - 1 + # c - Century + # h - (23 - Epact) mod 30 + # i - Number of days from March 21 to Paschal Full Moon + # j - Weekday for PFM (0=Sunday, etc) + # p - Number of days from March 21 to Sunday on or before PFM + # (-6 to 28 methods 1 & 3, to 56 for method 2) + # e - Extra days to add for method 2 (converting Julian + # date to Gregorian date) + + y = year + g = y % 19 + e = 0 + if method < 3: + # Old method + i = (19*g + 15) % 30 + j = (y + y//4 + i) % 7 + if method == 2: + # Extra dates to convert Julian to Gregorian date + e = 10 + if y > 1600: + e = e + y//100 - 16 - (y//100 - 16)//4 + else: + # New method + c = y//100 + h = (c - c//4 - (8*c + 13)//25 + 19*g + 15) % 30 + i = h - (h//28)*(1 - (h//28)*(29//(h + 1))*((21 - g)//11)) + j = (y + y//4 + i + 2 - c + c//4) % 7 + + # p can be from -6 to 56 corresponding to dates 22 March to 23 May + # (later dates apply to method 2, although 23 May never actually occurs) + p = i - j + e + d = 1 + (p + 27 + (p + 6)//40) % 31 + m = 3 + (p + 26)//30 + return datetime.date(int(y), int(m), int(d)) diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/parser/__init__.py b/rep_localstack/lib/python3.12/site-packages/dateutil/parser/__init__.py new file mode 100644 index 000000000..d174b0e4d --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/dateutil/parser/__init__.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +from ._parser import parse, parser, parserinfo, ParserError +from ._parser import DEFAULTPARSER, DEFAULTTZPARSER +from ._parser import UnknownTimezoneWarning + +from ._parser import __doc__ + +from .isoparser import isoparser, isoparse + +__all__ = ['parse', 'parser', 'parserinfo', + 'isoparse', 'isoparser', + 'ParserError', + 'UnknownTimezoneWarning'] + + +### +# Deprecate portions of the private interface so that downstream code that +# is improperly relying on it is given *some* notice. + + +def __deprecated_private_func(f): + from functools import wraps + import warnings + + msg = ('{name} is a private function and may break without warning, ' + 'it will be moved and or renamed in future versions.') + msg = msg.format(name=f.__name__) + + @wraps(f) + def deprecated_func(*args, **kwargs): + warnings.warn(msg, DeprecationWarning) + return f(*args, **kwargs) + + return deprecated_func + +def __deprecate_private_class(c): + import warnings + + msg = ('{name} is a private class and may break without warning, ' + 'it will be moved and or renamed in future versions.') + msg = msg.format(name=c.__name__) + + class private_class(c): + __doc__ = c.__doc__ + + def __init__(self, *args, **kwargs): + warnings.warn(msg, DeprecationWarning) + super(private_class, self).__init__(*args, **kwargs) + + private_class.__name__ = c.__name__ + + return private_class + + +from ._parser import _timelex, _resultbase +from ._parser import _tzparser, _parsetz + +_timelex = __deprecate_private_class(_timelex) +_tzparser = __deprecate_private_class(_tzparser) +_resultbase = __deprecate_private_class(_resultbase) +_parsetz = __deprecated_private_func(_parsetz) diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/parser/__pycache__/__init__.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/dateutil/parser/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 000000000..5034e1b4e Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/dateutil/parser/__pycache__/__init__.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/parser/__pycache__/_parser.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/dateutil/parser/__pycache__/_parser.cpython-312.pyc new file mode 100644 index 000000000..e89406b88 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/dateutil/parser/__pycache__/_parser.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/parser/__pycache__/isoparser.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/dateutil/parser/__pycache__/isoparser.cpython-312.pyc new file mode 100644 index 000000000..1f6bf23e0 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/dateutil/parser/__pycache__/isoparser.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/parser/_parser.py b/rep_localstack/lib/python3.12/site-packages/dateutil/parser/_parser.py new file mode 100644 index 000000000..37d1663b2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/dateutil/parser/_parser.py @@ -0,0 +1,1613 @@ +# -*- coding: utf-8 -*- +""" +This module offers a generic date/time string parser which is able to parse +most known formats to represent a date and/or time. + +This module attempts to be forgiving with regards to unlikely input formats, +returning a datetime object even for dates which are ambiguous. If an element +of a date/time stamp is omitted, the following rules are applied: + +- If AM or PM is left unspecified, a 24-hour clock is assumed, however, an hour + on a 12-hour clock (``0 <= hour <= 12``) *must* be specified if AM or PM is + specified. +- If a time zone is omitted, a timezone-naive datetime is returned. + +If any other elements are missing, they are taken from the +:class:`datetime.datetime` object passed to the parameter ``default``. If this +results in a day number exceeding the valid number of days per month, the +value falls back to the end of the month. + +Additional resources about date/time string formats can be found below: + +- `A summary of the international standard date and time notation + `_ +- `W3C Date and Time Formats `_ +- `Time Formats (Planetary Rings Node) `_ +- `CPAN ParseDate module + `_ +- `Java SimpleDateFormat Class + `_ +""" +from __future__ import unicode_literals + +import datetime +import re +import string +import time +import warnings + +from calendar import monthrange +from io import StringIO + +import six +from six import integer_types, text_type + +from decimal import Decimal + +from warnings import warn + +from .. import relativedelta +from .. import tz + +__all__ = ["parse", "parserinfo", "ParserError"] + + +# TODO: pandas.core.tools.datetimes imports this explicitly. Might be worth +# making public and/or figuring out if there is something we can +# take off their plate. +class _timelex(object): + # Fractional seconds are sometimes split by a comma + _split_decimal = re.compile("([.,])") + + def __init__(self, instream): + if isinstance(instream, (bytes, bytearray)): + instream = instream.decode() + + if isinstance(instream, text_type): + instream = StringIO(instream) + elif getattr(instream, 'read', None) is None: + raise TypeError('Parser must be a string or character stream, not ' + '{itype}'.format(itype=instream.__class__.__name__)) + + self.instream = instream + self.charstack = [] + self.tokenstack = [] + self.eof = False + + def get_token(self): + """ + This function breaks the time string into lexical units (tokens), which + can be parsed by the parser. Lexical units are demarcated by changes in + the character set, so any continuous string of letters is considered + one unit, any continuous string of numbers is considered one unit. + + The main complication arises from the fact that dots ('.') can be used + both as separators (e.g. "Sep.20.2009") or decimal points (e.g. + "4:30:21.447"). As such, it is necessary to read the full context of + any dot-separated strings before breaking it into tokens; as such, this + function maintains a "token stack", for when the ambiguous context + demands that multiple tokens be parsed at once. + """ + if self.tokenstack: + return self.tokenstack.pop(0) + + seenletters = False + token = None + state = None + + while not self.eof: + # We only realize that we've reached the end of a token when we + # find a character that's not part of the current token - since + # that character may be part of the next token, it's stored in the + # charstack. + if self.charstack: + nextchar = self.charstack.pop(0) + else: + nextchar = self.instream.read(1) + while nextchar == '\x00': + nextchar = self.instream.read(1) + + if not nextchar: + self.eof = True + break + elif not state: + # First character of the token - determines if we're starting + # to parse a word, a number or something else. + token = nextchar + if self.isword(nextchar): + state = 'a' + elif self.isnum(nextchar): + state = '0' + elif self.isspace(nextchar): + token = ' ' + break # emit token + else: + break # emit token + elif state == 'a': + # If we've already started reading a word, we keep reading + # letters until we find something that's not part of a word. + seenletters = True + if self.isword(nextchar): + token += nextchar + elif nextchar == '.': + token += nextchar + state = 'a.' + else: + self.charstack.append(nextchar) + break # emit token + elif state == '0': + # If we've already started reading a number, we keep reading + # numbers until we find something that doesn't fit. + if self.isnum(nextchar): + token += nextchar + elif nextchar == '.' or (nextchar == ',' and len(token) >= 2): + token += nextchar + state = '0.' + else: + self.charstack.append(nextchar) + break # emit token + elif state == 'a.': + # If we've seen some letters and a dot separator, continue + # parsing, and the tokens will be broken up later. + seenletters = True + if nextchar == '.' or self.isword(nextchar): + token += nextchar + elif self.isnum(nextchar) and token[-1] == '.': + token += nextchar + state = '0.' + else: + self.charstack.append(nextchar) + break # emit token + elif state == '0.': + # If we've seen at least one dot separator, keep going, we'll + # break up the tokens later. + if nextchar == '.' or self.isnum(nextchar): + token += nextchar + elif self.isword(nextchar) and token[-1] == '.': + token += nextchar + state = 'a.' + else: + self.charstack.append(nextchar) + break # emit token + + if (state in ('a.', '0.') and (seenletters or token.count('.') > 1 or + token[-1] in '.,')): + l = self._split_decimal.split(token) + token = l[0] + for tok in l[1:]: + if tok: + self.tokenstack.append(tok) + + if state == '0.' and token.count('.') == 0: + token = token.replace(',', '.') + + return token + + def __iter__(self): + return self + + def __next__(self): + token = self.get_token() + if token is None: + raise StopIteration + + return token + + def next(self): + return self.__next__() # Python 2.x support + + @classmethod + def split(cls, s): + return list(cls(s)) + + @classmethod + def isword(cls, nextchar): + """ Whether or not the next character is part of a word """ + return nextchar.isalpha() + + @classmethod + def isnum(cls, nextchar): + """ Whether the next character is part of a number """ + return nextchar.isdigit() + + @classmethod + def isspace(cls, nextchar): + """ Whether the next character is whitespace """ + return nextchar.isspace() + + +class _resultbase(object): + + def __init__(self): + for attr in self.__slots__: + setattr(self, attr, None) + + def _repr(self, classname): + l = [] + for attr in self.__slots__: + value = getattr(self, attr) + if value is not None: + l.append("%s=%s" % (attr, repr(value))) + return "%s(%s)" % (classname, ", ".join(l)) + + def __len__(self): + return (sum(getattr(self, attr) is not None + for attr in self.__slots__)) + + def __repr__(self): + return self._repr(self.__class__.__name__) + + +class parserinfo(object): + """ + Class which handles what inputs are accepted. Subclass this to customize + the language and acceptable values for each parameter. + + :param dayfirst: + Whether to interpret the first value in an ambiguous 3-integer date + (e.g. 01/05/09) as the day (``True``) or month (``False``). If + ``yearfirst`` is set to ``True``, this distinguishes between YDM + and YMD. Default is ``False``. + + :param yearfirst: + Whether to interpret the first value in an ambiguous 3-integer date + (e.g. 01/05/09) as the year. If ``True``, the first number is taken + to be the year, otherwise the last number is taken to be the year. + Default is ``False``. + """ + + # m from a.m/p.m, t from ISO T separator + JUMP = [" ", ".", ",", ";", "-", "/", "'", + "at", "on", "and", "ad", "m", "t", "of", + "st", "nd", "rd", "th"] + + WEEKDAYS = [("Mon", "Monday"), + ("Tue", "Tuesday"), # TODO: "Tues" + ("Wed", "Wednesday"), + ("Thu", "Thursday"), # TODO: "Thurs" + ("Fri", "Friday"), + ("Sat", "Saturday"), + ("Sun", "Sunday")] + MONTHS = [("Jan", "January"), + ("Feb", "February"), # TODO: "Febr" + ("Mar", "March"), + ("Apr", "April"), + ("May", "May"), + ("Jun", "June"), + ("Jul", "July"), + ("Aug", "August"), + ("Sep", "Sept", "September"), + ("Oct", "October"), + ("Nov", "November"), + ("Dec", "December")] + HMS = [("h", "hour", "hours"), + ("m", "minute", "minutes"), + ("s", "second", "seconds")] + AMPM = [("am", "a"), + ("pm", "p")] + UTCZONE = ["UTC", "GMT", "Z", "z"] + PERTAIN = ["of"] + TZOFFSET = {} + # TODO: ERA = ["AD", "BC", "CE", "BCE", "Stardate", + # "Anno Domini", "Year of Our Lord"] + + def __init__(self, dayfirst=False, yearfirst=False): + self._jump = self._convert(self.JUMP) + self._weekdays = self._convert(self.WEEKDAYS) + self._months = self._convert(self.MONTHS) + self._hms = self._convert(self.HMS) + self._ampm = self._convert(self.AMPM) + self._utczone = self._convert(self.UTCZONE) + self._pertain = self._convert(self.PERTAIN) + + self.dayfirst = dayfirst + self.yearfirst = yearfirst + + self._year = time.localtime().tm_year + self._century = self._year // 100 * 100 + + def _convert(self, lst): + dct = {} + for i, v in enumerate(lst): + if isinstance(v, tuple): + for v in v: + dct[v.lower()] = i + else: + dct[v.lower()] = i + return dct + + def jump(self, name): + return name.lower() in self._jump + + def weekday(self, name): + try: + return self._weekdays[name.lower()] + except KeyError: + pass + return None + + def month(self, name): + try: + return self._months[name.lower()] + 1 + except KeyError: + pass + return None + + def hms(self, name): + try: + return self._hms[name.lower()] + except KeyError: + return None + + def ampm(self, name): + try: + return self._ampm[name.lower()] + except KeyError: + return None + + def pertain(self, name): + return name.lower() in self._pertain + + def utczone(self, name): + return name.lower() in self._utczone + + def tzoffset(self, name): + if name in self._utczone: + return 0 + + return self.TZOFFSET.get(name) + + def convertyear(self, year, century_specified=False): + """ + Converts two-digit years to year within [-50, 49] + range of self._year (current local time) + """ + + # Function contract is that the year is always positive + assert year >= 0 + + if year < 100 and not century_specified: + # assume current century to start + year += self._century + + if year >= self._year + 50: # if too far in future + year -= 100 + elif year < self._year - 50: # if too far in past + year += 100 + + return year + + def validate(self, res): + # move to info + if res.year is not None: + res.year = self.convertyear(res.year, res.century_specified) + + if ((res.tzoffset == 0 and not res.tzname) or + (res.tzname == 'Z' or res.tzname == 'z')): + res.tzname = "UTC" + res.tzoffset = 0 + elif res.tzoffset != 0 and res.tzname and self.utczone(res.tzname): + res.tzoffset = 0 + return True + + +class _ymd(list): + def __init__(self, *args, **kwargs): + super(self.__class__, self).__init__(*args, **kwargs) + self.century_specified = False + self.dstridx = None + self.mstridx = None + self.ystridx = None + + @property + def has_year(self): + return self.ystridx is not None + + @property + def has_month(self): + return self.mstridx is not None + + @property + def has_day(self): + return self.dstridx is not None + + def could_be_day(self, value): + if self.has_day: + return False + elif not self.has_month: + return 1 <= value <= 31 + elif not self.has_year: + # Be permissive, assume leap year + month = self[self.mstridx] + return 1 <= value <= monthrange(2000, month)[1] + else: + month = self[self.mstridx] + year = self[self.ystridx] + return 1 <= value <= monthrange(year, month)[1] + + def append(self, val, label=None): + if hasattr(val, '__len__'): + if val.isdigit() and len(val) > 2: + self.century_specified = True + if label not in [None, 'Y']: # pragma: no cover + raise ValueError(label) + label = 'Y' + elif val > 100: + self.century_specified = True + if label not in [None, 'Y']: # pragma: no cover + raise ValueError(label) + label = 'Y' + + super(self.__class__, self).append(int(val)) + + if label == 'M': + if self.has_month: + raise ValueError('Month is already set') + self.mstridx = len(self) - 1 + elif label == 'D': + if self.has_day: + raise ValueError('Day is already set') + self.dstridx = len(self) - 1 + elif label == 'Y': + if self.has_year: + raise ValueError('Year is already set') + self.ystridx = len(self) - 1 + + def _resolve_from_stridxs(self, strids): + """ + Try to resolve the identities of year/month/day elements using + ystridx, mstridx, and dstridx, if enough of these are specified. + """ + if len(self) == 3 and len(strids) == 2: + # we can back out the remaining stridx value + missing = [x for x in range(3) if x not in strids.values()] + key = [x for x in ['y', 'm', 'd'] if x not in strids] + assert len(missing) == len(key) == 1 + key = key[0] + val = missing[0] + strids[key] = val + + assert len(self) == len(strids) # otherwise this should not be called + out = {key: self[strids[key]] for key in strids} + return (out.get('y'), out.get('m'), out.get('d')) + + def resolve_ymd(self, yearfirst, dayfirst): + len_ymd = len(self) + year, month, day = (None, None, None) + + strids = (('y', self.ystridx), + ('m', self.mstridx), + ('d', self.dstridx)) + + strids = {key: val for key, val in strids if val is not None} + if (len(self) == len(strids) > 0 or + (len(self) == 3 and len(strids) == 2)): + return self._resolve_from_stridxs(strids) + + mstridx = self.mstridx + + if len_ymd > 3: + raise ValueError("More than three YMD values") + elif len_ymd == 1 or (mstridx is not None and len_ymd == 2): + # One member, or two members with a month string + if mstridx is not None: + month = self[mstridx] + # since mstridx is 0 or 1, self[mstridx-1] always + # looks up the other element + other = self[mstridx - 1] + else: + other = self[0] + + if len_ymd > 1 or mstridx is None: + if other > 31: + year = other + else: + day = other + + elif len_ymd == 2: + # Two members with numbers + if self[0] > 31: + # 99-01 + year, month = self + elif self[1] > 31: + # 01-99 + month, year = self + elif dayfirst and self[1] <= 12: + # 13-01 + day, month = self + else: + # 01-13 + month, day = self + + elif len_ymd == 3: + # Three members + if mstridx == 0: + if self[1] > 31: + # Apr-2003-25 + month, year, day = self + else: + month, day, year = self + elif mstridx == 1: + if self[0] > 31 or (yearfirst and self[2] <= 31): + # 99-Jan-01 + year, month, day = self + else: + # 01-Jan-01 + # Give precedence to day-first, since + # two-digit years is usually hand-written. + day, month, year = self + + elif mstridx == 2: + # WTF!? + if self[1] > 31: + # 01-99-Jan + day, year, month = self + else: + # 99-01-Jan + year, day, month = self + + else: + if (self[0] > 31 or + self.ystridx == 0 or + (yearfirst and self[1] <= 12 and self[2] <= 31)): + # 99-01-01 + if dayfirst and self[2] <= 12: + year, day, month = self + else: + year, month, day = self + elif self[0] > 12 or (dayfirst and self[1] <= 12): + # 13-01-01 + day, month, year = self + else: + # 01-13-01 + month, day, year = self + + return year, month, day + + +class parser(object): + def __init__(self, info=None): + self.info = info or parserinfo() + + def parse(self, timestr, default=None, + ignoretz=False, tzinfos=None, **kwargs): + """ + Parse the date/time string into a :class:`datetime.datetime` object. + + :param timestr: + Any date/time string using the supported formats. + + :param default: + The default datetime object, if this is a datetime object and not + ``None``, elements specified in ``timestr`` replace elements in the + default object. + + :param ignoretz: + If set ``True``, time zones in parsed strings are ignored and a + naive :class:`datetime.datetime` object is returned. + + :param tzinfos: + Additional time zone names / aliases which may be present in the + string. This argument maps time zone names (and optionally offsets + from those time zones) to time zones. This parameter can be a + dictionary with timezone aliases mapping time zone names to time + zones or a function taking two parameters (``tzname`` and + ``tzoffset``) and returning a time zone. + + The timezones to which the names are mapped can be an integer + offset from UTC in seconds or a :class:`tzinfo` object. + + .. doctest:: + :options: +NORMALIZE_WHITESPACE + + >>> from dateutil.parser import parse + >>> from dateutil.tz import gettz + >>> tzinfos = {"BRST": -7200, "CST": gettz("America/Chicago")} + >>> parse("2012-01-19 17:21:00 BRST", tzinfos=tzinfos) + datetime.datetime(2012, 1, 19, 17, 21, tzinfo=tzoffset(u'BRST', -7200)) + >>> parse("2012-01-19 17:21:00 CST", tzinfos=tzinfos) + datetime.datetime(2012, 1, 19, 17, 21, + tzinfo=tzfile('/usr/share/zoneinfo/America/Chicago')) + + This parameter is ignored if ``ignoretz`` is set. + + :param \\*\\*kwargs: + Keyword arguments as passed to ``_parse()``. + + :return: + Returns a :class:`datetime.datetime` object or, if the + ``fuzzy_with_tokens`` option is ``True``, returns a tuple, the + first element being a :class:`datetime.datetime` object, the second + a tuple containing the fuzzy tokens. + + :raises ParserError: + Raised for invalid or unknown string format, if the provided + :class:`tzinfo` is not in a valid format, or if an invalid date + would be created. + + :raises TypeError: + Raised for non-string or character stream input. + + :raises OverflowError: + Raised if the parsed date exceeds the largest valid C integer on + your system. + """ + + if default is None: + default = datetime.datetime.now().replace(hour=0, minute=0, + second=0, microsecond=0) + + res, skipped_tokens = self._parse(timestr, **kwargs) + + if res is None: + raise ParserError("Unknown string format: %s", timestr) + + if len(res) == 0: + raise ParserError("String does not contain a date: %s", timestr) + + try: + ret = self._build_naive(res, default) + except ValueError as e: + six.raise_from(ParserError(str(e) + ": %s", timestr), e) + + if not ignoretz: + ret = self._build_tzaware(ret, res, tzinfos) + + if kwargs.get('fuzzy_with_tokens', False): + return ret, skipped_tokens + else: + return ret + + class _result(_resultbase): + __slots__ = ["year", "month", "day", "weekday", + "hour", "minute", "second", "microsecond", + "tzname", "tzoffset", "ampm","any_unused_tokens"] + + def _parse(self, timestr, dayfirst=None, yearfirst=None, fuzzy=False, + fuzzy_with_tokens=False): + """ + Private method which performs the heavy lifting of parsing, called from + ``parse()``, which passes on its ``kwargs`` to this function. + + :param timestr: + The string to parse. + + :param dayfirst: + Whether to interpret the first value in an ambiguous 3-integer date + (e.g. 01/05/09) as the day (``True``) or month (``False``). If + ``yearfirst`` is set to ``True``, this distinguishes between YDM + and YMD. If set to ``None``, this value is retrieved from the + current :class:`parserinfo` object (which itself defaults to + ``False``). + + :param yearfirst: + Whether to interpret the first value in an ambiguous 3-integer date + (e.g. 01/05/09) as the year. If ``True``, the first number is taken + to be the year, otherwise the last number is taken to be the year. + If this is set to ``None``, the value is retrieved from the current + :class:`parserinfo` object (which itself defaults to ``False``). + + :param fuzzy: + Whether to allow fuzzy parsing, allowing for string like "Today is + January 1, 2047 at 8:21:00AM". + + :param fuzzy_with_tokens: + If ``True``, ``fuzzy`` is automatically set to True, and the parser + will return a tuple where the first element is the parsed + :class:`datetime.datetime` datetimestamp and the second element is + a tuple containing the portions of the string which were ignored: + + .. doctest:: + + >>> from dateutil.parser import parse + >>> parse("Today is January 1, 2047 at 8:21:00AM", fuzzy_with_tokens=True) + (datetime.datetime(2047, 1, 1, 8, 21), (u'Today is ', u' ', u'at ')) + + """ + if fuzzy_with_tokens: + fuzzy = True + + info = self.info + + if dayfirst is None: + dayfirst = info.dayfirst + + if yearfirst is None: + yearfirst = info.yearfirst + + res = self._result() + l = _timelex.split(timestr) # Splits the timestr into tokens + + skipped_idxs = [] + + # year/month/day list + ymd = _ymd() + + len_l = len(l) + i = 0 + try: + while i < len_l: + + # Check if it's a number + value_repr = l[i] + try: + value = float(value_repr) + except ValueError: + value = None + + if value is not None: + # Numeric token + i = self._parse_numeric_token(l, i, info, ymd, res, fuzzy) + + # Check weekday + elif info.weekday(l[i]) is not None: + value = info.weekday(l[i]) + res.weekday = value + + # Check month name + elif info.month(l[i]) is not None: + value = info.month(l[i]) + ymd.append(value, 'M') + + if i + 1 < len_l: + if l[i + 1] in ('-', '/'): + # Jan-01[-99] + sep = l[i + 1] + ymd.append(l[i + 2]) + + if i + 3 < len_l and l[i + 3] == sep: + # Jan-01-99 + ymd.append(l[i + 4]) + i += 2 + + i += 2 + + elif (i + 4 < len_l and l[i + 1] == l[i + 3] == ' ' and + info.pertain(l[i + 2])): + # Jan of 01 + # In this case, 01 is clearly year + if l[i + 4].isdigit(): + # Convert it here to become unambiguous + value = int(l[i + 4]) + year = str(info.convertyear(value)) + ymd.append(year, 'Y') + else: + # Wrong guess + pass + # TODO: not hit in tests + i += 4 + + # Check am/pm + elif info.ampm(l[i]) is not None: + value = info.ampm(l[i]) + val_is_ampm = self._ampm_valid(res.hour, res.ampm, fuzzy) + + if val_is_ampm: + res.hour = self._adjust_ampm(res.hour, value) + res.ampm = value + + elif fuzzy: + skipped_idxs.append(i) + + # Check for a timezone name + elif self._could_be_tzname(res.hour, res.tzname, res.tzoffset, l[i]): + res.tzname = l[i] + res.tzoffset = info.tzoffset(res.tzname) + + # Check for something like GMT+3, or BRST+3. Notice + # that it doesn't mean "I am 3 hours after GMT", but + # "my time +3 is GMT". If found, we reverse the + # logic so that timezone parsing code will get it + # right. + if i + 1 < len_l and l[i + 1] in ('+', '-'): + l[i + 1] = ('+', '-')[l[i + 1] == '+'] + res.tzoffset = None + if info.utczone(res.tzname): + # With something like GMT+3, the timezone + # is *not* GMT. + res.tzname = None + + # Check for a numbered timezone + elif res.hour is not None and l[i] in ('+', '-'): + signal = (-1, 1)[l[i] == '+'] + len_li = len(l[i + 1]) + + # TODO: check that l[i + 1] is integer? + if len_li == 4: + # -0300 + hour_offset = int(l[i + 1][:2]) + min_offset = int(l[i + 1][2:]) + elif i + 2 < len_l and l[i + 2] == ':': + # -03:00 + hour_offset = int(l[i + 1]) + min_offset = int(l[i + 3]) # TODO: Check that l[i+3] is minute-like? + i += 2 + elif len_li <= 2: + # -[0]3 + hour_offset = int(l[i + 1][:2]) + min_offset = 0 + else: + raise ValueError(timestr) + + res.tzoffset = signal * (hour_offset * 3600 + min_offset * 60) + + # Look for a timezone name between parenthesis + if (i + 5 < len_l and + info.jump(l[i + 2]) and l[i + 3] == '(' and + l[i + 5] == ')' and + 3 <= len(l[i + 4]) and + self._could_be_tzname(res.hour, res.tzname, + None, l[i + 4])): + # -0300 (BRST) + res.tzname = l[i + 4] + i += 4 + + i += 1 + + # Check jumps + elif not (info.jump(l[i]) or fuzzy): + raise ValueError(timestr) + + else: + skipped_idxs.append(i) + i += 1 + + # Process year/month/day + year, month, day = ymd.resolve_ymd(yearfirst, dayfirst) + + res.century_specified = ymd.century_specified + res.year = year + res.month = month + res.day = day + + except (IndexError, ValueError): + return None, None + + if not info.validate(res): + return None, None + + if fuzzy_with_tokens: + skipped_tokens = self._recombine_skipped(l, skipped_idxs) + return res, tuple(skipped_tokens) + else: + return res, None + + def _parse_numeric_token(self, tokens, idx, info, ymd, res, fuzzy): + # Token is a number + value_repr = tokens[idx] + try: + value = self._to_decimal(value_repr) + except Exception as e: + six.raise_from(ValueError('Unknown numeric token'), e) + + len_li = len(value_repr) + + len_l = len(tokens) + + if (len(ymd) == 3 and len_li in (2, 4) and + res.hour is None and + (idx + 1 >= len_l or + (tokens[idx + 1] != ':' and + info.hms(tokens[idx + 1]) is None))): + # 19990101T23[59] + s = tokens[idx] + res.hour = int(s[:2]) + + if len_li == 4: + res.minute = int(s[2:]) + + elif len_li == 6 or (len_li > 6 and tokens[idx].find('.') == 6): + # YYMMDD or HHMMSS[.ss] + s = tokens[idx] + + if not ymd and '.' not in tokens[idx]: + ymd.append(s[:2]) + ymd.append(s[2:4]) + ymd.append(s[4:]) + else: + # 19990101T235959[.59] + + # TODO: Check if res attributes already set. + res.hour = int(s[:2]) + res.minute = int(s[2:4]) + res.second, res.microsecond = self._parsems(s[4:]) + + elif len_li in (8, 12, 14): + # YYYYMMDD + s = tokens[idx] + ymd.append(s[:4], 'Y') + ymd.append(s[4:6]) + ymd.append(s[6:8]) + + if len_li > 8: + res.hour = int(s[8:10]) + res.minute = int(s[10:12]) + + if len_li > 12: + res.second = int(s[12:]) + + elif self._find_hms_idx(idx, tokens, info, allow_jump=True) is not None: + # HH[ ]h or MM[ ]m or SS[.ss][ ]s + hms_idx = self._find_hms_idx(idx, tokens, info, allow_jump=True) + (idx, hms) = self._parse_hms(idx, tokens, info, hms_idx) + if hms is not None: + # TODO: checking that hour/minute/second are not + # already set? + self._assign_hms(res, value_repr, hms) + + elif idx + 2 < len_l and tokens[idx + 1] == ':': + # HH:MM[:SS[.ss]] + res.hour = int(value) + value = self._to_decimal(tokens[idx + 2]) # TODO: try/except for this? + (res.minute, res.second) = self._parse_min_sec(value) + + if idx + 4 < len_l and tokens[idx + 3] == ':': + res.second, res.microsecond = self._parsems(tokens[idx + 4]) + + idx += 2 + + idx += 2 + + elif idx + 1 < len_l and tokens[idx + 1] in ('-', '/', '.'): + sep = tokens[idx + 1] + ymd.append(value_repr) + + if idx + 2 < len_l and not info.jump(tokens[idx + 2]): + if tokens[idx + 2].isdigit(): + # 01-01[-01] + ymd.append(tokens[idx + 2]) + else: + # 01-Jan[-01] + value = info.month(tokens[idx + 2]) + + if value is not None: + ymd.append(value, 'M') + else: + raise ValueError() + + if idx + 3 < len_l and tokens[idx + 3] == sep: + # We have three members + value = info.month(tokens[idx + 4]) + + if value is not None: + ymd.append(value, 'M') + else: + ymd.append(tokens[idx + 4]) + idx += 2 + + idx += 1 + idx += 1 + + elif idx + 1 >= len_l or info.jump(tokens[idx + 1]): + if idx + 2 < len_l and info.ampm(tokens[idx + 2]) is not None: + # 12 am + hour = int(value) + res.hour = self._adjust_ampm(hour, info.ampm(tokens[idx + 2])) + idx += 1 + else: + # Year, month or day + ymd.append(value) + idx += 1 + + elif info.ampm(tokens[idx + 1]) is not None and (0 <= value < 24): + # 12am + hour = int(value) + res.hour = self._adjust_ampm(hour, info.ampm(tokens[idx + 1])) + idx += 1 + + elif ymd.could_be_day(value): + ymd.append(value) + + elif not fuzzy: + raise ValueError() + + return idx + + def _find_hms_idx(self, idx, tokens, info, allow_jump): + len_l = len(tokens) + + if idx+1 < len_l and info.hms(tokens[idx+1]) is not None: + # There is an "h", "m", or "s" label following this token. We take + # assign the upcoming label to the current token. + # e.g. the "12" in 12h" + hms_idx = idx + 1 + + elif (allow_jump and idx+2 < len_l and tokens[idx+1] == ' ' and + info.hms(tokens[idx+2]) is not None): + # There is a space and then an "h", "m", or "s" label. + # e.g. the "12" in "12 h" + hms_idx = idx + 2 + + elif idx > 0 and info.hms(tokens[idx-1]) is not None: + # There is a "h", "m", or "s" preceding this token. Since neither + # of the previous cases was hit, there is no label following this + # token, so we use the previous label. + # e.g. the "04" in "12h04" + hms_idx = idx-1 + + elif (1 < idx == len_l-1 and tokens[idx-1] == ' ' and + info.hms(tokens[idx-2]) is not None): + # If we are looking at the final token, we allow for a + # backward-looking check to skip over a space. + # TODO: Are we sure this is the right condition here? + hms_idx = idx - 2 + + else: + hms_idx = None + + return hms_idx + + def _assign_hms(self, res, value_repr, hms): + # See GH issue #427, fixing float rounding + value = self._to_decimal(value_repr) + + if hms == 0: + # Hour + res.hour = int(value) + if value % 1: + res.minute = int(60*(value % 1)) + + elif hms == 1: + (res.minute, res.second) = self._parse_min_sec(value) + + elif hms == 2: + (res.second, res.microsecond) = self._parsems(value_repr) + + def _could_be_tzname(self, hour, tzname, tzoffset, token): + return (hour is not None and + tzname is None and + tzoffset is None and + len(token) <= 5 and + (all(x in string.ascii_uppercase for x in token) + or token in self.info.UTCZONE)) + + def _ampm_valid(self, hour, ampm, fuzzy): + """ + For fuzzy parsing, 'a' or 'am' (both valid English words) + may erroneously trigger the AM/PM flag. Deal with that + here. + """ + val_is_ampm = True + + # If there's already an AM/PM flag, this one isn't one. + if fuzzy and ampm is not None: + val_is_ampm = False + + # If AM/PM is found and hour is not, raise a ValueError + if hour is None: + if fuzzy: + val_is_ampm = False + else: + raise ValueError('No hour specified with AM or PM flag.') + elif not 0 <= hour <= 12: + # If AM/PM is found, it's a 12 hour clock, so raise + # an error for invalid range + if fuzzy: + val_is_ampm = False + else: + raise ValueError('Invalid hour specified for 12-hour clock.') + + return val_is_ampm + + def _adjust_ampm(self, hour, ampm): + if hour < 12 and ampm == 1: + hour += 12 + elif hour == 12 and ampm == 0: + hour = 0 + return hour + + def _parse_min_sec(self, value): + # TODO: Every usage of this function sets res.second to the return + # value. Are there any cases where second will be returned as None and + # we *don't* want to set res.second = None? + minute = int(value) + second = None + + sec_remainder = value % 1 + if sec_remainder: + second = int(60 * sec_remainder) + return (minute, second) + + def _parse_hms(self, idx, tokens, info, hms_idx): + # TODO: Is this going to admit a lot of false-positives for when we + # just happen to have digits and "h", "m" or "s" characters in non-date + # text? I guess hex hashes won't have that problem, but there's plenty + # of random junk out there. + if hms_idx is None: + hms = None + new_idx = idx + elif hms_idx > idx: + hms = info.hms(tokens[hms_idx]) + new_idx = hms_idx + else: + # Looking backwards, increment one. + hms = info.hms(tokens[hms_idx]) + 1 + new_idx = idx + + return (new_idx, hms) + + # ------------------------------------------------------------------ + # Handling for individual tokens. These are kept as methods instead + # of functions for the sake of customizability via subclassing. + + def _parsems(self, value): + """Parse a I[.F] seconds value into (seconds, microseconds).""" + if "." not in value: + return int(value), 0 + else: + i, f = value.split(".") + return int(i), int(f.ljust(6, "0")[:6]) + + def _to_decimal(self, val): + try: + decimal_value = Decimal(val) + # See GH 662, edge case, infinite value should not be converted + # via `_to_decimal` + if not decimal_value.is_finite(): + raise ValueError("Converted decimal value is infinite or NaN") + except Exception as e: + msg = "Could not convert %s to decimal" % val + six.raise_from(ValueError(msg), e) + else: + return decimal_value + + # ------------------------------------------------------------------ + # Post-Parsing construction of datetime output. These are kept as + # methods instead of functions for the sake of customizability via + # subclassing. + + def _build_tzinfo(self, tzinfos, tzname, tzoffset): + if callable(tzinfos): + tzdata = tzinfos(tzname, tzoffset) + else: + tzdata = tzinfos.get(tzname) + # handle case where tzinfo is paased an options that returns None + # eg tzinfos = {'BRST' : None} + if isinstance(tzdata, datetime.tzinfo) or tzdata is None: + tzinfo = tzdata + elif isinstance(tzdata, text_type): + tzinfo = tz.tzstr(tzdata) + elif isinstance(tzdata, integer_types): + tzinfo = tz.tzoffset(tzname, tzdata) + else: + raise TypeError("Offset must be tzinfo subclass, tz string, " + "or int offset.") + return tzinfo + + def _build_tzaware(self, naive, res, tzinfos): + if (callable(tzinfos) or (tzinfos and res.tzname in tzinfos)): + tzinfo = self._build_tzinfo(tzinfos, res.tzname, res.tzoffset) + aware = naive.replace(tzinfo=tzinfo) + aware = self._assign_tzname(aware, res.tzname) + + elif res.tzname and res.tzname in time.tzname: + aware = naive.replace(tzinfo=tz.tzlocal()) + + # Handle ambiguous local datetime + aware = self._assign_tzname(aware, res.tzname) + + # This is mostly relevant for winter GMT zones parsed in the UK + if (aware.tzname() != res.tzname and + res.tzname in self.info.UTCZONE): + aware = aware.replace(tzinfo=tz.UTC) + + elif res.tzoffset == 0: + aware = naive.replace(tzinfo=tz.UTC) + + elif res.tzoffset: + aware = naive.replace(tzinfo=tz.tzoffset(res.tzname, res.tzoffset)) + + elif not res.tzname and not res.tzoffset: + # i.e. no timezone information was found. + aware = naive + + elif res.tzname: + # tz-like string was parsed but we don't know what to do + # with it + warnings.warn("tzname {tzname} identified but not understood. " + "Pass `tzinfos` argument in order to correctly " + "return a timezone-aware datetime. In a future " + "version, this will raise an " + "exception.".format(tzname=res.tzname), + category=UnknownTimezoneWarning) + aware = naive + + return aware + + def _build_naive(self, res, default): + repl = {} + for attr in ("year", "month", "day", "hour", + "minute", "second", "microsecond"): + value = getattr(res, attr) + if value is not None: + repl[attr] = value + + if 'day' not in repl: + # If the default day exceeds the last day of the month, fall back + # to the end of the month. + cyear = default.year if res.year is None else res.year + cmonth = default.month if res.month is None else res.month + cday = default.day if res.day is None else res.day + + if cday > monthrange(cyear, cmonth)[1]: + repl['day'] = monthrange(cyear, cmonth)[1] + + naive = default.replace(**repl) + + if res.weekday is not None and not res.day: + naive = naive + relativedelta.relativedelta(weekday=res.weekday) + + return naive + + def _assign_tzname(self, dt, tzname): + if dt.tzname() != tzname: + new_dt = tz.enfold(dt, fold=1) + if new_dt.tzname() == tzname: + return new_dt + + return dt + + def _recombine_skipped(self, tokens, skipped_idxs): + """ + >>> tokens = ["foo", " ", "bar", " ", "19June2000", "baz"] + >>> skipped_idxs = [0, 1, 2, 5] + >>> _recombine_skipped(tokens, skipped_idxs) + ["foo bar", "baz"] + """ + skipped_tokens = [] + for i, idx in enumerate(sorted(skipped_idxs)): + if i > 0 and idx - 1 == skipped_idxs[i - 1]: + skipped_tokens[-1] = skipped_tokens[-1] + tokens[idx] + else: + skipped_tokens.append(tokens[idx]) + + return skipped_tokens + + +DEFAULTPARSER = parser() + + +def parse(timestr, parserinfo=None, **kwargs): + """ + + Parse a string in one of the supported formats, using the + ``parserinfo`` parameters. + + :param timestr: + A string containing a date/time stamp. + + :param parserinfo: + A :class:`parserinfo` object containing parameters for the parser. + If ``None``, the default arguments to the :class:`parserinfo` + constructor are used. + + The ``**kwargs`` parameter takes the following keyword arguments: + + :param default: + The default datetime object, if this is a datetime object and not + ``None``, elements specified in ``timestr`` replace elements in the + default object. + + :param ignoretz: + If set ``True``, time zones in parsed strings are ignored and a naive + :class:`datetime` object is returned. + + :param tzinfos: + Additional time zone names / aliases which may be present in the + string. This argument maps time zone names (and optionally offsets + from those time zones) to time zones. This parameter can be a + dictionary with timezone aliases mapping time zone names to time + zones or a function taking two parameters (``tzname`` and + ``tzoffset``) and returning a time zone. + + The timezones to which the names are mapped can be an integer + offset from UTC in seconds or a :class:`tzinfo` object. + + .. doctest:: + :options: +NORMALIZE_WHITESPACE + + >>> from dateutil.parser import parse + >>> from dateutil.tz import gettz + >>> tzinfos = {"BRST": -7200, "CST": gettz("America/Chicago")} + >>> parse("2012-01-19 17:21:00 BRST", tzinfos=tzinfos) + datetime.datetime(2012, 1, 19, 17, 21, tzinfo=tzoffset(u'BRST', -7200)) + >>> parse("2012-01-19 17:21:00 CST", tzinfos=tzinfos) + datetime.datetime(2012, 1, 19, 17, 21, + tzinfo=tzfile('/usr/share/zoneinfo/America/Chicago')) + + This parameter is ignored if ``ignoretz`` is set. + + :param dayfirst: + Whether to interpret the first value in an ambiguous 3-integer date + (e.g. 01/05/09) as the day (``True``) or month (``False``). If + ``yearfirst`` is set to ``True``, this distinguishes between YDM and + YMD. If set to ``None``, this value is retrieved from the current + :class:`parserinfo` object (which itself defaults to ``False``). + + :param yearfirst: + Whether to interpret the first value in an ambiguous 3-integer date + (e.g. 01/05/09) as the year. If ``True``, the first number is taken to + be the year, otherwise the last number is taken to be the year. If + this is set to ``None``, the value is retrieved from the current + :class:`parserinfo` object (which itself defaults to ``False``). + + :param fuzzy: + Whether to allow fuzzy parsing, allowing for string like "Today is + January 1, 2047 at 8:21:00AM". + + :param fuzzy_with_tokens: + If ``True``, ``fuzzy`` is automatically set to True, and the parser + will return a tuple where the first element is the parsed + :class:`datetime.datetime` datetimestamp and the second element is + a tuple containing the portions of the string which were ignored: + + .. doctest:: + + >>> from dateutil.parser import parse + >>> parse("Today is January 1, 2047 at 8:21:00AM", fuzzy_with_tokens=True) + (datetime.datetime(2047, 1, 1, 8, 21), (u'Today is ', u' ', u'at ')) + + :return: + Returns a :class:`datetime.datetime` object or, if the + ``fuzzy_with_tokens`` option is ``True``, returns a tuple, the + first element being a :class:`datetime.datetime` object, the second + a tuple containing the fuzzy tokens. + + :raises ParserError: + Raised for invalid or unknown string formats, if the provided + :class:`tzinfo` is not in a valid format, or if an invalid date would + be created. + + :raises OverflowError: + Raised if the parsed date exceeds the largest valid C integer on + your system. + """ + if parserinfo: + return parser(parserinfo).parse(timestr, **kwargs) + else: + return DEFAULTPARSER.parse(timestr, **kwargs) + + +class _tzparser(object): + + class _result(_resultbase): + + __slots__ = ["stdabbr", "stdoffset", "dstabbr", "dstoffset", + "start", "end"] + + class _attr(_resultbase): + __slots__ = ["month", "week", "weekday", + "yday", "jyday", "day", "time"] + + def __repr__(self): + return self._repr("") + + def __init__(self): + _resultbase.__init__(self) + self.start = self._attr() + self.end = self._attr() + + def parse(self, tzstr): + res = self._result() + l = [x for x in re.split(r'([,:.]|[a-zA-Z]+|[0-9]+)',tzstr) if x] + used_idxs = list() + try: + + len_l = len(l) + + i = 0 + while i < len_l: + # BRST+3[BRDT[+2]] + j = i + while j < len_l and not [x for x in l[j] + if x in "0123456789:,-+"]: + j += 1 + if j != i: + if not res.stdabbr: + offattr = "stdoffset" + res.stdabbr = "".join(l[i:j]) + else: + offattr = "dstoffset" + res.dstabbr = "".join(l[i:j]) + + for ii in range(j): + used_idxs.append(ii) + i = j + if (i < len_l and (l[i] in ('+', '-') or l[i][0] in + "0123456789")): + if l[i] in ('+', '-'): + # Yes, that's right. See the TZ variable + # documentation. + signal = (1, -1)[l[i] == '+'] + used_idxs.append(i) + i += 1 + else: + signal = -1 + len_li = len(l[i]) + if len_li == 4: + # -0300 + setattr(res, offattr, (int(l[i][:2]) * 3600 + + int(l[i][2:]) * 60) * signal) + elif i + 1 < len_l and l[i + 1] == ':': + # -03:00 + setattr(res, offattr, + (int(l[i]) * 3600 + + int(l[i + 2]) * 60) * signal) + used_idxs.append(i) + i += 2 + elif len_li <= 2: + # -[0]3 + setattr(res, offattr, + int(l[i][:2]) * 3600 * signal) + else: + return None + used_idxs.append(i) + i += 1 + if res.dstabbr: + break + else: + break + + + if i < len_l: + for j in range(i, len_l): + if l[j] == ';': + l[j] = ',' + + assert l[i] == ',' + + i += 1 + + if i >= len_l: + pass + elif (8 <= l.count(',') <= 9 and + not [y for x in l[i:] if x != ',' + for y in x if y not in "0123456789+-"]): + # GMT0BST,3,0,30,3600,10,0,26,7200[,3600] + for x in (res.start, res.end): + x.month = int(l[i]) + used_idxs.append(i) + i += 2 + if l[i] == '-': + value = int(l[i + 1]) * -1 + used_idxs.append(i) + i += 1 + else: + value = int(l[i]) + used_idxs.append(i) + i += 2 + if value: + x.week = value + x.weekday = (int(l[i]) - 1) % 7 + else: + x.day = int(l[i]) + used_idxs.append(i) + i += 2 + x.time = int(l[i]) + used_idxs.append(i) + i += 2 + if i < len_l: + if l[i] in ('-', '+'): + signal = (-1, 1)[l[i] == "+"] + used_idxs.append(i) + i += 1 + else: + signal = 1 + used_idxs.append(i) + res.dstoffset = (res.stdoffset + int(l[i]) * signal) + + # This was a made-up format that is not in normal use + warn(('Parsed time zone "%s"' % tzstr) + + 'is in a non-standard dateutil-specific format, which ' + + 'is now deprecated; support for parsing this format ' + + 'will be removed in future versions. It is recommended ' + + 'that you switch to a standard format like the GNU ' + + 'TZ variable format.', tz.DeprecatedTzFormatWarning) + elif (l.count(',') == 2 and l[i:].count('/') <= 2 and + not [y for x in l[i:] if x not in (',', '/', 'J', 'M', + '.', '-', ':') + for y in x if y not in "0123456789"]): + for x in (res.start, res.end): + if l[i] == 'J': + # non-leap year day (1 based) + used_idxs.append(i) + i += 1 + x.jyday = int(l[i]) + elif l[i] == 'M': + # month[-.]week[-.]weekday + used_idxs.append(i) + i += 1 + x.month = int(l[i]) + used_idxs.append(i) + i += 1 + assert l[i] in ('-', '.') + used_idxs.append(i) + i += 1 + x.week = int(l[i]) + if x.week == 5: + x.week = -1 + used_idxs.append(i) + i += 1 + assert l[i] in ('-', '.') + used_idxs.append(i) + i += 1 + x.weekday = (int(l[i]) - 1) % 7 + else: + # year day (zero based) + x.yday = int(l[i]) + 1 + + used_idxs.append(i) + i += 1 + + if i < len_l and l[i] == '/': + used_idxs.append(i) + i += 1 + # start time + len_li = len(l[i]) + if len_li == 4: + # -0300 + x.time = (int(l[i][:2]) * 3600 + + int(l[i][2:]) * 60) + elif i + 1 < len_l and l[i + 1] == ':': + # -03:00 + x.time = int(l[i]) * 3600 + int(l[i + 2]) * 60 + used_idxs.append(i) + i += 2 + if i + 1 < len_l and l[i + 1] == ':': + used_idxs.append(i) + i += 2 + x.time += int(l[i]) + elif len_li <= 2: + # -[0]3 + x.time = (int(l[i][:2]) * 3600) + else: + return None + used_idxs.append(i) + i += 1 + + assert i == len_l or l[i] == ',' + + i += 1 + + assert i >= len_l + + except (IndexError, ValueError, AssertionError): + return None + + unused_idxs = set(range(len_l)).difference(used_idxs) + res.any_unused_tokens = not {l[n] for n in unused_idxs}.issubset({",",":"}) + return res + + +DEFAULTTZPARSER = _tzparser() + + +def _parsetz(tzstr): + return DEFAULTTZPARSER.parse(tzstr) + + +class ParserError(ValueError): + """Exception subclass used for any failure to parse a datetime string. + + This is a subclass of :py:exc:`ValueError`, and should be raised any time + earlier versions of ``dateutil`` would have raised ``ValueError``. + + .. versionadded:: 2.8.1 + """ + def __str__(self): + try: + return self.args[0] % self.args[1:] + except (TypeError, IndexError): + return super(ParserError, self).__str__() + + def __repr__(self): + args = ", ".join("'%s'" % arg for arg in self.args) + return "%s(%s)" % (self.__class__.__name__, args) + + +class UnknownTimezoneWarning(RuntimeWarning): + """Raised when the parser finds a timezone it cannot parse into a tzinfo. + + .. versionadded:: 2.7.0 + """ +# vim:ts=4:sw=4:et diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/parser/isoparser.py b/rep_localstack/lib/python3.12/site-packages/dateutil/parser/isoparser.py new file mode 100644 index 000000000..7060087df --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/dateutil/parser/isoparser.py @@ -0,0 +1,416 @@ +# -*- coding: utf-8 -*- +""" +This module offers a parser for ISO-8601 strings + +It is intended to support all valid date, time and datetime formats per the +ISO-8601 specification. + +..versionadded:: 2.7.0 +""" +from datetime import datetime, timedelta, time, date +import calendar +from dateutil import tz + +from functools import wraps + +import re +import six + +__all__ = ["isoparse", "isoparser"] + + +def _takes_ascii(f): + @wraps(f) + def func(self, str_in, *args, **kwargs): + # If it's a stream, read the whole thing + str_in = getattr(str_in, 'read', lambda: str_in)() + + # If it's unicode, turn it into bytes, since ISO-8601 only covers ASCII + if isinstance(str_in, six.text_type): + # ASCII is the same in UTF-8 + try: + str_in = str_in.encode('ascii') + except UnicodeEncodeError as e: + msg = 'ISO-8601 strings should contain only ASCII characters' + six.raise_from(ValueError(msg), e) + + return f(self, str_in, *args, **kwargs) + + return func + + +class isoparser(object): + def __init__(self, sep=None): + """ + :param sep: + A single character that separates date and time portions. If + ``None``, the parser will accept any single character. + For strict ISO-8601 adherence, pass ``'T'``. + """ + if sep is not None: + if (len(sep) != 1 or ord(sep) >= 128 or sep in '0123456789'): + raise ValueError('Separator must be a single, non-numeric ' + + 'ASCII character') + + sep = sep.encode('ascii') + + self._sep = sep + + @_takes_ascii + def isoparse(self, dt_str): + """ + Parse an ISO-8601 datetime string into a :class:`datetime.datetime`. + + An ISO-8601 datetime string consists of a date portion, followed + optionally by a time portion - the date and time portions are separated + by a single character separator, which is ``T`` in the official + standard. Incomplete date formats (such as ``YYYY-MM``) may *not* be + combined with a time portion. + + Supported date formats are: + + Common: + + - ``YYYY`` + - ``YYYY-MM`` + - ``YYYY-MM-DD`` or ``YYYYMMDD`` + + Uncommon: + + - ``YYYY-Www`` or ``YYYYWww`` - ISO week (day defaults to 0) + - ``YYYY-Www-D`` or ``YYYYWwwD`` - ISO week and day + + The ISO week and day numbering follows the same logic as + :func:`datetime.date.isocalendar`. + + Supported time formats are: + + - ``hh`` + - ``hh:mm`` or ``hhmm`` + - ``hh:mm:ss`` or ``hhmmss`` + - ``hh:mm:ss.ssssss`` (Up to 6 sub-second digits) + + Midnight is a special case for `hh`, as the standard supports both + 00:00 and 24:00 as a representation. The decimal separator can be + either a dot or a comma. + + + .. caution:: + + Support for fractional components other than seconds is part of the + ISO-8601 standard, but is not currently implemented in this parser. + + Supported time zone offset formats are: + + - `Z` (UTC) + - `±HH:MM` + - `±HHMM` + - `±HH` + + Offsets will be represented as :class:`dateutil.tz.tzoffset` objects, + with the exception of UTC, which will be represented as + :class:`dateutil.tz.tzutc`. Time zone offsets equivalent to UTC (such + as `+00:00`) will also be represented as :class:`dateutil.tz.tzutc`. + + :param dt_str: + A string or stream containing only an ISO-8601 datetime string + + :return: + Returns a :class:`datetime.datetime` representing the string. + Unspecified components default to their lowest value. + + .. warning:: + + As of version 2.7.0, the strictness of the parser should not be + considered a stable part of the contract. Any valid ISO-8601 string + that parses correctly with the default settings will continue to + parse correctly in future versions, but invalid strings that + currently fail (e.g. ``2017-01-01T00:00+00:00:00``) are not + guaranteed to continue failing in future versions if they encode + a valid date. + + .. versionadded:: 2.7.0 + """ + components, pos = self._parse_isodate(dt_str) + + if len(dt_str) > pos: + if self._sep is None or dt_str[pos:pos + 1] == self._sep: + components += self._parse_isotime(dt_str[pos + 1:]) + else: + raise ValueError('String contains unknown ISO components') + + if len(components) > 3 and components[3] == 24: + components[3] = 0 + return datetime(*components) + timedelta(days=1) + + return datetime(*components) + + @_takes_ascii + def parse_isodate(self, datestr): + """ + Parse the date portion of an ISO string. + + :param datestr: + The string portion of an ISO string, without a separator + + :return: + Returns a :class:`datetime.date` object + """ + components, pos = self._parse_isodate(datestr) + if pos < len(datestr): + raise ValueError('String contains unknown ISO ' + + 'components: {!r}'.format(datestr.decode('ascii'))) + return date(*components) + + @_takes_ascii + def parse_isotime(self, timestr): + """ + Parse the time portion of an ISO string. + + :param timestr: + The time portion of an ISO string, without a separator + + :return: + Returns a :class:`datetime.time` object + """ + components = self._parse_isotime(timestr) + if components[0] == 24: + components[0] = 0 + return time(*components) + + @_takes_ascii + def parse_tzstr(self, tzstr, zero_as_utc=True): + """ + Parse a valid ISO time zone string. + + See :func:`isoparser.isoparse` for details on supported formats. + + :param tzstr: + A string representing an ISO time zone offset + + :param zero_as_utc: + Whether to return :class:`dateutil.tz.tzutc` for zero-offset zones + + :return: + Returns :class:`dateutil.tz.tzoffset` for offsets and + :class:`dateutil.tz.tzutc` for ``Z`` and (if ``zero_as_utc`` is + specified) offsets equivalent to UTC. + """ + return self._parse_tzstr(tzstr, zero_as_utc=zero_as_utc) + + # Constants + _DATE_SEP = b'-' + _TIME_SEP = b':' + _FRACTION_REGEX = re.compile(b'[\\.,]([0-9]+)') + + def _parse_isodate(self, dt_str): + try: + return self._parse_isodate_common(dt_str) + except ValueError: + return self._parse_isodate_uncommon(dt_str) + + def _parse_isodate_common(self, dt_str): + len_str = len(dt_str) + components = [1, 1, 1] + + if len_str < 4: + raise ValueError('ISO string too short') + + # Year + components[0] = int(dt_str[0:4]) + pos = 4 + if pos >= len_str: + return components, pos + + has_sep = dt_str[pos:pos + 1] == self._DATE_SEP + if has_sep: + pos += 1 + + # Month + if len_str - pos < 2: + raise ValueError('Invalid common month') + + components[1] = int(dt_str[pos:pos + 2]) + pos += 2 + + if pos >= len_str: + if has_sep: + return components, pos + else: + raise ValueError('Invalid ISO format') + + if has_sep: + if dt_str[pos:pos + 1] != self._DATE_SEP: + raise ValueError('Invalid separator in ISO string') + pos += 1 + + # Day + if len_str - pos < 2: + raise ValueError('Invalid common day') + components[2] = int(dt_str[pos:pos + 2]) + return components, pos + 2 + + def _parse_isodate_uncommon(self, dt_str): + if len(dt_str) < 4: + raise ValueError('ISO string too short') + + # All ISO formats start with the year + year = int(dt_str[0:4]) + + has_sep = dt_str[4:5] == self._DATE_SEP + + pos = 4 + has_sep # Skip '-' if it's there + if dt_str[pos:pos + 1] == b'W': + # YYYY-?Www-?D? + pos += 1 + weekno = int(dt_str[pos:pos + 2]) + pos += 2 + + dayno = 1 + if len(dt_str) > pos: + if (dt_str[pos:pos + 1] == self._DATE_SEP) != has_sep: + raise ValueError('Inconsistent use of dash separator') + + pos += has_sep + + dayno = int(dt_str[pos:pos + 1]) + pos += 1 + + base_date = self._calculate_weekdate(year, weekno, dayno) + else: + # YYYYDDD or YYYY-DDD + if len(dt_str) - pos < 3: + raise ValueError('Invalid ordinal day') + + ordinal_day = int(dt_str[pos:pos + 3]) + pos += 3 + + if ordinal_day < 1 or ordinal_day > (365 + calendar.isleap(year)): + raise ValueError('Invalid ordinal day' + + ' {} for year {}'.format(ordinal_day, year)) + + base_date = date(year, 1, 1) + timedelta(days=ordinal_day - 1) + + components = [base_date.year, base_date.month, base_date.day] + return components, pos + + def _calculate_weekdate(self, year, week, day): + """ + Calculate the day of corresponding to the ISO year-week-day calendar. + + This function is effectively the inverse of + :func:`datetime.date.isocalendar`. + + :param year: + The year in the ISO calendar + + :param week: + The week in the ISO calendar - range is [1, 53] + + :param day: + The day in the ISO calendar - range is [1 (MON), 7 (SUN)] + + :return: + Returns a :class:`datetime.date` + """ + if not 0 < week < 54: + raise ValueError('Invalid week: {}'.format(week)) + + if not 0 < day < 8: # Range is 1-7 + raise ValueError('Invalid weekday: {}'.format(day)) + + # Get week 1 for the specific year: + jan_4 = date(year, 1, 4) # Week 1 always has January 4th in it + week_1 = jan_4 - timedelta(days=jan_4.isocalendar()[2] - 1) + + # Now add the specific number of weeks and days to get what we want + week_offset = (week - 1) * 7 + (day - 1) + return week_1 + timedelta(days=week_offset) + + def _parse_isotime(self, timestr): + len_str = len(timestr) + components = [0, 0, 0, 0, None] + pos = 0 + comp = -1 + + if len_str < 2: + raise ValueError('ISO time too short') + + has_sep = False + + while pos < len_str and comp < 5: + comp += 1 + + if timestr[pos:pos + 1] in b'-+Zz': + # Detect time zone boundary + components[-1] = self._parse_tzstr(timestr[pos:]) + pos = len_str + break + + if comp == 1 and timestr[pos:pos+1] == self._TIME_SEP: + has_sep = True + pos += 1 + elif comp == 2 and has_sep: + if timestr[pos:pos+1] != self._TIME_SEP: + raise ValueError('Inconsistent use of colon separator') + pos += 1 + + if comp < 3: + # Hour, minute, second + components[comp] = int(timestr[pos:pos + 2]) + pos += 2 + + if comp == 3: + # Fraction of a second + frac = self._FRACTION_REGEX.match(timestr[pos:]) + if not frac: + continue + + us_str = frac.group(1)[:6] # Truncate to microseconds + components[comp] = int(us_str) * 10**(6 - len(us_str)) + pos += len(frac.group()) + + if pos < len_str: + raise ValueError('Unused components in ISO string') + + if components[0] == 24: + # Standard supports 00:00 and 24:00 as representations of midnight + if any(component != 0 for component in components[1:4]): + raise ValueError('Hour may only be 24 at 24:00:00.000') + + return components + + def _parse_tzstr(self, tzstr, zero_as_utc=True): + if tzstr == b'Z' or tzstr == b'z': + return tz.UTC + + if len(tzstr) not in {3, 5, 6}: + raise ValueError('Time zone offset must be 1, 3, 5 or 6 characters') + + if tzstr[0:1] == b'-': + mult = -1 + elif tzstr[0:1] == b'+': + mult = 1 + else: + raise ValueError('Time zone offset requires sign') + + hours = int(tzstr[1:3]) + if len(tzstr) == 3: + minutes = 0 + else: + minutes = int(tzstr[(4 if tzstr[3:4] == self._TIME_SEP else 3):]) + + if zero_as_utc and hours == 0 and minutes == 0: + return tz.UTC + else: + if minutes > 59: + raise ValueError('Invalid minutes in time zone offset') + + if hours > 23: + raise ValueError('Invalid hours in time zone offset') + + return tz.tzoffset(None, mult * (hours * 60 + minutes) * 60) + + +DEFAULT_ISOPARSER = isoparser() +isoparse = DEFAULT_ISOPARSER.isoparse diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/relativedelta.py b/rep_localstack/lib/python3.12/site-packages/dateutil/relativedelta.py new file mode 100644 index 000000000..cd323a549 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/dateutil/relativedelta.py @@ -0,0 +1,599 @@ +# -*- coding: utf-8 -*- +import datetime +import calendar + +import operator +from math import copysign + +from six import integer_types +from warnings import warn + +from ._common import weekday + +MO, TU, WE, TH, FR, SA, SU = weekdays = tuple(weekday(x) for x in range(7)) + +__all__ = ["relativedelta", "MO", "TU", "WE", "TH", "FR", "SA", "SU"] + + +class relativedelta(object): + """ + The relativedelta type is designed to be applied to an existing datetime and + can replace specific components of that datetime, or represents an interval + of time. + + It is based on the specification of the excellent work done by M.-A. Lemburg + in his + `mx.DateTime `_ extension. + However, notice that this type does *NOT* implement the same algorithm as + his work. Do *NOT* expect it to behave like mx.DateTime's counterpart. + + There are two different ways to build a relativedelta instance. The + first one is passing it two date/datetime classes:: + + relativedelta(datetime1, datetime2) + + The second one is passing it any number of the following keyword arguments:: + + relativedelta(arg1=x,arg2=y,arg3=z...) + + year, month, day, hour, minute, second, microsecond: + Absolute information (argument is singular); adding or subtracting a + relativedelta with absolute information does not perform an arithmetic + operation, but rather REPLACES the corresponding value in the + original datetime with the value(s) in relativedelta. + + years, months, weeks, days, hours, minutes, seconds, microseconds: + Relative information, may be negative (argument is plural); adding + or subtracting a relativedelta with relative information performs + the corresponding arithmetic operation on the original datetime value + with the information in the relativedelta. + + weekday: + One of the weekday instances (MO, TU, etc) available in the + relativedelta module. These instances may receive a parameter N, + specifying the Nth weekday, which could be positive or negative + (like MO(+1) or MO(-2)). Not specifying it is the same as specifying + +1. You can also use an integer, where 0=MO. This argument is always + relative e.g. if the calculated date is already Monday, using MO(1) + or MO(-1) won't change the day. To effectively make it absolute, use + it in combination with the day argument (e.g. day=1, MO(1) for first + Monday of the month). + + leapdays: + Will add given days to the date found, if year is a leap + year, and the date found is post 28 of february. + + yearday, nlyearday: + Set the yearday or the non-leap year day (jump leap days). + These are converted to day/month/leapdays information. + + There are relative and absolute forms of the keyword + arguments. The plural is relative, and the singular is + absolute. For each argument in the order below, the absolute form + is applied first (by setting each attribute to that value) and + then the relative form (by adding the value to the attribute). + + The order of attributes considered when this relativedelta is + added to a datetime is: + + 1. Year + 2. Month + 3. Day + 4. Hours + 5. Minutes + 6. Seconds + 7. Microseconds + + Finally, weekday is applied, using the rule described above. + + For example + + >>> from datetime import datetime + >>> from dateutil.relativedelta import relativedelta, MO + >>> dt = datetime(2018, 4, 9, 13, 37, 0) + >>> delta = relativedelta(hours=25, day=1, weekday=MO(1)) + >>> dt + delta + datetime.datetime(2018, 4, 2, 14, 37) + + First, the day is set to 1 (the first of the month), then 25 hours + are added, to get to the 2nd day and 14th hour, finally the + weekday is applied, but since the 2nd is already a Monday there is + no effect. + + """ + + def __init__(self, dt1=None, dt2=None, + years=0, months=0, days=0, leapdays=0, weeks=0, + hours=0, minutes=0, seconds=0, microseconds=0, + year=None, month=None, day=None, weekday=None, + yearday=None, nlyearday=None, + hour=None, minute=None, second=None, microsecond=None): + + if dt1 and dt2: + # datetime is a subclass of date. So both must be date + if not (isinstance(dt1, datetime.date) and + isinstance(dt2, datetime.date)): + raise TypeError("relativedelta only diffs datetime/date") + + # We allow two dates, or two datetimes, so we coerce them to be + # of the same type + if (isinstance(dt1, datetime.datetime) != + isinstance(dt2, datetime.datetime)): + if not isinstance(dt1, datetime.datetime): + dt1 = datetime.datetime.fromordinal(dt1.toordinal()) + elif not isinstance(dt2, datetime.datetime): + dt2 = datetime.datetime.fromordinal(dt2.toordinal()) + + self.years = 0 + self.months = 0 + self.days = 0 + self.leapdays = 0 + self.hours = 0 + self.minutes = 0 + self.seconds = 0 + self.microseconds = 0 + self.year = None + self.month = None + self.day = None + self.weekday = None + self.hour = None + self.minute = None + self.second = None + self.microsecond = None + self._has_time = 0 + + # Get year / month delta between the two + months = (dt1.year - dt2.year) * 12 + (dt1.month - dt2.month) + self._set_months(months) + + # Remove the year/month delta so the timedelta is just well-defined + # time units (seconds, days and microseconds) + dtm = self.__radd__(dt2) + + # If we've overshot our target, make an adjustment + if dt1 < dt2: + compare = operator.gt + increment = 1 + else: + compare = operator.lt + increment = -1 + + while compare(dt1, dtm): + months += increment + self._set_months(months) + dtm = self.__radd__(dt2) + + # Get the timedelta between the "months-adjusted" date and dt1 + delta = dt1 - dtm + self.seconds = delta.seconds + delta.days * 86400 + self.microseconds = delta.microseconds + else: + # Check for non-integer values in integer-only quantities + if any(x is not None and x != int(x) for x in (years, months)): + raise ValueError("Non-integer years and months are " + "ambiguous and not currently supported.") + + # Relative information + self.years = int(years) + self.months = int(months) + self.days = days + weeks * 7 + self.leapdays = leapdays + self.hours = hours + self.minutes = minutes + self.seconds = seconds + self.microseconds = microseconds + + # Absolute information + self.year = year + self.month = month + self.day = day + self.hour = hour + self.minute = minute + self.second = second + self.microsecond = microsecond + + if any(x is not None and int(x) != x + for x in (year, month, day, hour, + minute, second, microsecond)): + # For now we'll deprecate floats - later it'll be an error. + warn("Non-integer value passed as absolute information. " + + "This is not a well-defined condition and will raise " + + "errors in future versions.", DeprecationWarning) + + if isinstance(weekday, integer_types): + self.weekday = weekdays[weekday] + else: + self.weekday = weekday + + yday = 0 + if nlyearday: + yday = nlyearday + elif yearday: + yday = yearday + if yearday > 59: + self.leapdays = -1 + if yday: + ydayidx = [31, 59, 90, 120, 151, 181, 212, + 243, 273, 304, 334, 366] + for idx, ydays in enumerate(ydayidx): + if yday <= ydays: + self.month = idx+1 + if idx == 0: + self.day = yday + else: + self.day = yday-ydayidx[idx-1] + break + else: + raise ValueError("invalid year day (%d)" % yday) + + self._fix() + + def _fix(self): + if abs(self.microseconds) > 999999: + s = _sign(self.microseconds) + div, mod = divmod(self.microseconds * s, 1000000) + self.microseconds = mod * s + self.seconds += div * s + if abs(self.seconds) > 59: + s = _sign(self.seconds) + div, mod = divmod(self.seconds * s, 60) + self.seconds = mod * s + self.minutes += div * s + if abs(self.minutes) > 59: + s = _sign(self.minutes) + div, mod = divmod(self.minutes * s, 60) + self.minutes = mod * s + self.hours += div * s + if abs(self.hours) > 23: + s = _sign(self.hours) + div, mod = divmod(self.hours * s, 24) + self.hours = mod * s + self.days += div * s + if abs(self.months) > 11: + s = _sign(self.months) + div, mod = divmod(self.months * s, 12) + self.months = mod * s + self.years += div * s + if (self.hours or self.minutes or self.seconds or self.microseconds + or self.hour is not None or self.minute is not None or + self.second is not None or self.microsecond is not None): + self._has_time = 1 + else: + self._has_time = 0 + + @property + def weeks(self): + return int(self.days / 7.0) + + @weeks.setter + def weeks(self, value): + self.days = self.days - (self.weeks * 7) + value * 7 + + def _set_months(self, months): + self.months = months + if abs(self.months) > 11: + s = _sign(self.months) + div, mod = divmod(self.months * s, 12) + self.months = mod * s + self.years = div * s + else: + self.years = 0 + + def normalized(self): + """ + Return a version of this object represented entirely using integer + values for the relative attributes. + + >>> relativedelta(days=1.5, hours=2).normalized() + relativedelta(days=+1, hours=+14) + + :return: + Returns a :class:`dateutil.relativedelta.relativedelta` object. + """ + # Cascade remainders down (rounding each to roughly nearest microsecond) + days = int(self.days) + + hours_f = round(self.hours + 24 * (self.days - days), 11) + hours = int(hours_f) + + minutes_f = round(self.minutes + 60 * (hours_f - hours), 10) + minutes = int(minutes_f) + + seconds_f = round(self.seconds + 60 * (minutes_f - minutes), 8) + seconds = int(seconds_f) + + microseconds = round(self.microseconds + 1e6 * (seconds_f - seconds)) + + # Constructor carries overflow back up with call to _fix() + return self.__class__(years=self.years, months=self.months, + days=days, hours=hours, minutes=minutes, + seconds=seconds, microseconds=microseconds, + leapdays=self.leapdays, year=self.year, + month=self.month, day=self.day, + weekday=self.weekday, hour=self.hour, + minute=self.minute, second=self.second, + microsecond=self.microsecond) + + def __add__(self, other): + if isinstance(other, relativedelta): + return self.__class__(years=other.years + self.years, + months=other.months + self.months, + days=other.days + self.days, + hours=other.hours + self.hours, + minutes=other.minutes + self.minutes, + seconds=other.seconds + self.seconds, + microseconds=(other.microseconds + + self.microseconds), + leapdays=other.leapdays or self.leapdays, + year=(other.year if other.year is not None + else self.year), + month=(other.month if other.month is not None + else self.month), + day=(other.day if other.day is not None + else self.day), + weekday=(other.weekday if other.weekday is not None + else self.weekday), + hour=(other.hour if other.hour is not None + else self.hour), + minute=(other.minute if other.minute is not None + else self.minute), + second=(other.second if other.second is not None + else self.second), + microsecond=(other.microsecond if other.microsecond + is not None else + self.microsecond)) + if isinstance(other, datetime.timedelta): + return self.__class__(years=self.years, + months=self.months, + days=self.days + other.days, + hours=self.hours, + minutes=self.minutes, + seconds=self.seconds + other.seconds, + microseconds=self.microseconds + other.microseconds, + leapdays=self.leapdays, + year=self.year, + month=self.month, + day=self.day, + weekday=self.weekday, + hour=self.hour, + minute=self.minute, + second=self.second, + microsecond=self.microsecond) + if not isinstance(other, datetime.date): + return NotImplemented + elif self._has_time and not isinstance(other, datetime.datetime): + other = datetime.datetime.fromordinal(other.toordinal()) + year = (self.year or other.year)+self.years + month = self.month or other.month + if self.months: + assert 1 <= abs(self.months) <= 12 + month += self.months + if month > 12: + year += 1 + month -= 12 + elif month < 1: + year -= 1 + month += 12 + day = min(calendar.monthrange(year, month)[1], + self.day or other.day) + repl = {"year": year, "month": month, "day": day} + for attr in ["hour", "minute", "second", "microsecond"]: + value = getattr(self, attr) + if value is not None: + repl[attr] = value + days = self.days + if self.leapdays and month > 2 and calendar.isleap(year): + days += self.leapdays + ret = (other.replace(**repl) + + datetime.timedelta(days=days, + hours=self.hours, + minutes=self.minutes, + seconds=self.seconds, + microseconds=self.microseconds)) + if self.weekday: + weekday, nth = self.weekday.weekday, self.weekday.n or 1 + jumpdays = (abs(nth) - 1) * 7 + if nth > 0: + jumpdays += (7 - ret.weekday() + weekday) % 7 + else: + jumpdays += (ret.weekday() - weekday) % 7 + jumpdays *= -1 + ret += datetime.timedelta(days=jumpdays) + return ret + + def __radd__(self, other): + return self.__add__(other) + + def __rsub__(self, other): + return self.__neg__().__radd__(other) + + def __sub__(self, other): + if not isinstance(other, relativedelta): + return NotImplemented # In case the other object defines __rsub__ + return self.__class__(years=self.years - other.years, + months=self.months - other.months, + days=self.days - other.days, + hours=self.hours - other.hours, + minutes=self.minutes - other.minutes, + seconds=self.seconds - other.seconds, + microseconds=self.microseconds - other.microseconds, + leapdays=self.leapdays or other.leapdays, + year=(self.year if self.year is not None + else other.year), + month=(self.month if self.month is not None else + other.month), + day=(self.day if self.day is not None else + other.day), + weekday=(self.weekday if self.weekday is not None else + other.weekday), + hour=(self.hour if self.hour is not None else + other.hour), + minute=(self.minute if self.minute is not None else + other.minute), + second=(self.second if self.second is not None else + other.second), + microsecond=(self.microsecond if self.microsecond + is not None else + other.microsecond)) + + def __abs__(self): + return self.__class__(years=abs(self.years), + months=abs(self.months), + days=abs(self.days), + hours=abs(self.hours), + minutes=abs(self.minutes), + seconds=abs(self.seconds), + microseconds=abs(self.microseconds), + leapdays=self.leapdays, + year=self.year, + month=self.month, + day=self.day, + weekday=self.weekday, + hour=self.hour, + minute=self.minute, + second=self.second, + microsecond=self.microsecond) + + def __neg__(self): + return self.__class__(years=-self.years, + months=-self.months, + days=-self.days, + hours=-self.hours, + minutes=-self.minutes, + seconds=-self.seconds, + microseconds=-self.microseconds, + leapdays=self.leapdays, + year=self.year, + month=self.month, + day=self.day, + weekday=self.weekday, + hour=self.hour, + minute=self.minute, + second=self.second, + microsecond=self.microsecond) + + def __bool__(self): + return not (not self.years and + not self.months and + not self.days and + not self.hours and + not self.minutes and + not self.seconds and + not self.microseconds and + not self.leapdays and + self.year is None and + self.month is None and + self.day is None and + self.weekday is None and + self.hour is None and + self.minute is None and + self.second is None and + self.microsecond is None) + # Compatibility with Python 2.x + __nonzero__ = __bool__ + + def __mul__(self, other): + try: + f = float(other) + except TypeError: + return NotImplemented + + return self.__class__(years=int(self.years * f), + months=int(self.months * f), + days=int(self.days * f), + hours=int(self.hours * f), + minutes=int(self.minutes * f), + seconds=int(self.seconds * f), + microseconds=int(self.microseconds * f), + leapdays=self.leapdays, + year=self.year, + month=self.month, + day=self.day, + weekday=self.weekday, + hour=self.hour, + minute=self.minute, + second=self.second, + microsecond=self.microsecond) + + __rmul__ = __mul__ + + def __eq__(self, other): + if not isinstance(other, relativedelta): + return NotImplemented + if self.weekday or other.weekday: + if not self.weekday or not other.weekday: + return False + if self.weekday.weekday != other.weekday.weekday: + return False + n1, n2 = self.weekday.n, other.weekday.n + if n1 != n2 and not ((not n1 or n1 == 1) and (not n2 or n2 == 1)): + return False + return (self.years == other.years and + self.months == other.months and + self.days == other.days and + self.hours == other.hours and + self.minutes == other.minutes and + self.seconds == other.seconds and + self.microseconds == other.microseconds and + self.leapdays == other.leapdays and + self.year == other.year and + self.month == other.month and + self.day == other.day and + self.hour == other.hour and + self.minute == other.minute and + self.second == other.second and + self.microsecond == other.microsecond) + + def __hash__(self): + return hash(( + self.weekday, + self.years, + self.months, + self.days, + self.hours, + self.minutes, + self.seconds, + self.microseconds, + self.leapdays, + self.year, + self.month, + self.day, + self.hour, + self.minute, + self.second, + self.microsecond, + )) + + def __ne__(self, other): + return not self.__eq__(other) + + def __div__(self, other): + try: + reciprocal = 1 / float(other) + except TypeError: + return NotImplemented + + return self.__mul__(reciprocal) + + __truediv__ = __div__ + + def __repr__(self): + l = [] + for attr in ["years", "months", "days", "leapdays", + "hours", "minutes", "seconds", "microseconds"]: + value = getattr(self, attr) + if value: + l.append("{attr}={value:+g}".format(attr=attr, value=value)) + for attr in ["year", "month", "day", "weekday", + "hour", "minute", "second", "microsecond"]: + value = getattr(self, attr) + if value is not None: + l.append("{attr}={value}".format(attr=attr, value=repr(value))) + return "{classname}({attrs})".format(classname=self.__class__.__name__, + attrs=", ".join(l)) + + +def _sign(x): + return int(copysign(1, x)) + +# vim:ts=4:sw=4:et diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/rrule.py b/rep_localstack/lib/python3.12/site-packages/dateutil/rrule.py new file mode 100644 index 000000000..571a0d2bc --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/dateutil/rrule.py @@ -0,0 +1,1737 @@ +# -*- coding: utf-8 -*- +""" +The rrule module offers a small, complete, and very fast, implementation of +the recurrence rules documented in the +`iCalendar RFC `_, +including support for caching of results. +""" +import calendar +import datetime +import heapq +import itertools +import re +import sys +from functools import wraps +# For warning about deprecation of until and count +from warnings import warn + +from six import advance_iterator, integer_types + +from six.moves import _thread, range + +from ._common import weekday as weekdaybase + +try: + from math import gcd +except ImportError: + from fractions import gcd + +__all__ = ["rrule", "rruleset", "rrulestr", + "YEARLY", "MONTHLY", "WEEKLY", "DAILY", + "HOURLY", "MINUTELY", "SECONDLY", + "MO", "TU", "WE", "TH", "FR", "SA", "SU"] + +# Every mask is 7 days longer to handle cross-year weekly periods. +M366MASK = tuple([1]*31+[2]*29+[3]*31+[4]*30+[5]*31+[6]*30 + + [7]*31+[8]*31+[9]*30+[10]*31+[11]*30+[12]*31+[1]*7) +M365MASK = list(M366MASK) +M29, M30, M31 = list(range(1, 30)), list(range(1, 31)), list(range(1, 32)) +MDAY366MASK = tuple(M31+M29+M31+M30+M31+M30+M31+M31+M30+M31+M30+M31+M31[:7]) +MDAY365MASK = list(MDAY366MASK) +M29, M30, M31 = list(range(-29, 0)), list(range(-30, 0)), list(range(-31, 0)) +NMDAY366MASK = tuple(M31+M29+M31+M30+M31+M30+M31+M31+M30+M31+M30+M31+M31[:7]) +NMDAY365MASK = list(NMDAY366MASK) +M366RANGE = (0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366) +M365RANGE = (0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365) +WDAYMASK = [0, 1, 2, 3, 4, 5, 6]*55 +del M29, M30, M31, M365MASK[59], MDAY365MASK[59], NMDAY365MASK[31] +MDAY365MASK = tuple(MDAY365MASK) +M365MASK = tuple(M365MASK) + +FREQNAMES = ['YEARLY', 'MONTHLY', 'WEEKLY', 'DAILY', 'HOURLY', 'MINUTELY', 'SECONDLY'] + +(YEARLY, + MONTHLY, + WEEKLY, + DAILY, + HOURLY, + MINUTELY, + SECONDLY) = list(range(7)) + +# Imported on demand. +easter = None +parser = None + + +class weekday(weekdaybase): + """ + This version of weekday does not allow n = 0. + """ + def __init__(self, wkday, n=None): + if n == 0: + raise ValueError("Can't create weekday with n==0") + + super(weekday, self).__init__(wkday, n) + + +MO, TU, WE, TH, FR, SA, SU = weekdays = tuple(weekday(x) for x in range(7)) + + +def _invalidates_cache(f): + """ + Decorator for rruleset methods which may invalidate the + cached length. + """ + @wraps(f) + def inner_func(self, *args, **kwargs): + rv = f(self, *args, **kwargs) + self._invalidate_cache() + return rv + + return inner_func + + +class rrulebase(object): + def __init__(self, cache=False): + if cache: + self._cache = [] + self._cache_lock = _thread.allocate_lock() + self._invalidate_cache() + else: + self._cache = None + self._cache_complete = False + self._len = None + + def __iter__(self): + if self._cache_complete: + return iter(self._cache) + elif self._cache is None: + return self._iter() + else: + return self._iter_cached() + + def _invalidate_cache(self): + if self._cache is not None: + self._cache = [] + self._cache_complete = False + self._cache_gen = self._iter() + + if self._cache_lock.locked(): + self._cache_lock.release() + + self._len = None + + def _iter_cached(self): + i = 0 + gen = self._cache_gen + cache = self._cache + acquire = self._cache_lock.acquire + release = self._cache_lock.release + while gen: + if i == len(cache): + acquire() + if self._cache_complete: + break + try: + for j in range(10): + cache.append(advance_iterator(gen)) + except StopIteration: + self._cache_gen = gen = None + self._cache_complete = True + break + release() + yield cache[i] + i += 1 + while i < self._len: + yield cache[i] + i += 1 + + def __getitem__(self, item): + if self._cache_complete: + return self._cache[item] + elif isinstance(item, slice): + if item.step and item.step < 0: + return list(iter(self))[item] + else: + return list(itertools.islice(self, + item.start or 0, + item.stop or sys.maxsize, + item.step or 1)) + elif item >= 0: + gen = iter(self) + try: + for i in range(item+1): + res = advance_iterator(gen) + except StopIteration: + raise IndexError + return res + else: + return list(iter(self))[item] + + def __contains__(self, item): + if self._cache_complete: + return item in self._cache + else: + for i in self: + if i == item: + return True + elif i > item: + return False + return False + + # __len__() introduces a large performance penalty. + def count(self): + """ Returns the number of recurrences in this set. It will have go + through the whole recurrence, if this hasn't been done before. """ + if self._len is None: + for x in self: + pass + return self._len + + def before(self, dt, inc=False): + """ Returns the last recurrence before the given datetime instance. The + inc keyword defines what happens if dt is an occurrence. With + inc=True, if dt itself is an occurrence, it will be returned. """ + if self._cache_complete: + gen = self._cache + else: + gen = self + last = None + if inc: + for i in gen: + if i > dt: + break + last = i + else: + for i in gen: + if i >= dt: + break + last = i + return last + + def after(self, dt, inc=False): + """ Returns the first recurrence after the given datetime instance. The + inc keyword defines what happens if dt is an occurrence. With + inc=True, if dt itself is an occurrence, it will be returned. """ + if self._cache_complete: + gen = self._cache + else: + gen = self + if inc: + for i in gen: + if i >= dt: + return i + else: + for i in gen: + if i > dt: + return i + return None + + def xafter(self, dt, count=None, inc=False): + """ + Generator which yields up to `count` recurrences after the given + datetime instance, equivalent to `after`. + + :param dt: + The datetime at which to start generating recurrences. + + :param count: + The maximum number of recurrences to generate. If `None` (default), + dates are generated until the recurrence rule is exhausted. + + :param inc: + If `dt` is an instance of the rule and `inc` is `True`, it is + included in the output. + + :yields: Yields a sequence of `datetime` objects. + """ + + if self._cache_complete: + gen = self._cache + else: + gen = self + + # Select the comparison function + if inc: + comp = lambda dc, dtc: dc >= dtc + else: + comp = lambda dc, dtc: dc > dtc + + # Generate dates + n = 0 + for d in gen: + if comp(d, dt): + if count is not None: + n += 1 + if n > count: + break + + yield d + + def between(self, after, before, inc=False, count=1): + """ Returns all the occurrences of the rrule between after and before. + The inc keyword defines what happens if after and/or before are + themselves occurrences. With inc=True, they will be included in the + list, if they are found in the recurrence set. """ + if self._cache_complete: + gen = self._cache + else: + gen = self + started = False + l = [] + if inc: + for i in gen: + if i > before: + break + elif not started: + if i >= after: + started = True + l.append(i) + else: + l.append(i) + else: + for i in gen: + if i >= before: + break + elif not started: + if i > after: + started = True + l.append(i) + else: + l.append(i) + return l + + +class rrule(rrulebase): + """ + That's the base of the rrule operation. It accepts all the keywords + defined in the RFC as its constructor parameters (except byday, + which was renamed to byweekday) and more. The constructor prototype is:: + + rrule(freq) + + Where freq must be one of YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY, + or SECONDLY. + + .. note:: + Per RFC section 3.3.10, recurrence instances falling on invalid dates + and times are ignored rather than coerced: + + Recurrence rules may generate recurrence instances with an invalid + date (e.g., February 30) or nonexistent local time (e.g., 1:30 AM + on a day where the local time is moved forward by an hour at 1:00 + AM). Such recurrence instances MUST be ignored and MUST NOT be + counted as part of the recurrence set. + + This can lead to possibly surprising behavior when, for example, the + start date occurs at the end of the month: + + >>> from dateutil.rrule import rrule, MONTHLY + >>> from datetime import datetime + >>> start_date = datetime(2014, 12, 31) + >>> list(rrule(freq=MONTHLY, count=4, dtstart=start_date)) + ... # doctest: +NORMALIZE_WHITESPACE + [datetime.datetime(2014, 12, 31, 0, 0), + datetime.datetime(2015, 1, 31, 0, 0), + datetime.datetime(2015, 3, 31, 0, 0), + datetime.datetime(2015, 5, 31, 0, 0)] + + Additionally, it supports the following keyword arguments: + + :param dtstart: + The recurrence start. Besides being the base for the recurrence, + missing parameters in the final recurrence instances will also be + extracted from this date. If not given, datetime.now() will be used + instead. + :param interval: + The interval between each freq iteration. For example, when using + YEARLY, an interval of 2 means once every two years, but with HOURLY, + it means once every two hours. The default interval is 1. + :param wkst: + The week start day. Must be one of the MO, TU, WE constants, or an + integer, specifying the first day of the week. This will affect + recurrences based on weekly periods. The default week start is got + from calendar.firstweekday(), and may be modified by + calendar.setfirstweekday(). + :param count: + If given, this determines how many occurrences will be generated. + + .. note:: + As of version 2.5.0, the use of the keyword ``until`` in conjunction + with ``count`` is deprecated, to make sure ``dateutil`` is fully + compliant with `RFC-5545 Sec. 3.3.10 `_. Therefore, ``until`` and ``count`` + **must not** occur in the same call to ``rrule``. + :param until: + If given, this must be a datetime instance specifying the upper-bound + limit of the recurrence. The last recurrence in the rule is the greatest + datetime that is less than or equal to the value specified in the + ``until`` parameter. + + .. note:: + As of version 2.5.0, the use of the keyword ``until`` in conjunction + with ``count`` is deprecated, to make sure ``dateutil`` is fully + compliant with `RFC-5545 Sec. 3.3.10 `_. Therefore, ``until`` and ``count`` + **must not** occur in the same call to ``rrule``. + :param bysetpos: + If given, it must be either an integer, or a sequence of integers, + positive or negative. Each given integer will specify an occurrence + number, corresponding to the nth occurrence of the rule inside the + frequency period. For example, a bysetpos of -1 if combined with a + MONTHLY frequency, and a byweekday of (MO, TU, WE, TH, FR), will + result in the last work day of every month. + :param bymonth: + If given, it must be either an integer, or a sequence of integers, + meaning the months to apply the recurrence to. + :param bymonthday: + If given, it must be either an integer, or a sequence of integers, + meaning the month days to apply the recurrence to. + :param byyearday: + If given, it must be either an integer, or a sequence of integers, + meaning the year days to apply the recurrence to. + :param byeaster: + If given, it must be either an integer, or a sequence of integers, + positive or negative. Each integer will define an offset from the + Easter Sunday. Passing the offset 0 to byeaster will yield the Easter + Sunday itself. This is an extension to the RFC specification. + :param byweekno: + If given, it must be either an integer, or a sequence of integers, + meaning the week numbers to apply the recurrence to. Week numbers + have the meaning described in ISO8601, that is, the first week of + the year is that containing at least four days of the new year. + :param byweekday: + If given, it must be either an integer (0 == MO), a sequence of + integers, one of the weekday constants (MO, TU, etc), or a sequence + of these constants. When given, these variables will define the + weekdays where the recurrence will be applied. It's also possible to + use an argument n for the weekday instances, which will mean the nth + occurrence of this weekday in the period. For example, with MONTHLY, + or with YEARLY and BYMONTH, using FR(+1) in byweekday will specify the + first friday of the month where the recurrence happens. Notice that in + the RFC documentation, this is specified as BYDAY, but was renamed to + avoid the ambiguity of that keyword. + :param byhour: + If given, it must be either an integer, or a sequence of integers, + meaning the hours to apply the recurrence to. + :param byminute: + If given, it must be either an integer, or a sequence of integers, + meaning the minutes to apply the recurrence to. + :param bysecond: + If given, it must be either an integer, or a sequence of integers, + meaning the seconds to apply the recurrence to. + :param cache: + If given, it must be a boolean value specifying to enable or disable + caching of results. If you will use the same rrule instance multiple + times, enabling caching will improve the performance considerably. + """ + def __init__(self, freq, dtstart=None, + interval=1, wkst=None, count=None, until=None, bysetpos=None, + bymonth=None, bymonthday=None, byyearday=None, byeaster=None, + byweekno=None, byweekday=None, + byhour=None, byminute=None, bysecond=None, + cache=False): + super(rrule, self).__init__(cache) + global easter + if not dtstart: + if until and until.tzinfo: + dtstart = datetime.datetime.now(tz=until.tzinfo).replace(microsecond=0) + else: + dtstart = datetime.datetime.now().replace(microsecond=0) + elif not isinstance(dtstart, datetime.datetime): + dtstart = datetime.datetime.fromordinal(dtstart.toordinal()) + else: + dtstart = dtstart.replace(microsecond=0) + self._dtstart = dtstart + self._tzinfo = dtstart.tzinfo + self._freq = freq + self._interval = interval + self._count = count + + # Cache the original byxxx rules, if they are provided, as the _byxxx + # attributes do not necessarily map to the inputs, and this can be + # a problem in generating the strings. Only store things if they've + # been supplied (the string retrieval will just use .get()) + self._original_rule = {} + + if until and not isinstance(until, datetime.datetime): + until = datetime.datetime.fromordinal(until.toordinal()) + self._until = until + + if self._dtstart and self._until: + if (self._dtstart.tzinfo is not None) != (self._until.tzinfo is not None): + # According to RFC5545 Section 3.3.10: + # https://tools.ietf.org/html/rfc5545#section-3.3.10 + # + # > If the "DTSTART" property is specified as a date with UTC + # > time or a date with local time and time zone reference, + # > then the UNTIL rule part MUST be specified as a date with + # > UTC time. + raise ValueError( + 'RRULE UNTIL values must be specified in UTC when DTSTART ' + 'is timezone-aware' + ) + + if count is not None and until: + warn("Using both 'count' and 'until' is inconsistent with RFC 5545" + " and has been deprecated in dateutil. Future versions will " + "raise an error.", DeprecationWarning) + + if wkst is None: + self._wkst = calendar.firstweekday() + elif isinstance(wkst, integer_types): + self._wkst = wkst + else: + self._wkst = wkst.weekday + + if bysetpos is None: + self._bysetpos = None + elif isinstance(bysetpos, integer_types): + if bysetpos == 0 or not (-366 <= bysetpos <= 366): + raise ValueError("bysetpos must be between 1 and 366, " + "or between -366 and -1") + self._bysetpos = (bysetpos,) + else: + self._bysetpos = tuple(bysetpos) + for pos in self._bysetpos: + if pos == 0 or not (-366 <= pos <= 366): + raise ValueError("bysetpos must be between 1 and 366, " + "or between -366 and -1") + + if self._bysetpos: + self._original_rule['bysetpos'] = self._bysetpos + + if (byweekno is None and byyearday is None and bymonthday is None and + byweekday is None and byeaster is None): + if freq == YEARLY: + if bymonth is None: + bymonth = dtstart.month + self._original_rule['bymonth'] = None + bymonthday = dtstart.day + self._original_rule['bymonthday'] = None + elif freq == MONTHLY: + bymonthday = dtstart.day + self._original_rule['bymonthday'] = None + elif freq == WEEKLY: + byweekday = dtstart.weekday() + self._original_rule['byweekday'] = None + + # bymonth + if bymonth is None: + self._bymonth = None + else: + if isinstance(bymonth, integer_types): + bymonth = (bymonth,) + + self._bymonth = tuple(sorted(set(bymonth))) + + if 'bymonth' not in self._original_rule: + self._original_rule['bymonth'] = self._bymonth + + # byyearday + if byyearday is None: + self._byyearday = None + else: + if isinstance(byyearday, integer_types): + byyearday = (byyearday,) + + self._byyearday = tuple(sorted(set(byyearday))) + self._original_rule['byyearday'] = self._byyearday + + # byeaster + if byeaster is not None: + if not easter: + from dateutil import easter + if isinstance(byeaster, integer_types): + self._byeaster = (byeaster,) + else: + self._byeaster = tuple(sorted(byeaster)) + + self._original_rule['byeaster'] = self._byeaster + else: + self._byeaster = None + + # bymonthday + if bymonthday is None: + self._bymonthday = () + self._bynmonthday = () + else: + if isinstance(bymonthday, integer_types): + bymonthday = (bymonthday,) + + bymonthday = set(bymonthday) # Ensure it's unique + + self._bymonthday = tuple(sorted(x for x in bymonthday if x > 0)) + self._bynmonthday = tuple(sorted(x for x in bymonthday if x < 0)) + + # Storing positive numbers first, then negative numbers + if 'bymonthday' not in self._original_rule: + self._original_rule['bymonthday'] = tuple( + itertools.chain(self._bymonthday, self._bynmonthday)) + + # byweekno + if byweekno is None: + self._byweekno = None + else: + if isinstance(byweekno, integer_types): + byweekno = (byweekno,) + + self._byweekno = tuple(sorted(set(byweekno))) + + self._original_rule['byweekno'] = self._byweekno + + # byweekday / bynweekday + if byweekday is None: + self._byweekday = None + self._bynweekday = None + else: + # If it's one of the valid non-sequence types, convert to a + # single-element sequence before the iterator that builds the + # byweekday set. + if isinstance(byweekday, integer_types) or hasattr(byweekday, "n"): + byweekday = (byweekday,) + + self._byweekday = set() + self._bynweekday = set() + for wday in byweekday: + if isinstance(wday, integer_types): + self._byweekday.add(wday) + elif not wday.n or freq > MONTHLY: + self._byweekday.add(wday.weekday) + else: + self._bynweekday.add((wday.weekday, wday.n)) + + if not self._byweekday: + self._byweekday = None + elif not self._bynweekday: + self._bynweekday = None + + if self._byweekday is not None: + self._byweekday = tuple(sorted(self._byweekday)) + orig_byweekday = [weekday(x) for x in self._byweekday] + else: + orig_byweekday = () + + if self._bynweekday is not None: + self._bynweekday = tuple(sorted(self._bynweekday)) + orig_bynweekday = [weekday(*x) for x in self._bynweekday] + else: + orig_bynweekday = () + + if 'byweekday' not in self._original_rule: + self._original_rule['byweekday'] = tuple(itertools.chain( + orig_byweekday, orig_bynweekday)) + + # byhour + if byhour is None: + if freq < HOURLY: + self._byhour = {dtstart.hour} + else: + self._byhour = None + else: + if isinstance(byhour, integer_types): + byhour = (byhour,) + + if freq == HOURLY: + self._byhour = self.__construct_byset(start=dtstart.hour, + byxxx=byhour, + base=24) + else: + self._byhour = set(byhour) + + self._byhour = tuple(sorted(self._byhour)) + self._original_rule['byhour'] = self._byhour + + # byminute + if byminute is None: + if freq < MINUTELY: + self._byminute = {dtstart.minute} + else: + self._byminute = None + else: + if isinstance(byminute, integer_types): + byminute = (byminute,) + + if freq == MINUTELY: + self._byminute = self.__construct_byset(start=dtstart.minute, + byxxx=byminute, + base=60) + else: + self._byminute = set(byminute) + + self._byminute = tuple(sorted(self._byminute)) + self._original_rule['byminute'] = self._byminute + + # bysecond + if bysecond is None: + if freq < SECONDLY: + self._bysecond = ((dtstart.second,)) + else: + self._bysecond = None + else: + if isinstance(bysecond, integer_types): + bysecond = (bysecond,) + + self._bysecond = set(bysecond) + + if freq == SECONDLY: + self._bysecond = self.__construct_byset(start=dtstart.second, + byxxx=bysecond, + base=60) + else: + self._bysecond = set(bysecond) + + self._bysecond = tuple(sorted(self._bysecond)) + self._original_rule['bysecond'] = self._bysecond + + if self._freq >= HOURLY: + self._timeset = None + else: + self._timeset = [] + for hour in self._byhour: + for minute in self._byminute: + for second in self._bysecond: + self._timeset.append( + datetime.time(hour, minute, second, + tzinfo=self._tzinfo)) + self._timeset.sort() + self._timeset = tuple(self._timeset) + + def __str__(self): + """ + Output a string that would generate this RRULE if passed to rrulestr. + This is mostly compatible with RFC5545, except for the + dateutil-specific extension BYEASTER. + """ + + output = [] + h, m, s = [None] * 3 + if self._dtstart: + output.append(self._dtstart.strftime('DTSTART:%Y%m%dT%H%M%S')) + h, m, s = self._dtstart.timetuple()[3:6] + + parts = ['FREQ=' + FREQNAMES[self._freq]] + if self._interval != 1: + parts.append('INTERVAL=' + str(self._interval)) + + if self._wkst: + parts.append('WKST=' + repr(weekday(self._wkst))[0:2]) + + if self._count is not None: + parts.append('COUNT=' + str(self._count)) + + if self._until: + parts.append(self._until.strftime('UNTIL=%Y%m%dT%H%M%S')) + + if self._original_rule.get('byweekday') is not None: + # The str() method on weekday objects doesn't generate + # RFC5545-compliant strings, so we should modify that. + original_rule = dict(self._original_rule) + wday_strings = [] + for wday in original_rule['byweekday']: + if wday.n: + wday_strings.append('{n:+d}{wday}'.format( + n=wday.n, + wday=repr(wday)[0:2])) + else: + wday_strings.append(repr(wday)) + + original_rule['byweekday'] = wday_strings + else: + original_rule = self._original_rule + + partfmt = '{name}={vals}' + for name, key in [('BYSETPOS', 'bysetpos'), + ('BYMONTH', 'bymonth'), + ('BYMONTHDAY', 'bymonthday'), + ('BYYEARDAY', 'byyearday'), + ('BYWEEKNO', 'byweekno'), + ('BYDAY', 'byweekday'), + ('BYHOUR', 'byhour'), + ('BYMINUTE', 'byminute'), + ('BYSECOND', 'bysecond'), + ('BYEASTER', 'byeaster')]: + value = original_rule.get(key) + if value: + parts.append(partfmt.format(name=name, vals=(','.join(str(v) + for v in value)))) + + output.append('RRULE:' + ';'.join(parts)) + return '\n'.join(output) + + def replace(self, **kwargs): + """Return new rrule with same attributes except for those attributes given new + values by whichever keyword arguments are specified.""" + new_kwargs = {"interval": self._interval, + "count": self._count, + "dtstart": self._dtstart, + "freq": self._freq, + "until": self._until, + "wkst": self._wkst, + "cache": False if self._cache is None else True } + new_kwargs.update(self._original_rule) + new_kwargs.update(kwargs) + return rrule(**new_kwargs) + + def _iter(self): + year, month, day, hour, minute, second, weekday, yearday, _ = \ + self._dtstart.timetuple() + + # Some local variables to speed things up a bit + freq = self._freq + interval = self._interval + wkst = self._wkst + until = self._until + bymonth = self._bymonth + byweekno = self._byweekno + byyearday = self._byyearday + byweekday = self._byweekday + byeaster = self._byeaster + bymonthday = self._bymonthday + bynmonthday = self._bynmonthday + bysetpos = self._bysetpos + byhour = self._byhour + byminute = self._byminute + bysecond = self._bysecond + + ii = _iterinfo(self) + ii.rebuild(year, month) + + getdayset = {YEARLY: ii.ydayset, + MONTHLY: ii.mdayset, + WEEKLY: ii.wdayset, + DAILY: ii.ddayset, + HOURLY: ii.ddayset, + MINUTELY: ii.ddayset, + SECONDLY: ii.ddayset}[freq] + + if freq < HOURLY: + timeset = self._timeset + else: + gettimeset = {HOURLY: ii.htimeset, + MINUTELY: ii.mtimeset, + SECONDLY: ii.stimeset}[freq] + if ((freq >= HOURLY and + self._byhour and hour not in self._byhour) or + (freq >= MINUTELY and + self._byminute and minute not in self._byminute) or + (freq >= SECONDLY and + self._bysecond and second not in self._bysecond)): + timeset = () + else: + timeset = gettimeset(hour, minute, second) + + total = 0 + count = self._count + while True: + # Get dayset with the right frequency + dayset, start, end = getdayset(year, month, day) + + # Do the "hard" work ;-) + filtered = False + for i in dayset[start:end]: + if ((bymonth and ii.mmask[i] not in bymonth) or + (byweekno and not ii.wnomask[i]) or + (byweekday and ii.wdaymask[i] not in byweekday) or + (ii.nwdaymask and not ii.nwdaymask[i]) or + (byeaster and not ii.eastermask[i]) or + ((bymonthday or bynmonthday) and + ii.mdaymask[i] not in bymonthday and + ii.nmdaymask[i] not in bynmonthday) or + (byyearday and + ((i < ii.yearlen and i+1 not in byyearday and + -ii.yearlen+i not in byyearday) or + (i >= ii.yearlen and i+1-ii.yearlen not in byyearday and + -ii.nextyearlen+i-ii.yearlen not in byyearday)))): + dayset[i] = None + filtered = True + + # Output results + if bysetpos and timeset: + poslist = [] + for pos in bysetpos: + if pos < 0: + daypos, timepos = divmod(pos, len(timeset)) + else: + daypos, timepos = divmod(pos-1, len(timeset)) + try: + i = [x for x in dayset[start:end] + if x is not None][daypos] + time = timeset[timepos] + except IndexError: + pass + else: + date = datetime.date.fromordinal(ii.yearordinal+i) + res = datetime.datetime.combine(date, time) + if res not in poslist: + poslist.append(res) + poslist.sort() + for res in poslist: + if until and res > until: + self._len = total + return + elif res >= self._dtstart: + if count is not None: + count -= 1 + if count < 0: + self._len = total + return + total += 1 + yield res + else: + for i in dayset[start:end]: + if i is not None: + date = datetime.date.fromordinal(ii.yearordinal + i) + for time in timeset: + res = datetime.datetime.combine(date, time) + if until and res > until: + self._len = total + return + elif res >= self._dtstart: + if count is not None: + count -= 1 + if count < 0: + self._len = total + return + + total += 1 + yield res + + # Handle frequency and interval + fixday = False + if freq == YEARLY: + year += interval + if year > datetime.MAXYEAR: + self._len = total + return + ii.rebuild(year, month) + elif freq == MONTHLY: + month += interval + if month > 12: + div, mod = divmod(month, 12) + month = mod + year += div + if month == 0: + month = 12 + year -= 1 + if year > datetime.MAXYEAR: + self._len = total + return + ii.rebuild(year, month) + elif freq == WEEKLY: + if wkst > weekday: + day += -(weekday+1+(6-wkst))+self._interval*7 + else: + day += -(weekday-wkst)+self._interval*7 + weekday = wkst + fixday = True + elif freq == DAILY: + day += interval + fixday = True + elif freq == HOURLY: + if filtered: + # Jump to one iteration before next day + hour += ((23-hour)//interval)*interval + + if byhour: + ndays, hour = self.__mod_distance(value=hour, + byxxx=self._byhour, + base=24) + else: + ndays, hour = divmod(hour+interval, 24) + + if ndays: + day += ndays + fixday = True + + timeset = gettimeset(hour, minute, second) + elif freq == MINUTELY: + if filtered: + # Jump to one iteration before next day + minute += ((1439-(hour*60+minute))//interval)*interval + + valid = False + rep_rate = (24*60) + for j in range(rep_rate // gcd(interval, rep_rate)): + if byminute: + nhours, minute = \ + self.__mod_distance(value=minute, + byxxx=self._byminute, + base=60) + else: + nhours, minute = divmod(minute+interval, 60) + + div, hour = divmod(hour+nhours, 24) + if div: + day += div + fixday = True + filtered = False + + if not byhour or hour in byhour: + valid = True + break + + if not valid: + raise ValueError('Invalid combination of interval and ' + + 'byhour resulting in empty rule.') + + timeset = gettimeset(hour, minute, second) + elif freq == SECONDLY: + if filtered: + # Jump to one iteration before next day + second += (((86399 - (hour * 3600 + minute * 60 + second)) + // interval) * interval) + + rep_rate = (24 * 3600) + valid = False + for j in range(0, rep_rate // gcd(interval, rep_rate)): + if bysecond: + nminutes, second = \ + self.__mod_distance(value=second, + byxxx=self._bysecond, + base=60) + else: + nminutes, second = divmod(second+interval, 60) + + div, minute = divmod(minute+nminutes, 60) + if div: + hour += div + div, hour = divmod(hour, 24) + if div: + day += div + fixday = True + + if ((not byhour or hour in byhour) and + (not byminute or minute in byminute) and + (not bysecond or second in bysecond)): + valid = True + break + + if not valid: + raise ValueError('Invalid combination of interval, ' + + 'byhour and byminute resulting in empty' + + ' rule.') + + timeset = gettimeset(hour, minute, second) + + if fixday and day > 28: + daysinmonth = calendar.monthrange(year, month)[1] + if day > daysinmonth: + while day > daysinmonth: + day -= daysinmonth + month += 1 + if month == 13: + month = 1 + year += 1 + if year > datetime.MAXYEAR: + self._len = total + return + daysinmonth = calendar.monthrange(year, month)[1] + ii.rebuild(year, month) + + def __construct_byset(self, start, byxxx, base): + """ + If a `BYXXX` sequence is passed to the constructor at the same level as + `FREQ` (e.g. `FREQ=HOURLY,BYHOUR={2,4,7},INTERVAL=3`), there are some + specifications which cannot be reached given some starting conditions. + + This occurs whenever the interval is not coprime with the base of a + given unit and the difference between the starting position and the + ending position is not coprime with the greatest common denominator + between the interval and the base. For example, with a FREQ of hourly + starting at 17:00 and an interval of 4, the only valid values for + BYHOUR would be {21, 1, 5, 9, 13, 17}, because 4 and 24 are not + coprime. + + :param start: + Specifies the starting position. + :param byxxx: + An iterable containing the list of allowed values. + :param base: + The largest allowable value for the specified frequency (e.g. + 24 hours, 60 minutes). + + This does not preserve the type of the iterable, returning a set, since + the values should be unique and the order is irrelevant, this will + speed up later lookups. + + In the event of an empty set, raises a :exception:`ValueError`, as this + results in an empty rrule. + """ + + cset = set() + + # Support a single byxxx value. + if isinstance(byxxx, integer_types): + byxxx = (byxxx, ) + + for num in byxxx: + i_gcd = gcd(self._interval, base) + # Use divmod rather than % because we need to wrap negative nums. + if i_gcd == 1 or divmod(num - start, i_gcd)[1] == 0: + cset.add(num) + + if len(cset) == 0: + raise ValueError("Invalid rrule byxxx generates an empty set.") + + return cset + + def __mod_distance(self, value, byxxx, base): + """ + Calculates the next value in a sequence where the `FREQ` parameter is + specified along with a `BYXXX` parameter at the same "level" + (e.g. `HOURLY` specified with `BYHOUR`). + + :param value: + The old value of the component. + :param byxxx: + The `BYXXX` set, which should have been generated by + `rrule._construct_byset`, or something else which checks that a + valid rule is present. + :param base: + The largest allowable value for the specified frequency (e.g. + 24 hours, 60 minutes). + + If a valid value is not found after `base` iterations (the maximum + number before the sequence would start to repeat), this raises a + :exception:`ValueError`, as no valid values were found. + + This returns a tuple of `divmod(n*interval, base)`, where `n` is the + smallest number of `interval` repetitions until the next specified + value in `byxxx` is found. + """ + accumulator = 0 + for ii in range(1, base + 1): + # Using divmod() over % to account for negative intervals + div, value = divmod(value + self._interval, base) + accumulator += div + if value in byxxx: + return (accumulator, value) + + +class _iterinfo(object): + __slots__ = ["rrule", "lastyear", "lastmonth", + "yearlen", "nextyearlen", "yearordinal", "yearweekday", + "mmask", "mrange", "mdaymask", "nmdaymask", + "wdaymask", "wnomask", "nwdaymask", "eastermask"] + + def __init__(self, rrule): + for attr in self.__slots__: + setattr(self, attr, None) + self.rrule = rrule + + def rebuild(self, year, month): + # Every mask is 7 days longer to handle cross-year weekly periods. + rr = self.rrule + if year != self.lastyear: + self.yearlen = 365 + calendar.isleap(year) + self.nextyearlen = 365 + calendar.isleap(year + 1) + firstyday = datetime.date(year, 1, 1) + self.yearordinal = firstyday.toordinal() + self.yearweekday = firstyday.weekday() + + wday = datetime.date(year, 1, 1).weekday() + if self.yearlen == 365: + self.mmask = M365MASK + self.mdaymask = MDAY365MASK + self.nmdaymask = NMDAY365MASK + self.wdaymask = WDAYMASK[wday:] + self.mrange = M365RANGE + else: + self.mmask = M366MASK + self.mdaymask = MDAY366MASK + self.nmdaymask = NMDAY366MASK + self.wdaymask = WDAYMASK[wday:] + self.mrange = M366RANGE + + if not rr._byweekno: + self.wnomask = None + else: + self.wnomask = [0]*(self.yearlen+7) + # no1wkst = firstwkst = self.wdaymask.index(rr._wkst) + no1wkst = firstwkst = (7-self.yearweekday+rr._wkst) % 7 + if no1wkst >= 4: + no1wkst = 0 + # Number of days in the year, plus the days we got + # from last year. + wyearlen = self.yearlen+(self.yearweekday-rr._wkst) % 7 + else: + # Number of days in the year, minus the days we + # left in last year. + wyearlen = self.yearlen-no1wkst + div, mod = divmod(wyearlen, 7) + numweeks = div+mod//4 + for n in rr._byweekno: + if n < 0: + n += numweeks+1 + if not (0 < n <= numweeks): + continue + if n > 1: + i = no1wkst+(n-1)*7 + if no1wkst != firstwkst: + i -= 7-firstwkst + else: + i = no1wkst + for j in range(7): + self.wnomask[i] = 1 + i += 1 + if self.wdaymask[i] == rr._wkst: + break + if 1 in rr._byweekno: + # Check week number 1 of next year as well + # TODO: Check -numweeks for next year. + i = no1wkst+numweeks*7 + if no1wkst != firstwkst: + i -= 7-firstwkst + if i < self.yearlen: + # If week starts in next year, we + # don't care about it. + for j in range(7): + self.wnomask[i] = 1 + i += 1 + if self.wdaymask[i] == rr._wkst: + break + if no1wkst: + # Check last week number of last year as + # well. If no1wkst is 0, either the year + # started on week start, or week number 1 + # got days from last year, so there are no + # days from last year's last week number in + # this year. + if -1 not in rr._byweekno: + lyearweekday = datetime.date(year-1, 1, 1).weekday() + lno1wkst = (7-lyearweekday+rr._wkst) % 7 + lyearlen = 365+calendar.isleap(year-1) + if lno1wkst >= 4: + lno1wkst = 0 + lnumweeks = 52+(lyearlen + + (lyearweekday-rr._wkst) % 7) % 7//4 + else: + lnumweeks = 52+(self.yearlen-no1wkst) % 7//4 + else: + lnumweeks = -1 + if lnumweeks in rr._byweekno: + for i in range(no1wkst): + self.wnomask[i] = 1 + + if (rr._bynweekday and (month != self.lastmonth or + year != self.lastyear)): + ranges = [] + if rr._freq == YEARLY: + if rr._bymonth: + for month in rr._bymonth: + ranges.append(self.mrange[month-1:month+1]) + else: + ranges = [(0, self.yearlen)] + elif rr._freq == MONTHLY: + ranges = [self.mrange[month-1:month+1]] + if ranges: + # Weekly frequency won't get here, so we may not + # care about cross-year weekly periods. + self.nwdaymask = [0]*self.yearlen + for first, last in ranges: + last -= 1 + for wday, n in rr._bynweekday: + if n < 0: + i = last+(n+1)*7 + i -= (self.wdaymask[i]-wday) % 7 + else: + i = first+(n-1)*7 + i += (7-self.wdaymask[i]+wday) % 7 + if first <= i <= last: + self.nwdaymask[i] = 1 + + if rr._byeaster: + self.eastermask = [0]*(self.yearlen+7) + eyday = easter.easter(year).toordinal()-self.yearordinal + for offset in rr._byeaster: + self.eastermask[eyday+offset] = 1 + + self.lastyear = year + self.lastmonth = month + + def ydayset(self, year, month, day): + return list(range(self.yearlen)), 0, self.yearlen + + def mdayset(self, year, month, day): + dset = [None]*self.yearlen + start, end = self.mrange[month-1:month+1] + for i in range(start, end): + dset[i] = i + return dset, start, end + + def wdayset(self, year, month, day): + # We need to handle cross-year weeks here. + dset = [None]*(self.yearlen+7) + i = datetime.date(year, month, day).toordinal()-self.yearordinal + start = i + for j in range(7): + dset[i] = i + i += 1 + # if (not (0 <= i < self.yearlen) or + # self.wdaymask[i] == self.rrule._wkst): + # This will cross the year boundary, if necessary. + if self.wdaymask[i] == self.rrule._wkst: + break + return dset, start, i + + def ddayset(self, year, month, day): + dset = [None] * self.yearlen + i = datetime.date(year, month, day).toordinal() - self.yearordinal + dset[i] = i + return dset, i, i + 1 + + def htimeset(self, hour, minute, second): + tset = [] + rr = self.rrule + for minute in rr._byminute: + for second in rr._bysecond: + tset.append(datetime.time(hour, minute, second, + tzinfo=rr._tzinfo)) + tset.sort() + return tset + + def mtimeset(self, hour, minute, second): + tset = [] + rr = self.rrule + for second in rr._bysecond: + tset.append(datetime.time(hour, minute, second, tzinfo=rr._tzinfo)) + tset.sort() + return tset + + def stimeset(self, hour, minute, second): + return (datetime.time(hour, minute, second, + tzinfo=self.rrule._tzinfo),) + + +class rruleset(rrulebase): + """ The rruleset type allows more complex recurrence setups, mixing + multiple rules, dates, exclusion rules, and exclusion dates. The type + constructor takes the following keyword arguments: + + :param cache: If True, caching of results will be enabled, improving + performance of multiple queries considerably. """ + + class _genitem(object): + def __init__(self, genlist, gen): + try: + self.dt = advance_iterator(gen) + genlist.append(self) + except StopIteration: + pass + self.genlist = genlist + self.gen = gen + + def __next__(self): + try: + self.dt = advance_iterator(self.gen) + except StopIteration: + if self.genlist[0] is self: + heapq.heappop(self.genlist) + else: + self.genlist.remove(self) + heapq.heapify(self.genlist) + + next = __next__ + + def __lt__(self, other): + return self.dt < other.dt + + def __gt__(self, other): + return self.dt > other.dt + + def __eq__(self, other): + return self.dt == other.dt + + def __ne__(self, other): + return self.dt != other.dt + + def __init__(self, cache=False): + super(rruleset, self).__init__(cache) + self._rrule = [] + self._rdate = [] + self._exrule = [] + self._exdate = [] + + @_invalidates_cache + def rrule(self, rrule): + """ Include the given :py:class:`rrule` instance in the recurrence set + generation. """ + self._rrule.append(rrule) + + @_invalidates_cache + def rdate(self, rdate): + """ Include the given :py:class:`datetime` instance in the recurrence + set generation. """ + self._rdate.append(rdate) + + @_invalidates_cache + def exrule(self, exrule): + """ Include the given rrule instance in the recurrence set exclusion + list. Dates which are part of the given recurrence rules will not + be generated, even if some inclusive rrule or rdate matches them. + """ + self._exrule.append(exrule) + + @_invalidates_cache + def exdate(self, exdate): + """ Include the given datetime instance in the recurrence set + exclusion list. Dates included that way will not be generated, + even if some inclusive rrule or rdate matches them. """ + self._exdate.append(exdate) + + def _iter(self): + rlist = [] + self._rdate.sort() + self._genitem(rlist, iter(self._rdate)) + for gen in [iter(x) for x in self._rrule]: + self._genitem(rlist, gen) + exlist = [] + self._exdate.sort() + self._genitem(exlist, iter(self._exdate)) + for gen in [iter(x) for x in self._exrule]: + self._genitem(exlist, gen) + lastdt = None + total = 0 + heapq.heapify(rlist) + heapq.heapify(exlist) + while rlist: + ritem = rlist[0] + if not lastdt or lastdt != ritem.dt: + while exlist and exlist[0] < ritem: + exitem = exlist[0] + advance_iterator(exitem) + if exlist and exlist[0] is exitem: + heapq.heapreplace(exlist, exitem) + if not exlist or ritem != exlist[0]: + total += 1 + yield ritem.dt + lastdt = ritem.dt + advance_iterator(ritem) + if rlist and rlist[0] is ritem: + heapq.heapreplace(rlist, ritem) + self._len = total + + + + +class _rrulestr(object): + """ Parses a string representation of a recurrence rule or set of + recurrence rules. + + :param s: + Required, a string defining one or more recurrence rules. + + :param dtstart: + If given, used as the default recurrence start if not specified in the + rule string. + + :param cache: + If set ``True`` caching of results will be enabled, improving + performance of multiple queries considerably. + + :param unfold: + If set ``True`` indicates that a rule string is split over more + than one line and should be joined before processing. + + :param forceset: + If set ``True`` forces a :class:`dateutil.rrule.rruleset` to + be returned. + + :param compatible: + If set ``True`` forces ``unfold`` and ``forceset`` to be ``True``. + + :param ignoretz: + If set ``True``, time zones in parsed strings are ignored and a naive + :class:`datetime.datetime` object is returned. + + :param tzids: + If given, a callable or mapping used to retrieve a + :class:`datetime.tzinfo` from a string representation. + Defaults to :func:`dateutil.tz.gettz`. + + :param tzinfos: + Additional time zone names / aliases which may be present in a string + representation. See :func:`dateutil.parser.parse` for more + information. + + :return: + Returns a :class:`dateutil.rrule.rruleset` or + :class:`dateutil.rrule.rrule` + """ + + _freq_map = {"YEARLY": YEARLY, + "MONTHLY": MONTHLY, + "WEEKLY": WEEKLY, + "DAILY": DAILY, + "HOURLY": HOURLY, + "MINUTELY": MINUTELY, + "SECONDLY": SECONDLY} + + _weekday_map = {"MO": 0, "TU": 1, "WE": 2, "TH": 3, + "FR": 4, "SA": 5, "SU": 6} + + def _handle_int(self, rrkwargs, name, value, **kwargs): + rrkwargs[name.lower()] = int(value) + + def _handle_int_list(self, rrkwargs, name, value, **kwargs): + rrkwargs[name.lower()] = [int(x) for x in value.split(',')] + + _handle_INTERVAL = _handle_int + _handle_COUNT = _handle_int + _handle_BYSETPOS = _handle_int_list + _handle_BYMONTH = _handle_int_list + _handle_BYMONTHDAY = _handle_int_list + _handle_BYYEARDAY = _handle_int_list + _handle_BYEASTER = _handle_int_list + _handle_BYWEEKNO = _handle_int_list + _handle_BYHOUR = _handle_int_list + _handle_BYMINUTE = _handle_int_list + _handle_BYSECOND = _handle_int_list + + def _handle_FREQ(self, rrkwargs, name, value, **kwargs): + rrkwargs["freq"] = self._freq_map[value] + + def _handle_UNTIL(self, rrkwargs, name, value, **kwargs): + global parser + if not parser: + from dateutil import parser + try: + rrkwargs["until"] = parser.parse(value, + ignoretz=kwargs.get("ignoretz"), + tzinfos=kwargs.get("tzinfos")) + except ValueError: + raise ValueError("invalid until date") + + def _handle_WKST(self, rrkwargs, name, value, **kwargs): + rrkwargs["wkst"] = self._weekday_map[value] + + def _handle_BYWEEKDAY(self, rrkwargs, name, value, **kwargs): + """ + Two ways to specify this: +1MO or MO(+1) + """ + l = [] + for wday in value.split(','): + if '(' in wday: + # If it's of the form TH(+1), etc. + splt = wday.split('(') + w = splt[0] + n = int(splt[1][:-1]) + elif len(wday): + # If it's of the form +1MO + for i in range(len(wday)): + if wday[i] not in '+-0123456789': + break + n = wday[:i] or None + w = wday[i:] + if n: + n = int(n) + else: + raise ValueError("Invalid (empty) BYDAY specification.") + + l.append(weekdays[self._weekday_map[w]](n)) + rrkwargs["byweekday"] = l + + _handle_BYDAY = _handle_BYWEEKDAY + + def _parse_rfc_rrule(self, line, + dtstart=None, + cache=False, + ignoretz=False, + tzinfos=None): + if line.find(':') != -1: + name, value = line.split(':') + if name != "RRULE": + raise ValueError("unknown parameter name") + else: + value = line + rrkwargs = {} + for pair in value.split(';'): + name, value = pair.split('=') + name = name.upper() + value = value.upper() + try: + getattr(self, "_handle_"+name)(rrkwargs, name, value, + ignoretz=ignoretz, + tzinfos=tzinfos) + except AttributeError: + raise ValueError("unknown parameter '%s'" % name) + except (KeyError, ValueError): + raise ValueError("invalid '%s': %s" % (name, value)) + return rrule(dtstart=dtstart, cache=cache, **rrkwargs) + + def _parse_date_value(self, date_value, parms, rule_tzids, + ignoretz, tzids, tzinfos): + global parser + if not parser: + from dateutil import parser + + datevals = [] + value_found = False + TZID = None + + for parm in parms: + if parm.startswith("TZID="): + try: + tzkey = rule_tzids[parm.split('TZID=')[-1]] + except KeyError: + continue + if tzids is None: + from . import tz + tzlookup = tz.gettz + elif callable(tzids): + tzlookup = tzids + else: + tzlookup = getattr(tzids, 'get', None) + if tzlookup is None: + msg = ('tzids must be a callable, mapping, or None, ' + 'not %s' % tzids) + raise ValueError(msg) + + TZID = tzlookup(tzkey) + continue + + # RFC 5445 3.8.2.4: The VALUE parameter is optional, but may be found + # only once. + if parm not in {"VALUE=DATE-TIME", "VALUE=DATE"}: + raise ValueError("unsupported parm: " + parm) + else: + if value_found: + msg = ("Duplicate value parameter found in: " + parm) + raise ValueError(msg) + value_found = True + + for datestr in date_value.split(','): + date = parser.parse(datestr, ignoretz=ignoretz, tzinfos=tzinfos) + if TZID is not None: + if date.tzinfo is None: + date = date.replace(tzinfo=TZID) + else: + raise ValueError('DTSTART/EXDATE specifies multiple timezone') + datevals.append(date) + + return datevals + + def _parse_rfc(self, s, + dtstart=None, + cache=False, + unfold=False, + forceset=False, + compatible=False, + ignoretz=False, + tzids=None, + tzinfos=None): + global parser + if compatible: + forceset = True + unfold = True + + TZID_NAMES = dict(map( + lambda x: (x.upper(), x), + re.findall('TZID=(?P[^:]+):', s) + )) + s = s.upper() + if not s.strip(): + raise ValueError("empty string") + if unfold: + lines = s.splitlines() + i = 0 + while i < len(lines): + line = lines[i].rstrip() + if not line: + del lines[i] + elif i > 0 and line[0] == " ": + lines[i-1] += line[1:] + del lines[i] + else: + i += 1 + else: + lines = s.split() + if (not forceset and len(lines) == 1 and (s.find(':') == -1 or + s.startswith('RRULE:'))): + return self._parse_rfc_rrule(lines[0], cache=cache, + dtstart=dtstart, ignoretz=ignoretz, + tzinfos=tzinfos) + else: + rrulevals = [] + rdatevals = [] + exrulevals = [] + exdatevals = [] + for line in lines: + if not line: + continue + if line.find(':') == -1: + name = "RRULE" + value = line + else: + name, value = line.split(':', 1) + parms = name.split(';') + if not parms: + raise ValueError("empty property name") + name = parms[0] + parms = parms[1:] + if name == "RRULE": + for parm in parms: + raise ValueError("unsupported RRULE parm: "+parm) + rrulevals.append(value) + elif name == "RDATE": + for parm in parms: + if parm != "VALUE=DATE-TIME": + raise ValueError("unsupported RDATE parm: "+parm) + rdatevals.append(value) + elif name == "EXRULE": + for parm in parms: + raise ValueError("unsupported EXRULE parm: "+parm) + exrulevals.append(value) + elif name == "EXDATE": + exdatevals.extend( + self._parse_date_value(value, parms, + TZID_NAMES, ignoretz, + tzids, tzinfos) + ) + elif name == "DTSTART": + dtvals = self._parse_date_value(value, parms, TZID_NAMES, + ignoretz, tzids, tzinfos) + if len(dtvals) != 1: + raise ValueError("Multiple DTSTART values specified:" + + value) + dtstart = dtvals[0] + else: + raise ValueError("unsupported property: "+name) + if (forceset or len(rrulevals) > 1 or rdatevals + or exrulevals or exdatevals): + if not parser and (rdatevals or exdatevals): + from dateutil import parser + rset = rruleset(cache=cache) + for value in rrulevals: + rset.rrule(self._parse_rfc_rrule(value, dtstart=dtstart, + ignoretz=ignoretz, + tzinfos=tzinfos)) + for value in rdatevals: + for datestr in value.split(','): + rset.rdate(parser.parse(datestr, + ignoretz=ignoretz, + tzinfos=tzinfos)) + for value in exrulevals: + rset.exrule(self._parse_rfc_rrule(value, dtstart=dtstart, + ignoretz=ignoretz, + tzinfos=tzinfos)) + for value in exdatevals: + rset.exdate(value) + if compatible and dtstart: + rset.rdate(dtstart) + return rset + else: + return self._parse_rfc_rrule(rrulevals[0], + dtstart=dtstart, + cache=cache, + ignoretz=ignoretz, + tzinfos=tzinfos) + + def __call__(self, s, **kwargs): + return self._parse_rfc(s, **kwargs) + + +rrulestr = _rrulestr() + +# vim:ts=4:sw=4:et diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/tz/__init__.py b/rep_localstack/lib/python3.12/site-packages/dateutil/tz/__init__.py new file mode 100644 index 000000000..af1352c47 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/dateutil/tz/__init__.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +from .tz import * +from .tz import __doc__ + +__all__ = ["tzutc", "tzoffset", "tzlocal", "tzfile", "tzrange", + "tzstr", "tzical", "tzwin", "tzwinlocal", "gettz", + "enfold", "datetime_ambiguous", "datetime_exists", + "resolve_imaginary", "UTC", "DeprecatedTzFormatWarning"] + + +class DeprecatedTzFormatWarning(Warning): + """Warning raised when time zones are parsed from deprecated formats.""" diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/tz/__pycache__/__init__.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/dateutil/tz/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 000000000..e944b7589 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/dateutil/tz/__pycache__/__init__.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/tz/__pycache__/_common.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/dateutil/tz/__pycache__/_common.cpython-312.pyc new file mode 100644 index 000000000..b8f00a6f0 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/dateutil/tz/__pycache__/_common.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/tz/__pycache__/_factories.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/dateutil/tz/__pycache__/_factories.cpython-312.pyc new file mode 100644 index 000000000..f882bf39b Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/dateutil/tz/__pycache__/_factories.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/tz/__pycache__/tz.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/dateutil/tz/__pycache__/tz.cpython-312.pyc new file mode 100644 index 000000000..95d7e066f Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/dateutil/tz/__pycache__/tz.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/tz/__pycache__/win.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/dateutil/tz/__pycache__/win.cpython-312.pyc new file mode 100644 index 000000000..a3d17bc22 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/dateutil/tz/__pycache__/win.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/tz/_common.py b/rep_localstack/lib/python3.12/site-packages/dateutil/tz/_common.py new file mode 100644 index 000000000..e6ac11831 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/dateutil/tz/_common.py @@ -0,0 +1,419 @@ +from six import PY2 + +from functools import wraps + +from datetime import datetime, timedelta, tzinfo + + +ZERO = timedelta(0) + +__all__ = ['tzname_in_python2', 'enfold'] + + +def tzname_in_python2(namefunc): + """Change unicode output into bytestrings in Python 2 + + tzname() API changed in Python 3. It used to return bytes, but was changed + to unicode strings + """ + if PY2: + @wraps(namefunc) + def adjust_encoding(*args, **kwargs): + name = namefunc(*args, **kwargs) + if name is not None: + name = name.encode() + + return name + + return adjust_encoding + else: + return namefunc + + +# The following is adapted from Alexander Belopolsky's tz library +# https://github.com/abalkin/tz +if hasattr(datetime, 'fold'): + # This is the pre-python 3.6 fold situation + def enfold(dt, fold=1): + """ + Provides a unified interface for assigning the ``fold`` attribute to + datetimes both before and after the implementation of PEP-495. + + :param fold: + The value for the ``fold`` attribute in the returned datetime. This + should be either 0 or 1. + + :return: + Returns an object for which ``getattr(dt, 'fold', 0)`` returns + ``fold`` for all versions of Python. In versions prior to + Python 3.6, this is a ``_DatetimeWithFold`` object, which is a + subclass of :py:class:`datetime.datetime` with the ``fold`` + attribute added, if ``fold`` is 1. + + .. versionadded:: 2.6.0 + """ + return dt.replace(fold=fold) + +else: + class _DatetimeWithFold(datetime): + """ + This is a class designed to provide a PEP 495-compliant interface for + Python versions before 3.6. It is used only for dates in a fold, so + the ``fold`` attribute is fixed at ``1``. + + .. versionadded:: 2.6.0 + """ + __slots__ = () + + def replace(self, *args, **kwargs): + """ + Return a datetime with the same attributes, except for those + attributes given new values by whichever keyword arguments are + specified. Note that tzinfo=None can be specified to create a naive + datetime from an aware datetime with no conversion of date and time + data. + + This is reimplemented in ``_DatetimeWithFold`` because pypy3 will + return a ``datetime.datetime`` even if ``fold`` is unchanged. + """ + argnames = ( + 'year', 'month', 'day', 'hour', 'minute', 'second', + 'microsecond', 'tzinfo' + ) + + for arg, argname in zip(args, argnames): + if argname in kwargs: + raise TypeError('Duplicate argument: {}'.format(argname)) + + kwargs[argname] = arg + + for argname in argnames: + if argname not in kwargs: + kwargs[argname] = getattr(self, argname) + + dt_class = self.__class__ if kwargs.get('fold', 1) else datetime + + return dt_class(**kwargs) + + @property + def fold(self): + return 1 + + def enfold(dt, fold=1): + """ + Provides a unified interface for assigning the ``fold`` attribute to + datetimes both before and after the implementation of PEP-495. + + :param fold: + The value for the ``fold`` attribute in the returned datetime. This + should be either 0 or 1. + + :return: + Returns an object for which ``getattr(dt, 'fold', 0)`` returns + ``fold`` for all versions of Python. In versions prior to + Python 3.6, this is a ``_DatetimeWithFold`` object, which is a + subclass of :py:class:`datetime.datetime` with the ``fold`` + attribute added, if ``fold`` is 1. + + .. versionadded:: 2.6.0 + """ + if getattr(dt, 'fold', 0) == fold: + return dt + + args = dt.timetuple()[:6] + args += (dt.microsecond, dt.tzinfo) + + if fold: + return _DatetimeWithFold(*args) + else: + return datetime(*args) + + +def _validate_fromutc_inputs(f): + """ + The CPython version of ``fromutc`` checks that the input is a ``datetime`` + object and that ``self`` is attached as its ``tzinfo``. + """ + @wraps(f) + def fromutc(self, dt): + if not isinstance(dt, datetime): + raise TypeError("fromutc() requires a datetime argument") + if dt.tzinfo is not self: + raise ValueError("dt.tzinfo is not self") + + return f(self, dt) + + return fromutc + + +class _tzinfo(tzinfo): + """ + Base class for all ``dateutil`` ``tzinfo`` objects. + """ + + def is_ambiguous(self, dt): + """ + Whether or not the "wall time" of a given datetime is ambiguous in this + zone. + + :param dt: + A :py:class:`datetime.datetime`, naive or time zone aware. + + + :return: + Returns ``True`` if ambiguous, ``False`` otherwise. + + .. versionadded:: 2.6.0 + """ + + dt = dt.replace(tzinfo=self) + + wall_0 = enfold(dt, fold=0) + wall_1 = enfold(dt, fold=1) + + same_offset = wall_0.utcoffset() == wall_1.utcoffset() + same_dt = wall_0.replace(tzinfo=None) == wall_1.replace(tzinfo=None) + + return same_dt and not same_offset + + def _fold_status(self, dt_utc, dt_wall): + """ + Determine the fold status of a "wall" datetime, given a representation + of the same datetime as a (naive) UTC datetime. This is calculated based + on the assumption that ``dt.utcoffset() - dt.dst()`` is constant for all + datetimes, and that this offset is the actual number of hours separating + ``dt_utc`` and ``dt_wall``. + + :param dt_utc: + Representation of the datetime as UTC + + :param dt_wall: + Representation of the datetime as "wall time". This parameter must + either have a `fold` attribute or have a fold-naive + :class:`datetime.tzinfo` attached, otherwise the calculation may + fail. + """ + if self.is_ambiguous(dt_wall): + delta_wall = dt_wall - dt_utc + _fold = int(delta_wall == (dt_utc.utcoffset() - dt_utc.dst())) + else: + _fold = 0 + + return _fold + + def _fold(self, dt): + return getattr(dt, 'fold', 0) + + def _fromutc(self, dt): + """ + Given a timezone-aware datetime in a given timezone, calculates a + timezone-aware datetime in a new timezone. + + Since this is the one time that we *know* we have an unambiguous + datetime object, we take this opportunity to determine whether the + datetime is ambiguous and in a "fold" state (e.g. if it's the first + occurrence, chronologically, of the ambiguous datetime). + + :param dt: + A timezone-aware :class:`datetime.datetime` object. + """ + + # Re-implement the algorithm from Python's datetime.py + dtoff = dt.utcoffset() + if dtoff is None: + raise ValueError("fromutc() requires a non-None utcoffset() " + "result") + + # The original datetime.py code assumes that `dst()` defaults to + # zero during ambiguous times. PEP 495 inverts this presumption, so + # for pre-PEP 495 versions of python, we need to tweak the algorithm. + dtdst = dt.dst() + if dtdst is None: + raise ValueError("fromutc() requires a non-None dst() result") + delta = dtoff - dtdst + + dt += delta + # Set fold=1 so we can default to being in the fold for + # ambiguous dates. + dtdst = enfold(dt, fold=1).dst() + if dtdst is None: + raise ValueError("fromutc(): dt.dst gave inconsistent " + "results; cannot convert") + return dt + dtdst + + @_validate_fromutc_inputs + def fromutc(self, dt): + """ + Given a timezone-aware datetime in a given timezone, calculates a + timezone-aware datetime in a new timezone. + + Since this is the one time that we *know* we have an unambiguous + datetime object, we take this opportunity to determine whether the + datetime is ambiguous and in a "fold" state (e.g. if it's the first + occurrence, chronologically, of the ambiguous datetime). + + :param dt: + A timezone-aware :class:`datetime.datetime` object. + """ + dt_wall = self._fromutc(dt) + + # Calculate the fold status given the two datetimes. + _fold = self._fold_status(dt, dt_wall) + + # Set the default fold value for ambiguous dates + return enfold(dt_wall, fold=_fold) + + +class tzrangebase(_tzinfo): + """ + This is an abstract base class for time zones represented by an annual + transition into and out of DST. Child classes should implement the following + methods: + + * ``__init__(self, *args, **kwargs)`` + * ``transitions(self, year)`` - this is expected to return a tuple of + datetimes representing the DST on and off transitions in standard + time. + + A fully initialized ``tzrangebase`` subclass should also provide the + following attributes: + * ``hasdst``: Boolean whether or not the zone uses DST. + * ``_dst_offset`` / ``_std_offset``: :class:`datetime.timedelta` objects + representing the respective UTC offsets. + * ``_dst_abbr`` / ``_std_abbr``: Strings representing the timezone short + abbreviations in DST and STD, respectively. + * ``_hasdst``: Whether or not the zone has DST. + + .. versionadded:: 2.6.0 + """ + def __init__(self): + raise NotImplementedError('tzrangebase is an abstract base class') + + def utcoffset(self, dt): + isdst = self._isdst(dt) + + if isdst is None: + return None + elif isdst: + return self._dst_offset + else: + return self._std_offset + + def dst(self, dt): + isdst = self._isdst(dt) + + if isdst is None: + return None + elif isdst: + return self._dst_base_offset + else: + return ZERO + + @tzname_in_python2 + def tzname(self, dt): + if self._isdst(dt): + return self._dst_abbr + else: + return self._std_abbr + + def fromutc(self, dt): + """ Given a datetime in UTC, return local time """ + if not isinstance(dt, datetime): + raise TypeError("fromutc() requires a datetime argument") + + if dt.tzinfo is not self: + raise ValueError("dt.tzinfo is not self") + + # Get transitions - if there are none, fixed offset + transitions = self.transitions(dt.year) + if transitions is None: + return dt + self.utcoffset(dt) + + # Get the transition times in UTC + dston, dstoff = transitions + + dston -= self._std_offset + dstoff -= self._std_offset + + utc_transitions = (dston, dstoff) + dt_utc = dt.replace(tzinfo=None) + + isdst = self._naive_isdst(dt_utc, utc_transitions) + + if isdst: + dt_wall = dt + self._dst_offset + else: + dt_wall = dt + self._std_offset + + _fold = int(not isdst and self.is_ambiguous(dt_wall)) + + return enfold(dt_wall, fold=_fold) + + def is_ambiguous(self, dt): + """ + Whether or not the "wall time" of a given datetime is ambiguous in this + zone. + + :param dt: + A :py:class:`datetime.datetime`, naive or time zone aware. + + + :return: + Returns ``True`` if ambiguous, ``False`` otherwise. + + .. versionadded:: 2.6.0 + """ + if not self.hasdst: + return False + + start, end = self.transitions(dt.year) + + dt = dt.replace(tzinfo=None) + return (end <= dt < end + self._dst_base_offset) + + def _isdst(self, dt): + if not self.hasdst: + return False + elif dt is None: + return None + + transitions = self.transitions(dt.year) + + if transitions is None: + return False + + dt = dt.replace(tzinfo=None) + + isdst = self._naive_isdst(dt, transitions) + + # Handle ambiguous dates + if not isdst and self.is_ambiguous(dt): + return not self._fold(dt) + else: + return isdst + + def _naive_isdst(self, dt, transitions): + dston, dstoff = transitions + + dt = dt.replace(tzinfo=None) + + if dston < dstoff: + isdst = dston <= dt < dstoff + else: + isdst = not dstoff <= dt < dston + + return isdst + + @property + def _dst_base_offset(self): + return self._dst_offset - self._std_offset + + __hash__ = None + + def __ne__(self, other): + return not (self == other) + + def __repr__(self): + return "%s(...)" % self.__class__.__name__ + + __reduce__ = object.__reduce__ diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/tz/_factories.py b/rep_localstack/lib/python3.12/site-packages/dateutil/tz/_factories.py new file mode 100644 index 000000000..f8a65891a --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/dateutil/tz/_factories.py @@ -0,0 +1,80 @@ +from datetime import timedelta +import weakref +from collections import OrderedDict + +from six.moves import _thread + + +class _TzSingleton(type): + def __init__(cls, *args, **kwargs): + cls.__instance = None + super(_TzSingleton, cls).__init__(*args, **kwargs) + + def __call__(cls): + if cls.__instance is None: + cls.__instance = super(_TzSingleton, cls).__call__() + return cls.__instance + + +class _TzFactory(type): + def instance(cls, *args, **kwargs): + """Alternate constructor that returns a fresh instance""" + return type.__call__(cls, *args, **kwargs) + + +class _TzOffsetFactory(_TzFactory): + def __init__(cls, *args, **kwargs): + cls.__instances = weakref.WeakValueDictionary() + cls.__strong_cache = OrderedDict() + cls.__strong_cache_size = 8 + + cls._cache_lock = _thread.allocate_lock() + + def __call__(cls, name, offset): + if isinstance(offset, timedelta): + key = (name, offset.total_seconds()) + else: + key = (name, offset) + + instance = cls.__instances.get(key, None) + if instance is None: + instance = cls.__instances.setdefault(key, + cls.instance(name, offset)) + + # This lock may not be necessary in Python 3. See GH issue #901 + with cls._cache_lock: + cls.__strong_cache[key] = cls.__strong_cache.pop(key, instance) + + # Remove an item if the strong cache is overpopulated + if len(cls.__strong_cache) > cls.__strong_cache_size: + cls.__strong_cache.popitem(last=False) + + return instance + + +class _TzStrFactory(_TzFactory): + def __init__(cls, *args, **kwargs): + cls.__instances = weakref.WeakValueDictionary() + cls.__strong_cache = OrderedDict() + cls.__strong_cache_size = 8 + + cls.__cache_lock = _thread.allocate_lock() + + def __call__(cls, s, posix_offset=False): + key = (s, posix_offset) + instance = cls.__instances.get(key, None) + + if instance is None: + instance = cls.__instances.setdefault(key, + cls.instance(s, posix_offset)) + + # This lock may not be necessary in Python 3. See GH issue #901 + with cls.__cache_lock: + cls.__strong_cache[key] = cls.__strong_cache.pop(key, instance) + + # Remove an item if the strong cache is overpopulated + if len(cls.__strong_cache) > cls.__strong_cache_size: + cls.__strong_cache.popitem(last=False) + + return instance + diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/tz/tz.py b/rep_localstack/lib/python3.12/site-packages/dateutil/tz/tz.py new file mode 100644 index 000000000..617591446 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/dateutil/tz/tz.py @@ -0,0 +1,1849 @@ +# -*- coding: utf-8 -*- +""" +This module offers timezone implementations subclassing the abstract +:py:class:`datetime.tzinfo` type. There are classes to handle tzfile format +files (usually are in :file:`/etc/localtime`, :file:`/usr/share/zoneinfo`, +etc), TZ environment string (in all known formats), given ranges (with help +from relative deltas), local machine timezone, fixed offset timezone, and UTC +timezone. +""" +import datetime +import struct +import time +import sys +import os +import bisect +import weakref +from collections import OrderedDict + +import six +from six import string_types +from six.moves import _thread +from ._common import tzname_in_python2, _tzinfo +from ._common import tzrangebase, enfold +from ._common import _validate_fromutc_inputs + +from ._factories import _TzSingleton, _TzOffsetFactory +from ._factories import _TzStrFactory +try: + from .win import tzwin, tzwinlocal +except ImportError: + tzwin = tzwinlocal = None + +# For warning about rounding tzinfo +from warnings import warn + +ZERO = datetime.timedelta(0) +EPOCH = datetime.datetime(1970, 1, 1, 0, 0) +EPOCHORDINAL = EPOCH.toordinal() + + +@six.add_metaclass(_TzSingleton) +class tzutc(datetime.tzinfo): + """ + This is a tzinfo object that represents the UTC time zone. + + **Examples:** + + .. doctest:: + + >>> from datetime import * + >>> from dateutil.tz import * + + >>> datetime.now() + datetime.datetime(2003, 9, 27, 9, 40, 1, 521290) + + >>> datetime.now(tzutc()) + datetime.datetime(2003, 9, 27, 12, 40, 12, 156379, tzinfo=tzutc()) + + >>> datetime.now(tzutc()).tzname() + 'UTC' + + .. versionchanged:: 2.7.0 + ``tzutc()`` is now a singleton, so the result of ``tzutc()`` will + always return the same object. + + .. doctest:: + + >>> from dateutil.tz import tzutc, UTC + >>> tzutc() is tzutc() + True + >>> tzutc() is UTC + True + """ + def utcoffset(self, dt): + return ZERO + + def dst(self, dt): + return ZERO + + @tzname_in_python2 + def tzname(self, dt): + return "UTC" + + def is_ambiguous(self, dt): + """ + Whether or not the "wall time" of a given datetime is ambiguous in this + zone. + + :param dt: + A :py:class:`datetime.datetime`, naive or time zone aware. + + + :return: + Returns ``True`` if ambiguous, ``False`` otherwise. + + .. versionadded:: 2.6.0 + """ + return False + + @_validate_fromutc_inputs + def fromutc(self, dt): + """ + Fast track version of fromutc() returns the original ``dt`` object for + any valid :py:class:`datetime.datetime` object. + """ + return dt + + def __eq__(self, other): + if not isinstance(other, (tzutc, tzoffset)): + return NotImplemented + + return (isinstance(other, tzutc) or + (isinstance(other, tzoffset) and other._offset == ZERO)) + + __hash__ = None + + def __ne__(self, other): + return not (self == other) + + def __repr__(self): + return "%s()" % self.__class__.__name__ + + __reduce__ = object.__reduce__ + + +#: Convenience constant providing a :class:`tzutc()` instance +#: +#: .. versionadded:: 2.7.0 +UTC = tzutc() + + +@six.add_metaclass(_TzOffsetFactory) +class tzoffset(datetime.tzinfo): + """ + A simple class for representing a fixed offset from UTC. + + :param name: + The timezone name, to be returned when ``tzname()`` is called. + :param offset: + The time zone offset in seconds, or (since version 2.6.0, represented + as a :py:class:`datetime.timedelta` object). + """ + def __init__(self, name, offset): + self._name = name + + try: + # Allow a timedelta + offset = offset.total_seconds() + except (TypeError, AttributeError): + pass + + self._offset = datetime.timedelta(seconds=_get_supported_offset(offset)) + + def utcoffset(self, dt): + return self._offset + + def dst(self, dt): + return ZERO + + @tzname_in_python2 + def tzname(self, dt): + return self._name + + @_validate_fromutc_inputs + def fromutc(self, dt): + return dt + self._offset + + def is_ambiguous(self, dt): + """ + Whether or not the "wall time" of a given datetime is ambiguous in this + zone. + + :param dt: + A :py:class:`datetime.datetime`, naive or time zone aware. + :return: + Returns ``True`` if ambiguous, ``False`` otherwise. + + .. versionadded:: 2.6.0 + """ + return False + + def __eq__(self, other): + if not isinstance(other, tzoffset): + return NotImplemented + + return self._offset == other._offset + + __hash__ = None + + def __ne__(self, other): + return not (self == other) + + def __repr__(self): + return "%s(%s, %s)" % (self.__class__.__name__, + repr(self._name), + int(self._offset.total_seconds())) + + __reduce__ = object.__reduce__ + + +class tzlocal(_tzinfo): + """ + A :class:`tzinfo` subclass built around the ``time`` timezone functions. + """ + def __init__(self): + super(tzlocal, self).__init__() + + self._std_offset = datetime.timedelta(seconds=-time.timezone) + if time.daylight: + self._dst_offset = datetime.timedelta(seconds=-time.altzone) + else: + self._dst_offset = self._std_offset + + self._dst_saved = self._dst_offset - self._std_offset + self._hasdst = bool(self._dst_saved) + self._tznames = tuple(time.tzname) + + def utcoffset(self, dt): + if dt is None and self._hasdst: + return None + + if self._isdst(dt): + return self._dst_offset + else: + return self._std_offset + + def dst(self, dt): + if dt is None and self._hasdst: + return None + + if self._isdst(dt): + return self._dst_offset - self._std_offset + else: + return ZERO + + @tzname_in_python2 + def tzname(self, dt): + return self._tznames[self._isdst(dt)] + + def is_ambiguous(self, dt): + """ + Whether or not the "wall time" of a given datetime is ambiguous in this + zone. + + :param dt: + A :py:class:`datetime.datetime`, naive or time zone aware. + + + :return: + Returns ``True`` if ambiguous, ``False`` otherwise. + + .. versionadded:: 2.6.0 + """ + naive_dst = self._naive_is_dst(dt) + return (not naive_dst and + (naive_dst != self._naive_is_dst(dt - self._dst_saved))) + + def _naive_is_dst(self, dt): + timestamp = _datetime_to_timestamp(dt) + return time.localtime(timestamp + time.timezone).tm_isdst + + def _isdst(self, dt, fold_naive=True): + # We can't use mktime here. It is unstable when deciding if + # the hour near to a change is DST or not. + # + # timestamp = time.mktime((dt.year, dt.month, dt.day, dt.hour, + # dt.minute, dt.second, dt.weekday(), 0, -1)) + # return time.localtime(timestamp).tm_isdst + # + # The code above yields the following result: + # + # >>> import tz, datetime + # >>> t = tz.tzlocal() + # >>> datetime.datetime(2003,2,15,23,tzinfo=t).tzname() + # 'BRDT' + # >>> datetime.datetime(2003,2,16,0,tzinfo=t).tzname() + # 'BRST' + # >>> datetime.datetime(2003,2,15,23,tzinfo=t).tzname() + # 'BRST' + # >>> datetime.datetime(2003,2,15,22,tzinfo=t).tzname() + # 'BRDT' + # >>> datetime.datetime(2003,2,15,23,tzinfo=t).tzname() + # 'BRDT' + # + # Here is a more stable implementation: + # + if not self._hasdst: + return False + + # Check for ambiguous times: + dstval = self._naive_is_dst(dt) + fold = getattr(dt, 'fold', None) + + if self.is_ambiguous(dt): + if fold is not None: + return not self._fold(dt) + else: + return True + + return dstval + + def __eq__(self, other): + if isinstance(other, tzlocal): + return (self._std_offset == other._std_offset and + self._dst_offset == other._dst_offset) + elif isinstance(other, tzutc): + return (not self._hasdst and + self._tznames[0] in {'UTC', 'GMT'} and + self._std_offset == ZERO) + elif isinstance(other, tzoffset): + return (not self._hasdst and + self._tznames[0] == other._name and + self._std_offset == other._offset) + else: + return NotImplemented + + __hash__ = None + + def __ne__(self, other): + return not (self == other) + + def __repr__(self): + return "%s()" % self.__class__.__name__ + + __reduce__ = object.__reduce__ + + +class _ttinfo(object): + __slots__ = ["offset", "delta", "isdst", "abbr", + "isstd", "isgmt", "dstoffset"] + + def __init__(self): + for attr in self.__slots__: + setattr(self, attr, None) + + def __repr__(self): + l = [] + for attr in self.__slots__: + value = getattr(self, attr) + if value is not None: + l.append("%s=%s" % (attr, repr(value))) + return "%s(%s)" % (self.__class__.__name__, ", ".join(l)) + + def __eq__(self, other): + if not isinstance(other, _ttinfo): + return NotImplemented + + return (self.offset == other.offset and + self.delta == other.delta and + self.isdst == other.isdst and + self.abbr == other.abbr and + self.isstd == other.isstd and + self.isgmt == other.isgmt and + self.dstoffset == other.dstoffset) + + __hash__ = None + + def __ne__(self, other): + return not (self == other) + + def __getstate__(self): + state = {} + for name in self.__slots__: + state[name] = getattr(self, name, None) + return state + + def __setstate__(self, state): + for name in self.__slots__: + if name in state: + setattr(self, name, state[name]) + + +class _tzfile(object): + """ + Lightweight class for holding the relevant transition and time zone + information read from binary tzfiles. + """ + attrs = ['trans_list', 'trans_list_utc', 'trans_idx', 'ttinfo_list', + 'ttinfo_std', 'ttinfo_dst', 'ttinfo_before', 'ttinfo_first'] + + def __init__(self, **kwargs): + for attr in self.attrs: + setattr(self, attr, kwargs.get(attr, None)) + + +class tzfile(_tzinfo): + """ + This is a ``tzinfo`` subclass that allows one to use the ``tzfile(5)`` + format timezone files to extract current and historical zone information. + + :param fileobj: + This can be an opened file stream or a file name that the time zone + information can be read from. + + :param filename: + This is an optional parameter specifying the source of the time zone + information in the event that ``fileobj`` is a file object. If omitted + and ``fileobj`` is a file stream, this parameter will be set either to + ``fileobj``'s ``name`` attribute or to ``repr(fileobj)``. + + See `Sources for Time Zone and Daylight Saving Time Data + `_ for more information. + Time zone files can be compiled from the `IANA Time Zone database files + `_ with the `zic time zone compiler + `_ + + .. note:: + + Only construct a ``tzfile`` directly if you have a specific timezone + file on disk that you want to read into a Python ``tzinfo`` object. + If you want to get a ``tzfile`` representing a specific IANA zone, + (e.g. ``'America/New_York'``), you should call + :func:`dateutil.tz.gettz` with the zone identifier. + + + **Examples:** + + Using the US Eastern time zone as an example, we can see that a ``tzfile`` + provides time zone information for the standard Daylight Saving offsets: + + .. testsetup:: tzfile + + from dateutil.tz import gettz + from datetime import datetime + + .. doctest:: tzfile + + >>> NYC = gettz('America/New_York') + >>> NYC + tzfile('/usr/share/zoneinfo/America/New_York') + + >>> print(datetime(2016, 1, 3, tzinfo=NYC)) # EST + 2016-01-03 00:00:00-05:00 + + >>> print(datetime(2016, 7, 7, tzinfo=NYC)) # EDT + 2016-07-07 00:00:00-04:00 + + + The ``tzfile`` structure contains a fully history of the time zone, + so historical dates will also have the right offsets. For example, before + the adoption of the UTC standards, New York used local solar mean time: + + .. doctest:: tzfile + + >>> print(datetime(1901, 4, 12, tzinfo=NYC)) # LMT + 1901-04-12 00:00:00-04:56 + + And during World War II, New York was on "Eastern War Time", which was a + state of permanent daylight saving time: + + .. doctest:: tzfile + + >>> print(datetime(1944, 2, 7, tzinfo=NYC)) # EWT + 1944-02-07 00:00:00-04:00 + + """ + + def __init__(self, fileobj, filename=None): + super(tzfile, self).__init__() + + file_opened_here = False + if isinstance(fileobj, string_types): + self._filename = fileobj + fileobj = open(fileobj, 'rb') + file_opened_here = True + elif filename is not None: + self._filename = filename + elif hasattr(fileobj, "name"): + self._filename = fileobj.name + else: + self._filename = repr(fileobj) + + if fileobj is not None: + if not file_opened_here: + fileobj = _nullcontext(fileobj) + + with fileobj as file_stream: + tzobj = self._read_tzfile(file_stream) + + self._set_tzdata(tzobj) + + def _set_tzdata(self, tzobj): + """ Set the time zone data of this object from a _tzfile object """ + # Copy the relevant attributes over as private attributes + for attr in _tzfile.attrs: + setattr(self, '_' + attr, getattr(tzobj, attr)) + + def _read_tzfile(self, fileobj): + out = _tzfile() + + # From tzfile(5): + # + # The time zone information files used by tzset(3) + # begin with the magic characters "TZif" to identify + # them as time zone information files, followed by + # sixteen bytes reserved for future use, followed by + # six four-byte values of type long, written in a + # ``standard'' byte order (the high-order byte + # of the value is written first). + if fileobj.read(4).decode() != "TZif": + raise ValueError("magic not found") + + fileobj.read(16) + + ( + # The number of UTC/local indicators stored in the file. + ttisgmtcnt, + + # The number of standard/wall indicators stored in the file. + ttisstdcnt, + + # The number of leap seconds for which data is + # stored in the file. + leapcnt, + + # The number of "transition times" for which data + # is stored in the file. + timecnt, + + # The number of "local time types" for which data + # is stored in the file (must not be zero). + typecnt, + + # The number of characters of "time zone + # abbreviation strings" stored in the file. + charcnt, + + ) = struct.unpack(">6l", fileobj.read(24)) + + # The above header is followed by tzh_timecnt four-byte + # values of type long, sorted in ascending order. + # These values are written in ``standard'' byte order. + # Each is used as a transition time (as returned by + # time(2)) at which the rules for computing local time + # change. + + if timecnt: + out.trans_list_utc = list(struct.unpack(">%dl" % timecnt, + fileobj.read(timecnt*4))) + else: + out.trans_list_utc = [] + + # Next come tzh_timecnt one-byte values of type unsigned + # char; each one tells which of the different types of + # ``local time'' types described in the file is associated + # with the same-indexed transition time. These values + # serve as indices into an array of ttinfo structures that + # appears next in the file. + + if timecnt: + out.trans_idx = struct.unpack(">%dB" % timecnt, + fileobj.read(timecnt)) + else: + out.trans_idx = [] + + # Each ttinfo structure is written as a four-byte value + # for tt_gmtoff of type long, in a standard byte + # order, followed by a one-byte value for tt_isdst + # and a one-byte value for tt_abbrind. In each + # structure, tt_gmtoff gives the number of + # seconds to be added to UTC, tt_isdst tells whether + # tm_isdst should be set by localtime(3), and + # tt_abbrind serves as an index into the array of + # time zone abbreviation characters that follow the + # ttinfo structure(s) in the file. + + ttinfo = [] + + for i in range(typecnt): + ttinfo.append(struct.unpack(">lbb", fileobj.read(6))) + + abbr = fileobj.read(charcnt).decode() + + # Then there are tzh_leapcnt pairs of four-byte + # values, written in standard byte order; the + # first value of each pair gives the time (as + # returned by time(2)) at which a leap second + # occurs; the second gives the total number of + # leap seconds to be applied after the given time. + # The pairs of values are sorted in ascending order + # by time. + + # Not used, for now (but seek for correct file position) + if leapcnt: + fileobj.seek(leapcnt * 8, os.SEEK_CUR) + + # Then there are tzh_ttisstdcnt standard/wall + # indicators, each stored as a one-byte value; + # they tell whether the transition times associated + # with local time types were specified as standard + # time or wall clock time, and are used when + # a time zone file is used in handling POSIX-style + # time zone environment variables. + + if ttisstdcnt: + isstd = struct.unpack(">%db" % ttisstdcnt, + fileobj.read(ttisstdcnt)) + + # Finally, there are tzh_ttisgmtcnt UTC/local + # indicators, each stored as a one-byte value; + # they tell whether the transition times associated + # with local time types were specified as UTC or + # local time, and are used when a time zone file + # is used in handling POSIX-style time zone envi- + # ronment variables. + + if ttisgmtcnt: + isgmt = struct.unpack(">%db" % ttisgmtcnt, + fileobj.read(ttisgmtcnt)) + + # Build ttinfo list + out.ttinfo_list = [] + for i in range(typecnt): + gmtoff, isdst, abbrind = ttinfo[i] + gmtoff = _get_supported_offset(gmtoff) + tti = _ttinfo() + tti.offset = gmtoff + tti.dstoffset = datetime.timedelta(0) + tti.delta = datetime.timedelta(seconds=gmtoff) + tti.isdst = isdst + tti.abbr = abbr[abbrind:abbr.find('\x00', abbrind)] + tti.isstd = (ttisstdcnt > i and isstd[i] != 0) + tti.isgmt = (ttisgmtcnt > i and isgmt[i] != 0) + out.ttinfo_list.append(tti) + + # Replace ttinfo indexes for ttinfo objects. + out.trans_idx = [out.ttinfo_list[idx] for idx in out.trans_idx] + + # Set standard, dst, and before ttinfos. before will be + # used when a given time is before any transitions, + # and will be set to the first non-dst ttinfo, or to + # the first dst, if all of them are dst. + out.ttinfo_std = None + out.ttinfo_dst = None + out.ttinfo_before = None + if out.ttinfo_list: + if not out.trans_list_utc: + out.ttinfo_std = out.ttinfo_first = out.ttinfo_list[0] + else: + for i in range(timecnt-1, -1, -1): + tti = out.trans_idx[i] + if not out.ttinfo_std and not tti.isdst: + out.ttinfo_std = tti + elif not out.ttinfo_dst and tti.isdst: + out.ttinfo_dst = tti + + if out.ttinfo_std and out.ttinfo_dst: + break + else: + if out.ttinfo_dst and not out.ttinfo_std: + out.ttinfo_std = out.ttinfo_dst + + for tti in out.ttinfo_list: + if not tti.isdst: + out.ttinfo_before = tti + break + else: + out.ttinfo_before = out.ttinfo_list[0] + + # Now fix transition times to become relative to wall time. + # + # I'm not sure about this. In my tests, the tz source file + # is setup to wall time, and in the binary file isstd and + # isgmt are off, so it should be in wall time. OTOH, it's + # always in gmt time. Let me know if you have comments + # about this. + lastdst = None + lastoffset = None + lastdstoffset = None + lastbaseoffset = None + out.trans_list = [] + + for i, tti in enumerate(out.trans_idx): + offset = tti.offset + dstoffset = 0 + + if lastdst is not None: + if tti.isdst: + if not lastdst: + dstoffset = offset - lastoffset + + if not dstoffset and lastdstoffset: + dstoffset = lastdstoffset + + tti.dstoffset = datetime.timedelta(seconds=dstoffset) + lastdstoffset = dstoffset + + # If a time zone changes its base offset during a DST transition, + # then you need to adjust by the previous base offset to get the + # transition time in local time. Otherwise you use the current + # base offset. Ideally, I would have some mathematical proof of + # why this is true, but I haven't really thought about it enough. + baseoffset = offset - dstoffset + adjustment = baseoffset + if (lastbaseoffset is not None and baseoffset != lastbaseoffset + and tti.isdst != lastdst): + # The base DST has changed + adjustment = lastbaseoffset + + lastdst = tti.isdst + lastoffset = offset + lastbaseoffset = baseoffset + + out.trans_list.append(out.trans_list_utc[i] + adjustment) + + out.trans_idx = tuple(out.trans_idx) + out.trans_list = tuple(out.trans_list) + out.trans_list_utc = tuple(out.trans_list_utc) + + return out + + def _find_last_transition(self, dt, in_utc=False): + # If there's no list, there are no transitions to find + if not self._trans_list: + return None + + timestamp = _datetime_to_timestamp(dt) + + # Find where the timestamp fits in the transition list - if the + # timestamp is a transition time, it's part of the "after" period. + trans_list = self._trans_list_utc if in_utc else self._trans_list + idx = bisect.bisect_right(trans_list, timestamp) + + # We want to know when the previous transition was, so subtract off 1 + return idx - 1 + + def _get_ttinfo(self, idx): + # For no list or after the last transition, default to _ttinfo_std + if idx is None or (idx + 1) >= len(self._trans_list): + return self._ttinfo_std + + # If there is a list and the time is before it, return _ttinfo_before + if idx < 0: + return self._ttinfo_before + + return self._trans_idx[idx] + + def _find_ttinfo(self, dt): + idx = self._resolve_ambiguous_time(dt) + + return self._get_ttinfo(idx) + + def fromutc(self, dt): + """ + The ``tzfile`` implementation of :py:func:`datetime.tzinfo.fromutc`. + + :param dt: + A :py:class:`datetime.datetime` object. + + :raises TypeError: + Raised if ``dt`` is not a :py:class:`datetime.datetime` object. + + :raises ValueError: + Raised if this is called with a ``dt`` which does not have this + ``tzinfo`` attached. + + :return: + Returns a :py:class:`datetime.datetime` object representing the + wall time in ``self``'s time zone. + """ + # These isinstance checks are in datetime.tzinfo, so we'll preserve + # them, even if we don't care about duck typing. + if not isinstance(dt, datetime.datetime): + raise TypeError("fromutc() requires a datetime argument") + + if dt.tzinfo is not self: + raise ValueError("dt.tzinfo is not self") + + # First treat UTC as wall time and get the transition we're in. + idx = self._find_last_transition(dt, in_utc=True) + tti = self._get_ttinfo(idx) + + dt_out = dt + datetime.timedelta(seconds=tti.offset) + + fold = self.is_ambiguous(dt_out, idx=idx) + + return enfold(dt_out, fold=int(fold)) + + def is_ambiguous(self, dt, idx=None): + """ + Whether or not the "wall time" of a given datetime is ambiguous in this + zone. + + :param dt: + A :py:class:`datetime.datetime`, naive or time zone aware. + + + :return: + Returns ``True`` if ambiguous, ``False`` otherwise. + + .. versionadded:: 2.6.0 + """ + if idx is None: + idx = self._find_last_transition(dt) + + # Calculate the difference in offsets from current to previous + timestamp = _datetime_to_timestamp(dt) + tti = self._get_ttinfo(idx) + + if idx is None or idx <= 0: + return False + + od = self._get_ttinfo(idx - 1).offset - tti.offset + tt = self._trans_list[idx] # Transition time + + return timestamp < tt + od + + def _resolve_ambiguous_time(self, dt): + idx = self._find_last_transition(dt) + + # If we have no transitions, return the index + _fold = self._fold(dt) + if idx is None or idx == 0: + return idx + + # If it's ambiguous and we're in a fold, shift to a different index. + idx_offset = int(not _fold and self.is_ambiguous(dt, idx)) + + return idx - idx_offset + + def utcoffset(self, dt): + if dt is None: + return None + + if not self._ttinfo_std: + return ZERO + + return self._find_ttinfo(dt).delta + + def dst(self, dt): + if dt is None: + return None + + if not self._ttinfo_dst: + return ZERO + + tti = self._find_ttinfo(dt) + + if not tti.isdst: + return ZERO + + # The documentation says that utcoffset()-dst() must + # be constant for every dt. + return tti.dstoffset + + @tzname_in_python2 + def tzname(self, dt): + if not self._ttinfo_std or dt is None: + return None + return self._find_ttinfo(dt).abbr + + def __eq__(self, other): + if not isinstance(other, tzfile): + return NotImplemented + return (self._trans_list == other._trans_list and + self._trans_idx == other._trans_idx and + self._ttinfo_list == other._ttinfo_list) + + __hash__ = None + + def __ne__(self, other): + return not (self == other) + + def __repr__(self): + return "%s(%s)" % (self.__class__.__name__, repr(self._filename)) + + def __reduce__(self): + return self.__reduce_ex__(None) + + def __reduce_ex__(self, protocol): + return (self.__class__, (None, self._filename), self.__dict__) + + +class tzrange(tzrangebase): + """ + The ``tzrange`` object is a time zone specified by a set of offsets and + abbreviations, equivalent to the way the ``TZ`` variable can be specified + in POSIX-like systems, but using Python delta objects to specify DST + start, end and offsets. + + :param stdabbr: + The abbreviation for standard time (e.g. ``'EST'``). + + :param stdoffset: + An integer or :class:`datetime.timedelta` object or equivalent + specifying the base offset from UTC. + + If unspecified, +00:00 is used. + + :param dstabbr: + The abbreviation for DST / "Summer" time (e.g. ``'EDT'``). + + If specified, with no other DST information, DST is assumed to occur + and the default behavior or ``dstoffset``, ``start`` and ``end`` is + used. If unspecified and no other DST information is specified, it + is assumed that this zone has no DST. + + If this is unspecified and other DST information is *is* specified, + DST occurs in the zone but the time zone abbreviation is left + unchanged. + + :param dstoffset: + A an integer or :class:`datetime.timedelta` object or equivalent + specifying the UTC offset during DST. If unspecified and any other DST + information is specified, it is assumed to be the STD offset +1 hour. + + :param start: + A :class:`relativedelta.relativedelta` object or equivalent specifying + the time and time of year that daylight savings time starts. To + specify, for example, that DST starts at 2AM on the 2nd Sunday in + March, pass: + + ``relativedelta(hours=2, month=3, day=1, weekday=SU(+2))`` + + If unspecified and any other DST information is specified, the default + value is 2 AM on the first Sunday in April. + + :param end: + A :class:`relativedelta.relativedelta` object or equivalent + representing the time and time of year that daylight savings time + ends, with the same specification method as in ``start``. One note is + that this should point to the first time in the *standard* zone, so if + a transition occurs at 2AM in the DST zone and the clocks are set back + 1 hour to 1AM, set the ``hours`` parameter to +1. + + + **Examples:** + + .. testsetup:: tzrange + + from dateutil.tz import tzrange, tzstr + + .. doctest:: tzrange + + >>> tzstr('EST5EDT') == tzrange("EST", -18000, "EDT") + True + + >>> from dateutil.relativedelta import * + >>> range1 = tzrange("EST", -18000, "EDT") + >>> range2 = tzrange("EST", -18000, "EDT", -14400, + ... relativedelta(hours=+2, month=4, day=1, + ... weekday=SU(+1)), + ... relativedelta(hours=+1, month=10, day=31, + ... weekday=SU(-1))) + >>> tzstr('EST5EDT') == range1 == range2 + True + + """ + def __init__(self, stdabbr, stdoffset=None, + dstabbr=None, dstoffset=None, + start=None, end=None): + + global relativedelta + from dateutil import relativedelta + + self._std_abbr = stdabbr + self._dst_abbr = dstabbr + + try: + stdoffset = stdoffset.total_seconds() + except (TypeError, AttributeError): + pass + + try: + dstoffset = dstoffset.total_seconds() + except (TypeError, AttributeError): + pass + + if stdoffset is not None: + self._std_offset = datetime.timedelta(seconds=stdoffset) + else: + self._std_offset = ZERO + + if dstoffset is not None: + self._dst_offset = datetime.timedelta(seconds=dstoffset) + elif dstabbr and stdoffset is not None: + self._dst_offset = self._std_offset + datetime.timedelta(hours=+1) + else: + self._dst_offset = ZERO + + if dstabbr and start is None: + self._start_delta = relativedelta.relativedelta( + hours=+2, month=4, day=1, weekday=relativedelta.SU(+1)) + else: + self._start_delta = start + + if dstabbr and end is None: + self._end_delta = relativedelta.relativedelta( + hours=+1, month=10, day=31, weekday=relativedelta.SU(-1)) + else: + self._end_delta = end + + self._dst_base_offset_ = self._dst_offset - self._std_offset + self.hasdst = bool(self._start_delta) + + def transitions(self, year): + """ + For a given year, get the DST on and off transition times, expressed + always on the standard time side. For zones with no transitions, this + function returns ``None``. + + :param year: + The year whose transitions you would like to query. + + :return: + Returns a :class:`tuple` of :class:`datetime.datetime` objects, + ``(dston, dstoff)`` for zones with an annual DST transition, or + ``None`` for fixed offset zones. + """ + if not self.hasdst: + return None + + base_year = datetime.datetime(year, 1, 1) + + start = base_year + self._start_delta + end = base_year + self._end_delta + + return (start, end) + + def __eq__(self, other): + if not isinstance(other, tzrange): + return NotImplemented + + return (self._std_abbr == other._std_abbr and + self._dst_abbr == other._dst_abbr and + self._std_offset == other._std_offset and + self._dst_offset == other._dst_offset and + self._start_delta == other._start_delta and + self._end_delta == other._end_delta) + + @property + def _dst_base_offset(self): + return self._dst_base_offset_ + + +@six.add_metaclass(_TzStrFactory) +class tzstr(tzrange): + """ + ``tzstr`` objects are time zone objects specified by a time-zone string as + it would be passed to a ``TZ`` variable on POSIX-style systems (see + the `GNU C Library: TZ Variable`_ for more details). + + There is one notable exception, which is that POSIX-style time zones use an + inverted offset format, so normally ``GMT+3`` would be parsed as an offset + 3 hours *behind* GMT. The ``tzstr`` time zone object will parse this as an + offset 3 hours *ahead* of GMT. If you would like to maintain the POSIX + behavior, pass a ``True`` value to ``posix_offset``. + + The :class:`tzrange` object provides the same functionality, but is + specified using :class:`relativedelta.relativedelta` objects. rather than + strings. + + :param s: + A time zone string in ``TZ`` variable format. This can be a + :class:`bytes` (2.x: :class:`str`), :class:`str` (2.x: + :class:`unicode`) or a stream emitting unicode characters + (e.g. :class:`StringIO`). + + :param posix_offset: + Optional. If set to ``True``, interpret strings such as ``GMT+3`` or + ``UTC+3`` as being 3 hours *behind* UTC rather than ahead, per the + POSIX standard. + + .. caution:: + + Prior to version 2.7.0, this function also supported time zones + in the format: + + * ``EST5EDT,4,0,6,7200,10,0,26,7200,3600`` + * ``EST5EDT,4,1,0,7200,10,-1,0,7200,3600`` + + This format is non-standard and has been deprecated; this function + will raise a :class:`DeprecatedTZFormatWarning` until + support is removed in a future version. + + .. _`GNU C Library: TZ Variable`: + https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html + """ + def __init__(self, s, posix_offset=False): + global parser + from dateutil.parser import _parser as parser + + self._s = s + + res = parser._parsetz(s) + if res is None or res.any_unused_tokens: + raise ValueError("unknown string format") + + # Here we break the compatibility with the TZ variable handling. + # GMT-3 actually *means* the timezone -3. + if res.stdabbr in ("GMT", "UTC") and not posix_offset: + res.stdoffset *= -1 + + # We must initialize it first, since _delta() needs + # _std_offset and _dst_offset set. Use False in start/end + # to avoid building it two times. + tzrange.__init__(self, res.stdabbr, res.stdoffset, + res.dstabbr, res.dstoffset, + start=False, end=False) + + if not res.dstabbr: + self._start_delta = None + self._end_delta = None + else: + self._start_delta = self._delta(res.start) + if self._start_delta: + self._end_delta = self._delta(res.end, isend=1) + + self.hasdst = bool(self._start_delta) + + def _delta(self, x, isend=0): + from dateutil import relativedelta + kwargs = {} + if x.month is not None: + kwargs["month"] = x.month + if x.weekday is not None: + kwargs["weekday"] = relativedelta.weekday(x.weekday, x.week) + if x.week > 0: + kwargs["day"] = 1 + else: + kwargs["day"] = 31 + elif x.day: + kwargs["day"] = x.day + elif x.yday is not None: + kwargs["yearday"] = x.yday + elif x.jyday is not None: + kwargs["nlyearday"] = x.jyday + if not kwargs: + # Default is to start on first sunday of april, and end + # on last sunday of october. + if not isend: + kwargs["month"] = 4 + kwargs["day"] = 1 + kwargs["weekday"] = relativedelta.SU(+1) + else: + kwargs["month"] = 10 + kwargs["day"] = 31 + kwargs["weekday"] = relativedelta.SU(-1) + if x.time is not None: + kwargs["seconds"] = x.time + else: + # Default is 2AM. + kwargs["seconds"] = 7200 + if isend: + # Convert to standard time, to follow the documented way + # of working with the extra hour. See the documentation + # of the tzinfo class. + delta = self._dst_offset - self._std_offset + kwargs["seconds"] -= delta.seconds + delta.days * 86400 + return relativedelta.relativedelta(**kwargs) + + def __repr__(self): + return "%s(%s)" % (self.__class__.__name__, repr(self._s)) + + +class _tzicalvtzcomp(object): + def __init__(self, tzoffsetfrom, tzoffsetto, isdst, + tzname=None, rrule=None): + self.tzoffsetfrom = datetime.timedelta(seconds=tzoffsetfrom) + self.tzoffsetto = datetime.timedelta(seconds=tzoffsetto) + self.tzoffsetdiff = self.tzoffsetto - self.tzoffsetfrom + self.isdst = isdst + self.tzname = tzname + self.rrule = rrule + + +class _tzicalvtz(_tzinfo): + def __init__(self, tzid, comps=[]): + super(_tzicalvtz, self).__init__() + + self._tzid = tzid + self._comps = comps + self._cachedate = [] + self._cachecomp = [] + self._cache_lock = _thread.allocate_lock() + + def _find_comp(self, dt): + if len(self._comps) == 1: + return self._comps[0] + + dt = dt.replace(tzinfo=None) + + try: + with self._cache_lock: + return self._cachecomp[self._cachedate.index( + (dt, self._fold(dt)))] + except ValueError: + pass + + lastcompdt = None + lastcomp = None + + for comp in self._comps: + compdt = self._find_compdt(comp, dt) + + if compdt and (not lastcompdt or lastcompdt < compdt): + lastcompdt = compdt + lastcomp = comp + + if not lastcomp: + # RFC says nothing about what to do when a given + # time is before the first onset date. We'll look for the + # first standard component, or the first component, if + # none is found. + for comp in self._comps: + if not comp.isdst: + lastcomp = comp + break + else: + lastcomp = comp[0] + + with self._cache_lock: + self._cachedate.insert(0, (dt, self._fold(dt))) + self._cachecomp.insert(0, lastcomp) + + if len(self._cachedate) > 10: + self._cachedate.pop() + self._cachecomp.pop() + + return lastcomp + + def _find_compdt(self, comp, dt): + if comp.tzoffsetdiff < ZERO and self._fold(dt): + dt -= comp.tzoffsetdiff + + compdt = comp.rrule.before(dt, inc=True) + + return compdt + + def utcoffset(self, dt): + if dt is None: + return None + + return self._find_comp(dt).tzoffsetto + + def dst(self, dt): + comp = self._find_comp(dt) + if comp.isdst: + return comp.tzoffsetdiff + else: + return ZERO + + @tzname_in_python2 + def tzname(self, dt): + return self._find_comp(dt).tzname + + def __repr__(self): + return "" % repr(self._tzid) + + __reduce__ = object.__reduce__ + + +class tzical(object): + """ + This object is designed to parse an iCalendar-style ``VTIMEZONE`` structure + as set out in `RFC 5545`_ Section 4.6.5 into one or more `tzinfo` objects. + + :param `fileobj`: + A file or stream in iCalendar format, which should be UTF-8 encoded + with CRLF endings. + + .. _`RFC 5545`: https://tools.ietf.org/html/rfc5545 + """ + def __init__(self, fileobj): + global rrule + from dateutil import rrule + + if isinstance(fileobj, string_types): + self._s = fileobj + # ical should be encoded in UTF-8 with CRLF + fileobj = open(fileobj, 'r') + else: + self._s = getattr(fileobj, 'name', repr(fileobj)) + fileobj = _nullcontext(fileobj) + + self._vtz = {} + + with fileobj as fobj: + self._parse_rfc(fobj.read()) + + def keys(self): + """ + Retrieves the available time zones as a list. + """ + return list(self._vtz.keys()) + + def get(self, tzid=None): + """ + Retrieve a :py:class:`datetime.tzinfo` object by its ``tzid``. + + :param tzid: + If there is exactly one time zone available, omitting ``tzid`` + or passing :py:const:`None` value returns it. Otherwise a valid + key (which can be retrieved from :func:`keys`) is required. + + :raises ValueError: + Raised if ``tzid`` is not specified but there are either more + or fewer than 1 zone defined. + + :returns: + Returns either a :py:class:`datetime.tzinfo` object representing + the relevant time zone or :py:const:`None` if the ``tzid`` was + not found. + """ + if tzid is None: + if len(self._vtz) == 0: + raise ValueError("no timezones defined") + elif len(self._vtz) > 1: + raise ValueError("more than one timezone available") + tzid = next(iter(self._vtz)) + + return self._vtz.get(tzid) + + def _parse_offset(self, s): + s = s.strip() + if not s: + raise ValueError("empty offset") + if s[0] in ('+', '-'): + signal = (-1, +1)[s[0] == '+'] + s = s[1:] + else: + signal = +1 + if len(s) == 4: + return (int(s[:2]) * 3600 + int(s[2:]) * 60) * signal + elif len(s) == 6: + return (int(s[:2]) * 3600 + int(s[2:4]) * 60 + int(s[4:])) * signal + else: + raise ValueError("invalid offset: " + s) + + def _parse_rfc(self, s): + lines = s.splitlines() + if not lines: + raise ValueError("empty string") + + # Unfold + i = 0 + while i < len(lines): + line = lines[i].rstrip() + if not line: + del lines[i] + elif i > 0 and line[0] == " ": + lines[i-1] += line[1:] + del lines[i] + else: + i += 1 + + tzid = None + comps = [] + invtz = False + comptype = None + for line in lines: + if not line: + continue + name, value = line.split(':', 1) + parms = name.split(';') + if not parms: + raise ValueError("empty property name") + name = parms[0].upper() + parms = parms[1:] + if invtz: + if name == "BEGIN": + if value in ("STANDARD", "DAYLIGHT"): + # Process component + pass + else: + raise ValueError("unknown component: "+value) + comptype = value + founddtstart = False + tzoffsetfrom = None + tzoffsetto = None + rrulelines = [] + tzname = None + elif name == "END": + if value == "VTIMEZONE": + if comptype: + raise ValueError("component not closed: "+comptype) + if not tzid: + raise ValueError("mandatory TZID not found") + if not comps: + raise ValueError( + "at least one component is needed") + # Process vtimezone + self._vtz[tzid] = _tzicalvtz(tzid, comps) + invtz = False + elif value == comptype: + if not founddtstart: + raise ValueError("mandatory DTSTART not found") + if tzoffsetfrom is None: + raise ValueError( + "mandatory TZOFFSETFROM not found") + if tzoffsetto is None: + raise ValueError( + "mandatory TZOFFSETFROM not found") + # Process component + rr = None + if rrulelines: + rr = rrule.rrulestr("\n".join(rrulelines), + compatible=True, + ignoretz=True, + cache=True) + comp = _tzicalvtzcomp(tzoffsetfrom, tzoffsetto, + (comptype == "DAYLIGHT"), + tzname, rr) + comps.append(comp) + comptype = None + else: + raise ValueError("invalid component end: "+value) + elif comptype: + if name == "DTSTART": + # DTSTART in VTIMEZONE takes a subset of valid RRULE + # values under RFC 5545. + for parm in parms: + if parm != 'VALUE=DATE-TIME': + msg = ('Unsupported DTSTART param in ' + + 'VTIMEZONE: ' + parm) + raise ValueError(msg) + rrulelines.append(line) + founddtstart = True + elif name in ("RRULE", "RDATE", "EXRULE", "EXDATE"): + rrulelines.append(line) + elif name == "TZOFFSETFROM": + if parms: + raise ValueError( + "unsupported %s parm: %s " % (name, parms[0])) + tzoffsetfrom = self._parse_offset(value) + elif name == "TZOFFSETTO": + if parms: + raise ValueError( + "unsupported TZOFFSETTO parm: "+parms[0]) + tzoffsetto = self._parse_offset(value) + elif name == "TZNAME": + if parms: + raise ValueError( + "unsupported TZNAME parm: "+parms[0]) + tzname = value + elif name == "COMMENT": + pass + else: + raise ValueError("unsupported property: "+name) + else: + if name == "TZID": + if parms: + raise ValueError( + "unsupported TZID parm: "+parms[0]) + tzid = value + elif name in ("TZURL", "LAST-MODIFIED", "COMMENT"): + pass + else: + raise ValueError("unsupported property: "+name) + elif name == "BEGIN" and value == "VTIMEZONE": + tzid = None + comps = [] + invtz = True + + def __repr__(self): + return "%s(%s)" % (self.__class__.__name__, repr(self._s)) + + +if sys.platform != "win32": + TZFILES = ["/etc/localtime", "localtime"] + TZPATHS = ["/usr/share/zoneinfo", + "/usr/lib/zoneinfo", + "/usr/share/lib/zoneinfo", + "/etc/zoneinfo"] +else: + TZFILES = [] + TZPATHS = [] + + +def __get_gettz(): + tzlocal_classes = (tzlocal,) + if tzwinlocal is not None: + tzlocal_classes += (tzwinlocal,) + + class GettzFunc(object): + """ + Retrieve a time zone object from a string representation + + This function is intended to retrieve the :py:class:`tzinfo` subclass + that best represents the time zone that would be used if a POSIX + `TZ variable`_ were set to the same value. + + If no argument or an empty string is passed to ``gettz``, local time + is returned: + + .. code-block:: python3 + + >>> gettz() + tzfile('/etc/localtime') + + This function is also the preferred way to map IANA tz database keys + to :class:`tzfile` objects: + + .. code-block:: python3 + + >>> gettz('Pacific/Kiritimati') + tzfile('/usr/share/zoneinfo/Pacific/Kiritimati') + + On Windows, the standard is extended to include the Windows-specific + zone names provided by the operating system: + + .. code-block:: python3 + + >>> gettz('Egypt Standard Time') + tzwin('Egypt Standard Time') + + Passing a GNU ``TZ`` style string time zone specification returns a + :class:`tzstr` object: + + .. code-block:: python3 + + >>> gettz('AEST-10AEDT-11,M10.1.0/2,M4.1.0/3') + tzstr('AEST-10AEDT-11,M10.1.0/2,M4.1.0/3') + + :param name: + A time zone name (IANA, or, on Windows, Windows keys), location of + a ``tzfile(5)`` zoneinfo file or ``TZ`` variable style time zone + specifier. An empty string, no argument or ``None`` is interpreted + as local time. + + :return: + Returns an instance of one of ``dateutil``'s :py:class:`tzinfo` + subclasses. + + .. versionchanged:: 2.7.0 + + After version 2.7.0, any two calls to ``gettz`` using the same + input strings will return the same object: + + .. code-block:: python3 + + >>> tz.gettz('America/Chicago') is tz.gettz('America/Chicago') + True + + In addition to improving performance, this ensures that + `"same zone" semantics`_ are used for datetimes in the same zone. + + + .. _`TZ variable`: + https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html + + .. _`"same zone" semantics`: + https://blog.ganssle.io/articles/2018/02/aware-datetime-arithmetic.html + """ + def __init__(self): + + self.__instances = weakref.WeakValueDictionary() + self.__strong_cache_size = 8 + self.__strong_cache = OrderedDict() + self._cache_lock = _thread.allocate_lock() + + def __call__(self, name=None): + with self._cache_lock: + rv = self.__instances.get(name, None) + + if rv is None: + rv = self.nocache(name=name) + if not (name is None + or isinstance(rv, tzlocal_classes) + or rv is None): + # tzlocal is slightly more complicated than the other + # time zone providers because it depends on environment + # at construction time, so don't cache that. + # + # We also cannot store weak references to None, so we + # will also not store that. + self.__instances[name] = rv + else: + # No need for strong caching, return immediately + return rv + + self.__strong_cache[name] = self.__strong_cache.pop(name, rv) + + if len(self.__strong_cache) > self.__strong_cache_size: + self.__strong_cache.popitem(last=False) + + return rv + + def set_cache_size(self, size): + with self._cache_lock: + self.__strong_cache_size = size + while len(self.__strong_cache) > size: + self.__strong_cache.popitem(last=False) + + def cache_clear(self): + with self._cache_lock: + self.__instances = weakref.WeakValueDictionary() + self.__strong_cache.clear() + + @staticmethod + def nocache(name=None): + """A non-cached version of gettz""" + tz = None + if not name: + try: + name = os.environ["TZ"] + except KeyError: + pass + if name is None or name in ("", ":"): + for filepath in TZFILES: + if not os.path.isabs(filepath): + filename = filepath + for path in TZPATHS: + filepath = os.path.join(path, filename) + if os.path.isfile(filepath): + break + else: + continue + if os.path.isfile(filepath): + try: + tz = tzfile(filepath) + break + except (IOError, OSError, ValueError): + pass + else: + tz = tzlocal() + else: + try: + if name.startswith(":"): + name = name[1:] + except TypeError as e: + if isinstance(name, bytes): + new_msg = "gettz argument should be str, not bytes" + six.raise_from(TypeError(new_msg), e) + else: + raise + if os.path.isabs(name): + if os.path.isfile(name): + tz = tzfile(name) + else: + tz = None + else: + for path in TZPATHS: + filepath = os.path.join(path, name) + if not os.path.isfile(filepath): + filepath = filepath.replace(' ', '_') + if not os.path.isfile(filepath): + continue + try: + tz = tzfile(filepath) + break + except (IOError, OSError, ValueError): + pass + else: + tz = None + if tzwin is not None: + try: + tz = tzwin(name) + except (WindowsError, UnicodeEncodeError): + # UnicodeEncodeError is for Python 2.7 compat + tz = None + + if not tz: + from dateutil.zoneinfo import get_zonefile_instance + tz = get_zonefile_instance().get(name) + + if not tz: + for c in name: + # name is not a tzstr unless it has at least + # one offset. For short values of "name", an + # explicit for loop seems to be the fastest way + # To determine if a string contains a digit + if c in "0123456789": + try: + tz = tzstr(name) + except ValueError: + pass + break + else: + if name in ("GMT", "UTC"): + tz = UTC + elif name in time.tzname: + tz = tzlocal() + return tz + + return GettzFunc() + + +gettz = __get_gettz() +del __get_gettz + + +def datetime_exists(dt, tz=None): + """ + Given a datetime and a time zone, determine whether or not a given datetime + would fall in a gap. + + :param dt: + A :class:`datetime.datetime` (whose time zone will be ignored if ``tz`` + is provided.) + + :param tz: + A :class:`datetime.tzinfo` with support for the ``fold`` attribute. If + ``None`` or not provided, the datetime's own time zone will be used. + + :return: + Returns a boolean value whether or not the "wall time" exists in + ``tz``. + + .. versionadded:: 2.7.0 + """ + if tz is None: + if dt.tzinfo is None: + raise ValueError('Datetime is naive and no time zone provided.') + tz = dt.tzinfo + + dt = dt.replace(tzinfo=None) + + # This is essentially a test of whether or not the datetime can survive + # a round trip to UTC. + dt_rt = dt.replace(tzinfo=tz).astimezone(UTC).astimezone(tz) + dt_rt = dt_rt.replace(tzinfo=None) + + return dt == dt_rt + + +def datetime_ambiguous(dt, tz=None): + """ + Given a datetime and a time zone, determine whether or not a given datetime + is ambiguous (i.e if there are two times differentiated only by their DST + status). + + :param dt: + A :class:`datetime.datetime` (whose time zone will be ignored if ``tz`` + is provided.) + + :param tz: + A :class:`datetime.tzinfo` with support for the ``fold`` attribute. If + ``None`` or not provided, the datetime's own time zone will be used. + + :return: + Returns a boolean value whether or not the "wall time" is ambiguous in + ``tz``. + + .. versionadded:: 2.6.0 + """ + if tz is None: + if dt.tzinfo is None: + raise ValueError('Datetime is naive and no time zone provided.') + + tz = dt.tzinfo + + # If a time zone defines its own "is_ambiguous" function, we'll use that. + is_ambiguous_fn = getattr(tz, 'is_ambiguous', None) + if is_ambiguous_fn is not None: + try: + return tz.is_ambiguous(dt) + except Exception: + pass + + # If it doesn't come out and tell us it's ambiguous, we'll just check if + # the fold attribute has any effect on this particular date and time. + dt = dt.replace(tzinfo=tz) + wall_0 = enfold(dt, fold=0) + wall_1 = enfold(dt, fold=1) + + same_offset = wall_0.utcoffset() == wall_1.utcoffset() + same_dst = wall_0.dst() == wall_1.dst() + + return not (same_offset and same_dst) + + +def resolve_imaginary(dt): + """ + Given a datetime that may be imaginary, return an existing datetime. + + This function assumes that an imaginary datetime represents what the + wall time would be in a zone had the offset transition not occurred, so + it will always fall forward by the transition's change in offset. + + .. doctest:: + + >>> from dateutil import tz + >>> from datetime import datetime + >>> NYC = tz.gettz('America/New_York') + >>> print(tz.resolve_imaginary(datetime(2017, 3, 12, 2, 30, tzinfo=NYC))) + 2017-03-12 03:30:00-04:00 + + >>> KIR = tz.gettz('Pacific/Kiritimati') + >>> print(tz.resolve_imaginary(datetime(1995, 1, 1, 12, 30, tzinfo=KIR))) + 1995-01-02 12:30:00+14:00 + + As a note, :func:`datetime.astimezone` is guaranteed to produce a valid, + existing datetime, so a round-trip to and from UTC is sufficient to get + an extant datetime, however, this generally "falls back" to an earlier time + rather than falling forward to the STD side (though no guarantees are made + about this behavior). + + :param dt: + A :class:`datetime.datetime` which may or may not exist. + + :return: + Returns an existing :class:`datetime.datetime`. If ``dt`` was not + imaginary, the datetime returned is guaranteed to be the same object + passed to the function. + + .. versionadded:: 2.7.0 + """ + if dt.tzinfo is not None and not datetime_exists(dt): + + curr_offset = (dt + datetime.timedelta(hours=24)).utcoffset() + old_offset = (dt - datetime.timedelta(hours=24)).utcoffset() + + dt += curr_offset - old_offset + + return dt + + +def _datetime_to_timestamp(dt): + """ + Convert a :class:`datetime.datetime` object to an epoch timestamp in + seconds since January 1, 1970, ignoring the time zone. + """ + return (dt.replace(tzinfo=None) - EPOCH).total_seconds() + + +if sys.version_info >= (3, 6): + def _get_supported_offset(second_offset): + return second_offset +else: + def _get_supported_offset(second_offset): + # For python pre-3.6, round to full-minutes if that's not the case. + # Python's datetime doesn't accept sub-minute timezones. Check + # http://python.org/sf/1447945 or https://bugs.python.org/issue5288 + # for some information. + old_offset = second_offset + calculated_offset = 60 * ((second_offset + 30) // 60) + return calculated_offset + + +try: + # Python 3.7 feature + from contextlib import nullcontext as _nullcontext +except ImportError: + class _nullcontext(object): + """ + Class for wrapping contexts so that they are passed through in a + with statement. + """ + def __init__(self, context): + self.context = context + + def __enter__(self): + return self.context + + def __exit__(*args, **kwargs): + pass + +# vim:ts=4:sw=4:et diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/tz/win.py b/rep_localstack/lib/python3.12/site-packages/dateutil/tz/win.py new file mode 100644 index 000000000..cde07ba79 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/dateutil/tz/win.py @@ -0,0 +1,370 @@ +# -*- coding: utf-8 -*- +""" +This module provides an interface to the native time zone data on Windows, +including :py:class:`datetime.tzinfo` implementations. + +Attempting to import this module on a non-Windows platform will raise an +:py:obj:`ImportError`. +""" +# This code was originally contributed by Jeffrey Harris. +import datetime +import struct + +from six.moves import winreg +from six import text_type + +try: + import ctypes + from ctypes import wintypes +except ValueError: + # ValueError is raised on non-Windows systems for some horrible reason. + raise ImportError("Running tzwin on non-Windows system") + +from ._common import tzrangebase + +__all__ = ["tzwin", "tzwinlocal", "tzres"] + +ONEWEEK = datetime.timedelta(7) + +TZKEYNAMENT = r"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones" +TZKEYNAME9X = r"SOFTWARE\Microsoft\Windows\CurrentVersion\Time Zones" +TZLOCALKEYNAME = r"SYSTEM\CurrentControlSet\Control\TimeZoneInformation" + + +def _settzkeyname(): + handle = winreg.ConnectRegistry(None, winreg.HKEY_LOCAL_MACHINE) + try: + winreg.OpenKey(handle, TZKEYNAMENT).Close() + TZKEYNAME = TZKEYNAMENT + except WindowsError: + TZKEYNAME = TZKEYNAME9X + handle.Close() + return TZKEYNAME + + +TZKEYNAME = _settzkeyname() + + +class tzres(object): + """ + Class for accessing ``tzres.dll``, which contains timezone name related + resources. + + .. versionadded:: 2.5.0 + """ + p_wchar = ctypes.POINTER(wintypes.WCHAR) # Pointer to a wide char + + def __init__(self, tzres_loc='tzres.dll'): + # Load the user32 DLL so we can load strings from tzres + user32 = ctypes.WinDLL('user32') + + # Specify the LoadStringW function + user32.LoadStringW.argtypes = (wintypes.HINSTANCE, + wintypes.UINT, + wintypes.LPWSTR, + ctypes.c_int) + + self.LoadStringW = user32.LoadStringW + self._tzres = ctypes.WinDLL(tzres_loc) + self.tzres_loc = tzres_loc + + def load_name(self, offset): + """ + Load a timezone name from a DLL offset (integer). + + >>> from dateutil.tzwin import tzres + >>> tzr = tzres() + >>> print(tzr.load_name(112)) + 'Eastern Standard Time' + + :param offset: + A positive integer value referring to a string from the tzres dll. + + .. note:: + + Offsets found in the registry are generally of the form + ``@tzres.dll,-114``. The offset in this case is 114, not -114. + + """ + resource = self.p_wchar() + lpBuffer = ctypes.cast(ctypes.byref(resource), wintypes.LPWSTR) + nchar = self.LoadStringW(self._tzres._handle, offset, lpBuffer, 0) + return resource[:nchar] + + def name_from_string(self, tzname_str): + """ + Parse strings as returned from the Windows registry into the time zone + name as defined in the registry. + + >>> from dateutil.tzwin import tzres + >>> tzr = tzres() + >>> print(tzr.name_from_string('@tzres.dll,-251')) + 'Dateline Daylight Time' + >>> print(tzr.name_from_string('Eastern Standard Time')) + 'Eastern Standard Time' + + :param tzname_str: + A timezone name string as returned from a Windows registry key. + + :return: + Returns the localized timezone string from tzres.dll if the string + is of the form `@tzres.dll,-offset`, else returns the input string. + """ + if not tzname_str.startswith('@'): + return tzname_str + + name_splt = tzname_str.split(',-') + try: + offset = int(name_splt[1]) + except: + raise ValueError("Malformed timezone string.") + + return self.load_name(offset) + + +class tzwinbase(tzrangebase): + """tzinfo class based on win32's timezones available in the registry.""" + def __init__(self): + raise NotImplementedError('tzwinbase is an abstract base class') + + def __eq__(self, other): + # Compare on all relevant dimensions, including name. + if not isinstance(other, tzwinbase): + return NotImplemented + + return (self._std_offset == other._std_offset and + self._dst_offset == other._dst_offset and + self._stddayofweek == other._stddayofweek and + self._dstdayofweek == other._dstdayofweek and + self._stdweeknumber == other._stdweeknumber and + self._dstweeknumber == other._dstweeknumber and + self._stdhour == other._stdhour and + self._dsthour == other._dsthour and + self._stdminute == other._stdminute and + self._dstminute == other._dstminute and + self._std_abbr == other._std_abbr and + self._dst_abbr == other._dst_abbr) + + @staticmethod + def list(): + """Return a list of all time zones known to the system.""" + with winreg.ConnectRegistry(None, winreg.HKEY_LOCAL_MACHINE) as handle: + with winreg.OpenKey(handle, TZKEYNAME) as tzkey: + result = [winreg.EnumKey(tzkey, i) + for i in range(winreg.QueryInfoKey(tzkey)[0])] + return result + + def display(self): + """ + Return the display name of the time zone. + """ + return self._display + + def transitions(self, year): + """ + For a given year, get the DST on and off transition times, expressed + always on the standard time side. For zones with no transitions, this + function returns ``None``. + + :param year: + The year whose transitions you would like to query. + + :return: + Returns a :class:`tuple` of :class:`datetime.datetime` objects, + ``(dston, dstoff)`` for zones with an annual DST transition, or + ``None`` for fixed offset zones. + """ + + if not self.hasdst: + return None + + dston = picknthweekday(year, self._dstmonth, self._dstdayofweek, + self._dsthour, self._dstminute, + self._dstweeknumber) + + dstoff = picknthweekday(year, self._stdmonth, self._stddayofweek, + self._stdhour, self._stdminute, + self._stdweeknumber) + + # Ambiguous dates default to the STD side + dstoff -= self._dst_base_offset + + return dston, dstoff + + def _get_hasdst(self): + return self._dstmonth != 0 + + @property + def _dst_base_offset(self): + return self._dst_base_offset_ + + +class tzwin(tzwinbase): + """ + Time zone object created from the zone info in the Windows registry + + These are similar to :py:class:`dateutil.tz.tzrange` objects in that + the time zone data is provided in the format of a single offset rule + for either 0 or 2 time zone transitions per year. + + :param: name + The name of a Windows time zone key, e.g. "Eastern Standard Time". + The full list of keys can be retrieved with :func:`tzwin.list`. + """ + + def __init__(self, name): + self._name = name + + with winreg.ConnectRegistry(None, winreg.HKEY_LOCAL_MACHINE) as handle: + tzkeyname = text_type("{kn}\\{name}").format(kn=TZKEYNAME, name=name) + with winreg.OpenKey(handle, tzkeyname) as tzkey: + keydict = valuestodict(tzkey) + + self._std_abbr = keydict["Std"] + self._dst_abbr = keydict["Dlt"] + + self._display = keydict["Display"] + + # See http://ww_winreg.jsiinc.com/SUBA/tip0300/rh0398.htm + tup = struct.unpack("=3l16h", keydict["TZI"]) + stdoffset = -tup[0]-tup[1] # Bias + StandardBias * -1 + dstoffset = stdoffset-tup[2] # + DaylightBias * -1 + self._std_offset = datetime.timedelta(minutes=stdoffset) + self._dst_offset = datetime.timedelta(minutes=dstoffset) + + # for the meaning see the win32 TIME_ZONE_INFORMATION structure docs + # http://msdn.microsoft.com/en-us/library/windows/desktop/ms725481(v=vs.85).aspx + (self._stdmonth, + self._stddayofweek, # Sunday = 0 + self._stdweeknumber, # Last = 5 + self._stdhour, + self._stdminute) = tup[4:9] + + (self._dstmonth, + self._dstdayofweek, # Sunday = 0 + self._dstweeknumber, # Last = 5 + self._dsthour, + self._dstminute) = tup[12:17] + + self._dst_base_offset_ = self._dst_offset - self._std_offset + self.hasdst = self._get_hasdst() + + def __repr__(self): + return "tzwin(%s)" % repr(self._name) + + def __reduce__(self): + return (self.__class__, (self._name,)) + + +class tzwinlocal(tzwinbase): + """ + Class representing the local time zone information in the Windows registry + + While :class:`dateutil.tz.tzlocal` makes system calls (via the :mod:`time` + module) to retrieve time zone information, ``tzwinlocal`` retrieves the + rules directly from the Windows registry and creates an object like + :class:`dateutil.tz.tzwin`. + + Because Windows does not have an equivalent of :func:`time.tzset`, on + Windows, :class:`dateutil.tz.tzlocal` instances will always reflect the + time zone settings *at the time that the process was started*, meaning + changes to the machine's time zone settings during the run of a program + on Windows will **not** be reflected by :class:`dateutil.tz.tzlocal`. + Because ``tzwinlocal`` reads the registry directly, it is unaffected by + this issue. + """ + def __init__(self): + with winreg.ConnectRegistry(None, winreg.HKEY_LOCAL_MACHINE) as handle: + with winreg.OpenKey(handle, TZLOCALKEYNAME) as tzlocalkey: + keydict = valuestodict(tzlocalkey) + + self._std_abbr = keydict["StandardName"] + self._dst_abbr = keydict["DaylightName"] + + try: + tzkeyname = text_type('{kn}\\{sn}').format(kn=TZKEYNAME, + sn=self._std_abbr) + with winreg.OpenKey(handle, tzkeyname) as tzkey: + _keydict = valuestodict(tzkey) + self._display = _keydict["Display"] + except OSError: + self._display = None + + stdoffset = -keydict["Bias"]-keydict["StandardBias"] + dstoffset = stdoffset-keydict["DaylightBias"] + + self._std_offset = datetime.timedelta(minutes=stdoffset) + self._dst_offset = datetime.timedelta(minutes=dstoffset) + + # For reasons unclear, in this particular key, the day of week has been + # moved to the END of the SYSTEMTIME structure. + tup = struct.unpack("=8h", keydict["StandardStart"]) + + (self._stdmonth, + self._stdweeknumber, # Last = 5 + self._stdhour, + self._stdminute) = tup[1:5] + + self._stddayofweek = tup[7] + + tup = struct.unpack("=8h", keydict["DaylightStart"]) + + (self._dstmonth, + self._dstweeknumber, # Last = 5 + self._dsthour, + self._dstminute) = tup[1:5] + + self._dstdayofweek = tup[7] + + self._dst_base_offset_ = self._dst_offset - self._std_offset + self.hasdst = self._get_hasdst() + + def __repr__(self): + return "tzwinlocal()" + + def __str__(self): + # str will return the standard name, not the daylight name. + return "tzwinlocal(%s)" % repr(self._std_abbr) + + def __reduce__(self): + return (self.__class__, ()) + + +def picknthweekday(year, month, dayofweek, hour, minute, whichweek): + """ dayofweek == 0 means Sunday, whichweek 5 means last instance """ + first = datetime.datetime(year, month, 1, hour, minute) + + # This will work if dayofweek is ISO weekday (1-7) or Microsoft-style (0-6), + # Because 7 % 7 = 0 + weekdayone = first.replace(day=((dayofweek - first.isoweekday()) % 7) + 1) + wd = weekdayone + ((whichweek - 1) * ONEWEEK) + if (wd.month != month): + wd -= ONEWEEK + + return wd + + +def valuestodict(key): + """Convert a registry key's values to a dictionary.""" + dout = {} + size = winreg.QueryInfoKey(key)[1] + tz_res = None + + for i in range(size): + key_name, value, dtype = winreg.EnumValue(key, i) + if dtype == winreg.REG_DWORD or dtype == winreg.REG_DWORD_LITTLE_ENDIAN: + # If it's a DWORD (32-bit integer), it's stored as unsigned - convert + # that to a proper signed integer + if value & (1 << 31): + value = value - (1 << 32) + elif dtype == winreg.REG_SZ: + # If it's a reference to the tzres DLL, load the actual string + if value.startswith('@tzres'): + tz_res = tz_res or tzres() + value = tz_res.name_from_string(value) + + value = value.rstrip('\x00') # Remove trailing nulls + + dout[key_name] = value + + return dout diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/tzwin.py b/rep_localstack/lib/python3.12/site-packages/dateutil/tzwin.py new file mode 100644 index 000000000..cebc673e4 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/dateutil/tzwin.py @@ -0,0 +1,2 @@ +# tzwin has moved to dateutil.tz.win +from .tz.win import * diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/utils.py b/rep_localstack/lib/python3.12/site-packages/dateutil/utils.py new file mode 100644 index 000000000..dd2d245a0 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/dateutil/utils.py @@ -0,0 +1,71 @@ +# -*- coding: utf-8 -*- +""" +This module offers general convenience and utility functions for dealing with +datetimes. + +.. versionadded:: 2.7.0 +""" +from __future__ import unicode_literals + +from datetime import datetime, time + + +def today(tzinfo=None): + """ + Returns a :py:class:`datetime` representing the current day at midnight + + :param tzinfo: + The time zone to attach (also used to determine the current day). + + :return: + A :py:class:`datetime.datetime` object representing the current day + at midnight. + """ + + dt = datetime.now(tzinfo) + return datetime.combine(dt.date(), time(0, tzinfo=tzinfo)) + + +def default_tzinfo(dt, tzinfo): + """ + Sets the ``tzinfo`` parameter on naive datetimes only + + This is useful for example when you are provided a datetime that may have + either an implicit or explicit time zone, such as when parsing a time zone + string. + + .. doctest:: + + >>> from dateutil.tz import tzoffset + >>> from dateutil.parser import parse + >>> from dateutil.utils import default_tzinfo + >>> dflt_tz = tzoffset("EST", -18000) + >>> print(default_tzinfo(parse('2014-01-01 12:30 UTC'), dflt_tz)) + 2014-01-01 12:30:00+00:00 + >>> print(default_tzinfo(parse('2014-01-01 12:30'), dflt_tz)) + 2014-01-01 12:30:00-05:00 + + :param dt: + The datetime on which to replace the time zone + + :param tzinfo: + The :py:class:`datetime.tzinfo` subclass instance to assign to + ``dt`` if (and only if) it is naive. + + :return: + Returns an aware :py:class:`datetime.datetime`. + """ + if dt.tzinfo is not None: + return dt + else: + return dt.replace(tzinfo=tzinfo) + + +def within_delta(dt1, dt2, delta): + """ + Useful for comparing two datetimes that may have a negligible difference + to be considered equal. + """ + delta = abs(delta) + difference = dt1 - dt2 + return -delta <= difference <= delta diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/zoneinfo/__init__.py b/rep_localstack/lib/python3.12/site-packages/dateutil/zoneinfo/__init__.py new file mode 100644 index 000000000..34f11ad66 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/dateutil/zoneinfo/__init__.py @@ -0,0 +1,167 @@ +# -*- coding: utf-8 -*- +import warnings +import json + +from tarfile import TarFile +from pkgutil import get_data +from io import BytesIO + +from dateutil.tz import tzfile as _tzfile + +__all__ = ["get_zonefile_instance", "gettz", "gettz_db_metadata"] + +ZONEFILENAME = "dateutil-zoneinfo.tar.gz" +METADATA_FN = 'METADATA' + + +class tzfile(_tzfile): + def __reduce__(self): + return (gettz, (self._filename,)) + + +def getzoneinfofile_stream(): + try: + return BytesIO(get_data(__name__, ZONEFILENAME)) + except IOError as e: # TODO switch to FileNotFoundError? + warnings.warn("I/O error({0}): {1}".format(e.errno, e.strerror)) + return None + + +class ZoneInfoFile(object): + def __init__(self, zonefile_stream=None): + if zonefile_stream is not None: + with TarFile.open(fileobj=zonefile_stream) as tf: + self.zones = {zf.name: tzfile(tf.extractfile(zf), filename=zf.name) + for zf in tf.getmembers() + if zf.isfile() and zf.name != METADATA_FN} + # deal with links: They'll point to their parent object. Less + # waste of memory + links = {zl.name: self.zones[zl.linkname] + for zl in tf.getmembers() if + zl.islnk() or zl.issym()} + self.zones.update(links) + try: + metadata_json = tf.extractfile(tf.getmember(METADATA_FN)) + metadata_str = metadata_json.read().decode('UTF-8') + self.metadata = json.loads(metadata_str) + except KeyError: + # no metadata in tar file + self.metadata = None + else: + self.zones = {} + self.metadata = None + + def get(self, name, default=None): + """ + Wrapper for :func:`ZoneInfoFile.zones.get`. This is a convenience method + for retrieving zones from the zone dictionary. + + :param name: + The name of the zone to retrieve. (Generally IANA zone names) + + :param default: + The value to return in the event of a missing key. + + .. versionadded:: 2.6.0 + + """ + return self.zones.get(name, default) + + +# The current API has gettz as a module function, although in fact it taps into +# a stateful class. So as a workaround for now, without changing the API, we +# will create a new "global" class instance the first time a user requests a +# timezone. Ugly, but adheres to the api. +# +# TODO: Remove after deprecation period. +_CLASS_ZONE_INSTANCE = [] + + +def get_zonefile_instance(new_instance=False): + """ + This is a convenience function which provides a :class:`ZoneInfoFile` + instance using the data provided by the ``dateutil`` package. By default, it + caches a single instance of the ZoneInfoFile object and returns that. + + :param new_instance: + If ``True``, a new instance of :class:`ZoneInfoFile` is instantiated and + used as the cached instance for the next call. Otherwise, new instances + are created only as necessary. + + :return: + Returns a :class:`ZoneInfoFile` object. + + .. versionadded:: 2.6 + """ + if new_instance: + zif = None + else: + zif = getattr(get_zonefile_instance, '_cached_instance', None) + + if zif is None: + zif = ZoneInfoFile(getzoneinfofile_stream()) + + get_zonefile_instance._cached_instance = zif + + return zif + + +def gettz(name): + """ + This retrieves a time zone from the local zoneinfo tarball that is packaged + with dateutil. + + :param name: + An IANA-style time zone name, as found in the zoneinfo file. + + :return: + Returns a :class:`dateutil.tz.tzfile` time zone object. + + .. warning:: + It is generally inadvisable to use this function, and it is only + provided for API compatibility with earlier versions. This is *not* + equivalent to ``dateutil.tz.gettz()``, which selects an appropriate + time zone based on the inputs, favoring system zoneinfo. This is ONLY + for accessing the dateutil-specific zoneinfo (which may be out of + date compared to the system zoneinfo). + + .. deprecated:: 2.6 + If you need to use a specific zoneinfofile over the system zoneinfo, + instantiate a :class:`dateutil.zoneinfo.ZoneInfoFile` object and call + :func:`dateutil.zoneinfo.ZoneInfoFile.get(name)` instead. + + Use :func:`get_zonefile_instance` to retrieve an instance of the + dateutil-provided zoneinfo. + """ + warnings.warn("zoneinfo.gettz() will be removed in future versions, " + "to use the dateutil-provided zoneinfo files, instantiate a " + "ZoneInfoFile object and use ZoneInfoFile.zones.get() " + "instead. See the documentation for details.", + DeprecationWarning) + + if len(_CLASS_ZONE_INSTANCE) == 0: + _CLASS_ZONE_INSTANCE.append(ZoneInfoFile(getzoneinfofile_stream())) + return _CLASS_ZONE_INSTANCE[0].zones.get(name) + + +def gettz_db_metadata(): + """ Get the zonefile metadata + + See `zonefile_metadata`_ + + :returns: + A dictionary with the database metadata + + .. deprecated:: 2.6 + See deprecation warning in :func:`zoneinfo.gettz`. To get metadata, + query the attribute ``zoneinfo.ZoneInfoFile.metadata``. + """ + warnings.warn("zoneinfo.gettz_db_metadata() will be removed in future " + "versions, to use the dateutil-provided zoneinfo files, " + "ZoneInfoFile object and query the 'metadata' attribute " + "instead. See the documentation for details.", + DeprecationWarning) + + if len(_CLASS_ZONE_INSTANCE) == 0: + _CLASS_ZONE_INSTANCE.append(ZoneInfoFile(getzoneinfofile_stream())) + return _CLASS_ZONE_INSTANCE[0].metadata diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/zoneinfo/__pycache__/__init__.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/dateutil/zoneinfo/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 000000000..ceabf9b4b Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/dateutil/zoneinfo/__pycache__/__init__.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/zoneinfo/__pycache__/rebuild.cpython-312.pyc b/rep_localstack/lib/python3.12/site-packages/dateutil/zoneinfo/__pycache__/rebuild.cpython-312.pyc new file mode 100644 index 000000000..c23c4951d Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/dateutil/zoneinfo/__pycache__/rebuild.cpython-312.pyc differ diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz b/rep_localstack/lib/python3.12/site-packages/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz new file mode 100644 index 000000000..1461f8c86 Binary files /dev/null and b/rep_localstack/lib/python3.12/site-packages/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz differ diff --git a/rep_localstack/lib/python3.12/site-packages/dateutil/zoneinfo/rebuild.py b/rep_localstack/lib/python3.12/site-packages/dateutil/zoneinfo/rebuild.py new file mode 100644 index 000000000..684c6586f --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/dateutil/zoneinfo/rebuild.py @@ -0,0 +1,75 @@ +import logging +import os +import tempfile +import shutil +import json +from subprocess import check_call, check_output +from tarfile import TarFile + +from dateutil.zoneinfo import METADATA_FN, ZONEFILENAME + + +def rebuild(filename, tag=None, format="gz", zonegroups=[], metadata=None): + """Rebuild the internal timezone info in dateutil/zoneinfo/zoneinfo*tar* + + filename is the timezone tarball from ``ftp.iana.org/tz``. + + """ + tmpdir = tempfile.mkdtemp() + zonedir = os.path.join(tmpdir, "zoneinfo") + moduledir = os.path.dirname(__file__) + try: + with TarFile.open(filename) as tf: + for name in zonegroups: + tf.extract(name, tmpdir) + filepaths = [os.path.join(tmpdir, n) for n in zonegroups] + + _run_zic(zonedir, filepaths) + + # write metadata file + with open(os.path.join(zonedir, METADATA_FN), 'w') as f: + json.dump(metadata, f, indent=4, sort_keys=True) + target = os.path.join(moduledir, ZONEFILENAME) + with TarFile.open(target, "w:%s" % format) as tf: + for entry in os.listdir(zonedir): + entrypath = os.path.join(zonedir, entry) + tf.add(entrypath, entry) + finally: + shutil.rmtree(tmpdir) + + +def _run_zic(zonedir, filepaths): + """Calls the ``zic`` compiler in a compatible way to get a "fat" binary. + + Recent versions of ``zic`` default to ``-b slim``, while older versions + don't even have the ``-b`` option (but default to "fat" binaries). The + current version of dateutil does not support Version 2+ TZif files, which + causes problems when used in conjunction with "slim" binaries, so this + function is used to ensure that we always get a "fat" binary. + """ + + try: + help_text = check_output(["zic", "--help"]) + except OSError as e: + _print_on_nosuchfile(e) + raise + + if b"-b " in help_text: + bloat_args = ["-b", "fat"] + else: + bloat_args = [] + + check_call(["zic"] + bloat_args + ["-d", zonedir] + filepaths) + + +def _print_on_nosuchfile(e): + """Print helpful troubleshooting message + + e is an exception raised by subprocess.check_call() + + """ + if e.errno == 2: + logging.error( + "Could not find zic. Perhaps you need to install " + "libc-bin or some other package that provides it, " + "or it's not in your PATH?") diff --git a/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/COPYING.txt b/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/COPYING.txt new file mode 100644 index 000000000..db80b26d7 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/COPYING.txt @@ -0,0 +1,157 @@ +================== + Copying Docutils +================== + +:Author: David Goodger +:Contact: goodger@python.org +:Date: $Date: 2022-05-30 18:54:46 +0200 (Mo, 30. Mai 2022) $ +:Web site: https://docutils.sourceforge.io/ +:Copyright: This document has been placed in the public domain. + +Most of the files included in this project have been placed in the +public domain, and therefore have no license requirements and no +restrictions on copying or usage; see the `Public Domain Dedication`_ +below. There are a few exceptions_, listed below. +Files in the Sandbox_ are not distributed with Docutils releases and +may have different license terms. + + +Public Domain Dedication +======================== + +The persons who have associated their work with this project (the +"Dedicator": David Goodger and the many contributors to the Docutils +project) hereby dedicate the entire copyright, less the exceptions_ +listed below, in the work of authorship known as "Docutils" identified +below (the "Work") to the public domain. + +The primary repository for the Work is the Internet World Wide Web +site . The Work consists of the +files within the "docutils" module of the Docutils project Subversion +repository (http://svn.code.sf.net/p/docutils/code/), +whose Internet web interface is located at +. Files dedicated to the +public domain may be identified by the inclusion, near the beginning +of each file, of a declaration of the form:: + + Copyright: This document/module/DTD/stylesheet/file/etc. has been + placed in the public domain. + +Dedicator makes this dedication for the benefit of the public at large +and to the detriment of Dedicator's heirs and successors. Dedicator +intends this dedication to be an overt act of relinquishment in +perpetuity of all present and future rights under copyright law, +whether vested or contingent, in the Work. Dedicator understands that +such relinquishment of all rights includes the relinquishment of all +rights to enforce (by lawsuit or otherwise) those copyrights in the +Work. + +Dedicator recognizes that, once placed in the public domain, the Work +may be freely reproduced, distributed, transmitted, used, modified, +built upon, or otherwise exploited by anyone for any purpose, +commercial or non-commercial, and in any way, including by methods +that have not yet been invented or conceived. + +(This dedication is derived from the text of the `Creative Commons +Public Domain Dedication`. [#]_) + +.. [#] Creative Commons has `retired this legal tool`__ and does not + recommend that it be applied to works: This tool is based on United + States law and may not be applicable outside the US. For dedicating new + works to the public domain, Creative Commons recommend the replacement + Public Domain Dedication CC0_ (CC zero, "No Rights Reserved"). So does + the Free Software Foundation in its license-list_. + + __ http://creativecommons.org/retiredlicenses + .. _CC0: http://creativecommons.org/about/cc0 + +Exceptions +========== + +The exceptions to the `Public Domain Dedication`_ above are: + +* docutils/utils/smartquotes.py + + Copyright © 2011 Günter Milde, + based on `SmartyPants`_ © 2003 John Gruber + (released under a "revised" `BSD 3-Clause License`_ included in the file) + and smartypants.py © 2004, 2007 Chad Miller. + Released under the terms of the `BSD 2-Clause License`_ + (`local copy `__). + + .. _SmartyPants: http://daringfireball.net/projects/smartypants/ + +* docutils/utils/math/latex2mathml.py + + Copyright © Jens Jørgen Mortensen, Günter Milde. + Released under the terms of the `BSD 2-Clause License`_ + (`local copy `__). + +* docutils/utils/math/math2html.py, + docutils/writers/html5_polyglot/math.css + + Copyright © 2009,2010 Alex Fernández; 2021 Günter Milde + + These files were part of eLyXer_, released under the `GNU + General Public License`_ version 3 or later. The author relicensed + them for Docutils under the terms of the `BSD 2-Clause License`_ + (`local copy `__). + + .. _eLyXer: https://github.com/alexfernandez/elyxer + +* docutils/__main__.py, + docutils/parsers/commonmark_wrapper.py, + docutils/parsers/recommonmark_wrapper.py, + docutils/utils/error_reporting.py, + docutils/utils/math/__init__.py, + docutils/utils/math/latex2mathml.py, + docutils/utils/math/tex2mathml_extern.py, + docutils/utils/punctuation_chars.py, + docutils/utils/smartquotes.py, + docutils/writers/html5_polyglot/__init__.py, + docutils/writers/html5_polyglot/*.css, + docutils/writers/latex2e/docutils.sty, + docutils/writers/xetex/__init__.py, + test/test_parsers/test_recommonmark/\*.py, + test/test_parsers/test_rst/test_directives/test__init__.py, + test/test_parsers/test_rst/test_directives/test_code_parsing.py, + test/test_parsers/test_rst/test_line_length_limit_default.py, + test/test_parsers/test_rst/test_line_length_limit.py, + test/test_writers/test_latex2e_misc.py, + test/transforms/test_smartquotes.py, + tools/docutils-cli.py, + tools/rst2html5.py + + Copyright © Günter Milde. + Released under the terms of the `BSD 2-Clause License`_ + (`local copy `__). + +* docutils/utils/roman.py + + copyright by Mark Pilgrim, released under the + `Python 2.1.1 license`_ (`local copy`__). + + __ licenses/python-2-1-1.txt + +* tools/editors/emacs/rst.el + + copyright by Free Software Foundation, Inc., + released under the `GNU General Public License`_ version 3 or later + (`local copy`__). + + __ licenses/gpl-3-0.txt + +All used licenses are OSI-approved_ and GPL-compatible_. + +Plaintext versions of all the linked-to licenses are provided in the +licenses_ directory. + +.. _sandbox: https://docutils.sourceforge.io/sandbox/README.html +.. _licenses: licenses/ +.. _Python 2.1.1 license: https://docs.python.org/3/license.html +.. _GNU General Public License: https://www.gnu.org/copyleft/gpl.html +.. _BSD 2-Clause License: http://opensource.org/licenses/BSD-2-Clause +.. _BSD 3-Clause License: https://opensource.org/licenses/BSD-3-Clause +.. _OSI-approved: http://opensource.org/licenses/ +.. _license-list: +.. _GPL-compatible: https://www.gnu.org/licenses/license-list.html diff --git a/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/INSTALLER b/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/INSTALLER new file mode 100644 index 000000000..a1b589e38 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/METADATA b/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/METADATA new file mode 100644 index 000000000..e81c5c3f3 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/METADATA @@ -0,0 +1,64 @@ +Metadata-Version: 2.1 +Name: docutils +Version: 0.19 +Summary: Docutils -- Python Documentation Utilities +Home-page: https://docutils.sourceforge.io/ +Author: David Goodger +Author-email: goodger@python.org +Maintainer: docutils-develop list +Maintainer-email: docutils-develop@lists.sourceforge.net +License: public domain, Python, 2-Clause BSD, GPL 3 (see COPYING.txt) +Platform: OS-independent +Classifier: Development Status :: 4 - Beta +Classifier: Environment :: Console +Classifier: Intended Audience :: End Users/Desktop +Classifier: Intended Audience :: Other Audience +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: System Administrators +Classifier: License :: Public Domain +Classifier: License :: OSI Approved :: Python Software Foundation License +Classifier: License :: OSI Approved :: BSD License +Classifier: License :: OSI Approved :: GNU General Public License (GPL) +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Topic :: Documentation +Classifier: Topic :: Software Development :: Documentation +Classifier: Topic :: Text Processing +Classifier: Natural Language :: English +Classifier: Natural Language :: Afrikaans +Classifier: Natural Language :: Arabic +Classifier: Natural Language :: Catalan +Classifier: Natural Language :: Chinese (Simplified) +Classifier: Natural Language :: Chinese (Traditional) +Classifier: Natural Language :: Czech +Classifier: Natural Language :: Danish +Classifier: Natural Language :: Dutch +Classifier: Natural Language :: Esperanto +Classifier: Natural Language :: Finnish +Classifier: Natural Language :: French +Classifier: Natural Language :: Galician +Classifier: Natural Language :: German +Classifier: Natural Language :: Hebrew +Classifier: Natural Language :: Italian +Classifier: Natural Language :: Japanese +Classifier: Natural Language :: Korean +Classifier: Natural Language :: Latvian +Classifier: Natural Language :: Lithuanian +Classifier: Natural Language :: Persian +Classifier: Natural Language :: Polish +Classifier: Natural Language :: Portuguese (Brazilian) +Classifier: Natural Language :: Russian +Classifier: Natural Language :: Slovak +Classifier: Natural Language :: Spanish +Classifier: Natural Language :: Swedish +Requires-Python: >=3.7 + +Docutils is a modular system for processing documentation +into useful formats, such as HTML, XML, and LaTeX. For +input Docutils supports reStructuredText, an easy-to-read, +what-you-see-is-what-you-get plaintext markup syntax. + diff --git a/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/RECORD b/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/RECORD new file mode 100644 index 000000000..b328ec159 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/RECORD @@ -0,0 +1,349 @@ +../../../bin/__pycache__/rst2html.cpython-312.pyc,, +../../../bin/__pycache__/rst2html4.cpython-312.pyc,, +../../../bin/__pycache__/rst2html5.cpython-312.pyc,, +../../../bin/__pycache__/rst2latex.cpython-312.pyc,, +../../../bin/__pycache__/rst2man.cpython-312.pyc,, +../../../bin/__pycache__/rst2odt.cpython-312.pyc,, +../../../bin/__pycache__/rst2odt_prepstyles.cpython-312.pyc,, +../../../bin/__pycache__/rst2pseudoxml.cpython-312.pyc,, +../../../bin/__pycache__/rst2s5.cpython-312.pyc,, +../../../bin/__pycache__/rst2xetex.cpython-312.pyc,, +../../../bin/__pycache__/rst2xml.cpython-312.pyc,, +../../../bin/__pycache__/rstpep2html.cpython-312.pyc,, +../../../bin/docutils,sha256=khUgSbgja22uRMLO01FXx04Ca5f7r1DsdnkaNT458Dg,249 +../../../bin/rst2html.py,sha256=84fiKYEkY2cJQL8PjgkKTh6-51XI3JtQD9DC1ZggJJg,625 +../../../bin/rst2html4.py,sha256=gg92cfrPvW8Qcqi4zh6yxODptia0dh52BzPITf-6ljI,747 +../../../bin/rst2html5.py,sha256=MPd1cc0fX747kISMHnHVscAXvdqG7DFQeAGPK5VT7co,1092 +../../../bin/rst2latex.py,sha256=ZelnAwnFvRno5rzhJWSnqIJg_OCuW6gH3-0r8pY8meA,824 +../../../bin/rst2man.py,sha256=WU9oeZznUK-gjPnhuUyeGOS5Tos4ofjMn6kHm4XQccU,647 +../../../bin/rst2odt.py,sha256=eQEmTt92Pez4lZ_i6mWUWB7ISnUKYQGkW2ns_zwNyg8,813 +../../../bin/rst2odt_prepstyles.py,sha256=94yh5wTVdcsSWJ_Q98cvowKndjfVS7ikwvPtNjNXA-w,1751 +../../../bin/rst2pseudoxml.py,sha256=w-6FRmxyf05DtlU5m61-CYNKJbj4rVq5VU4NdnoX0ns,632 +../../../bin/rst2s5.py,sha256=wPo17egE3EJ0KGKdMH6ktI0g0fu6y2Aw__O4DK82VJw,668 +../../../bin/rst2xetex.py,sha256=4Hdnjo25qYhN763vxExsURdGl6YENiYbH7uR2h0bCJg,904 +../../../bin/rst2xml.py,sha256=9eW2idsLXy2-FEeCi2p5t5rumqqZQ_6UojS1ss1mNc0,633 +../../../bin/rstpep2html.py,sha256=tBH3SaBbrAcDwffuwtjqXuer9-Rq7qSZ5GMX2GiDqwg,701 +docutils-0.19.dist-info/COPYING.txt,sha256=FreL2ZlFiDJqhxrDn2RICWnr61fs1Goxh0dEVg5yOQo,6218 +docutils-0.19.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +docutils-0.19.dist-info/METADATA,sha256=pdSHF7y-BCl7b8bcAvzEBZSpwuLS6ocs2ech7WydB4k,2696 +docutils-0.19.dist-info/RECORD,, +docutils-0.19.dist-info/SOURCES.html,sha256=3x_wESbbFiRlKtgycXp-S3pF-7AXSnQqd_duPL_4_-M,26094 +docutils-0.19.dist-info/WHEEL,sha256=S8S5VL-stOTSZDYxHyf0KP7eds0J72qrK0Evu3TfyAY,92 +docutils-0.19.dist-info/dependency_links.html,sha256=mk4Lq1Jdo7uIS2iJQwqzVZiuTZP5RUgT_opimvqwKNs,968 +docutils-0.19.dist-info/entry_points.txt,sha256=nhCSljcjX56Rsrej6svcnw38DBNpwfGDWq5ZeSUE-Lc,53 +docutils-0.19.dist-info/top_level.html,sha256=ihKH5rcFGrvK-SVGmFwI9e3SsVyPh0rQIxtemwQNoyU,969 +docutils-0.19.dist-info/top_level.txt,sha256=dPq3jQoxpMOEhrZ1tQh3_-9hqhdvOjUplSdSVDAc95A,9 +docutils/__init__.py,sha256=WyK7V3Atxn8L89k7t8lZIEsLR1cuBE90ZxwaJP3lxIg,10039 +docutils/__main__.py,sha256=BdEQAa7lIIDQYE0NLIy6EVywKpn3maAORZuEofhw7L0,3588 +docutils/__pycache__/__init__.cpython-312.pyc,, +docutils/__pycache__/__main__.cpython-312.pyc,, +docutils/__pycache__/core.cpython-312.pyc,, +docutils/__pycache__/examples.cpython-312.pyc,, +docutils/__pycache__/frontend.cpython-312.pyc,, +docutils/__pycache__/io.cpython-312.pyc,, +docutils/__pycache__/nodes.cpython-312.pyc,, +docutils/__pycache__/statemachine.cpython-312.pyc,, +docutils/core.py,sha256=nUf-ZwPtaaZpMY622Fp9X4qtzme6tKATZmYEoJsFQ54,30945 +docutils/examples.py,sha256=nP7S8EnZk4w3PYi2Ymeu9_UUcDIi39lP049Pe6iBECU,3961 +docutils/frontend.py,sha256=Ii6m75B3XRhDz_Hg465Ndm195QqFxz9YwpLA1QSsVVY,39697 +docutils/io.py,sha256=URcUZt-zH2gJYiJysTjsHR-y_5YS7KQNfYmUa6Hh9-0,21271 +docutils/languages/__init__.py,sha256=I8j0eJD3Jj3Q1C5ALqhYa-f8kCCQDPxmgn2VdPeTusI,2921 +docutils/languages/__pycache__/__init__.cpython-312.pyc,, +docutils/languages/__pycache__/af.cpython-312.pyc,, +docutils/languages/__pycache__/ar.cpython-312.pyc,, +docutils/languages/__pycache__/ca.cpython-312.pyc,, +docutils/languages/__pycache__/cs.cpython-312.pyc,, +docutils/languages/__pycache__/da.cpython-312.pyc,, +docutils/languages/__pycache__/de.cpython-312.pyc,, +docutils/languages/__pycache__/en.cpython-312.pyc,, +docutils/languages/__pycache__/eo.cpython-312.pyc,, +docutils/languages/__pycache__/es.cpython-312.pyc,, +docutils/languages/__pycache__/fa.cpython-312.pyc,, +docutils/languages/__pycache__/fi.cpython-312.pyc,, +docutils/languages/__pycache__/fr.cpython-312.pyc,, +docutils/languages/__pycache__/gl.cpython-312.pyc,, +docutils/languages/__pycache__/he.cpython-312.pyc,, +docutils/languages/__pycache__/it.cpython-312.pyc,, +docutils/languages/__pycache__/ja.cpython-312.pyc,, +docutils/languages/__pycache__/ko.cpython-312.pyc,, +docutils/languages/__pycache__/lt.cpython-312.pyc,, +docutils/languages/__pycache__/lv.cpython-312.pyc,, +docutils/languages/__pycache__/nl.cpython-312.pyc,, +docutils/languages/__pycache__/pl.cpython-312.pyc,, +docutils/languages/__pycache__/pt_br.cpython-312.pyc,, +docutils/languages/__pycache__/ru.cpython-312.pyc,, +docutils/languages/__pycache__/sk.cpython-312.pyc,, +docutils/languages/__pycache__/sv.cpython-312.pyc,, +docutils/languages/__pycache__/zh_cn.cpython-312.pyc,, +docutils/languages/__pycache__/zh_tw.cpython-312.pyc,, +docutils/languages/af.py,sha256=bjIWD_cNZAyZ9XIqqEoQaSljWlvP0vrQi8p8Fu9Nj2o,1831 +docutils/languages/ar.py,sha256=3FRbb0CSpXPHSQru96bqPDGGEdcnWhQIUG_ndpmacfg,1943 +docutils/languages/ca.py,sha256=YyH0LfIYnTk-Tlv4LkNYj8ejUexl6E3X52y1uyT2Als,1912 +docutils/languages/cs.py,sha256=448j-ArOAjbeyF_MiW87qdqCmqrmDZum-AN2y2pzrI0,1900 +docutils/languages/da.py,sha256=1db0GiWS2YYOIqWru9BGeun7E3c-lwAgCWA6epn6KH4,1856 +docutils/languages/de.py,sha256=oaGzlhKsE4yFKTnCKrZt8nMnwZGqQ-PDT92UgUwRYzs,1728 +docutils/languages/en.py,sha256=MOTXOluYEnUwSHRlkINnBXMI8sbIfGahXF8RLws4NSk,1854 +docutils/languages/eo.py,sha256=deCo81Ey6sZiGH-OZjHlju_v3JCJkGv3YYKxATpj4MY,1931 +docutils/languages/es.py,sha256=2UX9riAAY9pH-DDrCe__0-9BMo_3_RyU_z5fwdidlbg,1906 +docutils/languages/fa.py,sha256=dXhN7qZnzv1ksnR0Yb5LrSgNLwXy387ILj90v5iHHHM,1958 +docutils/languages/fi.py,sha256=1rptlt7GiLC2bFO8k4Exw3VPXz25fPzzoEdt96vE4GE,1964 +docutils/languages/fr.py,sha256=t9WgeN-8dRcxXFSKuuWpkM3eIkdFsZJYq2GqTBFawZ4,1831 +docutils/languages/gl.py,sha256=n_08QGV_VlBW0jKLmYa34h_jO2nKB2wx_tCdje9HXy8,1990 +docutils/languages/he.py,sha256=8pW1Js8ePIBwZLPBm_lZx2Rulj-H1T1dZx6AkUinQ8U,2692 +docutils/languages/it.py,sha256=aqmXdit3DYMhnke5MmyQIAVfCcrFuKzWmv0L5H06AI8,1814 +docutils/languages/ja.py,sha256=8C-hjqB7fa_Asa-uKKKkHRqT6NTjO3IJiiks6JADJNU,1890 +docutils/languages/ko.py,sha256=eqKib7kW6h8DKg6inoXAtJa3f8FygdT37eGqiMifzZU,1832 +docutils/languages/lt.py,sha256=ixPG61Q2xB6J0uk0TXTXDwfKcEQgqIYC9Tc4VrBMQEY,1919 +docutils/languages/lv.py,sha256=pSZ7y94j6YWKLz4U16uBVwZsgKpd4jWkvcAgwmkDjv0,1851 +docutils/languages/nl.py,sha256=LKV2Hkuh0kH17w_ukZoAtTIlvWSo5iC3g7nPFDHoDDY,1871 +docutils/languages/pl.py,sha256=vnoHPKPHAsWy3jwLX053mUzej3vnVpdyhguy92TNooA,1866 +docutils/languages/pt_br.py,sha256=dKwYCtex0EpAuYDPIFyqUJjFWfE_5dhao9qa9aTmi5w,1929 +docutils/languages/ru.py,sha256=BAQA-1TZEeHpK44L_Os9V-WKUBt9lPApRl1nFM1zOhw,2070 +docutils/languages/sk.py,sha256=ARmTDyHOpgamJoDRUbOtLT9TOyBPFAAFgZ3XlkOLYRQ,1832 +docutils/languages/sv.py,sha256=HX2VSclyRX2eyriRQQbQ4XEJ9x7eBI6Oz0CPE1Jgk9Y,1863 +docutils/languages/zh_cn.py,sha256=n8xDHn-FS855LIFQXFWW1O73vzjf5So_oVL8TasBZ4Y,1974 +docutils/languages/zh_tw.py,sha256=VWaFGcO-7KxKyj7nYBfAQV1fi_SF_v8jIT60oCZ5YHc,2742 +docutils/nodes.py,sha256=6-BNCncRwrLFWP69afCbs8fZDYIRxAAsJKUGMjTxmw0,80986 +docutils/parsers/__init__.py,sha256=NenSsWynQ-HU858BTDg0dMIX7ErS_qrAJot8KdtHyiU,3724 +docutils/parsers/__pycache__/__init__.cpython-312.pyc,, +docutils/parsers/__pycache__/commonmark_wrapper.cpython-312.pyc,, +docutils/parsers/__pycache__/null.cpython-312.pyc,, +docutils/parsers/__pycache__/recommonmark_wrapper.cpython-312.pyc,, +docutils/parsers/commonmark_wrapper.py,sha256=-E_kYEQdeip0MlH3ePL6ANl7PCaoDZuhAgYIK9xW9fs,1765 +docutils/parsers/null.py,sha256=LtO7n-E6lNOs4mLXZ2SiShB3C630SoJ80ugd9fh1vXI,445 +docutils/parsers/recommonmark_wrapper.py,sha256=VV3nY11dvUPX41ZCA5t5_oKlZRtOEHMKm7rOqYGd0FI,5100 +docutils/parsers/rst/__init__.py,sha256=Ty9In_z7QilNSTO_52OWc7yVsw7LgQxgKvckky504Cw,15985 +docutils/parsers/rst/__pycache__/__init__.cpython-312.pyc,, +docutils/parsers/rst/__pycache__/roles.cpython-312.pyc,, +docutils/parsers/rst/__pycache__/states.cpython-312.pyc,, +docutils/parsers/rst/__pycache__/tableparser.cpython-312.pyc,, +docutils/parsers/rst/directives/__init__.py,sha256=ci9WdprwOEXJikAGR3c9HJ698uLigse9usR-xWpxb-g,14653 +docutils/parsers/rst/directives/__pycache__/__init__.cpython-312.pyc,, +docutils/parsers/rst/directives/__pycache__/admonitions.cpython-312.pyc,, +docutils/parsers/rst/directives/__pycache__/body.cpython-312.pyc,, +docutils/parsers/rst/directives/__pycache__/html.cpython-312.pyc,, +docutils/parsers/rst/directives/__pycache__/images.cpython-312.pyc,, +docutils/parsers/rst/directives/__pycache__/misc.cpython-312.pyc,, +docutils/parsers/rst/directives/__pycache__/parts.cpython-312.pyc,, +docutils/parsers/rst/directives/__pycache__/references.cpython-312.pyc,, +docutils/parsers/rst/directives/__pycache__/tables.cpython-312.pyc,, +docutils/parsers/rst/directives/admonitions.py,sha256=0feS1HMywm-J8MY8BaO4TD3Zn4AAgjQFdM2kuWEziLQ,2405 +docutils/parsers/rst/directives/body.py,sha256=KEUp9ubDQCmE-TolhgSmhFHkOrM9t20Hg-Fju2FK71c,9883 +docutils/parsers/rst/directives/html.py,sha256=adxIFdnOHpqH0QSeXT7utBSy7FKWV0x18zbnXtmmuhs,695 +docutils/parsers/rst/directives/images.py,sha256=SuItkbPRezhnijdAACs3eC4LhWaS9Zmcr47r8m8Fyis,6799 +docutils/parsers/rst/directives/misc.py,sha256=VoCfuY9oj9AX4pRT33SKjq97Qz9WL2qfIU96DUjxd1E,26770 +docutils/parsers/rst/directives/parts.py,sha256=m5YOwZoPawR6I-Y3Q7CN9wGUzWmXa9v-Hvglh2E5ffQ,4247 +docutils/parsers/rst/directives/references.py,sha256=1Y1yhe_O2PqLtQUSly-ny291nrQKJgQiO4Hu7Xew9Zo,831 +docutils/parsers/rst/directives/tables.py,sha256=Gr1NjW9v6a_AbsQWo-7PGHQ9WfbPabqGSPqwlTisJvw,22227 +docutils/parsers/rst/include/README.txt,sha256=R3Y-9wDzYQ0jOhj9FAlwG6hRRhHcEWOZcn2hMF1DeVg,670 +docutils/parsers/rst/include/isoamsa.txt,sha256=ZqGuK-R-yIxa2YDSREt48DFxc8fpF-HX51eiCKXCPp4,10925 +docutils/parsers/rst/include/isoamsb.txt,sha256=3CK8um9WjhPMVgEAbeI16rk91IzWqWXFbRJC44InP3A,7242 +docutils/parsers/rst/include/isoamsc.txt,sha256=XCI2ubAKaO-eOQj87hbBMeYpkqHvc2b2daUCS9ekUzU,1723 +docutils/parsers/rst/include/isoamsn.txt,sha256=Wx54SjZGeYVEB3oNnRi7eGYHEjROZiBUFhQAQDxcVMQ,6721 +docutils/parsers/rst/include/isoamso.txt,sha256=RFxHs5s8DtMgvDaeArmwnSZP_QN20KssvW5f6KMohYA,3825 +docutils/parsers/rst/include/isoamsr.txt,sha256=TLH3gNugqSX3-tH6gDNcgIgbGiKe_GukwZ8U1MIeJCQ,11763 +docutils/parsers/rst/include/isobox.txt,sha256=NORZqqDIewr0-CPoVWqVfTbCVrGZOqY87Crn8O4OUoo,3101 +docutils/parsers/rst/include/isocyr1.txt,sha256=B2DWWIEZ8aJ-scOBP9pbrsKYEmnNF8VZ9e9Mut2MZzU,4241 +docutils/parsers/rst/include/isocyr2.txt,sha256=t52cY0R-9bnkWiQPXW1NYDzO4ueE6ogUF9Ho4ARHg7Q,1882 +docutils/parsers/rst/include/isodia.txt,sha256=VMg8jI2IQogISrpiTS3L88TntxiMfS0cElsrpxZ1FAI,869 +docutils/parsers/rst/include/isogrk1.txt,sha256=DkJc-K_nTh-WDhfOQIRMdQ4aUnsYKb_etyEEJfU8SG4,3010 +docutils/parsers/rst/include/isogrk2.txt,sha256=0x8w_DgroVISgsTLUOuyLZNzDLThcnti27T7T7DxL7g,1705 +docutils/parsers/rst/include/isogrk3.txt,sha256=8b7gQSKtw4yhLEVMZ6vH8VaToiZMM2_kD2snlqfeIQE,2880 +docutils/parsers/rst/include/isogrk4-wide.txt,sha256=RAdw43c5ZAUBWu8MO_lJDmXVV0cGHhVrky0H_bq1eEs,3035 +docutils/parsers/rst/include/isogrk4.txt,sha256=FQxEZAJu2d_RX3G3PfHm6JlC_1osHQoheFA886MLeQk,372 +docutils/parsers/rst/include/isolat1.txt,sha256=d4dBGSPosghudIhZfMPNzsBJKvH1nyVyi6m5p0oW_HY,4397 +docutils/parsers/rst/include/isolat2.txt,sha256=2RMWwHB9djHvsdnKSv2dSNHlBc50P0JYF1DRcK3HW8s,8466 +docutils/parsers/rst/include/isomfrk-wide.txt,sha256=RsYrcq3mX-CMuV6oijCIfUTnUe8Z6w0PG0ephU9isBM,3334 +docutils/parsers/rst/include/isomfrk.txt,sha256=Y40ZXO1GLLzHezKEJJ8w8OBFtHGwtdjErI_062abwC4,519 +docutils/parsers/rst/include/isomopf-wide.txt,sha256=nrhNkzw15HdEA-Gf8T7yatCbs5b7z7q7T6SCTNLByJw,1931 +docutils/parsers/rst/include/isomopf.txt,sha256=l9rTXrdZWf2RchhPr4Oi2M-4yZYLtVH-7kdOmCPzY_M,639 +docutils/parsers/rst/include/isomscr-wide.txt,sha256=VNfKzET1n08k2PUeK9UeDamgP0j8iKpaorregQbaP3w,3231 +docutils/parsers/rst/include/isomscr.txt,sha256=EBWiVvLZYhm9e2c5i7T4Ur6i1WODl_BLiHjcWA_C45g,776 +docutils/parsers/rst/include/isonum.txt,sha256=yg4P9UxBM-72JRGkB4KVdjmRPyBWLvkOlkelh8quDzc,4066 +docutils/parsers/rst/include/isopub.txt,sha256=BFkr5rRRFuYM7a19WPP7lfBpUKftkYKZjnM2SHLtzwY,4613 +docutils/parsers/rst/include/isotech.txt,sha256=2WGt7TSBeRMr2m2DBlY-xiVjxeiNXdTZJb1DJdtgYKg,9726 +docutils/parsers/rst/include/mmlalias.txt,sha256=jQ4IbZwZAJ9rXmb7De77DYgdIlMsWA-s8uZf42EYtFU,45428 +docutils/parsers/rst/include/mmlextra-wide.txt,sha256=Myj4APWltVYohIK7f1v8urJuDVT2_I_U7rasnBCTsYY,9010 +docutils/parsers/rst/include/mmlextra.txt,sha256=DfWtgBA6Bn4TzlZokxTu5vp7zIf1hqUeaeGpYbfHSAg,6800 +docutils/parsers/rst/include/s5defs.txt,sha256=_5JOMpDtaufiZbdxh6QKpICqLvGpB9cypHM-SEt3sKA,1036 +docutils/parsers/rst/include/xhtml1-lat1.txt,sha256=ht_IZrejaCfgG95sfLNfCu1WAzU4LwpkWgzRbZ_6OA4,6112 +docutils/parsers/rst/include/xhtml1-special.txt,sha256=u4YARKjTrICRTtqlMDDOmpYR8xe-DKDRiNjzmXQs7gc,1945 +docutils/parsers/rst/include/xhtml1-symbol.txt,sha256=e6GP5rkmSNcXusRBJkKf2LSbSEyd1oFXJG_WBCYBKE8,7028 +docutils/parsers/rst/languages/__init__.py,sha256=bAE-YQUQ95QwYJVPnWcjz5bw6LOfW5Pgbhwmwp01-OY,1222 +docutils/parsers/rst/languages/__pycache__/__init__.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/af.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/ar.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/ca.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/cs.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/da.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/de.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/en.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/eo.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/es.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/fa.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/fi.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/fr.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/gl.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/he.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/it.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/ja.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/ko.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/lt.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/lv.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/nl.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/pl.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/pt_br.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/ru.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/sk.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/sv.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/zh_cn.cpython-312.pyc,, +docutils/parsers/rst/languages/__pycache__/zh_tw.cpython-312.pyc,, +docutils/parsers/rst/languages/af.py,sha256=BtBYuNkdN9BnM39hfY3-ArMtASDW75x9rrsjbA21Qxw,3688 +docutils/parsers/rst/languages/ar.py,sha256=XpIY3SM10ccvFrO_j__REi_ITvLxSmGuf_y0Dc-Z_-g,3051 +docutils/parsers/rst/languages/ca.py,sha256=ok3m4LvkdMhwRsvqGJFSjhfZtCtSfF5oXuU1tj3YXJo,4406 +docutils/parsers/rst/languages/cs.py,sha256=lQUiFsoPh_XnM6b_amCb-u_xaGHuYlRYQ0elDWeqz7U,4808 +docutils/parsers/rst/languages/da.py,sha256=JxL9FKKrY9nRMUJZeNpmrFwUFKvHi_7ozKtcjAaUmPE,3680 +docutils/parsers/rst/languages/de.py,sha256=j3pXOHqodWyc1aJRxrc_RnSYmXCxEgxmF_Li7SL2fQQ,3443 +docutils/parsers/rst/languages/en.py,sha256=w_tUC2BUQpAU-9bcy9hQcPaXmR__ejuVr5xcrkV8AnM,3336 +docutils/parsers/rst/languages/eo.py,sha256=J4pC5i-qiGwuDU5VDqaBEmqjK6UcghllUw2JQDcJP8U,3825 +docutils/parsers/rst/languages/es.py,sha256=FzjhRQfLVA-tO5cMYNWbRquiTjkDNbFiLCr9o30AtTk,4119 +docutils/parsers/rst/languages/fa.py,sha256=fap5ifAVKvqHGo3S2_G4mMrA8fvOiQ3BPi4z8Zlf94M,3171 +docutils/parsers/rst/languages/fi.py,sha256=RoUWOWgK3ZGzq0n3v2LTN53JUHYKIhiqM06Ha1uZt-o,3526 +docutils/parsers/rst/languages/fr.py,sha256=vqbJEMhVX82e_RXXRw6UQpMYmzEkz5Fmx_BmAADGf3c,3656 +docutils/parsers/rst/languages/gl.py,sha256=6VprYqr7VnN3qg2cdmH5d5s8ahNIL45bN0w7a72iuw8,3632 +docutils/parsers/rst/languages/he.py,sha256=NQ7okpy28-1C6F-WJUIDPqH5tSx2pFDzpoo4E2qa2ZY,3641 +docutils/parsers/rst/languages/it.py,sha256=wbqtTPMZUa_9VGyS-LOhPca89AYOY8NA1Dce5LRzWTc,3283 +docutils/parsers/rst/languages/ja.py,sha256=_PlI9H5u300_VlYvW52UvSy_MJ5OLlMmoNo1Pc6Pib8,3776 +docutils/parsers/rst/languages/ko.py,sha256=IpSyXjTkoij0C7859i1p0iSgz9BQYpdF3fNTS6qcQ1A,3377 +docutils/parsers/rst/languages/lt.py,sha256=PHzrQAP-ZAcboCyc1jvHI5l0CMQnrbBEZ285MWJVy9w,3519 +docutils/parsers/rst/languages/lv.py,sha256=pfTCSDtQkOWYVTnTFjWhUZpnJJW7yuNzVW9xvBgP_u4,3376 +docutils/parsers/rst/languages/nl.py,sha256=EC8S2WJ6BX7OCXmwp67Une7mmSjr4fIWapHHY8cXkXY,3722 +docutils/parsers/rst/languages/pl.py,sha256=5t686W7NVoH5ZlZ9HlJBkqZCcS0_azpXk0GIp4vI4i4,3357 +docutils/parsers/rst/languages/pt_br.py,sha256=qJCP-757i0Ii1A0HhAYRY9QXG_zQJ-BMS5wriUgZVB4,3960 +docutils/parsers/rst/languages/ru.py,sha256=t5K4rlNKIcoOchVeC68sjJ8mr0Cox_BeyCvb1MDm9tQ,3398 +docutils/parsers/rst/languages/sk.py,sha256=wFZQbyBlWVADrCgmkducv9ij2HprpOUpeT6hqmsVjRo,3947 +docutils/parsers/rst/languages/sv.py,sha256=HxyE3k93qgJw-aD6Ea3Tmfqz3QX1Q7AJIaU65MrkJxc,3261 +docutils/parsers/rst/languages/zh_cn.py,sha256=YEC3UmY43NaI7s_6DatL_VQugiHvSUbBrHubgnMfYbI,3925 +docutils/parsers/rst/languages/zh_tw.py,sha256=icmm58W9wO69L6p5dwTQwjj45uxer2ZrJCqvBbERnkQ,5160 +docutils/parsers/rst/roles.py,sha256=GLJVffa-S_Fn3u6RTxdXJm1MXd1AQ7IxbCq99MmxIzQ,16119 +docutils/parsers/rst/states.py,sha256=LRI_aMfCCIZD3Pragi3Lz09jgGYSPUX00D5KSTmGULc,132550 +docutils/parsers/rst/tableparser.py,sha256=D2jtx00mTdHsn20TKk9GJmCilwISeKHe9VoSy8PYELs,20912 +docutils/readers/__init__.py,sha256=w1v7_GbCwAj0xknFANEq_mXWhm8-MxPJonv3AHpLLhg,3538 +docutils/readers/__pycache__/__init__.cpython-312.pyc,, +docutils/readers/__pycache__/doctree.cpython-312.pyc,, +docutils/readers/__pycache__/pep.cpython-312.pyc,, +docutils/readers/__pycache__/standalone.cpython-312.pyc,, +docutils/readers/doctree.py,sha256=9QNTk_8x46sDkcSjzQiyFZxN-m9CBO3XA5bLar7OA0Q,1607 +docutils/readers/pep.py,sha256=QVKOO2Gtz-wpMKKDOIB3XKSzoI55lwpHrXUCSt5nmwk,1537 +docutils/readers/standalone.py,sha256=PZcD6xVitvirGFT86d0bggsqLY5bUYIkZeDjfBfjK5Q,2335 +docutils/statemachine.py,sha256=fKzVodfw6BEZQf4HquXfpBfNR8N5E8uzVeDoJA5eFRw,56956 +docutils/transforms/__init__.py,sha256=A-2hsWDXixVcfo856B0jN8An4j2Gu-wLZziZ2-Tf1F4,6532 +docutils/transforms/__pycache__/__init__.cpython-312.pyc,, +docutils/transforms/__pycache__/components.cpython-312.pyc,, +docutils/transforms/__pycache__/frontmatter.cpython-312.pyc,, +docutils/transforms/__pycache__/misc.cpython-312.pyc,, +docutils/transforms/__pycache__/parts.cpython-312.pyc,, +docutils/transforms/__pycache__/peps.cpython-312.pyc,, +docutils/transforms/__pycache__/references.cpython-312.pyc,, +docutils/transforms/__pycache__/universal.cpython-312.pyc,, +docutils/transforms/__pycache__/writer_aux.cpython-312.pyc,, +docutils/transforms/components.py,sha256=4qO1txFE98PJa4tqKCpnlnQi_UIEQDU4mMVuzwgqizY,2151 +docutils/transforms/frontmatter.py,sha256=7VpbXpgVlnDQfII48AY80Mp4vul2u8fhP5OnaCN7wZU,20276 +docutils/transforms/misc.py,sha256=BhyjLyE8j5QRELg7CcT0hEwdvnUJugUqQYyckzXDlh0,4873 +docutils/transforms/parts.py,sha256=Z_72Wf2oqchCcTIPTOgBVS1auAtA7POwJww1EaoeQPk,6912 +docutils/transforms/peps.py,sha256=7TMhgwqyopkuUetITpsByN-t0ZT8bXJOqaClUwliF0U,11111 +docutils/transforms/references.py,sha256=cn_lScfwg_4XXHrweLFRmckxUcH5exwqkrT5rsBxLXE,36544 +docutils/transforms/universal.py,sha256=SB1aFqBZHY-gFLBSf68pSt9D6LzSoscPtrAtzbv5vRY,12446 +docutils/transforms/writer_aux.py,sha256=G_XXqiAcSqWnFJKWRhQ8oE0jWcZPjLjyW2QBThE1Xes,3057 +docutils/utils/__init__.py,sha256=25di54FyPqFhlYsMIDOlZX1SnmSfGCyqNVx_aDqYZaQ,28742 +docutils/utils/__pycache__/__init__.cpython-312.pyc,, +docutils/utils/__pycache__/code_analyzer.cpython-312.pyc,, +docutils/utils/__pycache__/error_reporting.cpython-312.pyc,, +docutils/utils/__pycache__/punctuation_chars.cpython-312.pyc,, +docutils/utils/__pycache__/roman.cpython-312.pyc,, +docutils/utils/__pycache__/smartquotes.cpython-312.pyc,, +docutils/utils/__pycache__/urischemes.cpython-312.pyc,, +docutils/utils/code_analyzer.py,sha256=4wYQFsI0RL5JgIlZHGY2yUkJhpaf_MDvAnZ-sWaN74k,4943 +docutils/utils/error_reporting.py,sha256=vjHvpHu0BSoE2Ltm4FyYfLUsV5VWAjBbRoniWrJ7CR8,8105 +docutils/utils/math/__init__.py,sha256=ZOItP5BpMD8uLVVQpVY5FThg_sh9VuUUloE0FVLIOZY,1825 +docutils/utils/math/__pycache__/__init__.cpython-312.pyc,, +docutils/utils/math/__pycache__/latex2mathml.cpython-312.pyc,, +docutils/utils/math/__pycache__/math2html.cpython-312.pyc,, +docutils/utils/math/__pycache__/tex2mathml_extern.cpython-312.pyc,, +docutils/utils/math/__pycache__/tex2unichar.cpython-312.pyc,, +docutils/utils/math/__pycache__/unichar2tex.cpython-312.pyc,, +docutils/utils/math/latex2mathml.py,sha256=SQhoFkSnH7JXL3uWk86eD7CW8Fw8Y-Q4BggoNC5qQSA,51043 +docutils/utils/math/math2html.py,sha256=9T_7l9tMmLljJwke6xBIDlF8IXseTlGTNbqgPSqgYiI,98692 +docutils/utils/math/tex2mathml_extern.py,sha256=OXKzAbMR1TC_BSTDvTqBz4NkFT_553SLoOciXW2XokY,5631 +docutils/utils/math/tex2unichar.py,sha256=Br9mhzIEuAVeejAgppOjhO8oy_FEH4NbvlhJnSehJ6g,36734 +docutils/utils/math/unichar2tex.py,sha256=Q1gvqUGWprAjMfpGfujAu4ldjJevoFG2moM46SWy6WU,18393 +docutils/utils/punctuation_chars.py,sha256=0DemcSxarAewt2fPikn7VeDtGJCno7G6nUKgbI8W9vI,6418 +docutils/utils/roman.py,sha256=Nxui6xnSknWuccWHLOMVdE_bXGJLciOjTXGQub30q9k,2695 +docutils/utils/smartquotes.py,sha256=7_toQiBA26CyWkzgNjrscmKB4-FpklrZJP9UYd8AJg0,38945 +docutils/utils/urischemes.py,sha256=kC4ybCqr4EsOr4LRsivTaWfyZJaTnBXYEwg3l3TNNDA,6299 +docutils/writers/__init__.py,sha256=MOLFfPAGuf203FF1If3i8_H8C8KstWumRe08w9OFSfw,4815 +docutils/writers/__pycache__/__init__.cpython-312.pyc,, +docutils/writers/__pycache__/_html_base.cpython-312.pyc,, +docutils/writers/__pycache__/docutils_xml.cpython-312.pyc,, +docutils/writers/__pycache__/manpage.cpython-312.pyc,, +docutils/writers/__pycache__/null.cpython-312.pyc,, +docutils/writers/__pycache__/pseudoxml.cpython-312.pyc,, +docutils/writers/_html_base.py,sha256=G8r8bD4GnRZZp1AlJT848YNi4c-Ey65cb1bImpTMRXs,70253 +docutils/writers/docutils_xml.py,sha256=tX2LdKL3DvqTs1bCFBJmSenRCLpH-pSn6F8_-kh_404,6835 +docutils/writers/html4css1/__init__.py,sha256=VbsFraFmYmyu6AskfpcKmrSGD5_vwtjxUNy6S06PoHY,37638 +docutils/writers/html4css1/__pycache__/__init__.cpython-312.pyc,, +docutils/writers/html4css1/html4css1.css,sha256=F3mIZoka9z0xLvNCpJETdl33NedsTkIaMLFUR2FZnrc,7219 +docutils/writers/html4css1/template.txt,sha256=HDzUUyAv7gT4ewGQTqfOE2_9HOVyGu9-wCRgsmoCmjQ,114 +docutils/writers/html5_polyglot/__init__.py,sha256=akuJYzEykc_olRiIZWJtcqn-mF0EoUOXV4nvJoMJBMw,18212 +docutils/writers/html5_polyglot/__pycache__/__init__.cpython-312.pyc,, +docutils/writers/html5_polyglot/math.css,sha256=6XPJY4c-i1f-8VODr7hdw-MrIfJwHFqC1gPQtY_xLN8,6261 +docutils/writers/html5_polyglot/minimal.css,sha256=WMLngbQsA2oJ1pXIZ0FkMRVaALezcPaaAR9AAX6ips8,7388 +docutils/writers/html5_polyglot/plain.css,sha256=0CBjCYmg9_6bIOofnmQ8pgyWdxceS-8h6udF7K4IRT0,7673 +docutils/writers/html5_polyglot/responsive.css,sha256=4n8nKxxBFa7kME6QdBMAD3FEzNkzoggPqaPJW1cT6CE,11736 +docutils/writers/html5_polyglot/template.txt,sha256=HDzUUyAv7gT4ewGQTqfOE2_9HOVyGu9-wCRgsmoCmjQ,114 +docutils/writers/html5_polyglot/tuftig.css,sha256=5sIwGZcDHe9_7b4dewx1txBx7nXivIgvrjt4ygZs7N4,12042 +docutils/writers/latex2e/__init__.py,sha256=Ti3q0q9oU4ZsR5UvDk6zPQGQmFlV-J_856lIFmzKeOI,136872 +docutils/writers/latex2e/__pycache__/__init__.cpython-312.pyc,, +docutils/writers/latex2e/default.tex,sha256=JcaJnrdmKE9vqwATl9dSHOsnGnjF2dLX4vsiu7kvWEI,422 +docutils/writers/latex2e/docutils.sty,sha256=dgnu97-E5w_rOrdaKBYAw_PwnMKASOFLXV08k17DABQ,5472 +docutils/writers/latex2e/titlepage.tex,sha256=lq5uLqWfLS9nm7ccXY3hHFUBRRH0xeJ7xnQeErDB91U,534 +docutils/writers/latex2e/titlingpage.tex,sha256=Pa9ixIf9Yy6RLljbTPUEgmrQwRzYsyzrxl4KSrHA37E,424 +docutils/writers/latex2e/xelatex.tex,sha256=NbrtTphygnEaTmyJEz5HwkNuWCbV1ijlh_1M7_TXLu0,672 +docutils/writers/manpage.py,sha256=vV_fTcDgIEel0rpL5_GV-RjrH82C5nNNnyPYlvkifCk,36527 +docutils/writers/null.py,sha256=zyIuah_o8SlqvgbOWLRG9chpeNKky0D13lOTtR1E73U,450 +docutils/writers/odf_odt/__init__.py,sha256=UqjucFpfFJrTByEK7ss01vf3XemotFGepvvsi9dgF4k,132399 +docutils/writers/odf_odt/__pycache__/__init__.cpython-312.pyc,, +docutils/writers/odf_odt/__pycache__/pygmentsformatter.cpython-312.pyc,, +docutils/writers/odf_odt/pygmentsformatter.py,sha256=j1fMQPdv5fdczPkSKbyYjoh66G8Z_MZhTN52_XfRhHc,4681 +docutils/writers/odf_odt/styles.odt,sha256=xKv9z2sd1qNxAH28X-5st5JuDZeTw6jyDOxXohsFrKY,16500 +docutils/writers/pep_html/__init__.py,sha256=mSv_UjkWMuokZPaF8qKwvniNix4zgf3Foa-0xFyXIig,3505 +docutils/writers/pep_html/__pycache__/__init__.cpython-312.pyc,, +docutils/writers/pep_html/pep.css,sha256=AyHZfudmKKTu-ZmyoLaihM_e5bD3_gCO51hG_NPEDA8,6367 +docutils/writers/pep_html/template.txt,sha256=RmovlxaS2Mvo94q-u3Q9cqy09mRF2t-9oSoPASvpuKA,1002 +docutils/writers/pseudoxml.py,sha256=gjnBxBIXYNdnQYt_XTXljV3fcp9dW1Ek0LE5VkGIvJk,1032 +docutils/writers/s5_html/__init__.py,sha256=Es6qe0pYF_fHV-lmrtuV0X53rdNB6xSChx7B6vzhsP0,14627 +docutils/writers/s5_html/__pycache__/__init__.cpython-312.pyc,, +docutils/writers/s5_html/themes/README.txt,sha256=wYnu3iomgGD6odpZOtWTzOynI1dfIGE6AVF1MDR0FVY,278 +docutils/writers/s5_html/themes/big-black/__base__,sha256=WeKnChXCPkrXDs7Xr-Qnf1i-bgFjkeaKJ-ilXV0R5lM,38 +docutils/writers/s5_html/themes/big-black/framing.css,sha256=DtEo7Fti9JARMLmcCx0NIfir7QRR24_WN3UbG-EyH64,910 +docutils/writers/s5_html/themes/big-black/pretty.css,sha256=UP9r7eGX0qEFCIDyKcT5bcazMxCw43O2KSrs2ebBPwI,3605 +docutils/writers/s5_html/themes/big-white/framing.css,sha256=meBByeaKIduudfFCDxVw4uzSOj8q_ZJArnwp8oZ1S8g,905 +docutils/writers/s5_html/themes/big-white/pretty.css,sha256=RlQ7CZuN-WMrR8CmCeQ-U8WVmZj769z2zx2FfLwTS48,3565 +docutils/writers/s5_html/themes/default/framing.css,sha256=Sbh5wryeioxDMZ-kJFwzKNziO-3CRvLBMG7rcJjTLmU,1002 +docutils/writers/s5_html/themes/default/opera.css,sha256=guPZOg_BINv-LjV9_IAM7ILFQ-fKALNjlP1i06e5dmA,261 +docutils/writers/s5_html/themes/default/outline.css,sha256=z3ACJiW3_gnG8XFvX602PMTYvKhbRybqCeoWl3O_pA0,648 +docutils/writers/s5_html/themes/default/pretty.css,sha256=iT_51bIPLTk1hFFs3hCarnyJqtbB4I86BNrxlT1r3eo,4383 +docutils/writers/s5_html/themes/default/print.css,sha256=INhYRMsY7y2wd9p7tqjcDWBREXHUMO-2ApAWvITyetI,818 +docutils/writers/s5_html/themes/default/s5-core.css,sha256=D4WDPb581O-_G5jhzpAIwI88B1Zi8y3nWBB8rCxgzlg,450 +docutils/writers/s5_html/themes/default/slides.css,sha256=VKYQ1Oe8lZ8LHxzPqJiU79J0z295nkmIbzsXL-N_dfQ,283 +docutils/writers/s5_html/themes/default/slides.js,sha256=5BXUM5jSWu9hUQSVhGZhMTEvkdCYgqrOJO3ljwDgxWI,15801 +docutils/writers/s5_html/themes/medium-black/__base__,sha256=822LJG-LrdBZY6CA7wsLFCFzsYfxbyz2mr1j6rpb1UA,41 +docutils/writers/s5_html/themes/medium-black/pretty.css,sha256=OdL1xJ9f_FE1pmS7X0s0yxyIl1n2vUBQaGOcJrT2svg,4029 +docutils/writers/s5_html/themes/medium-white/framing.css,sha256=BF5YnRLGRhobO06xDet-0KZYpR10IgRjRbULPVm3PMM,943 +docutils/writers/s5_html/themes/medium-white/pretty.css,sha256=Zm-Pgk3SLAGmGTRF27nrqvpBb_LH2yQ5FIpDPM3p0Y0,3989 +docutils/writers/s5_html/themes/small-black/__base__,sha256=WmiB80z49RfMsy_7tFI042AfUgyztL5OXI3tap9EfQM,40 +docutils/writers/s5_html/themes/small-black/pretty.css,sha256=fmc73kx-zOp0jbiy4GAmpw2Xdz9Q_-WzebsgDJWUJos,4028 +docutils/writers/s5_html/themes/small-white/framing.css,sha256=qwNUgzqnrXgoX47SddbVIKEZwQDjGnTGA468jHHIXqc,940 +docutils/writers/s5_html/themes/small-white/pretty.css,sha256=qU8WOhY8TT6ZY6cXKXABb7T7JgpJQORzTZJhuAm0gGg,3999 +docutils/writers/xetex/__init__.py,sha256=wcGW_-fyHPYwVpBK8QD8hIf8CTEwD9icezxUeYHKi9c,5842 +docutils/writers/xetex/__pycache__/__init__.cpython-312.pyc,, diff --git a/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/SOURCES.html b/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/SOURCES.html new file mode 100644 index 000000000..ea11b67d2 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/SOURCES.html @@ -0,0 +1,681 @@ + + + + + + +SOURCES.txt + + + +
+ + +

BUGS.txt +COPYING.txt +FAQ.txt +HISTORY.txt +MANIFEST +MANIFEST.in +README.txt +RELEASE-NOTES.txt +THANKS.txt +install.py +setup.cfg +setup.py +docs/index.txt +docs/api/cmdline-tool.txt +docs/api/publisher.txt +docs/api/runtime-settings.txt +docs/dev/distributing.txt +docs/dev/enthought-plan.txt +docs/dev/enthought-rfp.txt +docs/dev/hacking.txt +docs/dev/policies.txt +docs/dev/pysource.dtd +docs/dev/pysource.txt +docs/dev/release.txt +docs/dev/repository.txt +docs/dev/semantics.txt +docs/dev/testing.txt +docs/dev/todo.txt +docs/dev/website.txt +docs/dev/rst/alternatives.txt +docs/dev/rst/problems.txt +docs/howto/html-stylesheets.txt +docs/howto/i18n.txt +docs/howto/rst-directives.txt +docs/howto/rst-roles.txt +docs/howto/security.txt +docs/peps/pep-0256.txt +docs/peps/pep-0257.txt +docs/peps/pep-0258.txt +docs/peps/pep-0287.txt +docs/ref/doctree.txt +docs/ref/docutils.dtd +docs/ref/soextblx.dtd +docs/ref/transforms.txt +docs/ref/rst/definitions.txt +docs/ref/rst/directives.txt +docs/ref/rst/introduction.txt +docs/ref/rst/restructuredtext.txt +docs/ref/rst/roles.txt +docs/user/Makefile.docutils-update +docs/user/config.txt +docs/user/emacs.txt +docs/user/html.txt +docs/user/latex.txt +docs/user/links.txt +docs/user/mailing-lists.txt +docs/user/manpage.txt +docs/user/odt.txt +docs/user/slide-shows.txt +docs/user/smartquotes.txt +docs/user/tools.txt +docs/user/images/big-black.png +docs/user/images/big-white.png +docs/user/images/default.png +docs/user/images/happy_monkey.png +docs/user/images/medium-black.png +docs/user/images/medium-white.png +docs/user/images/rsp-all.png +docs/user/images/rsp-breaks.png +docs/user/images/rsp-covers.png +docs/user/images/rsp-cuts.png +docs/user/images/rsp-empty.png +docs/user/images/rsp-objects.png +docs/user/images/rsp.svg +docs/user/images/s5-files.png +docs/user/images/s5-files.svg +docs/user/images/small-black.png +docs/user/images/small-white.png +docs/user/rst/cheatsheet.txt +docs/user/rst/demo.txt +docs/user/rst/quickref.html +docs/user/rst/quickstart.txt +docs/user/rst/images/biohazard-bitmap-scaling.svg +docs/user/rst/images/biohazard-bitmap.svg +docs/user/rst/images/biohazard-scaling.svg +docs/user/rst/images/biohazard.png +docs/user/rst/images/biohazard.svg +docs/user/rst/images/biohazard.swf +docs/user/rst/images/title-scaling.svg +docs/user/rst/images/title.png +docs/user/rst/images/title.svg +docutils/__init__.py +docutils/core.py +docutils/docutils.conf +docutils/examples.py +docutils/frontend.py +docutils/io.py +docutils/nodes.py +docutils/statemachine.py +docutils.egg-info/PKG-INFO +docutils.egg-info/SOURCES.txt +docutils.egg-info/dependency_links.txt +docutils.egg-info/top_level.txt +docutils/languages/__init__.py +docutils/languages/af.py +docutils/languages/ca.py +docutils/languages/cs.py +docutils/languages/da.py +docutils/languages/de.py +docutils/languages/en.py +docutils/languages/eo.py +docutils/languages/es.py +docutils/languages/fa.py +docutils/languages/fi.py +docutils/languages/fr.py +docutils/languages/gl.py +docutils/languages/he.py +docutils/languages/it.py +docutils/languages/ja.py +docutils/languages/ko.py +docutils/languages/lt.py +docutils/languages/lv.py +docutils/languages/nl.py +docutils/languages/pl.py +docutils/languages/pt_br.py +docutils/languages/ru.py +docutils/languages/sk.py +docutils/languages/sv.py +docutils/languages/zh_cn.py +docutils/languages/zh_tw.py +docutils/parsers/__init__.py +docutils/parsers/null.py +docutils/parsers/rst/__init__.py +docutils/parsers/rst/roles.py +docutils/parsers/rst/states.py +docutils/parsers/rst/tableparser.py +docutils/parsers/rst/directives/__init__.py +docutils/parsers/rst/directives/admonitions.py +docutils/parsers/rst/directives/body.py +docutils/parsers/rst/directives/html.py +docutils/parsers/rst/directives/images.py +docutils/parsers/rst/directives/misc.py +docutils/parsers/rst/directives/parts.py +docutils/parsers/rst/directives/references.py +docutils/parsers/rst/directives/tables.py +docutils/parsers/rst/include/README.txt +docutils/parsers/rst/include/isoamsa.txt +docutils/parsers/rst/include/isoamsb.txt +docutils/parsers/rst/include/isoamsc.txt +docutils/parsers/rst/include/isoamsn.txt +docutils/parsers/rst/include/isoamso.txt +docutils/parsers/rst/include/isoamsr.txt +docutils/parsers/rst/include/isobox.txt +docutils/parsers/rst/include/isocyr1.txt +docutils/parsers/rst/include/isocyr2.txt +docutils/parsers/rst/include/isodia.txt +docutils/parsers/rst/include/isogrk1.txt +docutils/parsers/rst/include/isogrk2.txt +docutils/parsers/rst/include/isogrk3.txt +docutils/parsers/rst/include/isogrk4-wide.txt +docutils/parsers/rst/include/isogrk4.txt +docutils/parsers/rst/include/isolat1.txt +docutils/parsers/rst/include/isolat2.txt +docutils/parsers/rst/include/isomfrk-wide.txt +docutils/parsers/rst/include/isomfrk.txt +docutils/parsers/rst/include/isomopf-wide.txt +docutils/parsers/rst/include/isomopf.txt +docutils/parsers/rst/include/isomscr-wide.txt +docutils/parsers/rst/include/isomscr.txt +docutils/parsers/rst/include/isonum.txt +docutils/parsers/rst/include/isopub.txt +docutils/parsers/rst/include/isotech.txt +docutils/parsers/rst/include/mmlalias.txt +docutils/parsers/rst/include/mmlextra-wide.txt +docutils/parsers/rst/include/mmlextra.txt +docutils/parsers/rst/include/s5defs.txt +docutils/parsers/rst/include/xhtml1-lat1.txt +docutils/parsers/rst/include/xhtml1-special.txt +docutils/parsers/rst/include/xhtml1-symbol.txt +docutils/parsers/rst/languages/__init__.py +docutils/parsers/rst/languages/af.py +docutils/parsers/rst/languages/ca.py +docutils/parsers/rst/languages/cs.py +docutils/parsers/rst/languages/da.py +docutils/parsers/rst/languages/de.py +docutils/parsers/rst/languages/en.py +docutils/parsers/rst/languages/eo.py +docutils/parsers/rst/languages/es.py +docutils/parsers/rst/languages/fa.py +docutils/parsers/rst/languages/fi.py +docutils/parsers/rst/languages/fr.py +docutils/parsers/rst/languages/gl.py +docutils/parsers/rst/languages/he.py +docutils/parsers/rst/languages/it.py +docutils/parsers/rst/languages/ja.py +docutils/parsers/rst/languages/ko.py +docutils/parsers/rst/languages/lt.py +docutils/parsers/rst/languages/lv.py +docutils/parsers/rst/languages/nl.py +docutils/parsers/rst/languages/pl.py +docutils/parsers/rst/languages/pt_br.py +docutils/parsers/rst/languages/ru.py +docutils/parsers/rst/languages/sk.py +docutils/parsers/rst/languages/sv.py +docutils/parsers/rst/languages/zh_cn.py +docutils/parsers/rst/languages/zh_tw.py +docutils/readers/__init__.py +docutils/readers/doctree.py +docutils/readers/pep.py +docutils/readers/standalone.py +docutils/transforms/__init__.py +docutils/transforms/components.py +docutils/transforms/frontmatter.py +docutils/transforms/misc.py +docutils/transforms/parts.py +docutils/transforms/peps.py +docutils/transforms/references.py +docutils/transforms/universal.py +docutils/transforms/writer_aux.py +docutils/utils/.smartquotes.py.swp +docutils/utils/__init__.py +docutils/utils/code_analyzer.py +docutils/utils/error_reporting.py +docutils/utils/punctuation_chars.py +docutils/utils/roman.py +docutils/utils/smartquotes.py +docutils/utils/urischemes.py +docutils/utils/math/__init__.py +docutils/utils/math/latex2mathml.py +docutils/utils/math/math2html.py +docutils/utils/math/tex2mathml_extern.py +docutils/utils/math/tex2unichar.py +docutils/utils/math/unichar2tex.py +docutils/writers/__init__.py +docutils/writers/_html_base.py +docutils/writers/docutils_xml.py +docutils/writers/manpage.py +docutils/writers/null.py +docutils/writers/pseudoxml.py +docutils/writers/html4css1/__init__.py +docutils/writers/html4css1/html4css1.css +docutils/writers/html4css1/template.txt +docutils/writers/html5_polyglot/__init__.py +docutils/writers/html5_polyglot/math.css +docutils/writers/html5_polyglot/minimal.css +docutils/writers/html5_polyglot/plain.css +docutils/writers/html5_polyglot/template.txt +docutils/writers/html5_polyglot/tuftig.css +docutils/writers/latex2e/__init__.py +docutils/writers/latex2e/default.tex +docutils/writers/latex2e/titlepage.tex +docutils/writers/latex2e/titlingpage.tex +docutils/writers/latex2e/xelatex.tex +docutils/writers/odf_odt/__init__.py +docutils/writers/odf_odt/pygmentsformatter.py +docutils/writers/odf_odt/styles.odt +docutils/writers/pep_html/__init__.py +docutils/writers/pep_html/pep.css +docutils/writers/pep_html/template.txt +docutils/writers/s5_html/__init__.py +docutils/writers/s5_html/themes/README.txt +docutils/writers/s5_html/themes/big-black/__base__ +docutils/writers/s5_html/themes/big-black/framing.css +docutils/writers/s5_html/themes/big-black/pretty.css +docutils/writers/s5_html/themes/big-white/framing.css +docutils/writers/s5_html/themes/big-white/pretty.css +docutils/writers/s5_html/themes/default/blank.gif +docutils/writers/s5_html/themes/default/framing.css +docutils/writers/s5_html/themes/default/iepngfix.htc +docutils/writers/s5_html/themes/default/opera.css +docutils/writers/s5_html/themes/default/outline.css +docutils/writers/s5_html/themes/default/pretty.css +docutils/writers/s5_html/themes/default/print.css +docutils/writers/s5_html/themes/default/s5-core.css +docutils/writers/s5_html/themes/default/slides.css +docutils/writers/s5_html/themes/default/slides.js +docutils/writers/s5_html/themes/medium-black/__base__ +docutils/writers/s5_html/themes/medium-black/pretty.css +docutils/writers/s5_html/themes/medium-white/framing.css +docutils/writers/s5_html/themes/medium-white/pretty.css +docutils/writers/s5_html/themes/small-black/__base__ +docutils/writers/s5_html/themes/small-black/pretty.css +docutils/writers/s5_html/themes/small-white/framing.css +docutils/writers/s5_html/themes/small-white/pretty.css +docutils/writers/xetex/__init__.py +licenses/BSD-2-Clause.txt +licenses/docutils.conf +licenses/gpl-3-0.txt +licenses/python-2-1-1.txt +test/DocutilsTestSupport.py +test/alltests.py +test/coverage.sh +test/docutils.conf +test/local-parser.py +test/local-reader.py +test/local-writer.py +test/local_dummy_lang.py +test/package_unittest.py +test/test__init__.py +test/test_command_line.py +test/test_dependencies.py +test/test_error_reporting.py +test/test_functional.py +test/test_io.py +test/test_language.py +test/test_nodes.py +test/test_pickle.py +test/test_publisher.py +test/test_settings.py +test/test_statemachine.py +test/test_traversals.py +test/test_utils.py +test/test_viewlist.py +test/data/config_1.txt +test/data/config_2.txt +test/data/config_error_handler.txt +test/data/config_list.txt +test/data/config_list_2.txt +test/data/config_old.txt +test/data/csv_data.txt +test/data/csv_dep.txt +test/data/dependencies.txt +test/data/full-template.txt +test/data/ham.css +test/data/ham.tex +test/data/include.txt +test/data/latin1.txt +test/data/raw.txt +test/data/stylesheet.txt +test/functional/README.txt +test/functional/expected/compact_lists.html +test/functional/expected/cyrillic.tex +test/functional/expected/dangerous.html +test/functional/expected/field_name_limit.html +test/functional/expected/footnotes_html5.html +test/functional/expected/latex_babel.tex +test/functional/expected/latex_cornercases.tex +test/functional/expected/latex_docinfo.tex +test/functional/expected/latex_literal_block.tex +test/functional/expected/latex_literal_block_fancyvrb.tex +test/functional/expected/latex_literal_block_listings.tex +test/functional/expected/latex_literal_block_verbatim.tex +test/functional/expected/latex_literal_block_verbatimtab.tex +test/functional/expected/latex_memoir.tex +test/functional/expected/math_output_html.html +test/functional/expected/math_output_latex.html +test/functional/expected/math_output_mathjax.html +test/functional/expected/math_output_mathml.xhtml +test/functional/expected/misc_rst_html4css1.html +test/functional/expected/odt_basic.odt +test/functional/expected/odt_classifier.odt +test/functional/expected/odt_contents.odt +test/functional/expected/odt_custom_headfoot.odt +test/functional/expected/odt_footnotes.odt +test/functional/expected/odt_header_footer.odt +test/functional/expected/odt_literal_block.odt +test/functional/expected/odt_nested_class.odt +test/functional/expected/odt_no_class.odt +test/functional/expected/odt_raw.odt +test/functional/expected/odt_tables1.odt +test/functional/expected/odt_unnested_class.odt +test/functional/expected/pep_html.html +test/functional/expected/standalone_rst_docutils_xml.xml +test/functional/expected/standalone_rst_html4css1.html +test/functional/expected/standalone_rst_html5.html +test/functional/expected/standalone_rst_latex.tex +test/functional/expected/standalone_rst_manpage.man +test/functional/expected/standalone_rst_pseudoxml.txt +test/functional/expected/standalone_rst_s5_html_1.html +test/functional/expected/standalone_rst_s5_html_2.html +test/functional/expected/standalone_rst_xetex.tex +test/functional/expected/xetex-cyrillic.tex +test/functional/expected/ui/default/blank.gif +test/functional/expected/ui/default/framing.css +test/functional/expected/ui/default/iepngfix.htc +test/functional/expected/ui/default/opera.css +test/functional/expected/ui/default/outline.css +test/functional/expected/ui/default/pretty.css +test/functional/expected/ui/default/print.css +test/functional/expected/ui/default/s5-core.css +test/functional/expected/ui/default/slides.css +test/functional/expected/ui/default/slides.js +test/functional/expected/ui/small-black/blank.gif +test/functional/expected/ui/small-black/framing.css +test/functional/expected/ui/small-black/iepngfix.htc +test/functional/expected/ui/small-black/opera.css +test/functional/expected/ui/small-black/outline.css +test/functional/expected/ui/small-black/pretty.css +test/functional/expected/ui/small-black/print.css +test/functional/expected/ui/small-black/s5-core.css +test/functional/expected/ui/small-black/slides.css +test/functional/expected/ui/small-black/slides.js +test/functional/input/compact_lists.txt +test/functional/input/cyrillic.txt +test/functional/input/dangerous.txt +test/functional/input/field_list.txt +test/functional/input/footnotes.txt +test/functional/input/html5-text-level-tags.txt +test/functional/input/latex_babel.txt +test/functional/input/latex_cornercases.txt +test/functional/input/latex_docinfo.txt +test/functional/input/latex_literal_block.txt +test/functional/input/link_in_substitution.txt +test/functional/input/odt_basic.txt +test/functional/input/odt_classifier.txt +test/functional/input/odt_contents.txt +test/functional/input/odt_custom_headfoot.txt +test/functional/input/odt_footnotes.txt +test/functional/input/odt_header_footer.txt +test/functional/input/odt_literal_block.txt +test/functional/input/odt_nested_class.txt +test/functional/input/odt_no_class.txt +test/functional/input/odt_raw.txt +test/functional/input/odt_tables1.txt +test/functional/input/odt_unnested_class.txt +test/functional/input/pep_html.txt +test/functional/input/simple.txt +test/functional/input/standalone_rst_docutils_xml.txt +test/functional/input/standalone_rst_html4css1.txt +test/functional/input/standalone_rst_html5.txt +test/functional/input/standalone_rst_latex.txt +test/functional/input/standalone_rst_manpage.txt +test/functional/input/standalone_rst_pseudoxml.txt +test/functional/input/standalone_rst_s5_html.txt +test/functional/input/standalone_rst_xetex.txt +test/functional/input/data/classes_latex.txt +test/functional/input/data/custom_roles.txt +test/functional/input/data/custom_roles_latex.txt +test/functional/input/data/errors.txt +test/functional/input/data/header_footer.txt +test/functional/input/data/html4css1.css +test/functional/input/data/hyperlinking.txt +test/functional/input/data/latex-problematic.txt +test/functional/input/data/latex_encoding.txt +test/functional/input/data/list_table.txt +test/functional/input/data/math.css +test/functional/input/data/math.txt +test/functional/input/data/minimal.css +test/functional/input/data/nonalphanumeric.txt +test/functional/input/data/option_lists.txt +test/functional/input/data/plain.css +test/functional/input/data/section_titles.txt +test/functional/input/data/standard.txt +test/functional/input/data/svg_images.txt +test/functional/input/data/swf_images.txt +test/functional/input/data/table_colspan.txt +test/functional/input/data/table_complex.txt +test/functional/input/data/table_rowspan.txt +test/functional/input/data/tables_latex.txt +test/functional/input/data/unicode.txt +test/functional/input/data/urls.txt +test/functional/output/README.txt +test/functional/tests/_default.py +test/functional/tests/_standalone_rst_defaults.py +test/functional/tests/compact_lists.py +test/functional/tests/dangerous.py +test/functional/tests/field_name_limit.py +test/functional/tests/footnotes_html5.py +test/functional/tests/latex_babel.py +test/functional/tests/latex_cornercases.py +test/functional/tests/latex_cyrillic.py +test/functional/tests/latex_docinfo.py +test/functional/tests/latex_literal_block.py +test/functional/tests/latex_literal_block_fancyvrb.py +test/functional/tests/latex_literal_block_listings.py +test/functional/tests/latex_literal_block_verbatim.py +test/functional/tests/latex_literal_block_verbatimtab.py +test/functional/tests/latex_memoir.py +test/functional/tests/math_output_html.py +test/functional/tests/math_output_latex.py +test/functional/tests/math_output_mathjax.py +test/functional/tests/math_output_mathml.py +test/functional/tests/misc_rst_html4css1.py +test/functional/tests/pep_html.py +test/functional/tests/standalone_rst_docutils_xml.py +test/functional/tests/standalone_rst_html4css1.py +test/functional/tests/standalone_rst_html5.py +test/functional/tests/standalone_rst_latex.py +test/functional/tests/standalone_rst_manpage.py +test/functional/tests/standalone_rst_pseudoxml.py +test/functional/tests/standalone_rst_s5_html_1.py +test/functional/tests/standalone_rst_s5_html_2.py +test/functional/tests/standalone_rst_xetex.py +test/functional/tests/xetex_cyrillic.py +test/test_parsers/__init__.py +test/test_parsers/test_get_parser_class.py +test/test_parsers/test_parser.py +test/test_parsers/test_rst/__init__.py +test/test_parsers/test_rst/test_SimpleTableParser.py +test/test_parsers/test_rst/test_TableParser.py +test/test_parsers/test_rst/test_block_quotes.py +test/test_parsers/test_rst/test_bullet_lists.py +test/test_parsers/test_rst/test_character_level_inline_markup.py +test/test_parsers/test_rst/test_citations.py +test/test_parsers/test_rst/test_comments.py +test/test_parsers/test_rst/test_definition_lists.py +test/test_parsers/test_rst/test_doctest_blocks.py +test/test_parsers/test_rst/test_east_asian_text.py +test/test_parsers/test_rst/test_enumerated_lists.py +test/test_parsers/test_rst/test_field_lists.py +test/test_parsers/test_rst/test_footnotes.py +test/test_parsers/test_rst/test_inline_markup.py +test/test_parsers/test_rst/test_interpreted.py +test/test_parsers/test_rst/test_interpreted_fr.py +test/test_parsers/test_rst/test_line_blocks.py +test/test_parsers/test_rst/test_literal_blocks.py +test/test_parsers/test_rst/test_option_lists.py +test/test_parsers/test_rst/test_outdenting.py +test/test_parsers/test_rst/test_paragraphs.py +test/test_parsers/test_rst/test_section_headers.py +test/test_parsers/test_rst/test_substitutions.py +test/test_parsers/test_rst/test_tables.py +test/test_parsers/test_rst/test_targets.py +test/test_parsers/test_rst/test_transitions.py +test/test_parsers/test_rst/includes/include9.txt +test/test_parsers/test_rst/test_directives/__init__.py +test/test_parsers/test_rst/test_directives/empty.txt +test/test_parsers/test_rst/test_directives/include 11.txt +test/test_parsers/test_rst/test_directives/include1.txt +test/test_parsers/test_rst/test_directives/include10.txt +test/test_parsers/test_rst/test_directives/include12.txt +test/test_parsers/test_rst/test_directives/include13.txt +test/test_parsers/test_rst/test_directives/include2.txt +test/test_parsers/test_rst/test_directives/include3.txt +test/test_parsers/test_rst/test_directives/include8.txt +test/test_parsers/test_rst/test_directives/include_literal.txt +test/test_parsers/test_rst/test_directives/raw1.txt +test/test_parsers/test_rst/test_directives/test_admonitions.py +test/test_parsers/test_rst/test_directives/test_admonitions_de.py +test/test_parsers/test_rst/test_directives/test_admonitions_dummy_lang.py +test/test_parsers/test_rst/test_directives/test_block_quotes.py +test/test_parsers/test_rst/test_directives/test_class.py +test/test_parsers/test_rst/test_directives/test_code.py +test/test_parsers/test_rst/test_directives/test_code_long.py +test/test_parsers/test_rst/test_directives/test_code_none.py +test/test_parsers/test_rst/test_directives/test_compound.py +test/test_parsers/test_rst/test_directives/test_container.py +test/test_parsers/test_rst/test_directives/test_contents.py +test/test_parsers/test_rst/test_directives/test_date.py +test/test_parsers/test_rst/test_directives/test_decorations.py +test/test_parsers/test_rst/test_directives/test_default_role.py +test/test_parsers/test_rst/test_directives/test_figures.py +test/test_parsers/test_rst/test_directives/test_images.py +test/test_parsers/test_rst/test_directives/test_include.py +test/test_parsers/test_rst/test_directives/test_line_blocks.py +test/test_parsers/test_rst/test_directives/test_math.py +test/test_parsers/test_rst/test_directives/test_meta.py +test/test_parsers/test_rst/test_directives/test_parsed_literals.py +test/test_parsers/test_rst/test_directives/test_raw.py +test/test_parsers/test_rst/test_directives/test_replace.py +test/test_parsers/test_rst/test_directives/test_replace_fr.py +test/test_parsers/test_rst/test_directives/test_role.py +test/test_parsers/test_rst/test_directives/test_rubrics.py +test/test_parsers/test_rst/test_directives/test_sectnum.py +test/test_parsers/test_rst/test_directives/test_sidebars.py +test/test_parsers/test_rst/test_directives/test_tables.py +test/test_parsers/test_rst/test_directives/test_target_notes.py +test/test_parsers/test_rst/test_directives/test_test_directives.py +test/test_parsers/test_rst/test_directives/test_title.py +test/test_parsers/test_rst/test_directives/test_topics.py +test/test_parsers/test_rst/test_directives/test_unicode.py +test/test_parsers/test_rst/test_directives/test_unknown.py +test/test_parsers/test_rst/test_directives/utf-16.csv +test/test_parsers/test_rst/test_directives/includes/include14.txt +test/test_parsers/test_rst/test_directives/includes/include4.txt +test/test_parsers/test_rst/test_directives/includes/include5.txt +test/test_parsers/test_rst/test_directives/includes/more/include6.txt +test/test_parsers/test_rst/test_directives/includes/sibling/include7.txt +test/test_readers/__init__.py +test/test_readers/test_get_reader_class.py +test/test_readers/test_pep/__init__.py +test/test_readers/test_pep/test_inline_markup.py +test/test_readers/test_pep/test_rfc2822.py +test/test_transforms/__init__.py +test/test_transforms/test___init__.py +test/test_transforms/test_class.py +test/test_transforms/test_contents.py +test/test_transforms/test_docinfo.py +test/test_transforms/test_doctitle.py +test/test_transforms/test_expose_internals.py +test/test_transforms/test_filter.py +test/test_transforms/test_footnotes.py +test/test_transforms/test_hyperlinks.py +test/test_transforms/test_messages.py +test/test_transforms/test_peps.py +test/test_transforms/test_sectnum.py +test/test_transforms/test_smartquotes.py +test/test_transforms/test_strip_comments.py +test/test_transforms/test_strip_elements_with_class.py +test/test_transforms/test_substitutions.py +test/test_transforms/test_target_notes.py +test/test_transforms/test_transitions.py +test/test_transforms/test_writer_aux.py +test/test_writers/__init__.py +test/test_writers/test_docutils_xml.py +test/test_writers/test_get_writer_class.py +test/test_writers/test_html4css1_misc.py +test/test_writers/test_html4css1_parts.py +test/test_writers/test_html4css1_template.py +test/test_writers/test_html5_polyglot_misc.py +test/test_writers/test_html5_polyglot_parts.py +test/test_writers/test_latex2e.py +test/test_writers/test_manpage.py +test/test_writers/test_null.py +test/test_writers/test_odt.py +test/test_writers/test_pseudoxml.py +test/test_writers/test_s5.py +tools/buildhtml.py +tools/docutils.conf +tools/quicktest.py +tools/rst2html.py +tools/rst2html4.py +tools/rst2html5.py +tools/rst2latex.py +tools/rst2man.py +tools/rst2odt.py +tools/rst2odt_prepstyles.py +tools/rst2pseudoxml.py +tools/rst2s5.py +tools/rst2xetex.py +tools/rst2xml.py +tools/rstpep2html.py +tools/dev/README.txt +tools/dev/create_unimap.py +tools/dev/generate_punctuation_chars.py +tools/dev/profile_docutils.py +tools/dev/unicode2rstsubs.py +tools/editors/README.txt +tools/editors/emacs/IDEAS.rst +tools/editors/emacs/README.txt +tools/editors/emacs/rst.el +tools/editors/emacs/tests/Ado.el +tools/editors/emacs/tests/Hdr.el +tools/editors/emacs/tests/Makefile +tools/editors/emacs/tests/README.txt +tools/editors/emacs/tests/Stn.el +tools/editors/emacs/tests/Ttl.el +tools/editors/emacs/tests/adjust-section.el +tools/editors/emacs/tests/adjust-uc.el +tools/editors/emacs/tests/adjust-uc_doc.rst +tools/editors/emacs/tests/adornment.el +tools/editors/emacs/tests/apply-block.el +tools/editors/emacs/tests/buffer.el +tools/editors/emacs/tests/comment.el +tools/editors/emacs/tests/ert-buffer.el +tools/editors/emacs/tests/fill.el +tools/editors/emacs/tests/font-lock.el +tools/editors/emacs/tests/helpers.el +tools/editors/emacs/tests/imenu.el +tools/editors/emacs/tests/indent.el +tools/editors/emacs/tests/init.el +tools/editors/emacs/tests/items.el +tools/editors/emacs/tests/movement.el +tools/editors/emacs/tests/re.el +tools/editors/emacs/tests/shift.el +tools/editors/emacs/tests/toc.el +tools/editors/emacs/tests/tree.el +tools/test/test_buildhtml.py

+
+ + + diff --git a/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/WHEEL b/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/WHEEL new file mode 100644 index 000000000..c57a59702 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.33.4) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/dependency_links.html b/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/dependency_links.html new file mode 100644 index 000000000..8944423b9 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/dependency_links.html @@ -0,0 +1,24 @@ + + + + + + +dependency_links.txt + + + +
+ + + +
+ + + diff --git a/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/entry_points.txt b/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/entry_points.txt new file mode 100644 index 000000000..752834512 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/entry_points.txt @@ -0,0 +1,3 @@ +[console_scripts] +docutils = docutils.__main__:main + diff --git a/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/top_level.html b/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/top_level.html new file mode 100644 index 000000000..283f02753 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/top_level.html @@ -0,0 +1,24 @@ + + + + + + +top_level.txt + + + +
+ + +

docutils

+
+ + + diff --git a/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/top_level.txt b/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/top_level.txt new file mode 100644 index 000000000..5492d7670 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/docutils-0.19.dist-info/top_level.txt @@ -0,0 +1 @@ +docutils diff --git a/rep_localstack/lib/python3.12/site-packages/docutils/__init__.py b/rep_localstack/lib/python3.12/site-packages/docutils/__init__.py new file mode 100644 index 000000000..a624b9a90 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/docutils/__init__.py @@ -0,0 +1,284 @@ +# $Id: __init__.py 9103 2022-07-05 20:04:21Z grubert $ +# Author: David Goodger +# Copyright: This module has been placed in the public domain. + +""" +This is the Docutils (Python Documentation Utilities) package. + +Package Structure +================= + +Modules: + +- __init__.py: Contains component base classes, exception classes, and + Docutils version information. + +- core.py: Contains the ``Publisher`` class and ``publish_*()`` convenience + functions. + +- frontend.py: Runtime settings (command-line interface, configuration files) + processing, for Docutils front-ends. + +- io.py: Provides a uniform API for low-level input and output. + +- nodes.py: Docutils document tree (doctree) node class library. + +- statemachine.py: A finite state machine specialized for + regular-expression-based text filters. + +Subpackages: + +- languages: Language-specific mappings of terms. + +- parsers: Syntax-specific input parser modules or packages. + +- readers: Context-specific input handlers which understand the data + source and manage a parser. + +- transforms: Modules used by readers and writers to modify + the Docutils document tree. + +- utils: Contains the ``Reporter`` system warning class and miscellaneous + utilities used by readers, writers, and transforms. + + utils/urischemes.py: Contains a complete mapping of known URI addressing + scheme names to descriptions. + +- utils/math: Contains functions for conversion of mathematical notation + between different formats (LaTeX, MathML, text, ...). + +- writers: Format-specific output translators. +""" + +from collections import namedtuple + +__docformat__ = 'reStructuredText' + +__version__ = '0.19' +"""Docutils version identifier (complies with PEP 440):: + + major.minor[.micro][releaselevel[serial]][.dev] + +For version comparison operations, use `__version_info__` (see, below) +rather than parsing the text of `__version__`. + +https://docutils.sourceforge.io/docs/dev/policies.html#version-identification +""" + +__version_details__ = '' +"""Optional extra version details (e.g. 'snapshot 2005-05-29, r3410'). + +For development and release status, use `__version__ and `__version_info__`. +""" + + +class VersionInfo(namedtuple('VersionInfo', + 'major minor micro releaselevel serial release')): + + def __new__(cls, major=0, minor=0, micro=0, + releaselevel='final', serial=0, release=True): + releaselevels = ('alpha', 'beta', 'candidate', 'final') + if releaselevel not in releaselevels: + raise ValueError('releaselevel must be one of %r.' + % (releaselevels, )) + if releaselevel == 'final': + if not release: + raise ValueError('releaselevel "final" must not be used ' + 'with development versions (leads to wrong ' + 'version ordering of the related __version__') + # cf. https://peps.python.org/pep-0440/#summary-of-permitted-suffixes-and-relative-ordering # noqa + if serial != 0: + raise ValueError('"serial" must be 0 for final releases') + + return super().__new__(cls, major, minor, micro, + releaselevel, serial, release) + + def __lt__(self, other): + if isinstance(other, tuple): + other = VersionInfo(*other) + return tuple.__lt__(self, other) + + def __gt__(self, other): + if isinstance(other, tuple): + other = VersionInfo(*other) + return tuple.__gt__(self, other) + + def __le__(self, other): + if isinstance(other, tuple): + other = VersionInfo(*other) + return tuple.__le__(self, other) + + def __ge__(self, other): + if isinstance(other, tuple): + other = VersionInfo(*other) + return tuple.__ge__(self, other) + + +__version_info__ = VersionInfo( + major=0, + minor=19, + micro=0, + releaselevel='final', # one of 'alpha', 'beta', 'candidate', 'final' + serial=0, # pre-release number (0 for final releases and snapshots) + release=True # True for official releases and pre-releases + ) +"""Comprehensive version information tuple. + +https://docutils.sourceforge.io/docs/dev/policies.html#version-identification +""" + + +class ApplicationError(Exception): pass +class DataError(ApplicationError): pass + + +class SettingsSpec: + + """ + Runtime setting specification base class. + + SettingsSpec subclass objects used by `docutils.frontend.OptionParser`. + """ + + # TODO: replace settings_specs with a new data structure + # Backwards compatiblity: + # Drop-in components: + # Sphinx supplies settings_spec in the current format in some places + # Myst parser provides a settings_spec tuple + # + # Sphinx reads a settings_spec in order to set a default value + # in writers/html.py:59 + # https://github.com/sphinx-doc/sphinx/blob/4.x/sphinx/writers/html.py + # This should be changed (before retiring the old format) + # to use `settings_default_overrides` instead. + settings_spec = () + """Runtime settings specification. Override in subclasses. + + Defines runtime settings and associated command-line options, as used by + `docutils.frontend.OptionParser`. This is a tuple of: + + - Option group title (string or `None` which implies no group, just a list + of single options). + + - Description (string or `None`). + + - A sequence of option tuples. Each consists of: + + - Help text (string) + + - List of option strings (e.g. ``['-Q', '--quux']``). + + - Dictionary of keyword arguments sent to the OptionParser/OptionGroup + ``add_option`` method. + + Runtime setting names are derived implicitly from long option names + ('--a-setting' becomes ``settings.a_setting``) or explicitly from the + 'dest' keyword argument. + + Most settings will also have a 'validator' keyword & function. The + validator function validates setting values (from configuration files + and command-line option arguments) and converts them to appropriate + types. For example, the ``docutils.frontend.validate_boolean`` + function, **required by all boolean settings**, converts true values + ('1', 'on', 'yes', and 'true') to 1 and false values ('0', 'off', + 'no', 'false', and '') to 0. Validators need only be set once per + setting. See the `docutils.frontend.validate_*` functions. + + See the optparse docs for more details. + + - More triples of group title, description, options, as many times as + needed. Thus, `settings_spec` tuples can be simply concatenated. + """ + + settings_defaults = None + """A dictionary of defaults for settings not in `settings_spec` (internal + settings, intended to be inaccessible by command-line and config file). + Override in subclasses.""" + + settings_default_overrides = None + """A dictionary of auxiliary defaults, to override defaults for settings + defined in other components' `setting_specs`. Override in subclasses.""" + + relative_path_settings = () + """Settings containing filesystem paths. Override in subclasses. + Settings listed here are to be interpreted relative to the current working + directory.""" + + config_section = None + """The name of the config file section specific to this component + (lowercase, no brackets). Override in subclasses.""" + + config_section_dependencies = None + """A list of names of config file sections that are to be applied before + `config_section`, in order (from general to specific). In other words, + the settings in `config_section` are to be overlaid on top of the settings + from these sections. The "general" section is assumed implicitly. + Override in subclasses.""" + + +class TransformSpec: + + """ + Runtime transform specification base class. + + TransformSpec subclass objects used by `docutils.transforms.Transformer`. + """ + + def get_transforms(self): + """Transforms required by this class. Override in subclasses.""" + if self.default_transforms != (): + import warnings + warnings.warn('TransformSpec: the "default_transforms" attribute ' + 'will be removed in Docutils 2.0.\n' + 'Use get_transforms() method instead.', + DeprecationWarning) + return list(self.default_transforms) + return [] + + # Deprecated; for compatibility. + default_transforms = () + + unknown_reference_resolvers = () + """List of functions to try to resolve unknown references. Unknown + references have a 'refname' attribute which doesn't correspond to any + target in the document. Called when the transforms in + `docutils.transforms.references` are unable to find a correct target. The + list should contain functions which will try to resolve unknown + references, with the following signature:: + + def reference_resolver(node): + '''Returns boolean: true if resolved, false if not.''' + + If the function is able to resolve the reference, it should also remove + the 'refname' attribute and mark the node as resolved:: + + del node['refname'] + node.resolved = 1 + + Each function must have a "priority" attribute which will affect the order + the unknown_reference_resolvers are run:: + + reference_resolver.priority = 100 + + Override in subclasses.""" + + +class Component(SettingsSpec, TransformSpec): + + """Base class for Docutils components.""" + + component_type = None + """Name of the component type ('reader', 'parser', 'writer'). Override in + subclasses.""" + + supported = () + """Name and aliases for this component. Override in subclasses.""" + + def supports(self, format): + """ + Is `format` supported by this component? + + To be used by transforms to ask the dependent component if it supports + a certain input context or output format. + """ + return format in self.supported diff --git a/rep_localstack/lib/python3.12/site-packages/docutils/__main__.py b/rep_localstack/lib/python3.12/site-packages/docutils/__main__.py new file mode 100644 index 000000000..7df6bb477 --- /dev/null +++ b/rep_localstack/lib/python3.12/site-packages/docutils/__main__.py @@ -0,0 +1,96 @@ +#!/usr/bin/env python3 +# :Copyright: © 2020, 2022 Günter Milde. +# :License: Released under the terms of the `2-Clause BSD license`_, in short: +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. +# This file is offered as-is, without any warranty. +# +# .. _2-Clause BSD license: https://opensource.org/licenses/BSD-2-Clause +# +# Revision: $Revision: 9064 $ +# Date: $Date: 2022-06-10 13:08:13 +0200 (Fr, 10. Jun 2022) $ + +"""Generic command line interface for the `docutils` package. + +See also +https://docs.python.org/3/library/__main__.html#main-py-in-python-packages +""" + +import argparse +import locale +import sys + +import docutils +from docutils.core import Publisher, publish_cmdline, default_description + + +class CliSettingsSpec(docutils.SettingsSpec): + """Runtime settings & command-line options for the generic CLI. + + Configurable reader, parser, and writer components. + + The "--writer" default will change to 'html' when this becomes + an alias for 'html5'. + """ + + settings_spec = ( + 'Docutils Application Options', + 'Reader, writer, and parser settings influence the available options. ' + ' Example: use `--help --writer=latex` to see LaTeX writer options. ', + # options: ('help text', [